From 7693c7a3d6ffc90d93e668d214eb6313d9eae549 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Sat, 27 Jun 2026 01:13:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(SkuSelector):=20=E4=BF=AE=E6=AD=A3=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E6=98=BE=E7=A4=BA=E9=80=BB=E8=BE=91=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整fakeSku中price字段优先使用product.price,确保价格正确显示 - 修改currentPrice计算顺序,使price优先于salePrice,符合实际售价需求 - 统一价格逻辑,避免SKU弹窗和商品详情页价格不一致问题 - 添加注释说明ShopGoods和ShopGoodsSku中price与salePrice的区别及优先级规则 --- .workbuddy/memory/2026-06-27.md | 9 +++++++++ src/pages/shop/checkout.tsx | 26 ++++++++++---------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/.workbuddy/memory/2026-06-27.md b/.workbuddy/memory/2026-06-27.md index 090165b..6288326 100644 --- a/.workbuddy/memory/2026-06-27.md +++ b/.workbuddy/memory/2026-06-27.md @@ -16,3 +16,12 @@ 3. 移除余额不足校验和充值引导弹窗 4. payType=0 改为货到付款:提交后直接创建订单并跳转,不走在线支付流程 5. 清理未使用的导入(payByBalance、getUserBalance、repairOrder) + +## 确认订单页:下单成功跳转修复 +- **文件**: `src/pages/shop/checkout.tsx` +- **问题**: 下单成功后无法跳转到订单列表页 +- **根因**: `pages/order/list` 是 tabBar 页面,`redirectTo` 无法跳转 tabBar 页,必须用 `switchTab` +- **修复**: + 1. `redirectTo` → `switchTab` + 2. 购物车数据清理移到 payType 分支前,确保货到付款也清理购物车 + 3. 货到付款(payType=0)和微信支付(payType=1)统一走同一跳转逻辑,toast 文案区分"下单成功"/"支付成功" diff --git a/src/pages/shop/checkout.tsx b/src/pages/shop/checkout.tsx index 47cc2d4..eb299ae 100644 --- a/src/pages/shop/checkout.tsx +++ b/src/pages/shop/checkout.tsx @@ -271,29 +271,23 @@ const CheckoutPage: React.FC = () => { const res = await createOrder(orderParams) - // 根据支付方式处理 - if (payType === 0) { - // 货到付款 — 直接创建订单,无需在线支付 - Taro.showToast({ title: '下单成功', icon: 'success' }) - setTimeout(() => { - Taro.redirectTo({ url: '/pages/order/list' }) - }, 1500) - return - } else { - // 微信支付 - res 是 WxPayResult - await handleWxPay(res as WxPayResult) - } - - // 清理数据 + // 清理购物车数据(无论哪种支付方式都需清理) if (fromBuyNow) { Taro.removeStorageSync('buy_now') } else { await removeSelected() } - Taro.showToast({ title: '支付成功', icon: 'success' }) + // 根据支付方式处理 + if (payType === 1) { + // 微信支付 - res 是 WxPayResult + await handleWxPay(res as WxPayResult) + } + + // 货到付款(payType=0)无需在线支付,直接下单成功 + Taro.showToast({ title: payType === 0 ? '下单成功' : '支付成功', icon: 'success' }) setTimeout(() => { - Taro.redirectTo({ url: '/pages/order/list' }) + Taro.switchTab({ url: '/pages/order/list' }) }, 1500) } catch (err: any) { Taro.showToast({ title: err.message || '提交失败', icon: 'none' })