policeSecurity/superManagement/src/router/staticRouters.ts

71 lines
1.9 KiB
TypeScript

import {RouteRecordRaw} from "vue-router";
import {SYSTEM_MENUS} from "@/config";
import {SystemMenu} from "@/types/config";
const routerClassify: Record<'layout' | 'full', RouteRecordRaw[]> = {
layout: [],
full: []
}
/**
* 提取菜单路由
*/
const extractMenuToRouter = () => {
const traverse = (data: SystemMenu[]) => {
data.forEach(item => {
if (item.type === 'dir' && item.children && item.children.length > 0) {
traverse(item.children)
} else {
if (!item.isFull) {
routerClassify.layout.push({
path: item.path,
name: item.name,
meta: {
title: item.title
},
component: item.component
} as RouteRecordRaw)
} else {
routerClassify.full.push({
path: item.path,
name: item.name,
meta: {
title: item.title
},
component: item.component
} as RouteRecordRaw)
}
}
})
}
traverse(SYSTEM_MENUS)
}
extractMenuToRouter()
export const staticRouter: RouteRecordRaw[] = [
{
path: '/login',
name: 'login',
meta: {
title: '登录',
},
component: () => import("@/views/login.vue"),
}, {
path: "/",
redirect: '/index',
}, {
path: '/layout',
name: 'layout',
redirect: '/index',
component: () => import("@/components/layout/Layout.vue"),
children: routerClassify.layout
},
...routerClassify.full,
{
path: '/test',
name: 'test',
component: () => import("@/views/test.vue"),
},
]