From 7ee06b9901200b07c30162bad96bd9a0e4ee69e6 Mon Sep 17 00:00:00 2001 From: FrozenArcher Date: Thu, 14 Mar 2024 19:46:11 +0800 Subject: [PATCH] refactor routes --- src/App.tsx | 14 +++++++------- src/router.tsx | 29 +++++++++++++++++++++++++---- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 179be00..1dcc428 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -8,7 +8,7 @@ import { } from '@ant-design/icons'; import type { MenuProps } from 'antd'; import { Breadcrumb, Layout, Menu, theme } from 'antd'; -import { AppRouter } from './router'; +import { AppRouter, routes, routeName } from './router'; import PageFooter from './components/PageFooter'; const { Content, Sider } = Layout; @@ -62,17 +62,17 @@ function defSubMenu( } const items: MenuItem[] = [ - defMenu('主页', 'mainpage', , '/'), + defMenu('主页', 'mainpage', , routes.main), defRootMenu('展示信息管理', 'sub1', , [ - defSubMenu('选项1', '1', '/admin/hello1'), - defSubMenu('选项2', '2', '/admin/hello2'), - defSubMenu('选项3', '3', '/admin/hello3'), + defSubMenu('排班表管理', '1', routes.admin.dutyTable), + defSubMenu('成员权限管理', '2', routes.admin.userControl), + defSubMenu('值班信息管理', '3', routes.admin.dutyInfo), ]), defRootMenu('值班组长', 'sub2', , [ defSubMenu('选项1', '4', '/duty/hi1'), defSubMenu('选项2', '5', '/duty/hi2'), ]), - defMenu('关于我们', 'aboutpage', , '/about'), + defMenu('关于我们', 'aboutpage', , routes.about), ]; interface BreadcrumbItem { @@ -97,7 +97,7 @@ const AppLayout: FC<{ router: JSX.Element }> = (props) => { for (var i = 1; i < pathArray.length; i++) { currentRouteItems.push({ href: '', - title: {pathArray[i]}, + title: {routeName.get(pathArray[i])}, }); } diff --git a/src/router.tsx b/src/router.tsx index c4a7d2a..4da4d3d 100644 --- a/src/router.tsx +++ b/src/router.tsx @@ -1,15 +1,36 @@ import { Routes, Route } from 'react-router-dom'; import Todo from './components/Todo'; +export const routes = { + main: '/', + about: '/about', + admin: { + dutyTable: '/admin/dutytable', + userControl: '/admin/usercontrol', + dutyInfo: '/admin/dutyinfo', + }, + duty: {}, +}; + +export const routeName = new Map([ + ['admin', '展示信息'], + ['about', '关于我们'], + ['duty', '值班组长'], + ['dutytable', '排班表'], + ['usercontrol', '成员权限'], + ['dutyinfo', '值班信息'], +]); + export const AppRouter: React.FC = () => { return ( - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> } /> } /> + } /> ); };