/*
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-27 14:56:27
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-05-20 15:20:34
* @FilePath: \general-ai-manage\config\routes.ts
* @Description: 页面路由池
*/
/**
* @name umi 的路由配置
* @description 只支持 path,component,routes,redirect,wrappers,name,icon 的配置
* @param path path 只支持两种占位符配置,第一种是动态参数 :id 的形式,第二种是 * 通配符,通配符只能出现路由字符串的最后。
* @param component 配置 location 和 path 匹配后用于渲染的 React 组件路径。可以是绝对路径,也可以是相对路径,如果是相对路径,会从 src/pages 开始找起。
* @param routes 配置子路由,通常在需要为多个路径增加 layout 组件时使用。
* @param redirect 配置路由跳转
* @param wrappers 配置路由组件的包装组件,通过包装组件可以为当前的路由组件组合进更多的功能。 比如,可以用于路由级别的权限校验
* @param name 配置路由的标题,默认读取国际化文件 menu.ts 中 menu.xxxx 的值,如配置 name 为 login,则读取 menu.ts 中 menu.login 的取值作为标题
* @param icon 配置路由的图标,取值参考 https://ant.design/components/icon-cn, 注意去除风格后缀和大小写,如想要配置图标为 则取值应为 stepBackward 或 StepBackward,如想要配置图标为 则取值应为 user 或者 User
* @doc https://umijs.org/docs/guides/routes
*/
// 主页路由模块
export const homeRoute = [
{
name: 'home-business-project',
path: '/home/business-project',
component: './Project/BusinessProject',
access: 'canReadMenu',
key: 'BusinessProject001',
level: 1, // 一级菜单
},
];
/**
* @模型路由模块
* @param modelRouteIndex 一级菜单
* @param subModelRoute 二级菜单
* @param level 菜单级数
* @param isHideMenu 是否隐藏菜单
* @param icon 字体图标
* @param rootMenuKey 根目录key 识别高亮
*/
const modelRouteIndex = {
name: 'model-manage',
path: '/home/model-index',
component: './Model/ModelIndex',
access: 'canReadMenu',
// menuIcon: 'icon-moxingliebiao-unselected',
key: 'model000',
};
const subModelRoute = [
{
name: 'model-index',
path: '/home/model-index',
component: './Model/ModelIndex',
access: 'canReadMenu',
// menuIcon: 'icon-moxingliebiao-unselected',
defaultIcon: 'modelListActiveIcon',
// activeIcon: modelListActiveIicon,
key: 'model001',
rootMenuKey: 'model000',
},
{
name: 'model-runtime-lib',
path: '/home/runtime-lib',
component: './Model/ModelRuntimeLib',
access: 'canReadMenu',
key: 'model002',
menuIcon: 'icon-moxingyunhangku-unselected',
level: 2,
rootMenuKey: 'model000',
},
{
name: 'model-detail',
path: '/home/model-detail/:id',
component: './Model/ModelDetail',
access: 'canReadMenu',
key: 'model003',
isHideMenu: true,
level: 2,
rootMenuKey: 'model000',
},
];
export const modelRoute = [
{
...modelRouteIndex,
level: 1,
subMenu: [...subModelRoute],
},
...subModelRoute,
];
/**
* @外部菜单
*/
export const outerMenuRoute = {
name: 'home',
path: '/home',
layout: false,
access: 'canReadMenu',
component: '@/layouts/HomeLayout',
routes: [...homeRoute, ...modelRoute],
};
/**
* @内部菜单
*/
export const innerMenuRoutes = [
{
name: 'business-info-index',
path: '/business/index',
component: './Project/BusinessInfo',
access: 'canReadMenu',
key: '1001',
menuIcon: 'icon-qiyexinxi',
},
{
name: 'business-device-group',
path: '/business/deviceGroup',
component: './Business/DeviceGroup',
access: 'canReadMenu',
key: '1002',
menuIcon: 'icon-jiedianshezhi',
},
{
name: 'business-model-index',
path: '/business/businessModel',
component: './Business/BusinessModel',
access: 'canReadMenu',
key: '1003',
menuIcon: 'icon-yewumoxing',
},
{
name: 'business-server-state',
path: '/business/serverState',
component: './Business/BusinessState',
access: 'canReadMenu',
key: '1004',
menuIcon: 'icon-fuwuqizhuangtai',
},
{
name: 'business-device-state',
path: '/business/deviceState',
component: './Business/BusinessState/deviceSate',
access: 'canReadMenu',
key: '1005',
menuIcon: 'icon-shebeizhuangtai',
},
];
// 全路由模块
export default [
outerMenuRoute,
{
path: '/user',
layout: false,
routes: [
{
name: 'login',
path: '/user/login',
component: './User/Login',
},
],
},
...innerMenuRoutes,
{
path: '/',
redirect: '/home/business-project',
},
{
path: '*',
layout: false,
component: './404',
},
// test demo
{
path: '/admin',
name: 'admin',
icon: 'crown',
routes: [
{
path: '/admin',
redirect: '/admin/sub-page',
},
{
path: '/admin/sub-page',
name: 'sub-page',
component: './Admin',
},
],
},
];