Parcourir la source

docs(specs): 首页重构 — 主动健康漏斗设计(方案A:了解→发现→改变)

iwt il y a 1 mois
Parent
commit
5a05e24c8b

+ 2 - 0
docs/superpowers/PROJECT-OVERVIEW.md

@@ -83,6 +83,7 @@
 | 登录前浏览体验(未登录可见内容) | Phase 1 | ✅ 已完成(多页面游客态+wuxing-sandbox preview模式) | `specs/2026-06-04-pre-login-discovery-design.md` |
 | 新用户注册引导 + 个人信息按需补充/回写 | Phase 1 | ✅ 已实施(注册解耦最小集 + 个人中心卡片 + 功能场景就地补充自动回写 + 无家庭引导组件) | `specs/2026-08-04-registration-profile-backfill-design.md` + `plans/2026-08-04-registration-profile-backfill.md` |
 | 通关解锁(测试门禁+引导解锁) | Phase 1 | 🟡 设计稿 v2.1(三关递进:自检→个人沙盘 / 邀请家人→全家沙盘 / 创建家人→孩子微行动;沙盘加个人/全家切换开关;增值关卡含购物/会员/上传报告,各关均有奖励;后台可配置) | `specs/2026-08-10-unlock-gates-design.md` |
+| 首页重构(主动健康漏斗) | Phase 5 | 🟡 设计已确认(方案 A:了解→发现→改变 四段式漏斗,自测先行 + 行动区聚合,复用现有组件无新依赖) | `specs/2026-08-18-homepage-health-funnel-design.md` |
 
 ---
 
@@ -352,6 +353,7 @@
 | `2026-08-08-growth-intervention-center-design.md` | ✅ 已实施(迁移208-209/2实体/2Mapper/SurveyService/SurveyController/AdminSurveyController/调研问卷页/调研历史页/growth-main重构/SurveyTemplates管理端) | 成长页面重构为干预中心(今日干预进度卡+持续追踪Tab+里程碑+定期调研+后端调研系统全栈) |
 | `2026-08-10-unlock-gates-design.md` | 🟡 设计稿 v2.1 | 通关解锁功能(三关递进:自检→个人沙盘、邀请家人→全家沙盘、创建家人→孩子微行动;沙盘个人/全家切换;增值关卡含购物/会员/上传报告;每关有奖;管理端关卡配置,数据驱动) |
 | `2026-08-15-sku-price-cents-and-spec-selector-design.md` | ✅ 已实施(7 Tasks:实体/DTO/订单/购物车/迁移/管理端/小程序,5 commits) | SKU 规格价格统一分单位 + 详情页规格按钮修复设计 |
+| `2026-08-18-homepage-health-funnel-design.md` | 🟡 设计已确认(方案 A) | 首页重构 — 主动健康漏斗(了解→发现→改变) |
 
 ### 实施计划(plans/)
 

+ 99 - 0
docs/superpowers/specs/2026-08-18-homepage-health-funnel-design.md

@@ -0,0 +1,99 @@
+# 首页重构 — 主动健康漏斗设计(了解 → 发现 → 改变)
+
+**日期:** 2026-08-18
+**状态:** 已确认(方案 A)
+**关联背景:** `specs/2026-07-22-active-health-six-stage-design.md`(主动健康六阶模型 P0-P3 已全栈交付,本次为首页落地其理念)
+**目标文件:** `cfc-frontend/pages/index-home/index.vue`
+
+---
+
+## 一、背景与理念
+
+平台已交付主动健康六阶模型(P0 微启动 → P1 即时反馈/智能预警 → P2 身份重塑/家庭互动 → P3 社区扩散),但**首页仍是信息流结构**(沙盘 → 动态 → 快捷栏 → 任务 → 挑战 → 今日任务 → 上传报告 → 阅读 → 商品),未体现"先发现后改变、从了解开始"的主动健康叙事。
+
+本次重构目标:把首页改造成一条**健康漏斗**,降低用户参与门槛,让用户**从了解开始**(自测),经历**发现**(沙盘/报告/测评),走向**改变**(任务/挑战/方案)。
+
+## 二、核心决策
+
+| 决策点 | 结论 |
+|--------|------|
+| 核心用户 | **以家长为主**(家庭健康决策者);孩子/规划师保持可正常使用 |
+| "了解"路径 | **自测先行**:首屏放 15 题五维健康自检入口(低门槛,约 20 秒) |
+| "改变"落点 | **行动区聚合入口**:今日任务 + 家庭挑战 + 健康方案/会员 聚合为一个"行动区" |
+| 结构 | 四段式漏斗:① 了解区 → ② 发现区 → ③ 行动区 → ④ 内容区 |
+| 复用原则 | 全部复用现有组件,不新增依赖;未登录态(discover-container)完全不动 |
+
+## 三、页面结构(登录态)
+
+```
+┌───────────────────────────────┐
+│ ① 了解区                       │  品牌头部 + 理念语 + 自测大卡
+├───────────────────────────────┤
+│ ② 发现区                       │  能量沙盘 + 上传报告 + 测评状态
+├───────────────────────────────┤
+│ ③ 行动区                       │  旅程卡 + 今日任务 + 我的任务 + 家庭挑战 + 会员
+├───────────────────────────────┤
+│ ④ 内容区                       │  快捷栏 + 家庭动态 + 推荐阅读 + 推荐商品
+└───────────────────────────────┘
+```
+
+### ① 了解区(首屏)
+
+- **品牌头部**:保留 `PageBanner theme="action"`
+- **自测大卡(新增)**:置于品牌头部下方
+  - 视觉:复用 health-main 的 `.self-test-card` 样式(紫蓝渐变 `#667eea→#764ba2` + ⚡图标)
+  - 文案:`先花 1 分钟,了解全家健康状况` / `15 题五维自检 · 约 20 秒`
+  - 点击:`uni.navigateTo({ url: '/pages/health/survey-questionnaire?dim=all' })`
+  - 文案用"了解/发现"代替"测试/测评",降低心理门槛
+  - **条件渲染**:
+    - 新用户(无报告、无测评)→ 完整引导卡
+    - 已有数据 → 卡上显示最近得分摘要 + "再次了解"按钮(数据源:`getLatestHealthReport` / `getAssessmentLatestResult`,如数据缺失则降级为纯引导卡)
+
+### ② 发现区
+
+- **能量沙盘**:保留 `WuxingSandbox` / `GateLock` 现状逻辑(未测评显示引导卡)
+- **上传报告卡**:`ReportUploadCard`(已统一组件)从底部上移到沙盘下方,与自测卡形成"了解→发现"闭环
+- **测评状态条(可选)**:一行显示"认知测评 ✓ / 心理测评 未完成",点击跳对应测评页。**若后端无现成聚合接口则先跳过,不阻塞本次交付**
+
+### ③ 行动区(聚合)
+
+按顺序排列,全部保留现有逻辑:
+
+1. `JourneyCard`(旅程进度,从顶部移入;仅 C 类意图用户显示)
+2. `DailyTaskCard`(今日任务,从第 10 位上提)
+3. "我的任务"(`hasPendingTasks` 条件显示)
+4. "家庭挑战"(`FamilyChallengeCard`)
+5. 会员入口(`showMemberEntry` 条件显示)
+
+### ④ 内容区(降级)
+
+1. 快捷栏(从第 6 位移到此处顶部——本质是"去别的地方",不打断健康漏斗)
+2. `FamilyFeed` 家庭动态(从顶部移入,作为"了解他人/家庭状态"的信息补充)
+3. `ArticleBookshelf` 推荐阅读
+4. `DimensionProducts` 推荐商品(最底)
+
+## 四、涉及文件
+
+| 文件 | 改动 |
+|------|------|
+| `cfc-frontend/pages/index-home/index.vue` | 主要改动:模板区块重排 + 新增自测卡 + 条件渲染逻辑 |
+| `cfc-frontend/pages/health-main/index.vue` | 不动(自测卡样式从 `.self-test-card` 复制,不抽取依赖) |
+| `cfc-frontend/components/report-upload-card.vue` | 已存在,不动 |
+
+## 五、验收标准
+
+- [ ] 登录态首页从上到下为:了解区 → 发现区 → 行动区 → 内容区
+- [ ] 首屏可见自测大卡,点击进入 `/pages/health/survey-questionnaire?dim=all`
+- [ ] `ReportUploadCard` 位于能量沙盘下方
+- [ ] `DailyTaskCard` 位于行动区(旅程卡/今日任务位置)
+- [ ] 快捷栏、家庭动态、推荐阅读、推荐商品依次位于底部内容区
+- [ ] `JourneyCard` 从首屏移到行动区顶部,C 类用户可见、A 类隐藏逻辑不变
+- [ ] 未登录态首页(discover-container)无任何改动
+- [ ] 所有页面/组件 JS 语法检查通过;HBuilderX 重新打包后显示正常
+
+## 六、明确不做(YAGNI)
+
+- ❌ 不做角色分流(家长/孩子首页不拆分)
+- ❌ 不做后端新接口(除非测评状态条需要,且可暂缓)
+- ❌ 不改未登录态
+- ❌ 不新增组件依赖,不抽取 self-test-card 为共享组件(避免过度设计)