diff --git a/apps/mini-user/src/pages/order-confirm-pickup/index.tsx b/apps/mini-user/src/pages/order-confirm-pickup/index.tsx index 9d187e8..3166e60 100644 --- a/apps/mini-user/src/pages/order-confirm-pickup/index.tsx +++ b/apps/mini-user/src/pages/order-confirm-pickup/index.tsx @@ -75,11 +75,12 @@ export default function OrderConfirmPickupPage() { const canSubmit = !!preview && quantityOk && !loading && !previewLoading; function updateQuantity(next: number) { - if (next < 1) return; if (next < minQty) { const tip = `现场提货至少购买 ${minQty} 瓶`; toast(tip); setMsg(tip); + if (next < 1) return; + setQuantity(next); return; } setQuantity(next); @@ -101,8 +102,12 @@ export default function OrderConfirmPickupPage() { async function submit() { if (!canSubmit) { - if (!quantityOk) setMsg(`现场提货至少购买 ${minQty} 瓶`); - return; + if (!quantityOk) { + const tip = `现场提货至少购买 ${minQty} 瓶`; + setMsg(tip); + toast(tip); + return; + } } const returnPath = `/pages/order-confirm-pickup/index?productId=${productId}&qty=${quantity}`; @@ -191,8 +196,8 @@ export default function OrderConfirmPickupPage() { 购买数量 updateQuantity(Math.max(minQty, quantity - 1))} + className="order-qty-btn" + onClick={() => updateQuantity(quantity - 1)} > diff --git a/apps/mini-user/src/pages/order-confirm/index.tsx b/apps/mini-user/src/pages/order-confirm/index.tsx index 1195316..f16545b 100644 --- a/apps/mini-user/src/pages/order-confirm/index.tsx +++ b/apps/mini-user/src/pages/order-confirm/index.tsx @@ -167,14 +167,14 @@ export default function OrderConfirmPage() { : ''; function updateQuantity(next: number) { - if (next < 1) return; if (next < minQty) { const tip = isCross ? `跨城配送至少购买 ${minQty} 瓶(1箱)` : `同城配送至少购买 ${minQty} 瓶`; toast(tip); setMsg(tip); - setQuantity(Math.max(1, next)); + if (next < 1) return; + setQuantity(next); return; } setQuantity(next); @@ -352,7 +352,7 @@ export default function OrderConfirmPage() { 购买数量 updateQuantity(quantity - 1)} > diff --git a/apps/mini-user/src/pages/order-detail/index.tsx b/apps/mini-user/src/pages/order-detail/index.tsx index 83cb554..a3f3530 100644 --- a/apps/mini-user/src/pages/order-detail/index.tsx +++ b/apps/mini-user/src/pages/order-detail/index.tsx @@ -181,12 +181,15 @@ export default function OrderDetailPage() { { - const pages = Taro.getCurrentPages(); - if (pages.length > 1) { - Taro.navigateBack(); + // 支付完成后 reLaunch 进详情:栈仅一页时 navigateBack 会退出小程序,统一回首页 + const fromPay = String(router.params.from || '') === 'pay'; + if (fromPay || Taro.getCurrentPages().length <= 1) { + Taro.switchTab({ url: '/pages/home/index' }).catch(() => { + Taro.reLaunch({ url: '/pages/home/index' }); + }); return; } - Taro.switchTab({ url: '/pages/home/index' }); + Taro.navigateBack(); }} right={} /> diff --git a/apps/mini-user/src/pages/orders/index.tsx b/apps/mini-user/src/pages/orders/index.tsx index 0a87cf5..6e44413 100644 --- a/apps/mini-user/src/pages/orders/index.tsx +++ b/apps/mini-user/src/pages/orders/index.tsx @@ -95,7 +95,11 @@ export default function OrdersPage() { Taro.switchTab({ url: '/pages/home/index' })} + onBack={() => { + Taro.switchTab({ url: '/pages/home/index' }).catch(() => { + Taro.reLaunch({ url: '/pages/home/index' }); + }); + }} /> {TABS.map((t) => ( diff --git a/apps/mini-user/src/pages/pay/index.tsx b/apps/mini-user/src/pages/pay/index.tsx index 1755d67..113d70a 100644 --- a/apps/mini-user/src/pages/pay/index.tsx +++ b/apps/mini-user/src/pages/pay/index.tsx @@ -144,10 +144,10 @@ export default function PayPage() { toast('支付成功', 'success'); } if (deliveryType === 'ON_SITE_PICKUP') { - // 现场提货支付即完成 → 订单详情(已完成);reLaunch 清掉商品详情栈 - Taro.reLaunch({ url: `/pages/order-detail/index?id=${orderId}` }); + // 现场提货支付即完成 → 订单详情;from=pay 返回强制回首页,避免 navigateBack 退出小程序 + Taro.reLaunch({ url: `/pages/order-detail/index?id=${orderId}&from=pay` }); } else { - Taro.reLaunch({ url: '/pages/orders/index?tab=paid' }); + Taro.reLaunch({ url: '/pages/orders/index?tab=paid&from=pay' }); } } catch (e) { if (isWechatAuthRequiredError(e)) {