fix(user-center): close creator income review gaps

This commit is contained in:
2026-08-07 13:16:10 +08:00
parent c16add0807
commit cfb0a1368c
6 changed files with 56 additions and 62 deletions
+22 -6
View File
@@ -70,17 +70,17 @@
closeDrawer();
}
function loadPanel(name) {
function loadPanel(name, forceLoad, queryParams) {
if (!panels[name]) return Promise.reject(new Error('panel-not-found'));
var target = panels[name].panel;
if (target.dataset.panelLoaded === 'true') return Promise.resolve();
if (!forceLoad && target.dataset.panelLoaded === 'true') return Promise.resolve();
if (target._aksrtPanelRequest) return target._aksrtPanelRequest;
var restUrl = (window.aksrtData && (window.aksrtData.restUrl || window.aksrtData.apiUrl)) || cfg.restUrl || '';
if (!restUrl) return Promise.reject(new Error('rest-unavailable'));
target.classList.add('is-loading');
var url = restUrl.replace(/\/$/, '') + '/user-center/panel/' + encodeURIComponent(name);
if (name === 'creator') {
var params = new URLSearchParams(window.location.search);
var params = queryParams || new URLSearchParams(window.location.search);
['income_page'].forEach(function(key) {
if (params.get(key)) url += (url.indexOf('?') === -1 ? '?' : '&') + key + '=' + encodeURIComponent(params.get(key));
});
@@ -101,9 +101,9 @@
return target._aksrtPanelRequest;
}
function activate(name, updateHistory) {
function activate(name, updateHistory, forceLoad, queryParams) {
if (!panels[name]) name = defaultTab;
return loadPanel(name).then(function() {
return loadPanel(name, forceLoad, queryParams).then(function() {
switchTo(name);
if (updateHistory) updateUrl(name);
if (typeof window.AKSRTRevenueCenterInit === 'function') window.AKSRTRevenueCenterInit(panels[name].panel);
@@ -138,7 +138,23 @@
activate(this.getAttribute('data-tab'), true);
});
});
window.addEventListener('popstate', function() { activate(tabFromUrl(), false); });
var creatorPanel = panels.creator ? panels.creator.panel : null;
if (creatorPanel) {
creatorPanel.addEventListener('click', function(e) {
var link = e.target && e.target.closest ? e.target.closest('.creator-income__pagination a') : null;
if (!link || e.defaultPrevented || e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;
e.preventDefault();
var pageUrl = new URL(link.href, window.location.href);
loadPanel('creator', true, pageUrl.searchParams).then(function() {
switchTo('creator');
if (window.history.pushState) window.history.pushState({}, '', pageUrl.toString());
if (typeof window.AKSRTRevenueCenterInit === 'function') window.AKSRTRevenueCenterInit(creatorPanel);
}).catch(function() {
if (typeof showToast === 'function') showToast(i18n.networkError || '加载失败,请重试');
});
});
}
window.addEventListener('popstate', function() { activate(tabFromUrl(), false, true); });
if (drawerTrigger) drawerTrigger.addEventListener('click', openDrawer);
if (drawerOverlay) drawerOverlay.addEventListener('click', closeDrawer);
activate(tabFromUrl(), false);