|
@@ -0,0 +1,254 @@
|
|
|
|
|
+# 成长页面重构 — 干预中心
|
|
|
|
|
+
|
|
|
|
|
+**版本:** v1.0
|
|
|
|
|
+**日期:** 2026-08-08
|
|
|
|
|
+**状态:** 设计稿
|
|
|
|
|
+
|
|
|
|
|
+## 1. 概述
|
|
|
|
|
+
|
|
|
|
|
+将成长TabBar页(growth-main/index.vue)重构为"干预中心",聚焦主动健康闭环中的"干预"环节。核心问题:"我们做了什么,效果如何?"通过每日记录、持续追踪、里程碑、定期调研,追踪干预的执行与成效。
|
|
|
|
|
+
|
|
|
|
|
+## 2. 页面布局
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+┌──────────────────────────────────┐
|
|
|
|
|
+│ 📊 今日干预进度卡 │
|
|
|
|
|
+│ (打卡/饮食/运动/心情/调研进度) │
|
|
|
|
|
+│ 有未完成项自动提醒 │
|
|
|
|
|
+├──────────────────────────────────┤
|
|
|
|
|
+│ 📈 持续追踪 Tab │
|
|
|
|
|
+│ [饮食] [运动] [睡眠] [心情] [调研]│
|
|
|
|
|
+│ 各维度历史记录摘要 │
|
|
|
|
|
+├──────────────────────────────────┤
|
|
|
|
|
+│ 🏆 里程碑 │
|
|
|
|
|
+│ 连续打卡/挑战完成/档案完整度 │
|
|
|
|
|
+├──────────────────────────────────┤
|
|
|
|
|
+│ 📋 定期调研 │
|
|
|
|
|
+│ 周期问卷 + 历史记录 + 趋势 │
|
|
|
|
|
+├──────────────────────────────────┤
|
|
|
|
|
+│ 活动/商品推荐 (弱化) │
|
|
|
|
|
+└──────────────────────────────────┘
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+## 3. 移除项
|
|
|
|
|
+
|
|
|
|
|
+- 现有 8 个功能入口网格(打卡/任务/挑战/饮食/运动/作息/档案/冥想)——功能融入各区块
|
|
|
|
|
+- 现有"今日执行概览"卡片——升级为今日干预进度卡
|
|
|
|
|
+- 现有"成长档案"孩子选择区块——成员选择条已在上方,成长档案融入其他区块
|
|
|
|
|
+
|
|
|
|
|
+## 4. 今日干预进度卡
|
|
|
|
|
+
|
|
|
|
|
+### 4.1 结构
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+┌── 今日干预进度 ─────────────────────┐
|
|
|
|
|
+│ 2026-08-08 星期五 │
|
|
|
|
|
+│ ✅ 今日打卡 ✔ 已完成 │
|
|
|
|
|
+│ ☐ 饮食记录 [补录] ← 未完成 │
|
|
|
|
|
+│ ☐ 运动记录 [补录] │
|
|
|
|
|
+│ ✅ 心情记录 ✔ 已完成 │
|
|
|
|
|
+│ ⚠ 本周调研 [开始] ← 待完成 │
|
|
|
|
|
+│ ────────────────────── │
|
|
|
|
|
+│ 今日完成 2/5 · 连续打卡 7 天 🔥 │
|
|
|
|
|
+└──────────────────────────────────────┘
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 4.2 行为
|
|
|
|
|
+
|
|
|
|
|
+- **自动提醒:** `onShow` 时检查今日未完成项,有未完成在顶部显示提醒条("今日还有 X 项未记录")
|
|
|
|
|
+- **补录:** 点击[补录]跳转对应记录页,传日期参数标识补录
|
|
|
|
|
+- **调研提醒:** 根据调研周期判断是否到期,到期显示[开始]
|
|
|
|
|
+- **连续打卡:** 调用 `healthCheckinList`
|
|
|
|
|
+- **心情记录:** 调用 emotion-checkin 接口
|
|
|
|
|
+- 底部:今日完成数/总数 + 连续打卡天数
|
|
|
|
|
+
|
|
|
|
|
+### 4.3 数据来源
|
|
|
|
|
+
|
|
|
|
|
+| 项 | 接口 |
|
|
|
|
|
+|----|------|
|
|
|
|
|
+| 今日打卡 | `healthCheckinList({ memberId, date })` |
|
|
|
|
|
+| 饮食记录 | `getDietDailyRecords({ memberId, date })` |
|
|
|
|
|
+| 运动记录 | exercise 相关接口 |
|
|
|
|
|
+| 心情记录 | emotion-checkin 接口 |
|
|
|
|
|
+| 调研状态 | 新增 `survey/status` 接口 |
|
|
|
|
|
+
|
|
|
|
|
+## 5. 持续追踪 Tab
|
|
|
|
|
+
|
|
|
|
|
+### 5.1 结构
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+┌── 持续追踪 ──────────────────────────┐
|
|
|
|
|
+│ [饮食] [运动] [睡眠] [心情] [调研] │
|
|
|
|
|
+│ ┌─ 饮食记录 (举例) ────────────┐ │
|
|
|
|
|
+│ │ 08/08 早餐: 全麦面包+牛奶 │ │
|
|
|
|
|
+│ │ 08/08 午餐: 鸡胸肉沙拉 │ │
|
|
|
|
|
+│ │ 08/07 晚餐: 清蒸鱼+蔬菜 │ │
|
|
|
|
|
+│ │ [查看全部 →] │ │
|
|
|
|
|
+│ └─────────────────────────────┘ │
|
|
|
|
|
+│ 无数据时: "还没有记录,开始记录吧" │
|
|
|
|
|
+└───────────────────────────────────────┘
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 5.2 各 Tab
|
|
|
|
|
+
|
|
|
|
|
+| Tab | 数据来源接口 | 点击跳转 |
|
|
|
|
|
+|-----|------------|---------|
|
|
|
|
|
+| 饮食 | `getDietDailyRecords` | 饮食记录页 |
|
|
|
|
|
+| 运动 | exercise 接口 | 运动记录页 |
|
|
|
|
|
+| 睡眠 | sleep 接口 | 作息记录页 |
|
|
|
|
|
+| 心情 | emotion-checkin 接口 | 心情记录页 |
|
|
|
|
|
+| 调研 | 新增 `survey/list` 接口 | 调研问卷页 |
|
|
|
|
|
+
|
|
|
|
|
+每个 Tab 展示最近 3-5 条记录摘要,点击"查看全部"或记录项跳转对应详情页。
|
|
|
|
|
+
|
|
|
|
|
+## 6. 里程碑
|
|
|
|
|
+
|
|
|
|
|
+### 6.1 结构
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+┌── 里程碑 ────────────────────────────┐
|
|
|
|
|
+│ 🔥 连续打卡 7 天 ✓ │
|
|
|
|
|
+│ 🎯 完成 "21天挑战" ✓ │
|
|
|
|
|
+│ 📈 健康档案完整度 60% │
|
|
|
|
|
+│ [查看全部成就 →] │
|
|
|
|
|
+└──────────────────────────────────────┘
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 6.2 数据来源
|
|
|
|
|
+
|
|
|
|
|
+- 连续打卡天数:`healthCheckinList` 派生
|
|
|
|
|
+- 挑战完成数:挑战接口派生
|
|
|
|
|
+- 档案完整度:报告/档案数据派生
|
|
|
|
|
+
|
|
|
|
|
+## 7. 定期调研(新功能)
|
|
|
|
|
+
|
|
|
|
|
+### 7.1 概念
|
|
|
|
|
+
|
|
|
|
|
+周期性问卷,记录行为变化,追踪干预成效。有定时任务属性,到期自动提醒,可补录。
|
|
|
|
|
+
|
|
|
|
|
+### 7.2 前端展示
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+┌── 定期调研 ─────────────────────────┐
|
|
|
|
|
+│ ⚠ 本周还未完成调研 │
|
|
|
|
|
+│ "过去一周,你吃了几次不该吃的食物?" │
|
|
|
|
|
+│ 选项: 0次 / 1-2次 / 3-5次 / 6次以上 │
|
|
|
|
|
+│ [开始填写] │
|
|
|
|
|
+│ ───────────────────── │
|
|
|
|
|
+│ 历史调研记录: │
|
|
|
|
|
+│ · 上周: 油炸食品 3次 │
|
|
|
|
|
+│ · 上上周: 含糖饮料 5次 │
|
|
|
|
|
+└──────────────────────────────────────┘
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 7.3 调研模板配置(管理端)
|
|
|
|
|
+
|
|
|
|
|
+管理端新增调研模板管理页面(如 `SurveyTemplates.vue`),支持:
|
|
|
|
|
+- 创建/编辑/删除调研模板
|
|
|
|
|
+- 每个模板:标题、一组问题(题目+选项)、周期(周/两周/月)、适用维度
|
|
|
|
|
+- 启用/停用
|
|
|
|
|
+
|
|
|
|
|
+### 7.4 LangGraph 自动生成
|
|
|
|
|
+
|
|
|
|
|
+- 管理端可点"AI生成调研"按钮,调用 LangGraph 根据指定维度/主题自动生成题目
|
|
|
|
|
+- 生成结果可编辑后保存为调研模板
|
|
|
|
|
+
|
|
|
|
|
+### 7.5 数据模型
|
|
|
|
|
+
|
|
|
|
|
+**survey_templates 表(调研模板):**
|
|
|
|
|
+```sql
|
|
|
|
|
+CREATE TABLE IF NOT EXISTS survey_templates (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ title VARCHAR(100) NOT NULL COMMENT '调研标题',
|
|
|
|
|
+ dimension VARCHAR(20) COMMENT '适用维度',
|
|
|
|
|
+ questions_json TEXT COMMENT '题目JSON(含选项)',
|
|
|
|
|
+ cycle_type VARCHAR(20) DEFAULT 'weekly' COMMENT '周期: weekly/biweekly/monthly',
|
|
|
|
|
+ ai_generated TINYINT(1) DEFAULT 0 COMMENT '是否AI生成',
|
|
|
|
|
+ enabled TINYINT(1) DEFAULT 1 COMMENT '是否启用',
|
|
|
|
|
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定期调研模板';
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**survey_records 表(调研记录,成员历次答案):**
|
|
|
|
|
+```sql
|
|
|
|
|
+CREATE TABLE IF NOT EXISTS survey_records (
|
|
|
|
|
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
+ family_id BIGINT NOT NULL COMMENT '家庭ID',
|
|
|
|
|
+ member_id BIGINT NOT NULL COMMENT '成员ID',
|
|
|
|
|
+ template_id BIGINT NOT NULL COMMENT '调研模板ID',
|
|
|
|
|
+ answers_json TEXT COMMENT '答案JSON',
|
|
|
|
|
+ submitted_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '提交时间',
|
|
|
|
|
+ period_start DATE COMMENT '周期开始',
|
|
|
|
|
+ period_end DATE COMMENT '周期结束',
|
|
|
|
|
+ INDEX idx_member (member_id),
|
|
|
|
|
+ INDEX idx_template (template_id)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定期调研记录';
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 7.6 接口
|
|
|
|
|
+
|
|
|
|
|
+| 方法 | 路径 | 说明 |
|
|
|
|
|
+|------|------|------|
|
|
|
|
|
+| POST | `/api/admin/survey/template/save` | 保存调研模板(管理端) |
|
|
|
|
|
+| POST | `/api/admin/survey/template/list` | 查询调研模板(管理端) |
|
|
|
|
|
+| POST | `/api/admin/survey/template/delete` | 删除调研模板(管理端) |
|
|
|
|
|
+| POST | `/api/admin/survey/template/ai-generate` | LangGraph生成调研题目 |
|
|
|
|
|
+| POST | `/api/survey/status` | 查询当前成员的待办调研 |
|
|
|
|
|
+| POST | `/api/survey/template/active` | 查询启用的调研模板(小程序) |
|
|
|
|
|
+| POST | `/api/survey/submit` | 提交调研答案 |
|
|
|
|
|
+| POST | `/api/survey/history` | 查询成员调研历史 |
|
|
|
|
|
+
|
|
|
|
|
+## 8. 后端改动
|
|
|
|
|
+
|
|
|
|
|
+### 8.1 新增表
|
|
|
|
|
+
|
|
|
|
|
+- `survey_templates`(调研模板)
|
|
|
|
|
+- `survey_records`(调研记录)
|
|
|
|
|
+
|
|
|
|
|
+### 8.2 迁移
|
|
|
|
|
+
|
|
|
|
|
+DatabaseInitializer.runMigrations() 新增迁移195、196(创建上述两表)。
|
|
|
|
|
+
|
|
|
|
|
+### 8.3 新增 Controller / Service
|
|
|
|
|
+
|
|
|
|
|
+- `SurveyController`(小程序端:status/active/submit/history)
|
|
|
|
|
+- `AdminSurveyController`(管理端:template CRUD + ai-generate)
|
|
|
|
|
+- `SurveyService`
|
|
|
|
|
+
|
|
|
|
|
+### 8.4 LangGraph 对接
|
|
|
|
|
+
|
|
|
|
|
+`ai-generate` 接口调用 LangGraph `analysis/run`,传入主题/维度,返回结构化题目 JSON。
|
|
|
|
|
+
|
|
|
|
|
+## 9. 前端改动清单
|
|
|
|
|
+
|
|
|
|
|
+| 文件 | 改动内容 |
|
|
|
|
|
+|------|---------|
|
|
|
|
|
+| `pages/growth-main/index.vue` | 重构:今日干预进度卡 + 持续追踪Tab + 里程碑 + 定期调研 |
|
|
|
|
|
+| 新建 `pages/health/survey-questionnaire.vue` | 调研问卷页(答题+提交) |
|
|
|
|
|
+| 新建 `pages/health/survey-history.vue` | 调研历史页 |
|
|
|
|
|
+| `utils/api.js` | 新增调研相关接口 |
|
|
|
|
|
+| `pages.json` | 注册 survey-questionnaire / survey-history 页面 |
|
|
|
|
|
+| `cfc-web` 新建 `SurveyTemplates.vue` | 管理端调研模板管理 |
|
|
|
|
|
+
|
|
|
|
|
+## 10. 页面注册
|
|
|
|
|
+
|
|
|
|
|
+在 `pages.json` 的 `pages/health` 分包新增:
|
|
|
|
|
+
|
|
|
|
|
+```json
|
|
|
|
|
+{
|
|
|
|
|
+ "path": "survey-questionnaire",
|
|
|
|
|
+ "style": { "navigationBarTitleText": "定期调研" }
|
|
|
|
|
+},
|
|
|
|
|
+{
|
|
|
|
|
+ "path": "survey-history",
|
|
|
|
|
+ "style": { "navigationBarTitleText": "调研记录" }
|
|
|
|
|
+}
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+## 11. 保留项
|
|
|
|
|
+
|
|
|
|
|
+- PageBanner(文案改为"干预 · 记录 · 成长")
|
|
|
|
|
+- FamilyMemberStrip 家庭成员选择条
|
|
|
|
|
+- DimensionActivities 活动推荐(弱化)
|
|
|
|
|
+- 成长档案相关数据(融入里程碑/持续追踪)
|