/** * 回显字典值 * @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; }