更新记录
1.2.0(2024-11-27)
下载此版本
支持加载自定义json,请参考文档
1.1.1(2024-11-20)
下载此版本
禁用组件默认输入框
1.1.0(2024-11-19)
下载此版本
新增支持vue2, 新增台湾省、香港特别行政区、澳门特别行政区
查看更多
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
app-vue app-nvue |
√ |
√ |
√ |
√ |
√ |
√ |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
鸿蒙元服务 |
√ |
√ |
√ |
√ |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
功能介绍
- 多端支持 (小程序,h5, app)
- 多种双向绑定(区域编码,区域名称)
- 支持返回区域编码、区域名称
- 支持加载自定义地址json内容
使用方法
-
点击右上角的 使用 HBuilder X 导入插件
按钮直接导入项目或点击 下载插件 ZIP
按钮下载插件包并解压到项目的 uni_modules
目录下
-
在需要用到该组件的页面中添加
<template>
<sh-address @change="change" v-model="data"> </sh-address>
</template>
<script>
export default {
data() {
return {
data: ['四川省', '成都市', '青羊区']
}
}
methods: {
change(addressInfo) {
console.log('选择了--->', addressInfo)
}
}
}
</script>
<!-- 自定义加载json文件 -->
<!-- 注意: 使用loadJson时 请注释源码中utils文件夹下的address.json文件 并删除源码中注释可删除的位置 以减小代码体积 -->
<template>
<sh-address :loadJson="loadAddress" @change="change" v-model="data"> </sh-address>
</template>
<script>
export default {
data() {
return {
data: ['四川省', '成都市', '青羊区']
}
}
methods: {
change(addressInfo) {
console.log('选择了--->', addressInfo)
},
loadAddress() {
// 模拟异步加载json数据
return new Promise(resolve => {
setTimeout(() => {
resolve(address)
}, 4000);
})
}
}
}
</script>
组件属性
属性名 |
类型 |
默认值 |
描述 |
modelValue/v-model |
Array |
[] |
双向绑定,一个数组从下标0开始分别填写省、市、区名称 |
v-model:codeValue |
Array |
[] |
双向绑定,一个数组从下标0开始分别填写省、市、区编码(注意:同时绑定modelValue时此属性会依照modelValue来更新所选择的内容,此时v-model:codeValue双向绑定仍然生效) |
disabled |
Boolean |
false |
是否禁用(快手小程序不支持) |
selectIndex |
Array |
[0,0,0] |
selectIndex每一项的值表示选择了 range 对应项中的第几个(下标从 0 开始) |
loadJson |
() => Promise<Array<AddressObj>> |
|
加载自定义json,需要传入一个返回Promise的函数,AddressObj类型参考下表 |
AddressObj类型
属性 |
类型 |
必填 |
code |
String |
是 |
name |
String |
是 |
child |
Array<AddressObj> |
是 |
事件
事件名称 |
类型 |
描述 |
cancel |
EventHandle |
用户点击取消时回调 |
change |
EventHandle |
用户点击确认按钮触发该事件,event = {areaCode: string,area: string,cityCode: string,provinceCode: string,province: string,city: string} |
columnchange |
EventHandle |
某一列的值改变时触发 columnchange 事件,event = {column: number, value: number},column 的值表示改变了第几列(下标从0开始),value 的值表示变更值的下标 |