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/Permission/AssignPermissionModal.vue |   50 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 41 insertions(+), 9 deletions(-)

diff --git a/src/views/dnc/base/modules/ProductStructure/Permission/AssignPermissionModal.vue b/src/views/dnc/base/modules/ProductStructure/Permission/AssignPermissionModal.vue
index d9851a5..07b8f9e 100644
--- a/src/views/dnc/base/modules/ProductStructure/Permission/AssignPermissionModal.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Permission/AssignPermissionModal.vue
@@ -5,20 +5,22 @@
       <a-form-item label="鍚嶇О">
         <a-input readOnly :value="currentTreeNodeInfo.label"></a-input>
       </a-form-item>
-      <a-form-item label="鏄惁鍒嗛厤瀛愯妭鐐�">
+      <a-form-item label="鏄惁鍚屾椂閰嶇疆瀛愯妭鐐�">
         <a-switch v-model="isAssignSonNode"></a-switch>
       </a-form-item>
     </a-form-model>
 
     <a-tabs v-model="activeTabKey">
-      <a-tab-pane :key="1" tab="鍒嗛厤閮ㄩ棬">
+      <a-tab-pane :key="1" tab="鍒嗛厤杞﹂棿">
         <DepartPermissionTransfer ref="departPermissionTransferRef" :currentTreeNodeInfo="currentTreeNodeInfo"
-                                      :dataSource="allDepartmentsList" :isAssignSonNode="isAssignSonNode"/>
+                                  :treeDataProps="allDepartmentsList" :allTreeKeys="allTreeKeys"
+                                  :isAssignSonNode="isAssignSonNode"/>
       </a-tab-pane>
 
       <a-tab-pane :key="2" tab="鍒嗛厤鐢ㄦ埛">
         <UserPermissionTransfer ref="userPermissionTransferRef" :currentTreeNodeInfo="currentTreeNodeInfo"
-                                :dataSource="allUsersList" :isAssignSonNode="isAssignSonNode"/>
+                                :dataSource="allUsersList" :isAssignSonNode="isAssignSonNode"
+                                @setAdminDisabled="setAdminDisabled"/>
       </a-tab-pane>
     </a-tabs>
   </a-modal>
@@ -28,6 +30,7 @@
   import dncApi from '@/api/dnc'
   import DepartPermissionTransfer from './DepartPermissionTransfer'
   import UserPermissionTransfer from './UserPermissionTransfer'
+  import { queryProductionTreeList } from '@/api/api'
 
   export default {
     name: 'AssignPermissionModal',
@@ -45,6 +48,7 @@
         activeTabKey: 1,
         allDepartmentsList: [],
         allUsersList: [],
+        allTreeKeys: [],
         hasLoadedDataTabKeyArray: []
       }
     },
@@ -75,18 +79,37 @@
         this.visible = true
       },
 
-      // 璋冪敤鎺ュ彛鑾峰彇鎵�鏈夐儴闂ㄥ垪琛�
+      // 璋冪敤鎺ュ彛鑾峰彇鎵�鏈夎溅闂村垪琛�
       getAllDepartmentsListByApi() {
-        dncApi.getAllDepartmentsListApi()
+        this.allTreeKeys = []
+        queryProductionTreeList()
           .then(res => {
             if (res.success) {
-              this.allDepartmentsList = res.list
-              this.$nextTick(() => this.$refs.departPermissionTransferRef.getHasPermissionDepartByApi())
-              // 鍙湁涓婃閫�鍑烘椂鍦ㄩ儴闂ㄥ垎閰峵ab鐣岄潰鎵嶄細杩涘叆姝ゅ垽鏂�
+              this.allDepartmentsList = res.result
+              this.generateList(this.allDepartmentsList)
+              this.$nextTick(() => {
+                this.$refs.departPermissionTransferRef.getHasPermissionDepartByApi()
+                this.$refs.departPermissionTransferRef.expandedKeys = this.allTreeKeys
+                this.$refs.departPermissionTransferRef.flatten(JSON.parse(JSON.stringify(this.allDepartmentsList)))
+              })
+              // 鍙湁涓婃閫�鍑烘椂鍦ㄨ溅闂村垎閰峵ab鐣岄潰鎵嶄細杩涘叆姝ゅ垽鏂�
               // 鑻ヤ笂娆¢��鍑烘椂鍦ㄧ敤鎴峰垎閰峵ab鐣岄潰鍒欏啀娆¤繘鍏ユ椂key鐢�2鍙樹负1鏃朵細瑙﹀彂watch鐩戞祴activeTabKey鍙樺寲鍒欎細灏唊ey:1鍔犲叆hasLoadedDataTabKeyArray锛屽洜姝ゆ棤闇�鍐嶆鍔犲叆key:1
               if (!this.hasLoadedDataTabKeyArray.includes(this.activeTabKey)) this.hasLoadedDataTabKeyArray.push(this.activeTabKey)
             }
           })
+      },
+
+      /**
+       * 閫掑綊鑾峰緱鎵�鏈夋爲鑺傜偣key
+       * @param data
+       */
+      generateList(data) {
+        for (let i = 0; i < data.length; i++) {
+          const node = data[i]
+          const key = node.key
+          this.allTreeKeys.push(key)
+          if (node.children) this.generateList(node.children)
+        }
       },
 
       // 璋冪敤鎺ュ彛鑾峰彇鎵�鏈夌敤鎴峰垪琛�
@@ -100,6 +123,15 @@
           })
       },
 
+      setAdminDisabled() {
+        this.allUsersList = this.allUsersList.map(item => {
+          return {
+            ...item,
+            disabled: item.username === 'admin'
+          }
+        })
+      },
+
       handleModalClose() {
         this.visible = false
         this.hasLoadedDataTabKeyArray = []

--
Gitblit v1.9.3