// 全局变量 let currentPage = 'dashboard'; // DOM 加载完成后执行 document.addEventListener('DOMContentLoaded', function() { initializePage(); setupEventListeners(); // 如果是首页,默认显示dashboard内容 if (window.location.pathname === '/web/dashboard') { loadDashboardContent(); } }); // 初始化页面 function initializePage() { // 设置当前页面状态 updateActiveNavigation(); } // 设置事件监听器 function setupEventListeners() { // 导航按钮点击事件 const navButtons = document.querySelectorAll('.nav-button[data-page]'); navButtons.forEach(button => { button.addEventListener('click', function(e) { e.preventDefault(); const page = this.getAttribute('data-page'); loadPage(page); }); }); // 窗口大小变化事件(保留用于可能的响应式优化) window.addEventListener('resize', handleWindowResize); } // 处理窗口大小变化(保留但简化) function handleWindowResize() { // 可以在这里添加响应式相关的处理逻辑 } // 加载页面内容 async function loadPage(page) { const pageContent = document.getElementById('pageContent'); // 显示加载状态 showLoadingState(); try { // 发送AJAX请求获取页面内容 const response = await fetch(`/web/${page}`, { headers: { 'X-Requested-With': 'XMLHttpRequest' } }); if (response.ok) { const html = await response.text(); // 解析HTML,提取内容部分 const parser = new DOMParser(); const doc = parser.parseFromString(html, 'text/html'); const content = doc.querySelector('#pageContent') || doc.querySelector('.container-fluid'); if (content) { // 添加页面切换动画 pageContent.classList.add('page-enter'); pageContent.innerHTML = content.innerHTML; setTimeout(() => { pageContent.classList.remove('page-enter'); pageContent.classList.add('page-enter-active'); }, 10); setTimeout(() => { pageContent.classList.remove('page-enter-active'); }, 310); // 更新当前页面状态 currentPage = page; updateActiveNavigation(); // 更新浏览器历史记录 history.pushState({page: page}, '', `/web/${page}`); } else { throw new Error('无法解析页面内容'); } } else { throw new Error(`HTTP ${response.status}: ${response.statusText}`); } } catch (error) { console.error('加载页面失败:', error); showErrorState(error.message); } } // 显示加载状态 function showLoadingState() { const pageContent = document.getElementById('pageContent'); pageContent.innerHTML = `
加载中...
${message}
请稍后重试或联系管理员。