后端返回数据是全选半选一起返回,el-tree严格模式如果勾选父节点子节点会全部勾选。
根据isLeaf 过滤只获取叶子节点(最底层节点),然后只设置底层节点,父节点自然会根据这些节点判断半选全选状态
const nodesList = [ 1, 5, 7, 8, 9 ] //后端返回的节点
this.$nextTick(() => {
const nodes = []
nodesList.forEach(item => {
const node = this.$refs.tree.getNode(item);
if (node.isLeaf) { //关键,过滤掉不是叶子节点的
nodes.push(item)
}
})
this.$refs.tree.setCheckedKeys(nodes,true)
})