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

溫馨提示×

溫馨提示×

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

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

mpvue微信小程序多列選擇器用法之省份城市選擇的實現

發布時間:2020-08-25 07:10:37 來源:腳本之家 閱讀:316 作者:fozero 欄目:web開發

前言

微信小程序默認給我們提供了一個省市區的picker選擇器,只需將mode設置為region即可

<picker
 mode="region"
 bindchange="bindRegionChange"
 value="{{region}}"
 custom-item="{{customItem}}"
 >

因為小程序默認提供的省市區選擇器只能保存名稱,不能保存id,而且我也不需要選擇三級城市,所以這里打算通過mode="multiSelector"來實現省份城市的選擇

城市數據json格式

關于省份城市數據的獲取,這里我通過接口去獲取數據,返回的json格式為

{
 "code": 0,
 "msg": "success",
 "data": [
 {
  "id": 2,
  "name": "北京",
  "children": [
  {
   "id": 36,
   "name": "北京市"
  }
  ]
 }
 ]
}

在我們保存提交的時候只需要保存省份和城市的id即可

picker多列選擇器的用法

<picker
  mode="multiSelector"
  @change="bindCityChange"
  @columnchange="bindCityColumnChange"
  :value="multiIndex"
  :range="multiArray"
  range-key="name"
 >
  <view class="picker">選擇城市{{userInfo.province.name}},{{userInfo.city.name}}</view>
 </picker>

設置picker mode屬性為multiSelector

 mode="multiSelector"

1、這里需要注意的是,在mpvue中無法直接使用bindchange和bindcolumnchange,而是使用@change和@columnchange這種方式

2、value是一個數組,例如我們有兩列

[["北京", "湖南"], ["長沙", "永州"]]

3、range也是一個數組,指定的是value值的選中索引值,下標從0開始,如[0,0]

4、如果我們的數據是一個二維對象數組,我們可以通過使用range-key來指定Object 中 key 的值作為選擇器顯示內容

5、當我們確認選中之后會觸發@change事件

// 城市選擇 獲取選中的值 [0,0] 這里需要注意的是獲取值的方式在mpvue中通過e.mp.detail.value而不是e.detail.value
 bindCityChange(e) {
 // 選中的值索引
 console.log(e.mp.detail.value[0], e.mp.detail.value[1]);
 // 選中的省份和城市數據
 console.log(
 this.multiArray[0][e.mp.detail.value[0]],
 this.multiArray[1][e.mp.detail.value[1]]
 );
 this.userInfo.province = this.multiArray[0][e.mp.detail.value[0]];
 this.userInfo.city = this.multiArray[1][e.mp.detail.value[1]];
 },

6、在我們滾動每一列的值的時候會觸發@columnchange事件

7、通過e.mp.detail.columne.mp.detail.value可以獲取到修改列對應的值

console.log(
 "修改的列為",
 e.mp.detail.column,
 ",值為",
 e.mp.detail.value
 );

通過獲取到修改的數據更新multiIndex的值

// 監聽滾動事件 滾動第一列 修改第二列數據
 bindCityColumnChange(e) {
 // 更新multiIndex的值
 this.multiIndex[e.mp.detail.column] = e.mp.detail.value;
 //加載對應省份下城市數據
 switch (e.mp.detail.column) {
 case 0:
  // this.multiArray[1] = this.cityList[e.mp.detail.value].children;
  this.multiArray = [
  this.cityList,
  this.cityList[e.mp.detail.value].children
  ];
  break;
 }
 },
data() {
 return {
multiIndex: [0, 0],
 multiArray: [],
 }
 }

參考閱讀

  • https://www.jb51.net/article/121309.htm
  • https://developers.weixin.qq.com/miniprogram/dev/component/picker.html

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

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

AI

乐清市| 阳东县| 四川省| 丁青县| 大关县| 原阳县| 靖江市| 台中市| 雷波县| 育儿| 延安市| 武城县| 宜良县| 建平县| 墨竹工卡县| 江阴市| 五莲县| 河源市| 汉沽区| 双鸭山市| 岳西县| 株洲市| 阳谷县| 聊城市| 新昌县| 绥中县| 五常市| 英吉沙县| 定兴县| 乌鲁木齐县| 浦城县| 辽中县| 昌都县| 饶河县| 合川市| 青冈县| 荔浦县| 涿州市| 哈尔滨市| 芒康县| 渭南市|