feat(移动端): 确认页自动用券回显与优惠券模块显隐加固

computed 响应回传 coupon_id/coupon_title,引擎据此回显自动选中的优惠券;
优惠券模块显隐改为 features.coupon 或券标题非空双条件,confirm 请求带时间戳
防缓存,避免首次进入时模块隐藏而金额已含优惠的不一致。
This commit is contained in:
吴昊天 2026-10-10 16:15:11 +08:00
parent 9d02e0b5b1
commit 8022bd9864
3 changed files with 9 additions and 3 deletions

View File

@ -35,7 +35,8 @@ export function getCenterOrderDetail(orderNo) {
* @param {Object} params { product_id, sku_unique, product_type, num }
*/
export function getCenterOrderConfirm(params) {
return request.get('center/order/confirm', params);
// 携带时间戳避免浏览器缓存旧的确认数据(缓存会导致优惠券模块显隐/券列表陈旧)
return request.get('center/order/confirm', { ...params, _t: Date.now() });
}
/**

View File

@ -4,8 +4,8 @@
-->
<template>
<view class="wrapper">
<!-- 优惠券 -->
<view class="item acea-row row-between-wrapper" @tap="onCouponTap" v-if="features.coupon">
<!-- 优惠券(features.coupon 为后端开关;couponTitle 非空表示后端已自动选券,开关数据陈旧时也必须展示) -->
<view class="item acea-row row-between-wrapper" @tap="onCouponTap" v-if="features.coupon || couponTitle">
<view>{{ $t('优惠券') }}</view>
<view class="discount">
{{ couponTitle || $t('请选择') }}

View File

@ -603,6 +603,11 @@ async function computedPrice() {
memberPrice.value = data.member_price ?? data.priceGroup?.memberPrice ?? memberPrice.value;
postageDiscount.value = data.storePostageDiscount ?? data.postage_discount ?? data.priceGroup?.postageDiscount ?? postageDiscount.value;
couponPrice.value = data.coupon_price ?? 0;
// 后端自动选券回显:未手动选券时展示后端自动领取并使用的优惠券
if (!couponId.value && data.coupon_id > 0) {
couponId.value = data.coupon_id;
couponTitle.value = data.coupon_title || i18n.global.t('请选择');
}
integralPrice.value = data.deduction_price ?? 0;
surplusIntegral.value = data.SurplusIntegral ?? usableIntegral.value;
priceReady.value = true;