微信小程式----picker選擇器(picker、省市區選擇器)(MUI選擇器)
阿新 • • 發佈:2019-02-17
效果圖
實現原理
利用微信小程式的picker元件,其中:
1,普通選擇器:mode = selector實現一級選擇例項;
2,省市區選擇器:mode = region實現省市區三級聯動;
3, 多列選擇器:mode = multiSelector實現二級和三級聯動的10以內數字的乘法。
WXML
<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
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
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元件提供的其他四種選擇器都能實現!