From 09891cea3bd0c4c6182a786c302dc20921f07ccd Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期二, 11 二月 2025 18:01:50 +0800
Subject: [PATCH] 设备结构树: 1、实现点击设备关联NC程序展示文档详细信息、文件内容预览以及文档内容对比功能 2、实现设备层级导入已接收NC程序功能 全局: 1、解决类似文档出库弹窗在路由跳转后点击后会同时出现多个问题

---
 src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue |   50 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 41 insertions(+), 9 deletions(-)

diff --git a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue
index d5ae553..b56ba33 100644
--- a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue
+++ b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue
@@ -1,15 +1,15 @@
 <template>
-  <a-tabs v-model="activeTabKey" @contextmenu.native="e=>e.preventDefault()"
+  <a-tabs v-model="activeTabKey" @change="handleTabChange" @contextmenu.native="e=>e.preventDefault()"
           v-if="Object.keys(currentTreeNodeInfo).length!==0">
     <a-tab-pane :key="1" tab="鍙戦��">
-      <!--<NcDocumentTableList ref="ncDocumentTableListRef" />-->
       <HasSentDocumentTableList ref="hasSentDocumentTableListRef" :currentTreeNodeInfo="currentTreeNodeInfo"
                                 @handleTableContextMenuOpen="handleTableContextMenuOpen" :size="tableContainerSize"/>
     </a-tab-pane>
 
     <a-tab-pane :key="2" tab="鎺ユ敹">
-      <!--<OtherDocumentTableList ref="otherDocumentTableListRef" :currentTreeNodeInfo="currentTreeNodeInfo"-->
-      <!--@handleTableContextMenuOpen="handleTableContextMenuOpen" :size="tableContainerSize"/>-->
+      <HasReceivedDocumentTableList ref="hasReceivedDocumentTableListRef" :currentTreeNodeInfo="currentTreeNodeInfo"
+                                    @handleTableContextMenuOpen="handleTableContextMenuOpen"
+                                    :size="tableContainerSize"/>
     </a-tab-pane>
 
     <TableContextMenu :tableRowInfo="currentRightClickedTableRowInfo" ref="tableContextMenuRef"/>
@@ -19,11 +19,12 @@
 <script>
   import dncApi from '@/api/dnc'
   import TableContextMenu from '../../../common/TableContextMenu'
-  import HasSentDocumentTableList from './HasSentDocumentTableList'
+  import HasSentDocumentTableList from './Document/HasSentDocumentTableList'
+  import HasReceivedDocumentTableList from './Document/HasReceivedDocumentTableList'
 
   export default {
     name: 'DeviceStructureMainTop',
-    components: { HasSentDocumentTableList, TableContextMenu },
+    components: { HasReceivedDocumentTableList, HasSentDocumentTableList, TableContextMenu },
     props: {
       currentTreeNodeInfo: {
         type: Object
@@ -33,7 +34,8 @@
       return {
         activeTabKey: 1,
         tableContainerSize: 'small',
-        currentRightClickedTableRowInfo: {}
+        currentRightClickedTableRowInfo: {},
+        hasLoadedDataTabKeyArray: []
       }
     },
     created() {
@@ -61,8 +63,31 @@
        */
       loadHasSentDocumentListData(treeNodeInfo) {
         this.$nextTick(() => {
-          if (this.$refs.hasSentDocumentTableListRef) this.$refs.hasSentDocumentTableListRef.loadData(1)
+          if (this.$refs.hasSentDocumentTableListRef) {
+            this.$refs.hasSentDocumentTableListRef.loadData(1)
+            this.hasLoadedDataTabKeyArray.push(this.activeTabKey)
+          }
         })
+      },
+
+      /**
+       * tab鏍囩鍒囨崲鏃惰Е鍙�
+       * @param activeTabKey 褰撳墠宸叉縺娲籺ab鐨刱ey
+       */
+      handleTabChange(activeTabKey) {
+        this.$bus.$emit('handleSwitchDeviceDocClassCode', activeTabKey)
+        if (activeTabKey && !this.hasLoadedDataTabKeyArray.includes(activeTabKey)) {
+          if (activeTabKey === 1) {
+            this.$nextTick(() => {
+              if (this.$refs.hasSentDocumentTableListRef) this.$refs.hasSentDocumentTableListRef.loadData(1)
+            })
+          } else {
+            this.$nextTick(() => {
+              if (this.$refs.hasReceivedDocumentTableListRef) this.$refs.hasReceivedDocumentTableListRef.loadData(1)
+            })
+          }
+          this.hasLoadedDataTabKeyArray.push(activeTabKey)
+        }
       },
 
       /**
@@ -75,6 +100,8 @@
         if (this.currentTreeNodeInfo.key !== attributionId) return
         if (docClassCode === 'SEND') {
           if (this.$refs.hasSentDocumentTableListRef) this.$refs.hasSentDocumentTableListRef.loadData(1)
+        } else {
+          if (this.$refs.hasReceivedDocumentTableListRef) this.$refs.hasReceivedDocumentTableListRef.loadData(1)
         }
       },
 
@@ -223,7 +250,6 @@
         })
       },
 
-
       /**
        * 鐐瑰嚮鍙戝竷鏃惰Е鍙戝綋鍓嶆枃妗e彂甯�
        * @param menuLabel
@@ -357,6 +383,12 @@
         })
       },
 
+      // 閲嶇疆tabKey骞朵笖閲婃斁鍔犺浇鏂囨。鍒楄〃鐨勬帴鍙�
+      releaseLoadDocumentListApi() {
+        this.hasLoadedDataTabKeyArray = []
+        this.handleTabChange(this.activeTabKey)
+      },
+
       // 鎺у埗鍙抽敭鑿滃崟鍏抽棴
       handleMenuClose() {
         this.$refs.tableContextMenuRef.menuVisible = false

--
Gitblit v1.9.3