|
@@ -511,7 +511,20 @@ const useChannels = () => {
|
|
|
|
|
|
|
|
**注**:每个故事对应一个UI模块的完整移植,包括技术栈转换和组件测试。
|
|
**注**:每个故事对应一个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包,完成技术栈转换并验证功能完整性
|
|
**目标**:将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数据的依赖
|
|
**目标**:将company管理页面移植为独立UI包,处理对platform数据的依赖
|
|
|
|
|
|
|
|
**验收标准**:
|
|
**验收标准**:
|
|
@@ -545,7 +558,21 @@ const useChannels = () => {
|
|
|
8. 编写组件测试:验证跨模块数据集成
|
|
8. 编写组件测试:验证跨模块数据集成
|
|
|
9. 通过类型检查和基本测试验证
|
|
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包
|
|
**目标**:将disability管理页面移植为独立UI包
|
|
|
|
|
|
|
|
**验收标准**:
|
|
**验收标准**:
|
|
@@ -558,7 +585,7 @@ const useChannels = () => {
|
|
|
7. 编写组件测试:验证残疾人管理功能
|
|
7. 编写组件测试:验证残疾人管理功能
|
|
|
8. 通过类型检查和基本测试验证
|
|
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. 编写组件测试:覆盖所有复杂场景
|
|
9. 编写组件测试:覆盖所有复杂场景
|
|
|
10. 通过类型检查和基本测试验证
|
|
10. 通过类型检查和基本测试验证
|
|
|
|
|
|
|
|
-### 故事5:移植订单管理UI(order → @d8d/allin-order-management-ui)
|
|
|
|
|
|
|
+### 故事7:移植订单管理UI(order → @d8d/allin-order-management-ui)
|
|
|
**目标**:移植复杂的订单管理页面,包含人员分配、资产关联等
|
|
**目标**:移植复杂的订单管理页面,包含人员分配、资产关联等
|
|
|
|
|
|
|
|
**验收标准**:
|
|
**验收标准**:
|
|
@@ -588,19 +615,6 @@ const useChannels = () => {
|
|
|
9. 编写组件测试:覆盖订单全生命周期
|
|
9. 编写组件测试:覆盖订单全生命周期
|
|
|
10. 通过类型检查和基本测试验证
|
|
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说明**
|
|
### **区域管理UI说明**
|
|
|
**目标**:复用现有`@d8d/area-management-ui`包,无需重新移植
|
|
**目标**:复用现有`@d8d/area-management-ui`包,无需重新移植
|
|
|
|
|
|
|
@@ -616,20 +630,6 @@ const useChannels = () => {
|
|
|
3. **组件集成**:使用`AreaSelector`、`AreaTree`等现有组件
|
|
3. **组件集成**:使用`AreaSelector`、`AreaTree`等现有组件
|
|
|
4. **无需移植**:节省开发工作量,保持技术栈一致性
|
|
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`而非文件内容
|
|
- 修改表单接收`fileId`而非文件内容
|
|
|
- 使用文件预览组件显示照片
|
|
- 使用文件预览组件显示照片
|
|
|
|
|
|
|
|
-2. **故事5(order-management-ui)**:
|
|
|
|
|
|
|
+2. **故事7(order-management-ui)**:
|
|
|
- 集成文件选择器组件用于资产文件上传
|
|
- 集成文件选择器组件用于资产文件上传
|
|
|
- 根据资产类型限制文件类型(图片/视频)
|
|
- 根据资产类型限制文件类型(图片/视频)
|
|
|
- 使用文件预览组件显示资产文件
|
|
- 使用文件预览组件显示资产文件
|
|
@@ -725,13 +725,13 @@ const useChannels = () => {
|
|
|
## 完成定义
|
|
## 完成定义
|
|
|
|
|
|
|
|
- [ ] 所有7个故事完成,验收标准满足
|
|
- [ ] 所有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`包
|
|
- [ ] 区域管理功能复用`@d8d/area-management-ui`包
|
|
|
- [ ] 现有功能通过测试验证
|
|
- [ ] 现有功能通过测试验证
|
|
|
- [ ] 集成点正常工作
|
|
- [ ] 集成点正常工作
|
|
@@ -764,22 +764,22 @@ const useChannels = () => {
|
|
|
|
|
|
|
|
"UI模块分析和技术栈分析已完成,关键发现:
|
|
"UI模块分析和技术栈分析已完成,关键发现:
|
|
|
|
|
|
|
|
-1. **依赖关系分析完成**:8个UI模块的依赖关系已明确
|
|
|
|
|
|
|
+1. **依赖关系分析完成**:7个UI模块的依赖关系已明确(region复用现有包)
|
|
|
2. **技术栈差异分析完成**:源系统使用Ant Design + Jotai,目标系统使用@d8d/shared-ui-components + React Query,存在重大架构差异
|
|
2. **技术栈差异分析完成**:源系统使用Ant Design + Jotai,目标系统使用@d8d/shared-ui-components + React Query,存在重大架构差异
|
|
|
3. **命名方案确定**:使用`@d8d/allin-`前缀,`-management-ui`后缀,非多租户版本
|
|
3. **命名方案确定**:使用`@d8d/allin-`前缀,`-management-ui`后缀,非多租户版本
|
|
|
4. **目录结构**:在`allin-packages/`目录下创建UI包,与后端模块保持相同目录,遵循[UI包开发规范](../architecture/ui-package-standards.md#包结构规范)
|
|
4. **目录结构**:在`allin-packages/`目录下创建UI包,与后端模块保持相同目录,遵循[UI包开发规范](../architecture/ui-package-standards.md#包结构规范)
|
|
|
5. **移植顺序建议**:从简单到复杂,先移植基础CRUD页面
|
|
5. **移植顺序建议**:从简单到复杂,先移植基础CRUD页面
|
|
|
6. **技术栈转换方案**:已制定从Ant Design到@d8d/shared-ui-components的详细转换策略,遵循[UI包开发规范](../architecture/ui-package-standards.md)
|
|
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`包(无需移植)
|
|
- **区域管理**:复用现有`@d8d/area-management-ui`包(无需移植)
|
|
|
|
|
|
|
|
**每个故事的关键要求**:
|
|
**每个故事的关键要求**:
|
|
@@ -789,19 +789,13 @@ const useChannels = () => {
|
|
|
4. **遵循现有模式**:参考advertisement-management-ui的组件模式,并遵循[UI包开发规范](../architecture/ui-package-standards.md)
|
|
4. **遵循现有模式**:参考advertisement-management-ui的组件模式,并遵循[UI包开发规范](../architecture/ui-package-standards.md)
|
|
|
5. **集成验证**:必须与对应的后端模块集成验证
|
|
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组件库
|
|
- **Ant Design组件 → @d8d/shared-ui-components组件**:使用现有共享UI组件库
|