From bacfef5eddedf41d22974d43a1126076461e2190 Mon Sep 17 00:00:00 2001 From: xuyiming Date: Tue, 30 Jun 2020 10:16:16 +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 | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/components/menu-permission.vue b/src/components/menu-permission.vue index c7b42db..7c5dcf5 100644 --- a/src/components/menu-permission.vue +++ b/src/components/menu-permission.vue @@ -121,7 +121,7 @@ export default { return; } - console.log("menu permission init."); + // console.log("menu permission init."); let permissionsList = this.deepClone(this.list); let permissions = this.permissions; @@ -193,17 +193,27 @@ export default { this.permissionsList.forEach((item) => { this.traverse(item, (item) => { let selected = item.selected; + let child = item.Child || []; + let selectedLength1 = 0; + let selectedLength2 = 0; - if (item.selected !== 0) { - let allSelcted = true; - - item.Child && - item.Child.forEach((v) => { - allSelcted = v.selected === 0 && allSelcted; - }); + child.forEach((v) => { + if (item.selected === 1) { + selectedLength1++; + } else if (item.selected === 2) { + selectedLength2++; + } + }); - this.$set(item, "selected", allSelcted ? 1 : 2); + if (selectedLength1 === child.length) { + selected = 1; + } else if (selectedLength1 + selectedLength2 > 0) { + selected = 2; + } else { + selected = 0; } + + this.$set(item, "selected", selected); }); }); -- 2.26.0