From 58848b1a18d29929ba84b0336860f258b913070f Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期一, 13 一月 2025 17:18:48 +0800
Subject: [PATCH] 产品结构树数据由后台数据库驱动

---
 src/views/dnc/common/TableContextMenu.vue |   73 +++++++++++++++++++++++++++---------
 1 files changed, 54 insertions(+), 19 deletions(-)

diff --git a/src/views/dnc/common/TableContextMenu.vue b/src/views/dnc/common/TableContextMenu.vue
index dd10da2..b9dcdbe 100644
--- a/src/views/dnc/common/TableContextMenu.vue
+++ b/src/views/dnc/common/TableContextMenu.vue
@@ -24,7 +24,7 @@
     name: 'TableContextMenu',
     components: {},
     props: {
-      currentTableRowInfo: {
+      tableRowInfo: {
         type: Object
       }
     },
@@ -43,25 +43,46 @@
         defaultContextMenuList: {
           //鏂囨。
           document: [
-            { show: true, label: '缂栬緫鏂囨。淇℃伅', code: 'document_edit', subMenu: [], icon: 'edit' },
-            { show: true, label: '鎸囨淳鍒拌澶�', code: 'document_assign', subMenu: [], icon: 'cluster' },
-            { show: false, label: '瀵煎嚭NC绋嬪簭', code: 'document_export', subMenu: [], icon: 'export' },
-            { show: true, label: '瀵煎叆NC绋嬪簭', code: 'document_import', subMenu: [], icon: 'import' },
-            { show: true, label: '涓嬭浇', code: 'document_download', subMenu: [], icon: 'download' },
-            { show: true, label: '鍒犻櫎', code: 'document_delete', subMenu: [], icon: 'delete' },
-            { show: true, label: '鎵归噺鍒犻櫎', code: 'document_batch_remove', subMenu: [], icon: 'delete' },
+            { show: true, label: '缂栬緫鏂囨。淇℃伅', code: 'document_edit', subMenu: [], icon: 'edit', isCommonMethod: false },
+            {
+              show: true,
+              label: '鎸囨淳鍒拌澶�',
+              code: 'document_assign',
+              subMenu: [],
+              icon: 'cluster',
+              isCommonMethod: false
+            },
+            {
+              show: false,
+              label: '瀵煎嚭NC绋嬪簭',
+              code: 'document_export',
+              subMenu: [],
+              icon: 'export',
+              isCommonMethod: true
+            },
+            { show: true, label: '瀵煎叆NC绋嬪簭', code: 'document_import', subMenu: [], icon: 'import', isCommonMethod: true },
+            { show: true, label: '涓嬭浇', code: 'document_download', subMenu: [], icon: 'download', isCommonMethod: true },
+            { show: true, label: '鍒犻櫎', code: 'document_delete', subMenu: [], icon: 'delete', isCommonMethod: true },
+            {
+              show: true,
+              label: '鎵归噺鍒犻櫎',
+              code: 'document_batch_remove',
+              subMenu: [],
+              icon: 'delete',
+              isCommonMethod: false
+            },
             {
               show: true,
               label: '鐢熷懡鍛ㄦ湡',
               subMenu: [
-                { show: true, label: '鍑哄簱', code: 'document_pull', icon: 'export' },
-                { show: true, label: '鍙栨秷鍑哄簱', code: 'document_cancel_pull', icon: 'stop' },
-                { show: true, label: '鍏ュ簱', code: 'document_push', icon: 'import' },
-                { show: true, label: '鍙戝竷', code: 'document_publish', icon: 'flag' },
-                { show: true, label: '閲嶆柊鍙戝竷', code: 'document_republish', icon: 'reload' },
-                { show: true, label: '褰掓。', code: 'document_pigeonhole', icon: 'database' }
+                { show: true, label: '鍑哄簱', code: 'document_pull', icon: 'export', isCommonMethod: false },
+                { show: true, label: '鍙栨秷鍑哄簱', code: 'document_cancel_pull', icon: 'stop', isCommonMethod: false },
+                { show: true, label: '鍏ュ簱', code: 'document_push', icon: 'import', isCommonMethod: true },
+                { show: true, label: '鍙戝竷', code: 'document_publish', icon: 'flag', isCommonMethod: false },
+                { show: true, label: '閲嶆柊鍙戝竷', code: 'document_republish', icon: 'reload', isCommonMethod: false },
+                { show: true, label: '褰掓。', code: 'document_pigeonhole', icon: 'database', isCommonMethod: false }
               ],
-              icon: 'delete'
+              icon: 'hourglass'
             }
           ]
         }
@@ -69,11 +90,25 @@
     },
     methods: {
       menuItemClick({ item, key }) {
-        // process_add => handleProcessAdd 瑙﹀彂瀵瑰簲缁勪欢浜嬩欢
-        const methodName = 'handle' + key.split('_').map(item => item[0].toUpperCase() + item.slice(1)).join('')
+        const menuKeyArray = key.split('_')
+        const isCommonMethod = this.defaultContextMenuList[this.currentMenuLevel].find(item => item.code === key).isCommonMethod
+        let methodName
+        // 鍒ゆ柇鏄惁涓哄叕鍏辨柟娉曪紝濡傛灉涓哄叕鍏辨柟娉曞垯鎴彇涓撴湁灞炴�roduct/component/part/process绛夊瓧娈�
+        if (isCommonMethod) {
+          // product_add => handleAdd 瑙﹀彂鍏叡鐖剁骇缁勪欢浜嬩欢
+          methodName = 'handle' + menuKeyArray.map(item => item[0].toUpperCase() + item.slice(1)).slice(1).join('')
+        } else {
+          // product_add => handleProcessAdd 瑙﹀彂瀵瑰簲缁勪欢浜嬩欢
+          methodName = 'handle' + menuKeyArray.map(item => item[0].toUpperCase() + item.slice(1)).join('')
+        }
         const modalTitle = this.defaultContextMenuList[this.currentMenuLevel].find(item => item.code === key).label
-        console.log('key', key)
-        this.$bus.$emit('menuItemMethodTrigger', { level: this.currentMenuLevel, methodName, modalTitle })
+        console.log('methodName---------------------------------------', methodName)
+        console.log('tableRowInfo---------------------------------------', this.tableRowInfo)
+        this.$bus.$emit('tableMenuItemMethodTrigger', {
+          methodName,
+          modalTitle,
+          tableRowInfo: this.tableRowInfo
+        })
       }
     }
   }

--
Gitblit v1.9.3