Kaynağa Gözat

📝 docs(story): 创建故事010.005 - 优化操作按钮文本

创建订单管理模块的操作按钮文本优化故事:
- 将"添加资产"按钮文本修改为"添加附件"
- 更新相关提示文本和测试注释
- 包含完整的技术上下文和实施步骤

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 1 hafta önce
ebeveyn
işleme
d995ea55cb
1 değiştirilmiş dosya ile 161 ekleme ve 0 silme
  1. 161 0
      docs/stories/010.005.story.md

+ 161 - 0
docs/stories/010.005.story.md

@@ -0,0 +1,161 @@
+# Story 010.005: 优化操作按钮文本
+
+## Status
+Draft
+
+## Story
+**As a** 订单管理员
+**I want** 操作按钮文本准确反映功能
+**so that** 更直观地理解按钮功能
+
+## Acceptance Criteria
+1. 操作栏中"添加资产"按钮修改为"添加附件"
+2. 按钮功能保持不变
+3. 相关提示文本同步更新
+
+## Tasks / Subtasks
+- [ ] 修改OrderManagement.tsx中的"添加资产"按钮文本 (AC: 1)
+  - [ ] 定位文件:`allin-packages/order-management-ui/src/components/OrderManagement.tsx:565`
+  - [ ] 将"添加资产"修改为"添加附件"
+  - [ ] 确保按钮的`data-testid`属性保持不变:`add-asset-button-${order.id}`
+- [ ] 修改OrderPersonAssetAssociation.tsx中的"添加资产"按钮文本 (AC: 1)
+  - [ ] 定位文件:`allin-packages/order-management-ui/src/components/OrderPersonAssetAssociation.tsx:350`
+  - [ ] 将"添加资产"修改为"添加附件"
+  - [ ] 确保按钮功能保持不变
+- [ ] 修改关闭订单确认对话框中的相关文本 (AC: 3)
+  - [ ] 定位文件:`allin-packages/order-management-ui/src/components/OrderManagement.tsx:707`
+  - [ ] 将"订单关闭后将无法再添加人员或资产"修改为"订单关闭后将无法再添加人员或附件"
+  - [ ] 确保测试中的验证文本同步更新
+- [ ] 更新测试文件中的相关注释文本 (AC: 3)
+  - [ ] 定位文件:`allin-packages/order-management-ui/tests/integration/order.integration.test.tsx`
+  - [ ] 将第703行的"先打开下拉菜单,然后点击添加资产按钮"修改为"先打开下拉菜单,然后点击添加附件按钮"
+  - [ ] 将第708行的"等待下拉菜单打开,然后点击添加资产按钮"修改为"等待下拉菜单打开,然后点击添加附件按钮"
+- [ ] 验证修改后的功能 (AC: 2)
+  - [ ] 运行订单管理UI包的测试:`pnpm test`
+  - [ ] 验证所有测试通过
+  - [ ] 手动测试按钮功能是否保持不变
+
+## Dev Notes
+
+### 技术栈信息 [Source: architecture/tech-stack.md]
+- **前端框架**: React 19.1.0 + TypeScript
+- **路由**: React Router v7
+- **状态管理**: @tanstack/react-query (服务端状态) + Context (本地状态)
+- **UI组件库**: shadcn/ui (基于Radix UI)
+- **构建工具**: Vite 7.0.0
+- **样式**: Tailwind CSS 4.1.11
+- **HTTP客户端**: 基于Hono Client的封装 + axios适配器
+
+### 项目结构信息 [Source: architecture/source-tree.md]
+- **订单管理UI包路径**: `allin-packages/order-management-ui/`
+- **订单模块路径**: `allin-packages/order-module/`
+- **Web应用路径**: `web/src/client/admin/`
+- **组件位置**: `allin-packages/order-management-ui/src/components/OrderManagement.tsx`
+- **API客户端位置**: `allin-packages/order-management-ui/src/api/orderClient.ts`
+- **订单表单组件**: `allin-packages/order-management-ui/src/components/OrderForm.tsx`
+
+### 需要修改的具体位置(基于代码分析)
+
+#### 1. OrderManagement.tsx中的"添加资产"按钮
+- **文件**: `allin-packages/order-management-ui/src/components/OrderManagement.tsx:565`
+- **当前文本**: `添加资产`
+- **修改为**: `添加附件`
+- **相关代码**:
+```typescript
+<DropdownMenuItem
+  onClick={() => handleAddAsset(order.id)}
+  data-testid={`add-asset-button-${order.id}`}
+>
+  <FileText className="mr-2 h-4 w-4" />
+  添加资产  // ← 修改这里
+</DropdownMenuItem>
+```
+
+#### 2. OrderPersonAssetAssociation.tsx中的"添加资产"按钮
+- **文件**: `allin-packages/order-management-ui/src/components/OrderPersonAssetAssociation.tsx:350`
+- **当前文本**: `添加资产`
+- **修改为**: `添加附件`
+- **相关代码**:
+```typescript
+<Button onClick={handleAddAsset} size="sm">
+  <Plus className="mr-2 h-4 w-4" />
+  添加资产  // ← 修改这里
+</Button>
+```
+
+#### 3. OrderManagement.tsx中的关闭订单确认对话框文本
+- **文件**: `allin-packages/order-management-ui/src/components/OrderManagement.tsx:707`
+- **当前文本**: `确定要关闭这个订单吗?订单关闭后将无法再添加人员或资产。`
+- **修改为**: `确定要关闭这个订单吗?订单关闭后将无法再添加人员或附件。`
+- **相关代码**:
+```typescript
+<AlertDialogDescription data-testid="close-confirm-dialog-description">
+  确定要关闭这个订单吗?订单关闭后将无法再添加人员或资产。  // ← 修改这里
+</AlertDialogDescription>
+```
+
+#### 4. 测试文件中的注释文本
+- **文件**: `allin-packages/order-management-ui/tests/integration/order.integration.test.tsx`
+- **第703行**: `// 先打开下拉菜单,然后点击添加资产按钮` → `// 先打开下拉菜单,然后点击添加附件按钮`
+- **第708行**: `// 等待下拉菜单打开,然后点击添加资产按钮` → `// 等待下拉菜单打开,然后点击添加附件按钮`
+
+### UI包开发规范要求 [Source: architecture/ui-package-standards.md]
+1. **必须遵循UI包开发规范**,基于史诗008经验总结
+2. **API路径映射验证**: 开发前必须验证故事中的API路径映射与实际后端路由定义的一致性
+3. **类型推断最佳实践**: 必须使用RPC推断类型,而不是直接导入schema类型
+4. **测试选择器优化**: 必须为关键交互元素添加 `data-testid` 属性
+5. **表单组件模式**: 必须使用条件渲染两个独立的Form组件
+6. **API调用一致性**: 必须根据实际路由名称修正API调用
+
+### 编码标准要求 [Source: architecture/coding-standards.md]
+1. **测试框架**: 使用Vitest + Testing Library + hono/testing + Playwright
+2. **测试位置**: `tests/` 文件夹与源码并列
+3. **覆盖率目标**: 核心业务逻辑 > 80%
+4. **测试类型**: 单元测试、集成测试、E2E测试
+
+### 测试标准 [Source: architecture/testing-strategy.md]
+- **测试框架**: Vitest + Testing Library
+- **测试位置**: `tests/integration/` 文件夹
+- **测试类型**: 集成测试验证组件与API交互
+- **覆盖率要求**: 核心编辑订单功能 > 80%
+
+### 测试选择器要求
+必须保持现有的 `data-testid` 属性不变:
+- `data-testid="add-asset-button-${order.id}"` (按钮功能不变,只是文本修改)
+- `data-testid="close-confirm-dialog-description"` (文本内容更新)
+
+### 文件位置
+- **主要修改文件**: `allin-packages/order-management-ui/src/components/OrderManagement.tsx`
+- **其他修改文件**: `allin-packages/order-management-ui/src/components/OrderPersonAssetAssociation.tsx`
+- **测试文件**: `allin-packages/order-management-ui/tests/integration/order.integration.test.tsx`
+
+### 测试验证
+#### 具体测试要求
+1. **按钮文本验证**: 验证"添加资产"按钮文本已修改为"添加附件"
+2. **功能测试**: 验证按钮功能保持不变,点击后仍能打开资产关联模态框
+3. **对话框文本验证**: 验证关闭订单确认对话框文本已更新
+4. **回归测试**: 确保现有功能不受影响
+
+#### 测试执行
+- 运行订单管理UI包测试: `pnpm test`
+- 验证所有测试通过
+- 检查测试覆盖率
+
+## Change Log
+| Date | Version | Description | Author |
+|------|---------|-------------|--------|
+| 2025-12-12 | 1.0 | 故事创建,基于史诗010-05需求 | Scrum Master Bob |
+
+## Dev Agent Record
+*此部分由开发代理在实施过程中填写*
+
+### Agent Model Used
+
+### Debug Log References
+
+### Completion Notes List
+
+### File List
+
+## QA Results
+*此部分由QA代理在审查完成后填写*