From 1c1000a93a88b5af5eabbf410aa264b0911dbee4 Mon Sep 17 00:00:00 2001
From: cuikaidong <ckd2942379034@163.com>
Date: 星期二, 29 七月 2025 14:18:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/dnc/base/modules/ProductStructure/Permission/AssignPermissionModal.vue |  205 ++++++++++++++++++++++++++-------------------------
 1 files changed, 104 insertions(+), 101 deletions(-)

diff --git a/src/views/dnc/base/modules/ProductStructure/Permission/AssignPermissionModal.vue b/src/views/dnc/base/modules/ProductStructure/Permission/AssignPermissionModal.vue
index 0de6856..425111e 100644
--- a/src/views/dnc/base/modules/ProductStructure/Permission/AssignPermissionModal.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Permission/AssignPermissionModal.vue
@@ -11,7 +11,7 @@
     </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"
                                   :treeDataProps="allDepartmentsList" :allTreeKeys="allTreeKeys"
                                   :isAssignSonNode="isAssignSonNode"/>
@@ -19,128 +19,131 @@
 
       <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>
 </template>
 
 <script>
-  import dncApi from '@/api/dnc'
-  import DepartPermissionTransfer from './DepartPermissionTransfer'
-  import UserPermissionTransfer from './UserPermissionTransfer'
-  import { queryProductionTreeList } from '@/api/api'
+import dncApi from '@/api/dnc'
+import DepartPermissionTransfer from './DepartPermissionTransfer'
+import UserPermissionTransfer from './UserPermissionTransfer'
 
-  export default {
-    name: 'AssignPermissionModal',
-    components: { UserPermissionTransfer, DepartPermissionTransfer },
-    props: {
-      currentTreeNodeInfo: {
-        type: Object
+export default {
+  name: 'AssignPermissionModal',
+  components: { UserPermissionTransfer, DepartPermissionTransfer },
+  props: {
+    currentTreeNodeInfo: {
+      type: Object
+    }
+  },
+  data() {
+    return {
+      visible: false,
+      title: '',
+      isAssignSonNode: true,
+      activeTabKey: 1,
+      allDepartmentsList: [],
+      allUsersList: [],
+      allTreeKeys: [],
+      hasLoadedDataTabKeyArray: []
+    }
+  },
+  watch: {
+    visible: {
+      handler(value) {
+        if (value) {
+          this.activeTabKey = 1
+          this.isAssignSonNode = true
+          this.getAllDepartmentsListByApi()
+        }
       }
     },
-    data() {
-      return {
-        visible: false,
-        title: '',
-        isAssignSonNode: true,
-        activeTabKey: 1,
-        allDepartmentsList: [],
-        allUsersList: [],
-        allTreeKeys: [],
-        hasLoadedDataTabKeyArray: []
+    activeTabKey: {
+      handler(value) {
+        if (this.hasLoadedDataTabKeyArray.includes(value)) return
+        if (value === 2) this.getAllUsersListByApi()
+        this.hasLoadedDataTabKeyArray.push(value)
       }
+    }
+  },
+  created() {
+    this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod)
+  },
+  methods: {
+    // 鐐瑰嚮鏍戣妭鐐瑰彸閿彍鍗曟潈闄愰厤缃寜閽悗瑙﹀彂
+    handleAssignPermission() {
+      this.visible = true
     },
-    watch: {
-      visible: {
-        handler(value) {
-          if (value) {
-            this.activeTabKey = 1
-            this.isAssignSonNode = true
-            this.getAllDepartmentsListByApi()
+
+    // 璋冪敤鎺ュ彛鑾峰彇鎵�鏈夎溅闂村垪琛�
+    getAllDepartmentsListByApi() {
+      this.allTreeKeys = []
+      dncApi.getAllDepartmentsListApi()
+        .then(res => {
+          if (res.success) {
+            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)
           }
-        }
-      },
-      activeTabKey: {
-        handler(value) {
-          if (this.hasLoadedDataTabKeyArray.includes(value)) return
-          if (value === 2) this.getAllUsersListByApi()
-          this.hasLoadedDataTabKeyArray.push(value)
-        }
+        })
+    },
+
+    /**
+     * 閫掑綊鑾峰緱鎵�鏈夋爲鑺傜偣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)
       }
     },
-    created() {
-      this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod)
+
+    // 璋冪敤鎺ュ彛鑾峰彇鎵�鏈夌敤鎴峰垪琛�
+    getAllUsersListByApi() {
+      dncApi.getAllUsersListApi()
+        .then(res => {
+          if (res.success) {
+            this.allUsersList = res.result
+            this.$nextTick(() => this.$refs.userPermissionTransferRef.getHasPermissionUserByApi())
+          }
+        })
     },
-    methods: {
-      // 鐐瑰嚮鏍戣妭鐐瑰彸閿彍鍗曟潈闄愰厤缃寜閽悗瑙﹀彂
-      handleAssignPermission() {
-        this.visible = true
-      },
 
-      // 璋冪敤鎺ュ彛鑾峰彇鎵�鏈夐儴闂ㄥ垪琛�
-      getAllDepartmentsListByApi() {
-        this.allTreeKeys = []
-        queryProductionTreeList()
-          .then(res => {
-            console.log('res-------------------', res)
-            if (res.success) {
-              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)
+    setAdminDisabled() {
+      this.allUsersList = this.allUsersList.map(item => {
+        return {
+          ...item,
+          disabled: item.username === 'admin'
         }
-      },
+      })
+    },
 
-      // 璋冪敤鎺ュ彛鑾峰彇鎵�鏈夌敤鎴峰垪琛�
-      getAllUsersListByApi() {
-        dncApi.getAllUsersListApi()
-          .then(res => {
-            if (res.success) {
-              this.allUsersList = res.result.records.map(item => {
-                return {
-                  ...item,
-                  disabled: item.username === 'admin'
-                }
-              })
-              this.$nextTick(() => this.$refs.userPermissionTransferRef.getHasPermissionUserByApi())
-            }
-          })
-      },
+    handleModalClose() {
+      this.visible = false
+      this.hasLoadedDataTabKeyArray = []
+    },
 
-      handleModalClose() {
-        this.visible = false
-        this.hasLoadedDataTabKeyArray = []
-      },
-
-      triggerCorrespondingMethod({ methodName, modalTitle }) {
-        if (this[methodName]) {
-          this[methodName]()
-          this.title = modalTitle
-        }
+    triggerCorrespondingMethod({ methodName, modalTitle }) {
+      if (this[methodName]) {
+        this[methodName]()
+        this.title = modalTitle
       }
     }
   }
+}
 </script>
 
 <style scoped>

--
Gitblit v1.9.3