微信小程序表單組件 picker

2022-05-11 16:08 更新
基礎(chǔ)庫 1.0.0 開始支持,低版本需做兼容處理。

從底部彈起的滾動選擇器。

屬性 類型 默認(rèn)值 必填 說明 最低版本
header-text string 選擇器的標(biāo)題,僅安卓可用 2.11.0
mode string selector 選擇器類型 1.0.0
disabled boolean false 是否禁用 1.0.0
bindcancel eventhandle 取消選擇時觸發(fā) 1.9.90

mode 的合法值

說明 最低版本
selector 普通選擇器
multiSelector 多列選擇器
time 時間選擇器
date 日期選擇器
region 省市區(qū)選擇器

除了上述通用的屬性,對于不同的mode,picker擁有不同的屬性。

普通選擇器:mode = selector

屬性名 類型 默認(rèn)值 說明 最低版本
range array/object array [] mode 為 selector 或 multiSelector 時,range 有效
range-key string 當(dāng) range 是一個 Object Array 時,通過 range-key 來指定 Object 中 key 的值作為選擇器顯示內(nèi)容
value number 0 表示選擇了 range 中的第幾個(下標(biāo)從 0 開始)
bindchange eventhandle value 改變時觸發(fā) change 事件,event.detail = {value}

多列選擇器:mode = multiSelector

屬性名 類型 默認(rèn)值 說明 最低版本
range array/object array [] mode 為 selector 或 multiSelector 時,range 有效
range-key string 當(dāng) range 是一個 Object Array 時,通過 range-key 來指定 Object 中 key 的值作為選擇器顯示內(nèi)容
value array [] 表示選擇了 range 中的第幾個(下標(biāo)從 0 開始)
bindchange eventhandle value 改變時觸發(fā) change 事件,event.detail = {value}
bindcolumnchange eventhandle 列改變時觸發(fā)

時間選擇器:mode = time

屬性名 類型 默認(rèn)值 說明 最低版本
value string 表示選中的時間,格式為"hh:mm"
start string 表示有效時間范圍的開始,字符串格式為"hh:mm"
end string 表示有效時間范圍的結(jié)束,字符串格式為"hh:mm"
bindchange eventhandle value 改變時觸發(fā) change 事件,event.detail = {value}

日期選擇器:mode = date

屬性名 類型 默認(rèn)值 說明 最低版本
value string 當(dāng)天 表示選中的日期,格式為"YYYY-MM-DD"
start string 表示有效日期范圍的開始,字符串格式為"YYYY-MM-DD"
end string 表示有效日期范圍的結(jié)束,字符串格式為"YYYY-MM-DD"
fields string day 有效值 year,month,day,表示選擇器的粒度
bindchange eventhandle value 改變時觸發(fā) change 事件,event.detail = {value}

fields 有效值:*

說明
year 選擇器粒度為年
month 選擇器粒度為月份
day 選擇器粒度為天

省市區(qū)選擇器:mode = region 1.4.0

屬性名 類型 默認(rèn)值 說明 最低版本
value array [] 表示選中的省市區(qū),默認(rèn)選中每一列的第一個值
custom-item string 可為每一列的頂部添加一個自定義的項 1.5.0
bindchange eventhandle value 改變時觸發(fā) change 事件,event.detail = {value, code, postcode},其中字段 code 是統(tǒng)計用區(qū)劃代碼,postcode 是郵政編碼


示例代碼:

<view class="section">
    <view class="sectiontitle">普通選擇器</view>
    <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}">
        <view class="picker">
            當(dāng)前選擇: {{array[index]}}
        </view>
    </picker>
</view>

    <view class="sectiontitle">多列選擇器
    <picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}">
     
       當(dāng)前選擇: {{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}},{{multiArray[2][multiIndex[2]]}}
     


<view class="section">
    <view class="sectiontitle">時間選擇器</view>
    <picker mode="time" value="{{time}}" start="09:01" end="21:01" bindchange="bindTimeChange">
        <view class="picker">
            當(dāng)前選擇: {{time}}
        </view>
    </picker>
</view>

<view class="section"> <view class="sectiontitle">日期選擇器</view> <picker mode="date" value="{{date}}" start="2015-09-01" end="2017-09-01" bindchange="bindDateChange"> <view class="picker"> 當(dāng)前選擇: {{date}} </view> </picker> </view>

省市區(qū)選擇器 當(dāng)前選擇: {{region[0]}},{{region[1]}},{{region[2]}}

Page({
  data: {
    array: ['美國', '中國', '巴西', '日本'],
    objectArray: [
      {
        id: 0,
        name: '美國'
      },
      {
        id: 1,
        name: '中國'
      },
      {
        id: 2,
        name: '巴西'
      },
      {
        id: 3,
        name: '日本'
      }
    ],
    index: 0,
    multiArray: [['無脊柱動物', '脊柱動物'], ['扁性動物', '線形動物', '環(huán)節(jié)動物', '軟體動物', '節(jié)肢動物'], ['豬肉絳蟲', '吸血蟲']],
    objectMultiArray: [
      [
        {
          id: 0,
          name: '無脊柱動物'
        },
        {
          id: 1,
          name: '脊柱動物'
        }
      ], [
        {
          id: 0,
          name: '扁性動物'
        },
        {
          id: 1,
          name: '線形動物'
        },
        {
          id: 2,
          name: '環(huán)節(jié)動物'
        },
        {
          id: 3,
          name: '軟體動物'
        },
        {
          id: 3,
          name: '節(jié)肢動物'
        }
      ], [
        {
          id: 0,
          name: '豬肉絳蟲'
        },
        {
          id: 1,
          name: '吸血蟲'
        }
      ]
    ],
    multiIndex: [0, 0, 0],
    date: '2016-09-01',
    time: '12:01',
    region: ['廣東省', '廣州市', '海珠區(qū)']
  },
  bindPickerChange: function(e) {
    console.log('picker發(fā)送選擇改變,攜帶值為', e.detail.value)
    this.setData({
      index: e.detail.value
    })
  },
  bindMultiPickerChange: function (e) {
    console.log('picker發(fā)送選擇改變,攜帶值為', 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] = ['扁性動物', '線形動物', '環(huán)節(jié)動物', '軟體動物', '節(jié)肢動物'];
            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發(fā)送選擇改變,攜帶值為', e.detail.value)
    this.setData({
      date: e.detail.value
    })
  },
  bindTimeChange: function(e) {
    console.log('picker發(fā)送選擇改變,攜帶值為', e.detail.value)
    this.setData({
      time: e.detail.value
    })
  },
  bindRegionChange: function (e) {
    console.log('picker發(fā)送選擇改變,攜帶值為', e.detail.value)
    this.setData({
      region: e.detail.value
    })
  }
})

picker




以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號