|
|
@@ -1,9 +1,9 @@
|
|
|
# 史诗006:父子商品多规格支持 - 棕地增强
|
|
|
|
|
|
## 史诗状态
|
|
|
-**进度**: 10/14 故事完成 (71.4%)
|
|
|
-**最近更新**: 2025-12-15 (故事10:购物车商品名称显示优化完成)
|
|
|
-**当前状态**: 故事1-10已完成,故事11-14待开始
|
|
|
+**进度**: 11/14 故事完成 (78.6%)
|
|
|
+**最近更新**: 2025-12-15 (故事12:商品详情页规格选择流程优化完成)
|
|
|
+**当前状态**: 故事1-12已完成,故事13-14待开始
|
|
|
|
|
|
### 完成概览
|
|
|
- ✅ **故事1**: 管理后台父子商品配置功能 (已完成)
|
|
|
@@ -17,7 +17,7 @@
|
|
|
- ✅ **故事9**: 父子商品名称关联查询优化(为购物车显示做准备) (已完成)
|
|
|
- ✅ **故事10**: 购物车商品名称显示优化 (已完成)
|
|
|
- ⏳ **故事11**: 子商品删除功能实现 (待开始)
|
|
|
-- ⏳ **故事12**: 商品详情页规格选择流程优化 (待开始)
|
|
|
+- ✅ **故事12**: 商品详情页规格选择流程优化 (已完成)
|
|
|
- ⏳ **故事13**: 父子商品列表缓存自动刷新优化 (待开始)
|
|
|
- ⏳ **故事14**: 订单提交快照商品名称优化 (待开始)
|
|
|
|
|
|
@@ -64,7 +64,7 @@
|
|
|
8. ✅ 父子商品名称通过关联查询获取,为购物车显示提供准确父商品名称(故事9已实现)
|
|
|
9. ✅ 购物车中父子商品显示完整的组合名称(父商品名称 + 子商品规格名称)(故事10已实现)
|
|
|
10. ⏳ 管理员能删除不需要的子商品规格(故事11待实现)
|
|
|
- 11. ⏳ 用户在商品详情页能一键完成规格选择和购物车/购买操作(故事12待实现)
|
|
|
+ 11. ✅ 用户在商品详情页能一键完成规格选择和购物车/购买操作(故事12已实现)
|
|
|
12. ⏳ 订单提交快照商品名称包含完整的商品和规格信息(故事14待实现)
|
|
|
|
|
|
## 设计决策
|
|
|
@@ -421,7 +421,7 @@
|
|
|
- 可能添加删除确认对话框组件或复用现有Dialog
|
|
|
- **可能新建的文件**:无(复用现有组件和API)
|
|
|
|
|
|
-12. **故事12:商品详情页规格选择流程优化** ⏳ **待开始**
|
|
|
+12. **故事12:商品详情页规格选择流程优化** ✅ **已完成**
|
|
|
- **问题背景**:当前小程序商品详情页的规格选择流程不够流畅。页面中有一个独立的"选择规格"按钮,用户需要先点击该按钮选择规格,关闭规格选择弹窗,然后再点击"加入购物车"或"立即购买"按钮。这种两步操作给用户带来不便,特别是对于多规格商品,用户需要记住已选择的规格再进行购买操作,体验不够直观。
|
|
|
- **解决方案**:优化商品详情页的规格选择流程,将规格选择与购物车/购买操作合并。当用户点击"加入购物车"或"立即购买"按钮时,如果商品有多规格选项且用户未选择规格,自动弹出规格选择器。用户选择规格和数量后,直接执行对应的购物车添加或购买操作,实现一键完成规格选择和购买。
|
|
|
- **完整流程**:
|
|
|
@@ -454,18 +454,15 @@
|
|
|
- 用户界面清晰显示当前选择的规格信息(如有)
|
|
|
- 操作流程流畅,无多余的弹窗关闭和重新点击步骤
|
|
|
- **完成状态**:
|
|
|
- - ⏳ 功能待实现
|
|
|
- - ⏳ 技术方案待设计
|
|
|
- - ⏳ 测试待编写
|
|
|
- - **文件变更**:
|
|
|
- - **待修改的文件**:
|
|
|
- - `mini/src/pages/goods-detail/index.tsx` - 重构规格选择流程,合并操作逻辑
|
|
|
- - `mini/src/components/goods-spec-selector/index.tsx` - 扩展组件支持直接操作执行
|
|
|
- - 可能修改`mini/src/contexts/CartContext.tsx`中的购物车添加逻辑
|
|
|
- - **可能新建的文件**:
|
|
|
- - `mini/src/components/goods-spec-action-context.tsx` - 规格选择操作上下文组件(可选)
|
|
|
- - `mini/src/components/selected-spec-display.tsx` - 已选规格信息显示组件(可选)
|
|
|
-
|
|
|
+ - ✅ 功能已实现:规格选择流程优化完成,用户点击操作按钮自动弹出规格选择器,选择后直接执行操作
|
|
|
+ - ✅ 技术方案已实现:重构handleAddToCart和handleBuyNow函数,扩展GoodsSpecSelector组件,移除独立选择规格按钮
|
|
|
+ - ✅ 测试已通过:13个集成测试全部通过,验证新规格选择流程
|
|
|
+ - **文件变更**:
|
|
|
+ - **已修改的文件**:
|
|
|
+ - `mini/src/pages/goods-detail/index.tsx` - 主要修改:添加pendingAction状态,重构handleAddToCart和handleBuyNow函数添加自动弹窗逻辑,移除独立"选择规格"按钮,优化规格信息显示和价格显示,修复按钮禁用逻辑
|
|
|
+ - `mini/src/components/goods-spec-selector/index.tsx` - 扩展组件:添加actionType prop,扩展onConfirm回调签名,添加getConfirmButtonText函数
|
|
|
+ - `mini/tests/unit/pages/goods-detail/goods-detail.test.tsx` - 更新集成测试:修改"打开规格选择弹窗"测试使用新流程,修复多个测试以匹配新的按钮禁用逻辑和流程
|
|
|
+ - `docs/stories/006.012.goods-detail-spec-optimization.story.md` - 更新故事状态和任务完成记录
|
|
|
13. **故事13:父子商品列表缓存自动刷新优化** ⏳ **待开始**
|
|
|
- **问题背景**:在管理后台商品对话框中,使用批量创建子商品规格功能后,父子关系列表没有自动更新。管理员需要手动刷新页面或切换到其他标签页再返回才能看到新创建的子商品,影响操作体验。
|
|
|
- **解决方案**:优化 React Query 缓存刷新逻辑,在批量创建子商品成功后自动使相关查询失效,触发子商品列表自动刷新。
|