在实际情况中遇到的问题:角色管理 编辑权限如果只选择子权限,此时父权限是半选择,保存后再去编辑,发现父权限变成选中,且此父权限下的所有子权限都选中,但接口查询出的数据是对的
解决思路,对后端返回的树的数据进行过滤,有子节点的父节点选中状态设置成false
代码如下:
<Tree :data="permissions | filterPer" show-checkbox @on-check-change="fixTreeArray" ref="tree" ></Tree>
filters: {
filterPer(val) {
val.forEach((item) => {
if (item.children.length > 0) {
item.checked = false;
}
});
return val;
},
},