element tree 默认是
当子节点全选,获取 当前所有子节点+父节点id
当需求为:
当 选择 其中一个子节点,需要同时获取 父节点 id
var roleArr = this.$refs.tree
.getHalfCheckedKeys()
.concat(this.$refs.tree.getCheckedKeys());
this.$refs.tree.getHalfCheckedKeys() 用来获取父节点id,
this.$refs.tree.getCheckedKeys() 用来获取当前点击子节点id
把当前点击的子节点+对应的父节点id 一起传给后台
当点击编辑,这时 后台会返给你 父节点id+已选子节点id
问题又出现了.
后台只要给你返的是 父节点id,element tree 默认会把父节点 √ 而不是 -
即子节点全选,这明显是不对的,
解决方案:
this.menuList.forEach(menuList => {
if (menuList.parent_id !== null) {
item.menus.forEach(item => {
if (item.id === menuList.id) {
this.checkedDedault.push(item.id);
}
});
}
});
在编辑时候,删除 父节点 id 就ok了.
原因很简单,有父节点 全选,没有父节点,显示子节点,子节点不全选,父节点- 而不是 √,其余的子节点就不会被选中