/* * @Author: donghao donghao@supervision.ltd * @Date: 2024-03-27 14:56:27 * @LastEditors: donghao donghao@supervision.ltd * @LastEditTime: 2024-06-12 14:04:24 * @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, // 一级菜单 }, ]; // 算力中心 export const computePowerCenterRoute = [ { name: 'computePower-center', path: '/home/computePower-center', component: './ComputePowerCenter', access: 'canReadMenu', key: 'ComputePowerCenter001', level: 1, // 一级菜单 }, ]; // 系统日志 // 算力中心 export const logRoute = [ { name: 'log-index', path: '/home/log-index', component: './Log', access: 'canReadMenu', key: 'LogIndex001', 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, ...computePowerCenterRoute, ...logRoute], }; /** * @内部菜单 */ 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/index', }, { path: '/admin/index', name: 'admin-index', component: './Admin', }, { path: '/admin/previewFile', name: 'admin-preview-file', component: './Admin/previewFile', }, ], }, ];