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

Element?Plus的el-tree-select組件懶加載+數(shù)據(jù)回顯詳解

 更新時(shí)間:2022年11月21日 10:40:04   作者:小佩丫  
el-tree-select組件是el-tree和el-select的結(jié)合體,他們的原始屬性未被更改,下面這篇文章主要給大家介紹了關(guān)于Element?Plus的el-tree-select組件懶加載+數(shù)據(jù)回顯的相關(guān)資料,需要的朋友可以參考下

一、背景說(shuō)明

  • 技術(shù):Vue3 + Element Plus
  • 需求:在選擇組織機(jī)構(gòu)時(shí)以樹(shù)結(jié)構(gòu)下拉展示。
  • 用到組件:TreeSelect 樹(shù)形選擇組件(el-tree-select

官網(wǎng)文檔地址:

簡(jiǎn)要說(shuō)明:

el-tree-select組件是el-treeel-select的結(jié)合體,他們的原始屬性未被更改,故具體屬性、方法還是參照el-treeel-select

二、使用

1. dom

 <el-tree-select
   v-model="form.deptId"
   lazy
   ref="treeRef"
   :load="loadNode"
   :props="{ value: 'deptId', label: 'deptName'}"
   value-key="deptId"
   node-key="deptId"
   placeholder="請(qǐng)選擇"
   show-checkbox
   check-strictly
   highlight-current
   :default-expanded-keys="defaultExpandedNodes"
 />

相關(guān)屬性描述:

v-model                    id值。只要這個(gè)id值在樹(shù)里能匹配上,就能夠順利回顯出其label值。
lazy                     開(kāi)啟懶加載
load                    加載子樹(shù)數(shù)據(jù)的方法
value-key                 作為 value 唯一標(biāo)識(shí)的鍵名。簡(jiǎn)單說(shuō)就是主鍵,根據(jù)自己后端返回的字段修改
node-key                每個(gè)樹(shù)節(jié)點(diǎn)用來(lái)作為唯一標(biāo)識(shí)的屬性。簡(jiǎn)單理解為樹(shù)節(jié)點(diǎn)的主鍵,同value-key
props                    配置選項(xiàng)。一般配置value和label的屬性值
show-checkbox            開(kāi)啟復(fù)選框
check-strictly            可選擇任一級(jí)別
highlight-current        選中高亮顯示
default-expanded-keys    默認(rèn)展開(kāi)節(jié)點(diǎn)的key數(shù)組(懶加載時(shí)用于數(shù)據(jù)回顯,這個(gè)屬性非常關(guān)鍵)

2.methods

/** 懶加載獲取樹(shù)形結(jié)構(gòu)*/
function loadNode(node, resolve) {
  // node其實(shí)是需要展開(kāi)樹(shù)節(jié)點(diǎn),但是第一次的node是個(gè)無(wú)用的數(shù)據(jù),可以認(rèn)為這個(gè)node是element給我們創(chuàng)建的,判斷的話,就是level等于0
  if (node && node.level == 0) { 
    getDeptData(0, resolve);
  } else {
    getDeptData(node, resolve);
  }
}

// 從后端獲取數(shù)據(jù)列表
function getDeptData(node, resolve){
  //構(gòu)造參數(shù) 
  let params = {};
  params.pageSize = 100;
  if(node == 0){				//根節(jié)點(diǎn)	
    params.deptId = '1';
  }else if(node.data.deptId){	//中間節(jié)點(diǎn)
    params.parentId = node.data.deptId;
  }else{
    return resolve([]);
  }
  // listDept是像后端訪問(wèn)組織結(jié)構(gòu)數(shù)據(jù)的接口,根據(jù)實(shí)際場(chǎng)景修改
  listDept(params).then(response => {
    let data = response.data;
    return resolve(data);
  })
}

后端返回的數(shù)據(jù)結(jié)構(gòu)

三、回顯

由于用到懶加載,與一次性全部加載數(shù)據(jù)不同的是,當(dāng)前只有ID,而樹(shù)結(jié)構(gòu)還沒(méi)渲染,就會(huì)導(dǎo)致沒(méi)有l(wèi)abel回顯。所以我們要在組件剛渲染的時(shí)候,就構(gòu)造我們想要的樹(shù)節(jié)點(diǎn)。

用到了default-expanded-keys屬性,表示默認(rèn)展開(kāi)節(jié)點(diǎn)的key數(shù)組。el-tree-select會(huì)按照這個(gè)keys數(shù)組,自動(dòng)調(diào)用loadNode方法,獲取數(shù)據(jù)并渲染樹(shù)節(jié)點(diǎn)。

default-expanded-keys的取值有兩種思路:

  • 增加/修改的時(shí)候,獲取從頂層根節(jié)點(diǎn)到當(dāng)前選中節(jié)點(diǎn)的key路徑,比如:[‘01’,‘0101’,‘010101’],一并保存到數(shù)據(jù)表里。
  • dept數(shù)據(jù)表里增加這么個(gè)字段,從根節(jié)點(diǎn)到當(dāng)前節(jié)點(diǎn)的key路徑

最后在獲取當(dāng)條數(shù)據(jù)form內(nèi)容的同時(shí),把要展開(kāi)節(jié)點(diǎn)的keys路徑賦值給default-expanded-keys即可,就會(huì)默認(rèn)展開(kāi)到當(dāng)前節(jié)點(diǎn)并成功回顯label。

總結(jié)

到此這篇關(guān)于Element Plus中el-tree-select組件懶加載+數(shù)據(jù)回顯的文章就介紹到這了,更多相關(guān)el-tree-select組件懶加載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VUE中使用TypeScript裝飾器實(shí)現(xiàn)表單驗(yàn)證的全過(guò)程

    VUE中使用TypeScript裝飾器實(shí)現(xiàn)表單驗(yàn)證的全過(guò)程

    這篇文章主要給大家介紹了關(guān)于如何在VUE中使用TypeScript裝飾器實(shí)現(xiàn)表單驗(yàn)證的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Vue組件通信入門(mén)之Provide和Inject機(jī)制

    Vue組件通信入門(mén)之Provide和Inject機(jī)制

    這篇文章主要給大家介紹了關(guān)于Vue組件通信入門(mén)之Provide和Inject機(jī)制的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Vue組件通信具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Vue API中setup ref reactive函數(shù)使用教程

    Vue API中setup ref reactive函數(shù)使用教程

    setup是用來(lái)寫(xiě)組合式api,內(nèi)部的數(shù)據(jù)和方法需要通過(guò)return之后,模板才能使用。在之前vue2中,data返回的數(shù)據(jù),可以直接進(jìn)行雙向綁定使用,如果我們把setup中數(shù)據(jù)類(lèi)型直接雙向綁定,發(fā)現(xiàn)變量并不能實(shí)時(shí)響應(yīng)。接下來(lái)就詳細(xì)看看它們的使用
    2022-12-12
  • Ant Design Upload 文件上傳功能的實(shí)現(xiàn)

    Ant Design Upload 文件上傳功能的實(shí)現(xiàn)

    這篇文章主要介紹了Ant Design Upload 文件上傳功能的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue.js表格分頁(yè)示例

    vue.js表格分頁(yè)示例

    這篇文章主要為大家詳細(xì)介紹了vue.js表格分頁(yè)示例,ajax異步加載數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • vue自定義橫向滾動(dòng)條css導(dǎo)航兩行排列布局實(shí)現(xiàn)示例

    vue自定義橫向滾動(dòng)條css導(dǎo)航兩行排列布局實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了vue自定義橫向滾動(dòng)條css導(dǎo)航兩行排列布局實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Vue讓router-view默認(rèn)顯示頁(yè)面操作方法

    Vue讓router-view默認(rèn)顯示頁(yè)面操作方法

    一個(gè)home頁(yè)面,點(diǎn)擊左邊的菜單欄,右邊顯示頁(yè)面,因此都知道在右邊放一個(gè)router-view然后配置路由即可,然而問(wèn)題出現(xiàn)在:重新打開(kāi)的時(shí)候,默認(rèn)是白色空的,遇到這樣的問(wèn)題如何解決呢,下面小編給大家分享Vue讓router-view默認(rèn)顯示頁(yè)面操作方法,感興趣的朋友一起看看吧
    2024-03-03
  • Vue3如何利用xlsx、xlsx-js-style導(dǎo)出Excel表格使用(適合新手)

    Vue3如何利用xlsx、xlsx-js-style導(dǎo)出Excel表格使用(適合新手)

    在Vue項(xiàng)目中導(dǎo)出Excel表格是常見(jiàn)的功能,特別是在后臺(tái)管理系統(tǒng)中,為了方便用戶將大量數(shù)據(jù)保存為本地文件,這篇文章主要給大家介紹了關(guān)于Vue3如何利用xlsx、xlsx-js-style導(dǎo)出Excel表格使用的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • 前端記錄輸入框的歷史輸入記錄實(shí)現(xiàn)步驟(輸入框數(shù)據(jù)記憶功能)

    前端記錄輸入框的歷史輸入記錄實(shí)現(xiàn)步驟(輸入框數(shù)據(jù)記憶功能)

    這篇文章主要介紹了如何使用localStorage來(lái)記錄每個(gè)輸入框的歷史輸入記錄,并在用戶輸入時(shí)動(dòng)態(tài)更新這些記錄,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • vue3更新的setup語(yǔ)法糖實(shí)例詳解

    vue3更新的setup語(yǔ)法糖實(shí)例詳解

    vue3上線已經(jīng)很久了,許多小伙伴應(yīng)該都已經(jīng)使用過(guò)vue3了,下面這篇文章主要給大家介紹了關(guān)于vue3更新的setup語(yǔ)法糖的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04

最新評(píng)論

阿拉尔市| 宁河县| 石城县| 衡东县| 聂荣县| 昭通市| 桐城市| 莱西市| 绿春县| 揭东县| 昌邑市| 简阳市| 宁强县| 于都县| 大石桥市| 台东市| 剑川县| 进贤县| 永州市| 淮阳县| 全南县| 丹棱县| 宜兰县| 佛冈县| 伊川县| 万州区| 金华市| 湛江市| 庆元县| 江孜县| 济源市| 巴青县| 新营市| 武川县| 钟祥市| 视频| 南岸区| 新宾| 仁布县| 宁安市| 定西市|