Bladeren bron

fix(epic-008): 修正故事编号顺序,按照依赖关系正序排列

- 重新排列故事分解部分的编号顺序,使其与移植顺序策略一致
- 故事1:平台管理UI(最简单,无依赖)
- 故事2:渠道管理UI(独立模块)
- 故事3:公司管理UI(依赖platform数据)
- 故事4:薪资管理UI(中等复杂度,依赖区域管理)
- 故事5:残疾人管理UI(中等复杂度)
- 故事6:残疾人个人管理UI(高复杂度,依赖disability)
- 故事7:订单管理UI(高复杂度,可能依赖其他模块)
- 更新完成定义和文件上传集成方案中的故事编号引用
- 确保所有部分按照依赖顺序正序排列,便于团队按顺序执行

🤖 Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 6 dagen geleden
bovenliggende
commit
bc268d77a3
1 gewijzigde bestanden met toevoegingen van 57 en 63 verwijderingen
  1. 57 63
      docs/prd/epic-008-allin-ui-modules-transplant.md

+ 57 - 63
docs/prd/epic-008-allin-ui-modules-transplant.md

@@ -511,7 +511,20 @@ const useChannels = () => {
 
 **注**:每个故事对应一个UI模块的完整移植,包括技术栈转换和组件测试。
 
-### 故事1:移植渠道管理UI(channel → @d8d/allin-channel-management-ui)
+### 故事1:移植平台管理UI(platform → @d8d/allin-platform-management-ui)
+**目标**:移植基础平台管理页面
+
+**验收标准**:
+1. 创建`allin-packages/platform-management-ui`目录结构
+2. 完成组件转换:平台管理组件
+3. 完成API客户端转换:基础CRUD API(使用rpcClient + ClientManager模式)
+4. 完成状态管理转换:基础数据状态
+5. 完成表单转换:简单验证表单
+6. 配置package.json:基础依赖
+7. 编写组件测试:验证基础功能
+8. 通过类型检查和基本测试验证
+
+### 故事2:移植渠道管理UI(channel → @d8d/allin-channel-management-ui)
 **目标**:将channel管理页面移植为独立UI包,完成技术栈转换并验证功能完整性
 
 **验收标准**:
@@ -531,7 +544,7 @@ const useChannels = () => {
 - 验证:数据渲染、用户交互、表单验证
 - 遵循现有组件测试模式
 
-### 故事2:移植公司管理UI(company → @d8d/allin-company-management-ui)
+### 故事3:移植公司管理UI(company → @d8d/allin-company-management-ui)
 **目标**:将company管理页面移植为独立UI包,处理对platform数据的依赖
 
 **验收标准**:
@@ -545,7 +558,21 @@ const useChannels = () => {
 8. 编写组件测试:验证跨模块数据集成
 9. 通过类型检查和基本测试验证
 
-### 故事3:移植残疾人管理UI(disability → @d8d/allin-disability-management-ui)
+### 故事4:移植薪资管理UI(salary → @d8d/allin-salary-management-ui)
+**目标**:移植薪资管理页面,包含复杂表单验证
+
+**验收标准**:
+1. 创建`allin-packages/salary-management-ui`目录结构
+2. 完成组件转换:薪资表格、复杂表单组件
+3. **区域包集成**:集成`@d8d/area-management-ui`的区域选择器组件
+4. 完成API客户端转换:薪资计算API(使用rpcClient + ClientManager模式)
+5. 完成状态管理转换:数值计算状态
+6. 完成表单转换:复杂数值验证
+7. 配置package.json:依赖`@d8d/area-management-ui`
+8. 编写组件测试:验证数值计算和验证
+9. 通过类型检查和基本测试验证
+
+### 故事5:移植残疾人管理UI(disability → @d8d/allin-disability-management-ui)
 **目标**:将disability管理页面移植为独立UI包
 
 **验收标准**:
@@ -558,7 +585,7 @@ const useChannels = () => {
 7. 编写组件测试:验证残疾人管理功能
 8. 通过类型检查和基本测试验证
 
-### 故事4:移植残疾人个人管理UI(disability_person → @d8d/allin-disability-person-management-ui)
+### 故事6:移植残疾人个人管理UI(disability_person → @d8d/allin-disability-person-management-ui)
 **目标**:移植最复杂的残疾人个人管理页面,包含照片上传、备注管理等
 
 **验收标准**:
@@ -573,7 +600,7 @@ const useChannels = () => {
 9. 编写组件测试:覆盖所有复杂场景
 10. 通过类型检查和基本测试验证
 
-### 故事5:移植订单管理UI(order → @d8d/allin-order-management-ui)
+### 故事7:移植订单管理UI(order → @d8d/allin-order-management-ui)
 **目标**:移植复杂的订单管理页面,包含人员分配、资产关联等
 
 **验收标准**:
@@ -588,19 +615,6 @@ const useChannels = () => {
 9. 编写组件测试:覆盖订单全生命周期
 10. 通过类型检查和基本测试验证
 
-### 故事6:移植平台管理UI(platform → @d8d/allin-platform-management-ui)
-**目标**:移植基础平台管理页面
-
-**验收标准**:
-1. 创建`allin-packages/platform-management-ui`目录结构
-2. 完成组件转换:平台管理组件
-3. 完成API客户端转换:基础CRUD API(使用rpcClient + ClientManager模式)
-4. 完成状态管理转换:基础数据状态
-5. 完成表单转换:简单验证表单
-6. 配置package.json:基础依赖
-7. 编写组件测试:验证基础功能
-8. 通过类型检查和基本测试验证
-
 ### **区域管理UI说明**
 **目标**:复用现有`@d8d/area-management-ui`包,无需重新移植
 
@@ -616,20 +630,6 @@ const useChannels = () => {
 3. **组件集成**:使用`AreaSelector`、`AreaTree`等现有组件
 4. **无需移植**:节省开发工作量,保持技术栈一致性
 
-### 故事7:移植薪资管理UI(salary → @d8d/allin-salary-management-ui)
-**目标**:移植薪资管理页面,包含复杂表单验证
-
-**验收标准**:
-1. 创建`allin-packages/salary-management-ui`目录结构
-2. 完成组件转换:薪资表格、复杂表单组件
-3. **区域包集成**:集成`@d8d/area-management-ui`的区域选择器组件
-4. 完成API客户端转换:薪资计算API(使用rpcClient + ClientManager模式)
-5. 完成状态管理转换:数值计算状态
-6. 完成表单转换:复杂数值验证
-7. 配置package.json:依赖`@d8d/area-management-ui`
-8. 编写组件测试:验证数值计算和验证
-9. 通过类型检查和基本测试验证
-
 ## 文件上传集成方案
 
 ### 现状分析
@@ -698,12 +698,12 @@ const useChannels = () => {
 
 需要调整以下故事的文件上传处理:
 
-1. **故事4(disability-person-management-ui)**:
+1. **故事6(disability-person-management-ui)**:
    - 集成文件选择器组件用于照片上传
    - 修改表单接收`fileId`而非文件内容
    - 使用文件预览组件显示照片
 
-2. **故事5(order-management-ui)**:
+2. **故事7(order-management-ui)**:
    - 集成文件选择器组件用于资产文件上传
    - 根据资产类型限制文件类型(图片/视频)
    - 使用文件预览组件显示资产文件
@@ -725,13 +725,13 @@ const useChannels = () => {
 ## 完成定义
 
 - [ ] 所有7个故事完成,验收标准满足
-  - [ ] 故事1:渠道管理UI
-  - [ ] 故事2:公司管理UI
-  - [ ] 故事3:残疾人管理UI
-  - [ ] 故事4:残疾人个人管理UI
-  - [ ] 故事5:订单管理UI
-  - [ ] 故事6:平台管理UI
-  - [ ] 故事7:薪资管理UI
+  - [ ] 故事1:平台管理UI
+  - [ ] 故事2:渠道管理UI
+  - [ ] 故事3:公司管理UI
+  - [ ] 故事4:薪资管理UI
+  - [ ] 故事5:残疾人管理UI
+  - [ ] 故事6:残疾人个人管理UI
+  - [ ] 故事7:订单管理UI
 - [ ] 区域管理功能复用`@d8d/area-management-ui`包
 - [ ] 现有功能通过测试验证
 - [ ] 集成点正常工作
@@ -764,22 +764,22 @@ const useChannels = () => {
 
 "UI模块分析和技术栈分析已完成,关键发现:
 
-1. **依赖关系分析完成**:8个UI模块的依赖关系已明确
+1. **依赖关系分析完成**:7个UI模块的依赖关系已明确(region复用现有包)
 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. **故事拆分完成**:按模块拆分为8个故事,每个故事包含组件测试要求,遵循[UI包开发规范](../architecture/ui-package-standards.md#测试规范)
-
-**新的故事拆分方案**:
-- **故事1**:移植渠道管理UI(channel → @d8d/allin-channel-management-ui)
-- **故事2**:移植公司管理UI(company → @d8d/allin-company-management-ui)
-- **故事3**:移植残疾人管理UI(disability → @d8d/allin-disability-management-ui)
-- **故事4**:移植残疾人个人管理UI(disability_person → @d8d/allin-disability-person-management-ui)
-- **故事5**:移植订单管理UI(order → @d8d/allin-order-management-ui)
-- **故事6**:移植平台管理UI(platform → @d8d/allin-platform-management-ui)
-- **故事7**:移植薪资管理UI(salary → @d8d/allin-salary-management-ui)
+7. **故事拆分完成**:按模块拆分为7个故事(按执行顺序编号),每个故事包含组件测试要求,遵循[UI包开发规范](../architecture/ui-package-standards.md#测试规范)
+
+**新的故事拆分方案(按执行顺序编号)**:
+- **故事1**:移植平台管理UI(platform → @d8d/allin-platform-management-ui) - 最简单,无依赖
+- **故事2**:移植渠道管理UI(channel → @d8d/allin-channel-management-ui) - 独立模块
+- **故事3**:移植公司管理UI(company → @d8d/allin-company-management-ui) - 依赖platform数据
+- **故事4**:移植薪资管理UI(salary → @d8d/allin-salary-management-ui) - 中等复杂度
+- **故事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) - 高复杂度,可能依赖其他模块
 - **区域管理**:复用现有`@d8d/area-management-ui`包(无需移植)
 
 **每个故事的关键要求**:
@@ -789,19 +789,13 @@ const useChannels = () => {
 4. **遵循现有模式**:参考advertisement-management-ui的组件模式,并遵循[UI包开发规范](../architecture/ui-package-standards.md)
 5. **集成验证**:必须与对应的后端模块集成验证
 
-**执行顺序建议**:
-1. **故事6**(platform-management-ui):最简单的基础CRUD,无依赖
-2. **故事1**(channel-management-ui):独立模块,无依赖
-3. **故事2**(company-management-ui):依赖platform数据,需在platform之后
-4. **故事7**(salary-management-ui):中等复杂度,独立模块
-5. **故事3**(disability-management-ui):中等复杂度,独立模块
-6. **故事4**(disability-person-management-ui):高复杂度,依赖disability模块
-7. **故事5**(order-management-ui):高复杂度,可能依赖其他模块
+**执行顺序**:
+按故事编号顺序执行即可:**故事1 → 故事2 → 故事3 → 故事4 → 故事5 → 故事6 → 故事7**
 
 **依赖关系说明**:
-- company-management-ui依赖platform数据,必须在platform-management-ui之后
-- disability-person-management-ui是disability的详细管理,应在disability之后
-- order-management-ui可能涉及多个实体关联,放在最后
+- **故事3**(company-management-ui)依赖platform数据,必须在**故事1**(platform-management-ui)之后
+- **故事6**(disability-person-management-ui)是disability的详细管理,应在**故事5**(disability-management-ui)之后
+- **故事7**(order-management-ui)可能涉及多个实体关联,放在最后
 
 **技术栈转换关键点**:
 - **Ant Design组件 → @d8d/shared-ui-components组件**:使用现有共享UI组件库