1.根据checked是否为1来判断是否默认被选中(1为选中,2为未选中),现在的问题是两个checked都为1的情况下只会执行最后一个,而现在想要的效果是:只要checked为1就默认被选中
<template>
<div>
<el-tree
:data="data2"
show-checkbox
default-expand-all
node-key="checked"
ref="tree"
highlight-current
:props="defaultProps">
</el-tree>
<div class="buttons">
<el-button @click="setCheckedNodes">通过 node 设置</el-button>
</div>
</div>
</template>
<script>
export default {
methods: {
setCheckedNodes() {
console.log(this.$refs.tree)
this.$refs.tree.setCheckedNodes([{
checked: 1
}]);
}
},
data() {
return {
data2: [{
checked: 1,
label: '一级 1',
children: [{
checked: 0,
label: '二级 1-1',
children: [{
checked: 0,
label: '三级 1-1-1'
}, {
checked: 0,
label: '三级 1-1-2'
}]
}]
}, {
checked: 1,
label: '一级 2',
children: [{
checked: 0,
label: '二级 2-1'
}, {
checked: 0,
label: '二级 2-2'
}]
}, {
checked: 0,
label: '一级 3',
children: [{
checked: 0,
label: '二级 3-1'
}, {
checked: 0,
label: '二级 3-2'
}]
}],
defaultProps: {
children: 'children',
label: 'label'
}
};
}
};
</script>
目测你的 node-key 设置错误。
文档:
分别通过
default-expanded-keys
和default-checked-keys
设置默认展开和默认选中的节点。需要注意的是,此时必须设置node-key
,其值为节点数据中的一个字段名,该字段在整棵树中是唯一的。官方示例: