You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1020 B
40 lines
1020 B
/** |
|
* 回显字典值 |
|
* @param {Object} dict |
|
* @param {Object} value |
|
*/ |
|
export function echoDicValue(dict, value) { |
|
if (!dict) return '' |
|
return dict.find(d => d.value == value).label || '' |
|
} |
|
|
|
/** |
|
* 构造树型结构数据 |
|
* |
|
* @param {*} data 数据源 |
|
* @param {*} id id字段 默认 'id' |
|
* @param {*} parentId 父节点字段 默认 'parentId' |
|
* @param {*} children 孩子节点字段 默认 'children' |
|
* @param {*} rootId 根Id 默认 0 |
|
*/ |
|
export function handleTree( |
|
data, |
|
id = 'id', |
|
parentId = 'parentId', |
|
children = 'children', |
|
rootId = 0, |
|
) { |
|
// 对源数据深度克隆 |
|
const cloneData = JSON.parse(JSON.stringify(data)); |
|
// 循环所有项 |
|
const treeData = cloneData.filter((father) => { |
|
let branchArr = cloneData.filter((child) => { |
|
//返回每一项的子级数组 |
|
return father[id] === child[parentId]; |
|
}); |
|
branchArr.length > 0 ? (father.children = branchArr) : ''; |
|
//返回第一层 |
|
return father[parentId] === rootId; |
|
}); |
|
return treeData !== '' ? treeData : data; |
|
} |