diff --git a/components/GamePassPurchasePopup.vue b/components/GamePassPurchasePopup.vue index 64b5541..a46b9a7 100644 --- a/components/GamePassPurchasePopup.vue +++ b/components/GamePassPurchasePopup.vue @@ -263,8 +263,8 @@ async function fetchCoupons() { try { const userId = uni.getStorageSync('user_id') if (!userId) return - - const res = await getUserCoupons(userId, 1, 1, 100) // status=1 可用 + + const res = await getUserCoupons(userId, 0, 1, 20) // status=0 可用 let list = [] if (Array.isArray(res)) list = res else if (res && Array.isArray(res.coupons)) list = res.coupons @@ -273,14 +273,22 @@ async function fetchCoupons() { // 过滤出全场通用券 (scope_type = 1) 和金额券 (discount_type = 1) // 后端已限制次卡购买只能用全场券,这里前端也做一层过滤 + // 同时支持 balance_amount 和 remaining 字段 coupons.value = list.filter(c => { // 只显示 scope_type=1(全场通用)的优惠券 // 如果后端返回了 scope_type 字段 if (c.scope_type !== undefined && c.scope_type !== 1) return false - // 确保有余额 - if (!c.balance_amount || c.balance_amount <= 0) return false + // 确保有余额(兼容 balance_amount 和 remaining 字段) + const balance = c.balance_amount ?? c.remaining ?? c.amount + if (!balance || balance <= 0) return false return true - }) + }).map(c => ({ + // 统一转换为 balance_amount 字段供后续使用 + ...c, + balance_amount: c.balance_amount ?? c.remaining ?? c.amount + })) + + console.log('获取到的优惠券列表:', coupons.value) } catch (e) { console.error('获取优惠券失败:', e) coupons.value = []