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

Element-UI中<el-cascader?/>回顯失敗問題的完美解決

 更新時間:2023年01月31日 11:05:07   作者:深擁i小褚  
我們在使用el-cascader控件往數(shù)據(jù)庫保存的都是最后一級的數(shù)據(jù),那如果再次編輯此條數(shù)據(jù)時,直接給el-cascader傳入最后一級的數(shù)據(jù),它是不會自動勾選的,下面這篇文章主要給大家介紹了關(guān)于Element-UI中<el-cascader?/>回顯失敗問題的完美解決辦法,需要的朋友可以參考下

項(xiàng)目場景:

項(xiàng)目場景:接手了一些老項(xiàng)目,需要做一些日志相關(guān)的操作,從后臺日志跳轉(zhuǎn)到相應(yīng)頁面要帶上原來的請求參數(shù),涉及到一個回顯問題

問題描述

Element-UI的 <el-cascader /> 這個組件,賦值之后它不會回顯!而且后端返回的值只有最后一級的id,可是一個勁看文檔、找資料浪費(fèi)大半天,所以總結(jié)了一個比較完美的辦法

原因分析:

value 屬性才是回顯的關(guān)鍵,只有綁定了value屬性才會讓 <el-cascader /> 回顯(單選情況下是一維數(shù)組、多選是二維數(shù)組),而且數(shù)組中的值一定是最后一級的id加上它父級的id組成

在這里放一下模擬的數(shù)據(jù)

depart_check: [],
options: [
	{
	    value: 1,
	    label: '東南',
	    children: [
	    	{
		        value: 11,
		        label: '上海',
		        children: [{
		            value: 111,
		            label: '黃浦區(qū)'
		        }, {
		            value: 112,
		            label: '靜安區(qū)'
		        }, {
		            value: 113,
		            label: '虹口區(qū)'
		        }, {
		            value: 114,
		            label: '長寧區(qū)'
		        }]
		    }, {
		        value: 12,
		        label: '江蘇',
		    }, {
		        value: 13,
		        label: '浙江',
		    }
	    ]
	}, 
	{
	    value: 2,
	    label: '西北',
	    children: [{
	        value: 21,
	        label: '陜西',
	    }, {
	        value: 22,
	        label: '新疆維吾爾族自治區(qū)',
	    }]
	}
]

解決方案:

由于后端返回來的只有最后一級的id,所以我們需要寫一個遞歸來拿到最后一級id和它父級id的數(shù)組
廢話不多說直接上代碼

/*
* @param  list 數(shù)據(jù)列表
* @param  id 后端返回的id
**/
getParentsById(list, id) {
    for (let i in list) {
        if (list[i].value == id) {
            //查詢到就返回該數(shù)組對象的value
            return [list[i].value]
        }
        if (list[i].children) {
            let node = this.getParentsById(list[i].children, id)
            if (node !== undefined) {
                //查詢到把父節(jié)把父節(jié)點(diǎn)加到數(shù)組前面
                node.unshift(list[i].value)
                return node
            }
        }
    }
},

方法有了之后就開始解決問題

一、多選賦值回顯

因?yàn)槎噙x的時候綁定的value是個二維數(shù)組
比如隨便選倆,change事件拿到的值就是[[1,11,111], [1,12] ]

// 選擇單位
  handlechangedepatt(v) {
  	  console.log(v)
      this.depart_check = v
  },

因?yàn)楹蠖酥粫祷貋?11、12兩個值還是字符串格式"111,12",所以處理開始

	let _depart_check = data.depart_id ? data.depart_id.split(",").map(i => Number(i)) : []
	let _arr = []
	// 使用上面寫的方法 getParentsById 找出父級id并組合
	_depart_check && _depart_check.map(i => _arr.push(this.getParentsById(this.options, i)))
	console.log("_arr: ",_arr)
	this.depart_check = _arr

控制臺打印拿到的_arr,完美和change事件里拿到的值是一個格式,這樣回顯就完成了

這里有一個小問題就是,拿到的id可能很多個,getParentsById方法只能一個一個找父級id,所以需要依次獲取

二、單選賦值回顯

方法和多選類似,因?yàn)閱芜xchange選中的值是一位數(shù)組,比如:[ 1,11,111 ]所以當(dāng)拿到后端id之后不需要太多處理,只需要根據(jù)id和數(shù)據(jù)拿到一個一維數(shù)組的數(shù)據(jù)就行了,就不多解釋了

	let _depart_check = data.depart_id || ""
	let _arr = []
	_arr = this.getParentsById(this.options, _depart_check )
	this.depart_check = _arr

總結(jié)

以上就是el-cascader回顯失敗的解決辦法,可能有些小地方不夠嚴(yán)謹(jǐn),但是大問題得到了解決。

到此這篇關(guān)于Element-UI中<el-cascader />回顯失敗問題的完美解決的文章就介紹到這了,更多相關(guān)el-cascader回顯失敗解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何解決vue在ios微信

    如何解決vue在ios微信"復(fù)制鏈接"功能問題

    這篇文章主要介紹了如何解決vue在ios微信"復(fù)制鏈接"功能問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Vue之事件處理和事件修飾符詳解

    Vue之事件處理和事件修飾符詳解

    這篇文章主要為大家介紹了Vue之事件處理和事件修飾符,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>
    2021-11-11
  • vue2.0開發(fā)實(shí)踐總結(jié)之疑難篇

    vue2.0開發(fā)實(shí)踐總結(jié)之疑難篇

    這篇文章主要為大家總結(jié)了vue2.0開發(fā)實(shí)踐的疑難,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • vue實(shí)現(xiàn)目錄樹結(jié)構(gòu)

    vue實(shí)現(xiàn)目錄樹結(jié)構(gòu)

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)目錄樹結(jié)構(gòu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue.use()和Vue.prototype使用詳解

    Vue.use()和Vue.prototype使用詳解

    Vue.use()主要用于注冊全局插件,當(dāng)插件具有install方法時,調(diào)用Vue.use()可以全局使用該插件,Vue.prototype用于注冊全局變量,這些變量在項(xiàng)目任何位置都可以通過this.$變量名訪問,兩者的主要區(qū)別在于Vue.use()用于插件,Vue.prototype用于變量
    2024-10-10
  • 詳解新手使用vue-router傳參時注意事項(xiàng)

    詳解新手使用vue-router傳參時注意事項(xiàng)

    這篇文章主要介紹了詳解新手使用vue-router傳參時注意事項(xiàng),詳細(xì)的介紹了幾種常見錯誤,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • vue完成項(xiàng)目后,打包成靜態(tài)文件的方法

    vue完成項(xiàng)目后,打包成靜態(tài)文件的方法

    今天小編就為大家分享一篇vue完成項(xiàng)目后,打包成靜態(tài)文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 在Vue3中使?echarts?圖表寬度自適應(yīng)變化的操作方法

    在Vue3中使?echarts?圖表寬度自適應(yīng)變化的操作方法

    本文介紹了在Vue3中使用ECharts時,如何使圖表容器寬度自適應(yīng)頁面大小,通過修改模板中的div樣式,將寬度設(shè)置為100%,并監(jiān)聽窗口大小變化事件,調(diào)用ECharts實(shí)例的resize方法,實(shí)現(xiàn)圖表的自適應(yīng)調(diào)整,感興趣的朋友跟隨小編一起看看吧
    2025-02-02
  • Vue+webpack項(xiàng)目配置便于維護(hù)的目錄結(jié)構(gòu)教程詳解

    Vue+webpack項(xiàng)目配置便于維護(hù)的目錄結(jié)構(gòu)教程詳解

    新建項(xiàng)目的時候創(chuàng)建合理的目錄結(jié)構(gòu)便于后期的維護(hù)是很重要。這篇文章主要介紹了Vue+webpack項(xiàng)目配置便于維護(hù)的目錄結(jié)構(gòu) ,需要的朋友可以參考下
    2018-10-10
  • VUE v-model表單數(shù)據(jù)雙向綁定完整示例

    VUE v-model表單數(shù)據(jù)雙向綁定完整示例

    這篇文章主要介紹了VUE v-model表單數(shù)據(jù)雙向綁定,結(jié)合完整實(shí)例形式分析了vue.js實(shí)現(xiàn)表單數(shù)據(jù)雙向綁定相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01

最新評論

汽车| 宁德市| 临武县| 黄大仙区| 广丰县| 清水河县| 沛县| 衢州市| 安庆市| 体育| 尼木县| 铜鼓县| 宾阳县| 广丰县| 弥渡县| 兴和县| 建昌县| 乐平市| 南宁市| 巍山| 分宜县| 德昌县| 松原市| 论坛| 宁德市| 绥德县| 高台县| 盘山县| 德令哈市| 临西县| 甘孜| 泗水县| 浮梁县| 河东区| 西乌| 德江县| 南部县| 重庆市| 娱乐| 东海县| 加查县|