|
|
@@ -1,7 +1,7 @@
|
|
|
# Story 008.008: 将Allin系统UI包集成到Web client admin
|
|
|
|
|
|
## Status
|
|
|
-Draft
|
|
|
+Ready for Development
|
|
|
|
|
|
## Story
|
|
|
**As a** 系统管理员,
|
|
|
@@ -52,34 +52,34 @@ Draft
|
|
|
9. **测试验证**:通过E2E测试验证集成功能
|
|
|
|
|
|
## Tasks / Subtasks
|
|
|
-- [ ] **任务1:添加依赖配置** (AC: 1)
|
|
|
- - [ ] 在`web/package.json`的dependencies中添加7个Allin UI包的workspace依赖
|
|
|
- - [ ] 验证依赖名称与UI包实际package.json中的name字段一致
|
|
|
- - [ ] 运行`pnpm install`确保依赖正确安装
|
|
|
-
|
|
|
-- [ ] **任务2:API客户端初始化** (AC: 2, 7)
|
|
|
- - [ ] 在`web/src/client/admin/api_init.ts`中添加7个Allin UI包的导入语句
|
|
|
- - [ ] 按照server包路由配置初始化每个客户端管理器
|
|
|
- - [ ] **关键验证**:确保API路径与server包中的路由完全一致(单数形式,无s后缀)
|
|
|
- - [ ] 验证`disability_person`模块使用`/api/v1/disability`路径(与server配置一致)
|
|
|
-
|
|
|
-- [ ] **任务3:路由配置集成** (AC: 3)
|
|
|
- - [ ] 在`web/src/client/admin/routes.tsx`中导入7个Allin UI包的主要组件
|
|
|
- - [ ] 添加对应的路由配置到router数组中
|
|
|
- - [ ] 确保路由路径与菜单路径一致
|
|
|
- - [ ] 为每个路由添加errorElement处理
|
|
|
-
|
|
|
-- [ ] **任务4:菜单配置集成** (AC: 4, 5, 6)
|
|
|
- - [ ] 在`web/src/client/admin/menu.tsx`的menuItems数组中添加7个菜单项
|
|
|
- - [ ] 为每个菜单项配置合适的lucide-react图标
|
|
|
- - [ ] 为每个菜单项配置相应的权限(参考现有权限模式如`'user:manage'`)
|
|
|
- - [ ] 确保菜单路径与路由路径一致
|
|
|
-
|
|
|
-- [ ] **任务5:集成验证** (AC: 8)
|
|
|
- - [ ] 启动web开发服务器验证所有路由正常工作
|
|
|
- - [ ] 验证每个UI包正确加载,无导入错误
|
|
|
- - [ ] 验证API客户端初始化成功,无网络错误
|
|
|
- - [ ] 验证菜单项正确显示,点击导航正常
|
|
|
+- [x] **任务1:添加依赖配置** (AC: 1)
|
|
|
+ - [x] 在`web/package.json`的dependencies中添加7个Allin UI包的workspace依赖
|
|
|
+ - [x] 验证依赖名称与UI包实际package.json中的name字段一致
|
|
|
+ - [x] 运行`pnpm install`确保依赖正确安装
|
|
|
+
|
|
|
+- [x] **任务2:API客户端初始化** (AC: 2, 7)
|
|
|
+ - [x] 在`web/src/client/admin/api_init.ts`中添加7个Allin UI包的导入语句
|
|
|
+ - [x] 按照server包路由配置初始化每个客户端管理器
|
|
|
+ - [x] **关键验证**:确保API路径与server包中的路由完全一致(单数形式,无s后缀)
|
|
|
+ - [x] 验证`disability_person`模块使用`/api/v1/disability`路径(与server配置一致)
|
|
|
+
|
|
|
+- [x] **任务3:路由配置集成** (AC: 3)
|
|
|
+ - [x] 在`web/src/client/admin/routes.tsx`中导入7个Allin UI包的主要组件
|
|
|
+ - [x] 添加对应的路由配置到router数组中
|
|
|
+ - [x] 确保路由路径与菜单路径一致
|
|
|
+ - [x] 为每个路由添加errorElement处理
|
|
|
+
|
|
|
+- [x] **任务4:菜单配置集成** (AC: 4, 5, 6)
|
|
|
+ - [x] 在`web/src/client/admin/menu.tsx`的menuItems数组中添加7个菜单项
|
|
|
+ - [x] 为每个菜单项配置合适的lucide-react图标
|
|
|
+ - [x] 为每个菜单项配置相应的权限(参考现有权限模式如`'user:manage'`)
|
|
|
+ - [x] 确保菜单路径与路由路径一致
|
|
|
+
|
|
|
+- [x] **任务5:集成验证** (AC: 8)
|
|
|
+ - [x] 启动web开发服务器验证所有路由正常工作
|
|
|
+ - [x] 验证每个UI包正确加载,无导入错误
|
|
|
+ - [x] 验证API客户端初始化成功,无网络错误
|
|
|
+ - [x] 验证菜单项正确显示,点击导航正常
|
|
|
|
|
|
- [ ] **任务6:E2E测试验证** (AC: 9)
|
|
|
- [ ] 编写E2E测试验证7个Allin系统页面的基本访问
|
|
|
@@ -223,9 +223,52 @@ import { UserManagement } from '@d8d/user-management-ui';
|
|
|
| Date | Version | Description | Author |
|
|
|
|------|---------|-------------|--------|
|
|
|
| 2025-12-06 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
|
|
|
+| 2025-12-06 | 1.1 | 实施Allin UI包集成:添加依赖、API客户端、路由和菜单配置 | James (Developer) |
|
|
|
|
|
|
## Dev Agent Record
|
|
|
*此部分由开发代理在实施期间填写*
|
|
|
|
|
|
+### 实施进度
|
|
|
+- **开始时间**: 2025-12-06
|
|
|
+- **开发代理**: James (Developer Agent)
|
|
|
+- **模型**: Claude Code
|
|
|
+- **当前状态**: 已完成任务1-5,任务6(E2E测试)和任务7(类型检查/构建验证)待完成
|
|
|
+
|
|
|
+### 已完成任务
|
|
|
+1. ✅ **任务1:添加依赖配置** - 在`web/package.json`中添加7个Allin UI包的workspace依赖
|
|
|
+2. ✅ **任务2:API客户端初始化** - 在`api_init.ts`中正确初始化所有API客户端,路径与server包配置完全一致
|
|
|
+3. ✅ **任务3:路由配置集成** - 在`routes.tsx`中添加7个Allin系统页面的路由配置
|
|
|
+4. ✅ **任务4:菜单配置集成** - 在`menu.tsx`中添加对应的菜单项、图标和权限配置
|
|
|
+5. ✅ **任务5:集成验证** - 启动开发服务器验证基本功能
|
|
|
+
|
|
|
+### 关键发现和经验
|
|
|
+1. **API路径一致性验证成功**: 确认server包中所有Allin模块路由使用单数形式(无`s`后缀),前端配置完全匹配
|
|
|
+2. **disability_person模块路径特殊处理**: server包中`disabledPersonRoutes`注册为`/api/v1/disability`路径,前端`disabilityPersonClientManager`使用相同路径
|
|
|
+3. **UI包导出名称验证**: 确认所有Allin UI包的主要组件导出名称为`{Module}Management`格式
|
|
|
+4. **权限配置标准化**: 采用`{resource}:manage`格式为每个模块配置权限,与现有系统保持一致
|
|
|
+5. **图标选择合理化**: 根据模块功能选择语义化图标,增强用户体验
|
|
|
+
|
|
|
+### 技术细节
|
|
|
+- **依赖管理**: 使用`workspace:*`确保本地包版本一致性
|
|
|
+- **路径映射**: 前端路由路径(`/admin/{plural}`)与后端API路径(`/api/v1/{singular}`)正确对应
|
|
|
+- **错误处理**: 所有路由配置`errorElement`统一错误页面
|
|
|
+- **类型安全**: 导入语句使用正确类型,通过类型检查验证
|
|
|
+
|
|
|
+### 待完成项目
|
|
|
+- 任务6: E2E测试编写和验证
|
|
|
+- 任务7: 完整类型检查和构建验证
|
|
|
+
|
|
|
+### 文件列表
|
|
|
+**新增/修改文件**:
|
|
|
+1. `web/package.json` - 添加7个Allin UI包依赖
|
|
|
+2. `web/src/client/admin/api_init.ts` - 添加API客户端初始化和导入
|
|
|
+3. `web/src/client/admin/routes.tsx` - 添加路由配置和组件导入
|
|
|
+4. `web/src/client/admin/menu.tsx` - 添加菜单项、图标导入和权限配置
|
|
|
+
|
|
|
+**验证文件**:
|
|
|
+1. `packages/server/src/index.ts:139-144` - 验证后端路由配置
|
|
|
+2. `allin-packages/*-management-ui/src/index.ts` - 验证组件导出名称
|
|
|
+3. `allin-packages/*-management-ui/src/api/index.ts` - 验证API客户端管理器导出
|
|
|
+
|
|
|
## QA Results
|
|
|
*来自QA代理对已完成故事实施的QA审查结果*
|