- 前端:AnalyticsDashboard 页面 + BaseEChart 封装 + analyticsApi,路由与导航 - 后端:/analytics 系列接口(capability/flow/options/device-records) - 能力图谱单机颗粒度、流转对比按人堆叠识别瓶颈、点击下钻备注、筛选动态联动 - 依赖:引入 echarts,移除 echarts-for-react
68 lines
3.1 KiB
TypeScript
68 lines
3.1 KiB
TypeScript
import { Suspense, lazy } from "react";
|
|
import { BrowserRouter, Routes, Route, Navigate } from "react-router-dom";
|
|
import { App as AntApp, ConfigProvider } from "antd";
|
|
import zhCN from "antd/locale/zh_CN";
|
|
|
|
import { ToastProvider } from "./components/ui/Toast";
|
|
import { AuthProvider } from "./contexts/AuthContext";
|
|
import LoadingSpinner from "./components/ui/LoadingSpinner";
|
|
|
|
// Layout 组件静态导入(始终需要,体积小)
|
|
import AppLayout from "./components/layout/AppLayout";
|
|
import AdminLayout from "./components/layout/AdminLayout";
|
|
|
|
// 🚀 路由级代码分割 — 按需懒加载页面组件
|
|
const ScanPage = lazy(() => import("./pages/ScanPage"));
|
|
const MyTasksPage = lazy(() => import("./pages/MyTasksPage"));
|
|
const NotificationsPage = lazy(() => import("./pages/NotificationsPage"));
|
|
const ProfilePage = lazy(() => import("./pages/ProfilePage"));
|
|
|
|
const AdminLoginPage = lazy(() => import("./pages/admin/AdminLoginPage"));
|
|
const AdminDashboard = lazy(() => import("./pages/admin/AdminDashboard"));
|
|
const AdminProductsPage = lazy(() => import("./pages/admin/AdminProductsPage"));
|
|
const AdminTasksPage = lazy(() => import("./pages/admin/AdminTasksPage"));
|
|
const AdminPeoplePage = lazy(() => import("./pages/admin/AdminPeoplePage"));
|
|
const AdminPrintConfigPage = lazy(() => import("./pages/admin/AdminPrintConfigPage"));
|
|
const AnalyticsDashboard = lazy(() => import("./pages/admin/AnalyticsDashboard"));
|
|
|
|
export default function App() {
|
|
return (
|
|
<ConfigProvider locale={zhCN}>
|
|
<AntApp>
|
|
<ToastProvider>
|
|
<AuthProvider>
|
|
<BrowserRouter>
|
|
<Suspense fallback={<LoadingSpinner />}>
|
|
<Routes>
|
|
{/* 移动端 */}
|
|
<Route path="/" element={<Navigate to="/admin/dashboard" replace />} />
|
|
<Route element={<AppLayout />}>
|
|
<Route path="/scan" element={<ScanPage />} />
|
|
<Route path="/tasks" element={<MyTasksPage />} />
|
|
<Route path="/notifications" element={<NotificationsPage />} />
|
|
<Route path="/profile" element={<ProfilePage />} />
|
|
</Route>
|
|
|
|
{/* PC 管理端 — 登录页(独立,无侧边栏) */}
|
|
<Route path="/admin/login" element={<AdminLoginPage />} />
|
|
|
|
{/* PC 管理端 — 需要登录 */}
|
|
<Route path="/admin" element={<Navigate to="/admin/dashboard" replace />} />
|
|
<Route element={<AdminLayout />}>
|
|
<Route path="/admin/dashboard" element={<AdminDashboard />} />
|
|
<Route path="/admin/products" element={<AdminProductsPage />} />
|
|
<Route path="/admin/tasks" element={<AdminTasksPage />} />
|
|
<Route path="/admin/people" element={<AdminPeoplePage />} />
|
|
<Route path="/admin/print-config" element={<AdminPrintConfigPage />} />
|
|
<Route path="/admin/analytics" element={<AnalyticsDashboard />} />
|
|
</Route>
|
|
</Routes>
|
|
</Suspense>
|
|
</BrowserRouter>
|
|
</AuthProvider>
|
|
</ToastProvider>
|
|
</AntApp>
|
|
</ConfigProvider>
|
|
);
|
|
}
|