diff --git a/public/js/admin.js b/public/js/admin.js index 85eb81e..6ef77e8 100644 --- a/public/js/admin.js +++ b/public/js/admin.js @@ -12,6 +12,31 @@ return (root || document).querySelector(sel); } + function formatMoney(v) { + var n = Number(v || 0); + if (!isFinite(n)) { + n = 0; + } + // 统一口径:两位小数 + 千分位 + try { + return n.toLocaleString('zh-CN', { minimumFractionDigits: 2, maximumFractionDigits: 2 }); + } catch (e) { + return n.toFixed(2); + } + } + + function formatPct(ratio, digits) { + var d = (digits == null) ? 1 : Number(digits); + if (!isFinite(d) || d < 0) { + d = 1; + } + var r = Number(ratio || 0); + if (!isFinite(r)) { + r = 0; + } + return (r * 100).toFixed(d); + } + // 续费缺订阅治理:绑定成功后自动滚动到顶部提示区(让运营立刻看到 success/warning/error) // 说明:由后端 redirect url 追加 attached_subscription=1 触发。 if (window.location && window.location.search && window.location.search.indexOf('attached_subscription=1') >= 0) { @@ -120,7 +145,7 @@ var date = (p && p.date) ? String(p.date) : ''; var count = (p && p.count != null) ? String(p.count) : '0'; - bar.title = date + ':' + count + ' 单,已付 ¥' + paid.toFixed(2); + bar.title = date + ':' + count + ' 单,已付 ¥' + formatMoney(paid); el.appendChild(bar); }); @@ -183,9 +208,9 @@ var val = document.createElement('div'); val.className = 'adm-mini-rank-value'; - val.textContent = '¥' + paid.toFixed(2); + val.textContent = '¥' + formatMoney(paid); - row.title = 'Top' + (idx + 1) + ':已付 ¥' + paid.toFixed(2) + ',订单数 ' + String(p && p.count != null ? p.count : 0); + row.title = 'Top' + (idx + 1) + ':已付 ¥' + formatMoney(paid) + ',订单数 ' + String(p && p.count != null ? p.count : 0); row.appendChild(name); row.appendChild(wrap); @@ -246,9 +271,9 @@ var val = document.createElement('div'); val.className = 'adm-mini-share-value'; - val.textContent = (ratio * 100).toFixed(1) + '%'; + val.textContent = formatPct(ratio, 1) + '%'; - row.title = 'Top' + (idx + 1) + ':' + cnt + ' 单,占比 ' + (ratio * 100).toFixed(1) + '%'; + row.title = 'Top' + (idx + 1) + ':' + cnt + ' 单,占比 ' + formatPct(ratio, 1) + '%'; row.appendChild(name); row.appendChild(wrap);