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/ProductStructureTree.vue |   50 +++++++++++++++++++++++++++-----------------------
 1 files changed, 27 insertions(+), 23 deletions(-)

diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue
index 328e26f..ae81024 100644
--- a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue
+++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue
@@ -9,7 +9,7 @@
             <a-menu slot="overlay">
               <a-menu-item key="1" @click="expandedKeys = allTreeKeys">灞曞紑鎵�鏈�</a-menu-item>
               <a-menu-item key="2" @click="expandedKeys = ['-1']">鍚堝苟鎵�鏈�</a-menu-item>
-              <a-menu-item key="3" @click="queryTreeData">鍒锋柊</a-menu-item>
+              <a-menu-item key="3" @click="getTreeDataByApi">鍒锋柊</a-menu-item>
             </a-menu>
             <a-button>
               <a-icon type="bars"/>
@@ -24,7 +24,7 @@
 
         <!--浜у搧缁撴瀯鏍�-->
         <div style="flex: 1;overflow:auto;margin-top: 10px">
-          <a-tree ref="tree" show-icon :expandedKeys.sync="expandedKeys"
+          <a-tree blockNode show-icon :expandedKeys.sync="expandedKeys"
                   :selectedKeys="selectedKeys" :treeData="treeDataSource" :autoExpandParent="autoExpandParent"
                   @select="handleTreeSelect" @expand="handleTreeExpand" @rightClick="handleTreeRightClick">
             <template slot="title" slot-scope="{ label, parentId, entity, key:treeKey,type}">
@@ -45,7 +45,7 @@
 
     <!--浜у搧寮圭獥-->
     <ProductModal ref="productModalFormRef" :currentTreeNodeInfo="rightClickSelected"
-                  @submitSuccess="queryTreeData"/>
+                  @submitSuccess="getTreeDataByApi"/>
     <!--閮ㄤ欢寮圭獥-->
     <ComponentModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess"/>
     <!--闆朵欢寮圭獥-->
@@ -54,6 +54,8 @@
     <ProcessModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess"/>
     <!--宸ユ寮圭獥-->
     <ProcessStepModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess"/>
+    <!--鏉冮檺閰嶇疆寮圭獥-->
+    <AssignPermissionModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess"/>
   </a-card>
 </template>
 
@@ -66,10 +68,12 @@
   import PartModal from './Part/PartModal'
   import ProcessModal from './Process/ProcessModal'
   import ProcessStepModal from './ProcessStep/ProcessStepModal'
+  import AssignPermissionModal from './Permission/AssignPermissionModal'
 
   export default {
     name: 'ProductStructureTree',
     components: {
+      AssignPermissionModal,
       ProcessStepModal,
       ProcessModal,
       PartModal,
@@ -98,11 +102,11 @@
       }
     },
     created() {
-      this.queryTreeData()
+      this.getTreeDataByApi()
       this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod)
     },
     methods: {
-      queryTreeData() {
+      getTreeDataByApi() {
         this.loading = true
         this.cardLoading = true
         dncApi.getProductStructureTreeApi().then(res => {
@@ -145,38 +149,42 @@
         this.rightClickSelected = Object.assign({}, record)
       },
 
-      /**
-       * 鏍戣妭鐐瑰彸閿崟鍑昏彍鍗曚腑鍒犻櫎鎸夐挳鏃惰Е鍙�
-       */
+      // 鏍戣妭鐐瑰彸閿崟鍑昏彍鍗曚腑鍒犻櫎鎸夐挳鏃惰Е鍙�
       handleDelete() {
-        this.$confirm({
+        const that = this
+        const { rightClickSelected: { id, type }, $confirm, url, $notification } = that
+        $confirm({
           title: '鎻愮ず',
           content: '纭鍒犻櫎姝ゆ潯璁板綍鍚楋紵',
           okText: '纭',
           okType: 'danger',
           cancelText: '鍙栨秷',
           onOk: () => {
-            console.log('this.rightClickSelected.id', this.rightClickSelected.id)
-            if (!this.url.delete) {
+            if (!url.delete) {
               this.$message.error('璇疯缃畊rl.delete灞炴��!')
               return
             }
-            const that = this
-            deleteAction(that.url.delete, { id: this.rightClickSelected.id })
+            deleteAction(url.delete + `/${id}/${type}`)
               .then((res) => {
                 if (res.success) {
-                  that.queryTreeData()
-                  that.$notification.success({
+                  that.getTreeDataByApi()
+                  $notification.success({
                     message: '娑堟伅',
                     description: res.message
                   })
                 } else {
-                  that.$notification.warning({
+                  $notification.warning({
                     message: '娑堟伅',
                     description: res.message
                   })
                 }
               })
+              .finally(() => {
+                that.$destroyAll()
+              })
+          },
+          onCancel: () => {
+            that.$destroyAll()
           }
         })
       },
@@ -187,7 +195,7 @@
       modalFormSubmitSuccess(isAddNextLevel) {
         // 鍒ゆ柇鏄惁涓烘坊鍔犱笅绾у苟涓斿垽鏂埗鑺傜偣鏄惁灞曞紑
         if (isAddNextLevel && !this.expandedKeys.includes(this.rightClickSelected.id)) this.expandedKeys.push(this.rightClickSelected.id)
-        this.queryTreeData()
+        this.getTreeDataByApi()
       },
 
       /**
@@ -257,8 +265,8 @@
         }
       },
 
-      triggerCorrespondingMethod({ methodName, modalTitle }) {
-        if (this[methodName]) this[methodName](modalTitle)
+      triggerCorrespondingMethod({ methodName }) {
+        if (this[methodName]) this[methodName]()
       },
 
       /**
@@ -296,10 +304,6 @@
 
   /deep/ .ant-card-body, /deep/ .ant-spin-nested-loading, /deep/ .ant-spin-container {
     height: 100%;
-  }
-
-  /deep/ .ant-tree-node-content-wrapper {
-    width: calc(100% - 24px);
   }
 
   /deep/ .ant-tree-title, .ant-tree-title .ant-dropdown-trigger {

--
Gitblit v1.9.3