From 413f7557f159913b04197da45892ff11f39a18bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=96=B9=E6=88=90?= Date: Sun, 4 Jan 2026 15:30:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=BA=E5=95=86=E5=93=81=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E5=92=8C=E5=88=97=E8=A1=A8=E9=A1=B5=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=94=AE=E7=BD=84=E7=8A=B6=E6=80=81=E6=98=BE=E7=A4=BA=E4=B8=8E?= =?UTF-8?q?=E5=85=91=E6=8D=A2=E9=99=90=E5=88=B6=EF=BC=8C=E5=B9=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20API=20BASE=5FURL=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages-shop/shop/detail.vue | 29 +++++++++++++++++++++++++++-- pages/shop/index.vue | 21 ++++++++++++++++++++- utils/request.js | 2 +- 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/pages-shop/shop/detail.vue b/pages-shop/shop/detail.vue index 1f1a004..5ddb87f 100644 --- a/pages-shop/shop/detail.vue +++ b/pages-shop/shop/detail.vue @@ -24,7 +24,13 @@ - 立即兑换 + + {{ detail.stock === 0 ? '已售罄' : '立即兑换' }} + @@ -62,6 +68,16 @@ function onBuy() { async function onRedeem() { const p = detail.value if (!p || !p.id) return + + // 检查商品库存 + if (p.stock === 0) { + uni.showModal({ + title: '商品已售罄', + content: '该商品库存不足,请联系客服处理', + showCancel: false + }) + return + } const token = uni.getStorageSync('token') if (!token) { @@ -305,7 +321,16 @@ onLoad((opts) => { &:active { transform: scale(0.96); } } -.action-btn.redeem { background: linear-gradient(135deg, #FFB74D, #FF9800); box-shadow: 0 8rpx 20rpx rgba(255, 152, 0, 0.3); } +.action-btn.redeem { + background: linear-gradient(135deg, #FFB74D, #FF9800); + box-shadow: 0 8rpx 20rpx rgba(255, 152, 0, 0.3); + + &.disabled { + background: #ccc; + box-shadow: none; + color: #999; + } +} .action-btn.buy { background: linear-gradient(135deg, #FF6B6B, #FF3B30); box-shadow: 0 8rpx 20rpx rgba(255, 59, 48, 0.3); } @keyframes fadeInUp { diff --git a/pages/shop/index.vue b/pages/shop/index.vue index 843826f..d7239f6 100644 --- a/pages/shop/index.vue +++ b/pages/shop/index.vue @@ -93,7 +93,13 @@ {{ p.points || 0 }} 积分 - 兑换 + + {{ p.stock === 0 ? '已售罄' : '兑换' }} + @@ -366,6 +372,15 @@ function onProductTap(p) { } async function onRedeemTap(item) { + // 检查商品库存 + if (item.kind === 'product' && item.stock === 0) { + uni.showModal({ + title: '商品已售罄', + content: '该商品库存不足,请联系客服处理', + showCancel: false + }) + return + } const token = uni.getStorageSync('token') if (!token) { uni.showModal({ @@ -615,6 +630,10 @@ onUnmounted(() => { .redeem-btn { background: $gradient-brand; color: #fff; font-size: 22rpx; padding: 6rpx 18rpx; border-radius: 24rpx; font-weight: 600; + &.disabled { + background: #ccc; + color: #999; + } } /* 优惠券 (Ticket Style) */ diff --git a/utils/request.js b/utils/request.js index 476da26..d94781c 100644 --- a/utils/request.js +++ b/utils/request.js @@ -1,4 +1,4 @@ -const BASE_URL = 'http://127.0.0.1:9991' +const BASE_URL = 'https://mini-chat.1024tool.vip' let authModalShown = false