微信小程序 u-picker 三级联动 uView

简介: 微信小程序 u-picker 三级联动 uView

微信小程序 u-picker 三级联动 uView

  • 场景

移动端微信小程序框架 uView 中的 u-picker 实现三级联动 数据是一级一级加载的

[12,1201,120101] 多列联动

先了解属性参数

mode可以设置为:time、region、selector、multiSelector,区分时间、地区、单列,多列模式。

default-region :设置默认的地区如:[“13”, “1303”, “130304”]

params:province、city、area,默认都为true

default-selector:默认初始值:‘[0, 1, 3]’

range-key:组件内部知道您想把对象的哪个属性当做要显示的值

@confirm:确定的方法 回调参数:column表示第几列发生了变化(从0开始),index表示当前的下标值

@cancel:取消的方法 回调参数:column表示第几列发生了变化(从0开始),index表示当前的下标值

@columnchange:列发生改变时触发,只对mode = multiSelector时有效

以上就是关于区域的基本属性还有其他时间等属性可以去官网查看

代码

HTML

<view class="" @click="areaFun">{{form.area_name}}</view> // 点击展开弹窗
<u-picker :params="params" 
  :default-selector="defaultAddress" 
  ref="uPicker" v-model="areaShow"
  mode="multiSelector" 
  :range="codeList" range-key="name"
  @columnchange="columnCode"  
  @confirm="conserveCode">
 </u-picker>

JS

亿点小知识:vue2.0 复杂数据更新数据不会更新视图所以这里使用的强制更新 this.$forceUpdate()

async areaFun() {
        let data = await addressCode() // 接口获取省市区的方法 默认返回省的方法
        // 初始化数据
        this.codeList = [
          [], //省
          [], //市
          [] // 区
        ]
        this.codeList[0] = data.data.map((item) => { // 赋值 省的数据
            return {
              code: item.code,
              name: item.name
            }
        })
        this.$forceUpdate()
         // 赋值 市的数据
        let datc = await addressCode(this.codeList[0][0].code) // 这里默认展示第一个
        this.codeList[1] = datc.data.map((item) => {
          return {
            code: item.code,
            name: item.name
          }
        })
        this.$forceUpdate()
         // 赋值 区的数据
        let dat = await addressCode(this.codeList[1][1].code)
        this.codeList[2] = dat.data.map((item) => {
          return {
            code: item.code,
            name: item.name
          }
        })
        this.$forceUpdate()
        this.areaShow = true // 显示弹框
},

@columnchange:列发生改变时触发时的代码

async columnCode(e) {
        if (e.column == 0) { // 滑动第一列 更改第二列的数据 
          let datc = await addressCode(this.codeList[0][e.index].code)
          this.codeList[1] = datc.data.map((item) => {
            return {
              code: item.code,
              name: item.name
            }
          })
          this.$forceUpdate()
          let dat = await addressCode(this.codeList[1][0].code)
          this.codeList[2] = dat.data.map((item) => {
            return {
              code: item.code,
              name: item.name
            }
          })
          this.$forceUpdate()
        }
        if (e.column == 1) { // 滑动第二列 更改第三列的数据 
          let dat = await addressCode(this.codeList[1][e.index].code)
          this.codeList[2] = dat.data.map((item) => {
            return {
              code: item.code,
              name: item.name
            }
          })
          this.$forceUpdate()
        }
      },

点击确定回显刚刚选中的地区

conserveCode(e) { // 确定
        this.form.area_name =
          `${this.codeList[0][e[0]].name}/${this.codeList[1][e[1]].name}/${this.codeList[2][e[2]].name}`
      }

以上就是微信小程序 u-picker 三级联动 uView感谢大家的阅读

如碰到其他的问题 可以私下我 一起探讨学习

如果对你有所帮助还请 点赞 收藏谢谢~!

关注收藏博客 作者会持续更新…

相关文章
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
355 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
JSON 数据可视化 小程序
uview/小程序可视化表单代码生成器文档
uview/小程序可视化表单代码生成器文档
242 0
|
小程序 JavaScript 前端开发
【易售小程序项目】项目创建+整合UI组件(FirstUI和uView)
【易售小程序项目】项目创建+整合UI组件(FirstUI和uView)
287 0
|
11月前
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
516 0
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
275 0
在线课堂+工具组件小程序uniapp移动端源码
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
2654 3
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
455 0
微信小程序更新提醒uniapp
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
399 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的汉服交易小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的汉服交易小程序的详细设计和实现(源码+lw+部署文档+讲解等)
219 7