支持五种选择器, 通过mode来区分, 分别是普通选择器(selector), 多列选择器(multiSelector), 时间选择器(time), 日期选择器(date), 省区选择器(region), 默认是普通选择器
mode = selector
属性:
range(Array/Array): mode为selector或multiSelector时, range有效
range-key: 当range是一个Array时, 通过range-key来指定Object中key的值作为选择器显示内容
value: value的值表示选择了range中的第几个(下标从0开始)
@change: value改变时触发change事件
disabled: 是否禁用
@cancel: 取消选择或点遮罩层收起picker时触发
<view>
<picker mode="selector" :range="array" @change="picker1" :value="index">
<view>{
{array[index]}}view>
picker>
view>
export default {
data() {
return {
array:['张三','李四','王五'],
index:0
}
},
methods: {
picker1(e){
console.log(e)
this.index = e.detail.value
}
}
}
model = multiSelector
属性
range(二维Array/二维Array): mode为selector或multiSelector时, range有效. 二维数组长度表示多少列, 数组的每项表示每列的数据.
range-key: 当range是一个二维Array时, 通过range-key来指定Object中key的值作为选择器显示内容
value(Array): value每一项的值表示选择了range对应项中的第几个(下标从0开始)
@change: value改变时触发change事件.
@columnchange: 某一列的值改变时触发columnchange事件, event.detail = {column:column,value:value}, column的值表示改变了第几列(下标从0开始), value的值表示变更值的下标
cancel: 取消选择时触发
disabled: 是否禁用
<view class="">
2.多列选择器:
view>
<picker mode="multiSelector" :range="array1" @change="picker2" :value='value'>
<view>姓名: {
{array1[0][value[0]]}} 性别:{
{array1[1][value[1]]}}view>
picker>
export default {
data() {
return {
array1:[['张三', '李四','王五'],['女','男']],
value:[0,0]
}
},
methods: {
picker2(e){
console.log(e.detail.value)
this.value = e.detail.value
}
}
}
mode = time
属性
<view class="">
3.时间选择器
view>
<picker mode="time" @change="picker3" :value="time" start="09:00" end="18:00">
<view>{
{time}}view>
picker>
export default {
data() {
return {
time:"14.29"
}
},
methods: {
picker3(e){
console.log(e.detail.value)
this.time = e.detail.value
}
}
}
mode = date
属性
fields有效值
<view class="">
4.日期选择器
view>
<picker mode="date" @change="picker4" :value="date" :start="startDate" :end="endDate">
<view>{
{date}}view>
picker>
<script>
function getDate(type){
const date = new Date();
let year = date.getFullYear();
// 月份是从0开始计算的, 所以要加一
let month = date.getMonth() + 1;
let day = date.getDate();
if(type === 'start'){
year = year;
}else if(type == 'end'){
year = year + 1
}
month = month > 9 ? month: '0' + month;
day = day > 9? day: '0' + day;
return `${
year} - ${
month} - ${
day}`;
}
export default{
data(){
return{
date: getDate({
format: true
}),
startDate:getDate('start'),
endDate:getDate('end'),
}
},
methods: {
picker4: function(e) {
this.date = e.detail.value
},
}
}
</script>
mode = region
推荐插件