一、官方实例
由于在点击节点时才进行该层数据的获取,默认情况下 Tree
无法预知某个节点是否为叶子节点,所以会为每个节点添加一个下拉按钮,如果节点没有下层数据,则点击后下拉按钮会消失。同时,你也可以提前告知
Tree 某个节点是否为叶子节点,从而避免在叶子节点前渲染下拉按钮。
代码实例
<el-tree
:props="props1"
:load="loadNode1"
lazy
show-checkbox>
</el-tree>
一定要设置lazy属性,并且在点击展开的时候调用load对应的方法
展示一级菜单可以采用两种形式:
- 使用data属性:data=“directories.dataList”,这种方式适合联动处理,比如选择一个下拉框然后才展示一级菜单。
- 在load方法中获取。
1.1、data属性加载
if(node.level===0){
return resolve(this.directories.dataList);
}
在联动的情况下,在符合条件,并且要取tree数据的情况,给directories.dataList赋值,tree自动回加载一级菜单,然后再load方法中加上上面的代码进行兼容。
1.2、load方法加载
if(node.level===0){
return getFirstDirectoriesData(node, resolve);
}else{
this.getNextDirectoriesData(node, resolve);
}
这个适合非联动情况。
第一次加载的时候调用getFirstDirectoriesData获取数据。
下面每次加载的时候调用getNextDirectoriesData获取数据。
获取数据大致是这样
this.$axios.post(url, self.directories.nextSearchCondition).then((res) => {
res = res.data;
if(res.success){
return resolve(res.data.directories);
}else{
self.$message.error(res.message);
return resolve([]);
}
},(res)=>{
self.showInternalError(res);
return resolve([]);
});