src/views/dnc/base/modules/ProductStructure/Permission/AssignPermissionModal.vue
@@ -5,7 +5,7 @@
      <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>
@@ -13,7 +13,8 @@
    <a-tabs v-model="activeTabKey">
      <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="分配用户">
@@ -28,6 +29,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 +47,7 @@
        activeTabKey: 1,
        allDepartmentsList: [],
        allUsersList: [],
        allTreeKeys: [],
        hasLoadedDataTabKeyArray: []
      }
    },
@@ -77,11 +80,18 @@
      // 调用接口获取所有部门列表
      getAllDepartmentsListByApi() {
        dncApi.getAllDepartmentsListApi()
        this.allTreeKeys = []
        queryProductionTreeList()
          .then(res => {
            console.log('res-------------------', res)
            if (res.success) {
              this.allDepartmentsList = res.list
              this.$nextTick(() => this.$refs.departPermissionTransferRef.getHasPermissionDepartByApi())
              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)))
              })
              // 只有上次退出时在部门分配tab界面才会进入此判断
              // 若上次退出时在用户分配tab界面则再次进入时key由2变为1时会触发watch监测activeTabKey变化则会将key:1加入hasLoadedDataTabKeyArray,因此无需再次加入key:1
              if (!this.hasLoadedDataTabKeyArray.includes(this.activeTabKey)) this.hasLoadedDataTabKeyArray.push(this.activeTabKey)
@@ -89,12 +99,30 @@
          })
      },
      /**
       * 递归获得所有树节点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)
        }
      },
      // 调用接口获取所有用户列表
      getAllUsersListByApi() {
        dncApi.getAllUsersListApi()
          .then(res => {
            if (res.success) {
              this.allUsersList = res.result.records
              this.allUsersList = res.result.records.map(item => {
                return {
                  ...item,
                  disabled: item.username === 'admin'
                }
              })
              this.$nextTick(() => this.$refs.userPermissionTransferRef.getHasPermissionUserByApi())
            }
          })