Skip to content

页面→组件→集合字段映射表

字数
3043 字
阅读时间
13 分钟

概述

本映射表详细展示了 MindGuard 小程序各页面的组件如何与数据库集合字段进行交互。基于页面文档、UI组件文档、接口文档和数据库设计文档分析整理。

1. 今天页面 (pages/today)

1.1 页面结构

pages/today/
├── index.js              # 页面逻辑
├── index.wxml            # 页面结构
├── index.wxss            # 页面样式
└── components/
    ├── mood-card/         # 情绪卡片组件
    ├── suggestion-list/    # 建议列表组件
    ├── task-quick-add/    # 快速添加任务组件
    └── community-highlight/ # 社区高亮组件

1.2 组件-字段映射

组件页面元素集合字段映射数据流向说明
mood-card情绪选择轮盘checkinsmood_score, primary_emotion, mood_wheel_snapshot页面→数据库提交情绪打卡
mood-card情绪标签选择checkinsmood_tags, scene_tags页面→数据库记录情绪标签
mood-card能量指数选择checkinsenergy_level页面→数据库记录能量状态
mood-card备注输入框checkinscontext_note页面→数据库添加情绪备注
suggestion-listTop3建议卡片suggestionstitle, category, priority_rank, source数据库→页面显示建议列表
suggestion-list接受按钮taskstitle, category, origin_reference_id页面→数据库生成任务
suggestion-list跳过按钮suggestionsstatus页面→数据库更新建议状态
task-quick-add快速任务表单taskstitle, category, estimated_duration_minutes页面→数据库创建快速任务
community-highlight社区高亮卡片poststitle, topic, comment_count, hug_count数据库→页面显示热门内容

1.3 页面级数据交互

页面操作触发接口主要读取字段主要写入字段说明
页面加载/api/moods/todaycheckins: 今日情绪数据-显示今日状态
提交打卡/api/checkins-checkins: 情绪记录保存情绪数据
刷新建议/api/micro-tipssuggestions: 建议列表-获取新建议
创建任务/api/tasks-tasks: 任务信息生成新任务
查看社区/api/forum/highlightposts: 精选内容-显示社区高亮

2. 任务页面 (pages/tasks)

2.1 页面结构

pages/tasks/
├── index.js              # 任务列表页
├── detail/               # 任务详情页
├── create/               # 创建任务页
└── components/
    ├── task-list/         # 任务列表组件
    ├── task-card/         # 任务卡片组件
    ├── task-filters/      # 任务筛选器组件
    └── pomodoro-timer/    # 番茄计时器组件

2.2 组件-字段映射

组件页面元素集合字段映射数据流向说明
task-list任务分组列表tasksstatus, due_at, priority, category数据库→页面任务分组显示
task-card任务标题信息taskstitle, description, category数据库→页面显示任务基本信息
task-card状态切换按钮tasksstatus, task_status_logs页面→数据库更新任务状态
task-card子步骤清单taskschecklist_steps双向任务子步骤管理
task-card番茄计时器taskspomodoro_sessions页面→数据库记录计时数据
task-filters状态筛选器tasksstatus, category, source页面→数据库任务筛选条件
task-filters排序选择器tasksdue_at, priority, createdAt页面→数据库任务排序方式
pomodoro-timer计时器界面tasksestimated_duration_minutes, pomodoro_sessions双向番茄钟功能

2.3 详情页特殊组件

组件功能集合字段映射说明
task-review复盘表单tasksreview_data, linked_checkin_id任务复盘记录
task-attachment附件管理tasksreview_data.attachments复盘附件管理
task-assignment指派信息tasksassignment_info显示指派信息

3. 心情随笔页面 (pages/journal)

3.1 页面结构

pages/journal/
├── index.js              # 随笔列表页
├── editor/               # 随笔编辑器
├── detail/               # 随笔详情页
└── components/
    ├── journal-list/      # 随笔列表组件
    ├── entry-card/        # 随笔卡片组件
    ├── rich-editor/       # 富文本编辑器
    ├── media-uploader/    # 媒体上传组件
    └── rebt-assistant/    # REBT助手组件

3.2 组件-字段映射

组件页面元素集合字段映射数据流向说明
journal-list随笔时间轴journalscreatedAt, title, entry_type, mood_score数据库→页面时间轴显示
entry-card随笔预览卡片journalstitle, body_text, mood_score, share_scope数据库→页面随笔摘要显示
rich-editor文本编辑器journalsbody_text, word_count页面→数据库文本内容编辑
media-uploader语音录制journalsmedia_refs, audio_duration, body_text页面→数据库语音随笔功能
media-uploader图片上传journalsmedia_refs, ocr_text页面→数据库图片随笔功能
rebt-assistantREBT结构化journalsrebt_struct双向REBT分析辅助
mood-selector情绪选择器journalsmood_score, mood_tags, scene_tags页面→数据库情绪标签设置
share-settings分享设置journalsshare_scope, is_favorited页面→数据库隐私设置

3.3 AI功能组件

组件功能集合字段映射说明
ai-summary自动摘要journalsderived_summary, word_countAI生成摘要
sentiment-analysis情绪分析journalsmood_score, risk_level情绪风险评估
task-generator任务生成taskstitle, description, category基于随笔生成任务

4. 树洞社区页面 (pages/treehole)

4.1 页面结构

pages/treehole/
├── index.js              # 社区首页
├── post-editor/          # 发帖编辑器
├── post-detail/         # 帖子详情页
└── components/
    ├── post-feed/        # 信息流组件
    ├── post-card/        # 帖子卡片组件
    ├── comment-list/      # 评论列表组件
    ├── risk-banner/       # 风险提示横幅
    └── action-card/       # 行动卡组件

4.2 组件-字段映射

组件页面元素集合字段映射数据流向说明
post-feed信息流列表poststitle, content, topic, status, publishedAt数据库→页面帖子信息流
post-card帖子摘要poststitle, alias_name, mood_thermometer, comment_count数据库→页面帖子卡片显示
post-card互动按钮commentsaction_type, post_id, is_add页面→数据库抱抱/收藏功能
risk-banner风险提示postsrisk_level, risk_factors, intervention_triggered数据库→页面风险状态显示
comment-list评论列表commentscontent, is_anonymous, createdAt数据库→页面评论显示
comment-input评论输入commentscontent, is_anonymous, mood_thermometer页面→数据库发布评论
action-card行动卡taskstitle, category, origin_reference_id数据库→页面显示行动建议
topic-filter话题筛选poststopic, status页面→数据库话题分类筛选

4.3 安全相关组件

组件功能集合字段映射说明
self-check发布自检postsself_check_result发布前自检记录
anonymity-selector匿名设置postsanonymity_mode, alias_name匿名模式选择
content-moderation内容审核postsstatus, moderation_result审核状态显示

5. 我的页面 (pages/mine)

5.1 页面结构

pages/mine/
├── index.js              # 个人中心页
├── profile/              # 个人资料页
├── reports/              # 报告页面
└── components/
    ├── user-summary/     # 用户摘要组件
    ├── badge-wall/       # 徽章墙组件
    ├── statistics/        # 统计数据组件
    ├── resource-map/      # 资源地图组件
    └── settings/          # 设置组件

5.2 组件-字段映射

组件页面元素集合字段映射数据流向说明
user-summary用户信息卡片usersnickname, avatar_url, campus_affiliation, onboarding_stage数据库→页面用户基本信息
badge-wall徽章展示墙badgesbadge_code, status, progress_value, unlocked_at数据库→页面徽章成就展示
statistics数据统计checkins+tasks情绪趋势、任务完成率等聚合数据数据库→页面个人数据统计
weekly-report周报卡片reportstitle, period_label, content数据库→页面周报摘要显示
resource-map资源地图resourcesname, category, contact_info, available_hours数据库→页面支持资源展示
settings隐私设置usersguardian_ids, counselor_id, consent_version双向隐私授权管理
notification-center通知中心notificationstitle, content, status, send_at数据库→页面通知列表显示

6. 独立分包 (independent/ask)

6.1 Ask心理助理页面

6.1.1 页面结构

independent/ask/
├── index.js              # AI对话主页
└── components/
    ├── chat-container/     # 对话容器组件
    ├── message-bubble/     # 消息气泡组件
    ├── input-area/         # 输入区域组件
    ├── cbt-cards/          # CBT技巧卡片组件
    ├── risk-assessment/    # 风险评估组件
    ├── resource-panel/     # 资源推荐面板
    ├── quick-actions/      # 快捷操作组件
    └── typing-indicator/   # 输入状态指示器

6.1.2 组件-字段映射

组件页面元素集合字段映射数据流向说明
chat-container对话会话信息ask_sessionssession_type, trigger_source, risk_level, status双向会话状态管理
message-bubble用户消息ask_messagesmessage_type, content, cognitive_distortions, automatic_thoughts页面→数据库记录用户输入
message-bubbleAI回复ask_messagesmessage_type, cbt_technique, content, behavioral_suggestions数据库→页面显示AI响应
cbt-cards认知重构练习cbt_applicationstechnique_type, target_issue, intervention_plan, implementation_notes双向CBT技巧应用
cbt-cards技巧进度跟踪cbt_applicationscompletion_status, skill_mastery_level, effectiveness_rating页面→数据库技能掌握度更新
risk-assessment风险等级显示ask_sessionsinitial_risk_level, final_risk_level, intervention_triggered数据库→页面风险状态展示
risk-assessment风险因素分析ask_messagescognitive_distortions, risk_level_change数据库→页面风险因素详情
resource-panel资源推荐resourcesname, category, contact_info, available_hours数据库→页面支持资源显示
quick-actions快捷回复建议ask_messagesmessage_role, content数据库→页面交互建议
input-area多模态输入ask_messagescontent_type, content, processing_time_ms页面→数据库支持文本/语音/图片

6.1.3 会话级数据交互

页面操作触发接口主要读取字段主要写入字段说明
页面加载/api/ask/sessionsask_sessions: 用户会话历史-显示历史会话
新建会话/api/ask/sessions-ask_sessions: 会话基本信息创建新对话
发送消息Dify对话APIask_sessions: 会话上下文ask_messages: 消息记录处理用户输入
接收回复WebSocket推送ask_messages: AI响应-实时显示AI回复
CBT练习/api/cbt/applicationscbt_applications: 技巧模板cbt_applications: 应用记录记录CBT练习
风险评估实时监控ask_messages: 风险指标ask_sessions: 风险等级动态风险评估

6.2 SOS紧急求助

independent/sos/
├── index.js              # SOS求助页
└── components/
    ├── emergency-contact/ # 紧急联系组件
    ├── risk-assessment/   # 风险评估组件
    └── calm-breathing/    # 呼吸练习组件

6.2.1 组件-字段映射

组件功能集合字段映射数据流向说明
emergency-contact紧急联系人sos_eventscontact_info, preferred_channel, consent_scopes页面→数据库记录求助信息
risk-assessment风险自评sos_eventsrisk_level, user_notes, location_hint页面→数据库风险评估记录
sos-trigger求助触发器sos_eventstrigger, entry_point, severity_level页面→数据库SOS事件记录

7. 通用UI组件映射

7.1 基础组件

组件使用场景涉及集合字段映射说明
empty-state空态提示多个集合根据页面上下文决定统一空态处理
loading-spinner加载状态--通用加载组件
error-boundary错误处理-错误日志记录错误边界处理
toast-message消息提示--通用消息组件

7.2 表单组件

组件字段类型常见映射集合说明
form-input文本输入users.nickname, tasks.title通用文本输入
form-select选择输入tasks.category, posts.topic枚举值选择
form-date日期选择tasks.due_at, checkins.checkin_date日期时间选择
form-tags标签输入checkins.mood_tags, posts.tags标签管理
form-upload文件上传journals.media_refs媒体文件上传

8. 数据流向模式

8.1 页面加载模式

页面 onLoad → 调用API接口 → 获取集合数据 → 组件渲染 → 用户交互

8.2 用户交互模式

用户操作 → 组件事件处理 → 调用API接口 → 更新集合数据 → 页面状态更新

8.3 实时更新模式

数据库变更 → 云函数触发 → WebSocket推送 → 页面接收 → 组件重新渲染

9. 性能优化考虑

9.1 数据缓存策略

  • 页面级缓存: 首页数据本地缓存,提升加载速度
  • 组件级缓存: 徽章、统计等数据缓存,减少重复请求
  • 图片缓存: 头像、附件等媒体文件缓存

9.2 分包加载策略

  • 主包: 四个Tab页面核心功能
  • 普通分包: journal, community, profile 功能模块
  • 独立分包: sos 紧急功能,确保快速访问

9.3 组件复用策略

  • 通用组件: empty-state, loading, toast等跨页面复用
  • 业务组件: task-card, post-card等在多个页面复用
  • 容器组件: list-view, card-container等布局组件复用

文档版本: v1.0.0 最后更新: 2025-09-22 对齐文档: 页面文档、UI组件文档、接口文档、数据库设计

贡献者

The avatar of contributor named as Cai Hongyu Cai Hongyu

文件历史

撰写