feat(ux): U2 统一 DataTable 组件 — 封装排序/搜索/分页/导出/选择/列可见性通用表格 + 迁移 RegionManager/LoginLogsTab/LogDatasourcePage 3 个页面
This commit is contained in:
1 parent
bdf3c2daf4
commit
ba8a4b5f19
9 files changed
+1268
-504
No files matched your search
+22
-3
@@ -240,10 +240,29 @@ services/api.ts (1324L)
|
||||
- [x] 17/17 集成测试通过
|
||||
- [x] Docker 部署 healthy
|
||||
|
||||
### U2: 统一 DataTable 组件 [pending]
|
||||
- 封装排序/筛选/分页/导出/列自定义的通用表格
|
||||
### U2: 统一 DataTable 组件 [done]
|
||||
|
||||
**问题**: 37 个文件各自手写表格(搜索/排序/分页/导出/选择全部重复实现),维护成本高
|
||||
|
||||
**方案**:
|
||||
- 封装 `DataTable<T>` 泛型组件(`components/ui/data-table.tsx`),声明式列定义 + 内置功能开关
|
||||
- 替换散布在各页面的手写表格
|
||||
|
||||
**已完成 (2026-06-27)**:
|
||||
- ✅ 新增 `DataTable<T>` 组件 — 支持声明式列定义、排序(三态 asc/desc/null)、全局搜索(指定字段)、客户端分页(可配置 pageSize)、行选择(受控 selectedIds)、CSV 导出(UTF-8 BOM)、列可见性面板(DropdownMenu toggle)、加载骨架、空状态自定义渲染、行点击、CSS 变量主题适配
|
||||
- ✅ 迁移 3 个代表性页面:
|
||||
- **RegionManager.tsx** — 区域管理(CRUD + 搜索 + 选择 + 排序 + 导出 + 列可见性 + 云商筛选)
|
||||
- **LoginLogsTab.tsx** — 登录日志(搜索 + 排序 + 分页 + 导出 + 列可见性 + 状态筛选)
|
||||
- **LogDatasourcePage.tsx** — 日志数据源管理(搜索 + 排序 + CRUD + 测试连接)
|
||||
- ✅ 所有功能内建(搜索/排序/分页/选择/导出/列可见性),无需在各页面重复实现
|
||||
|
||||
**验收标准**:
|
||||
- [x] `DataTable<T>` 组件封装排序/搜索/分页/导出/列自定义/行选择
|
||||
- [x] `tsc -b` 零错误,`npm run build` 零错误(✓ built in 18.05s)
|
||||
- [x] 迁移的页面功能不变(CRUD/搜索/选择/排序/导出全部保留)
|
||||
- [x] ESLint any=43(<50),4 个迁移文件零 ESLint 错误
|
||||
- [x] 17/17 集成回归测试通过
|
||||
|
||||
### U3: 国际化 (i18n) [pending]
|
||||
- 提取所有中文文案到 `i18n/zh-CN.json`
|
||||
- 预留 `en-US.json` 扩展
|
||||
@@ -268,7 +287,7 @@ services/api.ts (1324L)
|
||||
| A2 | 告警引擎分布式 | P2 | **done** |
|
||||
| A3 | WebSocket 管理 | P2 | **done** |
|
||||
| U1 | 虚拟滚动 | P3 | **done** |
|
||||
| U2 | 统一 DataTable | P3 | pending |
|
||||
| U2 | 统一 DataTable | P3 | **done** |
|
||||
| U3 | 国际化 | P3 | pending |
|
||||
| U4 | 镜像优化 | P3 | pending |
|
||||
|
||||
|
||||
Reference in new issue
Block a user