fix(settings): restore theme toggle on OKX settings page

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-07 12:14:46 +08:00
parent 68d8a97db5
commit b29c54f126
7 changed files with 64 additions and 19 deletions
+25
View File
@@ -238,16 +238,37 @@
tabBooted.clear(); tabBooted.clear();
} }
function syncShellChrome(tab) {
const onSettings = tab === "settings";
document.querySelectorAll(".instance-header-panel, .instance-top-bar").forEach((el) => {
el.hidden = onSettings;
});
}
function initPaneThemeToggle(tab) {
if (tab !== "settings") return;
const pane = tabPanes.get(tab);
if (!pane || !global.InstanceTheme) return;
if (typeof global.InstanceTheme.initToggleUI === "function") {
global.InstanceTheme.initToggleUI(pane);
}
if (typeof global.InstanceTheme.syncToggleUI === "function") {
global.InstanceTheme.syncToggleUI(pane);
}
}
function activateTab(tab, opts) { function activateTab(tab, opts) {
const options = opts || {}; const options = opts || {};
const revisit = !!options.revisit; const revisit = !!options.revisit;
const firstBoot = !tabBooted.has(tab); const firstBoot = !tabBooted.has(tab);
syncShellChrome(tab);
showPane(tab); showPane(tab);
setNavActive(tab); setNavActive(tab);
if (!options.skipUrl) syncUrl(tab, !!options.replace); if (!options.skipUrl) syncUrl(tab, !!options.replace);
notifyParentTabSwitch(tab); notifyParentTabSwitch(tab);
if (firstBoot) { if (firstBoot) {
bootPaneScripts(tab); bootPaneScripts(tab);
initPaneThemeToggle(tab);
runPageInit(tab, { revisit: false }); runPageInit(tab, { revisit: false });
return; return;
} }
@@ -409,7 +430,11 @@
patchApplyListWindow(); patchApplyListWindow();
patchHardNavigations(); patchHardNavigations();
initBootPane(); initBootPane();
if (getTab() === "settings") {
initPaneThemeToggle("settings");
}
bindNav(); bindNav();
syncShellChrome(getTab());
runPageInit(getTab()); runPageInit(getTab());
preloadAllTabs(); preloadAllTabs();
try { try {
+19 -3
View File
@@ -2182,6 +2182,13 @@ html[data-theme="light"] .journal-detail-img-thumb {
flex-wrap: wrap; flex-wrap: wrap;
} }
.settings-account-summary-actions {
display: flex;
align-items: center;
gap: 8px;
flex-shrink: 0;
}
.settings-cards-grid { .settings-cards-grid {
display: grid; display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
@@ -2464,12 +2471,21 @@ html[data-theme="light"] .settings-kv-value {
color: #142232; color: #142232;
} }
html[data-theme="light"] .settings-export-link { html[data-theme="light"] .settings-export-link,
background: #fff; html[data-theme="light"] .settings-export-links-inline a {
border-color: #b8c8d8; background: transparent;
border-color: transparent;
color: #1d4f8c; color: #1d4f8c;
} }
html[data-theme="light"] .settings-side-export {
border-top-color: #d0dae4;
}
html[data-theme="light"] .settings-side-export-label {
color: #142232;
}
/* OKX 期权页 */ /* OKX 期权页 */
.options-page-wrap { .options-page-wrap {
font-size: 0.8rem; font-size: 0.8rem;
+2 -2
View File
@@ -7,7 +7,7 @@
<link rel="stylesheet" href="/static/instance_theme_early.css?v=4"> <link rel="stylesheet" href="/static/instance_theme_early.css?v=4">
<link rel="stylesheet" href="/static/account_risk_badge.css?v=4"> <link rel="stylesheet" href="/static/account_risk_badge.css?v=4">
<link rel="stylesheet" href="/static/instance_page.css?v=4"> <link rel="stylesheet" href="/static/instance_page.css?v=4">
<link rel="stylesheet" href="/static/instance_theme.css?v=68"> <link rel="stylesheet" href="/static/instance_theme.css?v=69">
<script src="/static/account_risk_badge.js?v=4"></script> <script src="/static/account_risk_badge.js?v=4"></script>
<meta name="theme-color" content="#0b0d14"> <meta name="theme-color" content="#0b0d14">
<title>{{ exchange_display }} · 加密货币 | 交易监控复盘系统</title> <title>{{ exchange_display }} · 加密货币 | 交易监控复盘系统</title>
@@ -91,6 +91,6 @@ const ORDER_ENTRY_MODEL_CODE_TO_CATEGORY = {{ entry_model_code_to_category | toj
<script src="/static/key_monitor_form.js?v=2"></script> <script src="/static/key_monitor_form.js?v=2"></script>
{% include 'embed_boot_scripts.html' %} {% include 'embed_boot_scripts.html' %}
<script src="/static/instance_live.js?v=3"></script> <script src="/static/instance_live.js?v=3"></script>
<script src="/static/instance_embed.js?v=12"></script> <script src="/static/instance_embed.js?v=13"></script>
</body> </body>
</html> </html>
+1 -1
View File
@@ -17,7 +17,7 @@
<link rel="manifest" href="/static/icons/manifest.webmanifest"> <link rel="manifest" href="/static/icons/manifest.webmanifest">
<title>{{ exchange_display }} · 加密货币 | 交易监控复盘系统</title> <title>{{ exchange_display }} · 加密货币 | 交易监控复盘系统</title>
<link rel="stylesheet" href="/static/instance_page.css?v=1"> <link rel="stylesheet" href="/static/instance_page.css?v=1">
<link rel="stylesheet" href="/static/instance_theme.css?v=68"> <link rel="stylesheet" href="/static/instance_theme.css?v=69">
</head> </head>
<body <body
@@ -27,18 +27,7 @@
{% include 'force_close_header_badge.html' %} {% include 'force_close_header_badge.html' %}
<span class="risk-status-badge risk-status-{{ risk_status.status|default('normal') }}" id="account-risk-badge" role="status" title="{{ risk_status.reason|default('', true) }}" data-status-label="{{ risk_status.status_label|default('正常') }}"{% if risk_status.freeze_until_ms %} data-freeze-until-ms="{{ risk_status.freeze_until_ms }}"{% endif %}>{{ risk_status.status_label|default('正常') }}</span> <span class="risk-status-badge risk-status-{{ risk_status.status|default('normal') }}" id="account-risk-badge" role="status" title="{{ risk_status.reason|default('', true) }}" data-status-label="{{ risk_status.status_label|default('正常') }}"{% if risk_status.freeze_until_ms %} data-freeze-until-ms="{{ risk_status.freeze_until_ms }}"{% endif %}>{{ risk_status.status_label|default('正常') }}</span>
</div> </div>
<div class="theme-toggle instance-theme-toggle instance-header-theme" role="group" aria-label="界面主题"> {% include 'instance_theme_toggle.html' %}
<button type="button" class="theme-toggle-btn is-active" data-theme-value="dark" aria-pressed="true" title="暗色主题">
<svg class="theme-icon" viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
<path fill="currentColor" d="M12.1 3a9 9 0 1 0 8.9 11 6.5 6.5 0 1 1-8.9-11z"/>
</svg>
</button>
<button type="button" class="theme-toggle-btn" data-theme-value="light" aria-pressed="false" title="亮色主题">
<svg class="theme-icon" viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
<circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"/>
</svg>
</button>
</div>
</div> </div>
</div> </div>
<div class="instance-header-stats-wrap instance-desktop-only"> <div class="instance-header-stats-wrap instance-desktop-only">
@@ -0,0 +1,12 @@
<div class="theme-toggle instance-theme-toggle" role="group" aria-label="界面主题">
<button type="button" class="theme-toggle-btn is-active" data-theme-value="dark" aria-pressed="true" title="暗色主题">
<svg class="theme-icon" viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
<path fill="currentColor" d="M12.1 3a9 9 0 1 0 8.9 11 6.5 6.5 0 1 1-8.9-11z"/>
</svg>
</button>
<button type="button" class="theme-toggle-btn" data-theme-value="light" aria-pressed="false" title="亮色主题">
<svg class="theme-icon" viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
<circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"/>
</svg>
</button>
</div>
@@ -6,8 +6,11 @@
<div class="exchange-tag">{{ exchange_display }}</div> <div class="exchange-tag">{{ exchange_display }}</div>
<span class="risk-status-badge risk-status-{{ risk_status.status|default('normal') }}" role="status">{{ risk_status.status_label|default('正常') }}</span> <span class="risk-status-badge risk-status-{{ risk_status.status|default('normal') }}" role="status">{{ risk_status.status_label|default('正常') }}</span>
</div> </div>
<div class="settings-account-summary-actions">
{% include 'instance_theme_toggle.html' %}
<button type="button" class="btn-secondary btn-sm" id="settings-refresh-funds">刷新资金</button> <button type="button" class="btn-secondary btn-sm" id="settings-refresh-funds">刷新资金</button>
</div> </div>
</div>
{% include 'instance_header_stats.html' %} {% include 'instance_header_stats.html' %}
</div> </div>
<div class="settings-cards-grid"> <div class="settings-cards-grid">