用户中心减层:收敛本人入口与 panel 契约
This commit is contained in:
1 parent
31c95c3bc6
commit
dec33ea15a
33 files changed
+1585
-1488
No files matched your search
@@ -401,7 +401,8 @@
|
||||
padding-bottom: 12px;
|
||||
border-bottom: 2px solid var(--color-line-soft, rgba(0,0,0,0.06));
|
||||
}
|
||||
.dashboard--public .dashboard-tabs button {
|
||||
.dashboard--public .dashboard-tabs button,
|
||||
.dashboard--public .dashboard-tabs a {
|
||||
padding: 8px 16px;
|
||||
border-radius: 8px;
|
||||
font-size: 14px;
|
||||
@@ -413,16 +414,19 @@
|
||||
transition: all 0.2s ease;
|
||||
position: relative;
|
||||
}
|
||||
.dashboard--public .dashboard-tabs button:hover {
|
||||
.dashboard--public .dashboard-tabs button:hover,
|
||||
.dashboard--public .dashboard-tabs a:hover {
|
||||
color: var(--color-ink);
|
||||
background: var(--surface-2);
|
||||
}
|
||||
.dashboard--public .dashboard-tabs button.is-active {
|
||||
.dashboard--public .dashboard-tabs button.is-active,
|
||||
.dashboard--public .dashboard-tabs a.is-active {
|
||||
color: var(--color-primary);
|
||||
background: var(--color-primary-soft);
|
||||
font-weight: 600;
|
||||
}
|
||||
.dashboard--public .dashboard-tabs button.is-active::after {
|
||||
.dashboard--public .dashboard-tabs button.is-active::after,
|
||||
.dashboard--public .dashboard-tabs a.is-active::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: -14px;
|
||||
@@ -433,7 +437,8 @@
|
||||
background: var(--color-primary);
|
||||
border-radius: 1px;
|
||||
}
|
||||
.dashboard--public .dashboard-tabs button.is-active .dashboard-tabs__count {
|
||||
.dashboard--public .dashboard-tabs button.is-active .dashboard-tabs__count,
|
||||
.dashboard--public .dashboard-tabs a.is-active .dashboard-tabs__count {
|
||||
color: var(--color-primary);
|
||||
background: var(--color-primary-soft);
|
||||
}
|
||||
@@ -565,3 +570,43 @@
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
||||
/* 用户中心复用全站 content-layout,避免嵌套网格与双卡片负边距抵消。 */
|
||||
.aksrt-profile__layout {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.aksrt-profile__aside.page-owned {
|
||||
position: static;
|
||||
}
|
||||
@media (min-width: 992px) {
|
||||
.aksrt-profile__aside.page-owned {
|
||||
position: sticky;
|
||||
}
|
||||
}
|
||||
.aksrt-user-center__notice {
|
||||
margin-bottom: 16px;
|
||||
padding: 12px 14px;
|
||||
border-radius: 8px;
|
||||
color: #166534;
|
||||
background: rgba(34, 197, 94, 0.12);
|
||||
}
|
||||
.aksrt-user-center__notice--error {
|
||||
color: var(--color-error, #b91c1c);
|
||||
background: rgba(239, 68, 68, 0.12);
|
||||
}
|
||||
.aksrt-profile .uc-mobile-tabs a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 8px 14px;
|
||||
border-radius: 8px;
|
||||
color: var(--color-ink-3);
|
||||
text-decoration: none;
|
||||
}
|
||||
.aksrt-profile .uc-mobile-tabs a.is-active {
|
||||
color: var(--color-primary);
|
||||
background: var(--color-primary-soft);
|
||||
}
|
||||
.aksrt-profile .dashboard-panel > .widget-card:first-child,
|
||||
.aksrt-profile .profile-form > .widget-card:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
@@ -17,16 +17,6 @@
|
||||
padding: 0 0 40px;
|
||||
}
|
||||
|
||||
/* ==================== 两栏布局 — 对齐 zibll: 311px 侧栏 ==================== */
|
||||
.uc-layout {
|
||||
display: grid;
|
||||
grid-template-columns: 311px 1fr;
|
||||
gap: 20px;
|
||||
align-items: start;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.uc-header__actions {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
@@ -82,10 +82,6 @@
|
||||
|
||||
/* ==================== 响应式 ==================== */
|
||||
@media (max-width: 767px) {
|
||||
.uc-layout {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.uc-sidebar {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
var settingsNonce = cfg.settingsNonce || '';
|
||||
var userId = cfg.userId || 0;
|
||||
var i18n = cfg.i18n || {};
|
||||
var tabAliases = cfg.tabAliases || {};
|
||||
var tabUrls = cfg.tabUrls || {};
|
||||
|
||||
/* ==================== Dashboard 导航 ==================== */
|
||||
function initDashboardNavigation() {
|
||||
@@ -54,6 +56,10 @@
|
||||
|
||||
function switchTo(name) {
|
||||
if (!panels[name]) name = defaultTab;
|
||||
if (panels[name].panel.dataset.panelLoaded === 'false') {
|
||||
window.location.assign(tabUrls[name] || panels[name].panel.dataset.tabUrl || ('?tab=' + encodeURIComponent(name)));
|
||||
return;
|
||||
}
|
||||
|
||||
Object.keys(panels).forEach(function(key) {
|
||||
var active = key === name;
|
||||
@@ -72,10 +78,8 @@
|
||||
|
||||
function tabFromUrl() {
|
||||
var m = window.location.search.match(/[?&]tab=([^&]+)/);
|
||||
var name = m ? decodeURIComponent(m[1]) : defaultTab;
|
||||
if (name === 'signin') return 'credits';
|
||||
if (name === 'invite') return 'settings';
|
||||
return name;
|
||||
var name = m ? decodeURIComponent(m[1]) : (cfg.activeTab || defaultTab);
|
||||
return tabAliases[name] || name;
|
||||
}
|
||||
|
||||
function updateUrl(name) {
|
||||
@@ -90,16 +94,20 @@
|
||||
}
|
||||
|
||||
tabs.forEach(function(tab) {
|
||||
tab.addEventListener('click', function() {
|
||||
tab.addEventListener('click', function(e) {
|
||||
var name = this.getAttribute('data-tab');
|
||||
if (!panels[name] || panels[name].panel.dataset.panelLoaded === 'false') return;
|
||||
e.preventDefault();
|
||||
switchTo(name);
|
||||
updateUrl(name);
|
||||
});
|
||||
});
|
||||
|
||||
sidebarBtns.forEach(function(btn) {
|
||||
btn.addEventListener('click', function() {
|
||||
btn.addEventListener('click', function(e) {
|
||||
var name = this.getAttribute('data-tab');
|
||||
if (!panels[name] || panels[name].panel.dataset.panelLoaded === 'false') return;
|
||||
e.preventDefault();
|
||||
switchTo(name);
|
||||
updateUrl(name);
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user