1、需要添加loadData属性,值是方法,如 :loadData="loadData"
<a-cascader :options="options" :loadData="loadData" placeholder="请选择" :field-names="{ label: 'name', value: 'value', children: 'children' }" />
2、在created中获取省数据,注意: isLeaf属性需要添加,如果后面还有字节点,则设为false(才会加载loadData), 没有则设为true
addressSelect({ type:'province' }).then( res => { // 获取省
res.data.data.forEach(item => {
item.value = item.province_code
item.isLeaf = false
})
this.options = res.data.data
})
3、注:selectedOptions,要选择最后一项,因为最新的节点会在最后一个;处理完数据后要重新赋值,才会刷新
loadData(selectedOptions) {
const targetOption = selectedOptions[selectedOptions.length - 1]
targetOption.loading = true
if (targetOption.city_code) { // 获取区
addressSelect({ type:'area', code: targetOption.city_code}).then( res => {
targetOption.loading = false
res.data.data.forEach( item => {
item.value = item.area_code
item.isLeaf = true
})
tar

本文介绍了如何在Vue项目中使用Ant Design Vue库实现省市区级联选择,并动态加载数据。关键步骤包括设置loadData属性,于created钩子获取初始省数据,并确保isLeaf属性正确设置以触发加载子节点。同时,需要注意在处理完数据后更新selectedOptions以刷新组件。
最低0.47元/天 解锁文章
2890

被折叠的 条评论
为什么被折叠?



