From d76e64532f658545de5330fb0db30d90b061c069 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期一, 07 八月 2023 09:48:22 +0800
Subject: [PATCH] 1.优化

---
 src/views/basicSettings/roleList.vue |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/src/views/basicSettings/roleList.vue b/src/views/basicSettings/roleList.vue
index 816eb2b..8c98f45 100644
--- a/src/views/basicSettings/roleList.vue
+++ b/src/views/basicSettings/roleList.vue
@@ -128,7 +128,7 @@
                   </el-checkbox>
 
                   <div v-if="treeCenter.length>0">
-                    <div v-for="item in treeCenter[0].children" :key="item.menucode">
+                    <div v-for="(item,index) in treeCenter[0].children" :key="item.menucode">
 
                       <div
                         v-if="item.buttoncodelist ===null "
@@ -141,7 +141,7 @@
                         :key="it.menucode"
                         v-model="it.buttonChecked"
                         style="margin-left: 40px;height:26px;display: flex;"
-                        @change="val=>handleCheckedButtonChange(val,it.menucode,it.buttonChecked)"
+                        @change="val=>handleCheckedButtonChange(val,index,it.menucode,it.buttonChecked)"
                       >
 
                         <el-checkbox
@@ -298,7 +298,7 @@
 
       this.treeLeft = res
 
-      if (res.length > 0) {
+      if (res && res.length > 0) {
         this.$nextTick(() => { // 榛樿閫変腑绗竴涓�
           this.$refs.treeLeftRef.setCurrentKey(res[0].roles[0].code) // 榛樿閫変腑鑺傜偣绗竴涓�
         })
@@ -399,7 +399,7 @@
         }
       })
 
-      this.handleCheckedButtonChange('', '', '', true)
+      this.handleCheckedButtonChange('', '', '', '', true)
       this.handleCheckedDataChange('', '', true)
       // this.$forceUpdate()
     },
@@ -462,14 +462,17 @@
       }
     },
     // 鍗曚釜鎸夐挳鏀瑰彉
-    handleCheckedButtonChange(oldValue, code, newValue, flag) {
-      // console.log(oldValue, code, newValue, 2)
+    handleCheckedButtonChange(oldValue, index, code, newValue, flag) {
+      console.log(oldValue, index, code, newValue, 2)
       // 鍒ゆ柇鏄惁鍖呭惈鍦ㄥ唴
       if (!flag) {
         if (!this.menuCheckedCodeArr.includes(code) && oldValue.length === 0 && newValue.length === 1) { // 鍚�
           this.menuCheckedCodeArr.push(code)
         } else if (this.menuCheckedCodeArr.includes(code) && oldValue.length === 1 && newValue.length === 0) { // 鏄�
-          this.menuCheckedCodeArr = this.menuCheckedCodeArr.filter(i => i !== code)
+          // 褰撴暟鎹潈闄愭湭鍕鹃�夋椂鍒欒繃婊ゆ帀鐩稿搴旂殑鑿滃崟
+          if (this.treeCenter[0].children[index].children.find(i => i.menucode === code).dataChecked.toString().length < 1) {
+            this.menuCheckedCodeArr = this.menuCheckedCodeArr.filter(i => i !== code)
+          }
         }
         this.$refs.treeCenterRef.setCheckedKeys(this.menuCheckedCodeArr)
       }
@@ -525,6 +528,7 @@
     // 澶勭悊涓棿鏍戝舰閫変腑鍊兼敼鍙�
     handleTreeCenterCheckChange(obj, selfChecked, selfChildrenTreeCheck) {
       // console.log(obj, selfChecked, selfChildrenTreeCheck, '鐜嬭�佸悏')
+      console.log(selfChecked, 10)
       if (!selfChildrenTreeCheck) {
         if (!selfChecked) { // 浠庨�変腑鍒颁笉閫変腑
           obj.buttonChecked = []
@@ -532,6 +536,8 @@
           this.menuCheckedCodeArr = this.menuCheckedCodeArr.filter(i => i !== obj.menucode)
         }
         if (selfChecked) { // 浠庝笉閫変腑鍒伴�変腑
+          console.log(obj, 9)
+          obj.buttonCheckedCode = []
           this.treeCenter[0].children.forEach(item => {
             if (item.children && item.children.length) {
               item.children.forEach(it => {
@@ -542,6 +548,7 @@
             }
           })
         }
+
         this.$forceUpdate()
       }
     },

--
Gitblit v1.9.3