Przeglądaj źródła

PPT详情操作栏放部分到列表

cxmo 1 rok temu
rodzic
commit
ae040f2604

+ 57 - 1
src/views/ppt_manage/newVersion/pptCatalog.vue

@@ -210,7 +210,7 @@
             @end="moveListPPT"
             :disabled="(treeName==='private'&&!selectNode)||treeName!=='private'"
             >
-            <div class="list-item" 
+            <!-- <div class="list-item" 
               v-for="item in catalogPPTList" :key="item.PptId"
               @click="changeModel('ppt',item)"
               >
@@ -228,6 +228,20 @@
                 <span>{{item.Title}}</span>
               </div>
               <span style="font-size:14px;">{{$t('Slides.creation_time')}}:{{$moment(item.PptCreateTime).format('YYYY-MM-DD')}}</span>
+            </div> -->
+            <div class="list-item" 
+                v-for="item in catalogPPTList" :key="item.PptId"
+                @click="changeModel('ppt',item)">
+                <div class="item-image" 
+                    style="background-color:#fff;background-image:none;">
+                        <span style="color:#000">{{item.Title}}</span>
+                </div>
+                <div class="item-opt">
+                    <span v-for="optItem in setListTool()" :key="optItem.key" @click.stop="handleListToolClick(optItem,item)">
+                        {{ getContentMenuOptText(optItem.label) }}
+                    </span>
+                </div>
+                <span style="font-size:14px;">{{$t('Slides.creation_time')}}:{{$moment(item.PptCreateTime).format('YYYY-MM-DD')}}</span>
             </div>
           </draggable>
           <div class="empty" v-if="catalogPPTList.length===0">
@@ -565,6 +579,25 @@ export default {
         })
       }
     },
+    //设置列表的操作按钮
+    setListTool(){
+      let list = []
+      const {checkPermissionBtn,pptPermission} = this.permissionBtn
+      const authMap = {
+          'publish':checkPermissionBtn(pptPermission.ppt_publish),
+          'present':checkPermissionBtn(pptPermission.ppt_show),
+          'download':checkPermissionBtn(pptPermission.ppt_download),
+          'edit':checkPermissionBtn(pptPermission.ppt_save),
+      }
+      //私有目录显示编辑,其他不显示
+      list = toolList.filter((i)=>{
+          return ['publish','present','download','edit'].includes(i.key)
+        })
+      if(this.treeName!=='private'){
+        list = list.filter(_ => _.key !== 'edit')
+      }
+      return list
+    },
     //设置操作按钮
     setToolList(pptDetail={}){
       //公共目录:显示除 删除, 编辑 外的全部按钮
@@ -755,6 +788,22 @@ export default {
         })
       })
     },
+    //点击列表操作栏事件处理
+    handleListToolClick(item,{PptId,PptxUrl,Title}){
+        const urlMap = {
+        edit:`/ppteditor?id=${PptId}`,
+        publish:`/pptpublish?id=${PptId}`,
+        present:`/pptpresent?id=${PptId}`
+      }
+      if(urlMap[item.key]){
+        window.open(urlMap[item.key],'_blank')
+        return 
+      }
+      const handleCommand = {
+        'download':this.downloadPpt,
+      }
+      handleCommand[item.key]({PptxUrl,Title})
+    },
     //点击操作栏事件处理
     async handleToolClick(item){
       const urlMap = {
@@ -1552,6 +1601,13 @@ export default {
               font-weight: bold;
             }
           }
+          .item-opt{
+            display:flex;
+            justify-content:space-between;
+            color:#0052D9;
+            cursor:pointer;
+            margin:10px 0;
+          }
         }
         .empty{
           position: absolute;

+ 57 - 1
src/views/ppt_manage/newVersion/pptEnCatalog.vue

@@ -205,7 +205,7 @@
             @end="moveListPPT"
             :disabled="treeName!=='private'"
             >
-            <div class="list-item" 
+            <!-- <div class="list-item" 
               v-for="item in catalogPPTList" :key="item.PptId"
               @click="changeModel('ppt',item)"
               >
@@ -223,6 +223,20 @@
                 <span>{{item.Title}}</span>
               </div>
               <span style="font-size:14px;">{{$t('Slides.creation_time')}}:{{$moment(item.PptCreateTime).format('YYYY-MM-DD')}}</span>
+            </div> -->
+            <div class="list-item" 
+                v-for="item in catalogPPTList" :key="item.PptId"
+                @click="changeModel('ppt',item)">
+                <div class="item-image" 
+                    style="background-color:#fff;background-image:none;">
+                        <span style="color:#000">{{item.Title}}</span>
+                </div>
+                <div class="item-opt">
+                    <span v-for="optItem in setListTool()" :key="optItem.key" @click.stop="handleListToolClick(optItem,item)">
+                        {{ getContentMenuOptText(optItem.label) }}
+                    </span>
+                </div>
+                <span style="font-size:14px;">{{$t('Slides.creation_time')}}:{{$moment(item.PptCreateTime).format('YYYY-MM-DD')}}</span>
             </div>
           </draggable>
           <div class="empty" v-if="catalogPPTList.length===0">
@@ -537,6 +551,25 @@ export default {
         })
       }
     },
+    //设置列表的操作按钮
+    setListTool(){
+      let list = []
+      const {checkPermissionBtn,pptPermission} = this.permissionBtn
+      const authMap = {
+          'publish':checkPermissionBtn(pptPermission.ppt_publish),
+          'present':checkPermissionBtn(pptPermission.ppt_show),
+          'download':checkPermissionBtn(pptPermission.ppt_download),
+          'edit':checkPermissionBtn(pptPermission.ppt_save),
+      }
+      //私有目录显示编辑,其他不显示
+      list = toolList.filter((i)=>{
+          return ['publish','present','download','edit'].includes(i.key)
+        })
+      if(this.treeName!=='private'){
+        list = list.filter(_ => _.key !== 'edit')
+      }
+      return list
+    },
     //设置操作按钮
     setToolList(pptDetail={}){
       //公共目录:显示除 删除, 编辑 外的全部按钮
@@ -720,6 +753,22 @@ export default {
         })
       })
     },
+    //点击列表操作栏事件处理
+    handleListToolClick(item,{PptId,PptxUrl,Title}){
+        const urlMap = {
+        edit:`/ppteditor?id=${PptId}`,
+        publish:`/pptpublish?id=${PptId}`,
+        present:`/pptpresent?id=${PptId}`
+      }
+      if(urlMap[item.key]){
+        window.open(urlMap[item.key],'_blank')
+        return 
+      }
+      const handleCommand = {
+        'download':this.downloadPpt,
+      }
+      handleCommand[item.key]({PptxUrl,Title})
+    },
     //点击操作栏事件处理
     async handleToolClick(item){
       const urlMap = {
@@ -1441,6 +1490,13 @@ export default {
               font-weight: bold;
             }
           }
+          .item-opt{
+            display:flex;
+            justify-content:space-between;
+            color:#0052D9;
+            cursor:pointer;
+            margin:10px 0;
+          }
         }
         .empty{
           position: absolute;