diff --git a/assets/js/credits.js b/assets/js/credits.js index 4eb8c216..1c0692f4 100644 --- a/assets/js/credits.js +++ b/assets/js/credits.js @@ -905,9 +905,10 @@ }); } - function initWithdraw() { - var modal = document.querySelector('[data-aksrt-withdraw-modal]'); - if (!modal) return; + function initWithdraw() { + var modal = document.querySelector('[data-aksrt-withdraw-modal]'); + if (!modal || modal.dataset.aksrtWithdrawInitialized === '1') return; + modal.dataset.aksrtWithdrawInitialized = '1'; var form = modal.querySelector('[data-aksrt-withdraw-form]'); var tip = modal.querySelector('[data-aksrt-withdraw-tip]'); var busy = false; @@ -1002,6 +1003,8 @@ }); } + window.AKSRTWithdrawInit = initWithdraw; + function bootAssets() { initSignin(); initSigninGoto(); diff --git a/assets/js/revenue-invite.js b/assets/js/revenue-invite.js index af53bfcb..daf851ce 100644 --- a/assets/js/revenue-invite.js +++ b/assets/js/revenue-invite.js @@ -163,97 +163,6 @@ }); }); } - - var withdrawModal = root.querySelector('[data-aksrt-commission-withdraw-modal]') || document.querySelector('[data-aksrt-commission-withdraw-modal]'); - var withdrawForm = withdrawModal && withdrawModal.querySelector('[data-aksrt-commission-withdraw-form]'); - var withdrawTip = withdrawModal && withdrawModal.querySelector('[data-aksrt-commission-withdraw-tip]'); - var withdrawSubmit = withdrawModal && withdrawModal.querySelector('[data-aksrt-commission-withdraw-submit]'); - var lastWithdrawTrigger = null; - var withdrawBusy = false; - function setWithdrawTip(text, error) { - if (!withdrawTip) return; - withdrawTip.textContent = text || ''; - withdrawTip.classList.toggle('is-error', !!error); - } - function setWithdrawBusy(isBusy) { - withdrawBusy = isBusy; - if (withdrawSubmit) withdrawSubmit.disabled = isBusy; - } - function getWithdrawFocusable() { - return Array.prototype.slice.call(withdrawModal.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')); - } - function closeWithdrawModal() { - if (!withdrawModal || withdrawModal.hidden) return; - withdrawModal.hidden = true; - document.body.classList.remove('uc-modal-open'); - if (lastWithdrawTrigger && typeof lastWithdrawTrigger.focus === 'function') { - lastWithdrawTrigger.focus(); - } - } - if (withdrawModal && withdrawForm) { - document.querySelectorAll('[data-aksrt-commission-withdraw-open]').forEach(function (button) { - button.addEventListener('click', function () { - lastWithdrawTrigger = button; - withdrawModal.hidden = false; - document.body.classList.add('uc-modal-open'); - window.requestAnimationFrame(function () { - var amountInput = withdrawForm.querySelector('[data-aksrt-commission-withdraw-amount]'); - if (amountInput) amountInput.focus(); - }); - }); - }); - withdrawModal.querySelectorAll('[data-aksrt-commission-withdraw-close]').forEach(function (button) { - button.addEventListener('click', closeWithdrawModal); - }); - document.addEventListener('keydown', function (event) { - if (withdrawModal.hidden) return; - if (event.key === 'Escape') { - event.preventDefault(); - closeWithdrawModal(); - return; - } - if (event.key !== 'Tab') return; - var focusable = getWithdrawFocusable(); - if (!focusable.length) return; - var first = focusable[0]; - var last = focusable[focusable.length - 1]; - if (event.shiftKey && document.activeElement === first) { - event.preventDefault(); - last.focus(); - } else if (!event.shiftKey && document.activeElement === last) { - event.preventDefault(); - first.focus(); - } - }); - withdrawForm.addEventListener('submit', function (event) { - event.preventDefault(); - if (withdrawBusy) return; - var values = new FormData(withdrawForm); - var amount = Number(values.get('amount') || 0); - var minimum = Number(root.getAttribute('data-min-amount') || 50); - var account = String(values.get('account_info') || '').trim(); - if (amount < minimum) { setWithdrawTip('提现金额未达到最低额度', true); return; } - if (!account) { setWithdrawTip('请填写收款账户信息', true); return; } - setWithdrawTip('正在提交...', false); - setWithdrawBusy(true); - fetch(rest + '/pay/balance/withdraw', { method: 'POST', credentials: 'same-origin', headers: { 'Content-Type': 'application/json', 'X-WP-Nonce': data.restNonce || data.nonce || '' }, body: JSON.stringify({ amount: amount, method: values.get('method') || 'alipay', account_info: account }) }).then(function (response) { - return response.json().catch(function () { return {}; }).then(function (json) { return { ok: response.ok, json: json }; }); - }).then(function (result) { - if (!result.ok || !result.json || !result.json.success) { setWithdrawBusy(false); setWithdrawTip((result.json && result.json.message) || '提现申请失败', true); return; } - setWithdrawTip('提现申请已提交', false); - if (result.json.data && typeof result.json.data.wallet_balance !== 'undefined') { - var balanceEl = root.querySelector('[data-aksrt-revenue-balance]'); - if (balanceEl) balanceEl.textContent = Number(result.json.data.wallet_balance).toFixed(2); - } - withdrawForm.reset(); - setWithdrawBusy(false); - closeWithdrawModal(); - reloadRevenuePanel().catch(function () { - if (typeof showToast === 'function') showToast('提现已提交,但收益数据刷新失败'); - }); - }).catch(function () { setWithdrawBusy(false); setWithdrawTip('网络错误,请稍后重试', true); }); - }); - } } function initRewardNavigation(root, rest, data) { @@ -278,6 +187,7 @@ current.replaceWith(next); window.history.pushState({}, '', targetUrl); window.AKSRTRevenueCenterInit(next); + if (typeof window.AKSRTWithdrawInit === 'function') window.AKSRTWithdrawInit(); }); }).catch(function () { if (typeof showToast === 'function') showToast('加载失败,请重试'); diff --git a/inc/helpers/user-center-renderers/credits-wallet.php b/inc/helpers/user-center-renderers/credits-wallet.php index e43d15da..59590781 100644 --- a/inc/helpers/user-center-renderers/credits-wallet.php +++ b/inc/helpers/user-center-renderers/credits-wallet.php @@ -237,37 +237,18 @@ $mark = (string) ($charge_view['currency_mark'] ?? '元'); - -