更新记录
1.0.0(2026-04-01)
下载此版本
首次开发
平台兼容性
uni-app(3.7.3)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| √ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
- |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
- |
√ |
√ |
uni-app x(3.7.3)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| √ |
√ |
√ |
√ |
- |
√ |
省市区县四级联动选择器
一个基于uni-app开发的省市区县四级联动选择器组件,支持多种样式和多端兼容。
功能特点
- 四级联动:支持省市区县四级选择,可通过参数控制显示三级或四级
- 两种样式:
- Picker样式:滚轮式选择器,类似原生选择器
- 仿淘宝样式:标签页式依次选取
- 数据来源:从本地JSON文件获取可靠的省市区县数据
- 三级联动数据:pca-code.json
- 四级联动数据:pcas-code.json
- 多端兼容:基于uni-app开发,支持H5、小程序、App等多平台
- 自定义弹窗:不依赖其他组件库,实现了自定义弹窗效果
- 动画效果:从底部向上弹出的平滑动画
- 可定制性:支持自定义标题、按钮颜色等
安装方法
- 将组件目录
yc-address-picker 复制到你的项目的 components 目录中
- 确保
pca-code.json 和 pcas-code.json 文件存在于组件目录中
使用示例
基本使用
<template>
<view>
<view class="trigger-button" @click="showPicker = true">
选择地区
</view>
<yc-address-picker
v-model="showPicker"
:level="4"
mode="picker"
@confirm="onConfirm"
/>
</view>
</template>
<script>
import ycAddressPicker from '@/components/yc-address-picker/yc-address-picker.vue';
export default {
components: {
ycAddressPicker
},
data() {
return {
showPicker: false
};
},
methods: {
onConfirm(result) {
console.log('选择结果:', result);
}
}
};
</script>
<style scoped>
.trigger-button {
padding: 20rpx;
background-color: #f0f0f0;
text-align: center;
border-radius: 8rpx;
margin: 20rpx;
}
</style>
自定义按钮颜色和激活颜色
<yc-address-picker
v-model="showPicker"
:level="3"
:mode="'taobao'"
:cancel-color="'#999'"
:confirm-color="'#ff6600'"
:active-color="'#ff6600'"
@confirm="onConfirm"
/>
参数说明
| 参数 |
类型 |
默认值 |
说明 |
| value / v-model |
Boolean |
false |
控制选择器的显示和隐藏 |
| selected-value |
Object |
{} |
初始选中值 |
| level |
Number |
3 |
控制显示级别:3-省市区,4-省市区县 |
| mode |
String |
'picker' |
选择器样式:'picker'-滚轮样式,'taobao'-仿淘宝样式 |
| title |
String |
'选择地区' |
弹窗标题 |
| disabled |
Boolean |
false |
是否禁用 |
| cancel-color |
String |
'#007aff' |
取消按钮颜色 |
| confirm-color |
String |
'#007aff' |
确认按钮颜色 |
| active-color |
String |
'#007aff' |
taobao模式的选择字样激活颜色 |
事件说明
| 事件 |
说明 |
回调参数 |
| confirm |
确认选择时触发 |
选择结果对象,包含province、city、district、town(四级时) |
| input |
确认选择时触发(v-model双向绑定) |
选择结果对象 |
数据结构
选择结果对象结构
{
province: { code: '110000', name: '北京市' },
city: { code: '110100', name: '北京市' },
district: { code: '110101', name: '东城区' },
town: { code: '110101001', name: '东华门街道' } // 四级时才有
}
注意事项
- 数据文件:确保
pca-code.json 和 pcas-code.json 文件存在于组件目录中,这些文件包含了完整的省市区县数据
- 多端兼容:组件使用了uni-app的跨平台能力,可在不同平台上正常运行
- 动画效果:组件添加了从底部向上弹出的动画效果,提供更好的用户体验
- 淘宝模式高度:淘宝模式的高度会根据屏幕高度自动调整,最高为屏幕高度的70%
浏览器兼容性
- H5:支持所有现代浏览器
- 小程序:支持微信小程序、支付宝小程序等
- App:支持iOS和Android
版本说明
- v1.0.0:初始版本,支持省市区县四级联动选择,两种样式,多端兼容