diff --git a/src/pages/user/RoleManager.vue b/src/pages/user/RoleManager.vue index 61f0776..9b0cac2 100644 --- a/src/pages/user/RoleManager.vue +++ b/src/pages/user/RoleManager.vue @@ -359,38 +359,62 @@ itemSon.indeterminate = false; //三级权限全选 let sonPermission = itemSon.sonPermissionList; - if (itemSon.check) { - //全选 - sonPermission.forEach(function (sonItem) { - if (itemSon.checkArr.indexOf(sonItem.id) < 0) { - itemSon.checkArr.push(sonItem.id); + // 1.存在三级权限 + if (sonPermission && sonPermission.length > 0) { + if (itemSon.check) { + //全选 + sonPermission.forEach(function (sonItem) { + if (itemSon.checkArr.indexOf(sonItem.id) < 0) { + itemSon.checkArr.push(sonItem.id); + } + }); + if (item.checkArr.indexOf(itemSon.id) < 0) { + item.checkArr.push(itemSon.id); } - }); - if (item.checkArr.indexOf(itemSon.id) < 0) { - item.checkArr.push(itemSon.id); + } else { + //取消三级全部选择 + itemSon.checkArr = []; + //从二级选中数组中移除当前二级权限 + let curItemSonIndex = item.checkArr.indexOf(itemSon.id); + item.checkArr.splice(curItemSonIndex, curItemSonIndex + 1); + } + //处理一级权限勾选图标 + let sonPermissionCount = item.sonPermissionList.length; + if (item.checkArr.length === sonPermissionCount) { + item.indeterminate = false; + item.check = true; + } else if (item.checkArr.length > 0) { + item.indeterminate = true; + item.check = false; + } else { + item.indeterminate = false; + item.check = false; } } else { - //取消三级全部选择 - itemSon.checkArr = []; - //从二级选中数组中移除当前二级权限 - let curItemSonIndex = item.checkArr.indexOf(itemSon.id); - item.checkArr.splice(curItemSonIndex, curItemSonIndex + 1); - } - //处理一级权限勾选图标 - let sonPermissionCount = this.permissionList.length; - if (item.checkArr.length === sonPermissionCount) { - item.indeterminate = false; - item.check = true; - } else if (item.checkArr.length > 0) { - item.indeterminate = true; - item.check = false; - } else { - item.indeterminate = false; - item.check = false; + // 2.不存在三级权限 + if (itemSon.check) { + if (item.checkArr.indexOf(itemSon.id) < 0) { + item.checkArr.push(itemSon.id); + } + } else { + //从二级选中数组中移除当前二级权限 + let curItemSonIndex = item.checkArr.indexOf(itemSon.id); + item.checkArr.splice(curItemSonIndex, curItemSonIndex + 1); + } + //处理一级权限勾选图标 + let sonPermissionCountSe = item.sonPermissionList.length; + if (item.checkArr.length === sonPermissionCountSe) { + item.indeterminate = false; + item.check = true; + } else if (item.checkArr.length > 0) { + item.indeterminate = true; + item.check = false; + } else { + item.indeterminate = false; + item.check = false; + } } - console.log("click"); - console.log(item); }, //三级权限-点击事件 handleGrandSonCheckChange(itemSon, item) { @@ -486,6 +510,7 @@ row.imgUrl = roleUnSelectImg; if (i === 0) { row.selectFlag = "selected"; + row.imgUrl = roleSelectedImg; } else { row.selectFlag = "unSelect"; }