很久没有更新文章啦~~记录下今天弄的一个小功能。

先上图:

需求很简单:

第1列改变的时候,第2列也随着改变,并且比第1列大1k。

这里用到了微信的picker 组件,对于不太熟练这个组件的小伙伴可以先看下官方文档。

主要用到了多列选择器,如下图:

解决思路:

1.在onLoad里面生成一个二维数组,形式如下:

[['1K','2K','3K','4K','5K','6K','7K','8K'...],['1K','2K','3K','4K','5K','6K','7K','8K'...]]

onLoad: function(options) {
const _this = this;
let salaryStart = [],
salaryEnd = [],
salaryArray = [];
for (let i = 1; i < 100; i++) {
salaryStart.push(`${i}k`);
salaryEnd.push(`${i+1}k`)
}
salaryArray.push(salaryStart);
salaryArray.push(salaryEnd);
_this.setData({
salaryArray: salaryArray
})
},

2.data数据设置如下:

data:{
salaryArray: [],
salaryIndex: [0, 0],
}

3.在wxml绑定这些数据

<picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{salaryIndex}}" range="{{salaryArray}}">
  <view class="picker">
  {{salaryArray[0][salaryIndex[0]]}}-{{salaryArray[1][salaryIndex[1]]}}
  </view>
</picker>

4.定义bindchange 和 bindcolumnchange方法

//确定时触发该事件
bindMultiPickerChange(e) {
this.setData({
salaryIndex: e.detail.value
})
},
//滑动列时触发该事件
bindMultiPickerColumnChange(e) {
let currentColunm = e.detail.column;
let currentClounmIndex = e.detail.value;
let salaryArray = this.data.salaryArray
console.log('修改的列为', currentColunm, ',值为', currentClounmIndex);
let data = {
salaryArray: this.data.salaryArray,
salaryIndex: this.data.salaryIndex
}
data.salaryIndex[currentColunm] = currentClounmIndex
data.salaryIndex[1] = currentClounmIndex;
this.setData(data)
},

方法说明:

1.currentColunm 表示当前滑动的列数

2.currentClounmIndex 表示选择某一列的值的索引

如下图:

后期待优化:

让第2列的可选择区间永远大于第1列。

各位小伙伴如果有更合适的解决方案,望不吝赐教~~

微信小程序——选择某个区间的数字的更多相关文章

  1. 微信小程序---选择图片和调用微信拍照

    1.实现点击头像按钮实现选择图片或者拍照,将图片重新设置成头像: //index.js //获取应用实例 var app = getApp() Page({ data: { motto: 'Hello ...

  2. 微信小程序选择视频,视频上传,视频播放

    请查看链接地址看具体详情: 选择视频: https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-video.html#wxchoosevideoobje ...

  3. 微信小程序 选择微信自带的地址 用户授权选择了拒绝

    // 选择微信自带地址 addAddr:function () { wx.chooseAddress({ success: function (res) { self.setData({ addrIn ...

  4. 微信小程序选择图片,查看图片信息,浏览图片,图片上传

    依次点击链接请查看以下步骤 选择图片: https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-picture.html#wxchooseimageob ...

  5. 微信小程序 --- 选择图片和拍照

    wx.chooseImage 选择图片 / 进行拍照 //获取应用实例 const app = getApp() Page({ data: { onOff:true }, btnclick:funct ...

  6. 微信小程序选择并上传图片

      上传图片 API: wx.chooseImage() 和 wx.uploadFile() wx.chooseImage({ count: 1, // 默认9 sizeType: ['origina ...

  7. 微信小程序字符串如何转数字?

      [微信小程序]字符串如何转数字 字符串可以采用 parseInt()方法来转换为数字. input_number_sim = parseInt(input_number_sim)   也可采用的用 ...

  8. 微信小程序导航:官方工具+精品教程+DEMO集合(1月7更新)

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=14764346784612:简易教程:https://mp.weixin.qq.com/debug ...

  9. 迅雷首席架构师刘智聪:微信小程序的架构与系统设计的几点观感

    笔者注:本文来自于迅雷首席工程师刘智聪的个人分享,他毕业于南昌大学化学系,加入迅雷后设计开发了多款迅雷核心产品,凭借“大规模网络流媒体服务关键支撑技术”项目获得2015年国家科学技术进步奖二等奖,同时 ...

随机推荐

  1. Centos7下JDK1.8的安装

    1.下载并上传并解压安装包 下载安装包上传到/usr/local目录 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-dow ...

  2. Python之路【第十篇】:Python面向对象之多态、多态性

    阅读目录 一 多态 多态指的是一类事物有多种形态 动物有多种形态:人,狗,猪 import abc class Animal(metaclass=abc.ABCMeta): #同一类事物:动物 @ab ...

  3. IDEA 2019 快捷键终极大全

    常用的有fori/sout/psvm+Tab即可生成循环.System.out.main方法等boilerplate样板代码 . 例如要输入for(User user : users) 只需输入use ...

  4. 怎样遍历NodeList对象

    因为NodeList对象是一个类似数组的对象, 且它自带了一个 forEach() 方法, 因此可以使用 forEach() 遍历, 它的用法和 Array 里面的 forEach() 是完全一样的. ...

  5. .NET 的程序集加载上下文

    原文:.NET 的程序集加载上下文 我们编写的 .NET 应用程序会使用到各种各样的依赖库.我们都知道 CLR 会在一些路径下帮助我们程序找到依赖,但如果我们需要手动控制程序集加载路径的话,需要了解程 ...

  6. C# vb .net实现锐化效果滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的锐化效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一步 ...

  7. Java项目之查询后分页

    一.Jsp页面: <%@ page language="java" contentType="text/html; charset=UTF-8" page ...

  8. 如何免费试用SAP的Fiori应用

    什么是SAP Fiori?SAP Fiori不是SAP发布的某款产品,而是SAP新一代UI设计风格和用户体验的代号. Fiori是一个意大利语中的单词,意思是"花": 不得不说SA ...

  9. 使用FMXlinux 开发linux 桌面应用

    自从delphi 10.2 开始正式支持linux  开发来,大家一直关心为什么官方没有使用FMX来支持LInux 的桌面开发? 其实原因无非就几点: 1.Linux 大部分是应用还是服务端的,桌面应 ...

  10. springboot+mybatis +yml文件配置多数据源

    记录一下java开发中多数据源的配置过程, 参考博客:https://blog.csdn.net/weinichendian/article/details/72903757,我在这里进行了整理,使用 ...