vue?ElementUI級(jí)聯(lián)選擇器回顯問(wèn)題解決
1. 分析問(wèn)題
【問(wèn)題描述】 使用 ElementUI 的 Cascader 級(jí)聯(lián)選擇器組件,如果使用了懶加載和動(dòng)態(tài)加載數(shù)據(jù)會(huì)導(dǎo)致,在v-model中的數(shù)據(jù)據(jù)重新放到 Cascader 級(jí)聯(lián)組建后,會(huì)出現(xiàn)數(shù)據(jù)不回顯的問(wèn)題。 【原因分析】 在級(jí)聯(lián)組件中雖然在v-model中重新傳入選中的數(shù)據(jù),但采用了懶加載+遠(yuǎn)程數(shù)據(jù)的方式構(gòu)建選項(xiàng)數(shù)據(jù),此時(shí)級(jí)聯(lián)組件的結(jié)構(gòu)數(shù)據(jù)并未生成,此時(shí)僅有選中后的數(shù)據(jù)而沒(méi)有選項(xiàng)數(shù)據(jù),因此導(dǎo)致了級(jí)聯(lián)選擇器沒(méi)有數(shù)據(jù)可供顯示,也就導(dǎo)致了數(shù)據(jù)不回顯的問(wèn)題。 【解決方案】 ① 前端渲染完整的選項(xiàng)數(shù)據(jù),此方案需要前端渲染的數(shù)據(jù)量極大,可能導(dǎo)致頁(yè)面崩潰,不建議采用此方式處理; ② 僅渲染選中后的數(shù)據(jù),即僅構(gòu)建選中后的選項(xiàng)結(jié)構(gòu),后端返回的數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理后依然可以配合懶加載+遠(yuǎn)程數(shù)據(jù)的方式(需要對(duì)渲染生成的數(shù)據(jù)進(jìn)行去重,避免和遠(yuǎn)程訪問(wèn)的數(shù)據(jù)重復(fù))
2. 解決問(wèn)題
借助Cascader 級(jí)聯(lián)選擇器組件的options屬性,構(gòu)建選項(xiàng)結(jié)構(gòu)配合v-model即可實(shí)現(xiàn)數(shù)據(jù)回顯,如果想配合懶加載+遠(yuǎn)程數(shù)據(jù),需要指定級(jí)聯(lián)組件的屬性信息。
{
"label": "浙江省",
"value": 12321
"children": [{
"label": "杭州市",
"value": 4565
}]
}【實(shí)現(xiàn)方式】
<el-cascader v-model='data' :props='cascadeProps' :options='cascadeOptions' filterable ></el-cascader>
cascadeProps: {
multiple: true,
checkStrictly: true,
// 啟用懶加載
lazy: true,
// 遠(yuǎn)程數(shù)據(jù)訪問(wèn)
lazyLoad: async (node, resolve) => {
const { data, level} = node
const parentCode = level === 0 ? '000' : data.nodeCode
const nodes = await this.getRemoteData(parentCode, level)
// 去除重復(fù)節(jié)點(diǎn)
let nodeFilter = nodes.filter(n => {
if (!this.optionList.includes(n.value)) {
return n
}
})
resolve(nodeFilter)
},
},getRemoteData(parentCode, level) {
return new Promise((resolve, reject) => {
getDistrictData({ parentCode }).then((res) => {
resolve(this.formatData(res.data, level))
})
})
},
formatData(data, level) {
let districtType = ''
switch (level) {
case 0:
districtType = 'province'
break
case 1:
districtType = 'city'
break
case 2:
districtType = 'district'
break
default:
break
}
return data.map((item) => {
return {
districtType,
nodeCode: item.nodeCode,
value: item.districtId,
label: item.name,
leaf: level >= 2,
}
})
},到此這篇關(guān)于ElementUI級(jí)聯(lián)選擇器回顯問(wèn)題解決的文章就介紹到這了,更多相關(guān)ElementUI選擇器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vue element Cascader級(jí)聯(lián)選擇器解決最后一級(jí)顯示空白問(wèn)題
- vue+element多選級(jí)聯(lián)選擇器自定義props使用詳解
- vue element-ui el-cascader級(jí)聯(lián)選擇器數(shù)據(jù)回顯的兩種實(shí)現(xiàn)方法
- vue項(xiàng)目element-ui級(jí)聯(lián)選擇器el-cascader回顯的問(wèn)題及解決
- Vue之Element級(jí)聯(lián)選擇器多選傳值以及回顯方式(樹(shù)形結(jié)構(gòu))
- vue如何實(shí)現(xiàn)級(jí)聯(lián)選擇器功能
相關(guān)文章
Vue項(xiàng)目中Websocket的使用實(shí)例
WebSocket就誕生了,它最大特點(diǎn)就是服務(wù)器可以主動(dòng)向客戶端推送信息,客戶端也可以主動(dòng)向服務(wù)器發(fā)送信息,是真正的雙向平等對(duì)話,下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目中Websocket使用的相關(guān)資料,需要的朋友可以參考下2023-02-02
vue使用天地圖、openlayers實(shí)現(xiàn)多個(gè)底圖疊加顯示效果
這篇文章主要介紹了vue使用天地圖、openlayers實(shí)現(xiàn)多個(gè)底圖疊加顯示,根據(jù)返回的經(jīng)緯度列表通過(guò)天地圖、openlayers實(shí)現(xiàn)底圖添加,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-04-04
Vue中實(shí)現(xiàn)動(dòng)畫(huà)效果的多種方法小結(jié)
平時(shí)我們能在網(wǎng)頁(yè)上看到很多動(dòng)畫(huà)效果,這些效果看起來(lái)就很引人注目,我們是不是也可以在自己的項(xiàng)目中添加一些動(dòng)畫(huà)效果,讓我們的頁(yè)面看起來(lái)更加的高端大氣上檔次,博人眼球,所以本文給大家介紹了Vue中實(shí)現(xiàn)動(dòng)畫(huà)效果的多種方法,需要的朋友可以參考下2024-07-07
vue前端框架—Mint UI詳解(更適用于移動(dòng)端)
這篇文章主要介紹了vue前端框架—Mint UI的詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
使用idea創(chuàng)建vue項(xiàng)目的圖文教程
Vue.js是一套構(gòu)建用戶界面的框架,只關(guān)注視圖層,它不僅易于上手,還便于與第三方庫(kù)或既有項(xiàng)目整合,下面這篇文章主要給大家介紹了關(guān)于使用idea創(chuàng)建vue項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2022-08-08
vue 根據(jù)選擇的月份動(dòng)態(tài)展示日期對(duì)應(yīng)的星期幾
這篇文章主要介紹了vue 如何根據(jù)選擇的月份動(dòng)態(tài)展示日期對(duì)應(yīng)的星期幾,幫助大家更好的利用vue框架處理日期需求,感興趣的朋友可以了解下2021-02-02
vue+elementUI 實(shí)現(xiàn)內(nèi)容區(qū)域高度自適應(yīng)的示例
這篇文章主要介紹了vue+elementUI 實(shí)現(xiàn)內(nèi)容區(qū)域高度自適應(yīng)的示例,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-09-09
element-ui中實(shí)現(xiàn)tree子節(jié)點(diǎn)部分選中時(shí)父節(jié)點(diǎn)也選中
這篇文章主要介紹了element-ui中實(shí)現(xiàn)tree子節(jié)點(diǎn)部分選中時(shí)父節(jié)點(diǎn)也選中的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08

