91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

小程序中實現三級選擇器組件的案例

發布時間:2020-12-21 13:59:37 來源:億速云 閱讀:219 作者:小新 欄目:移動開發

這篇文章給大家分享的是有關小程序中實現三級選擇器組件的案例的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

效果

小程序中實現三級選擇器組件的案例

實現過程

undefined

<view class="section">
    <view class="section__title">{{title}}</view>
    <picker bindchange="bindPickerChange" value="{{multiIndex}}" range="{{multiArray}}" mode="multiSelector" bindcolumnchange="columnchange">
      <view class="picker">  
      <view class='words'>
        <!-- {{multiArray[2][multiIndex[2]]}} -->
        {{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}},{{multiArray[2][multiIndex[2]]}}      </view>
      <image src='/image/right.png'></image>  
    </view> 
    </picker>
  </view>

在小程序已有的picker組件中設置mode="multiSelector",使之成為多列選擇器。

在多列選擇器中有兩個重要的參數:

properties: {
    multiArray: Array,
    multiIndex: Array
  }

multiArray是一個二維數組,存放選擇器每一列上的選項列表。multiIndex是一個一維數組,存放每一列被選中的值,例:[0,0,0] 表示第一列選中了第0個選項,第二列也選中了第0個選項,以此類推。這兩個參數都由用到三列選擇器的頁面傳入。

在小程序已有的picker組件中綁定bindPickerChange事件和columnchange事件,當用戶確定選擇器的選項值或改變某列選項值時會分別觸發這兩個事件:

methods: {    //這個只有在點確定的時候才會觸發
    bindPickerChange: function (e) {
      this.triggerEvent("multiSelectorValue", e.detail)// 更新下標字段
      multiIndex,event.detail = {value: value}
    },
    columnchange: function (e) {
      this.triggerEvent("multiSelectorColumn", e.detail)// detail包含當前改變的列和改變的列的數值,event.detail = {column: column, value: value}
    }
  }

設置multiSelectorValue事件和multiSelectorColumn事件,來讓用到三列選擇器的頁面捕捉到選擇器選項值的改變。

在要用到三列選擇器的頁面里引入三列選擇器組件,比如叫v-picker-multiSelector:

<v-picker-multiSelector multiArray="{{multiArray}}" multiIndex="{{multiIndex}}"  
bind:multiSelectorValue="receiveMultiSelectorValue" bind:multiSelectorColumn="receiveMultiSelectorColumn">
</v-picker-multiSelector>

通過設置receiveMultiSelectorValue函數和receiveMultiSelectorColumn函數來接收選項值的變化:

//當用戶改變種植區某列選項時觸發的事件
receiveMultiSelectorColumn: 
function (e) {
  const column = e.detail.column  
  const columnValue = e.detail.value  
  switch (column) {    
  case 0:      
  this.data.multiIndex[0] = columnValue //更新省值

      this.data.multiArray[1] = this.testGetCity(this.data.provinceList[columnValue]) //獲取市列表
      this.data.cityList = this.data.multiArray[1] //更新市列表
      this.data.multiIndex[1] = 0 // 將市默認選擇第一個

      this.data.multiArray[2] = this.testGetPlantingArea(this.data.cityList[0]) //獲取區列表
      this.data.plantingAreaList = this.data.multiArray[2] //更新種植區列表
      this.data.multiIndex[2] = 0 // 將區默認選擇第一個

      this.setData({
        multiArray: this.data.multiArray,
        multiIndex: this.data.multiIndex
      })      break

    case 1:      this.data.multiIndex[1] = columnValue //更新市值

      //this.data.multiArray[2] = this.getPlantingArea(this.data.cityList[columnValue])//獲取區列表
      this.data.multiArray[2] = this.testGetPlantingArea(this.data.cityList[columnValue]) //測試用,獲取區列表
      this.data.plantingAreaList = this.data.multiArray[2] //更新種植區列表
      this.data.multiIndex[2] = 0 // 將區默認選擇第一個

      this.setData({
        multiArray: this.data.multiArray,
        multiIndex: this.data.multiIndex
      })      break
  }
}

當三列選擇器的某列值改變時,頁面從組件里接收到改變的列數(column)和該列被選擇的值(columnValue)。對column進行判斷,如果column=0,那么根據columnValue的值向后端請求回該省的市列表,并根據市列表的的第一位向后端請求回該市的區列表。如果column=1,那么那么根據columnValue的值向后端請求回該市的區列表。

receiveMultiSelectorValue: function (e) {
      this.setData({
        multiIndex: e.detail.value
      })      this.data.region[0] = this.data.multiArray[0][this.data.multiIndex[0]]      
      this.data.region[1] = this.data.multiArray[1][this.data.multiIndex[1]]      
      this.data.region[2] = this.data.multiArray[2][this.data.multiIndex[2]]      
      this.setData({
        region: this.data.region
      })      //console.log(this.data.region)
    }

當用戶確定三列選擇器的選項時,頁面從組件中接收到multiIndex的值,并對選項值進行更新。

感謝各位的閱讀!關于小程序中實現三級選擇器組件的案例就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

孟津县| 徐水县| 舞钢市| 苗栗县| 天长市| 河北区| 道孚县| 孟村| 临泉县| 威宁| 灵川县| 麻栗坡县| 那坡县| 曲松县| 和田市| 遂平县| 五家渠市| 三门县| 沈阳市| 芜湖市| 集贤县| 当阳市| 乡宁县| 如皋市| 绥芬河市| 高雄县| 南川市| 安阳县| 房产| 宁远县| 全椒县| 黄骅市| 柘荣县| 施甸县| 黑龙江省| 鹤庆县| 清水河县| 延津县| 海丰县| 曲阳县| 丰镇市|