当前位置: 首页 > news >正文

uniApp 省市区自定义数据

关于自定义省市区选择 其实也是用了 uniApp的内置组件 picker  

<picker mode="multiSelector" @change="bindRegionChange"
@columnchange="bindMultiPickerColumnChange" :value="valueRegion" :range="multiArray"><view class='acea-row'><view class="picker line1">{{region[0]}},{{region[1]}},{{region[2]}}</view><view class='iconfont icon-xiangyou abs_right'></view></view></picker>data(){return{region: ['省', '市', '区'],valueRegion: [0, 0, 0],district: [],multiArray: [],multiIndex: [0, 0, 0],cityId: 0,}
},
methods:{// 获取地址数据getCityList: function() {let that = this;getCity().then(res => {this.district = res.data;let oneDay = 24 * 3600 * 1000;//设置不过期时间的方法  可以换成uni.setStorageSync('xx',xx)this.$Cache.setItem({name:'cityList',value:res.data,expires:oneDay * 7});  //设置七天过期时间that.initialize();})},initialize: function() {let that = this,province = [],city = [],area = [];if (that.district.length) {let cityChildren = that.district[0].child || [];let areaChildren = cityChildren.length ? (cityChildren[0].child || []) : [];that.district.forEach(function(item) {province.push(item.name);});cityChildren.forEach(function(item) {city.push(item.name);});areaChildren.forEach(function(item) {area.push(item.name);});this.multiArray = [province, city, area]}},bindRegionChange: function(e) {let multiIndex = this.multiIndex,province = this.district[multiIndex[0]] || {child: []},city = province.child[multiIndex[1]] || {cityId: 0},multiArray = this.multiArray,value = e.detail.value;this.region = [multiArray[0][value[0]], multiArray[1][value[1]], multiArray[2][value[2]]]this.cityId = city.cityIdthis.valueRegion = [0, 0, 0]this.initialize();},bindMultiPickerColumnChange: function(e) {let that = this,column = e.detail.column,value = e.detail.value,currentCity = this.district[value] || {child: []},multiArray = that.multiArray,multiIndex = that.multiIndex;multiIndex[column] = value;switch (column) {case 0:let areaList = currentCity.child[0] || {child: []};multiArray[1] = currentCity.child.map((item) => {return item.name;});multiArray[2] = areaList.child.map((item) => {return item.name;});break;case 1:let cityList = that.district[multiIndex[0]].child[multiIndex[1]].child || [];multiArray[2] = cityList.map((item) => {return item.name;});break;case 2:break;}// #ifdef MP || APP-PLUSthis.$set(this.multiArray, 0, multiArray[0]);this.$set(this.multiArray, 1, multiArray[1]);this.$set(this.multiArray, 2, multiArray[2]);// #endif// #ifdef H5this.multiArray = multiArray;// #endifthis.multiIndex = multiIndex// this.setData({ multiArray: multiArray, multiIndex: multiIndex});},
}

http://www.lryc.cn/news/472910.html

相关文章:

  • 图解Redis 06 | Hash数据类型的原理及应用场景
  • 在 Windows 系统上设置 MySQL8.0以支持远程连接
  • 四种基本的编程命名规范
  • 【前端】在 TypeScript 中使用 AbortController 取消异步请求
  • k8s知识点总结
  • 论文阅读:三星-TinyClick
  • Windows on ARM上使用sherpa-onnx实现语音识别
  • Unity 打包AB Timeline 引用丢失,错误问题
  • 【Kettle的安装与使用】使用Kettle实现mysql和hive的数据传输(使用Kettle将mysql数据导入hive、将hive数据导入mysql)
  • STM32的hal库在实现延时函数(例如:Delay_ms 等)为什么用滴答定时(Systick)而不是定时器定时中断,也不是RTC?
  • 刚刚买的域名被DNS劫持了怎么处理
  • 递归 算法专题
  • Logstash 迁移索引元数据(设置和映射)
  • 用python将pdf转成图片转换成对应的word文件
  • list(c++)
  • 51单片机STC8G串口Uart配置
  • uni-app使用movable-area 实现数据的拖拽排序功能
  • 如何设置使PPT的画的图片导出变清晰
  • 和鲸科技 CEO 范向伟受邀揭牌启动南京大学 2024 级大学生人工智能素养大赛
  • NewStarCTF2024-Week4-Web-WP
  • Java学习Day56:暴打舔狗!(SpringBoot)
  • RSA加密算法实现
  • 大数据新视界 -- 大数据大厂之优化大数据计算框架 Tez 的实践指南
  • java 中 List<T> 类型数据在 postgreSql 数据库中存储
  • 公共命名空间,2024年10月的笔记
  • frida脚本,自动化寻址JNI方法
  • ‌MySQL中‌between and的基本用法‌
  • Ceph 存储系统全解
  • C# ftp帮助类 项目实战优化版
  • 栈和队列相关|有效的括号|用队列实现栈|用栈实现队列|设计循环队列(C)