(() => { // 展开/收起子菜单 document.querySelectorAll('.nav-item.has-children').forEach(group => { const btn = group.querySelector('.nav-item-btn'); const caret = btn.querySelector('.caret'); const children = group.querySelector('.nav-children'); btn.addEventListener('click', () => { children.classList.toggle('open'); caret.classList.toggle('rotate'); }); }); // 侧边栏折叠功能 const sidebar = document.getElementById('sidebar'); const toggleBtn = document.getElementById('sidebar-toggle'); if (sidebar && toggleBtn) { // 从 localStorage 恢复状态 const isCollapsed = localStorage.getItem('sidebar-collapsed') === 'true'; if (isCollapsed) { sidebar.classList.add('collapsed'); } toggleBtn.addEventListener('click', () => { sidebar.classList.toggle('collapsed'); const collapsed = sidebar.classList.contains('collapsed'); localStorage.setItem('sidebar-collapsed', collapsed); toggleBtn.title = collapsed ? '展开菜单' : '收起菜单'; // 触发窗口 resize 事件,让图表立即重绘 setTimeout(() => { window.dispatchEvent(new Event('resize')); }, 310); // 等待侧边栏动画完成 (300ms) }); // 设置初始 title toggleBtn.title = sidebar.classList.contains('collapsed') ? '展开菜单' : '收起菜单'; } })();