From bab64d0b2147a3e619e53d7417e40b5bd45fcfdb Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期三, 19 三月 2025 13:43:47 +0800
Subject: [PATCH] 修改产品结构树 增加流程修改

---
 src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue |   89 ++++++++++++++++++++++++++++++++------------
 1 files changed, 65 insertions(+), 24 deletions(-)

diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue
index e67db7c..7655c68 100644
--- a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue
+++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue
@@ -1,5 +1,5 @@
 <template>
-  <div v-if="+currentTreeNodeInfo.type!==4">
+  <div>
     <a-tabs v-model="activeTabKey" @contextmenu.native="e=>e.preventDefault()" @change="handleTabChange"
             v-if="Object.keys(currentTreeNodeInfo).length!==0">
       <a-tab-pane :key="1" tab="NC绠$悊" v-if="+currentTreeNodeInfo.type===5||+currentTreeNodeInfo.type===6">
@@ -10,7 +10,8 @@
             ref="deviceCustomTypeTableList" :currentTreeNodeInfo="currentTreeNodeInfo"
             @handleTableContextMenuOpen="handleTableContextMenuOpen" :size="tableContainerSize"/>
 
-          <NcDocumentTableList ref="ncDocumentTableListRef" :currentTreeNodeInfo="currentTreeNodeInfo"
+          <NcDocumentTableList ref="ncDocumentTableListRef"
+                               :currentNCDocumentAttributionInfo="currentNCDocumentAttributionInfo"
                                @handleTableContextMenuOpen="handleTableContextMenuOpen" :size="tableContainerSize"/>
         </div>
       </a-tab-pane>
@@ -55,15 +56,24 @@
       isProcessStepHasDeviceTypeList: false,
       currentRightClickedTableRowInfo: {},
       currentTreeNodeInfo: {},
+      currentClickedTypeInfo: {},
+      currentNCDocumentAttributionInfo: {},//褰撳墠NC鏂囨。鐨勬墍灞炵骇鍗崇埗绾х殑璇︾粏淇℃伅锛堝紩鍏ヨ澶囩被鍚嶯C鎸傝浇鑷宠澶囩被涓嬪弽涔嬪垯鎸傝浇鍦ㄥ伐搴忓拰宸ユ涓嬶級
       hasLoadedDataTabKeyArray: []
     }
   },
   created() {
     this.$bus.$on('sendCurrentTreeNodeInfo', this.receiveCurrentTreeNodeInfo)
+    this.$bus.$on('sendCurrentClickedTypeInfo', this.receiveCurrentClickedTypeInfo)
     this.$bus.$on('reloadDocumentListData', this.reloadDocumentListData)
     this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod)
     this.getDeviceTypeListDisplayPermission('dnc_device_type_process', 'isProcessHasDeviceTypeList')
     this.getDeviceTypeListDisplayPermission('dnc_device_type_step', 'isProcessStepHasDeviceTypeList')
+  },
+  beforeDestroy() {
+    this.$bus.$off('sendCurrentTreeNodeInfo', this.receiveCurrentTreeNodeInfo)
+    this.$bus.$off('sendCurrentClickedTypeInfo', this.receiveCurrentClickedTypeInfo)
+    this.$bus.$off('reloadDocumentListData', this.reloadDocumentListData)
+    this.$bus.$off('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod)
   },
   methods: {
     /**
@@ -85,15 +95,24 @@
      */
     receiveCurrentTreeNodeInfo(treeNodeInfo) {
       console.log('treeNodeInfo', treeNodeInfo)
+      const { id, type } = treeNodeInfo
       // 浠庢爲缁勪欢鎺ュ彈鏍戣妭鐐逛俊鎭悗浠庣埗缁勪欢娴佸叆瀛愮粍浠�
       this.currentTreeNodeInfo = treeNodeInfo
+      this.currentNCDocumentAttributionInfo = Object.assign({}, {
+        attributionId: id,
+        attributionType: type,
+        docClassCode: 'NC'
+      })
       // 娓呯┖涓婁竴鑺傜偣宸茬粡鍔犺浇杩囧緱鏂囨。鍒楄〃tabKey
       this.hasLoadedDataTabKeyArray = []
-      if (+treeNodeInfo.type === 5 || +treeNodeInfo.type === 6) {
+      if (+type === 5 || +type === 6) {
         this.activeTabKey = 1
         this.$nextTick(() => {
-          if (this.$refs.deviceCustomTypeTableList) this.$refs.deviceCustomTypeTableList.setQueryParamAndLoadData()
-          else if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1)
+          if (this.$refs.deviceCustomTypeTableList) {
+            this.$refs.deviceCustomTypeTableList.setQueryParamAndLoadData()
+            // 鍒囨崲鏍戜箣鍚庢竻绌篘C绋嬪簭鍒楄〃
+            if (this.$refs.ncDocumentTableListRef && this.$refs.ncDocumentTableListRef.dataSource.length > 0) this.$refs.ncDocumentTableListRef.dataSource = []
+          } else if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1)
         })
       } else {
         this.activeTabKey = 2
@@ -102,6 +121,19 @@
         })
       }
       this.hasLoadedDataTabKeyArray.push(this.activeTabKey)
+    },
+
+    receiveCurrentClickedTypeInfo(record) {
+      const { id, attributionType } = record
+      this.currentClickedTypeInfo = Object.assign({}, record)
+      this.currentNCDocumentAttributionInfo = Object.assign({}, {
+        attributionId: id,
+        attributionType,
+        docClassCode: 'NC'
+      })
+      this.$nextTick(() => {
+        if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1)
+      })
     },
 
     /**
@@ -134,13 +166,23 @@
     /**
      * 鏂囨。浠ュ強NC绋嬪簭瀵煎叆/鍑哄簱/鍏ュ簱鎴愬姛鍚庤Е鍙戦噸鏂板姞杞芥枃妗e垪琛�
      * @param docClassCode 鏂囨。绫诲埆
-     * @param attributionId 鑺傜偣Id
+     * @param attributionType 鏂囨。鐖剁骇type绫诲瀷
+     * @param attributionId 鏂囨。鐖剁骇Id
      */
-    reloadDocumentListData({ docClassCode, attributionId }) {
-      // 濡傛灉涓婁紶鐨勬枃妗d笉鏄墍灞炰簬褰撳墠鎵�灞曠ず鑺傜偣鐨勬枃妗e垯涓嶉噸鏂拌幏鍙栨枃妗e垪琛�
-      if (this.currentTreeNodeInfo.id !== attributionId) return
+    reloadDocumentListData({ docClassCode, attributionType, attributionId }) {
+      console.log('docClassCode, attributionType, attributionId', docClassCode, attributionType, attributionId)
+      // 鍦ㄦ澶勮澶嘚C鏂囨。鐖剁骇鍙傛暟鏄彲姝ゆ柟娉曟槸缁撴瀯鏍戜互鍙婅澶囩被涓ょ涓嶅悓瀵煎叆鏂瑰紡鐨勫叡鍚屽嚭鍙�
+      this.currentNCDocumentAttributionInfo = Object.assign({}, { docClassCode, attributionId, attributionType })
+      // 鑻ュ紩鍏ヨ澶囩被鍒欏彧闇�瑕佸垽鏂綋鍓嶅嚭鐜扮殑鏂囨。鎵�灞炴槸鍚︽槸褰撳墠宸﹂敭閫変腑鐨勬枃妗o紝鑻ヤ笉鏄綋鍓嶉�変腑鐨勬枃妗e垯涓嶅埛鏂版枃妗e垪琛�(閬垮厤鏃犳晥鍒锋柊)
+      if (this.currentRightClickedTableRowInfo.hasOwnProperty('deviceManagementId')) {
+        if (this.currentClickedTypeInfo.id !== attributionId) return
+      } else {
+        if (this.currentTreeNodeInfo.id !== attributionId) return
+      }
       if (docClassCode === 'NC') {
-        if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1)
+        this.$nextTick(() => {
+          if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1)
+        })
       } else {
         if (this.$refs.otherDocumentTableListRef) this.$refs.otherDocumentTableListRef.loadData(1)
       }
@@ -152,7 +194,7 @@
       const { docId, docName } = this.currentRightClickedTableRowInfo
       dncApi.downloadDocumentApi({ docId, docName })
         .then(res => {
-          if (res && !res.success) {
+          if (!res.success) {
             that.$notification.error({
               message: '娑堟伅',
               description: res.message
@@ -169,7 +211,7 @@
 
     // 鍒犻櫎褰撳墠鍙抽敭閫変腑鏂囨。
     handleDelete() {
-      const { docId, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       const that = this
       that.$confirm({
         title: '鎻愮ず',
@@ -184,7 +226,7 @@
                   message: '娑堟伅',
                   description: res.message
                 })
-                that.reloadDocumentListData({ docClassCode: param, attributionId })
+                that.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
               } else {
                 that.$notification.warning({
                   message: '娑堟伅',
@@ -218,7 +260,7 @@
      */
     handlePull(menuLabel) {
       const that = this
-      const { docId, docName, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, docName, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       that.$confirm({
         title: '鎻愮ず',
         content: `纭${menuLabel}鍚楋紵`,
@@ -227,9 +269,8 @@
         onOk: () => {
           dncApi.documentOutboundApi({ docId, docName })
             .then(res => {
-              console.log('res------------------', res)
               if (res.success) {
-                that.reloadDocumentListData({ docClassCode: param, attributionId })
+                that.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
                 that.$notification.success({
                   message: '娑堟伅',
                   description: `${menuLabel}鎴愬姛`
@@ -263,7 +304,7 @@
      */
     handleCancelPull(menuLabel) {
       const that = this
-      const { docId, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       that.$confirm({
         title: '鎻愮ず',
         content: `纭${menuLabel}鍚楋紵`,
@@ -273,7 +314,7 @@
           dncApi.documentCancelOutboundApi(docId)
             .then(res => {
               if (res.success) {
-                this.reloadDocumentListData({ docClassCode: param, attributionId })
+                this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
                 that.$notification.success({
                   message: '娑堟伅',
                   description: res.message
@@ -307,7 +348,7 @@
      */
     handlePublish(menuLabel) {
       const that = this
-      const { docId, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       that.$confirm({
         title: '鎻愮ず',
         content: `纭${menuLabel}鍚楋紵`,
@@ -317,7 +358,7 @@
           dncApi.documentPublishApi(docId)
             .then(res => {
               if (res.success) {
-                this.reloadDocumentListData({ docClassCode: param, attributionId })
+                this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
                 this.$bus.$emit('reloadMainBottomTableData', 'documentVersion')
                 that.$notification.success({
                   message: '娑堟伅',
@@ -352,7 +393,7 @@
      */
     handleRepublish(menuLabel) {
       const that = this
-      const { docId, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       that.$confirm({
         title: '鎻愮ず',
         content: `纭${menuLabel}鍚楋紵`,
@@ -362,7 +403,7 @@
           dncApi.documentRepublishApi(docId)
             .then(res => {
               if (res.success) {
-                this.reloadDocumentListData({ docClassCode: param, attributionId })
+                this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
                 that.$notification.success({
                   message: '娑堟伅',
                   description: res.message
@@ -396,7 +437,7 @@
      */
     handlePigeonhole(menuLabel) {
       const that = this
-      const { docId, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       that.$confirm({
         title: '鎻愮ず',
         content: `${menuLabel}鍚庝笉鍙彇娑堬紝纭${menuLabel}鍚楋紵`,
@@ -406,7 +447,7 @@
           dncApi.documentPigeonholeApi(docId)
             .then(res => {
               if (res.success) {
-                this.reloadDocumentListData({ docClassCode: param, attributionId })
+                this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
                 that.$notification.success({
                   message: '娑堟伅',
                   description: res.message

--
Gitblit v1.9.3