uniapp-nutui 版本号
0.2.4
平台
weapp
重现链接
<nut-cell title="请选择省市区街道" is-link @click="showAddress"> <nut-address v-model="value" v-model:visible="showPopup" :province="address.province" :city="address.city" :country="address.country" :town="address.town" @change="onChange" @close="close" custom-address-title="请选择所在地区" > <script lang="ts" setup> import { ref, reactive } from 'vue'; const showPopup = ref(false); const address = reactive({ province: [ { id: 1, name: '北京' }, { id: 2, name: '广西' }, { id: 3, name: '江西' }, { id: 4, name: '四川' }, ], city: [], country: [], town: [], }); const value = ref([]); const text = ref('请选择地址'); const showAddress = () => { showPopup.value = !showPopup.value; }; const onChange = (cal) => { console.log(cal); }; const close = (val) => { console.log(val); text.value = val.data.addressStr; }; // 根据省code获取所有市 const getCityByProvinceCode = (provinceCode: string) => { address.city = [ { id: 7, name: '南京市' }, { id: 8, name: '北京市' }, { id: 9, name: '滁州市' }, { id: 6, name: '上海市' }, ]; }; // 根据市code获取所有区 const getCountryByCityCode = (CityCode: string) => { address.country = [ { id: 20, name: '雨花台区' }, { id: 21, name: '江宁区' }, { id: 22, name: '南谯区' }, ]; }; // 根据区code获取所有街道 const getTownByCountryCode = (countryCode: string) => { address.town = [ { id: 10, name: '板桥街道' }, { id: 11, name: '铁心桥街道' }, { id: 12, name: '大王街道' }, ]; }; </script>
重现步骤
1. 使用自定义地址,已有province数据,此时city,country和town都是空数组;
2. 根据选中的provinceCode去请求city数组,然后赋值给city,组件在city数据为空时,选择province时,直接关闭了弹窗,change事件里拿不到此时选择的信息,只能在cloesed回调里拿到已选择的地址,但是弹窗已经关闭
期望的结果是什么?
期望在只有province数据的情况下,选择某一省份,能够在change回调参数里拿到当前选择的信息,并且弹窗不会自动关闭,这样才可以根据provinceCode去获取下一级数据
实际的结果是什么?
目前在只有province数据的情况下,选择某一省份,弹窗自动关闭,change回调参数拿不到当前选中的信息,只能在closed回调里获取到,这样无法完成业务根据选择的信息获取下一级数据
环境信息
No response
其他补充信息
vue: 3.2.47
vite:4.3.8
node:16.5.1