昨天又遇到了elementui的组件的坑…
废话不多说了,下面看代码
html
<el-tree
:data="data"
node-key="keywords"
ref="tree"
show-checkbox
highlight-current
:default-expanded-keys="data.keywords"
:filter-node-method="filterNode"
@check-change='checkTree'>
<span class="custom-tree-node" slot-scope="{ node, data }">
<span>{{ data.label }}</span>
<span>{{ data.id }}</span>
</span>
</el-tree>
js
keywords:[]
/*
初始化默认el-tree选中,含父级半选,
datas[i].keywords === null 因特殊需求
讲道理,最外层的 if else是可以去掉的
setTree在请求中直接调用
*/
setTree(datas) {
for (let i in datas) {
if (datas[i].keywords === null) {
datas[i].keywords = ''
}else {
this.keywords.push(datas[i].keywords);
if (datas[i].children.length !== 0) {
this.setTree(datas[i].children);
}
this.$nextTick(() => {
this.keywords.forEach(i => {
let node = this.$refs.tree.getNode(i)
if(node.isLeaf){
this.$refs.tree.setChecked(node, true)
}
})
});
}
}
},