修复库存=0误转为-1的bug + 盲盒显示??及随机消费语录

This commit is contained in:
ypsdf1
2026-07-16 16:48:31 +08:00
parent a8303ba772
commit e2808276c0
2 changed files with 23 additions and 3 deletions
+3 -1
View File
@@ -3616,7 +3616,9 @@ async function editShopConfig(id) {
async function saveShopConfig() {
const id = document.getElementById('scfId').value;
const name = document.getElementById('scfName').value.trim();
const stock = parseInt(document.getElementById('scfStock').value) || -1;
// ★ 修复:库存=0不能写成-1。空值才默认-1(无限),0是合法售罄值
const stockRaw = document.getElementById('scfStock').value;
const stock = stockRaw === '' ? -1 : parseInt(stockRaw, 10);
const offer = document.getElementById('scfOffer').value.trim();
const expire = document.getElementById('scfExpire').value.trim();
const price = parseFloat(document.getElementById('scfPrice').value) || 0;
+20 -2
View File
@@ -1184,6 +1184,17 @@ if ($currentVersion !== $BUILD_VERSION) {
// 加载商店商品列表
async function loadShopProducts() {
const container = document.getElementById('shopProductsContainer');
// ★ 盲盒随机语录(带动消费情绪)
const blindBoxQuotes = [
'🎲 手气未知,欧皇可能就是你!',
'✨ 下一发就是传说级债券!',
'🔥 盲盒刺激,开箱见惊喜!',
'💎 运气爆棚,开出大额债券不是梦!',
'🍀 天选之人,?? 藏着大宝藏!',
'🎁 未知才有趣,下单揭晓答案!',
'⚡ 搏一搏,债券多一摞!',
'🌟 你的专属幸运数字正在等你!'
];
try {
const res = await api('pay.php', {action: 'get_shop_products'});
if (res.success && res.data && res.data.products) {
@@ -1197,9 +1208,14 @@ if ($currentVersion !== $BUILD_VERSION) {
let html = '';
products.forEach((product, index) => {
const isSelected = index === 0; // 默认选中第一个
const isBlindBox = product.bond_min !== product.bond_max; // 盲盒:范围格式
const offerText = product.temporary_offer ? `<div style="font-size:12px;color:var(--yellow);margin-top:4px">🎁 ${product.temporary_offer}${product.expire_display ? ' (有效期: ' + product.expire_display + ')' : ''}</div>` : '';
const stockText = product.stock === -1 ? '无限库存' : (product.stock > 0 ? `库存: ${product.stock}` : '售罄');
const stockColor = product.stock === -1 ? 'var(--green)' : (product.stock > 0 ? 'var(--dim)' : 'var(--red)');
// ★ 盲盒不显示具体金额,用 ?? 代替
const bondDisplay = isBlindBox ? '🎲 ?? 债券' : `${product.bond_min} 债券`;
// ★ 盲盒随机语录
const quoteText = isBlindBox ? `<div style="font-size:12px;color:var(--accent);margin-top:6px;font-style:italic">${blindBoxQuotes[Math.floor(Math.random() * blindBoxQuotes.length)]}</div>` : '';
html += `
<div class="shop-product-card" data-product-id="${product.id}" data-price="${product.price}" data-bond-min="${product.bond_min}" data-bond-max="${product.bond_max}" onclick="selectShopProduct(this)" style="border:1px solid ${isSelected ? 'var(--accent)' : 'var(--border)'};border-radius:14px;padding:16px;margin-bottom:12px;background:${isSelected ? 'linear-gradient(135deg,rgba(63,185,80,0.08),rgba(88,166,255,0.06))' : 'transparent'};cursor:pointer;transition:all 0.2s ease">
@@ -1209,9 +1225,10 @@ if ($currentVersion !== $BUILD_VERSION) {
</div>
<div style="display:flex;justify-content:space-between;align-items:baseline">
<div><div style="font-size:28px;font-weight:800;color:var(--accent)">¥${product.price}</div><div style="font-size:12px;color:var(--dim)">支付金额</div></div>
<div style="font-size:22px;color:var(--green)">→ ${product.bond_min === product.bond_max ? product.bond_min + ' 债券' : product.bond_min + '-' + product.bond_max + ' 债券'}</div>
<div style="font-size:22px;color:var(--green)">→ ${bondDisplay}</div>
</div>
${offerText}
${quoteText}
</div>
`;
});
@@ -1247,7 +1264,8 @@ if ($currentVersion !== $BUILD_VERSION) {
const price = el.dataset.price;
const bondMin = el.dataset.bondMin;
const bondMax = el.dataset.bondMax;
const bondText = bondMin === bondMax ? bondMin + ' 债券' : bondMin + '-' + bondMax + ' 债券';
// ★ 盲盒不显示具体金额,用 ?? 代替
const bondText = bondMin === bondMax ? bondMin + ' 债券' : '🎲 ?? 债券';
btn.style.display = 'block';
btn.textContent = `支付宝支付 ¥${price} → ${bondText}`;
btn.dataset.productId = el.dataset.productId;