import XEUtils from "xe-utils"
import {dynamicRoutes, staticRoutes} from "/@/router/route";
* @description: 处理后端菜单数据格式
* @param {Array} menuData
* @return {*}
*/
export const handleMenu = (menuData: Array<any>) => {
const handleMeta = (item: any) => {
item.meta = {
title: item.title,
isLink: item.link_url,
isHide: !item.visible,
isKeepAlive: item.cache,
isAffix: item.is_affix,
isIframe: item.is_iframe,
roles: ['admin'],
icon: item.icon
}
item.name = item.component_name
item.path = item.web_path
return item
}
const handleFrame = (item: any) => {
if (item.is_iframe) {
item.meta = {
title: item.title,
isLink: item.link_url,
isHide: !item.visible,
isKeepAlive: item.cache,
isAffix: item.is_affix,
isIframe: item.is_iframe,
roles: ['admin'],
icon: item.icon
}
item.name = item.component_name
item.path = item.web_path
}
return item
}
const defaultRoutes:Array<any> = []
const iframeRoutes:Array<any> = []
menuData.forEach((val) => {
defaultRoutes.push(handleMeta(val))
})
const data = XEUtils.toArrayTree(defaultRoutes, {
parentKey: 'parent',
strict: true,
})
const dynamicRoutes = [
{
path: '/home', name: 'home', component: '/system/home/index', meta: {
title: 'message.router.home',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: true,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-shouye'
}
},
...data
]
return {frameIn:dynamicRoutes,frameOut:iframeRoutes}
}