- 選擇父級(jí) 自動(dòng) 選擇子級(jí)
- 選擇子級(jí)自動(dòng)選擇父級(jí)
- 取消子級(jí)不取消父級(jí)
<el-tree
ref="permissionNode"
:props="props"
:data="all_permission"
node-key="id"
check-strictly
@check="handleCheck"
@check-change="handleCheckChange"
></el-tree>
data() {
return {
props: {
// label: 'title',
children: "children"
},
all_permission:[{
id:1,
label: "父級(jí)"
children:[{
label: "子級(jí)"
parentId: 1,
}]
}]
};
},
methods:{
selectChildren(data) {
data && data.children && data.children.map(item => {
this.$refs.permissionNode.setChecked(item.id, true);
if (data.children) {
this.selectChildren(item)
}
});
},
handleCheck(data, { checkedKeys }) {
// 節(jié)點(diǎn)所對(duì)應(yīng)的對(duì)象、節(jié)點(diǎn)本身是否被選中、節(jié)點(diǎn)的子樹中是否有被選中的節(jié)點(diǎn)
//如果為取消
if (checkedKeys.includes(data.id)) {
//如果當(dāng)前節(jié)點(diǎn)有子集
this.selectChildren(data);
}
},
handleCheckChange(data, checked, indeterminate) {
// 節(jié)點(diǎn)所對(duì)應(yīng)的對(duì)象、節(jié)點(diǎn)本身是否被選中、節(jié)點(diǎn)的子樹中是否有被選中的節(jié)點(diǎn)
//如果為取消
if (checked === false) {
//如果當(dāng)前節(jié)點(diǎn)有子集
if (data.children) {
//循環(huán)子集將他們的選中取消
data.children.map(item => {
this.$refs.permissionNode.setChecked(item.id, false);
});
}
} else {
//否則(為選中狀態(tài))
//判斷父節(jié)點(diǎn)id是否為空
if (data.parentId !== 0) {
//如果不為空則將其選中
this.$refs.permissionNode.setChecked(data.parentId, true);
}
}
var check = this.$refs.permissionNode.getCheckedNodes();
console.log(data, checked, indeterminate,check);
},
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。