新增接单平台第一期闭环

This commit is contained in:
yml2213
2026-07-25 13:58:53 +08:00
parent 06decc51ff
commit f6d3f00f21
27 changed files with 3987 additions and 0 deletions
+29
View File
@@ -3,7 +3,9 @@ import { Spin } from 'antd'
import { HashRouter, Navigate, Outlet, Route, Routes, useLocation } from 'react-router'
import { getAdminRole, hasAdminSession } from '@/utils/admin-auth'
import { hasWorkerSession } from '@/utils/worker-auth'
import AdminLayout from '@/layouts/AdminLayout'
import WorkerLayout from '@/layouts/WorkerLayout'
const AdminDashboardPage = lazy(() => import('@/pages/admin/AdminDashboardPage'))
const AdminAuditLogsPage = lazy(() => import('@/pages/admin/AdminAuditLogsPage'))
@@ -22,8 +24,14 @@ const AdminTaskDetailPage = lazy(() => import('@/pages/admin/AdminTaskDetailPage
const AdminTasksPage = lazy(() => import('@/pages/admin/AdminTasksPage'))
const AdminUsersPage = lazy(() => import('@/pages/admin/AdminUsersPage'))
const AdminDevMockPage = lazy(() => import('@/pages/admin/AdminDevMockPage'))
const AdminWorkerPlatformPage = lazy(() => import('@/pages/admin/AdminWorkerPlatformPage'))
const ClaimPage = lazy(() => import('@/pages/claim/ClaimPage'))
const CollectPage = lazy(() => import('@/pages/collect/CollectPage'))
const NotFoundPage = lazy(() => import('@/pages/NotFoundPage'))
const WorkerHallPage = lazy(() => import('@/pages/worker/WorkerHallPage'))
const WorkerLoginPage = lazy(() => import('@/pages/worker/WorkerLoginPage'))
const WorkerOrdersPage = lazy(() => import('@/pages/worker/WorkerOrdersPage'))
const WorkerProfilePage = lazy(() => import('@/pages/worker/WorkerProfilePage'))
function RequireAdmin() {
const location = useLocation()
@@ -51,6 +59,16 @@ function LoginRoute() {
return <AdminLoginPage />
}
function RequireWorker() {
const location = useLocation()
if (!hasWorkerSession()) {
return <Navigate to="/worker/login" replace state={{ from: location }} />
}
return <Outlet />
}
export default function App() {
return (
<HashRouter>
@@ -66,6 +84,7 @@ export default function App() {
<Route path="orders/:orderId" element={<AdminOrderDetailPage />} />
<Route path="tasks" element={<AdminTasksPage />} />
<Route path="tasks/:taskId" element={<AdminTaskDetailPage />} />
<Route path="worker-platform" element={<AdminWorkerPlatformPage />} />
<Route path="kuaishou-industry" element={<AdminKuaishouIndustryPage />} />
<Route path="cloudtentacles-records" element={<AdminCloudtentaclesRecordsPage />} />
<Route path="dev-mock" element={<AdminDevMockPage />} />
@@ -77,7 +96,17 @@ export default function App() {
</Route>
</Route>
</Route>
<Route path="/worker/login" element={<WorkerLoginPage />} />
<Route element={<RequireWorker />}>
<Route path="/worker" element={<WorkerLayout />}>
<Route index element={<Navigate to="/worker/hall" replace />} />
<Route path="hall" element={<WorkerHallPage />} />
<Route path="orders" element={<WorkerOrdersPage />} />
<Route path="profile" element={<WorkerProfilePage />} />
</Route>
</Route>
<Route path="/claim/:token" element={<ClaimPage />} />
<Route path="/collect" element={<CollectPage />} />
<Route path="*" element={<NotFoundPage />} />
</Routes>
</Suspense>