今天项目中遇到一个问题:就是后端返回给我 节点Id 根据节点id 回显父组件选中状态,当加上父子关联以后 就出现问题了
父组件默认选中,子组件全选了!!!!
想要实现的效果:
并且后端传来的数据是 【0,1,13】
于是就有了以下的代码:
<el-tree
class="tree-border"
:data="data"
show-checkbox
default-expand-all
ref="dept"
node-key="deptId"
empty-text="加载中,请稍候"
:props="defaultProps"
></el-tree>
最最最重要的来了
async getList(){
let res = await getXXX();
if(res && res .code ==200){
this.deptList = res.data;
this.defaultChecked ()
}
},
defaultChecked () { // 默认选中
this.$nextTick(() => {
const arr = []
this.deptList .forEach(item => {
if (!this.$refs.dept.getNode(item.deptId).childNodes || !this.$refs.dept.getNode(item.deptId).childNodes.length) {
arr.push(item.deptId)
}
})
this.$refs.dept.setCheckedKeys(arr)
})
},
完结撒花!!!成功实现!!!