fix(user-center): close creator income review gaps
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user