1.单选功能
elementui中的树形可以设置checkbox,但是不能设置radio的单选功能
但官方提供了自动勾选方法:
想实现单选只需要给node增加点击事件,并控制setCheckedKeys即可
<el-tree
:data="treeData"
show-checkbox
node-key="offerSvcCode"
ref="tree"
check-strictly
highlight-current
@check-change="handleClick"
:props="defaultProps">
</el-tree>
方法:
handleClick(data,checked, node){
if(checked){
this.$refs.tree.setCheckedNodes([data]);
}
},
完成,简单可行。
2.父级checkbox失效
另外,如果想实现只能选择子类,父类不能选择功能,则要使父类的checkbox失效
想失效得在数据中加个disabled
所以得在数据上下手,每次加载完tree数据后,都自动走一下过滤方法,将父级的都加上disable
//过滤树数据,不是根子集的都禁止选择
addDisabledLable(data){
data.forEach((node)=>{
//console.log(node)
if(node.ifLeaf==0){
node.disabled=true;
return this.addDisabledLable(node.children)
}
})
},
将tree数据传入此方法中,走递归可将下面多层级的父级全部失效