uview2.0的u-picker组件实现省市二级联动
时间: 2024-05-06 07:15:53 浏览: 144
uniapp uView u-picker组件三级联动Demo
u-Picker组件是uView UI库中提供的一个选择器组件,可以通过配置项实现省市二级联动的功能。下面是一个简单的示例代码:
```html
<template>
<view>
<u-picker :options="provinceOptions" v-model="selectedProvince" @change="onProvinceChange"></u-picker>
<u-picker :options="cityOptions" v-model="selectedCity"></u-picker>
</view>
</template>
<script>
export default {
data() {
return {
provinceOptions: [], // 省份选项
cityOptions: [], // 城市选项
selectedProvince: '', // 当前选择的省份
selectedCity: '' // 当前选择的城市
}
},
mounted() {
this.loadProvinceData()
},
methods: {
// 加载省份数据
loadProvinceData() {
// TODO: 发送请求获取省份数据
// 示例数据
const data = [
{ label: '北京', value: 'beijing' },
{ label: '上海', value: 'shanghai' },
{ label: '广东', value: 'guangdong' },
]
this.provinceOptions = data
this.selectedProvince = data[0].value // 默认选中第1个省份
this.loadCityData()
},
// 加载城市数据
loadCityData() {
// TODO: 发送请求获取城市数据
// 示例数据
const data = {
beijing: [
{ label: '东城区', value: 'dongcheng' },
{ label: '西城区', value: 'xicheng' },
{ label: '朝阳区', value: 'chaoyang' },
],
shanghai: [
{ label: '浦东新区', value: 'pudong' },
{ label: '黄浦区', value: 'huangpu' },
{ label: '徐汇区', value: 'xuhui' },
],
guangdong: [
{ label: '广州市', value: 'guangzhou' },
{ label: '深圳市', value: 'shenzhen' },
{ label: '珠海市', value: 'zhuhai' },
]
}
const selectedProvince = this.selectedProvince
if (selectedProvince && data[selectedProvince]) {
this.cityOptions = data[selectedProvince]
this.selectedCity = data[selectedProvince][0].value // 默认选中第1个城市
}
},
// 省份选择变化时,更新城市选项
onProvinceChange(value) {
this.selectedCity = ''
this.loadCityData()
}
}
}
</script>
```
在这个示例中,我们通过 `u-picker` 组件分别展示了省份和城市的选项,并使用 `v-model` 绑定了当前的选择值。在页面加载时,我们调用 `loadProvinceData` 方法加载省份数据,并默认选中第一个省份。当省份选择变化时,我们调用 `onProvinceChange` 方法,更新城市选项。
注意,这个示例中的数据是硬编码的示例数据,实际开发中需要根据业务需求发送请求获取真实的省份和城市数据。
阅读全文