<el-tree
ref="leftTree"
:check-strictly="true"
@check-change="checkChange"
/>
/**
* @description: 重写勾选逻辑
* @param node 选中的数据
* @param checked 是否选中
* @return void
*/
checkChange(node, checked) {
//全部取消/选择
const setChecked = (arr, ifChecked) =>{
arr?.map((item) => {
this.$refs.leftTree.setChecked(item.id, ifChecked)
if(!!item?.children?.length){
setChecked(item?.children, ifChecked)
}
})
}
//如果为取消
if (checked === false) {
//如果当前节点有子集
//循环子集将他们的选中取消
setChecked(node?.children ?? [], false)
} else {
//否则(为选中状态)
//判断父节点id是否为空
if (node.pid !== 'all') {
//如果不为空则将其选中
//循环子集将他们的选中取消
setChecked(node?.children ?? [], true)
}
}
},