web/apps/console-react/src/views/system-log-refactored/README.md
系统日志管理模块,提供日志查询、筛选、分页等功能。
system-log-refactored/
├── index.tsx # 主页面组件 (~120 行)
├── store.ts # Zustand 状态管理
├── constants.ts # 常量定义
├── types/ # 类型定义
│ └── index.ts # 集中类型管理
├── api/ # API 层
│ └── systemLogApi.ts # API 封装(支持 mock)
└── __tests__/ # 测试文件
├── index.ts # 测试工具导出
├── factories/ # 测试数据工厂
├── mocks/ # MSW Mock 配置
├── types/ # 类型测试
├── api/ # API 测试
├── integration/ # 集成测试
└── error-handling/ # 错误处理测试
any// 列表页
import { SystemLogRefactoredPage } from '@/views/system-log-refactored'
<Route path="/system-log" element={} />
使用 Zustand 统一管理列表页状态:
import { useSystemLogStore } from './store'
// 在组件中使用
const {
list,
total,
actions,
modules,
params,
loading,
loadList,
setParams,
setDateRange,
} = useSystemLogStore()
| 状态 | 类型 | 说明 |
|---|---|---|
list | SystemLogDisplayItem[] | 日志列表 |
total | number | 总数 |
actions | ActionItem[] | 操作类型列表 |
modules | ModuleItem[] | 模块列表 |
params | SystemLogListParams | 请求参数 |
dateRange | `[number | null, number |
loading | boolean | 加载状态 |
| Action | 说明 |
|---|---|
loadList | 加载日志列表 |
loadActions | 加载操作类型列表 |
loadModules | 加载模块列表 |
setParams | 设置请求参数(会触发重新加载) |
setDateRange | 设置日期范围(会触发重新加载) |
resetParams | 重置所有参数 |
refresh | 刷新数据 |
systemLogApi 封装所有 API 调用:
import { systemLogApi } from './api/systemLogApi'
// 获取列表
const items = await systemLogApi.list({ offset: 0, limit: 10 })
// 获取操作类型
const actions = await systemLogApi.actions()
// 获取模块列表
const modules = await systemLogApi.modules()
// 创建日志
await systemLogApi.create({ action: 1, content: '日志内容' })
# 运行模块测试
pnpm vitest run src/views/system-log-refactored
# 测试覆盖
# - types 测试: 6 个
# - api 测试: 8 个
# - 集成测试: 6 个
# - 错误处理测试: 6 个
# 总计: 26 个测试
__tests__/
├── index.ts # 测试工具导出
├── factories/ # 测试数据工厂
│ └── index.ts # 统一的测试数据创建函数
├── mocks/ # MSW Mock 配置
│ ├── handlers.ts # API Handlers
│ └── server.ts # Server 配置
├── types/ # 类型测试
│ └── index.test.ts
├── api/ # API 测试
│ └── systemLogApi.test.ts
├── integration/ # 集成测试
│ └── SystemLogPage.test.tsx
└── error-handling/ # 错误处理测试
└── ErrorHandling.test.tsx
| 指标 | 原版 | 重构版 |
|---|---|---|
| 主组件行数 | 215 行 | ~120 行 |
| 状态管理 | 6 个 useState | Zustand store |
| 测试覆盖 | 0 | 26 个测试 |
| 类型安全 | 部分 any | 完全类型安全 |
| API 可测试 | 不可 mock | 支持依赖注入 |
any,集中类型定义更新路由以使用重构版:
// src/router/index.tsx
import { SystemLogRefactoredPage } from "@/views/system-log-refactored/index"
// 替换原路由
<Route path="system-log" element={} />