- 主题按钮:dark/light切换,localStorage持久化,刷新恢复;图标随主题变 - 最小化窗口按钮:bricks.app.show_windows_panel(app-dock.svg图标) - theme_toggle.js:页面加载恢复主题+同步图标(注册any权限,防401渲染中断) - merge_i18n补两按钮tip词条
28 lines
967 B
JavaScript
28 lines
967 B
JavaScript
/* 顶栏主题切换:页面加载时恢复上次主题 + 同步按钮图标
|
||
约定:light 主题显示 🌙(点击切暗),dark 主题显示 ☀️(点击切亮) */
|
||
(function(){
|
||
if (typeof bricks === 'undefined') return;
|
||
var KEY = 'pipeline_ui_theme';
|
||
|
||
function applyTheme(t){
|
||
document.documentElement.setAttribute('data-theme', t);
|
||
var btn = bricks.getWidgetById('theme_toggle_btn', bricks.app);
|
||
if (btn && btn.dom_element){
|
||
btn.opts.label = (t === 'light') ? '🌙' : '☀️';
|
||
btn.dom_element.textContent = btn.opts.label;
|
||
}
|
||
}
|
||
window.applyPipelineTheme = applyTheme;
|
||
|
||
function _start(){
|
||
if (bricks.app && bricks.getWidgetById){
|
||
var t = null;
|
||
try { t = localStorage.getItem(KEY); } catch(e) {}
|
||
applyTheme(t || 'light');
|
||
} else {
|
||
setTimeout(_start, 300);
|
||
}
|
||
}
|
||
setTimeout(_start, 300);
|
||
})();
|