基于elementui|基于elementui tree控件 点击节点进行异步加载(按需加载)
【基于elementui|基于elementui tree控件 点击节点进行异步加载(按需加载)】 1.引入
2.注册数据
props: {
label: "regionName",//这里是树结构中需显示的数据(即接口返回的需展示在页面上的参数)
children: [],
isLeaf: "leaf"
}
3.注册方法
handleNodeClick(data) {
console.log("node", data);
},
// 异步树叶子节点懒加载逻辑
loadNode(node, resolve) {
console.log(node);
console.log(resolve);
// 一级节点处理
if (node.level === 0) {
this.requestTree(resolve);
}
// 其余节点处理
if (node.level >= 1) {
// 注意!把resolve传到你自己的异步中去
this.getIndex(node, resolve);
}
},
// 异步加载叶子节点数据函数
getIndex(node, resolve) {
var param = {
code: "002",
provinceId: node.data.regionCode
};
var url = "/base/inter";
this.$ajax
.post(url, param)
.then(out => {
console.log(out.data.data);
// 此处需要后台传过来一个值来判断每个节点有无子节点,实际项目中必须加上(如isRealLeaf),不传都默认为叶子节点
//out.data.data.forEach(value => {
//if (value.isRealLeaf === 'Y') {
//value.leaf = true//不为叶子节点
//} else {
//value.leaf = false//为叶子节点
//}
// })
let data = https://www.it610.com/article/out.data.data;
resolve(data);
})
.catch(error => {});
},
// 首次加载一级节点数据函数
requestTree(resolve) {
var param = {
code: "001"
};
var url = "/base/inter";
this.$ajax
.post(url, param)
.then(out => {
console.log(out.data.data);
// 此处需要后台传过来一个值来判断每个节点有无子节点,实际项目中必须加上(如isRealLeaf),不传都默认为叶子节点
//out.data.data.forEach(value => {
//if (value.isRealLeaf === 'Y') {
//value.leaf = true//不为叶子节点
//} else {
//value.leaf = false//为叶子节点
//}
// })
let data = https://www.it610.com/article/out.data.data;
resolve(data);
})
.catch(error => {});
}
4.关于后台返回数据的注意点:需返回一个判断该节点有无子节点的参数。
来源于element UI tree 控件,点击父节点进行异步加载中的一条评论,亲试有效
推荐阅读
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 基于|基于 antd 风格的 element-table + pagination 的二次封装
- 基于爱,才会有“愿望”当“要求”。2017.8.12
- javaweb|基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- 韵达基于云原生的业务中台建设 | 实战派
- EasyOA|EasyOA 基于SSM的实现 未完成总结与自我批判
- 基于stm32智能风扇|基于stm32智能风扇_一款基于STM32的智能灭火机器人设计
- stm32|基于STM32和freeRTOS智能门锁设计方案
- Python|Python 基于datetime库的日期时间数据处理