最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vant picker+popup 自定義三級(jí)聯(lián)動(dòng)案例

 更新時(shí)間:2020年11月04日 10:21:34   作者:瘋狂的韭菜  
這篇文章主要介紹了vant picker+popup 自定義三級(jí)聯(lián)動(dòng)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

picker選擇器的數(shù)據(jù)由columns屬性控制,columns中有幾個(gè)元素就代表該選擇器有多少級(jí),通過change方法來給對(duì)應(yīng)列賦值。

columns = [{
    values: column1, // 對(duì)應(yīng)列的值
    defaultIndex: 0, // 默認(rèn)選中項(xiàng)索引
    className: 'class1' // 對(duì)應(yīng)列的類名 
  },
  {
    values: [],
    defaultIndex: 0,
    className: 'class2'
  },
  {
    values: [],
    defaultIndex: 0,
    className: 'class3'
  }
];

demo

<template>
<div class="form">
  <van-row type="flex" justify="center" align="center" style="padding-top:10px">
    <van-col span="5" class="text">自定義三級(jí)聯(lián)動(dòng)</van-col>
    <van-col span="19">
      <van-field v-model="student" placeholder="請(qǐng)選擇" @click="stuShow = true" :readonly="true" />
    </van-col>
  </van-row>
  <!-- 底部彈出 -->
  <van-popup v-model="stuShow" position="bottom" :style="{ height: '40%' }">
    <van-picker :columns="stuLoad" @confirm="stuConfirm" @change="stuChange" @cancel="stuShow = false" show-toolbar />
  </van-popup>
</div>
</template>

<script>
export default {
  name: "Form",
  data() {
    return {
      student: '',
      stuShow: false,
      stuLoad: [],
      stuColumn1: [],
      stuColumn2: [],
      stuColumn3: []
    };
  },
  created() {
    this.makeData(); // 頁(yè)面加載時(shí)給選擇框賦初始值
  },
  methods: {
    makeData() { // 模擬數(shù)據(jù),生產(chǎn)環(huán)境用axios獲取數(shù)據(jù)
      let column1 = [{
        'kid': 0,
        'text': '請(qǐng)選擇'
      }, {
        'kid': 1,
        'text': '一年級(jí)'
      }, {
        'kid': 2,
        'text': '二年級(jí)'
      }];
      let column2 = {
        '1': [{
          'kid': 1,
          'text': '一組'
        }, {
          'kid': 2,
          'text': '二組'
        }, {
          'kid': 3,
          'text': '三組'
        }],
        '2': [{
          'kid': 4,
          'text': '四組'
        }, {
          'kid': 5,
          'text': '五組'
        }]
      }
      let column3 = {
        '1': [{
          'kid': 1,
          'text': '小明'
        }, {
          'kid': 2,
          'text': '小紅'
        }, {
          'kid': 3,
          'text': '小剛'
        }],
        '2': [{
          'kid': 4,
          'text': 'Amy'
        }, {
          'kid': 5,
          'text': 'Sam'
        }],
        '3': [{
          'kid': 4,
          'text': 'Sion'
        }, {
          'kid': 5,
          'text': 'Juno'
        }],
        '4': [{
          'kid': 6,
          'text': 'Lucy'
        }, {
          'kid': 7,
          'text': 'Tom'
        }],
        '5': [{
          'kid': 6,
          'text': 'Iwan'
        }]
      }
      let columns = [];
      columns = [{
          values: column1,
          defaultIndex: 0 //默認(rèn)選中項(xiàng)索引
        },
        {
          values: [],
          defaultIndex: 0
        },
        {
          values: [],
          defaultIndex: 0
        }
      ];
      this.stuColumn2 = column2;
      this.stuColumn3 = column3;
      this.stuLoad = columns;
    },
    stuConfirm(value, index) { // 下方彈出層點(diǎn)擊確認(rèn)時(shí)觸發(fā)
      // value為各列選中值
      // index為各列選中的索引
      if (index.indexOf(0) > -1) {
        alert('請(qǐng)選擇');
      } else {
        let content = value[0]['text'] + ' / ' + value[1]['text'] + ' / ' + value[2]['text'];
        this.student = content;
        this.stuShow = false;
      }
    },
    stuChange(picker, value, index) { // 選擇器改變時(shí)觸發(fā)
      // Picker 實(shí)例
      // value為當(dāng)前選中值
      // index為當(dāng)前列對(duì)應(yīng)的索引,第一列index為0,第二列index為1,依次列推
      if (index == 0) { // 改變第一列的值
        let i = value[0]['kid'];
        let item = this.stuColumn2[i] ? this.stuColumn2[i] : [];
        if (item && item[0]['text'] != '請(qǐng)選擇') {
          item.unshift({
            'kid': 0,
            'text': '請(qǐng)選擇'
          })
        }
        picker.setColumnValues(1, item); // 給對(duì)應(yīng)的列賦值,第一個(gè)參數(shù)為列的index值,第二個(gè)參數(shù)為列的values
      } else if (index == 1) {
        let i = value[1]['kid'];
        let item = this.stuColumn3[i] ? this.stuColumn3[i] : [];
        if (item.length != 0 && item[0]['text'] != '請(qǐng)選擇') {
          item.unshift({
            'kid': 0,
            'text': '請(qǐng)選擇'
          })
        }
        picker.setColumnValues(2, item);
      }
    }
  }
};
</script>

<style scoped>
.text {
  text-align: right;
}
</style>

補(bǔ)充知識(shí):vue vant-picker選擇器的使用,及數(shù)據(jù)結(jié)構(gòu)的寫法

vant-picker組件columns屬性接收的是一個(gè)數(shù)組,如官方例子中:

它的數(shù)組是子項(xiàng)是一個(gè)簡(jiǎn)單是字符,但通常我們真實(shí)的數(shù)據(jù)子項(xiàng)都是對(duì)象,如:

colums:[ {name:'張三',age:18},{name:'李四',age:28}]

那么像這樣的數(shù)組該怎么顯示呢, vant-picker的value-key屬性就是解決這個(gè)問題的,如我要使用上面的數(shù)組,那么vant-picker

就是這樣

另外,如果數(shù)組中的子項(xiàng)含有鍵名為'text',那么value-key也可以不用設(shè)置,組件會(huì)默認(rèn)取這個(gè)鍵名,如colums:[ {text:'張三',age:18},{text:'李四',age:28}]

以上這篇vant picker+popup 自定義三級(jí)聯(lián)動(dòng)案例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入理解Vuex的作用

    深入理解Vuex的作用

    這篇文章主要介紹了深入理解Vuex的作用,對(duì)Vuex感興趣的同學(xué),可以參考下
    2021-05-05
  • vue中的事件加判斷條件如何進(jìn)行選擇性點(diǎn)擊

    vue中的事件加判斷條件如何進(jìn)行選擇性點(diǎn)擊

    這篇文章主要介紹了vue中的事件加判斷條件如何進(jìn)行選擇性點(diǎn)擊方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue?el-table實(shí)現(xiàn)右鍵菜單功能

    Vue?el-table實(shí)現(xiàn)右鍵菜單功能

    這篇文章主要為大家詳細(xì)介紹了Vue?el-table實(shí)現(xiàn)右鍵菜單功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vuecli+AXdownload下載組件封裝?+css3下載懸浮球動(dòng)畫效果

    vuecli+AXdownload下載組件封裝?+css3下載懸浮球動(dòng)畫效果

    當(dāng)觸發(fā)下載功能的時(shí)候,會(huì)觸發(fā)一個(gè)下載動(dòng)畫,下載懸浮球會(huì)自動(dòng)彈出,并且閃爍提示有新的下載任務(wù)直到下載任務(wù)完場(chǎng)提示,接下來通過本文介紹vuecli+AXdownload下載組件封裝?+css3下載懸浮球動(dòng)畫效果,需要的朋友可以參考下
    2024-05-05
  • vue-element-admin搭建后臺(tái)管理系統(tǒng)的實(shí)現(xiàn)步驟

    vue-element-admin搭建后臺(tái)管理系統(tǒng)的實(shí)現(xiàn)步驟

    本文主要介紹了vue-element-admin搭建后臺(tái)管理系統(tǒng)的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • vue項(xiàng)目中的數(shù)據(jù)變化被watch監(jiān)聽并處理

    vue項(xiàng)目中的數(shù)據(jù)變化被watch監(jiān)聽并處理

    這篇文章主要介紹了vue項(xiàng)目中的數(shù)據(jù)變化被watch監(jiān)聽并處理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue.js slot插槽的作用域插槽用法詳解

    Vue.js slot插槽的作用域插槽用法詳解

    這篇文章主要介紹了Vue.js slot插槽的作用域插槽用法詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 如何使用Vue mapState快捷獲取Vuex state多個(gè)值

    如何使用Vue mapState快捷獲取Vuex state多個(gè)值

    這篇文章主要為大家介紹了如何使用Vue mapState快捷獲取Vuex state多個(gè)值實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Vue 2源碼解析HTMLParserOptions.start函數(shù)方法

    Vue 2源碼解析HTMLParserOptions.start函數(shù)方法

    這篇文章主要為大家介紹了Vue 2源碼解析HTMLParserOptions.start函數(shù)方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • element中一個(gè)單選框radio時(shí)的選中和取消代碼詳解

    element中一個(gè)單選框radio時(shí)的選中和取消代碼詳解

    這篇文章主要給大家介紹了關(guān)于element中一個(gè)單選框radio時(shí)的選中和取消的相關(guān)資料,文中通過圖文以及代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-09-09

最新評(píng)論

平武县| 天津市| 南京市| 临湘市| 日土县| 西安市| 平顺县| 九龙县| 泾川县| 靖江市| 汤原县| 泰州市| 海口市| 阿克| 正镶白旗| 竹溪县| 新宾| 股票| 灵寿县| 葵青区| 武清区| 武功县| 旬邑县| 蓬莱市| 江城| 佛学| 临澧县| 迁安市| 滨州市| 霍山县| 丁青县| 嘉荫县| 西充县| 沁源县| 松滋市| 乳源| 墨竹工卡县| 卢氏县| 新化县| 图们市| 平泉县|