赞
踩
picker-view 即 嵌入页面的滚动选择器。
1.属性
2.代码
2.1.WXSS代码
- .intro {
- margin: 30px;
- text-align: center;
- }
2.2.WXML代码
- <view>
- <view>{{year}}年{{month}}月{{day}}日</view>
- <picker-view indicator-style="height: 50px;" style="width: 100%; height: 300px;" value="{{value}}" bindchange="bindChange">
- <picker-view-column>
- <view wx:for="{{years}}" style="line-height: 50px">{{item}}年</view>
- </picker-view-column>
- <picker-view-column>
- <view wx:for="{{months}}" style="line-height: 50px">{{item}}月</view>
- </picker-view-column>
- <picker-view-column>
- <view wx:for="{{days}}" style="line-height: 50px">{{item}}日</view>
- </picker-view-column>
- </picker-view>
- </view>
2.3.JS代码
- const date = new Date()
- const years = []
- const months = []
- const days = []
-
- for (let i = 1990; i <= date.getFullYear(); i++) {
- years.push(i)
- }
-
- for (let i = 1; i <= 12; i++) {
- months.push(i)
- }
-
- for (let i = 1; i <= 31; i++) {
- days.push(i)
- }
-
- Page({
- data: {
- years: years,
- year: date.getFullYear(),
- months: months,
- month: 10,
- days: days,
- day: 9,
- value: [9999, 9, 8],
- },
- bindChange: function (e) {
- const val = e.detail.value
- this.setData({
- year: this.data.years[val[0]],
- month: this.data.months[val[1]],
- day: this.data.days[val[2]]
- })
- }
- })
3.效果
picker 即 从底部弹起的滚动选择器,现支持五种选择器,通过mode来区分,分别是普通选择器,多列选择器,时间选择器,日期选择器,省市区选择器,默认是普通选择器。
1.普通选择器:mode = selector
2.多列选择器:mode = multiSelector
3.时间选择器:mode = time
4.日期选择器:mode = date
fields 有效值
5. 省市区选择器:mode = region
6.代码
6.1.WXSS代码
- @import "/lib/weui.wxss";
- .picker{
- padding: 13px;
- background-color: #FFFFFF;
- }
6.2.WXML代码
- <view class="section">
- <view class="section__title">普通选择器</view>
- <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}">
- <view class="picker">
- 当前选择:{{array[index]}}
- </view>
- </picker>
- </view>
- <view class="section">
- <view class="section__title">多列选择器</view>
- <picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}">
- <view class="picker">
- 当前选择:{{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}},{{multiArray[2][multiIndex[2]]}}
- </view>
- </picker>
- </view>
- <view class="section">
- <view class="section__title">时间选择器</view>
- <picker mode="time" value="{{time}}" start="09:01" end="21:01" bindchange="bindTimeChange">
- <view class="picker">
- 当前选择: {{time}}
- </view>
- </picker>
- </view>
-
- <view class="section">
- <view class="section__title">日期选择器</view>
- <picker mode="date" value="{{date}}" start="2015-09-01" end="2017-09-01" bindchange="bindDateChange">
- <view class="picker">
- 当前选择: {{date}}
- </view>
- </picker>
- </view>
- <view class="section">
- <view class="section__title">省市区选择器</view>
- <picker mode="region" bindchange="bindRegionChange" value="{{region}}" custom-item="{{customItem}}">
- <view class="picker">
- 当前选择:{{region[0]}},{{region[1]}},{{region[2]}}
- </view>
- </picker>
- </view>
6.3.JS代码
- Page({
- data: {
- array: ['美国', '中国', '巴西', '日本'],
- objectArray: [
- {
- id: 0,
- name: '美国'
- },
- {
- id: 1,
- name: '中国'
- },
- {
- id: 2,
- name: '巴西'
- },
- {
- id: 3,
- name: '日本'
- }
- ],
- index: 0,
- multiArray: [['无脊柱动物', '脊柱动物'], ['扁性动物', '线形动物', '环节动物', '软体动物', '节肢动物'], ['猪肉绦虫', '吸血虫']],
- objectMultiArray: [
- [
- {
- id: 0,
- name: '无脊柱动物'
- },
- {
- id: 1,
- name: '脊柱动物'
- }
- ], [
- {
- id: 0,
- name: '扁性动物'
- },
- {
- id: 1,
- name: '线形动物'
- },
- {
- id: 2,
- name: '环节动物'
- },
- {
- id: 3,
- name: '软体动物'
- },
- {
- id: 3,
- name: '节肢动物'
- }
- ], [
- {
- id: 0,
- name: '猪肉绦虫'
- },
- {
- id: 1,
- name: '吸血虫'
- }
- ]
- ],
- multiIndex: [0, 0, 0],
- date: '2016-09-01',
- time: '12:01',
- region: ['广东省', '广州市', '海珠区'],
- customItem: '全部'
- },
- bindPickerChange: function (e) {
- console.log('picker发送选择改变,携带值为', e.detail.value)
- this.setData({
- index: e.detail.value
- })
- },
- bindMultiPickerChange: function (e) {
- console.log('picker发送选择改变,携带值为', e.detail.value)
- this.setData({
- multiIndex: e.detail.value
- })
- },
- bindMultiPickerColumnChange: function (e) {
- console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
- var data = {
- multiArray: this.data.multiArray,
- multiIndex: this.data.multiIndex
- };
- data.multiIndex[e.detail.column] = e.detail.value;
- switch (e.detail.column) {
- case 0:
- switch (data.multiIndex[0]) {
- case 0:
- data.multiArray[1] = ['扁性动物', '线形动物', '环节动物', '软体动物', '节肢动物'];
- data.multiArray[2] = ['猪肉绦虫', '吸血虫'];
- break;
- case 1:
- data.multiArray[1] = ['鱼', '两栖动物', '爬行动物'];
- data.multiArray[2] = ['鲫鱼', '带鱼'];
- break;
- }
- data.multiIndex[1] = 0;
- data.multiIndex[2] = 0;
- break;
- case 1:
- switch (data.multiIndex[0]) {
- case 0:
- switch (data.multiIndex[1]) {
- case 0:
- data.multiArray[2] = ['猪肉绦虫', '吸血虫'];
- break;
- case 1:
- data.multiArray[2] = ['蛔虫'];
- break;
- case 2:
- data.multiArray[2] = ['蚂蚁', '蚂蟥'];
- break;
- case 3:
- data.multiArray[2] = ['河蚌', '蜗牛', '蛞蝓'];
- break;
- case 4:
- data.multiArray[2] = ['昆虫', '甲壳动物', '蛛形动物', '多足动物'];
- break;
- }
- break;
- case 1:
- switch (data.multiIndex[1]) {
- case 0:
- data.multiArray[2] = ['鲫鱼', '带鱼'];
- break;
- case 1:
- data.multiArray[2] = ['青蛙', '娃娃鱼'];
- break;
- case 2:
- data.multiArray[2] = ['蜥蜴', '龟', '壁虎'];
- break;
- }
- break;
- }
- data.multiIndex[2] = 0;
- console.log(data.multiIndex);
- break;
- }
- this.setData(data);
- },
- bindDateChange: function (e) {
- console.log('picker发送选择改变,携带值为', e.detail.value)
- this.setData({
- date: e.detail.value
- })
- },
- bindTimeChange: function (e) {
- console.log('picker发送选择改变,携带值为', e.detail.value)
- this.setData({
- time: e.detail.value
- })
- },
- bindRegionChange: function (e) {
- console.log('picker发送选择改变,携带值为', e.detail.value)
- this.setData({
- region: e.detail.value
- })
- }
- })
7.效果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。