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

如何使用el-cascader組件寫下拉級聯(lián)多選及全選功能

 更新時(shí)間:2024年03月25日 09:56:29   作者:__十七  
這篇文章主要介紹了如何使用el-cascader組件寫下拉級聯(lián)多選及全選功能,因?yàn)槭怯腥x的功能,所以不能直接使用el-cascader組件,?而是選擇使用el-select組件,?在此組件內(nèi)部使用el-cascader-panel級聯(lián)面板,感興趣的朋友跟隨小編一起看看吧

樣式

說明: 級聯(lián)選擇器中加上全選的按鈕, 并且保證數(shù)據(jù)響應(yīng)式。

思路

  • 因?yàn)槭怯腥x的功能,所以不能直接使用el-cascader組件, 而是選擇使用el-select組件, 在此組件內(nèi)部使用el-cascader-panel級聯(lián)面板
  • 全選按鈕也是寫在el-select組件中, 并且去監(jiān)聽全選按鈕的狀態(tài), 根據(jù)全選的狀態(tài), 決定級聯(lián)面板的數(shù)據(jù)與樣式
  • 如果想要獲取到最終選擇的數(shù)據(jù), 還是取級聯(lián)面板綁定的值,而不是select的值。

代碼實(shí)現(xiàn)

template:

注意:
1,el-select組件中,必須要寫入一個(gè)el-option組件, 可以隱藏, 但必須存在

2,選中的數(shù)據(jù)響應(yīng)式綁定的其實(shí)是級聯(lián)面板的數(shù)據(jù),同步到了select中,并且滿足其展示的內(nèi)容,比如“已選中2項(xiàng)”

 <el-form-item>
        <div class="theme-date theme">
          <div class="theme-date-prepend">功能模塊</div>
          <el-select v-model="selectModuleData">
            <el-option style="display: none" value=""></el-option>
            <el-checkbox class="allselect" v-model="allSelectModule"
              >全選</el-checkbox
            >
            <el-cascader-panel
              ref="cascaderModule"
              :options="treeList"
              v-model="cascaderModuleData"
              popper-class="popper-select"
              :show-all-levels="false"
              :props="cascaderProp"
              clearable
            >
            </el-cascader-panel>
          </el-select>
        </div>
      </el-form-item>

script:

// data數(shù)據(jù):
cascaderProp: {
        multiple: true,
        value: "name",
        label: "name",
        children: "children",
      },
allSelectModule: false,
cascaderModuleData: [],
selectModuleData: null,
// watch
watch: {
// 監(jiān)聽多選按鈕是否被勾選
    allSelectModule: {
      immediate: true,
      handler(newVal) {
        if (newVal) {
        /// 執(zhí)行的方法,可以在下面的methods中尋找
          this.cascaderAllSelect();
        } else {
          if(!this.$refs.cascaderModule) return
          this.$refs.cascaderModule.clearCheckedNodes();
          this.$refs.cascaderModule.checkedValue = []; // 清空選中值
          this.cascaderModuleData = [];
          this.$refs.cascaderModule.activePath = []; // 清除高亮
          this.$refs.cascaderModule.syncActivePath(); // 初始化(只展示一級節(jié)點(diǎn))
        }
      },
    },
    // 監(jiān)聽級聯(lián)面板綁定的數(shù)據(jù)去同步select的數(shù)據(jù), 讓其顯示在選擇框中
    cascaderModuleData: {
      immediate: true,
      handler(newVal) {
        if (newVal.length === 0) {
          this.selectModuleData = "";
          if(!this.$refs.cascaderModule) return
          this.$refs.cascaderModule.activePath = []; // 清除高亮
          this.$refs.cascaderModule.syncActivePath(); // 初始化(只展示一級節(jié)點(diǎn))
        } else {
          this.selectModuleData = `已選${newVal.length}項(xiàng)`;
        }
      },
    },
  },
/// methods
// 級聯(lián)選擇器全選, 其中moduleArray表示的是級聯(lián)面板綁定的數(shù)據(jù),表示如果此時(shí)沒有全選的話那就將所有的數(shù)據(jù),賦值到級聯(lián)面板中,這樣在顯示中,就表示全選的狀態(tài)。
    cascaderAllSelect() {
      if (this.cascaderModuleData.length !== this.moduleArray.length) {
        this.cascaderModuleData = this.moduleArray;
      }
    },
// 直接獲取級聯(lián)面板的數(shù)據(jù)cascaderModuleData, 作為參數(shù)提交即可

到此這篇關(guān)于如何使用el-cascader組件寫下拉級聯(lián)多選及全選功能的文章就介紹到這了,更多相關(guān)el-cascader下拉級聯(lián)多選內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3組件間的通信方式詳解

    Vue3組件間的通信方式詳解

    這篇文章主要介紹了Vue3組件間的通信方式,在使用vue時(shí),我們經(jīng)常會把不同的模塊拆分成不同的組件,而組件之間有的需要傳遞數(shù)據(jù),所以組件間的數(shù)據(jù)通信就非常重要了
    2023-04-04
  • vue實(shí)現(xiàn)帶小數(shù)點(diǎn)的星星評分

    vue實(shí)現(xiàn)帶小數(shù)點(diǎn)的星星評分

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)帶小數(shù)點(diǎn)的星星評分,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vuex的各個(gè)模塊封裝的實(shí)現(xiàn)

    Vuex的各個(gè)模塊封裝的實(shí)現(xiàn)

    這篇文章主要介紹了Vuex的各個(gè)模塊封裝的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Vue動態(tài)構(gòu)建混合數(shù)據(jù)Treeselect選擇樹及巨樹問題的解決

    Vue動態(tài)構(gòu)建混合數(shù)據(jù)Treeselect選擇樹及巨樹問題的解決

    這篇文章主要介紹了Vue動態(tài)構(gòu)建混合數(shù)據(jù)Treeselect選擇樹及巨樹問題的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue.js中Props數(shù)據(jù)未響應(yīng)式傳遞的問題及解決過程

    Vue.js中Props數(shù)據(jù)未響應(yīng)式傳遞的問題及解決過程

    Vue.js中Props數(shù)據(jù)未響應(yīng)式傳遞的原因及解決方法,避免直接修改Props數(shù)據(jù),正確使用計(jì)算屬性,正確處理嵌套Props數(shù)據(jù),使用清晰的事件命名
    2025-11-11
  • vue+axios+promise實(shí)際開發(fā)用法詳解

    vue+axios+promise實(shí)際開發(fā)用法詳解

    這篇文章主要介紹了vue+axios+promise實(shí)際開發(fā)用法詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • 如何在 Vue 中使用 JSX

    如何在 Vue 中使用 JSX

    這篇文章主要介紹了如何在 Vue 中使用 JSX,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2021-02-02
  • 解決報(bào)錯(cuò)ValidationError: Progress Plugin Invalid Options問題

    解決報(bào)錯(cuò)ValidationError: Progress Plugin Invalid&

    這篇文章主要介紹了解決報(bào)錯(cuò)ValidationError: Progress Plugin Invalid Options問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Vue export import 導(dǎo)入導(dǎo)出的多種方式與區(qū)別介紹

    Vue export import 導(dǎo)入導(dǎo)出的多種方式與區(qū)別介紹

    這篇文章主要介紹了Vue export import 導(dǎo)入導(dǎo)出的多種方式與區(qū)別介紹,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 正確更改Ant?Design?of?Vue樣式的問題

    正確更改Ant?Design?of?Vue樣式的問題

    這篇文章主要介紹了正確更改Ant?Design?of?Vue樣式的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論

沁源县| 嘉鱼县| 新沂市| 镇巴县| 莎车县| 密山市| 永定县| 阿坝| 洞头县| 明水县| 卓尼县| 利津县| 盈江县| 修文县| 邳州市| 清远市| 纳雍县| 介休市| 甘谷县| 溆浦县| 军事| 顺平县| 且末县| 枞阳县| 文安县| 华安县| 南靖县| 钦州市| 台山市| 平南县| 崇左市| 兴安县| 巴彦淖尔市| 多伦县| 射阳县| 巍山| 凌海市| 周口市| 印江| 章丘市| 天台县|