manage-client
Version:
经营管控模块前台组件
76 lines (67 loc) • 1.54 kB
JavaScript
/**
* 获得给定资源的名称全路径
* @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
}