Browse Source

声像文件同步调接口

duy 1 năm trước cách đây
mục cha
commit
a457617e09
3 tập tin đã thay đổi với 74 bổ sung18 xóa
  1. 6 1
      src/api/modules/other.js
  2. 25 2
      src/components/tree/hc-tree.vue
  3. 43 15
      src/views/file/collection.vue

+ 6 - 1
src/api/modules/other.js

@@ -98,7 +98,12 @@ export const syncFileTree = (form, msg = true) => httpApi({
     method: 'post',
     params: form,
 }, msg)
-
+//声像文件同步
+export const syncSoundImageData = (form, msg = true) => httpApi({
+    url: '/api/blade-manager/archiveTreeContract/syncSoundImageData',
+    method: 'post',
+    params: form,
+}, msg)
 //所属角色
 export const roletree = (form, msg = true) => httpApi({
     url: '/api/blade-system/role/tree',

+ 25 - 2
src/components/tree/hc-tree.vue

@@ -53,7 +53,7 @@
 
 <script setup>
 import { nextTick, ref, watch } from 'vue'
-import { remove, syncFileTree, syncProjectTree } from '~api/other'
+import { remove, syncFileTree, syncProjectTree, syncSoundImageData } from '~api/other'
 import { getArchiveTreeLazyTree, initTree } from '~api/other'
 import { getArrValue, getObjValue, isArrItem, isNullES } from 'js-fast-way'
 import EditNodeDialog from '~src/components/dialog/EditNodeDialog.vue'
@@ -454,6 +454,9 @@ const setTreeMenuDataClick = ({ key, node, data }) => {
         case 'fileSync':
         filesyncNodeMoadl(node, data)
         break
+        case 'syncVocie':
+        syncVocieMoadl(node, data)
+        break
     }
 }
 
@@ -547,7 +550,27 @@ const filesyncNodeMoadl = async (node, data)=>{
         },
     })
 }
-
+//声像文件同步syncVocieMoadl
+const syncVocieMoadl = async (node, data)=>{
+    window?.$messageBox?.alert('是否同步该节点?', '提示', {
+        showCancelButton: true,
+        confirmButtonText: '确认同步',
+        cancelButtonText: '取消',
+        callback: async (action) => {
+            if (action === 'confirm') {
+                const { code } = await syncSoundImageData({
+                    projectId:projectId.value,
+                    contractId:data.contractId,
+                    nodeId:data.id,
+                })
+                if (code == 200) {
+                  await window.$message?.success('同步成功')
+                    window?.location?.reload() //刷新页面
+                }
+            }
+        },
+    })
+}
 // 暴露出去
 defineExpose({
     removeElTreeNode,

+ 43 - 15
src/views/file/collection.vue

@@ -581,22 +581,50 @@ const ElTreeMenuClick = async ({ data, keys }) => {
     setStoreValue('wbsTreeExpandKeys', keys)
     treeAutoExpandKeys.value = keys || []
     if (data?.extType === 2) {
-        ElTreeMenu.value = [
-            { icon: 'add-circle', label: '新增', key: 'add' },
-            { icon: 'draft', label: '编辑', key: 'edit' },
-            { icon: 'delete-bin', label: '删除', key: 'del' },
-            { icon: 'refresh', label: '目录同步', key: 'sync' },
-            { icon: 'refresh', label: '文件同步', key: 'fileSync' },
-            { icon: 'sort-asc', label: '排序', key: 'sort' },
-        ]
+              // 声像节点显示声像文件同步菜单
+        if (data?.storageType === 5 && data?.associationType === 3) {
+            ElTreeMenu.value = [
+                { icon: 'add-circle', label: '新增', key: 'add' },
+                { icon: 'draft', label: '编辑', key: 'edit' },
+                { icon: 'delete-bin', label: '删除', key: 'del' },
+                { icon: 'refresh', label: '目录同步', key: 'sync' },
+                { icon: 'refresh', label: '文件同步', key: 'fileSync' },
+                { icon: 'sort-asc', label: '排序', key: 'sort' },
+                { icon: 'refresh', label: '声像文件同步', key: 'syncVocie' },
+            ]
+        } else {
+            ElTreeMenu.value = [
+                { icon: 'add-circle', label: '新增', key: 'add' },
+                { icon: 'draft', label: '编辑', key: 'edit' },
+                { icon: 'delete-bin', label: '删除', key: 'del' },
+                { icon: 'refresh', label: '目录同步', key: 'sync' },
+                { icon: 'refresh', label: '文件同步', key: 'fileSync' },
+                { icon: 'sort-asc', label: '排序', key: 'sort' },
+            ]
+        }
+        
     } else {
-        ElTreeMenu.value = [
-            { icon: 'add-circle', label: '新增', key: 'add' },
-            { icon: 'draft', label: '编辑', key: 'edit' },
-            { icon: 'delete-bin', label: '删除', key: 'del' },
-            { icon: 'refresh', label: '目录同步', key: 'sync' },
-            { icon: 'sort-asc', label: '排序', key: 'sort' },
-        ]
+        // 声像节点显示声像文件同步菜单
+        if (data?.storageType === 5 && data?.associationType === 3) {
+            ElTreeMenu.value = [
+                { icon: 'add-circle', label: '新增', key: 'add' },
+                { icon: 'draft', label: '编辑', key: 'edit' },
+                { icon: 'delete-bin', label: '删除', key: 'del' },
+                { icon: 'refresh', label: '目录同步', key: 'sync' },
+                { icon: 'refresh', label: '文件同步', key: 'fileSync' },
+                { icon: 'sort-asc', label: '排序', key: 'sort' },
+                { icon: 'refresh', label: '声像文件同步', key: 'syncVocie' },
+            ]
+        } else {
+            ElTreeMenu.value = [
+                { icon: 'add-circle', label: '新增', key: 'add' },
+                { icon: 'draft', label: '编辑', key: 'edit' },
+                { icon: 'delete-bin', label: '删除', key: 'del' },
+                { icon: 'refresh', label: '目录同步', key: 'sync' },
+                { icon: 'sort-asc', label: '排序', key: 'sort' },
+            ]
+        }
+     
     }
 }
 //回车搜索