UNPKG

manage-client

Version:

经营管控模块前台组件

76 lines (67 loc) 1.54 kB
/** * 获得给定资源的名称全路径 * @param res: 资源 * @param name: 全路径字段 */ export function getFullName (res, name) { let result = '' while (res != null) { if (result === '') { result = res[name] } else { result = res[name] + '.' + result } res = res.parent } return result } /** * 给拿到的资源添加父关系 * @param res */ export function procParent (reses) { for (let value of reses) { procInnerParent(value) } } // 给资源res的所有子,添加父关系 function procInnerParent (res) { for (let value of res.children) { value.parent = res procInnerParent(value) } } /** * 从给定一批资源中,递归找到给定号码的资源 * @param model:给定的一批资源 * @param id:要查找的资源id串 */ export function find (model, id) { // 返回最后一个id信息 let index = id.lastIndexOf('.') if (index !== -1) { id = id.substr(index + 1) } // 子中有,返回子里的 for (let value of model) { let ret = getInnerResourceById(value, id) if (ret) { return ret } } return null } // 根据id号取资源,自己不是,递归从子中找 function getInnerResourceById (res, id) { if (res.id === id) { return res } // 子中有,返回子里的 for (let value of res.children) { let ret = getInnerResourceById(value, id) if (ret) { return ret } } return null }