From c59ed01f610a871f1db2869aaf08a991dddb600f Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期二, 01 八月 2023 16:14:24 +0800
Subject: [PATCH] 1.基础设置、工单管理、生产执行、统计报表菜单新增

---
 src/views/basicSettings/roleList.vue |   84 ++++++++++++++++++++++++++++-------------
 1 files changed, 57 insertions(+), 27 deletions(-)

diff --git a/src/views/basicSettings/rolePermission.vue b/src/views/basicSettings/roleList.vue
similarity index 88%
rename from src/views/basicSettings/rolePermission.vue
rename to src/views/basicSettings/roleList.vue
index a8a6f8b..89635a6 100644
--- a/src/views/basicSettings/rolePermission.vue
+++ b/src/views/basicSettings/roleList.vue
@@ -81,6 +81,7 @@
             highlight-current
             :props="defaultPropsLeft"
             :default-expand-all="true"
+            @node-click="treeLeftNodeClick"
           />
         </div>
 
@@ -120,7 +121,7 @@
 
                 <div
                   ref="scrollCenter"
-                  style="border-right: 1px solid rgba(0,0,0,0.2);width: 500px;padding-left: 10px;overflow-y: auto"
+                  style="border-right: 1px solid rgba(0,0,0,0.2);width: 600px;padding-left: 10px;overflow-y: auto"
                   :style="{height:isExpandForm?tableHeight:(tableHeight+35)+'px',}"
                   @scroll="scrollCenterScroll()"
                   @mouseover="changeScrollLeftFlag('center')"
@@ -308,12 +309,12 @@
         this.$notify.error('璇峰厛寤虹浉瀵瑰簲鐨勮鑹诧紒')
       }
     },
-
+    // 鑾峰彇鑿滃崟鏉冮檺瀵瑰簲鐨勬寜閽�
     async getRolePermissionSearchRoleMenuButton(rolecode) {
       const { data: res } = await RolePermissionSearchRoleMenuButton({ rolecode })
       this.allButtonData = res
     },
-
+    // 鑾峰彇鑿滃崟鏉冮檺
     async getRolePermissionSearchRoleMenu(rolecode) {
       const { data: res } = await RolePermissionSearchRoleMenu({ rolecode, type: 'PC' })
 
@@ -326,6 +327,7 @@
 
       this.menuCheckedCodeArr = []
 
+      // console.log(this.allButtonData, 213)
       result.forEach(item => {
         if (item.children && item.children.length) {
           item.children.forEach(it => {
@@ -340,12 +342,12 @@
             // 鏁版嵁鏉冮檺鍥炴樉
             const dataAll = this.allButtonData.tData.filter(j => j.menucode === it.code).map(j => j.name)
             const dataChecked = this.allButtonData.tData.filter(j => j.menucode === it.code && j.flag === 'Y').name
-            console.log(dataAll, dataChecked, 2)
+            // console.log(dataAll, dataChecked, 2)
             it.itemData = dataAll
             it.checkedData = dataChecked
 
             // 鐢ㄤ綔鑿滃崟鍕鹃�夊洖鏄�
-            if (buttonChecked && buttonChecked.length > 0) {
+            if (it.flag === 'Y') {
               this.menuCheckedCodeArr.push(it.code)
             }
           })
@@ -360,13 +362,15 @@
         { code: '-1', name: '鍏ㄩ儴', flag: result.every(i => i.flag === 'Y') ? 'Y' : 'N', children: result }
       ]
 
-      this.buttonIsChecked = result.every(i => i.flag === 'Y')
-
+      // this.buttonIsChecked = result.every(i => i.flag === 'Y')
+      this.handleCheckedButtonChange('', '', true)
+      this.handleCheckedDataChange('', '', true)
       // console.log(this.menuCheckedCodeArr, 2)
       this.$nextTick(() => {
         this.$refs.treeCenterRef.setCheckedKeys(this.menuCheckedCodeArr)
       })
 
+      this.$forceUpdate()
       // console.log(this.treeCenter[0].children)
     },
 
@@ -436,18 +440,19 @@
         })
       }
 
-      console.log(this.treeCenter[0].children, 20)
+      // console.log(this.treeCenter[0].children, 20)
     },
     // 鍗曚釜鎸夐挳鏀瑰彉
-    handleCheckedButtonChange(value, code) {
+    handleCheckedButtonChange(value, code, flag) {
       // 鍒ゆ柇鏄惁鍖呭惈鍦ㄥ唴
-      if (!this.menuCheckedCodeArr.includes(code) && value.length === 1) { // 鍚�
-        this.menuCheckedCodeArr.push(code)
-      } else if (this.menuCheckedCodeArr.includes(code) && value.length === 0) { // 鏄�
-        this.menuCheckedCodeArr = this.menuCheckedCodeArr.filter(i => i !== code)
+      if (!flag) {
+        if (!this.menuCheckedCodeArr.includes(code) && value.length === 1) { // 鍚�
+          this.menuCheckedCodeArr.push(code)
+        } else if (this.menuCheckedCodeArr.includes(code) && value.length === 0) { // 鏄�
+          this.menuCheckedCodeArr = this.menuCheckedCodeArr.filter(i => i !== code)
+        }
+        this.$refs.treeCenterRef.setCheckedKeys(this.menuCheckedCodeArr)
       }
-
-      this.$refs.treeCenterRef.setCheckedKeys(this.menuCheckedCodeArr)
 
       // 杩欓噷鏄垽鏂叏閫塩heckbox 鏄惁閫変腑
       let count = 0
@@ -468,8 +473,8 @@
 
     // 鑾峰彇鏍戝舰鑺傜偣node
     getLeftTreeNode(data, Node, VueComponent) {
-      console.log(data, Node, VueComponent, 2221)
-      console.log(Node.expanded)
+      // console.log(data, Node, VueComponent, 2221)
+      // console.log(Node.expanded)
       this.treeCenter[0].children.forEach(item => {
         if (item.name === data.name) {
           item.expanded = Node.expanded
@@ -483,13 +488,25 @@
       }
       this.$forceUpdate()
     },
-
+    // 澶勭悊鏍戝舰鍕鹃��
     handleTreeCenterCheck(obj, { checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys }) {
-      // console.log(obj, checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys)
+      // console.log(obj, checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys, '鍔犲瀹�')
+
+      if (checkedKeys.length === 0) { // 鏍戝舰鑿滃崟鍏ㄤ笉閫夌殑鎯呭喌涓�
+        this.buttonIsChecked = false
+        this.dataIsChecked = false
+        this.menuCheckedCodeArr = []
+      } else {
+        if (checkedKeys.includes(obj.code)) { // 鍒ゆ柇鏄惁鍖呭惈鍦ㄥ唴   //鏄�
+          this.menuCheckedCodeArr.push(obj.code)
+        } else { // 鍚�
+          this.menuCheckedCodeArr = this.menuCheckedCodeArr.filter(i => i !== obj.code)
+        }
+      }
     },
     // 澶勭悊鏍戝舰閫変腑鍊兼敼鍙�
     handleTreeCenterCheckChange(obj, selfChecked, selfChildrenTreeCheck) {
-      // console.log(obj, selfChecked, selfChildrenTreeCheck)
+      // console.log(obj, selfChecked, selfChildrenTreeCheck, '鐜嬭�佸悏')
       if (!selfChildrenTreeCheck) {
         if (!selfChecked) {
           this.treeCenter[0].children.forEach(item => {
@@ -508,13 +525,14 @@
     },
 
     // 鍗曢�夋鎸夐挳鏀瑰彉
-    handleCheckedDataChange(value, code) {
-      console.log(value, code)
+    handleCheckedDataChange(value, code, flag) {
+      // console.log(value, code)
+      if (flag) {
+        this.menuCheckedCodeArr.push(code)
+        this.menuCheckedCodeArr = [...new Set(this.menuCheckedCodeArr)]
 
-      this.menuCheckedCodeArr.push(code)
-      this.menuCheckedCodeArr = [...new Set(this.menuCheckedCodeArr)]
-
-      this.$refs.treeCenterRef.setCheckedKeys(this.menuCheckedCodeArr)
+        this.$refs.treeCenterRef.setCheckedKeys(this.menuCheckedCodeArr)
+      }
 
       // 杩欓噷鏄垽鏂叏閫塺adio 鏄惁閫変腑
       let count = 0
@@ -525,14 +543,26 @@
             if (it.checkedData) {
               count++
             }
-            childrenLength++
+            if (it.itemData.length > 0) {
+              childrenLength++
+            }
           })
         }
       })
+      // console.log(count, childrenLength, 9)
       this.dataIsChecked = count === childrenLength
+      // console.log(JSON.parse(JSON.stringify(this.treeCenter[0].children)))
+
       this.$forceUpdate()
     },
 
+    async  treeLeftNodeClick(obj, Node, VueComponent) {
+      // this.menuCheckedCodeArr = []
+
+      await this.getRolePermissionSearchRoleMenuButton(obj.code)
+      await this.getRolePermissionSearchRoleMenu(obj.code)
+    },
+
     // 鑾峰彇椤甸潰楂樺害
     getHeight() {
       this.$nextTick(() => {

--
Gitblit v1.9.3