From 9de1dfbf3f89557145b1e81b6b32ce46853d3fcd Mon Sep 17 00:00:00 2001 From: xuyiming Date: Tue, 30 Jun 2020 11:28:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=9D=83=E9=99=90=E7=BB=84?= =?UTF-8?q?=E4=BB=B6fixed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/menu-permission.vue | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/components/menu-permission.vue b/src/components/menu-permission.vue index 05c4b99..101fa03 100644 --- a/src/components/menu-permission.vue +++ b/src/components/menu-permission.vue @@ -190,17 +190,20 @@ export default { this.uppermissions(); }, initPermissionsList() { - this.permissionsList.forEach((item) => { - this.traverse(item, (item) => { - let selected = item.selected; - let child = item.Child || []; + const getSelectedState = (item) => { + let selected = item.selected; + let child = item.Child || []; + + if (child.length > 0 && selected !== 0) { let selectedLength1 = 0; let selectedLength2 = 0; child.forEach((v) => { - if (item.selected === 1) { + let v_selected = getSelectedState(v); + + if (v_selected === 1) { selectedLength1++; - } else if (item.selected === 2) { + } else if (v_selected === 2) { selectedLength2++; } }); @@ -211,8 +214,14 @@ export default { selected = 2; } - this.$set(item, "selected", selected); - }); + item.selected = selected; + } + + return selected; + }; + + this.permissionsList.forEach((item) => { + getSelectedState(item); }); // this.$emit("change-list", this.permissionsList); -- 2.26.0