From 8a3da11867aa8f51a402a60dd6c4a0d3723d2a8e Mon Sep 17 00:00:00 2001
From: zhangdaihao <zhangdaiscott@163.com>
Date: Sun, 20 Oct 2019 22:50:06 +0800
Subject: [PATCH] JeecgBoot 2.1.1 代码生成器AI版本发布

---
 ant-design-vue-jeecg/src/views/system/modules/UserRoleModal.vue | 56 ++++++++++++++++++++------------------------------------
 1 file changed, 20 insertions(+), 36 deletions(-)

diff --git a/ant-design-vue-jeecg/src/views/system/modules/UserRoleModal.vue b/ant-design-vue-jeecg/src/views/system/modules/UserRoleModal.vue
index 553b8a9..29c4d38 100644
--- a/ant-design-vue-jeecg/src/views/system/modules/UserRoleModal.vue
+++ b/ant-design-vue-jeecg/src/views/system/modules/UserRoleModal.vue
@@ -31,10 +31,8 @@
     <div class="drawer-bootom-button">
       <a-dropdown style="float: left" :trigger="['click']" placement="topCenter">
         <a-menu slot="overlay">
-          <!-- 简化Tree逻辑,使用默认checkStrictly为false的行为,即默认父子关联
           <a-menu-item key="1" @click="switchCheckStrictly(1)">父子关联</a-menu-item>
           <a-menu-item key="2" @click="switchCheckStrictly(2)">取消关联</a-menu-item>
-          -->
           <a-menu-item key="3" @click="checkALL">全部勾选</a-menu-item>
           <a-menu-item key="4" @click="cancelCheckALL">取消全选</a-menu-item>
           <a-menu-item key="5" @click="expandAll">展开所有</a-menu-item>
@@ -70,11 +68,10 @@
         treeData: [],
         defaultCheckedKeys:[],
         checkedKeys:[],
-        halfCheckedKeys:[],
         expandedKeysss:[],
         allTreeKeys:[],
         autoExpandParent: true,
-        checkStrictly: false,
+        checkStrictly: true,
         title:"角色权限配置",
         visible: false,
         loading: false,
@@ -88,10 +85,12 @@
         }
         this.$refs.datarule.show(this.selectedKeys[0],this.roleId)
       },
-      onCheck (checkedKeys, { halfCheckedKeys }) {
-        // 保存选中的和半选中的,后面保存的时候合并提交
-        this.checkedKeys = checkedKeys
-        this.halfCheckedKeys = halfCheckedKeys
+      onCheck (o) {
+        if(this.checkStrictly){
+          this.checkedKeys = o.checked;
+        }else{
+          this.checkedKeys = o
+        }
       },
       show(roleId){
         this.roleId=roleId
@@ -122,18 +121,24 @@
         this.checkedKeys = this.allTreeKeys
       },
       cancelCheckALL () {
+        //this.checkedKeys = this.defaultCheckedKeys
         this.checkedKeys = []
       },
+      switchCheckStrictly (v) {
+        if(v==1){
+          this.checkStrictly = false
+        }else if(v==2){
+          this.checkStrictly = true
+        }
+      },
       handleCancel () {
         this.close()
       },
       handleSubmit(){
         let that = this;
-        let checkedKeys = [...that.checkedKeys, ...that.halfCheckedKeys]
-        const permissionIds = checkedKeys.join(",")
         let params =  {
           roleId:that.roleId,
-          permissionIds,
+          permissionIds:that.checkedKeys.join(","),
           lastpermissionIds:that.defaultCheckedKeys.join(","),
         };
         that.loading = true;
@@ -150,15 +155,6 @@
           }
         })
       },
-      convertTreeListToKeyLeafPairs(treeList, keyLeafPair = []) {
-        for(const {key, isLeaf, children} of treeList) {
-          keyLeafPair.push({key, isLeaf})
-          if(children && children.length > 0) {
-            this.convertTreeListToKeyLeafPairs(children, keyLeafPair)
-          }
-        }
-        return keyLeafPair;
-      },
     },
   watch: {
     visible () {
@@ -166,23 +162,11 @@
         queryTreeListForRole().then((res) => {
           this.treeData = res.result.treeList
           this.allTreeKeys = res.result.ids
-          const keyLeafPairs = this.convertTreeListToKeyLeafPairs(this.treeData)
           queryRolePermission({roleId:this.roleId}).then((res)=>{
-            // 过滤出 leaf node 即可,即选中的
-            // Tree组件中checkStrictly默认为false的时候,选中子节点,父节点会自动设置选中或半选中
-            // 保存 checkedKeys 以及 halfCheckedKeys 以便于未做任何操作时提交表单数据
-            const checkedKeys = [...res.result].filter(key => {
-              const keyLeafPair = keyLeafPairs.filter(item => item.key === key)[0]
-              return keyLeafPair && keyLeafPair.isLeaf
-            })
-            const halfCheckedKeys = [...res.result].filter(key => {
-              const keyLeafPair = keyLeafPairs.filter(item => item.key === key)[0]
-              return keyLeafPair && !keyLeafPair.isLeaf
-            })
-            this.checkedKeys = [...checkedKeys];
-            this.halfCheckedKeys = [...halfCheckedKeys]
-            this.defaultCheckedKeys = [...halfCheckedKeys, ...checkedKeys];
-            this.expandedKeysss = this.allTreeKeys;
+              this.checkedKeys = [...res.result];
+              this.defaultCheckedKeys = [...res.result];
+              this.expandedKeysss = this.allTreeKeys;
+              //console.log(this.defaultCheckedKeys)
           })
         })
       }
--
libgit2 0.22.2