// 管理后台主入口逻辑 (function() { const ADMIN_USERNAME = 'admin'; const ADMIN_PASSWORD = '123456'; // 简单密码,生产环境应使用更安全的方式 let currentPage = 'users'; let usersManager = null; let resourceManager = null; let pricingManager = null; // 初始化 function init() { checkLogin(); bindEvents(); } // 检查登录状态(5小时免登录) function checkLogin() { const loginTime = localStorage.getItem('adminLoginTime'); const isLoggedIn = localStorage.getItem('adminLoggedIn') === 'true'; if (isLoggedIn && loginTime) { const now = Date.now(); const loginTimestamp = parseInt(loginTime, 10); const fiveHours = 5 * 60 * 60 * 1000; // 5小时的毫秒数 // 检查是否在5小时内 if (now - loginTimestamp < fiveHours) { showMainPage(); return; } else { // 超过5小时,清除登录状态 localStorage.removeItem('adminLoggedIn'); localStorage.removeItem('adminLoginTime'); } } showLoginPage(); } // 显示登录页 function showLoginPage() { document.getElementById('loginPage').style.display = 'flex'; document.getElementById('mainPage').style.display = 'none'; } // 显示主页面 function showMainPage() { document.getElementById('loginPage').style.display = 'none'; document.getElementById('mainPage').style.display = 'flex'; initManagers(); switchPage('users'); } // 初始化各个管理器(现在由各个页面自己初始化) function initManagers() { // 管理器现在由各个独立页面初始化 // 这里保留函数以保持兼容性 } // 获取 API 基础 URL(供子页面使用) window.getApiBaseUrl = function() { return getApiBaseUrl(); } // 绑定事件 function bindEvents() { // 登录表单 const loginForm = document.getElementById('loginForm'); if (loginForm) { loginForm.addEventListener('submit', handleLogin); } // 退出登录 const logoutBtn = document.getElementById('logoutBtn'); if (logoutBtn) { logoutBtn.addEventListener('click', handleLogout); } // 导航 const navItems = document.querySelectorAll('.nav-item'); navItems.forEach(item => { item.addEventListener('click', (e) => { e.preventDefault(); const page = item.getAttribute('data-page'); switchPage(page); }); }); // 自定义提示对话框 const alertOk = document.getElementById('alertOk'); const closeAlertModal = document.getElementById('closeAlertModal'); if (alertOk) { alertOk.addEventListener('click', () => { document.getElementById('customAlertModal').style.display = 'none'; }); } if (closeAlertModal) { closeAlertModal.addEventListener('click', () => { document.getElementById('customAlertModal').style.display = 'none'; }); } } // 处理登录 function handleLogin(e) { e.preventDefault(); const username = document.getElementById('adminUsername').value; const password = document.getElementById('adminPassword').value; const errorDiv = document.getElementById('loginError'); if (username === ADMIN_USERNAME && password === ADMIN_PASSWORD) { // 保存登录状态和登录时间戳 localStorage.setItem('adminLoggedIn', 'true'); localStorage.setItem('adminLoginTime', Date.now().toString()); errorDiv.style.display = 'none'; showMainPage(); } else { errorDiv.textContent = '用户名或密码错误'; errorDiv.style.display = 'block'; } } // 处理退出登录 function handleLogout() { if (confirm('确定要退出登录吗?')) { localStorage.removeItem('adminLoggedIn'); localStorage.removeItem('adminLoginTime'); showLoginPage(); } } // 切换页面 function switchPage(page) { currentPage = page; // 更新导航状态 document.querySelectorAll('.nav-item').forEach(item => { item.classList.remove('active'); if (item.getAttribute('data-page') === page) { item.classList.add('active'); } }); // 更新标题 const titles = { 'users': '用户管理', 'resource-manager': '素材管理', 'pricing': '素材定价', 'currency': '充值与货币', 'product-pricing': '商品定价' }; document.getElementById('pageTitle').textContent = titles[page] || '管理后台'; // 切换 iframe 的 src const pageFrame = document.getElementById('pageFrame'); if (pageFrame) { const pageMap = { 'users': 'page/users/users.html', 'resource-manager': 'page/resource-manager/resource-manager.html', 'pricing': 'page/pricing/pricing.html', 'currency': 'page/currency/currency.html', 'product-pricing': 'page/product-pricing/product-pricing.html' }; const pagePath = pageMap[page] || pageMap['users']; pageFrame.src = pagePath; } } // 获取API基础URL function getApiBaseUrl() { // 明确使用 http://localhost:3000 作为API服务器地址 return 'http://localhost:3000'; } // 显示自定义提示 window.showCustomAlert = function(message, type = 'info') { const alertModal = document.getElementById('customAlertModal'); const alertMessage = document.getElementById('alertMessage'); if (alertModal && alertMessage) { alertMessage.textContent = message; alertModal.style.display = 'flex'; // 自动关闭 setTimeout(() => { alertModal.style.display = 'none'; }, 2000); } else { alert(message); } }; // 页面加载完成后初始化 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();