// Login Page JavaScript $(document).ready(function() { initLoginPage(); initTestAccount(); }); function initLoginPage() { bindLoginEvents(); checkLoginStatus(); } // 初始化测试账号 function initTestAccount() { const users = JSON.parse(localStorage.getItem('users') || '[]'); // 检查是否已存在测试账号 const testUser = users.find(u => u.email === 'test@vizee.com'); if (!testUser) { // 创建测试账号 const defaultTestUser = { firstName: '测试', lastName: '用户', email: 'test@vizee.com', password: '123456', registerTime: new Date().toISOString() }; users.push(defaultTestUser); localStorage.setItem('users', JSON.stringify(users)); console.log('测试账号已创建:test@vizee.com / 123456'); } } // 绑定事件 function bindLoginEvents() { // 切换到注册表单 $('#showRegister').on('click', function(e) { e.preventDefault(); $('#loginForm').hide(); $('#registerForm').show(); }); // 切换到登录表单 $('#showLogin').on('click', function(e) { e.preventDefault(); $('#registerForm').hide(); $('#loginForm').show(); }); // 登录表单提交 $('#loginForm form').on('submit', function(e) { e.preventDefault(); handleLogin(); }); // 注册表单提交 $('#registerForm form').on('submit', function(e) { e.preventDefault(); handleRegister(); }); // 社交登录 $('.btn-google').on('click', function() { Toast.info(i18n.t('feature_coming_soon') || '功能开发中...'); }); $('.btn-wechat').on('click', function() { Toast.info(i18n.t('feature_coming_soon') || '功能开发中...'); }); } // 检查登录状态 function checkLoginStatus() { const user = localStorage.getItem('currentUser'); if (user) { // 已登录,检查是否有重定向URL const redirectUrl = localStorage.getItem('redirectUrl'); if (redirectUrl) { localStorage.removeItem('redirectUrl'); window.location.href = redirectUrl; } else { // 跳转到用户中心 window.location.href = 'user-center.html'; } } } // 处理登录 function handleLogin() { const email = $('#loginEmail').val().trim(); const password = $('#loginPassword').val().trim(); if (!email || !password) { Toast.warning(i18n.t('please_fill_all_fields') || '请填写所有字段'); return; } if (!isValidEmail(email)) { Toast.error(i18n.t('invalid_email') || '请输入有效的邮箱地址'); return; } // 显示加载状态 const $btn = $('#loginForm button[type="submit"]'); const originalText = $btn.text(); $btn.prop('disabled', true).text(i18n.t('logging_in') || '登录中...'); // 调用后端登录API UserAPI.login(email, password) .then(function(data) { // 登录成功 - 保存后端返回的完整用户信息 const currentUser = { ...data.user, // 展开后端返回的完整用户对象(包括phone, avatar, gender等) token: data.token, loginTime: new Date().toISOString() }; localStorage.setItem('currentUser', JSON.stringify(currentUser)); // 更新用户图标显示 if (typeof window.updateUserIcon === 'function') { window.updateUserIcon(); } Toast.success(i18n.t('login_success') || '登录成功!'); // 检查是否有重定向URL setTimeout(() => { const redirectUrl = localStorage.getItem('redirectUrl'); if (redirectUrl) { localStorage.removeItem('redirectUrl'); window.location.href = redirectUrl; } else { window.location.href = 'user-center.html'; } }, 500); }) .catch(function(error) { // 登录失败 console.error('登录失败:', error); Toast.error(error.message || i18n.t('login_failed') || '登录失败,请检查邮箱和密码'); $btn.prop('disabled', false).text(originalText); }); } // 处理注册 function handleRegister() { const firstName = $('#registerFirstName').val().trim(); const lastName = $('#registerLastName').val().trim(); const email = $('#registerEmail').val().trim(); const password = $('#registerPassword').val().trim(); const confirmPassword = $('#registerConfirmPassword').val().trim(); if (!firstName || !lastName || !email || !password || !confirmPassword) { Toast.warning(i18n.t('please_fill_all_fields') || '请填写所有字段'); return; } if (!isValidEmail(email)) { Toast.error(i18n.t('invalid_email') || '请输入有效的邮箱地址'); return; } if (password.length < 6) { Toast.error(i18n.t('password_too_short') || '密码长度至少6个字符'); return; } if (password !== confirmPassword) { Toast.error(i18n.t('password_not_match') || '两次输入的密码不一致'); return; } // 显示加载状态 const $btn = $('#registerForm button[type="submit"]'); const originalText = $btn.text(); $btn.prop('disabled', true).text(i18n.t('registering') || '注册中...'); // 调用后端注册API const nickname = firstName + ' ' + lastName; UserAPI.register(email, password, nickname) .then(function(data) { // 注册成功 Toast.success(i18n.t('register_success') || '注册成功!请登录'); // 切换到登录表单 $('#registerForm').hide(); $('#loginForm').show(); $('#loginEmail').val(email); $btn.prop('disabled', false).text(originalText); }) .catch(function(error) { // 注册失败 console.error('注册失败:', error); Toast.error(error.message || i18n.t('register_failed') || '注册失败,请稍后重试'); $btn.prop('disabled', false).text(originalText); }); } // 验证邮箱格式 function isValidEmail(email) { const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return emailRegex.test(email); }