Advertisement
KoctrX

Untitled

Jan 31st, 2023
796
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <template>
  2.     <div class="editor_template prreview">
  3.         <header class="header">
  4.             <div class="header__bottom" style="overflow: auto;">
  5.                 <ul class="select-page">
  6.                     <li class="select-page__item" style="cursor: default;pointer-events: none;">
  7.                         {{ $store.state.activeTemplate.title }}
  8.                     </li>
  9.                 </ul>
  10.  
  11.                 <div class="separator-blok__wrap" style="user-select: none;">
  12.                     <div class="separator-blok">
  13.                         <div class="zoom-page">
  14.                             <button class="zoom-page__btn" @click="changeZoom('minus')">
  15.                                 <inline-svg :src="require('@/assets/img/icon-minus.svg')"/>
  16.                             </button>
  17.  
  18.                             <span class="zoom-page__date">{{ printZoom }}%</span>
  19.                             <button class="zoom-page__btn" @click="changeZoom('plus')">
  20.                                 <inline-svg :src="require('@/assets/img/icon-plus.svg')"/>
  21.                             </button>
  22.                         </div>
  23.                     </div>
  24.  
  25.                     <a href="#" @click="downloadCurrentDocument">
  26.                         <li class="btn btn--md btn-primary-outline ss">
  27.                             <span title="Empty Template Document" class="select-page__title">Download</span>
  28.                             <!-- <inline-svg :src="require('@/assets/img/icon-arrow-right.svg')"/> -->
  29.                         </li>
  30.                     </a>
  31.                 </div>
  32.             </div>
  33.         </header>
  34.  
  35.         <div class="wrapper wrapper-pt" style="padding: 0;">
  36.             <main class="content">
  37.                 <div class="workspase" style="height: 100vh;">
  38.                     <!-- <div class="workspase__sidebar" style="padding: 16px 16px 16px 0;">
  39.                         <PagesSidebar/>
  40.                     </div> -->
  41.  
  42.                     <div class="workspase__body" @scroll="scroll" ref="workspace">
  43.                         <div ref="documentPages" style="pointer-events: none;user-select: none;"></div>
  44.                     </div>
  45.                 </div>
  46.             </main>
  47.  
  48.             <div class="loader" :class="{ active: loading }">
  49.                 <div class="loader__icon">
  50.                     <img :src="require('@/assets/img/load-icon.svg')" alt="">
  51.                 </div>
  52.  
  53.                 <p class="loader__text">Loading, please wait</p>
  54.             </div>
  55.         </div>
  56.     </div>
  57. </template>
  58.  
  59. <script>
  60.     import mixinBuilder from '../mixin/mixinBuilder';
  61.     import Editor from '../libs/edit-template-editor';
  62.     import zoomMixin from '../mixin/zoomMixin';
  63.     import PagesSidebar from '../components/create-template/sidebars/PagesSidebar.vue';
  64.  
  65.     export default {
  66.         data: () => ({ Editor }),
  67.         mixins: [mixinBuilder, zoomMixin],
  68.         components: { PagesSidebar },
  69.  
  70.         methods: {
  71.             afterOpenTemplate() {
  72.                 this.editor.pages.forEach(page => page.canvas.forEachObject(object => {
  73.                     object.selectable = false;
  74.                     object.evented = false;
  75.                 }));
  76.             },
  77.  
  78.             downloadCurrentDocument() {
  79.                 this.editor.downloadCurrentDocument();
  80.             }
  81.         },
  82.  
  83.         computed: {
  84.             loading() {
  85.                 return this.$store.state.loading;    
  86.             },
  87.  
  88.             activeObject() {
  89.                 return this.$store.state.editTemplate.activeObject;
  90.             },
  91.  
  92.             editor: {
  93.                 get() {
  94.                     return this.$store.state.editTemplate.editor;
  95.                 },
  96.  
  97.                 set(val) {
  98.                     this.$store.state.editTemplate.editor = val;
  99.                 }
  100.             }
  101.         },
  102.  
  103.         mounted () {
  104.             document.body.classList.add('hide-main-header');
  105.         },
  106.  
  107.         destroyed () {
  108.             document.body.classList.remove('hide-main-header')
  109.         },
  110.  
  111.     }
  112. </script>
  113.  
  114. <style>
  115.     .disabled {
  116.         pointer-events: none;
  117.         opacity: .6;
  118.     }
  119.  
  120.     @media (max-width: 767.98px) {
  121.         .prreview .document {
  122.             margin-top: 60px;
  123.         }
  124.     }
  125.  
  126.     .prreview .select-page__item::after {
  127.         display: none;
  128.     }
  129. </style>
  130.  
  131. <style scoped>
  132.     .select-page__item {
  133.         padding-right: 10px;
  134.         margin-left: 10px;
  135.     }
  136.    
  137.     .select-page__item:hover {
  138.         background: rgba(255, 255, 255, 0.14);
  139.         padding-right: 10px
  140.     }
  141.  
  142.     .ss {
  143.         color: #fff;
  144.         border-color: #fff;
  145.         margin-left: 15px;
  146.         padding: 6px 13px;
  147.     }
  148.  
  149.     .ss .select-page__title {
  150.         font-weight: 600;
  151.         font-size: 14px;
  152.         opacity: 1;
  153.     }
  154. </style>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement