zhongxiaoyu 3 лет назад
Родитель
Сommit
5a2fec7027

+ 26 - 3
src/components/msgTree/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: zk
  * @Date: 2022-02-09 15:47:09
- * @LastEditTime: 2022-03-14 10:48:53
+ * @LastEditTime: 2022-03-14 17:13:37
  * @LastEditors: your name
  * @Description: 用户组树
  * @FilePath: \Foshan4A4.0\src\components\usergrouptree\index.vue
@@ -13,7 +13,7 @@
     </div>
     <div :class="type ? 'radioBg':''" class="content">
       <el-scrollbar style="height: 100%" wrap-style="overflow-x:hidden;">
-        <el-tree ref="tree" :data="data" show-checkbox :default-props="defaultProps" default-expand-all node-key="GroupId" highlight-current @check="currentChange">
+        <el-tree ref="tree" :data="data" show-checkbox :default-props="defaultProps" :default-expanded-keys="defaultExpandedKeys" node-key="GroupId" highlight-current @check="currentChange">
           <span slot-scope="{ data }" class="custom-tree-node">
             {{ data.GroupName }}
           </span>
@@ -60,7 +60,10 @@ export default {
       data: [], // tree数据
       checkedList: [], // 已选中数据
       pageIndex: 1,
-      pageSize: 20
+      pageSize: 20,
+      defaultExpandedKeys: [-1],
+      getExpandedKeysStep: [false, false],
+      userGroupList: [],
     }
   },
   watch: {
@@ -68,6 +71,24 @@ export default {
       handler (val) {
         this.checkedList = val
         this.$refs.tree.setCheckedKeys(val)
+        this.getExpandedKeysStep.splice(0, 1, true)
+      },
+      deep: true
+    },
+    getExpandedKeysStep: {
+      handler(val) {
+        if (val.every(v => v)) {
+          this.defaultExpandedKeys = [-1]
+          this.checkedKeys.forEach(key => {
+            if (key !== -1) {
+              const group = this.userGroupList.find(item => item.GroupId == key)
+              const GroupUpid = group.GroupUpid
+              if (!this.defaultExpandedKeys.includes(GroupUpid)) {
+                this.defaultExpandedKeys.push(GroupUpid)
+              }
+            }
+          })
+        }
       },
       deep: true
     }
@@ -97,6 +118,8 @@ export default {
         PageSize: this.pageSize
       })
       const datas = result.returnData
+      this.userGroupList = datas
+      this.getExpandedKeysStep.splice(1, 1, true)
       const tree = translateDataToTreeAll(datas, 'GroupUpid', 'GroupId')
       const setDisabled = (tree, key) => {
         if (key) {

+ 33 - 2
src/components/organization/index.vue

@@ -15,7 +15,7 @@
       <div class="paren_content">
         <div class="dptBox" v-show="active == 0">
           <el-scrollbar style="height: 100%">
-            <el-tree :data="data" :check-strictly="true" default-expand-all show-checkbox @node-click="nodeClick" @check-change="currentChange" :props="defaultProps" :default-checked-keys="checkedKeys" :node-key="nodekey" ref="tree" highlight-current>
+            <el-tree :data="data" :check-strictly="true" :default-expanded-keys="defaultExpandedKeys" show-checkbox @node-click="nodeClick" @check-change="currentChange" :props="defaultProps" :default-checked-keys="checkedKeys" :node-key="nodekey" ref="tree" highlight-current>
               <span v-if="orgType == 'org'" slot-scope="{ data }" :title="data.OrganName" class="org-data-tree-node">
                 {{ data.OrganName }}
               </span>
@@ -83,6 +83,10 @@ export default {
       type: String,
       default: "org",
     },
+    orgList: {
+      type: Array,
+      default: () => []
+    }
   },
   components: { Rolelist },
   data () {
@@ -99,17 +103,44 @@ export default {
       checkedDatas: [],
       checkedId: null,
       checkedList: [], //选中的列表,
-      nodekeys: "nodekey"
+      nodekeys: "nodekey",
+      defaultExpandedKeys: [-1],
+      getExpandedKeysStep: [false, false]
     };
   },
   watch: {
     checkedKeys: {
       handler (val) {
+        console.log(val)
         this.checkedList = val;
         this.$refs.tree.setCheckedKeys(val)
+        this.getExpandedKeysStep.splice(0, 1, true)
       },
       deep: true,
     },
+    orgList: {
+      handler(val) {
+        this.getExpandedKeysStep.splice(1, 1, true)
+      },
+      deep: true
+    },
+    getExpandedKeysStep: {
+      handler(val) {
+        if (val.every(v => v)) {
+          this.defaultExpandedKeys = [-1]
+          this.checkedKeys.forEach(key => {
+            if (key !== -1) {
+              const org = this.orgList.find(item => item.OrganId == key)
+              const OrganUpid = org.OrganUpid
+              if (!this.defaultExpandedKeys.includes(OrganUpid)) {
+                this.defaultExpandedKeys.push(OrganUpid)
+              }
+            }
+          })
+        }
+      },
+      deep: true
+    }
   },
   mounted () {
     if (this.data != null) {

+ 4 - 3
src/components/permissiontree/index.vue

@@ -41,7 +41,7 @@
       <div class="paren_cont">
         <el-scrollbar style="height: 100%">
           <!-- <el-tree :data="data" show-checkbox :check-strictly="true" @check-change="currentChange" @node-click="handleNodeClick" :defaultProps="defaultProps" :expand-on-click-node="false" node-key="AuthId" default-expand-all ref="tree" highlight-current> -->
-          <el-tree :data="data" show-checkbox @check-change="currentChange" default-expand-all @node-click="handleNodeClick" :defaultProps="defaultProps" node-key="AuthId" ref="tree" highlight-current>
+          <el-tree :data="data" show-checkbox @check-change="currentChange" :default-expanded-keys="defaultExpandedKeys" @node-click="handleNodeClick" :defaultProps="defaultProps" node-key="AuthId" ref="tree" highlight-current>
             <span class="custom-tree-node" slot-scope="{ data }">
               {{ data.AuthName }}
               <div class="logup">
@@ -119,6 +119,7 @@ export default {
       oldType: "",
       queryIdArr: [], //历史查询ID
       MainJobId: "",//主岗ID
+      defaultExpandedKeys: [-1]
     };
   },
   watch: {
@@ -257,11 +258,11 @@ export default {
       arr = translateDataToTreeAll(this.AuthArrList, "UpAuthId", "AuthId");
       let items = null;
       items = {
-        AuthId: 0,
+        AuthId: -1,
         AuthName: "所有权限",
         QueryTarget: 0,
         Status: 0,
-        UpAuthId: 0,
+        UpAuthId: -2,
         Type: 0,
         disabled: true,
         children: arr,

+ 26 - 3
src/components/usergrouptree/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: zk
  * @Date: 2022-02-09 15:47:09
- * @LastEditTime: 2022-03-14 10:48:50
+ * @LastEditTime: 2022-03-14 17:13:55
  * @LastEditors: your name
  * @Description: 用户组树
  * @FilePath: \Foshan4A4.0\src\components\usergrouptree\index.vue
@@ -13,7 +13,7 @@
     </div>
     <div :class="type ? 'radioBg':''" class="content">
       <el-scrollbar style="height: 100%" wrap-style="overflow-x:hidden;">
-        <el-tree ref="tree" :data="data" show-checkbox :check-strictly="true" :default-props="defaultProps" default-expand-all node-key="GroupId" highlight-current @check-change="currentChange">
+        <el-tree ref="tree" :data="data" show-checkbox :check-strictly="true" :default-props="defaultProps" :default-expanded-keys="defaultExpandedKeys" node-key="GroupId" highlight-current @check-change="currentChange">
           <span slot-scope="{ data }" class="custom-tree-node">
             {{ data.GroupName }}
           </span>
@@ -64,7 +64,10 @@ export default {
       data: [], // tree数据
       checkedList: [], // 已选中数据
       pageIndex: 1,
-      pageSize: 20
+      pageSize: 20,
+      defaultExpandedKeys: [-1],
+      getExpandedKeysStep: [false, false],
+      userGroupList: [],
     }
   },
   watch: {
@@ -72,6 +75,24 @@ export default {
       handler (val) {
         this.checkedList = val
         this.$refs.tree.setCheckedKeys(val)
+        this.getExpandedKeysStep.splice(0, 1, true)
+      },
+      deep: true
+    },
+    getExpandedKeysStep: {
+      handler(val) {
+        if (val.every(v => v)) {
+          this.defaultExpandedKeys = [-1]
+          this.checkedKeys.forEach(key => {
+            if (key !== -1) {
+              const group = this.userGroupList.find(item => item.GroupId == key)
+              const GroupUpid = group.GroupUpid
+              if (!this.defaultExpandedKeys.includes(GroupUpid)) {
+                this.defaultExpandedKeys.push(GroupUpid)
+              }
+            }
+          })
+        }
       },
       deep: true
     }
@@ -123,6 +144,8 @@ export default {
           })]
         }
       } else {
+      this.userGroupList = datas
+      this.getExpandedKeysStep.splice(1, 1, true)
         const tree = translateDataToTreeAll(datas, 'GroupUpid', 'GroupId')
         const setDisabled = (tree, key) => {
           if (key) {

+ 8 - 6
src/views/organizationManagement/components/organizationEdit.vue

@@ -1,8 +1,8 @@
 <!--
  * @Author: your name
  * @Date: 2021-11-29 11:26:07
- * @LastEditTime: 2022-02-28 17:09:18
- * @LastEditors: Please set LastEditors
+ * @LastEditTime: 2022-03-14 17:19:19
+ * @LastEditors: your name
  * @Description:新增组织
  * @FilePath: \Foshan4A2.0\src\views\authorityManagement\components\authorityPower.vue
 -->
@@ -54,7 +54,7 @@
     </div>
     <div class="power-content flex-wrap">
       <div class="flex1 part">
-        <Organization :defaultProps="defaultProps" :data="data" nodekey="OrganId" @getTreeData="getTreeData" :checkedKeys="checkedKeys" title="上级组织" />
+        <Organization :defaultProps="defaultProps" :data="data" nodekey="OrganId" @getTreeData="getTreeData" :checkedKeys="checkedKeys" :orgList="orgList" title="上级组织" />
       </div>
     </div>
   </div>
@@ -126,6 +126,7 @@ export default {
       checkTrees: [], //上级权限选中树数据
       rulesObj: {}, //权限规则数据
       upRoleList: [],
+      orgList: []
     };
   },
   computed: {
@@ -170,9 +171,10 @@ export default {
   methods: {
     //获取选中的树数据
     getTreeData (arr) {
-      const { OrganUpid, OrganId } = arr[0];
-      this.OrganUpid = OrganUpid;
-      this.AppId = OrganId;
+      if (arr.length === 1) {
+        const { OrganId } = arr[0];
+        this.OrganUpid = OrganId;
+      }
     },
     //获取指定数据
     decompose (data, id) {

+ 3 - 2
src/views/organizationManagement/minixs/treeData.js

@@ -1,8 +1,8 @@
 /*
  * @Author: your name
  * @Date: 2021-12-22 17:00:22
- * @LastEditTime: 2022-01-06 16:10:10
- * @LastEditors: Please set LastEditors
+ * @LastEditTime: 2022-03-14 17:08:51
+ * @LastEditors: your name
  * @Description: 获取权限树
  * @FilePath: \Foshan4A2.0\src\views\authorityManagement\minixs\treeData.js
  */
@@ -51,6 +51,7 @@ export default {
             disabled: true,
             children: translateDataToTreeAll(result.returnData, 'OrganUpid', 'OrganId')
           }
+          this.orgList = result.returnData
           this.dataList = obj
           this.dataArr = result.returnData;
           this.dataArr.push({

+ 4 - 3
src/views/staffManagement/compontents/staffEdit.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2022-02-10 14:49:20
- * @LastEditTime: 2022-03-14 10:59:58
+ * @LastEditTime: 2022-03-14 15:54:27
  * @LastEditors: your name
  * @Description: 编辑职员
  * @FilePath: \Foshan4A4.0\src\views\staffManagement\compontents\staffEdit.vue
@@ -41,7 +41,7 @@
     </div>
     <div class="power-content flex-wrap">
       <div class="r24 flex1 part">
-        <Organization ref="Organization" :defaultProps="defaultProps" :mainData="mainData" :vice="true" :data="data" @getTreeData="getOrgan" @radioChange="radioChange" :checkedKeys="orgCheckedKeys" :radioCheck="radioNum" nodekey="OrganId" title="选择组织" />
+        <Organization ref="Organization" :defaultProps="defaultProps" :mainData="mainData" :vice="true" :data="data" @getTreeData="getOrgan" @radioChange="radioChange" :checkedKeys="orgCheckedKeys" :orgList="orgList" :radioCheck="radioNum" nodekey="OrganId" title="选择组织" />
       </div>
       <!--开启多对多-->
       <template v-if="OpenAuthData">
@@ -202,7 +202,8 @@ export default {
       onCheckedArr: [],//当前显示选中权限组
       alljobArr: [],//全部岗位
       GroupIds: [], //当前选中的用户组
-      userGroupKeys: [] //当前回调选中的用户组
+      userGroupKeys: [], //当前回调选中的用户组
+      orgList: []
     };
   },
   computed: {

+ 3 - 2
src/views/staffManagement/minixs/treeData.js

@@ -1,8 +1,8 @@
 /*
  * @Author: your name
  * @Date: 2021-12-22 17:00:22
- * @LastEditTime: 2022-02-17 13:50:31
- * @LastEditors: Please set LastEditors
+ * @LastEditTime: 2022-03-14 15:30:53
+ * @LastEditors: your name
  * @Description: 获取权限树
  * @FilePath: \Foshan4A2.0\src\views\authorityManagement\minixs\treeData.js
  */
@@ -52,6 +52,7 @@ export default {
             disabled: true,
             children: translateDataToTreeAll(result.returnData, 'OrganUpid', 'OrganId')
           }
+          this.orgList = result.returnData
           this.dataList = obj
         } else {
           const obj = {