const RegisterPage = { captcha: null, async render() { try { this.captcha = await API.get('/captcha'); } catch { this.captcha = null; } return `
`; }, async refreshCaptcha() { try { const c = await API.get('/captcha'); document.getElementById('captcha-img').innerHTML = c.svg; document.getElementById('captcha-id').value = c.id; document.getElementById('captcha-a').value = ''; } catch {} }, mount() { document.getElementById('reg-form').addEventListener('submit', async e => { e.preventDefault(); const btn = e.target.querySelector('button'); const err = document.getElementById('regerr'); const ok = document.getElementById('regok'); err.classList.add('hidden'); ok.classList.add('hidden'); btn.disabled = true; btn.innerHTML = ' 注册?..'; try { await Auth.register({ username: document.getElementById('ru').value.trim(), password: document.getElementById('rp').value, email: document.getElementById('re').value.trim(), game_name: document.getElementById('rgn').value.trim(), game_uid: document.getElementById('rgu').value.trim(), captcha_id: document.getElementById('captcha-id')?.value, captcha_answer: document.getElementById('captcha-a')?.value.trim(), }); ok.textContent = '注册成功!请查收验证邮件(如SMTP未配置则自动激活)'; ok.classList.remove('hidden'); btn.innerHTML = ' 注册'; btn.disabled = false; setTimeout(() => location.hash = '#/login', 3000); } catch (ex) { err.textContent = ex.message; err.classList.remove('hidden'); btn.disabled = false; btn.innerHTML = ' 注册'; } }); } };