嵌套數組z通過給定的最後一級的code獲得他的所有父級的code

需求:級聯選擇的數據保存時只保存了最後一級的code 修改時要通過最後一級的code獲取他的父級的所有code否則修改時選不中最後一級 (當然啦 element那麼強大這個需求可以直接通過props配置的)這裏寫的只是一種方法js操作的可以用在其他的這種需求裏面
在這裏插入圖片描述 如圖要爲選中狀

getParaentCode(classifyList, code) {  // 獲取通過最後一層的code獲取他的所有父級的code      classifyList  list 數據 已知的子code
	 let temp = [code]      
	 let forFn = function (arr, code) {        
	 	for (let i = 0; i < arr.length; i++) {          
	 		let item = arr[i]          
	 		if (item.children) {            
		 		let data = item.children.find(item1 => item1.templateCode === code)            
		 		if (data) {              
		 			temp.unshift(item.templateCode)              
		 			forFn(classifyList, item.templateCode)             
		 			 break           
		 		 } else {              
		 		 	forFn(item.children, code)           
		 		 }          
		 	}        
		}      
	}      
	forFn(classifyList, code)      return temp    
}
使用
this.labelData.parentCode = this.getParaentCode(this.templateClassify, this.labelData.categoryCode)

element : :props="{ multiple: true, checkStrictly: true, emitPath: false, label: ‘templateName’, value: ‘templateCode’, children: ‘children’}" 這個加粗的屬性可以直接獲取到選中的值  model綁定的數組值中只有選擇的一項 然後修改的時候直接把這個值再賦回去就好啦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章