refactor: 页面状态由 URL 路由驱动 - 移除 usePageState/useNavigation/hooks/constants,改用嵌套路由 + useParams

This commit is contained in:
2026-03-27 18:46:34 +08:00
parent 9feb62da3f
commit 1455cc850d
44 changed files with 587 additions and 1048 deletions

View File

@@ -1,11 +1,47 @@
import { HashRouter as Router, Routes, Route } from 'react-router-dom';
import { HashRouter as Router, Routes, Route, Navigate } from 'react-router-dom';
import { UserProvider } from './contexts/UserContext.jsx';
import AppLayout from './components/layout/AppLayout.jsx';
import ConsoleLayout from './components/layout/ConsoleLayout.jsx';
import AdminLayout from './components/layout/AdminLayout.jsx';
import DeveloperLayout from './components/layout/DeveloperLayout.jsx';
import HomePage from './pages/HomePage.jsx';
import LoginPage from './pages/LoginPage.jsx';
import ConsolePage from './pages/ConsolePage.jsx';
import AdminPage from './pages/AdminPage.jsx';
import DeveloperPage from './pages/DeveloperPage.jsx';
// Console 子页面
import ChatPage from './pages/console/ChatPage.jsx';
import SkillsPage from './pages/console/SkillsPage.jsx';
import SkillDetailPage from './pages/console/SkillDetailPage.jsx';
import ConsoleMySkillsPage from './pages/console/MySkillsPage.jsx';
import SkillConfigPage from './pages/console/SkillConfigPage.jsx';
import LogsPage from './pages/console/LogsPage.jsx';
import TasksPage from './pages/console/TasksPage.jsx';
import TaskDetailPage from './pages/console/TaskDetailPage.jsx';
import ProjectsPage from './pages/console/ProjectsPage.jsx';
import MemberConfigPage from './pages/console/MemberConfigPage.jsx';
import AddMemberPage from './pages/console/AddMemberPage.jsx';
import ConsoleReviewListPage from './pages/console/ConsoleReviewListPage.jsx';
import ConsoleReviewDetailPage from './pages/console/ConsoleReviewDetailPage.jsx';
// Admin 子页面
import OverviewPage from './pages/admin/OverviewPage.jsx';
import DepartmentsPage from './pages/admin/DepartmentsPage.jsx';
import AddDepartmentPage from './pages/admin/AddDepartmentPage.jsx';
import UsersPage from './pages/admin/UsersPage.jsx';
import AddUserPage from './pages/admin/AddUserPage.jsx';
import AdminProjectsPage from './pages/admin/AdminProjectsPage.jsx';
import AddProjectPage from './pages/admin/AddProjectPage.jsx';
import AdminLogsPage from './pages/admin/AdminLogsPage.jsx';
import ModelConfigsPage from './pages/admin/ModelConfigsPage.jsx';
import AddModelConfigPage from './pages/admin/AddModelConfigPage.jsx';
// Developer 子页面
import DevOverviewPage from './pages/developer/DevOverviewPage.jsx';
import DeveloperMySkillsPage from './pages/developer/MySkillsPage.jsx';
import UploadSkillPage from './pages/developer/UploadSkillPage.jsx';
import SkillEditorPage from './pages/developer/SkillEditorPage.jsx';
import UploadVersionPage from './pages/developer/UploadVersionPage.jsx';
import UpdateSkillInfoPage from './pages/developer/UpdateSkillInfoPage.jsx';
import DevDocsPage from './pages/developer/DevDocsPage.jsx';
function App() {
return (
@@ -15,9 +51,53 @@ function App() {
<Route path="/login" element={<LoginPage />} />
<Route element={<AppLayout />}>
<Route path="/" element={<HomePage />} />
<Route path="/console" element={<ConsolePage />} />
<Route path="/admin" element={<AdminPage />} />
<Route path="/developer" element={<DeveloperPage />} />
<Route path="/console" element={<ConsoleLayout />}>
<Route index element={<Navigate to="chat/welcome" replace />} />
<Route path="chat" element={<ChatPage />} />
<Route path="chat/:scene" element={<ChatPage />} />
<Route path="skills" element={<SkillsPage />} />
<Route path="skills/:skillId" element={<SkillDetailPage />} />
<Route path="my-skills" element={<ConsoleMySkillsPage />} />
<Route path="my-skills/:subscriptionId/config" element={<SkillConfigPage />} />
<Route path="logs" element={<LogsPage />} />
<Route path="tasks" element={<TasksPage />} />
<Route path="tasks/:taskId" element={<TaskDetailPage />} />
<Route path="projects" element={<ProjectsPage />} />
<Route path="projects/members/add" element={<AddMemberPage />} />
<Route path="projects/members/:memberId/config" element={<MemberConfigPage />} />
</Route>
<Route path="/admin" element={<AdminLayout />}>
<Route index element={<Navigate to="overview" replace />} />
<Route path="overview" element={<OverviewPage />} />
<Route path="reviews" element={<ConsoleReviewListPage />} />
<Route path="reviews/:type/:reviewId" element={<ConsoleReviewDetailPage />} />
<Route path="departments" element={<DepartmentsPage />} />
<Route path="departments/add" element={<AddDepartmentPage />} />
<Route path="departments/:id/edit" element={<AddDepartmentPage />} />
<Route path="users" element={<UsersPage />} />
<Route path="users/add" element={<AddUserPage />} />
<Route path="users/:id/edit" element={<AddUserPage />} />
<Route path="projects" element={<AdminProjectsPage />} />
<Route path="projects/add" element={<AddProjectPage />} />
<Route path="projects/:id/edit" element={<AddProjectPage />} />
<Route path="logs" element={<AdminLogsPage />} />
<Route path="models" element={<ModelConfigsPage />} />
<Route path="models/add" element={<AddModelConfigPage />} />
<Route path="models/:id/edit" element={<AddModelConfigPage />} />
</Route>
<Route path="/developer" element={<DeveloperLayout />}>
<Route index element={<Navigate to="overview" replace />} />
<Route path="overview" element={<DevOverviewPage />} />
<Route path="my-skills" element={<DeveloperMySkillsPage />} />
<Route path="my-skills/upload" element={<UploadSkillPage />} />
<Route path="my-skills/:skillId/editor" element={<SkillEditorPage />} />
<Route path="my-skills/:skillId/new-version" element={<UploadVersionPage />} />
<Route path="my-skills/:skillId/update-info" element={<UpdateSkillInfoPage />} />
<Route path="docs" element={<DevDocsPage />} />
</Route>
</Route>
</Routes>
</Router>
@@ -25,4 +105,4 @@ function App() {
);
}
export default App;
export default App;