ui文档上直接给了一函数
先试试看效果是什么,加上let id=0;不然会报错
props: {
lazy: true,
lazyLoad (node, resolve) {
let id = 0;
const { level } = node;
setTimeout(() => {
const nodes = Array.from({ length: level + 1 })//创建一个新数组,数组长度level + 1
.map(item => ({//然后链式调用 map 为这个新数组每一项填充内容
value: ++id,
label: `选项${id}`,
leaf: level >= 2
}));
// 通过调用resolve将子节点数据返回,通知组件数据加载完成
resolve(nodes);
}, 1000);
}
}
node
要传的参数怎么拿?看node参数。现在程序不会报错,并且你已经理解了一大半的代码,可以打印node看看是什么
最后我完成了级联调用的效果
lazyLoad(node, resolve) {
const { level, data } = node //ui组件返回的选中的当前节点
let parentCode
if (data) {
parentCode = data.code
}
/**
* @description: 获取可选地区
* @param {*} level //0-省 ,1-市,2-区
* @param {*} parentCode 是取的上一级的code
* @return {*}
*/
getLocation({ level, parentCode }) //后端接口
.then((res) => {
const result = res.result.map((item) => {
const { level, name, code } = item // 提取属性
return {
label: name, // 修改属性名
value: name, // 修改属性名
code,
level,
leaf: level == 2
}
})
resolve(result)
})
.catch((err) => {
console.warn(err)
})
}