/** * AKSRT Revenue Center Frontend * * @package AKSRT */ (function () { 'use strict'; var page = document.querySelector('[data-aksrt-revenue-page]'); var data = window.aksrtData || {}; if (!page || !data) return; var rest = data.restUrl || data.apiUrl || ((data.siteUrl || '').replace(/\/$/, '') + '/wp-json/aksrt/v1'); if (!rest) return; if (window.location.protocol === 'https:' && rest.substring(0, 5) === 'http:') { rest = 'https:' + rest.substring(5); } rest = rest.replace(/\/?$/, ''); var form = page.querySelector('[data-aksrt-withdraw-form]'); var message = page.querySelector('[data-aksrt-withdraw-msg]'); var balance = page.querySelector('[data-aksrt-revenue-balance]'); var list = page.querySelector('[data-aksrt-withdraw-list]'); if (!form) return; function setMessage(text, error) { if (!message) return; message.hidden = false; message.textContent = text; message.classList.toggle('is-error', !!error); } function request(payload) { return fetch(rest + '/earnings/withdrawals', { method: 'POST', credentials: 'same-origin', headers: { 'Content-Type': 'application/json', 'X-WP-Nonce': data.restNonce || data.nonce || '' }, body: JSON.stringify(payload) }).then(function (response) { return response.json().catch(function () { return { message: '服务器返回了非 JSON 响应' }; }).then(function (json) { return { ok: response.ok, json: json }; }); }); } form.addEventListener('submit', function (event) { event.preventDefault(); var values = new FormData(form); var amount = Number(values.get('amount') || 0); var method = String(values.get('method') || 'alipay'); var account = String(values.get('account') || values.get('account_info') || '').trim(); var minimum = Number(page.getAttribute('data-min-amount') || 50); if (amount < minimum) { setMessage('最低提现金额为 ' + minimum, true); return; } if (!account) { setMessage('请填写收款账户信息', true); return; } var button = form.querySelector('button[type="submit"]'); if (button) { button.disabled = true; button.textContent = '提交中…'; } request({ amount: amount, method: method, account: account }).then(function (result) { if (button) { button.disabled = false; button.textContent = '提交提现申请'; } if (!result.ok || !result.json || !result.json.success) { setMessage((result.json && result.json.message) || '提现失败,请稍后重试。', true); return; } var response = result.json.data || {}; setMessage(response.message || '提现申请已提交。', false); if (balance && typeof response.wallet_balance !== 'undefined') { balance.textContent = '¥' + Number(response.wallet_balance).toFixed(2); } if (list) { var item = document.createElement('div'); item.className = 'aksrt-revenue-page__item'; var main = document.createElement('div'); var amountEl = document.createElement('strong'); amountEl.textContent = '¥' + Number(response.amount || amount).toFixed(2); var methodEl = document.createElement('span'); methodEl.textContent = method; main.appendChild(amountEl); main.appendChild(methodEl); var state = document.createElement('div'); var pending = document.createElement('span'); pending.textContent = 'pending'; var time = document.createElement('time'); time.textContent = 'just now'; state.appendChild(pending); state.appendChild(time); item.appendChild(main); item.appendChild(state); list.insertBefore(item, list.firstChild); } form.reset(); }).catch(function () { if (button) { button.disabled = false; button.textContent = '提交提现申请'; } setMessage('网络错误,请稍后重试。', true); }); }); })();