// 后台返回菜单json数据,根据组件缺少key 与title,需对数据进行二次加工。
![]()
// 菜单结构树转换
export const changeMenuTreeData = (arr) => {
if (arr) {
arr.forEach((item, index) => {
// item.child_type=1 表示含有子菜单; item.child_type=2 表示含有子功能
if (Number(item.child_type) === 1) {
// 含有子菜单
item.key = item.id ? `menu-${item.id}` : `menu-${index}`
item.title = item.app_name ? item.app_name : item.name
if (item.children) changeMenuTreeData(item.children)
} else if (Number(item.child_type) === 2) {
// 含有子菜单
item.key = item.id ? `func-${item.id}` : `func-${item.name}-${index}`
item.title = item.name
if (item.func) changeMenuTreeData(item.func)
} else {
item.key = item.id ? `func-${item.id}` : `func-${item.name}-${index}`
item.title = item.name
}
})
}
return arr
}
// 获取菜单结构树所有key,默认下拉树展开
export function getKey(arr, newArr) {
newArr = newArr || []
arr.forEach((item, index) => {
if (item['key']) {
newArr.push(item['key'])
if (item['children']) {
getKey(item['children'], newArr)
}
}
})
return newArr
}