feat: 新增客片案例与团队共创模块,重构玩法与配置

- 新增客片案例全流程功能,包含前台页面、管理端配置、后端API、数据库迁移与文档
- 新增团队共创详情页面与对应接口
- 重构玩法模块:将静态playData替换为动态API获取,拆分类型定义到playTypes.ts
- 优化vite构建配置与环境变量处理,调整详情页操作栏文案
- 更新全量相关文档与配图,新增客片案例、团队共创API文档
- 新增测试用例,完善数据归一化逻辑
- 调整路由配置与环境变量示例文件
This commit is contained in:
duanshuwen committed 2026-08-19 20:23:04 +08:00
1 parent cda8069630
commit 7ba92f3c5d
76 files changed
+7970 -137

No files matched your search

@@ -0,0 +1,52 @@
<style>
.tb-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.tb-option { overflow: hidden; border: 1px solid #d8e0e8; border-radius: 18px; background: #fff; box-shadow: 0 10px 28px rgba(20, 38, 56, .08); cursor: pointer; }
.tb-option:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(20, 38, 56, .13); }
.tb-phone { width: 100%; aspect-ratio: 9 / 16; background: #f7f8fa; color: #132238; }
.tb-topbar { height: 42px; display: flex; align-items: center; justify-content: space-between; padding: 0 14px; border-bottom: 1px solid #edf0f3; background: rgba(255,255,255,.95); font-size: 11px; }
.tb-topbar strong { font-size: 12px; }
.tb-hero { position: relative; height: 37%; overflow: hidden; color: #fff; background: #202a2b; }
.tb-hero img { width: 100%; height: 100%; object-fit: cover; opacity: .86; }
.tb-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,10,14,.05), rgba(5,10,14,.74)); }
.tb-hero-copy { position: absolute; z-index: 1; left: 18px; right: 18px; bottom: 16px; }
.tb-kicker { font-size: 8px; letter-spacing: .28em; opacity: .86; }
.tb-hero h3 { margin: 4px 0 3px; color: #fff; font-size: 22px; line-height: 1.05; }
.tb-hero p { margin: 0; color: rgba(255,255,255,.86); font-size: 9px; }
.tb-copy { padding: 18px; }
.tb-copy p { margin: 0 0 10px; color: #526173; font-size: 10px; line-height: 1.8; }
.tb-label { display: inline-flex; margin-bottom: 9px; padding: 4px 8px; border-radius: 999px; color: #087f75; background: #eaf8f6; font-size: 9px; font-weight: 700; }
.tb-sections { display: grid; gap: 9px; padding: 16px; }
.tb-section { padding: 11px 12px; border-left: 3px solid #0c8a7d; border-radius: 8px; background: #fff; box-shadow: 0 4px 16px rgba(20, 38, 56, .06); }
.tb-section strong { display: block; margin-bottom: 4px; color: #132238; font-size: 11px; }
.tb-section p { margin: 0; color: #66758a; font-size: 9px; line-height: 1.6; }
@media (max-width: 780px) { .tb-options { grid-template-columns: 1fr; } }
</style>
<h2>团队共创详情页视觉方向</h2>
<p class="subtitle">参考“野呀旅行”长文详情图,选择更适合团队共创内容的阅读结构</p>
<div class="tb-options">
<div class="tb-option" data-choice="hero-reading" onclick="toggleSelect(this)">
<div class="tb-phone">
<div class="tb-topbar"><span>‹</span><strong>关于我们</strong><span>••• — ◎</span></div>
<div class="tb-hero">
<img src="https://dimg04.c-ctrip.com/images/1mh0412000njfr1ot9453_W_640_10000.jpg?proc=autoorient" alt="山野团队共创" />
<div class="tb-hero-copy"><span class="tb-kicker">ABOUT YEKA</span><h3>野呀旅行</h3><p>越过山丘 向来处去</p></div>
</div>
<div class="tb-copy"><span class="tb-label">户外挑战</span><p>真正的贵州,从未被写进攻略里的山野故事,适合团队一起出发。</p><p>一段连续阅读的长文,保留参考图的沉浸感。</p></div>
</div>
<div class="card-body"><h3>A · 沉浸长文</h3><p>首屏大图后直接连续阅读,最贴近参考图,适合品牌故事与完整叙事。</p></div>
</div>
<div class="tb-option" data-choice="section-reading" onclick="toggleSelect(this)">
<div class="tb-phone">
<div class="tb-topbar"><span>‹</span><strong>团队共创</strong><span>••• — ◎</span></div>
<div class="tb-hero">
<img src="https://dimg04.c-ctrip.com/images/0EQ5712000ca7t504EC0E_W_640_10000.jpg?proc=autoorient" alt="峡谷团队共创" />
<div class="tb-hero-copy"><span class="tb-kicker">TEAM BUILDING</span><h3>峡谷溯溪</h3><p>并肩探索,共创默契</p></div>
</div>
<div class="tb-sections"><div class="tb-section"><strong>为什么一起出发</strong><p>把自然、挑战和团队协作写成可阅读的故事。</p></div><div class="tb-section"><strong>适合怎样的团队</strong><p>清晰分段,方便快速浏览与了解活动亮点。</p></div><div class="tb-section"><strong>我们如何同行</strong><p>保留长图沉浸感,同时提升信息层次。</p></div></div>
</div>
<div class="card-body"><h3>B · 分段阅读</h3><p>在保留首屏视觉的基础上,将正文按小标题分段,适合多条团队共创产品扩展。</p></div>
</div>
</div>
@@ -0,0 +1 @@
{"type":"server-started","port":63862,"host":"0.0.0.0","url_host":"127.0.0.1","url":"http://127.0.0.1:63862","screen_dir":"D:\\www\\znkj\\WonderQ-Project\\.superpowers\\brainstorm\\team-building-20260819-visual\\content","state_dir":"D:\\www\\znkj\\WonderQ-Project\\.superpowers\\brainstorm\\team-building-20260819-visual\\state"}