diff --git a/src/components/menu-permission.vue b/src/components/menu-permission.vue index c7b42db044247e9a872506b627c37864189c88ee..7c5dcf54d473c0fe5903fef8d6aaaa057f39d50d 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); }); });