前言
微信小程序默认给我们提供了一个省市区的picker选择器,只需将mode设置为region即可
<picker mode="region" bindchange="bindRegionChange" value="{{region}}" custom-item="{{customItem}}" >
因为小程序默认提供的省市区选择器只能保存名称,不能保存id,而且我也不需要选择三级城市,所以这里打算通过mode="multiSelector"
来实现省份城市的选择
城市数据json格式
关于省份城市数据的获取,这里我通过接口去获取数据,返回的json格式为
{ "code": 0, "msg": "success", "data": [ { "id": 2, "name": "北京", "children": [ { "id": 36, "name": "北京市" } ] } ] }
在我们保存提交的时候只需要保存省份和城市的id即可
picker多列选择器的用法
<picker mode="multiSelector" @change="bindCityChange" @columnchange="bindCityColumnChange" :value="multiIndex" :range="multiArray" range-key="name" > <view class="picker">选择城市{{userInfo.province.name}},{{userInfo.city.name}}</view> </picker>
设置picker mode属性为multiSelector
mode="multiSelector"
1、这里需要注意的是,在mpvue中无法直接使用bindchange和bindcolumnchange,而是使用@change和@columnchange这种方式
2、value是一个数组,例如我们有两列
[["北京", "湖南"], ["长沙", "永州"]]
3、range也是一个数组,指定的是value值的选中索引值,下标从0开始,如[0,0]
4、如果我们的数据是一个二维对象数组,我们可以通过使用range-key来指定Object 中 key 的值作为选择器显示内容
5、当我们确认选中之后会触发@change事件
// 城市选择 获取选中的值 [0,0] 这里需要注意的是获取值的方式在mpvue中通过e.mp.detail.value而不是e.detail.value bindCityChange(e) { // 选中的值索引 console.log(e.mp.detail.value[0], e.mp.detail.value[1]); // 选中的省份和城市数据 console.log( this.multiArray[0][e.mp.detail.value[0]], this.multiArray[1][e.mp.detail.value[1]] ); this.userInfo.province = this.multiArray[0][e.mp.detail.value[0]]; this.userInfo.city = this.multiArray[1][e.mp.detail.value[1]]; },
6、在我们滚动每一列的值的时候会触发@columnchange事件
7、通过e.mp.detail.column
和e.mp.detail.value
可以获取到修改列对应的值
console.log( "修改的列为", e.mp.detail.column, ",值为", e.mp.detail.value );
通过获取到修改的数据更新multiIndex的值
// 监听滚动事件 滚动第一列 修改第二列数据 bindCityColumnChange(e) { // 更新multiIndex的值 this.multiIndex[e.mp.detail.column] = e.mp.detail.value; //加载对应省份下城市数据 switch (e.mp.detail.column) { case 0: // this.multiArray[1] = this.cityList[e.mp.detail.value].children; this.multiArray = [ this.cityList, this.cityList[e.mp.detail.value].children ]; break; } },
data() { return { multiIndex: [0, 0], multiArray: [], } }
参考阅读
- https://www.jb51.net/article/121309.htm
- https://developers.weixin.qq.com/miniprogram/dev/component/picker.html
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]