2026-05-22 00:38:56 +08:00
|
|
|
|
import { lazy } from 'react'
|
2026-05-21 17:19:58 +08:00
|
|
|
|
import type { AdminRole } from '@/types/admin'
|
|
|
|
|
|
|
|
|
|
|
|
const Dashboard = lazy(() => import('@/pages/Dashboard'))
|
2026-05-22 00:38:56 +08:00
|
|
|
|
const TaskAssistant = lazy(() => import('@/pages/TaskAssistant'))
|
2026-05-21 17:19:58 +08:00
|
|
|
|
const UserManagement = lazy(() => import('@/pages/UserManagement'))
|
2026-05-27 21:17:26 +08:00
|
|
|
|
const MemberManagement = lazy(() => import('@/pages/MemberManagement'))
|
2026-05-21 17:19:58 +08:00
|
|
|
|
|
2026-06-09 21:55:52 +08:00
|
|
|
|
const LearningDashboard = lazy(() => import('@/pages/learning/Dashboard'))
|
2026-06-09 22:00:11 +08:00
|
|
|
|
const ReadingEventPage = lazy(() => import('@/pages/learning/DataPages').then(m => ({ default: m.ReadingEventPage })))
|
|
|
|
|
|
const SessionPage = lazy(() => import('@/pages/learning/DataPages').then(m => ({ default: m.SessionPage })))
|
|
|
|
|
|
const ProgressPage = lazy(() => import('@/pages/learning/DataPages').then(m => ({ default: m.ProgressPage })))
|
|
|
|
|
|
const DailyActivityPage = lazy(() => import('@/pages/learning/DataPages').then(m => ({ default: m.DailyActivityPage })))
|
|
|
|
|
|
const RecordPage = lazy(() => import('@/pages/learning/DataPages').then(m => ({ default: m.RecordPage })))
|
|
|
|
|
|
const AnomalyPage = lazy(() => import('@/pages/learning/DataPages').then(m => ({ default: m.AnomalyPage })))
|
|
|
|
|
|
const UserDiagnosePage = lazy(() => import('@/pages/learning/DataPages').then(m => ({ default: m.UserDiagnosePage })))
|
|
|
|
|
|
const MaterialDiagnosePage = lazy(() => import('@/pages/learning/DataPages').then(m => ({ default: m.MaterialDiagnosePage })))
|
2026-06-09 21:55:52 +08:00
|
|
|
|
|
2026-05-21 17:19:58 +08:00
|
|
|
|
export interface RouteConfig {
|
|
|
|
|
|
path: string
|
|
|
|
|
|
title: string
|
|
|
|
|
|
element: React.LazyExoticComponent<React.ComponentType<any>>
|
|
|
|
|
|
requiredRole?: AdminRole
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const routeConfig: RouteConfig[] = [
|
|
|
|
|
|
{ path: '/', title: '总览', element: Dashboard },
|
2026-05-22 00:38:56 +08:00
|
|
|
|
{ path: '/assistant', title: '任务助理', element: TaskAssistant },
|
2026-05-21 17:19:58 +08:00
|
|
|
|
{ path: '/users', title: '用户管理', element: UserManagement, requiredRole: 'ADMIN' },
|
|
|
|
|
|
{ path: '/users/admins', title: '管理员', element: UserManagement, requiredRole: 'SUPER_ADMIN' },
|
2026-05-27 21:17:26 +08:00
|
|
|
|
{ path: '/users/members', title: '普通用户', element: MemberManagement },
|
2026-05-21 17:19:58 +08:00
|
|
|
|
{ path: '/membership', title: '会员与额度', element: UserManagement, requiredRole: 'ADMIN' },
|
|
|
|
|
|
{ path: '/knowledge/bases', title: '知识库列表', element: UserManagement },
|
|
|
|
|
|
{ path: '/knowledge/sources', title: '知识源列表', element: UserManagement },
|
|
|
|
|
|
{ path: '/imports', title: '文档导入', element: UserManagement },
|
|
|
|
|
|
{ path: '/ai-costs', title: 'AI 调用与成本', element: UserManagement },
|
|
|
|
|
|
{ path: '/files', title: '文件与 COS', element: UserManagement },
|
|
|
|
|
|
{ path: '/settings', title: '系统配置', element: UserManagement, requiredRole: 'ADMIN' },
|
|
|
|
|
|
{ path: '/audit', title: '审计日志', element: UserManagement, requiredRole: 'ADMIN' },
|
2026-06-09 21:55:52 +08:00
|
|
|
|
// ── Learning Info ──
|
|
|
|
|
|
{ path: '/learning', title: '学习 Dashboard', element: LearningDashboard },
|
|
|
|
|
|
{ path: '/learning/events', title: '阅读事件', element: ReadingEventPage },
|
|
|
|
|
|
{ path: '/learning/sessions', title: '学习会话', element: SessionPage },
|
|
|
|
|
|
{ path: '/learning/progress', title: '阅读进度', element: ProgressPage },
|
|
|
|
|
|
{ path: '/learning/daily', title: '每日活动', element: DailyActivityPage },
|
|
|
|
|
|
{ path: '/learning/records', title: '学习记录', element: RecordPage },
|
|
|
|
|
|
{ path: '/learning/anomalies', title: '异常数据', element: AnomalyPage },
|
|
|
|
|
|
{ path: '/learning/user-diagnose', title: '用户诊断', element: UserDiagnosePage },
|
|
|
|
|
|
{ path: '/learning/material-diagnose', title: '资料诊断', element: MaterialDiagnosePage },
|
2026-05-21 17:19:58 +08:00
|
|
|
|
]
|