uview2.x u-picker省市区三级联动


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • uview2.x u-picker省市区三级联动
  • 前言
  • 二、使用步骤
    • 1.页面标签
    • 2.加载省市区数据
    • 3.滑动后进行数据变化
    • 4.点击确认
    • 5.回填
  • 总结

前言

提示:这里可以添加本文要记录的大概内容:

搜索了很多网上素材,要么是uview1.x的三级联动,要么是不合适,所以我自己研究了下代码,官网给的静态数据一开始没看明白,把数据都分开了,后面才发现,默认开始显示第二列的是第一列的选中后的数据,这是运行后的结果


`

二、使用步骤

1.页面标签

<u-picker keyName="name" :show="isAddress" @cancel="isAddress=false" ref="uPicker" class="uPicker":columns="addressColumns" @confirm="addressConfirm" @change="changeHandler" :defaultIndex="defaultAddress">data(){return {defaultAddress: [],addressColumns: [],addressData:[]
}
}

2.加载省市区数据

代码如下(示例):初始化

let {provinceData,cityData,areaData} = city;let arr=[];let province=[];let arr1=[];let arr2=[];provinceData.forEach((item, index) => {arr.push({...item,children: []});arr[index].children.push(...cityData[index]);arr[index].children.forEach((item1, index1) => {item1['children'] = [];item1.children.push(...areaData[index][index1]);});});province=arr.map(e=>{return e.label});arr1=arr[0].children.map(e=>{return e.label});arr2=arr[0].children[0].children.map(e=>{return e.label});this.addressColumns=[province,arr1,arr2]this.addressData=arr;

3.滑动后进行数据变化

代码如下(示例):

changeHandler(e) {const {columnIndex,value,values, // values为当前变化列的数组内容index,indexs,// 微信小程序无法将picker实例传出来,只能通过ref操作picker = this.$refs.uPicker} = e// 当第一列值发生变化时,变化第二列(后一列)对应的选项if (columnIndex === 0) {// picker为选择器this实例,变化第二列对应的选项let children1=this.addressData[index].children.map(e=>{return e.label})picker.setColumnValues(1, children1)// console.log(this.addressData[index].children[indexs[1]].children)let children2=this.addressData[index].children[indexs[1]].children.map(e=>{return e.label})picker.setColumnValues(2, children2)}if (columnIndex === 1) {// console.log("index",index,"indexs",indexs)let children3=this.addressData[indexs[0]].children[indexs[1]].children.map(e=>{return e.label})picker.setColumnValues(2, children3)}
},

4.点击确认

addressConfirm(e) {this.isAddress=false;this.addInfo.area=`${e.value[0]}-${e.value[1]}-${e.value[2]}`},

5.回填

let temp= item.area.split('-');let index,index1,index2=0;let arr,arr1,arr2=[];this.addressData.forEach((item, i) => {if(item.label==temp[0]){index=i;item.children.forEach((v,y)=>{if(v.label==temp[1]){index1=y;v.children.forEach((o,n)=>{if(o.label==temp[2]){index2=n;}})};})}});arr=this.addressData.map(e=>{return e.label});arr1=this.addressData[index].children.map(e=>{return e.label});arr2=this.addressData[index].children[index1].children.map(e=>{return e.label});this.addressColumns=[arr,arr1,arr2]this.defaultAddress=[index,index1,index2];

总结

希望我的代码可以给你帮助,有其他更好的写法可以一起分享,写的不好请勿喷
还有,当打包的小程序里面如果开发工具版本低的话会报setColumnValues is undefined,升级版本就可以
例如:以上就是今天要讲的内容,如果需要省市区的js可以去https://download.csdn.net/download/xiaoyou_xiaohe/85517461 这里面下载

uview2.x u-picker省市区三级联动相关推荐

  1. 微信小程序的省市区三级地址mysql_微信小程序picker实现的省市区三级联动

    微信小程序的省市区三级联动需要使用到的是Picker多列选择器,参考文档:https://www.w3cschool.cn/weix..., 案例中用到的省市区的json文件在文后发出出来. 废话不多 ...

  2. range 小程序picker_微信小程序-官方组件picker云开发省市区三级联动选择器

    早在一年多以前,我写过一篇微信小程序-省市区县三级联动选择器的文章,那时候小程序刚起步,网上找了很久没有相关的文献,官方也没有相关的组件,我就自己动手写了一个,也因为刚开始接触写的不是很好. 当时省市 ...

  3. 支付宝小程序 使用uView实现省市区三级联动的后续

    上一篇讲的是使用uView2.0实现省市区三级联动(CSDN),最后无疾而终 这次我打算一雪前耻,使用uVIew1.0版本. 很好支持支付宝小程序,然后我按照官网的步骤一顿操作.. hbuilderX ...

  4. 实战演练-java+微信小程序实现省市区三级联动

    最终效果图 官方的"省市区选择器"mode="region"里的数据是定死的由微信提供,不能做更改,好在同是picker组件mode="multiSe ...

  5. uniapp 省市区三级联动

    uniapp 省市区三级联动 需求:小程序省市区三级联动,可在子节点存在时选择父节点(也就是说可以在区存在时选择市),同时满足可以根据不同用户权限展示出两级联动(列表无省),一级联动(列表无省市只有区 ...

  6. (移动端)省市区三级联动

    index.html <!DOCTYPE html> <html><head><meta charset="UTF-8"><t ...

  7. WheelView实现省市区三级联动(数据库实现版本号附带完整SQL及数据)

    近期在实现收货地址功能.用到了省市区三级联动效果.网上找到一般都是xml或json,数据源陈旧改动麻烦,改动了一下使用数据库方式实现了一下 数据源解决,因为数据量比較大通过初始化批量运行SQL的方式不 ...

  8. jQuery省市区三级联动插件

    体验效果:http://hovertree.com/texiao/bootstrap/4/ 支持PC和手机移动端. 手机扫描二维码体验效果: 代码如下: <!DOCTYPE html> & ...

  9. android仿ios城市选择,Android 省市区三级联动选择器(仿iOS滚轮实现)

    前言 在实际的项目中需要使用到省市区三级联动的功能,在网上找来找去,都没有找到一个合适的库, 所以自己就封装了一个,不需要自己添加数据源,直接引用即可,一行代码搞定城市选择.怎么简单,怎么方便,怎么来 ...

最新文章

  1. Django 的JsonResponse 与json
  2. (转)一个带自定义分页,排序功能的DATAGRID控件(公开源码)
  3. 自定义ConfigurationSection,创建多个嵌套的ConfigurationElementCollection节点
  4. 深入理解Java中的抽象类和接口
  5. linux 进程间通信 dbus-glib【实例】详解一(附代码)(d-feet工具使用)
  6. 图解Spark On Yarn cluster模式运行机制
  7. 老鸟程序员才知道的40个小技巧
  8. 小汤学编程之JAVA基础day01——JAVA基本概念、第一个JAVA程序
  9. 沈南鹏:移动互联网会带来9大创新性的领域
  10. redis list设置过期时间_面试官:你在Redis中设置过带过期时间的Key吗?
  11. 27 构造连续的ICMP数据包
  12. html5指标源码,通达信牛股起爆点副图指标
  13. [论文阅读笔记47]ZEN-BERT-based Chinese (Z) text encoder Enhanced by N-gram representations
  14. 编程过程分享1「欢迎萌新入坑」:Python:做一个上海计算机二级答题系统的过程
  15. Redis开启远程访问
  16. 【Java毕设】基于SpringBoot实现新冠疫情统计系统(Idea+Navicat)
  17. 133.Python修炼之路【138-前端-JQuery-Json】2018.08.02
  18. 易语言网易云音乐登录post源码
  19. 英语单词音近形似转化规律研究
  20. 2021MySQL面试题

热门文章

  1. 阻止iPhone系统升级
  2. 如何將人臉變漂亮(六)
  3. Adafruit_TFTLCD 类的方法属性详解与Arduino Uno实测记录-ILI9341 LCD driver
  4. C语言——EGE入门图形库实现经典魔塔游戏
  5. 变频控制与移相控制组成的混合式控制全桥LLC谐振变换器仿真(PFM+PSM混合控制) 输出电压闭环控制,软开关,宽范围
  6. wps上下括号怎么打出来_【wps大括号怎么打出来】wps大括号怎么打两行字_wps大括号怎么打...
  7. X64位游戏逆向入门之魔兽
  8. 统一IE和世界之窗的User Agent标示(重启后生效)是什么意思啊
  9. 计算机ps高新技术考试高级,PS高新技术考试(模拟四).doc
  10. 新版iTunes Connect中重新上传app