亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

樣式

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

思路

  • 因為是有全選的功能,所以不能直接使用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的值。

代碼實現(xiàn)

template:

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

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

 <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é)點)
        }
      },
    },
    // 監(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é)點)
        } else {
          this.selectModuleData = `已選${newVal.length}項`;
        }
      },
    },
  },
/// methods
// 級聯(lián)選擇器全選, 其中moduleArray表示的是級聯(lián)面板綁定的數(shù)據(jù),表示如果此時沒有全選的話那就將所有的數(shù)據(jù),賦值到級聯(lián)面板中,這樣在顯示中,就表示全選的狀態(tài)。
    cascaderAllSelect() {
      if (this.cascaderModuleData.length !== this.moduleArray.length) {
        this.cascaderModuleData = this.moduleArray;
      }
    },
// 直接獲取級聯(lián)面板的數(shù)據(jù)cascaderModuleData, 作為參數(shù)提交即可

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

相關文章

  • Vue2.x 項目性能優(yōu)化之代碼優(yōu)化的實現(xiàn)

    Vue2.x 項目性能優(yōu)化之代碼優(yōu)化的實現(xiàn)

    這篇文章主要介紹了Vue2.x 項目性能優(yōu)化之代碼優(yōu)化的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 解決VUE框架 導致綁定事件的阻止冒泡失效問題

    解決VUE框架 導致綁定事件的阻止冒泡失效問題

    下面小編就為大家分享一篇vue監(jiān)聽滾動事件 實現(xiàn)某元素吸頂或者固定位置顯示方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Vue 動態(tài)設置路由參數(shù)的案例分析

    Vue 動態(tài)設置路由參數(shù)的案例分析

    這篇文章主要介紹了Vue 動態(tài)設置路由參數(shù)的案例分析,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • Vue獲取當前系統(tǒng)日期(年月日)的示例代碼

    Vue獲取當前系統(tǒng)日期(年月日)的示例代碼

    發(fā)中會有要獲取當前日期的需求,有的是獲取到當前月份,有的是精確到分秒,在 Vue 開發(fā)中,獲取當前時間是一項常見的需求,本文將深入探討Vue獲取當前系統(tǒng)日期(年月日),幫助您更好地利用當前時間,需要的朋友可以參考下
    2024-01-01
  • element中async-validator異步請求驗證使用

    element中async-validator異步請求驗證使用

    本文主要介紹了element中async-validator異步請求驗證使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • vue?+?electron應用文件讀寫操作

    vue?+?electron應用文件讀寫操作

    這篇文章主要介紹了vue?+?electron應用文件讀寫操作,如果要制作的應用并不復雜,完全可以將數(shù)據(jù)存儲在本地文件當中,然后應用就可以通過這些文件進行數(shù)據(jù)的讀寫,需要的朋友參考下吧
    2022-06-06
  • vue如何解決數(shù)據(jù)加載時,插值表達式閃爍問題

    vue如何解決數(shù)據(jù)加載時,插值表達式閃爍問題

    這篇文章主要介紹了vue如何解決數(shù)據(jù)加載時,插值表達式閃爍問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • element plus中el-upload實現(xiàn)上傳多張圖片的示例代碼

    element plus中el-upload實現(xiàn)上傳多張圖片的示例代碼

    最近寫項目的時候需要一次上傳多張圖片,本文主要介紹了element plus中el-upload實現(xiàn)上傳多張圖片的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • elementPlus修改主題色以及皮膚設置思路

    elementPlus修改主題色以及皮膚設置思路

    這篇文章主要介紹了elementPlus修改主題色以及皮膚設置思路,具有很好的參考價值,希望對大家有所幫助。
    2023-04-04
  • vue3中引入class類的寫法代碼示例

    vue3中引入class類的寫法代碼示例

    最近一直在做vue項目,從網(wǎng)上搜索到的資料不太多,這篇文章主要給大家介紹了關于vue3中引入class類的寫法的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-05-05

最新評論