树形/级联组件->数据做键,制作与还原

发布时间 2023-11-14 13:38:54作者: qoon

数据的制作

/** 树形/级联组件->数据做键,制作与还原
 * @param {Array} list 
 * @param {string} params 源 `json` 的 `key`
 * @param {string} key 生成后 `string` 存放的 `key`
 * @param {string} children 下一级的 `key` 值
 * @returns 
 */
export const TreeValueToKey = (list, params = 'params', key = 'key', children = 'children') => {
  return list.map((item) => {
    if(item[params]) item[key] = JSON.stringify(item[params]);
    if(item[children]) item[children] = TreeValueToKey(item[children]);
    return item;
  })
}

数据的还原

/** 还原树/级联组件选中的key
 * @param {String<Object>[]} keys
 * @param {Boolean} false: 不进行合并 true: 合并结果数据为一个json
 */
export const recoverSelectKey = (keys, merge = false) => {
  const reObj = keys.map((str)=>JSON.parse(str));
  if(!merge) return reObj;
  else reObj.reduce((previous, current)=>({...previous, ...current}),{});
}