UNPKG

address-client

Version:

地址管理前台组件

102 lines (92 loc) 2.07 kB
/** * 获得给定资源的名称全路径 * @param res: 资源 * @param name: 全路径字段 */ export function getFullName (res, name) { let result = '' while (true) { let data = res.data if (result === '') { result = data[name] } else { result = data[name] + '.' + result } res = res.parent if(!res){ break } } return result } /** * 获得给定资源的 名称和类型 全路径 * @param res: 资源 * @param name: 全路径字段 */ export function getFullNameType (res, name, type) { let result = [] while (true) { let data = res.data if(result === '') { result = {name: data[name],type: data[type]} } else { result.unshift({name: data[name],type: data[type]}) } res = res.parent if(!res){ break } } 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 }