element 級聯選擇器懶載入回顯
element 級聯選擇器懶載入
問題描述:
最近使用element ui 做了二級級聯選擇框,點選編輯,需將選擇的之前選擇的資料,回顯到cascader這個元件裡時,怎麼都顯示不出來,如上圖所示。
最後發現問題出現二級選擇框的動態載入上,即點選一級選擇框,二級選擇框才載入。新增資料的時候,級聯選擇器儲存的資料格式為[['value','value'],['value','value']]
。點編輯按鈕的時候只載入一級選擇框,因此無法顯示。
實現思路:
- 首先理解懶載入的原理,懶載入後呼叫resolve將二級選擇框資料載入到頁面,實質上是將二級選擇框資料新增到一級選擇框的children屬性上,node資料結構如下:
- 在編輯的時候載入一級選擇框,手動把二級選擇框的資料放在一級選擇框的children屬性上
- 此時,再給
[['value','value'],['value','value']]
預設值,即可實現,效果圖如下:
程式碼實現
<template>
<el-cascader :options="sysList" :props="props" clearable
v-model="addObj.sysMetricMappings" />
</template>
<script>
export default {
data() {
return {
sysList: [], //一級選擇框的資料
props: {
multiple: true,
lazy: true,
lazyLoad: this.lazyLoad
}
};
},
methods: {
//遍歷一級選擇框,把二級選擇框的資料放在一級的children屬性上
async loadOptions(sysLib) {
let array = [];
for (let i = 0; i < sysLib.length; i++) {
if (sysLib.length > 0) {
let res = await this.getLibList(sysLib[i].value);
sysLib[i].children = res;
}
array.push(sysLib[i]);
}
this.sysList = array;
},
async lazyLoad(node, resolve) {
let libList = [];
if (node.level == 1) {
libList = await this.getLibList(node.data.sysdataCode);
} else {
//node.leaf=true表示當前節點沒有子節點
node.leaf = node.level >= 1;
}
resolve(libList);
},
async doAdd(item) {
if (item) {
this.addObj = {
code: item.code,
memo: item.memo,
id: item.id,
name: item.name,
timetype: item.timetype,
type: item.type,
sysMetricMappings: [['100DPS','1001'],['100DPS','1002']]
};
await this.loadOptions(this.sysList);
} else {
this.addObj = {};
}
this.showAdd = true;
},
};
</script>
相關文章
- Vue-使用ElementUI級聯選擇器懶載入省市縣資料VueUI
- ElementUI級聯選擇器動態載入DemoUI
- Element原始碼分析系列8-Cascader(級聯選擇器)原始碼
- Element-ui 級聯選擇器元件功能擴充套件UI元件套件
- Vue+Element 單選模式下Cascader級聯選擇器使用總結Vue模式
- 記一次工時系統改版(前端下拉選單懶載入與選項資料回顯)前端
- vue-element 選擇框 選擇值改變,顯示不變Vue
- element 時間選擇器禁止選擇以前的時間
- Element UI框架中巧用樹選擇器UI框架
- 懶載入
- element-ui 時間選擇器設定時間選擇範圍UI
- 使用json和jquery級聯選擇JSONjQuery
- 懶載入和預載入
- Ribbon - 懶載入
- CSS父級選擇器 :has()CSS
- 解決Element UI 表格元件懶載入資料重新整理問題UI元件
- 【vue系列】當 element-ui 按需引入遇到 vue-router 路由懶載入VueUI路由
- 如何選擇車載物聯網路卡
- Vue元件懶載入Vue元件
- 【譯】懶載入元件元件
- 圖片懶載入
- vue路由懶載入Vue路由
- Vue 的懶載入Vue
- Hibernate 之 懶載入
- 小程式:動態資料實現三級聯動選擇器
- 圖片預載入和懶載入
- Vue 路由按需載入(路由懶載入)Vue路由
- 002---選擇器(標籤選擇器、類選擇器、id選擇器、偽類選擇器、萬用字元選擇器)字元
- jQuery入門-DOM/$/選擇器jQuery
- v-region 2.2.2 - 基於 Vue2 的中國行政區劃選擇器(4 級聯動城市選擇器)Vue
- jQuery選擇器介紹:基本選擇器、層次選擇器、過濾選擇器、表單選擇器jQuery
- 前端效能優化 --- 懶載入&預載入前端優化
- 懶載入之intersection observerServer
- 圖片懶載入原理
- vue(18)路由懶載入Vue路由
- 圖片懶載入(IntersectionObserver)Server
- 關於懶載入原理
- Fragment 懶載入實踐Fragment