级联选择器(el-cascader)动态加载(lazyLoad)实现省市区三级选择、回显及参数整合
<template>
<el-cascader
v-model="selectedOptions"
:options="options"
:props="props"
@change="handleChange"
placeholder="请选择地址"
></el-cascader>
</template>
<script>
export default {
data() {
return {
selectedOptions: [], // 用于v-model,绑定选中项
options: [], // 级联选择器的选项
props: { // 级联选择器的配置
lazy: true, // 开启懒加载
lazyLoad(node, resolve) { // 懒加载方法
const { level } = node;
if (level === 0) {
return resolve(provinces); // 省份数据
} else if (level === 1) {
// 城市数据需要通过node.value获取对应的省份ID
fetchCities(node.value).then(cities => resolve(cities));
} else if (level === 2) {
// 区县数据需要通过node.value获取对应的城市ID
fetchDistricts(node.value).then(districts => resolve(districts));
}
},
value: 'id', // 每个节点的唯一值的属性名
label: 'name', // 每个节点显示的标签的属性名
children: 'children', // 子节点属性名
},
};
},
methods: {
handleChange(value) {
// 处理选中值变化,例如发送请求回显数据
console.log('Selected Address:', value);
},
},
};
</script>
这个代码实例展示了如何使用Element UI的级联选择器组件(el-cascader)进行懒加载操作,以及如何处理选中值变化。代码中使用了模拟的fetchProvinces
、fetchCities
和fetchDistricts
函数来代替实际的数据请求,并展示了如何通过node.value
来获取对应级别的数据。在实际应用中,你需要替换这些函数,使用实际的API请求获取下级选项数据。
评论已关闭