async function doLogin() { const user = document.getElementById('loginUser').value.trim(); const pass = document.getElementById('loginPass').value.trim(); if (!user || !pass) { document.getElementById('loginError').textContent = '请输入用户名和密码'; return; } try { const res = await fetch(API + '/api/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username: user, password: pass }) }); const data = await res.json(); if (!res.ok) { document.getElementById('loginError').textContent = data.error; return; } token = data.token; username = data.username; localStorage.setItem('token', token); localStorage.setItem('username', username); showPage('homePage'); } catch (e) { document.getElementById('loginError').textContent = '网络错误'; } } async function doRegister() { const user = document.getElementById('registerUser').value.trim(); const pass = document.getElementById('registerPass').value.trim(); const passConfirm = document.getElementById('registerPassConfirm').value.trim(); if (!user || !pass) { document.getElementById('registerError').textContent = '请输入用户名和密码'; return; } if (pass !== passConfirm) { document.getElementById('registerError').textContent = '两次密码输入不一致'; return; } try { const res = await fetch(API + '/api/register', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username: user, password: pass }) }); const data = await res.json(); if (!res.ok) { document.getElementById('registerError').textContent = data.error; return; } showToast('注册成功,请登录'); showLoginPage(); } catch (e) { document.getElementById('registerError').textContent = '网络错误'; } } function showRegisterPage() { document.getElementById('registerError').textContent = ''; document.getElementById('registerUser').value = ''; document.getElementById('registerPass').value = ''; document.getElementById('registerPassConfirm').value = ''; showPage('registerPage'); } function showLoginPage() { document.getElementById('loginError').textContent = ''; showPage('loginPage'); } function doLogout() { token = null; username = null; localStorage.removeItem('token'); localStorage.removeItem('username'); showPage('loginPage'); }