社区可能有其他的方案了,但是再分享下吧,给有需要的童鞋。
效果图:
额,这个视频转GIF因为社区上传不了大图,所以剪了一部分,具体的效果还是直接工具打开代码片段预览吧~
第一步:你的页面JSON引入该组件:
{
"usingComponents": {
"city-picker": "/components/cityPicker/index"
}
}
第二步:你的页面WXML引入该组件
<city-picker visible="{{visible}}" column="2" bind:close="handleClick" bind:confirm="handleConfirm" />
第三步:你的页面JS调用
// 显示/隐藏picker选择器
handleClick() {
this.setData(
visible: !this.data.visible
})
},
// 用户选择城市后 点击确定的返回值
handleConfirm(e) {
const {
detail: {
provinceName = '',
provinceId = '',
cityName,
cityId='',
areaName = '',
areaId = ''
} = {}
} = e
this.setData({
cityId,
cityName,
areaId,
areaName,
provinceId,
provinceName
})
}
组件属性
属性 | 默认值 | 描述 |
---|---|---|
visible | false | 是否显示picker选择器 |
column | 3 | 显示几列,可选值:1,2,3 |
values | [0, 0, 0] | 必填,默认回填的省市区下标,可选择具体省市区后查看AppData的regionValue字段 |
close | function | 点击关闭picker弹窗 |
confirm | function | 点击选择器的确定返回值 |
confirm:
属性 | 默认值 | 描述 |
---|---|---|
provinceName | 北京市 | 省份名称 |
provinceId | 110000 | 省份ID |
cityName | 市辖区 | 城市名称 |
cityId | 110100 | 城市ID |
areaName | 东城区 | 区域名称 |
areaId | 110000 | 区域Id |
至于怎么获取你想默认城市的下标,可以滑动操作下选中省市区后,点击确定后查看appData里的regionValue的值。
20200605 修复picker第一列滑动过快还未暂停就点击确定,输出异常的问题。
picker滚动到别的省份,然后点击取消,再显示的话会出错
大佬,为什么我value设置为5,第一列默认还是北京啊
楼主的 pop-up 标签是自定义的?貌似 visible 设置无效了,搜索了下有 popup, van-popup, 一大堆写法,但官方文档竟然搜不到,真是无奈得很。
https://developers.weixin.qq.com/community/develop/doc/0000e6a4b8ca4874f46ea87455bc00
大佬们,帮看下这个怎么弄?
选择广东省东莞市无效呢
这个item_active 在哪里定义的,怎么没有找到。 ?
为啥一打开链接就显示“请打开工具手动导入,若未安装可点击下载”呜呜哭了
麻烦大佬帮我看看 页面是空白