|
|
@@ -1,7 +1,7 @@
|
|
|
# Story 009.008: 公司创建优化
|
|
|
|
|
|
## Status
|
|
|
-Ready for Development
|
|
|
+Ready for Review
|
|
|
|
|
|
## Story
|
|
|
**As a** 系统管理员
|
|
|
@@ -14,27 +14,27 @@ Ready for Development
|
|
|
3. 表单验证规则更新
|
|
|
|
|
|
## Tasks / Subtasks
|
|
|
-- [ ] 修改后端公司模块schema验证规则 (AC: 1, 2, 3)
|
|
|
- - [ ] 修改`allin-packages/company-module/src/schemas/company.schema.ts`中的`CreateCompanySchema`
|
|
|
- - [ ] 将`platformId`、`contactPerson`、`contactPhone`字段从必填改为可选
|
|
|
- - [ ] 添加中文错误提示(参考平台管理模块的schema模式)
|
|
|
- - [ ] 确保空字符串自动转换为undefined(使用Zod transform)
|
|
|
-- [ ] 更新前端公司管理UI表单配置 (AC: 1, 2, 3)
|
|
|
- - [ ] 修改`allin-packages/company-management-ui/src/components/CompanyManagement.tsx`中的表单默认值
|
|
|
- - [ ] 更新FormLabel显示,移除非必填字段的红色星号标记
|
|
|
- - [ ] 验证表单提交时可选字段正确处理
|
|
|
-- [ ] 更新前端表单验证规则 (AC: 3)
|
|
|
- - [ ] 确保前端使用更新后的schema进行验证
|
|
|
- - [ ] 验证可选字段的默认值处理
|
|
|
-- [ ] 更新集成测试 (AC: 1, 2, 3)
|
|
|
- - [ ] 修改`allin-packages/company-management-ui/tests/integration/company.integration.test.tsx`
|
|
|
- - [ ] 添加测试用例验证仅公司名称为必填
|
|
|
- - [ ] 添加测试用例验证可选字段可以留空
|
|
|
- - [ ] 确保所有现有测试通过
|
|
|
-- [ ] 运行测试验证修改 (AC: 1, 2, 3)
|
|
|
- - [ ] 运行公司管理UI包测试:`pnpm test`
|
|
|
- - [ ] 运行公司模块测试:`pnpm test`
|
|
|
- - [ ] 验证所有测试通过
|
|
|
+- [x] 修改后端公司模块schema验证规则 (AC: 1, 2, 3)
|
|
|
+ - [x] 修改`allin-packages/company-module/src/schemas/company.schema.ts`中的`CreateCompanySchema`
|
|
|
+ - [x] 将`platformId`、`contactPerson`、`contactPhone`字段从必填改为可选
|
|
|
+ - [x] 添加中文错误提示(参考平台管理模块的schema模式)
|
|
|
+ - [x] 确保空字符串自动转换为undefined(使用Zod transform)
|
|
|
+- [x] 更新前端公司管理UI表单配置 (AC: 1, 2, 3)
|
|
|
+ - [x] 修改`allin-packages/company-management-ui/src/components/CompanyManagement.tsx`中的表单默认值
|
|
|
+ - [x] 更新FormLabel显示,移除非必填字段的红色星号标记
|
|
|
+ - [x] 验证表单提交时可选字段正确处理
|
|
|
+- [x] 更新前端表单验证规则 (AC: 3)
|
|
|
+ - [x] 确保前端使用更新后的schema进行验证
|
|
|
+ - [x] 验证可选字段的默认值处理
|
|
|
+- [x] 更新集成测试 (AC: 1, 2, 3)
|
|
|
+ - [x] 修改`allin-packages/company-management-ui/tests/integration/company.integration.test.tsx`
|
|
|
+ - [x] 添加测试用例验证仅公司名称为必填
|
|
|
+ - [x] 添加测试用例验证可选字段可以留空
|
|
|
+ - [x] 确保所有现有测试通过
|
|
|
+- [x] 运行测试验证修改 (AC: 1, 2, 3)
|
|
|
+ - [x] 运行公司管理UI包测试:`pnpm test`
|
|
|
+ - [x] 运行公司模块测试:`pnpm test`
|
|
|
+ - [x] 验证所有测试通过
|
|
|
|
|
|
## Dev Notes
|
|
|
|
|
|
@@ -115,11 +115,29 @@ Ready for Development
|
|
|
## Dev Agent Record
|
|
|
|
|
|
### Agent Model Used
|
|
|
+- James (dev agent) - 全栈开发工程师
|
|
|
|
|
|
### Debug Log References
|
|
|
+- 修复了测试"应该仅公司名称为必填字段"中的DOM查询问题
|
|
|
+- 将表单类型推断从直接导入schema类型改为使用RPC推断类型
|
|
|
|
|
|
### Completion Notes List
|
|
|
+1. 后端schema验证规则已修改:仅`companyName`为必填字段
|
|
|
+2. 前端表单配置已更新:所有可选字段标记为"(可选)"
|
|
|
+3. 表单类型推断已优化:使用RPC推断类型而非直接导入schema类型
|
|
|
+4. 集成测试已更新并全部通过验证
|
|
|
+5. 公司管理UI包和公司模块测试均通过
|
|
|
|
|
|
### File List
|
|
|
+**修改的文件:**
|
|
|
+1. `allin-packages/company-module/src/schemas/company.schema.ts` - 修改CreateCompanySchema验证规则
|
|
|
+2. `allin-packages/company-management-ui/src/components/CompanyManagement.tsx` - 更新表单配置和类型推断
|
|
|
+3. `allin-packages/company-management-ui/tests/integration/company.integration.test.tsx` - 更新集成测试
|
|
|
+
|
|
|
+**新增/修改的功能:**
|
|
|
+- 创建公司时仅"公司名字"为必填项
|
|
|
+- 其他字段(platformId、contactPerson、contactPhone、contactEmail、address)均为可选
|
|
|
+- 空字符串自动转换为undefined
|
|
|
+- 使用RPC推断类型确保类型安全
|
|
|
|
|
|
## QA Results
|