页面:情绪打卡与心情曲线
字数
2963 字
阅读时间
12 分钟
页面定位
情绪打卡页面是MindGuard小程序心理健康管理的核心功能模块,位于今天Tab的顶部区域。作为情绪-建议-任务闭环的数据入口,通过情绪评分、标签记录和场景标注,为AI情感分析、微建议生成和护心周报提供基础数据支撑。系统自动绘制当日心情曲线,负向情绪会触发ASK助理和任务推荐机制。
核心模块与组件
模块1:情绪状态卡
- 功能描述:展示用户当日最新情绪状态、压力指数和风险等级,支持同日多次打卡。自动计算心情轮统计,为AI情感计算、微建议和周报提供基础数据。负向情绪会触发ASK助理、任务推荐及预警策略。
- 涉及组件:情绪状态卡组件、风险提示徽标、再次打卡按钮
- 交互说明:
- 用户点击状态卡或"再次打卡"按钮,弹出情绪打卡面板
- 面板提供情绪评分(0-100分值)、情绪标签(支持自定义/多选)、场景标签(学业/社交/自我等)及自由备注
- 点击"保存"后,系统记录打卡时间、评分与标签,刷新当日曲线节点
- AI即刻判定情绪类型(正向/中性/负向)及风险等级(L1-L4),在状态卡上更新彩色徽标和提示文案
- 若情绪为负向或风险≥L2,自动展开ASK助理浮层并推送2-3条微建议
- 打卡成功后可选择"补充随笔",跳转到心情随笔录入面板并携带当前数据
模块2:情绪打卡面板
- 功能描述:提供情绪记录的交互界面,支持多种情绪表达方式,包括分值评分、标签选择和文字描述。
- 涉及组件:表情刻度控件、标签多选器、备注输入框、能量指数选择器
- 交互说明:
- 情绪评分:提供0-100分值滑动条或五档表情刻度,直观表达情绪状态
- 情绪标签:预设常用情绪标签(如"开心"、"焦虑"、"疲惫"等),支持自定义添加
- 场景标签:提供"学业"、"社交"、"自我"等场景分类,帮助定位情绪来源
- 能量指数:0-5级能量评估,辅助判断用户当前精力状态
- 备注输入:支持280字以内的文字描述,记录详细情绪感受
- 附件支持:可选添加图片或语音附件,丰富情绪记录形式
模块3:心情曲线抽屉
- 功能描述:以折线图形式展示当日情绪波动趋势,支持查看历史记录和详细分析。
- 涉及组件:折线图组件、时间轴控制器、详情弹出层
- 交互说明:
- 横轴表示时间(0-24小时),纵轴表示情绪分值(0-100)
- 每个打卡记录在曲线上显示为数据点,支持点击查看详情
- 同日多次打卡时,曲线按时间顺序连接,展示情绪变化趋势
- 支持缩放和平移,查看不同时间段的情绪变化
- 显示情绪分类区间(正向60-100、中性40-59、负向0-39)
模块4:打卡历史记录
- 功能描述:按时间倒序展示当日所有打卡记录,支持展开查看详细信息和编辑功能。
- 涉及组件:时间线列表组件、展开折叠控件、编辑按钮
- 交互说明:
- 列表展示每次打卡的时间、情绪分值、主要标签和风险等级
- 支持展开查看完整的备注内容、附件和系统生成的建议
- 最近一次打卡支持编辑功能,可修正情绪记录
- 显示每次打卡后系统响应的微建议和任务推荐
AI / 智能分析逻辑
情绪智能判定
- 多维度分析:基于情绪分值、标签语义、场景上下文和文字描述,综合判定情绪类型
- 风险评估:根据情绪分值变化趋势、负面标签集中度、风险关键词等因素,计算风险等级(L1-L4)
- 个性化基准:结合用户历史情绪基线,评估当前情绪状态的相对异常程度
- 上下文理解:考虑时间因素(如考试季、节假日)和用户特定情境,提高判定准确性
自动响应机制
- L1级(一般):显示观察提示,建议继续保持关注
- L2级(关注):触发ASK助理浮层,推送2-3条微建议,记录观察期
- L3级(需要干预):强烈建议专业求助,推送心理咨询资源,考虑通知辅导员
- L4级(紧急危机):自动触发SOS流程,启动危机干预预案,通知紧急联系人
微建议生成逻辑
- 情绪匹配:基于当前情绪状态和历史模式,生成针对性建议
- 场景适配:结合打卡时的场景标签,提供环境相关的解决方案
- 个性化推荐:考虑用户偏好标签和历史建议采纳率,优化推荐内容
- 时效性考虑:根据时间因素(如深夜、考试前)调整建议的紧急程度
涉及组件
核心业务组件
- MoodStatusCard:情绪状态卡组件,展示当前情绪状态和风险等级
- MoodCheckinPanel:情绪打卡面板,包含评分、标签、备注等输入控件
- MoodCurveChart:心情曲线图表,展示当日情绪变化趋势
- CheckinHistoryList:打卡历史列表,展示当日所有打卡记录
- RiskLevelBadge:风险等级徽标,根据风险等级显示不同颜色和提示
交互组件
- MoodSlider:情绪分值滑动条,支持0-100分值选择
- TagSelector:标签多选器,支持情绪标签和场景标签的选择
- EnergyPicker:能量指数选择器,0-5级能量评估
- AttachmentUploader:附件上传组件,支持图片和语音附件
- ActionDialog:操作对话框,用于确认、提示等交互
状态组件
- EmotionIndicator:情绪状态指示器,显示主要情绪类型
- RiskAlert:风险提醒组件,显示风险等级和应对建议
- ProgressTracker:进度追踪器,显示情绪改善或恶化的趋势
数据需求与存储
数据模型
基于checkins集合,存储用户情绪打卡的完整信息:
- 基础信息:
user_id、checkin_date、checkin_count、input_type - 情绪数据:
mood_score、primary_emotion、mood_tags、energy_level - 上下文信息:
scene_tags、context_note、attachments - 风险评估:
risk_level、mood_wheel_snapshot - 关联数据:
related_task_id、suggestion_ids - 审计字段:
createdAt、updatedAt、createdBy、updatedBy
数据流转
- 数据采集:用户通过情绪打卡面板提交情绪数据
- 实时分析:系统立即分析情绪状态,计算风险等级
- 建议生成:基于分析结果生成个性化微建议
- 存储归档:完整记录保存到checkins集合
- 趋势计算:更新心情轮数据和趋势分析
关键API接口
POST /api/checkins:创建新的情绪打卡记录GET /api/moods/today:获取当日情绪打卡数据及统计GET /api/moods/trend:获取情绪趋势数据(支持时间范围查询)PUT /api/checkins/{id}:更新最近一次打卡记录GET /api/moods/history:获取历史打卡记录列表
页面跳转关系
从情绪打卡模块跳出的链接
- Ask助理对话:负向情绪时自动展开,点击进入完整对话界面
- 心情随笔录入:打卡成功后点击"补充随笔"跳转
- 任务详情页:点击微建议中的任务推荐进入
- 心理资源页面:点击风险提示中的资源推荐进入
- 设置页面:点击提醒设置或偏好设置进入
跳转到情绪打卡的入口
- 今天Tab首页:点击情绪状态卡或"再次打卡"按钮
- 心情随笔页:保存随笔时提示补打卡
- 任务完成页:任务完成后可选择情绪回执
- 晚安模式:睡前情绪状态记录
- 手动打卡:通过其他页面的快捷打卡入口
埋点与分析
关键埋点事件
- mood_checkin_start:用户开始情绪打卡
- mood_checkin_complete:情绪打卡完成
- mood_score_change:情绪分值变化
- risk_level_alert:风险等级提醒触发
- ask_assistant_open:ASK助理打开
- suggestion_click:微建议点击
- mood_curve_view:心情曲线查看
分析指标
- 打卡频率:用户打卡的活跃度和规律性
- 情绪分布:不同情绪类型的出现频率和持续时间
- 风险识别率:系统风险判定的准确性和及时性
- 建议采纳率:微建议的点击和执行情况
- 情绪改善趋势:长期情绪状态的变化趋势
数据应用
- 个性化推荐:基于历史情绪数据优化建议内容
- 风险预警:识别需要干预的高风险用户
- 效果评估:评估心理干预措施的有效性
- 产品优化:基于用户行为数据改进产品设计
技术实现要点
性能优化
- 本地缓存:当日情绪数据本地缓存,减少网络请求
- 增量更新:同日多次打卡时只更新变化部分
- 图表优化:心情曲线采用Canvas绘制,提升渲染性能
- 图片压缩:附件图片自动压缩,控制存储空间
错误处理
- 网络异常:支持离线打卡,网络恢复后同步数据
- 数据验证:前端数据格式验证,防止异常数据提交
- 并发控制:同用户并发打卡时采用事务处理
- 恢复机制:打卡失败时提供重试和恢复选项
安全与隐私
- 数据加密:敏感情绪数据传输和存储加密
- 访问控制:严格的权限控制,用户只能访问自己的数据
- 审计日志:完整的操作审计记录,支持安全追溯
- 合规处理:符合数据保护法规要求,支持数据导出和删除