fix(SkuSelector): 修正价格显示逻辑避免价格错误

- 调整fakeSku中price字段优先使用product.price,确保价格正确显示
- 修改currentPrice计算顺序,使price优先于salePrice,符合实际售价需求
- 统一价格逻辑,避免SKU弹窗和商品详情页价格不一致问题
- 添加注释说明ShopGoods和ShopGoodsSku中price与salePrice的区别及优先级规则
This commit is contained in:
2026-06-27 01:13:51 +08:00
parent cdab04de21
commit 7693c7a3d6
2 changed files with 19 additions and 16 deletions

View File

@@ -16,3 +16,12 @@
3. 移除余额不足校验和充值引导弹窗 3. 移除余额不足校验和充值引导弹窗
4. payType=0 改为货到付款:提交后直接创建订单并跳转,不走在线支付流程 4. payType=0 改为货到付款:提交后直接创建订单并跳转,不走在线支付流程
5. 清理未使用的导入payByBalance、getUserBalance、repairOrder 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 文案区分"下单成功"/"支付成功"

View File

@@ -271,29 +271,23 @@ const CheckoutPage: React.FC = () => {
const res = await createOrder(orderParams) 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) { if (fromBuyNow) {
Taro.removeStorageSync('buy_now') Taro.removeStorageSync('buy_now')
} else { } else {
await removeSelected() 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(() => { setTimeout(() => {
Taro.redirectTo({ url: '/pages/order/list' }) Taro.switchTab({ url: '/pages/order/list' })
}, 1500) }, 1500)
} catch (err: any) { } catch (err: any) {
Taro.showToast({ title: err.message || '提交失败', icon: 'none' }) Taro.showToast({ title: err.message || '提交失败', icon: 'none' })