import { state } from './state.js'; import { UI } from './components.js'; export const Registration = { render() { const container = document.getElementById('view-container'); container.innerHTML = `
`; this.goToStep(1); }, goToStep(step) { state.currentStep = step; const content = document.getElementById('step-content'); gsap.to(content, { opacity: 0, y: 10, duration: 0.3, onComplete: () => { this.renderStep(step, content); gsap.to(content, { opacity: 1, y: 0, duration: 0.5 }); this.updateIndicators(step); lucide.createIcons(); }}); }, renderStep(step, el) { switch(step) { case 1: el.innerHTML = `

你是谁?

让我们从最基础的认知开始...

${UI.renderInput('昵称', 'reg-nick', 'text', '你想如何称呼自己?')}
${UI.renderInput('星座', 'reg-zodiac', 'text', '如:天蝎座')} ${UI.renderInput('MBTI', 'reg-mbti', 'text', '如:INFJ')}
${UI.renderInput('兴趣爱好', 'reg-hobbies', 'text', '用逗号分隔你的热爱')}
`; document.getElementById('btn-next').onclick = () => { state.updateRegistration({ nickname: document.getElementById('reg-nick').value, zodiac: document.getElementById('reg-zodiac').value, mbti: document.getElementById('reg-mbti').value, hobbies: document.getElementById('reg-hobbies').value.split(',') }); this.goToStep(2); }; break; case 2: // Childhood el.innerHTML = `

童年往事

那个阶段,你的世界是什么颜色的?

${UI.renderInput('大约时间', 'reg-child-date', 'date')} ${UI.renderTextArea('描述你的感受', 'reg-child-text', '那个午后,我在...')}
${UI.renderInspiration('childhood', 'reg-child-text')}
`; document.getElementById('btn-next').onclick = () => { state.updateRegistration({ childhood: { date: document.getElementById('reg-child-date').value, text: document.getElementById('reg-child-text').value }}); this.goToStep(3); }; break; case 3: // Joy el.innerHTML = `

感到满足的瞬间

那些让你嘴角上扬,感到充盈的经历。

${UI.renderInput('发生日期', 'reg-joy-date', 'date')} ${UI.renderTextArea('那一刻发生了什么?', 'reg-joy-text', '微风拂过,我发现...')}
${UI.renderInspiration('joy', 'reg-joy-text')}
`; document.getElementById('btn-next').onclick = () => { state.updateRegistration({ joy: { date: document.getElementById('reg-joy-date').value, text: document.getElementById('reg-joy-text').value }}); this.goToStep(4); }; break; case 4: // Low points el.innerHTML = `

沉潜的时光

那些让你慢下来,向内生长的日子。

${UI.renderInput('大约时间', 'reg-low-date', 'date')} ${UI.renderTextArea('你是如何度过的?', 'reg-low-text', '在寂静中,我开始思考...')}
${UI.renderInspiration('low', 'reg-low-text')}
`; document.getElementById('btn-next').onclick = () => { state.updateRegistration({ low: { date: document.getElementById('reg-low-date').value, text: document.getElementById('reg-low-text').value }}); this.goToStep(5); }; break; case 5: // Future el.innerHTML = `

展望未来

你渴望成为一个怎样的人?

${UI.renderTextArea('未来的愿景', 'reg-future-vision', '我希望在三年后...')} ${UI.renderTextArea('理想生活状态', 'reg-future-ideal', '每天清晨,我能够...')}
`; document.getElementById('btn-finish').onclick = () => { state.updateRegistration({ future: { vision: document.getElementById('reg-future-vision').value, ideal: document.getElementById('reg-future-ideal').value }}); this.completeRegistration(); }; break; } }, updateIndicators(step) { document.querySelectorAll('.step-indicator').forEach(el => { el.classList.toggle('active', parseInt(el.dataset.step) === step); }); }, completeRegistration() { const loader = document.getElementById('loader'); loader.classList.remove('hidden'); setTimeout(() => { state.view = 'dashboard'; window.location.reload(); // Simple way to re-init app view }, 1500); } }; window.reg_instance = Registration;