From bf001a6cf63cacce1b40f7fcb965630d4f7bdbc1 Mon Sep 17 00:00:00 2001 From: lkddi Date: Sun, 1 Mar 2026 16:58:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E5=95=86=E5=BA=97?= =?UTF-8?q?=E5=91=A8=E5=8D=A1/=E9=81=93=E5=85=B7/=E6=88=92=E6=8C=87/?= =?UTF-8?q?=E9=92=93=E9=B1=BC=E5=8D=A1=E8=B4=AD=E4=B9=B0=E5=89=8D=E5=BC=B9?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E7=AA=97=E5=8F=A3=EF=BC=8C=E8=B4=AD=E4=B9=B0?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=90=8E=20Toast=20=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 点击购买按钮 → 弹出 chatDialog.confirm 确认窗口 「确认花费 🪙 X 金币购买【XXX】吗?」 - 确认后才调用 buyItem;取消则不执行 - 购买成功后:showShopToast「✅ XXX 购买成功!」 - 商店保持打开(不再 close)让用户看到分组标题徽章更新 --- resources/views/chat/partials/toolbar.blade.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/resources/views/chat/partials/toolbar.blade.php b/resources/views/chat/partials/toolbar.blade.php index 2efd378..a89a9b2 100644 --- a/resources/views/chat/partials/toolbar.blade.php +++ b/resources/views/chat/partials/toolbar.blade.php @@ -894,10 +894,15 @@ btn.innerHTML = `🪙 ${Number(item.price).toLocaleString()}`; btn.onclick = () => openGiftDialog(item); } else { - // 周卡、道具、戒指:直接确认购买 + // 周卡、道具、戒指、自动钓鱼卡:弹确认窗口再购买 btn.className = 'shop-btn'; btn.innerHTML = `🪙 ${Number(item.price).toLocaleString()}`; - btn.onclick = () => buyItem(item.id, item.name, item.price, 'all', ''); + btn.onclick = async () => { + const confirmMsg = + `确认花费 🪙 ${Number(item.price).toLocaleString()} 金币购买\n【${item.name}】吗?`; + const ok = await window.chatDialog.confirm(confirmMsg, '确认购买'); + if (ok) buyItem(item.id, item.name, item.price, 'all', ''); + }; } card.appendChild(btn); list.appendChild(card); @@ -962,13 +967,13 @@ if (data.jjb !== undefined) document.getElementById('shop-jjb').textContent = Number(data.jjb) .toLocaleString(); + // 购买成功提示 + showShopToast(`✅ ${name} 购买成功!`, true); // 播放本地特效(购买者自己必须也能看到) if (data.play_effect && window.EffectManager) { window.EffectManager.play(data.play_effect); } - // 关闭商店弹窗,让用户欣赏特效 - closeShopModal(); - // 延迟刷新商品数据 + // 延迟刷新商品数据(保持商店开着让用户看到状态更新) shopLoaded = false; setTimeout(() => { fetchShopData();