- 获取树结构中值对应的对象
// 遍历树结构,获取树结构中当前值对应的对象 // @param {String, Number} value - 根据此值去树结构里遍历 // @param {String} targetField - 需要和树结构里哪个字段比较 // @param {Array} arr - 目标树结构 // @param {String} childNodeKey - 树结构中子集字段,默认"children" // @return res 返回传入值所对应的项 export const findTreeItem = (value, targetField, arr, childNodeKey = "children") => { if(Array.isArray(arr)) { for (let i = 0; i < arr.length; i++) { let item = arr[i]; if (item[targetField] === value) { return item; } else { if (item[childNodeKey] && item[childNodeKey].length > 0) { let res = findTreeItem(value, targetField, item[childNodeKey]); if (res) { return res; } } } } } }
2.获取下拉数据中值对应的名称(适用于后端只返回了下拉选项中的值但是需要显示为中文,另外也可拓展为给文字显示不同颜色)
/**
* 获取下拉列表中数据对应的名称
* @param {Object} obj
* @param obj.dataList 数据列表
* @param obj.value 数据的值对应的字段名称 例如 'value'
* @param obj.label 数据的名称对应的字段名称 例如 'label'
* @param obj.data 当前传入的数据值
* @return name 返回当前传入值在数组中对应的名称
*/
export const getDataName = (obj) => {
let name = "";
if (Array.isArray(obj.dataList) && obj.dataList.length > 0) {
for (let i = 0; i < obj.dataList.length; i++) {
if (obj.dataList[i][obj.value] == obj.data) {
name = obj.dataList[i][obj.label];
}
}
}
return name || '--';
}
使用方法如下:
// 在渲染的地方调用(row.id为后端返回的值)
{{
getDataName({
dataList: levelList,
label: "name",
value: "id",
data: row.id
})
}}
// data中定义levelList
levelList: [
{
id: 1,
name: "等级一"
},
{
id: 2,
name: "等级二"
},
]