原本树形结构是没有参数去设置单选的,但可以自己用代码实现
el-tree
:data="tree"
show-checkbox
accordion
:filter-node-method="filterNode"
node-key="id"
ref="tree"
highlight-current
:props="defaultProps"
@check-change="selectTreeNode">
</el-tree>
/** 处理树形实现单选部分 */
// 过滤节点
filterNode(value, data) {
if (!value) return true
return data.name.indexOf(value) !== -1
},
// 选择树节点
selectTreeNode(data, checked, indeterminate) {
if (checked) {
// 只选择最底层子节点(children无值)(我的数据是最底层叶节点无children参数,所以用undefined判断)
if (data.children === 'undefined') {
this.selectTreeOption = data
}
// 主要部分:重新设置树形选中节点,且只设置当前选中,所以从始至终只能单选
const arr = [data.id]
this.$refs.tree.setCheckedKeys(arr)
}
},