- Backend: FastAPI + SQLAlchemy + Celery (Python 3.11+) - Frontend: Vue 3 + TypeScript + Pinia + Tailwind - Admin Frontend: separate Vue 3 app for management - Docker Compose: 9 services orchestration - Specs: design prototypes, memory system PRD, product roadmap Cleanup performed: - Removed temporary debug scripts from backend root - Removed deprecated admin_app.py (embedded UI) - Removed duplicate docs from admin-frontend - Updated .gitignore for Vite cache and egg-info
112 lines
3.9 KiB
HTML
112 lines
3.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>生成故事</title>
|
|
<link rel="stylesheet" href="style.css" />
|
|
</head>
|
|
<body>
|
|
<div class="page">
|
|
<header class="nav">
|
|
<div class="container nav__inner">
|
|
<div class="nav__left">
|
|
<div class="nav__logo">
|
|
<span class="nav__logo-badge"></span>
|
|
DreamWeaver
|
|
</div>
|
|
<span class="badge">Web 原型</span>
|
|
</div>
|
|
<div class="nav__center">
|
|
<a class="nav__item active" href="home.html">生成故事</a>
|
|
<a class="nav__item" href="my-stories.html">我的故事</a>
|
|
<a class="nav__item" href="child-profiles.html">孩子档案</a>
|
|
<a class="nav__item" href="universes.html">故事宇宙</a>
|
|
<a class="nav__item" href="push-settings.html">推送设置</a>
|
|
<a class="nav__item" href="account-settings.html">账户设置</a>
|
|
<a class="nav__item" href="admin-providers.html">管理后台</a>
|
|
</div>
|
|
<div class="nav__right">
|
|
<input class="input" style="width: 200px;" placeholder="搜索故事" />
|
|
<div class="avatar">家</div>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
<div class="container" style="padding: 28px 0 60px;">
|
|
<div class="stepper section">
|
|
<span class="step active">档案</span>
|
|
<span class="step">宇宙</span>
|
|
<span class="step">关键词</span>
|
|
<span class="step">生成</span>
|
|
</div>
|
|
<div class="split section">
|
|
<div class="card">
|
|
<h3>为谁创作故事</h3>
|
|
<div class="row section">
|
|
<div>
|
|
<label>孩子档案</label>
|
|
<select>
|
|
<option>小明 · 5岁</option>
|
|
<option>小红 · 3岁</option>
|
|
</select>
|
|
</div>
|
|
<div>
|
|
<label>故事宇宙</label>
|
|
<select>
|
|
<option>延续上一次(星际冒险)</option>
|
|
<option>新建宇宙</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<label>关键词</label>
|
|
<div class="chips section">
|
|
<span class="chip selected">太空</span>
|
|
<span class="chip selected">勇气</span>
|
|
<span class="chip">机器人</span>
|
|
<span class="chip">探索</span>
|
|
</div>
|
|
<input class="input" placeholder="输入更多关键词" />
|
|
</div>
|
|
<div class="row section">
|
|
<div>
|
|
<label>成长主题</label>
|
|
<select>
|
|
<option>勇气</option>
|
|
<option>分享</option>
|
|
<option>独立</option>
|
|
</select>
|
|
</div>
|
|
<div>
|
|
<label>故事长度</label>
|
|
<div class="chips">
|
|
<span class="chip selected">短</span>
|
|
<span class="chip">中</span>
|
|
<span class="chip">长</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<button class="btn btn--primary" style="width: 100%;">生成故事</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h3>生成预览</h3>
|
|
<div class="card-cover"></div>
|
|
<div class="card-title">故事标题占位</div>
|
|
<p class="card-meta">故事摘要将显示在这里,支持 2-3 行预览。</p>
|
|
<div class="section">
|
|
<div class="callout">生成中:文本 → 封面 → 语音</div>
|
|
</div>
|
|
<div class="section">
|
|
<div class="callout" style="border-color: var(--error); color: var(--error);">封面生成失败,稍后重试</div>
|
|
<button class="btn btn--secondary" style="margin-top: 8px;">重新生成封面</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|