2026-05-21 17:19:58 +08:00
|
|
|
|
# 知习 Admin
|
2026-05-20 10:58:24 +08:00
|
|
|
|
|
2026-05-21 17:19:58 +08:00
|
|
|
|
企业知识管理中台 — 后台管理系统前端。
|
2026-05-20 10:58:24 +08:00
|
|
|
|
|
2026-05-21 17:19:58 +08:00
|
|
|
|
## 技术栈
|
2026-05-20 10:58:24 +08:00
|
|
|
|
|
2026-05-21 17:19:58 +08:00
|
|
|
|
- React 19 + TypeScript 6
|
|
|
|
|
|
- Vite 8
|
|
|
|
|
|
- Ant Design 5 + @ant-design/pro-components 2.8
|
|
|
|
|
|
- @tanstack/react-query 5
|
|
|
|
|
|
- ECharts 5 + echarts-for-react 3
|
|
|
|
|
|
- dayjs
|
|
|
|
|
|
- react-router-dom v7
|
2026-05-20 10:58:24 +08:00
|
|
|
|
|
2026-05-21 17:19:58 +08:00
|
|
|
|
## 项目结构
|
2026-05-20 10:58:24 +08:00
|
|
|
|
|
2026-05-21 17:19:58 +08:00
|
|
|
|
```
|
|
|
|
|
|
src/
|
|
|
|
|
|
├── components/ # 共享组件
|
|
|
|
|
|
│ ├── AuditLogTable # 审计日志 ProTable
|
|
|
|
|
|
│ ├── ConfirmDangerModal # 高危操作确认弹窗
|
|
|
|
|
|
│ ├── DetailDrawer # 侧滑详情抽屉
|
|
|
|
|
|
│ ├── EChartsChartContainer # 图表容器
|
|
|
|
|
|
│ ├── EmptyState # 空状态占位
|
|
|
|
|
|
│ ├── MetricCard # 指标卡
|
|
|
|
|
|
│ ├── StatusTag # 状态标签
|
|
|
|
|
|
│ ├── AuthGuard # 登录鉴权守卫
|
|
|
|
|
|
│ ├── PageLoading # 路由懒加载 Spin
|
|
|
|
|
|
│ └── PermissionGuard # 角色权限守卫
|
|
|
|
|
|
├── config/
|
|
|
|
|
|
│ └── menu.tsx # 菜单树与角色过滤
|
|
|
|
|
|
├── constants/
|
|
|
|
|
|
│ └── roles.ts # 角色标签/颜色/层级
|
|
|
|
|
|
├── contexts/
|
|
|
|
|
|
│ └── AuthContext.tsx # 认证上下文
|
|
|
|
|
|
├── hooks/
|
|
|
|
|
|
│ └── use-auth-query.ts # React Query 认证 hooks
|
|
|
|
|
|
├── layouts/
|
|
|
|
|
|
│ └── AdminLayout.tsx # 管理后台布局(侧边栏/顶栏/面包屑)
|
|
|
|
|
|
├── pages/
|
|
|
|
|
|
│ ├── Dashboard # 数据看板(指标卡 + 图表 + 审计日志)
|
|
|
|
|
|
│ ├── UserManagement # 管理员 CRUD
|
|
|
|
|
|
│ ├── Login # 登录页
|
|
|
|
|
|
│ ├── Placeholder # 占位页
|
|
|
|
|
|
│ ├── 403/404/500 # 错误页
|
|
|
|
|
|
├── routes/
|
|
|
|
|
|
│ └── index.tsx # 路由配置(懒加载 + 角色要求)
|
|
|
|
|
|
├── services/
|
|
|
|
|
|
│ ├── admin-api.ts # 类型化 API 函数
|
|
|
|
|
|
│ ├── http-client.ts # Fetch 封装(401 自动刷新队列)
|
|
|
|
|
|
│ ├── token-store.ts # Token 本地存储
|
|
|
|
|
|
│ └── mock-data.ts # DEV 模式 Mock 数据
|
|
|
|
|
|
└── types/
|
|
|
|
|
|
├── admin.ts # AdminUser, DashboardStats, AuditLog 等
|
|
|
|
|
|
└── api.ts # PaginatedResult, ApiError
|
|
|
|
|
|
```
|
2026-05-20 10:58:24 +08:00
|
|
|
|
|
2026-05-21 17:19:58 +08:00
|
|
|
|
## 启动
|
2026-05-20 10:58:24 +08:00
|
|
|
|
|
2026-05-21 17:19:58 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
npm install
|
|
|
|
|
|
npm run dev # 开发模式,默认 http://localhost:5173
|
|
|
|
|
|
npm run build # 生产构建
|
2026-05-20 22:36:22 +08:00
|
|
|
|
```
|
2026-05-20 10:58:24 +08:00
|
|
|
|
|
2026-05-21 17:19:58 +08:00
|
|
|
|
## 认证流程
|
2026-05-20 10:58:24 +08:00
|
|
|
|
|
2026-05-21 17:19:58 +08:00
|
|
|
|
1. `AuthGuard` 检查登录状态,未登录跳转 `/login`
|
|
|
|
|
|
2. `PermissionGuard` 检查角色权限,不足跳转 `/403`
|
|
|
|
|
|
3. HTTP 客户端自动处理 401 → refresh token → 重试请求
|
|
|
|
|
|
4. refresh token 失败时强制退出到 `/login`
|
2026-05-20 10:58:24 +08:00
|
|
|
|
|
2026-05-21 17:19:58 +08:00
|
|
|
|
## 角色体系
|
|
|
|
|
|
|
|
|
|
|
|
| 角色 | 说明 | 权限范围 |
|
|
|
|
|
|
|------|------|---------|
|
|
|
|
|
|
| SUPER_ADMIN | 超级管理员 | 全部权限,可管理其他管理员 |
|
|
|
|
|
|
| ADMIN | 管理员 | 用户管理、仪表盘、审计日志 |
|
|
|
|
|
|
| OPERATIONS | 运营人员 | 仪表盘、审计日志(只读) |
|
|
|
|
|
|
| DEVELOPER | 开发者 | 仪表盘(只读) |
|
|
|
|
|
|
| READONLY | 只读用户 | 仪表盘(只读) |
|