# Epic 003 - Mini Bug修复 ## Epic Goal 修复当前mini小程序中的一些关键bug,提升用户体验和功能完整性。 ## Epic Description **Existing System Context:** - 当前mini小程序是一个基于Taro + React + TypeScript的电商小程序 - 使用Hono RPC客户端进行API调用 - 订单管理功能已基本实现,但部分操作缺少实际API调用 - 技术栈:React, TypeScript, Taro, Hono, TanStack Query **Enhancement Details:** - 修复订单列表页和详情页中取消订单功能,现在没有实际调用取消订单的API - 确保所有订单操作按钮都能正确调用对应的后端API - 提升用户操作的可靠性和反馈体验 **Success criteria:** - 取消订单功能能正确调用后端API - 用户操作后有明确的成功/失败反馈 - 订单状态能正确更新 ## Stories 1. **Story 1:** 修复订单列表页和详情页的取消订单功能 - 在`OrderButtonBar`组件中实现实际的取消订单API调用 (`mini/src/components/order/OrderButtonBar/index.tsx`) - 在`OrderDetailPage`组件中集成取消订单mutation (`mini/src/pages/order-detail/index.tsx`) - 添加取消原因输入功能 (`mini/src/components/common/CancelReasonDialog/index.tsx`) - 完善错误处理和用户反馈 2. **Story 2:** 修复订单列表和详情页商品显示问题 ✅ **已完成** - **问题分析**: 订单接口返回的数据结构中`goodsDetail`字段存储的是JSON字符串格式的商品信息,但前端解析时可能存在问题,导致商品信息无法正确显示 - **架构重构**: 从goodsDetail字段解析改为使用一对多关联关系,在订单实体中添加与订单商品的关联 - **后端修复**: 更新用户订单路由配置包含orderGoods关联查询,统一图片URL字段格式 - **前端修复**: 更新`OrderCard`组件和`OrderDetailPage`使用新的orderGoods关联关系 (`mini/src/components/order/OrderCard/index.tsx:18-24`, `mini/src/pages/order-detail/index.tsx:134-140`) - **数据验证**: 验证订单创建时订单商品关联关系正确建立,包含完整的商品信息 - **UI优化**: 确保订单列表页和详情页中商品图片、名称、规格、价格等信息的完整显示 (`mini/src/pages/order-list/index.tsx`, `mini/src/pages/order-detail/index.tsx:242-263`) - **错误处理**: 增强关联数据为空时的错误处理,显示默认商品信息 3. **Story 3:** 修复商品价格显示不一致问题 ✅ **已完成** - **问题分析**: 商品列表页显示的商品价格与商品详情页显示的价格可能不一致,可能是由于规格选择、促销活动或数据同步问题导致 - **价格同步**: 确保商品列表页的`price`字段与商品详情页的`price`字段数据来源一致 (`mini/src/pages/goods-list/index.tsx:166`, `mini/src/pages/goods-detail/index.tsx:227`) - **规格移除**: 由于后端暂无规格API,暂时移除规格选择功能,简化价格显示逻辑 - **价格修复**: 修复商品卡片价格显示除以100的问题,确保11元显示为11.00元而非0.11元 (`mini/src/components/goods-card/index.tsx:47-50`) - **数据验证**: 在商品详情页添加价格验证逻辑,确保显示的价格与后端API返回的价格一致 - **文件修改**: - `mini/src/pages/goods-detail/index.tsx` - 移除规格选择功能 - `mini/src/components/goods-card/index.tsx` - 修复价格显示问题 - `docs/stories/003.003.goods-price-display-fix.story.md` - 更新故事文档 ## Compatibility Requirements - [ ] 现有API保持不变 - [ ] 数据库schema无变化 - [ ] UI变化遵循现有模式 - [ ] 性能影响最小 ## Risk Mitigation - **Primary Risk:** 取消订单API调用失败导致用户体验差 - **Mitigation:** 完善的错误处理和用户反馈机制 - **Rollback Plan:** 回退到当前状态,取消订单功能保持模拟状态 ## Definition of Done - [ ] 所有故事完成并满足验收标准 - [ ] 现有功能通过测试验证 - [ ] 集成点正常工作 - [ ] 文档适当更新 - [ ] 现有功能无回归 --- **Story Manager Handoff:** "请为这个现有项目史诗开发详细的用户故事。关键考虑因素: - 这是一个基于{{React, TypeScript, Taro, Hono, TanStack Query}}的现有系统增强 - 集成点:订单API客户端、取消订单路由 - 要遵循的现有模式:订单状态管理、用户操作反馈 - 关键兼容性要求:保持现有API不变,遵循现有UI模式 - 每个故事必须包含验证现有功能保持完整的检查 这个史诗应该在保持系统完整性的同时交付{{修复取消订单功能}}的目标。"