element tree 后端返回给前端所有数据展示到树里面 有一个flag标识标识当前用户的树哪个是被选中的状态
这样的话前端加个 递归方法就可以了 直接上代码
changeTree(val) {
//获取传进来的
var self = this;
if (val.length !== 0) {
val.forEach(item => {
//直接循环
let obj = {};
if(item.flag=="1"){
//判断当前树是否被选中 选中的话就push到 全局变量 arr 里面
self.arr.push(item.id); //把idpush到里面
}
if (item.children !=null) {
//这里是判断下级是否还有数据 下级数据是用 children 包起来的
this.changeTree(item.children);
}
});
//循环以后直接选中 element tree
self.$refs.tree.setCheckedKeys(self.arr);
}
}
还有一个需求就是 树主节点 下有3个子节点 当随便选中一个字节点就要把主节点和选中的子节点返回给后端 直接上代码
var self = this;
let objs =[];
//获取主节点 如果子节点全部选上 这个方法就是空的
this.$refs.tree.getHalfCheckedKeys().forEach(item => {
objs.push(item)
});
// 获取选中的子节点
this.$refs.tree.getCheckedKeys().forEach(item => {
objs.push(item)
});
objs 就是包含主节点和子节点的数据 直接返回给后端就可以