perf: router

This commit is contained in:
xiaoxian521 2022-08-22 10:19:10 +08:00
parent 5a7187d22f
commit 7c84d9eb70
2 changed files with 10 additions and 17 deletions

View File

@ -4,8 +4,6 @@ import { MockMethod } from "vite-plugin-mock";
// http://mockjs.com/examples.html#Object
const systemRouter = {
path: "/system",
name: "User",
redirect: "/system/user/index",
meta: {
icon: "setting",
title: "menus.hssysManagement",
@ -51,8 +49,6 @@ const systemRouter = {
const permissionRouter = {
path: "/permission",
redirect: "/permission/page/index",
name: "PermissionPage",
meta: {
title: "menus.permission",
icon: "lollipop",
@ -79,8 +75,6 @@ const permissionRouter = {
const frameRouter = {
path: "/iframe",
name: "FramePure",
redirect: "/iframe/pure",
meta: {
icon: "monitor",
title: "menus.hsExternalPage",
@ -115,8 +109,6 @@ const frameRouter = {
const tabsRouter = {
path: "/tabs",
redirect: "/tabs/index",
name: "Tabs",
meta: {
icon: "IF-team-icontabs",
title: "menus.hstabs",

View File

@ -228,15 +228,16 @@ function addAsyncRoutes(arrRoutes: Array<RouteRecordRaw>) {
arrRoutes.forEach((v: RouteRecordRaw) => {
// 将backstage属性加入meta标识此路由为后端返回路由
v.meta.backstage = true;
if (v.meta?.frameSrc) {
v.component = IFrame;
} else {
// 对后端传component组件路径和不传做兼容如果后端传component组件路径那么path可以随便写如果不传component组件路径会跟path保持一致
const index = v?.component
? modulesRoutesKeys.findIndex(ev => ev.includes(v.component as any))
: modulesRoutesKeys.findIndex(ev => ev.includes(v.path));
v.component = modulesRoutes[modulesRoutesKeys[index]];
}
// 父级的redirect属性取值如果子级存在且父级的redirect属性不存在默认取第一个子级的path如果子级存在且父级的redirect属性存在取存在的redirect属性会覆盖默认值
if (v?.children && !v.redirect) v.redirect = v.children[0].path;
// 父级的name属性取值如果子级存在且父级的name属性不存在默认取第一个子级的name如果子级存在且父级的name属性存在取存在的name属性会覆盖默认值
if (v?.children && !v.name) v.name = v.children[0].name;
if (v.meta?.frameSrc) v.component = IFrame;
// 对后端传component组件路径和不传做兼容如果后端传component组件路径那么path可以随便写如果不传component组件路径会跟path保持一致
const index = v?.component
? modulesRoutesKeys.findIndex(ev => ev.includes(v.component as any))
: modulesRoutesKeys.findIndex(ev => ev.includes(v.path));
v.component = modulesRoutes[modulesRoutesKeys[index]];
if (v.children) {
addAsyncRoutes(v.children);
}