Draft
As a 订单管理员 I want 能够成功更新订单状态 so that 准确跟踪订单进度
allin-packages/order-management-ui/src/components/OrderManagement.tsx 中的状态更新相关代码OrderForm 组件的状态更新逻辑allin-packages/order-module/src/routes/order-crud.routes.ts 中的更新路由update[':id']['$put']OrderManagement 组件中添加 updateMutationOrderForm 组件的表单提交逻辑allin-packages/order-management-ui/allin-packages/order-module/web/src/client/admin/allin-packages/order-management-ui/src/components/OrderManagement.tsxallin-packages/order-management-ui/src/api/orderClient.tsallin-packages/order-management-ui/src/components/OrderForm.tsx根据代码分析,当前订单管理组件有以下功能:
useQuery 获取订单列表getOrderDetailMutation 获取单个订单详情activateMutation 和 closeMutationdeleteMutationhandleEditOrder 函数打开编辑表单发现问题: 当前组件缺少 updateMutation 用于更新订单信息,编辑表单可能没有正确调用更新API。
orderClient.ts 分析,更新路由为 update[':id']['$put']UpdateOrderRequest = InferRequestType<typeof orderClient.update[':id']['$put']>['json']UpdateOrderResponse = InferResponseType<typeof orderClient.update[':id']['$put'], 200>create.$postlist.$getdetail[':id']['$get']delete[':id']['$delete']activate[':orderId']['$post']close[':orderId']['$post']data-testid 属性tests/ 文件夹与源码并列规范: 当组件需要支持创建和编辑两种表单模式时,必须使用条件渲染两个独立的Form组件,避免在单个Form组件上动态切换props。
// ✅ 正确:条件渲染两个独立的Form组件
{isCreateForm ? (
<Form {...createForm}>
{/* 创建表单内容 */}
</Form>
) : (
<Form {...updateForm}>
{/* 编辑表单内容 */}
</Form>
)}
规范: 必须使用RPC推断类型,而不是直接导入schema类型,避免Date/string类型不匹配问题。
// ✅ 正确:使用RPC推断类型(推荐)
export type UpdateOrderRequest = InferRequestType<typeof orderClient.update[':id']['$put']>['json'];
// ❌ 错误:直接导入schema类型(可能导致Date/string不匹配)
import type { UpdateOrderSchema } from '@d8d/allin-order-module/schemas';
规范: 必须为关键交互元素添加 data-testid 属性,避免使用文本查找导致的测试冲突。
需要添加的test ID:
data-testid="order-update-form"data-testid="order-update-submit-button"data-testid="order-status-select"data-testid="order-work-status-select"OrderManagement 组件中没有定义 updateMutationOrderForm 组件可能没有正确处理编辑模式allin-packages/order-management-ui/src/components/OrderManagement.tsxallin-packages/order-management-ui/src/components/OrderForm.tsxallin-packages/order-management-ui/src/api/orderClient.tsallin-packages/order-management-ui/src/api/types.tsallin-packages/order-management-ui/tests/integration/order.integration.test.tsxallin-packages/order-module/src/routes/order-crud.routes.tstests/integration/ 文件夹必须为新的更新相关控件添加 data-testid 属性:
data-testid="order-update-form"data-testid="order-update-submit-button"data-testid="order-status-select"data-testid="order-work-status-select"data-testid="order-edit-button-{id}"| Date | Version | Description | Author |
|---|---|---|---|
| 2025-12-12 | 1.0 | 故事创建,基于史诗010-04需求 | Scrum Master Bob |
此部分由开发代理在实施过程中填写
待填写
待填写
待填写
待填写
此部分由QA代理在审查完成后填写