前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序----picker选择器(picker、省市区选择器)(MUI选择器)

微信小程序----picker选择器(picker、省市区选择器)(MUI选择器)

作者头像
Rattenking
发布2021-02-01 11:11:29
4.8K0
发布2021-02-01 11:11:29
举报
文章被收录于专栏:Rattenking

DEMO下载

效果图

效果图
效果图

实现原理

利用微信小程序的picker组件,其中: 1,普通选择器:mode = selector实现一级选择实例; 2,省市区选择器:mode = region实现省市区三级联动; 3, 多列选择器:mode = multiSelector实现二级和三级联动的10以内数字的乘法。

WXML

代码语言:javascript
复制
<view class="tui-picker-content">
  <view class="tui-picker-name">一级选择实例</view>
  <picker bindchange="changeCountry"  value="{{countryIndex}}" range="{{countryList}}">
    <view class="tui-picker-detail">{{countryList[countryIndex]}}</view>
  </picker>
</view>

<view class="tui-picker-content">
  <view class="tui-picker-name">省市区三级联动选择</view>
  <picker bindchange="changeRegin" mode = "region" value="{{region}}">
    <view class="tui-picker-detail">{{region[0]}} - {{region[1]}} - {{region[2]}}</view>
  </picker>
</view>

<view class="tui-picker-content">
  <view class="tui-picker-name">自定义二级联动选择</view>
  <picker bindchange="changeMultiPicker" mode = "multiSelector" value="{{multiIndex}}" range="{{multiArray}}">
    <view class="tui-picker-detail">
    {{multiArray[0][multiIndex[0]]}} * {{multiArray[1][multiIndex[1]]}} = {{multiArray[0][multiIndex[0]] * multiArray[1][multiIndex[1]]}}
    </view>
  </picker>
</view>

<view class="tui-picker-content">
  <view class="tui-picker-name">自定义三级联动选择</view>
  <picker bindchange="changeMultiPicker3" mode = "multiSelector" value="{{multiIndex3}}" range="{{multiArray3}}">
    <view class="tui-picker-detail">
    {{multiArray3[0][multiIndex3[0]]}} * {{multiArray3[1][multiIndex3[1]]}} * {{multiArray3[2][multiIndex3[2]]}} = {{multiArray3[0][multiIndex3[0]] * multiArray3[1][multiIndex3[1]] * multiArray3[2][multiIndex3[2]]}}
    </view>
  </picker>
</view>

WXSS

代码语言:javascript
复制
page{background-color: #efeff4;}
.tui-picker-content{
  padding: 30rpx;
  text-align: center;
}
.tui-picker-name{
  height: 80rpx;
  line-height: 80rpx;
}
.tui-picker-detail{
  height: 80rpx;
  line-height: 80rpx;
  background-color: #fff;
  font-size: 35rpx;
  padding: 0 10px;
  overflow: hidden;
}

JS

代码语言:javascript
复制
Page({
  data: {
    // 普通选择器列表设置,及初始化
    countryList: ['中国','美国','英国','日本','韩国','巴西','德国'],
    countryIndex: 6,
    // 省市区三级联动初始化
    region: ["四川省", "广元市", "苍溪县"],
    // 多列选择器(二级联动)列表设置,及初始化
    multiArray: [[1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9]],
    multiIndex: [3,5],
    // 多列选择器(三级联动)列表设置,及初始化
    multiArray3: [[1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9]],
    multiIndex3: [3, 5, 4]
  },
  // 选择国家函数
  changeCountry(e){
    this.setData({ countryIndex: e.detail.value});
  },
  // 选择省市区函数
  changeRegin(e){
    this.setData({ region: e.detail.value });
  },
  // 选择二级联动
  changeMultiPicker(e) {
    this.setData({multiIndex: e.detail.value})
  },
  // 选择三级联动
  changeMultiPicker3(e) {
    this.setData({ multiIndex3: e.detail.value })
  }
})

总结

1,由于微信小程序的picker组件只提供单独时间选择器和日期选择器,在实际开发中,我们可能需要同时选择日期和时间,组件不够全面,所以在做日期选择器时,需要注意; 2,解决日期和时间选择器结合的方法,利用多列选择器实现; 3,由于多列选择器的数据采用的是二维数组,所以不能直接实现联动效果,需要对数据判断处理。

合理的利用多列选择器,picker组件提供的其他四种选择器都能实现!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/12/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 效果图
  • 实现原理
  • WXML
  • WXSS
  • JS
  • 总结
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档