vue項(xiàng)目element-ui級(jí)聯(lián)選擇器el-cascader回顯的問(wèn)題及解決
vue項(xiàng)目element-ui級(jí)聯(lián)選擇器el-cascader回顯問(wèn)題
1、需求
el-cascader內(nèi)部是數(shù)組形式的,而后臺(tái)接口只需傳入數(shù)組的最后一個(gè)字段,但修改時(shí)候往往也只返回這最后一個(gè)字段,導(dǎo)致el-cascader無(wú)法正確回顯
2、原因分析
v-model屬性才是回顯的關(guān)鍵,只有綁定了v-model屬性才會(huì)讓 <el-cascader \/>
回顯,而且數(shù)組中的值(即:targetViewId
值)一定是最后一級(jí)的id加上它父級(jí)的id組成
3、解決方案
由于后端返回來(lái)的只有最后一級(jí)的id,所以我們需要寫(xiě)一個(gè)遞歸來(lái)拿到最后一級(jí)id和它父級(jí)id的數(shù)組。廢話不多說(shuō)直接上代碼
/* * el-cascader遞歸獲取父級(jí)id * @param list 數(shù)據(jù)列表 * @param id 后端返回的id * propsCascader 是el-cascader props屬性 **/ getParentsById(list, id) { for (let i in list) { if (list[i][this.propsCascader.value || 'value'] == id) { return [list[i][this.propsCascader.value || 'value']] } if (list[i].children) { let node = this.getParentsById(list[i].children, id) if (node !== undefined) { // 追加父節(jié)點(diǎn) node.unshift(list[i][this.propsCascader.value || 'value']) return node } } } },
4、效果圖
5、注意
如果直接將targetViewId賦值后臺(tái)返回的最后一個(gè)id值,也能回顯(最后一級(jí)沒(méi)有選中),其效果如下:
vue+elementui el-cascader回填功能
<el-cascader style="width:97%;margin:5px 0;" v-model="dataInfo2" :options="subjects" :props="defaultProps" @change="handleChange" placeholder="請(qǐng)選擇數(shù)據(jù)表" size="small"> </el-cascader> updateChart(id) { this.$http.get('url?id='+id) .then(res => { if (res.data.success === true) { this.dataTableId = res.data.data.dataTableId this.dragTo.values = res.data.data.dragTo this.$refs.hottable.editShowTableMe(res.data.data) this.$http.post('url', {id: this.dataTableId}) .then(response => { this.dataInfo2 = [response.data.data[0].directoryId,this.dataTableId] this.dragFrom.measures = [] this.dragFrom.measures = response.data.data[0].design.schema.measure this.deleteChecked() }) .catch(function(error) { console.log(error) }) } }) .catch(err => { console.log(err) }) }, deleteChecked() { var arr = [] for (let i = 0; i < this.dragFrom.measures.length; i++) { for (let j = 0; j < this.dragTo.values.length; j++) { if ( this.dragFrom.measures[i].column === this.dragTo.values[j].column ) { arr.push(i) } } } for (var k = 0; k < arr.length; k++) { if (k == 0) { this.dragFrom.measures.splice(arr[k], 1) //刪除arr[0],刪除一個(gè) } else { this.dragFrom.measures.splice(arr[k] - k, 1) //刪除arr[0],刪除一個(gè),這樣判斷的意思是一直從第一個(gè)開(kāi)始刪除 } } },
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- element-ui時(shí)間日期選擇器限制選擇范圍的幾種場(chǎng)景
- element-ui動(dòng)態(tài)級(jí)聯(lián)選擇器回顯問(wèn)題詳解(二十多行代碼搞定)
- 解決element-ui的el-select選擇器的@blur事件失效的坑
- 詳解element-ui日期時(shí)間選擇器的日期格式化問(wèn)題
- element-ui 時(shí)間選擇器限制范圍的實(shí)現(xiàn)(隨動(dòng))
- vue2.0 element-ui中el-select選擇器無(wú)法顯示選中的內(nèi)容(解決方法)
- vue?+?element-ui?季度選擇器組件?el-quarter-picker示例詳解
相關(guān)文章
茶余飯后聊聊Vue3.0響應(yīng)式數(shù)據(jù)那些事兒
這篇文章主要介紹了茶余飯后聊聊Vue3.0響應(yīng)式數(shù)據(jù)那些事兒,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10vue3整合SpringSecurity加JWT實(shí)現(xiàn)權(quán)限校驗(yàn)
本文主要介紹了vue3整合SpringSecurity加JWT實(shí)現(xiàn)權(quán)限校驗(yàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04vue實(shí)現(xiàn)抽獎(jiǎng)效果Demo
這篇文章主要介紹了vue實(shí)現(xiàn)抽獎(jiǎng)效果Demo,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01elementUI中input回車觸發(fā)頁(yè)面刷新問(wèn)題與解決方法
這篇文章主要給大家介紹了關(guān)于elementUI中input回車觸發(fā)頁(yè)面刷新問(wèn)題與解決方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用elementUI具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-07-07基于Vue3自定義實(shí)現(xiàn)圖片翻轉(zhuǎn)預(yù)覽功能
這篇文章主要為大家詳細(xì)介紹了如何基于Vue3自定義實(shí)現(xiàn)簡(jiǎn)單的圖片翻轉(zhuǎn)預(yù)覽功能,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,有需要的小伙伴可以參考一下2023-10-10Vuex的基本概念、項(xiàng)目搭建以及入坑點(diǎn)
Vuex是一個(gè)專門(mén)為Vue.js應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式,這篇文章主要介紹了Vuex的基本概念、項(xiàng)目搭建以及入坑點(diǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11解決vue2+vue-router動(dòng)態(tài)路由添加及路由刷新后消失問(wèn)題
這篇文章主要介紹了解決vue2+vue-router動(dòng)態(tài)路由添加及路由刷新后消失問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08