嵌套数组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绑定的数组值中只有选择的一项 然后修改的时候直接把这个值再赋回去就好啦

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