Files
wordpress-theme-aksrt/assets/js/credits-withdraw-history.js
T
kate522andClaude Opus 5 35bb96e82f refactor: rename the theme brand and every identifier from AKSRT to Jio
Full-project rename. `git grep -i aksrt` is now empty apart from the
DBMigrator 3.3.0 changelog note that documents the rename itself.

Code identifiers
- PHP namespace AKSRT\ -> Jio\ (composer PSR-4 + 378 declarations)
- global constants AKSRT_* -> JIO_* (VERSION/DIR/URI, PAY_TYPE_*, CAPTCHA_*)
- procedural functions, hooks, options, meta keys, table names,
  cookies, query vars, ajax actions and nonces: aksrt_ -> jio_
- text domain aksrt -> jio; Theme Name -> Jio
- JS globals: aksrtData/aksrtAdminData/... -> jioData/jioAdminData/...,
  window.AKSRTCaptcha & friends -> window.JioCaptcha, Aksrt* -> Jio*
- Vue components Aks*.vue -> Jio*.vue (15 files renamed + imports)
- CSS classes/data-attrs/custom properties: aksrt- -> jio-
- REST namespace aksrt/v1 -> jio/v1 (incl. payment gateway callbacks)

Storage layer
- DB tables {prefix}aksrt_* -> {prefix}jio_*; SCHEMA_VERSION 3.2.0 -> 3.3.0
  so dbDelta creates the new names on install
- widget id_base aksrt_widget_* -> jio_widget_*
- uninstall.php drop list rebuilt from the actual migrator tables
  (dropped 3 stale entries, added the 17 missing ones)

Removed
- hardcoded https://api.aksrt.com/version.json default update endpoint;
  get_endpoint() now reads the 「更新端点」 setting and do_check() no-ops
  when it is empty

Files renamed: inc/helpers/aksrt-*.php -> jio-*.php (54),
assets/admin/src/components/form/Aks*.vue -> Jio*.vue (15).
Build artifacts regenerated: assets/css/build, assets/js/runtime,
assets/admin/build.

Verified: audit-psr4-paths errors=0, audit-admin-contracts errors=0
(warnings=56, unchanged baseline), 813/813 widget-system tests,
44/44 phpunit, php -l clean across all PHP.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-11-01 20:05:04 +08:00

164 lines
6.1 KiB
JavaScript

/**
* Jio withdraw history modal (split from credits.js).
*
* @package Jio
*/
(function () {
"use strict";
function initWithdrawHistory() {
var modal = document.querySelector('[data-jio-withdraw-history-modal]');
if (!modal || modal.dataset.jioWithdrawHistoryInitialized === '1') return;
modal.dataset.jioWithdrawHistoryInitialized = '1';
var list = modal.querySelector('[data-jio-withdraw-history-list]');
var pagination = modal.querySelector('[data-jio-withdraw-history-pagination]');
var statusLabels = {
pending: '待处理',
processing: '处理中',
completed: '已完成',
rejected: '已拒绝'
};
var currentPage = 1;
var loading = false;
function text(value) {
return value === null || value === undefined ? '' : String(value);
}
function appendText(parent, value, className) {
var node = document.createElement('span');
if (className) node.className = className;
node.textContent = text(value);
parent.appendChild(node);
return node;
}
function formatGrossAmount(value) {
return text(value).replace(/\.00$/, '');
}
function formatNetAmount(value) {
return text(value);
}
function renderItems(items) {
if (!list) return;
list.textContent = '';
if (!Array.isArray(items) || !items.length) {
var empty = document.createElement('div');
empty.className = 'uc-transactions__empty';
var emptyText = document.createElement('p');
emptyText.textContent = '暂无提现记录';
empty.appendChild(emptyText);
list.appendChild(empty);
return;
}
items.forEach(function (item) {
var status = text(item && item.status).toLowerCase();
var row = document.createElement('div');
row.className = 'uc-withdraw-history__item';
var badge = appendText(row, statusLabels[status] || status, 'badg badg-sm uc-withdraw-history__status');
badge.classList.add(status === 'rejected' ? 'c-red' : (status === 'completed' ? 'c-green' : 'c-blue'));
var gross = text(item && (item.gross_amount || item.amount));
var net = text(item && item.amount);
var amount = document.createElement('span');
amount.className = 'uc-withdraw-history__amount em12';
amount.appendChild(document.createTextNode(formatGrossAmount(gross)));
if (net !== '') {
var netText = document.createElement('span');
netText.className = 'uc-withdraw-history__net';
netText.textContent = '(实际到账:' + formatNetAmount(net) + '元)';
amount.appendChild(netText);
}
row.appendChild(amount);
var number = document.createElement('span');
number.className = 'uc-withdraw-history__number muted-2-color em09';
var numberLabel = document.createElement('span');
numberLabel.textContent = '订单号:';
number.appendChild(numberLabel);
var code = document.createElement('code');
code.textContent = text(item && item.withdrawal_number);
number.appendChild(code);
row.appendChild(number);
appendText(row, text(item && item.created_at), 'uc-withdraw-history__meta muted-2-color em09');
list.appendChild(row);
});
}
function renderPagination(page, maxPages) {
if (!pagination) return;
pagination.textContent = '';
if (maxPages <= 1) return;
function addButton(label, target, disabled, current) {
var button = document.createElement('button');
button.type = 'button';
button.className = 'uc-withdraw-history__page' + (current ? ' is-current' : '');
button.textContent = label;
button.disabled = !!disabled;
if (current) button.setAttribute('aria-current', 'page');
button.dataset.jioWithdrawHistoryPage = String(target);
pagination.appendChild(button);
}
addButton('上一页', page - 1, page <= 1, false);
for (var index = 1; index <= maxPages; index += 1) addButton(String(index), index, false, index === page);
addButton('下一页', page + 1, page >= maxPages, false);
}
function loadPage(page) {
if (loading || !list) return;
loading = true;
list.textContent = '加载中…';
var rest = (window.jioData && (window.jioData.restUrl || window.jioData.apiUrl)) || '';
if (!rest) {
list.textContent = '记录加载失败,请重试';
loading = false;
return;
}
var url = rest.replace(/\/$/, '') + '/earnings/withdrawals?page=' + encodeURIComponent(Math.max(1, page)) + '&per_page=10';
fetch(url, {
credentials: 'same-origin',
headers: { 'X-WP-Nonce': (window.jioData && (window.jioData.restNonce || window.jioData.nonce)) || '' }
}).then(function (response) {
return response.json().then(function (payload) {
if (!response.ok || !payload || !Array.isArray(payload.items)) throw new Error('withdraw-history-load-failed');
currentPage = Math.max(1, parseInt(payload.page, 10) || 1);
var maxPages = Math.max(1, parseInt(payload.max_pages, 10) || 1);
renderItems(payload.items);
renderPagination(currentPage, maxPages);
});
}).catch(function () {
list.textContent = '记录加载失败,请重试';
if (pagination) pagination.textContent = '';
}).finally(function () {
loading = false;
});
}
function open() {
modal.hidden = false;
document.body.classList.add('uc-modal-open');
loadPage(1);
}
function close() {
modal.hidden = true;
document.body.classList.remove('uc-modal-open');
}
document.querySelectorAll('[data-jio-withdraw-history-open]').forEach(function (btn) {
btn.addEventListener('click', function (e) { e.preventDefault(); open(); });
});
modal.querySelectorAll('[data-jio-withdraw-history-close]').forEach(function (btn) {
btn.addEventListener('click', function (e) { e.preventDefault(); close(); });
});
if (pagination) {
pagination.addEventListener('click', function (e) {
var button = e.target.closest('[data-jio-withdraw-history-page]');
if (!button || button.disabled) return;
e.preventDefault();
loadPage(parseInt(button.dataset.jioWithdrawHistoryPage || '1', 10) || 1);
});
}
}
jQuery(document).off("auto_fun.jio-withdraw-history").on("auto_fun.jio-withdraw-history", initWithdrawHistory);
})();