vue elementui el-tree 设置父级不可选 子级只能单选
在Vue中使用Element UI的el-tree
组件时,可以通过设置show-checkbox
属性来启用复选框,并通过check-strictly
属性来控制父节点的选中与否对子节点的影响。为了实现父级不可选且子级只能单选,可以将show-checkbox
设置为true
,并将check-strictly
设置为true
。
以下是一个简单的例子:
<template>
<el-tree
:data="treeData"
show-checkbox
node-key="id"
:props="defaultProps"
:check-strictly="true"
@check-change="handleCheckChange"
></el-tree>
</template>
<script>
export default {
data() {
return {
treeData: [
{
id: 1,
label: '一级 1',
children: [
{
id: 4,
label: '二级 1-1',
},
],
},
// ... 更多树节点数据
],
defaultProps: {
children: 'children',
label: 'label',
},
};
},
methods: {
handleCheckChange(data, checked, indeterminate) {
// 当只有一个子节点被选中时,父节点应该被选中
if (checked && data.children && data.children.length === 1) {
this.$refs.tree.setChecked(data.id, true);
}
},
},
};
</script>
在这个例子中,el-tree
组件被设置为显示复选框,并且check-strictly
属性设置为true
以确保父级节点的选中状态不会影响子级节点的选中状态。同时,通过监听check-change
事件,可以在只有一个子节点被选中时,自动选中对应的父节点。这样就实现了父级不可选且子级只能单选的需求。
评论已关闭