接看代码
<el-tree
:data="dataList"
ref="elTreeRef"
node-key="id"
:props="treeProps"
show-checkbox
:check-strictly="true"
:default-checked-keys="checkedKeys"
@check="check"
/>
function check(data, node) {
const isCheck = node.checkedKeys.includes(data.id)
setChilrenStatus(data, isCheck)
}
function setChilrenStatus(data, checked) {
elTreeRef.value?.setChecked(data.id, checked, true)
const children = data.children
if (children.length) {
children.forEach((item) => {
findChilren(item, checked)
})
}
}
说些关键点
1、:check-strictly="true" 使子级和父级不相关
2、@check="check" 不能用check-change 会受default-checked-keys影响
3、setChilrenStatus手动控制父级对子级的影响