From 2ceb99a629b70a3d63154656b534dcc603af78e7 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期五, 14 二月 2025 13:55:45 +0800
Subject: [PATCH] 1、调整产品和设备结构树权限配置分配用户时,admin只有在分配后或者有权限时才会被禁用

---
 src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue |  100 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 93 insertions(+), 7 deletions(-)

diff --git a/src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue b/src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue
index 60bea4b..3d5c716 100644
--- a/src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue
@@ -8,11 +8,12 @@
     @ok="handleOk"
     @cancel="handleCancel"
     cancelText="鍏抽棴">
-    <ProcessModalForm ref="realForm" @ok="submitCallback"/>
+    <ProcessModalForm ref="realForm" @ok="submitCallback" :allDeviceList="allDeviceList"/>
   </j-modal>
 </template>
 
 <script>
+  import dncApi from '@/api/dnc'
   import ProcessModalForm from './ProcessModalForm.vue'
 
   export default {
@@ -20,36 +21,121 @@
     components: {
       ProcessModalForm
     },
+    props: {
+      currentTreeNodeInfo: {
+        type: Object
+      }
+    },
     data() {
       return {
         title: '',
         width: 700,
-        visible: false
+        visible: false,
+        allDeviceList: [],
+        isAddNextLevel: false // 鏄惁涓烘坊鍔犱笅绾э紝浣滀负鏍戣妭鐐规槸鍚﹀睍寮�鐨勫垽鏂�
       }
     },
+    watch: {
+      visible: {
+        handler(value) {
+          if (value) this.getAllDeviceListByApi()
+        }
+      }
+    },
+    created() {
+      this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod)
+    },
     methods: {
-      add() {
+      getAllDeviceListByApi() {
+        dncApi.getAllDeviceListApi()
+          .then(res => {
+            if (res.success) this.allDeviceList = res.list
+          })
+      },
+
+      /**
+       * 鐐瑰嚮閮ㄤ欢鍒涘缓閮ㄤ欢涓嬬骇宸ュ簭
+       */
+      handleComponentAddRelative() {
+        this.isAddNextLevel = true
         this.visible = true
         this.$nextTick(() => {
-          this.$refs.realForm.add()
+          if (this.$refs.realForm) {
+            this.$refs.realForm.add({
+              productId: this.currentTreeNodeInfo.entity.productId,
+              componentId: this.currentTreeNodeInfo.entity.componentId
+            })
+          }
         })
       },
-      edit(record) {
+
+
+      /**
+       * 鐐瑰嚮闆朵欢鍒涘缓闆朵欢涓嬬骇宸ュ簭
+       */
+      handlePartsAddRelative() {
+        this.isAddNextLevel = true
         this.visible = true
         this.$nextTick(() => {
-          this.$refs.realForm.edit(record)
+          if (this.$refs.realForm) {
+            this.$refs.realForm.add({
+              productId: this.currentTreeNodeInfo.entity.productId,
+              componentId: this.currentTreeNodeInfo.entity.componentId,
+              partsId: this.currentTreeNodeInfo.entity.partsId
+            })
+          }
         })
       },
+
+      /**
+       * 鐐瑰嚮宸ュ簭娣诲姞鍚岀骇宸ュ簭
+       */
+      handleProcessAdd() {
+        this.isAddNextLevel = false
+        this.visible = true
+        this.$nextTick(() => {
+          if (this.$refs.realForm) {
+            this.$refs.realForm.add({
+              productId: this.currentTreeNodeInfo.entity.productId,
+              componentId: this.currentTreeNodeInfo.entity.componentId,
+              partsId: this.currentTreeNodeInfo.entity.partsId
+            })
+          }
+        })
+      },
+
+      /**
+       * 缂栬緫宸ュ簭淇℃伅
+       */
+      handleProcessEdit() {
+        this.isAddNextLevel = false
+        this.visible = true
+        this.$nextTick(() => {
+          if (this.$refs.realForm) {
+            this.$refs.realForm.edit({ id: this.currentTreeNodeInfo.id, ...this.currentTreeNodeInfo.entity })
+          }
+        })
+      },
+
       handleOk() {
         this.$refs.realForm.submitForm()
       },
+
       submitCallback() {
-        this.$emit('ok')
+        this.$emit('submitSuccess', this.isAddNextLevel)
         this.visible = false
       },
+
       handleCancel() {
         this.$emit('close')
         this.visible = false
+      },
+
+      triggerCorrespondingMethod({ methodName, modalTitle }) {
+        if (this[methodName]) {
+          this[methodName]()
+          this.title = modalTitle
+        }
       }
     }
   }

--
Gitblit v1.9.3