From 6ce6b8a4642b47992ae9d958af9b432b1b7f152e Mon Sep 17 00:00:00 2001 From: Eternal AI Builder Date: Sat, 20 Jun 2026 17:01:20 +0800 Subject: [PATCH] Add distinct auth and distill-ex views per PRD --- Eternal_AI_PRD_v1.docx | Bin 0 -> 21424 bytes app.js | 76 +++++++++++++++--- index.html | 120 +++++++++++++++++++++++++++- styles.css | 173 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 354 insertions(+), 15 deletions(-) create mode 100644 Eternal_AI_PRD_v1.docx diff --git a/Eternal_AI_PRD_v1.docx b/Eternal_AI_PRD_v1.docx new file mode 100644 index 0000000000000000000000000000000000000000..5baf9e590cc72ad3908c81cc2005a9b780fca49f GIT binary patch literal 21424 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 literal 0 HcmV?d00001 diff --git a/app.js b/app.js index e4a2ea2..8d67d91 100644 --- a/app.js +++ b/app.js @@ -3,28 +3,27 @@ const landing = document.getElementById('landing'); const creator = document.getElementById('creator'); + const auth = document.getElementById('auth'); + const distill = document.getElementById('distill'); const form = document.getElementById('character-form'); const resultPanel = document.getElementById('result-panel'); const previewCode = document.querySelector('#preview-code code'); const systemPromptInput = document.getElementById('system-prompt'); + const views = { landing, creator, auth, distill }; const steps = Array.from(document.querySelectorAll('.form-step')); const dots = Array.from(document.querySelectorAll('.stepper__dot')); let currentStep = 0; let generatedSoul = ''; let generatedConfig = ''; let activePreview = 'soul'; + let activeAuthTab = 'login'; function showView(name) { - if (name === 'landing') { - landing.classList.add('active'); - creator.classList.remove('active'); - window.scrollTo({ top: 0, behavior: 'smooth' }); - } else { - landing.classList.remove('active'); - creator.classList.add('active'); - window.scrollTo({ top: 0, behavior: 'smooth' }); - } + Object.entries(views).forEach(([key, el]) => { + if (el) el.classList.toggle('active', key === name); + }); + window.scrollTo({ top: 0, behavior: 'smooth' }); } function updateStep(index) { @@ -256,6 +255,29 @@ ${data.secrets || '无'} }); } + function switchAuthTab(tab) { + activeAuthTab = tab; + document.querySelectorAll('.auth-tab').forEach((t) => { + t.classList.toggle('active', t.dataset.tab === tab); + }); + document.querySelectorAll('.auth-form').forEach((f) => { + f.classList.toggle('active', f.dataset.form === tab); + }); + } + + function validatePasswordMatch(formEl) { + const pwd = formEl.querySelector('[name="password"]'); + const confirm = formEl.querySelector('[name="confirmPassword"]'); + if (!pwd || !confirm) return true; + if (pwd.value !== confirm.value) { + confirm.setCustomValidity('两次输入的密码不一致'); + confirm.reportValidity(); + return false; + } + confirm.setCustomValidity(''); + return true; + } + // Event delegation document.addEventListener('click', (e) => { const target = e.target.closest('[data-action], [data-tab], [data-download]'); @@ -270,6 +292,19 @@ ${data.secrets || '无'} return; } + if (action === 'open-auth') { + e.preventDefault(); + switchAuthTab('login'); + showView('auth'); + return; + } + + if (action === 'open-distill') { + e.preventDefault(); + showView('distill'); + return; + } + if (action === 'back') { e.preventDefault(); showView('landing'); @@ -306,9 +341,13 @@ ${data.secrets || '无'} if (target.dataset.tab) { e.preventDefault(); - activePreview = target.dataset.tab; - updateTabs(); - renderPreview(); + if (target.closest('.auth-tabs')) { + switchAuthTab(target.dataset.tab); + } else { + activePreview = target.dataset.tab; + updateTabs(); + renderPreview(); + } return; } @@ -323,6 +362,19 @@ ${data.secrets || '无'} } }); + // Auth form submissions + document.querySelectorAll('.auth-form').forEach((authForm) => { + authForm.addEventListener('submit', (e) => { + e.preventDefault(); + if (!validatePasswordMatch(authForm)) return; + const formData = new FormData(authForm); + const data = Object.fromEntries(formData.entries()); + const action = authForm.dataset.form === 'login' ? '登录' : '注册'; + alert(`${action}成功:${data.account}`); + showView('landing'); + }); + }); + // Update auto-generated system prompt as user types form.addEventListener('input', () => { updateSystemPromptPreview(); diff --git a/index.html b/index.html index be78056..b5456b1 100644 --- a/index.html +++ b/index.html @@ -7,14 +7,14 @@ - +
-
+

我的 [XXX ]

@@ -23,7 +23,7 @@
-
+

蒸馏前任

@@ -223,6 +223,120 @@
+ + +
+
+ +
+ Eternal AI + 登录 / 注册 +
+ +
+ +
+ + +
+ +
+
+ + +
+
+ +
+

登录后可查看角色库、管理已订阅的角色。

+
+ +
+
+ + + +
+
+ +
+

注册即代表同意《用户协议》和《隐私政策》。

+
+
+ + +
+
+ +
+ Eternal AI + 蒸馏前任 +
+ +
+ +
+ 没耐心?直接加微信定制沟通 → + +
+

什么是蒸馏前任?

+

把你们曾经的聊天记录、语音习惯、相处细节交给我们,技术团队会将其蒸馏成一个可对话的 AI 前任。ta 会记得你们的暗号、说话节奏,甚至那些只有你们懂的小情绪。

+
+ +
+

适合谁?

+
    +
  • 想好好告别,却还没说完话的人
  • +
  • 希望把一段关系以安全方式封存的人
  • +
  • 想借 AI 完成自我疗愈、练习表达的人
  • +
+
+ +
+

服务流程

+
    +
  1. 下单付款
  2. +
  3. 客服指导导出聊天记录
  4. +
  5. 上传至指定云盘
  6. +
  7. 技术人员处理蒸馏
  8. +
  9. 完成后获得专属二维码和头像
  10. +
+
+ +
+ 标准版 + ¥ 199 + / 次 +
+ +
+ +
+ +
+

付款后请添加客服微信,我们将一对一指导你完成聊天记录导出与上传。

+
+ +
+

创作者可推广蒸馏前任服务获得分润,具体比例请在创作者管理中心配置。

+
+
+
diff --git a/styles.css b/styles.css index e9a082a..4e17b40 100644 --- a/styles.css +++ b/styles.css @@ -258,6 +258,10 @@ body { font-size: 13px; } +.btn--block { + width: 100%; +} + .btn__arrow { transition: transform var(--transition); } @@ -596,6 +600,175 @@ textarea.field__input--tall { font-family: inherit; } +/* Auth view */ +.view--auth { + padding-top: 40vh; +} + +.auth-tabs { + display: flex; + gap: 8px; + margin-bottom: 22px; + padding: 5px; + border-radius: var(--radius); + background: rgba(8, 9, 22, 0.55); + border: 1px solid rgba(255, 255, 255, 0.08); +} + +.auth-tab { + flex: 1; + padding: 10px; + border-radius: var(--radius-sm); + border: none; + background: transparent; + color: var(--text-muted); + font-size: 14px; + font-weight: 500; + cursor: pointer; + transition: color var(--transition), background var(--transition); +} + +.auth-tab.active { + background: rgba(255, 255, 255, 0.1); + color: var(--text); +} + +.auth-form { + display: none; + flex-direction: column; + flex: 1; + animation: fadeIn 0.35s ease; +} + +.auth-form.active { + display: flex; +} + +.auth-hint { + margin-top: 14px; + font-size: 12px; + color: var(--text-muted); + text-align: center; + line-height: 1.6; +} + +/* Distill ex service page */ +.view--distill-page { + padding-top: 40vh; +} + +.distill-page { + display: flex; + flex-direction: column; + gap: 20px; +} + +.distill-quick { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 12px 16px; + border-radius: var(--radius-sm); + background: linear-gradient(135deg, rgba(255, 160, 205, 0.22), rgba(160, 140, 255, 0.22)); + border: 1px solid rgba(255, 160, 205, 0.35); + color: #ffe4f0; + font-size: 14px; + text-decoration: none; + text-align: center; + transition: transform var(--transition), box-shadow var(--transition); +} + +.distill-quick:hover { + transform: translateY(-2px); + box-shadow: 0 8px 24px rgba(255, 130, 180, 0.2); +} + +.distill-section { + padding: 18px; + border-radius: var(--radius); + background: rgba(8, 9, 22, 0.55); + border: 1px solid rgba(255, 255, 255, 0.08); + backdrop-filter: blur(14px); + -webkit-backdrop-filter: blur(14px); +} + +.distill-section__title { + font-family: "Noto Serif SC", serif; + font-size: 17px; + font-weight: 600; + margin-bottom: 10px; + color: #fff; +} + +.distill-section__text, +.distill-list, +.distill-steps { + font-size: 13px; + line-height: 1.75; + color: rgba(220, 225, 255, 0.85); +} + +.distill-list, +.distill-steps { + padding-left: 18px; + margin: 0; +} + +.distill-list li { + margin-bottom: 6px; +} + +.distill-steps li { + margin-bottom: 8px; +} + +.distill-steps span { + color: var(--accent); + font-weight: 600; + margin-right: 4px; +} + +.distill-price { + display: flex; + align-items: baseline; + justify-content: center; + gap: 8px; + padding: 18px; + border-radius: var(--radius); + background: rgba(8, 9, 22, 0.55); + border: 1px solid rgba(255, 255, 255, 0.08); +} + +.distill-price__label { + font-size: 14px; + color: var(--text-muted); +} + +.distill-price__value { + font-size: 32px; + font-weight: 700; + color: #fff; +} + +.distill-price__unit { + font-size: 13px; + color: var(--text-muted); +} + +.distill-note, +.distill-revenue { + font-size: 12px; + line-height: 1.7; + color: var(--text-muted); + text-align: center; +} + +.distill-revenue { + padding: 12px; + border-radius: var(--radius-sm); + background: rgba(255, 255, 255, 0.04); +} + /* Utility */ [hidden] { display: none !important;