소스 검색

docs(epic-008): 新增故事8 - 将Allin系统UI包集成到Web client admin

- 新增故事8:将Allin系统UI包集成到Web client admin,对应史诗007的故事8
- 更新验收标准:包含依赖配置、API客户端初始化、路由集成、菜单集成等9项要求
- 修正API路径:根据server包实际配置,使用单数形式路径(/api/v1/channel等)
- 更新完成定义:将7个故事改为8个故事,添加故事8检查项
- 更新故事经理交接说明:添加故事8详细信息,强调API路径一致性要求

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 2 일 전
부모
커밋
894bd6e6f5
1개의 변경된 파일80개의 추가작업 그리고 6개의 파일을 삭제
  1. 80 6
      docs/prd/epic-008-allin-ui-modules-transplant.md

+ 80 - 6
docs/prd/epic-008-allin-ui-modules-transplant.md

@@ -618,6 +618,63 @@ const useChannels = () => {
 10. 编写组件测试:覆盖订单全生命周期(包含区域相关功能测试)
 11. 通过类型检查和基本测试验证
 
+### 故事8:将Allin系统UI包集成到Web client admin
+**目标**:将史诗008中创建的7个Allin系统UI包集成到Web client admin中,对应史诗007的最后一个任务(故事8:将Allin系统模块集成到packages/server)
+
+**验收标准**:
+1. **依赖配置**:在`web/package.json`中添加所有7个Allin系统UI包的workspace依赖
+   - `@d8d/allin-channel-management-ui`
+   - `@d8d/allin-company-management-ui`
+   - `@d8d/allin-disability-management-ui`
+   - `@d8d/allin-disability-person-management-ui`
+   - `@d8d/allin-order-management-ui`
+   - `@d8d/allin-platform-management-ui`
+   - `@d8d/allin-salary-management-ui`
+
+2. **API客户端初始化**:在`web/src/client/admin/api_init.ts`中添加所有7个Allin系统UI包的API客户端初始化,路径必须与server包中的路由配置完全一致(参考`packages/server/src/index.ts:139-144`)
+   - `channelClientManager.init('/api/v1/channel')` - 对应server中的`/api/v1/channel`
+   - `companyClientManager.init('/api/v1/company')` - 对应server中的`/api/v1/company`
+   - `disabilityClientManager.init('/api/v1/disability')` - 对应server中的`/api/v1/disability`(注意:`disability_person`模块在server中注册为`/api/v1/disability`)
+   - `orderClientManager.init('/api/v1/order')` - 对应server中的`/api/v1/order`
+   - `platformClientManager.init('/api/v1/platform')` - 对应server中的`/api/v1/platform`
+   - `salaryClientManager.init('/api/v1/salary')` - 对应server中的`/api/v1/salary`
+   - **注意**:所有路径使用单数形式,没有`s`后缀,与server包配置保持一致
+
+3. **路由集成**:在`web/src/client/admin/routes.tsx`中添加所有7个UI包的路由配置
+   - `/admin/channels` → `@d8d/allin-channel-management-ui`
+   - `/admin/companies` → `@d8d/allin-company-management-ui`
+   - `/admin/disabilities` → `@d8d/allin-disability-management-ui`
+   - `/admin/disability-persons` → `@d8d/allin-disability-person-management-ui`
+   - `/admin/orders` → `@d8d/allin-order-management-ui`
+   - `/admin/platforms` → `@d8d/allin-platform-management-ui`
+   - `/admin/salaries` → `@d8d/allin-salary-management-ui`
+
+4. **菜单集成**:在`web/src/client/admin/menu.tsx`中添加对应的菜单项
+   - 渠道管理
+   - 公司管理
+   - 残疾人管理
+   - 残疾人个人管理
+   - 订单管理
+   - 平台管理
+   - 薪资管理
+
+5. **权限配置**:为每个菜单项配置相应的权限(参考现有权限模式)
+6. **图标配置**:为每个菜单项配置合适的图标(使用lucide-react图标库)
+7. **API路径配置**:确保API路径与后端路由对应(参考史诗007的server集成)
+8. **集成验证**:验证所有路由正常工作,UI包正确加载,API客户端初始化成功
+9. **测试验证**:通过E2E测试验证集成功能
+
+**技术要点**:
+- 遵循现有路由和菜单集成模式
+- 保持权限系统一致性
+- 确保路由路径与后端API路径对应
+- 验证UI包与后端模块的集成(对应史诗007的故事8)
+
+**与史诗007的对应关系**:
+- 本故事对应史诗007的**故事8:将Allin系统模块集成到packages/server**
+- 确保前端UI包与后端模块的集成时间点对齐
+- 验证前后端集成功能完整性
+
 ### **区域管理UI说明**
 **目标**:复用现有`@d8d/area-management-ui`包,无需重新移植
 
@@ -727,7 +784,7 @@ const useChannels = () => {
 
 ## 完成定义
 
-- [ ] 所有7个故事完成,验收标准满足
+- [ ] 所有8个故事完成,验收标准满足
   - [x] 故事1:平台管理UI(故事008.001已完成)
   - [x] 故事2:渠道管理UI(故事008.002已完成)
   - [x] 故事3:公司管理UI(故事008.003已完成)
@@ -735,6 +792,7 @@ const useChannels = () => {
   - [x] 故事5:残疾人管理UI(故事008.005已完成)
   - [x] 故事6:残疾人个人管理UI(故事008.006已完成)
   - [x] 故事7:订单管理UI(故事008.007已完成)
+  - [ ] 故事8:将Allin系统UI包集成到Web client admin(对应史诗007故事8)
 - [x] 区域管理功能复用`@d8d/area-management-ui`包
 - [x] 现有功能通过测试验证
 - [x] 集成点正常工作
@@ -744,7 +802,7 @@ const useChannels = () => {
 ## 验证清单
 
 ### 范围验证
-- [ ] 史诗可在7个故事内完成
+- [ ] 史诗可在8个故事内完成
 - [ ] 不需要架构文档变更
 - [ ] 增强遵循现有模式
 - [ ] 集成复杂度可管理
@@ -767,13 +825,13 @@ const useChannels = () => {
 
 "UI模块分析和技术栈分析已完成,关键发现:
 
-1. **依赖关系分析完成**:7个UI模块的依赖关系已明确(region复用现有包)
+1. **依赖关系分析完成**:7个UI模块的依赖关系已明确(region复用现有包),新增故事8用于集成到Web client admin
 2. **技术栈差异分析完成**:源系统使用Ant Design + Jotai,目标系统使用@d8d/shared-ui-components + React Query,存在重大架构差异
 3. **命名方案确定**:使用`@d8d/allin-`前缀,`-management-ui`后缀,非多租户版本
 4. **目录结构**:在`allin-packages/`目录下创建UI包,与后端模块保持相同目录,遵循[UI包开发规范](../architecture/ui-package-standards.md#包结构规范)
 5. **移植顺序建议**:从简单到复杂,先移植基础CRUD页面
 6. **技术栈转换方案**:已制定从Ant Design到@d8d/shared-ui-components的详细转换策略,遵循[UI包开发规范](../architecture/ui-package-standards.md)
-7. **故事拆分完成**:按模块拆分为7个故事(按执行顺序编号),每个故事包含组件测试要求,遵循[UI包开发规范](../architecture/ui-package-standards.md#测试规范)
+7. **故事拆分完成**:按模块拆分为7个移植故事+1个集成故事(共8个故事,按执行顺序编号),每个移植故事包含组件测试要求,遵循[UI包开发规范](../architecture/ui-package-standards.md#测试规范)
 
 **新的故事拆分方案(按执行顺序编号)**:
 - **故事1**:移植平台管理UI(platform → @d8d/allin-platform-management-ui) - 最简单,无依赖
@@ -783,6 +841,7 @@ const useChannels = () => {
 - **故事5**:移植残疾人管理UI(disability → @d8d/allin-disability-management-ui) - 中等复杂度
 - **故事6**:移植残疾人个人管理UI(disability_person → @d8d/allin-disability-person-management-ui) - 高复杂度,依赖disability
 - **故事7**:移植订单管理UI(order → @d8d/allin-order-management-ui) - 高复杂度,可能依赖其他模块
+- **故事8**:将Allin系统UI包集成到Web client admin - 对应史诗007故事8,完成前后端集成
 - **区域管理**:复用现有`@d8d/area-management-ui`包(无需移植)
 
 **每个故事的关键要求**:
@@ -793,7 +852,11 @@ const useChannels = () => {
 5. **集成验证**:必须与对应的后端模块集成验证
 
 **执行顺序**:
-按故事编号顺序执行即可:**故事1 → 故事2 → 故事3 → 故事4 → 故事5 → 故事6 → 故事7**
+按故事编号顺序执行即可:**故事1 → 故事2 → 故事3 → 故事4 → 故事5 → 故事6 → 故事7 → 故事8**
+
+**特别说明**:
+- **故事8**必须在所有UI包移植完成后执行,对应史诗007的**故事8**(将Allin系统模块集成到packages/server)
+- 确保前后端集成时间点对齐,验证完整的Allin系统功能
 
 **依赖关系说明**:
 - **故事3**(company-management-ui)依赖platform数据,必须在**故事1**(platform-management-ui)之后
@@ -835,4 +898,15 @@ const useChannels = () => {
 - 保持API兼容性,制定数据迁移方案
 - 注意组件性能,合理使用memoization
 
-史诗应在保持用户体验一致性的同时实现将UI模块从Ant Design架构移植到@d8d/shared-ui-components架构的标准化独立UI包,每个模块都要有完整的组件测试验证,并完成与现有文件管理UI包的集成。"
+**故事8(Web client admin集成)关键要求**:
+1. **依赖管理**:在`web/package.json`中添加所有7个Allin系统UI包的workspace依赖
+2. **API客户端初始化**:在`web/src/client/admin/api_init.ts`中添加所有7个Allin系统UI包的API客户端初始化,**API路径必须与server包中的路由配置完全一致**(参考`packages/server/src/index.ts:139-144`)
+   - 使用单数形式路径:`/api/v1/channel`、`/api/v1/company`等(没有`s`后缀)
+   - `disability_person`模块对应`/api/v1/disability`路径
+3. **路由配置**:在`web/src/client/admin/routes.tsx`中添加7个路由路径,对应每个UI包
+4. **菜单集成**:在`web/src/client/admin/menu.tsx`中添加对应的菜单项,配置权限和图标
+5. **API路径对齐**:**必须确保前端API路径与后端路由完全对应**(参考史诗007的server集成)
+6. **集成验证**:验证所有路由正常工作,API客户端初始化成功,与后端模块集成完整
+7. **对应关系**:本故事对应史诗007的**故事8**,确保前后端集成同步完成
+
+史诗应在保持用户体验一致性的同时实现将UI模块从Ant Design架构移植到@d8d/shared-ui-components架构的标准化独立UI包,每个模块都要有完整的组件测试验证,并完成与现有文件管理UI包的集成,最后通过故事8将所有UI包集成到Web client admin中。"