feat(users): normalize center routes and withdrawal limits

This commit is contained in:
2026-08-12 19:44:47 +08:00
parent 9004f7093f
commit dacd0095bf
24 changed files with 326 additions and 174 deletions
+33 -5
View File
@@ -930,11 +930,27 @@
var amountEl = form.querySelector('[data-aksrt-withdraw-amount]');
var methodEl = form.querySelector('[data-aksrt-withdraw-method]');
var accountEl = form.querySelector('[data-aksrt-withdraw-account]');
var amount = amountEl ? parseFloat(amountEl.value || '0') : 0;
var rawAmount = amountEl ? String(amountEl.value || '').trim() : '';
var amount = rawAmount ? Number(rawAmount) : 0;
var minAmount = amountEl ? Number(amountEl.getAttribute('data-withdraw-min') || '0') : 0;
var remainingAmount = amountEl ? Number(amountEl.getAttribute('data-withdraw-remaining-amount') || '0') : 0;
var remainingCount = amountEl ? Number(amountEl.getAttribute('data-withdraw-remaining-count') || '0') : 0;
var method = methodEl ? methodEl.value : 'alipay';
var account = accountEl ? String(accountEl.value || '').trim() : '';
if (!(amount > 0)) {
setTip('请输入提现金额', true);
if (!Number.isInteger(amount) || !(amount > 0)) {
setTip('提现金额必须为正整数', true);
return;
}
if (amount < minAmount) {
setTip('提现金额低于最低提现门槛', true);
return;
}
if (remainingCount <= 0) {
setTip('当日提现次数已用尽', true);
return;
}
if (amount > remainingAmount) {
setTip('本次提现后将超出单日提现总额上限', true);
return;
}
if (!account) {
@@ -953,8 +969,20 @@
return;
}
var data = (r.json && r.json.data) ? r.json.data : r.json;
setTip((data && data.message) || '申请已提交,正在刷新…');
window.location.reload();
setTip((data && data.message) || '申请已提交');
closeModal(modal);
var panel = modal.closest ? modal.closest('.dashboard-panel') : null;
panel = panel || document.getElementById('panel-credits');
var rest = (window.aksrtData && (window.aksrtData.restUrl || window.aksrtData.apiUrl)) || (window.aksrtUserCenter && window.aksrtUserCenter.restUrl) || '';
if (panel && rest) {
fetch(rest.replace(/\/$/, '') + '/user-center/panel/credits', { credentials: 'same-origin', headers: { 'X-WP-Nonce': (window.aksrtData && (window.aksrtData.restNonce || window.aksrtData.nonce)) || '' } })
.then(function (response) { return response.json(); })
.then(function (payload) {
if (!payload || !payload.success || !payload.data || typeof payload.data.html !== 'string') return;
panel.innerHTML = payload.data.html;
if (window.AksrtFrontend && typeof window.AksrtFrontend.rehydrate === 'function') window.AksrtFrontend.rehydrate(panel, 'ajax');
});
}
}).catch(function () {
busy = false;
setTip('网络错误,请重试', true);
+6 -5
View File
@@ -124,16 +124,17 @@
}
function tabFromUrl() {
var m = window.location.search.match(/[?&]tab=([^&]+)/);
var name = m ? decodeURIComponent(m[1]) : (cfg.activeTab || defaultTab);
var pathParts = window.location.pathname.replace(/\/+$/, '').split('/');
var pathTab = pathParts.length > 2 && pathParts[pathParts.length - 2] === 'user' ? pathParts[pathParts.length - 1] : '';
var name = pathTab || (cfg.activeTab || defaultTab);
if (name === 'balance') name = 'credits';
return tabAliases[name] || name;
}
function updateUrl(name) {
if (!window.history.replaceState) return;
var u = new URL(window.location);
if (name === defaultTab) u.searchParams.delete('tab');
else u.searchParams.set('tab', name);
var pathTab = name === 'credits' ? 'balance' : name;
var u = new URL('/user/' + pathTab + '/', window.location.origin);
window.history.replaceState({}, '', u);
}