From 8fbfac872e852a0ad0dbe04f2b7b69e4cff3c85c Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期三, 19 三月 2025 11:26:24 +0800
Subject: [PATCH] 1、MDC零件加工管理和OEE页面开发100% 2、DNC结构树取消搜索框侧边下拉菜单改为树组件空白处右键菜单

---
 src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue |  111 +++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 82 insertions(+), 29 deletions(-)

diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue
index e67db7c..bfff7df 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,25 @@
      */
     receiveCurrentTreeNodeInfo(treeNodeInfo) {
       console.log('treeNodeInfo', treeNodeInfo)
-      // 浠庢爲缁勪欢鎺ュ彈鏍戣妭鐐逛俊鎭悗浠庣埗缁勪欢娴佸叆瀛愮粍浠�
+      const { id, type } = treeNodeInfo
+      // 浠庢爲缁勪欢鎺ュ彈鏍戣妭鐐逛俊鎭悗浠庣埗缁勪欢娴佸叆瀛愮粍浠跺苟閲嶇疆鏁版嵁
+      this.currentClickedTypeInfo = this.currentRightClickedTableRowInfo = {}
       this.currentTreeNodeInfo = treeNodeInfo
-      // 娓呯┖涓婁竴鑺傜偣宸茬粡鍔犺浇杩囧緱鏂囨。鍒楄〃tabKey
+      this.currentNCDocumentAttributionInfo = Object.assign({}, {
+        attributionId: id,
+        attributionType: type,
+        docClassCode: 'NC'
+      })
       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
@@ -105,12 +125,28 @@
     },
 
     /**
+     * 鎺ュ彈褰撳墠鐐瑰嚮鐨勮澶囩被淇℃伅
+     * @param record 褰撳墠鐐瑰嚮鐨勮澶囩被琛屼俊鎭�
+     */
+    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)
+      })
+    },
+
+    /**
      * 鎺у埗鍙抽敭鑿滃崟寮�鍚�
      * @param record 褰撳墠琛ㄦ牸琛屼俊鎭�
      */
     handleTableContextMenuOpen(record) {
       this.currentRightClickedTableRowInfo = Object.assign({}, record)
-      console.log('currentRightClickedTableRowInfo', this.currentRightClickedTableRowInfo)
       this.$refs.tableContextMenuRef.currentMenuLevel = record.param
       this.$refs.tableContextMenuRef.menuStyle.top = event.clientY + 'px'
       this.$refs.tableContextMenuRef.menuStyle.left = event.clientX + 'px'
@@ -131,16 +167,34 @@
         this.hasLoadedDataTabKeyArray.push(activeTabKey)
       }
     },
+
     /**
-     * 鏂囨。浠ュ強NC绋嬪簭瀵煎叆/鍑哄簱/鍏ュ簱鎴愬姛鍚庤Е鍙戦噸鏂板姞杞芥枃妗e垪琛�
+     * 鏂囨。浠ュ強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 })
+
+      // 鍒ゆ柇褰撳墠鍙充晶灞曠ず鐨勬枃妗g殑鎵�灞炴槸鍚︽槸褰撳墠宸﹂敭閫変腑鏍戣妭鐐规垨璁惧绫伙紝鑻ヤ笉鏄綋鍓嶅乏閿�変腑鐨勫垯鍦ㄥ鍏ュ悗涓嶅埛鏂板彸渚х殑鏂囨。鍒楄〃(閬垮厤鏃犳晥鍒锋柊)
+      // 鍒ゆ柇鏄惁鏄湪鏂囨。鍒楄〃涓繘琛屽嚭搴�/鍏ュ簱/鍙戝竷/褰掓。绛夋搷浣�,鑻ユ槸鍦ㄦ枃妗e垪琛ㄤ腑鎿嶄綔鍒欐搷浣滄垚鍔熷悗鐩存帴鍒锋柊鏂囨。鍒楄〃
+      if (!this.currentRightClickedTableRowInfo.hasOwnProperty('docId')) {
+        if (this.currentRightClickedTableRowInfo.hasOwnProperty('deviceManagementId')) {
+          // 姝ょ鎯呭喌鏄湪寮曞叆璁惧绫诲苟鍦ㄨ澶囩被鍒楄〃涓繘琛孨C鏂囨。瀵煎叆
+          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 +206,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 +223,7 @@
 
     // 鍒犻櫎褰撳墠鍙抽敭閫変腑鏂囨。
     handleDelete() {
-      const { docId, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       const that = this
       that.$confirm({
         title: '鎻愮ず',
@@ -184,7 +238,7 @@
                   message: '娑堟伅',
                   description: res.message
                 })
-                that.reloadDocumentListData({ docClassCode: param, attributionId })
+                that.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
               } else {
                 that.$notification.warning({
                   message: '娑堟伅',
@@ -218,7 +272,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 +281,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 +316,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 +326,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 +360,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 +370,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 +405,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 +415,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
@@ -391,12 +444,12 @@
     },
 
     /**
-     * 閲嶅綊妗e綋鍓嶅彸閿�変腑鏂囨。涓斿悗缁棤娉曠户缁彂甯冩垨褰掓。
+     * 褰掓。褰撳墠鍙抽敭閫変腑鏂囨。涓斿悗缁棤娉曠户缁彂甯冩垨褰掓。
      * @param menuLabel
      */
     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 +459,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