Files
msh-system/msh_single_uniapp/documents/用户界面交互设计.md

1311 lines
52 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 慢生活智能营养专家小程序 - 产品功能说明
## 用户界面交互设计文档
---
## 📋 文档信息
| 项目 | 内容 |
|------|------|
| 产品名称 | 慢生活智能营养专家 |
| 版本号 | v2.0 |
| 文档类型 | 产品功能说明着重UI交互 |
| 创建日期 | 2025-01-20 |
| 设计来源 | Figma设计稿 + PRD文档 |
---
## 一、产品概述
### 1.1 产品定位
为肾病患者打造的智能营养管理小程序通过科学计算、AI辅助和社区互动帮助用户实现精准营养管理。
### 1.2 核心功能模块
- 🧮 **食谱计算器** - 个性化营养方案计算
- 💬 **AI营养师** - 24小时智能问答
- 📸 **饮食打卡** - 每日饮食记录与激励
- 👥 **打卡社区** - UGC内容分享与互动
- 🔍 **食物百科** - 营养成分查询
- 💡 **营养知识** - 专业营养指导
---
## 二、整体界面架构
### 2.1 导航结构
#### 底部标签栏TabBar
采用5个标签页的底部导航设计
| 标签 | 图标 | 功能 | 交互说明 |
|------|------|------|---------|
| 首页 | 🏠 | 功能入口与内容推荐 | 点击切换至首页,显示用户卡片、功能入口、推荐内容 |
| 食谱 | 🍱 | 食谱浏览与管理 | 显示收藏和历史食谱,支持搜索和筛选 |
| 咨询 | 💬 | AI营养师对话 | 进入对话界面,支持文字、语音、图片输入 |
| 营养 | 📚 | 营养知识库 | 分类浏览营养知识、科普文章 |
| 我的 | 👤 | 个人中心 | 用户信息、健康档案、设置等 |
**交互细节**
- 未选中状态:灰色图标(#666666
- 选中状态:绿色图标(#4CAF50
- 点击标签:平滑切换页面,无页面跳转动画
- 标签栏固定在屏幕底部,滚动时保持可见
---
## 三、核心页面交互设计
### 3.1 首页Index
#### 3.1.1 页面结构
```
┌─────────────────────────────────┐
│ Header: 慢生活智能营养专家 │
│ [标题] [更多菜单] │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【用户卡片】 │
│ 👤 头像 | 昵称 | 状态 │
│ [打卡按钮] │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【功能入口】2x2网格
│ 📊 食谱计算器 💬 AI营养师 │
│ 🔍 食物百科 💡 营养知识 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【食谱推荐】 │
│ 标题 | 查看更多 → │
│ [卡片列表:图片+标题+描述] │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【欢迎横幅】 │
│ 🤝 慢生活营养专家 │
│ [免费领取按钮] │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【健康知识】 │
│ 标题 | 查看更多 → │
│ [列表:图标+标题+描述+阅读量] │
└─────────────────────────────────┘
```
#### 3.1.2 交互说明
**用户卡片区域**
- **点击头像**:跳转至个人中心
- **点击"打卡"按钮**
- 如果未完成健康档案 → 提示"请先完成健康档案"
- 如果已完成 → 跳转至每日打卡页面
- **状态显示**
- 已完成:显示"已完成健康档案"(绿色文字)
- 未完成:显示"尚未完成健康档案"(灰色文字)
**功能入口卡片**
- **布局**2x2网格每个卡片包含
- 左侧:圆形图标背景(不同颜色)
- 右侧:标题 + 描述文字
- **点击交互**
- 点击卡片 → 跳转至对应功能页面
- 点击反馈轻微缩放动画scale: 0.95
- **卡片颜色**
- 食谱计算器:橙色渐变
- AI营养师蓝色渐变
- 食物百科:绿色渐变
- 营养知识:紫色渐变
**食谱推荐区域**
- **滚动方式**横向滚动scroll-view horizontal
- **卡片交互**
- 点击卡片 → 跳转至食谱详情页
- 卡片显示:封面图 + 餐次标签 + 标题 + 描述 + 标签 + 元数据(时间、浏览量)
- **"查看更多"**:点击跳转至食谱列表页
**欢迎横幅**
- **背景**:渐变背景 + 装饰性圆形元素
- **按钮交互**
- 点击"免费领取" → 跳转至营养方案领取页
- 按钮样式:白色文字 + 箭头图标
**健康知识列表**
- **列表项交互**
- 点击列表项 → 跳转至知识详情页
- 显示:图标 + 标题 + 描述 + 阅读时间 + 浏览量
**页面滚动**
- 使用 `scroll-view` 组件,支持下拉刷新
- 滚动时底部标签栏保持固定
---
### 3.2 食谱计算器Calculator
#### 3.2.1 输入表单页
**页面结构**
```
┌─────────────────────────────────┐
│ < 返回 食谱计算器 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【性别选择】 │
│ ○ 男 ○ 女 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【年龄】 │
│ [输入框] 岁 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【身高】 │
│ [输入框] cm │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【是否透析】 │
│ ○ 是 ○ 否 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【透析类型】(条件显示) │
│ ○ 血液透析 ○ 腹膜透析 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【干体重】 │
│ [输入框] kg │
│ 💡 提示:透析患者请输入透析后 │
│ 的干体重 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【血肌酐】 │
│ [输入框] μmol/L │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ [开始计算](固定在底部) │
└─────────────────────────────────┘
```
**交互说明**
**单选按钮**
- **样式**:自定义圆形选择器
- **未选中**:灰色边框圆圈
- **选中**:橙色边框 + 橙色填充圆点
- **点击反馈**:立即切换选中状态,带动画效果
**输入框**
- **样式**
- 背景色:浅灰色(#f5f5f5
- 圆角12rpx
- 内边距24rpx
- 右侧显示单位(灰色文字)
- **输入限制**
- 年龄:整数,范围 1-120
- 身高:支持小数,范围 50-250
- 干体重:支持小数,范围 20-200
- 血肌酐:支持小数,范围 10-2000
- **输入反馈**
- 获得焦点:边框高亮(橙色)
- 输入错误:显示红色提示文字
- 失去焦点:自动验证格式
**条件显示逻辑**
- 当"是否透析"选择"是"时,显示"透析类型"选项
- 当选择"否"时,隐藏"透析类型"选项
- 显示/隐藏使用动画过渡fade + slide
**底部按钮**
- **样式**:橙色渐变背景,圆角按钮,固定在底部
- **状态管理**
- 未完成必填项:按钮灰色,不可点击
- 完成所有必填项:按钮橙色,可点击
- **点击交互**
- 点击后显示加载动画
- 计算完成后跳转至结果页
- 如果计算失败,显示错误提示
---
#### 3.2.2 计算结果页
**页面结构**
```
┌─────────────────────────────────┐
│ < 返回 营养计算结果 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【健康数据卡片】2x2网格
│ ┌──────┐ ┌──────┐ │
│ │ eGFR │ │ 标准体重│ │
│ │ XX.XX│ │ XX.X │ │
│ └──────┘ └──────┘ │
│ ┌──────┐ ┌──────┐ │
│ │ BMI │ │ CKD分期│ │
│ │ XX.X │ │ CKD X期│ │
│ └──────┘ └──────┘ │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【每日营养目标】1x2网格
│ ┌──────────┐ ┌──────────┐ │
│ │ 蛋白质 │ │ 能量 │ │
│ │ XX.X 克/天│ │ XXXX 千卡│ │
│ └──────────┘ └──────────┘ │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【食物份数建议】 │
│ 1. 谷薯50g [5.7份] 详情 │
│ 2. 淀粉100g [0.77份] 详情 │
│ 3. 绿叶蔬菜200g [1份] 详情 │
│ ... │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【每日营养配餐】⭐⭐⭐ │
│ ┌──────────────────────────┐ │
│ │ 🌅 早餐 (7:00-8:00) │ │
│ │ ┌────────────────────┐ │ │
│ │ │ 🥛 牛奶 │ │ │
│ │ │ 牛奶 120g │ │ │
│ │ └────────────────────┘ │ │
│ │ ┌────────────────────┐ │ │
│ │ │ 🍜 鸡蛋拌面 │ │ │
│ │ │ 面条 90g │ │ │
│ │ │ 鸡蛋 120g │ │ │
│ │ └────────────────────┘ │ │
│ └──────────────────────────┘ │
│ ┌──────────────────────────┐ │
│ │ ☀️ 午餐 (12:00-13:00) │ │
│ │ [菜品卡片...] │ │
│ └──────────────────────────┘ │
│ ┌──────────────────────────┐ │
│ │ 🌙 晚餐 (18:00-19:00) │ │
│ │ [菜品卡片...] │ │
│ └──────────────────────────┘ │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ ⚠️ 重要提示 │
│ • 透析患者需严格控制水分摄入 │
│ • 建议低盐饮食每日少于5g
│ ... │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ [✨ 生成AI智能食谱] │
│ [联系专业营养师] │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 💡 温馨提示 │
│ 以上计算结果仅供参考... │
└─────────────────────────────────┘
```
**交互说明**
**健康数据卡片**
- **布局**2x2网格橙色渐变背景
- **数据展示**
- 每个卡片显示:标签 + 数值 + 单位
- 数值使用大号字体突出显示
- **点击交互**:点击卡片可查看详细说明(弹窗或跳转)
**营养目标卡片**
- **布局**1x2横向排列
- **颜色区分**
- 蛋白质:橙色渐变
- 能量:红色渐变
- **数据展示**:大号数字 + 单位
**食物份数列表**
- **列表项交互**
- 点击"详情"按钮 → 显示该食物类别的详细说明
- 列表项支持展开/收起(可选功能)
**每日营养配餐**
- **餐次卡片**
- 顶部Header渐变色背景 + Emoji图标 + 餐次名称 + 时间范围
- 早餐:橙粉色渐变
- 午餐:黄橙色渐变
- 晚餐:橙红色渐变
- **菜品卡片**
- 左侧菜品图片80x80圆角
- 右侧:菜品名称 + 食材列表
- 食材以Badge形式展示小标签
- **交互**
- 点击菜品卡片 → 查看菜品详情(食材、营养、做法)
- 支持左右滑动查看所有菜品(可选)
**操作按钮**
- **主按钮**"✨ 生成AI智能食谱"
- 点击 → 跳转至AI营养师页面自动带入营养数据
- **次按钮**"联系专业营养师"
- 点击 → 打开客服对话或拨打电话
**页面滚动**
- 支持长页面滚动
- 重要按钮可固定在底部(可选)
---
### 3.3 AI营养师Chat
#### 3.3.1 页面结构
```
┌─────────────────────────────────┐
│ < 返回 AI营养师 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【消息区域】(可滚动) │
│ │
│ ┌──────────────────────────┐ │
│ │ 👋 您好我是您的AI营养师 │ │
│ │ 助手。 │ │
│ │ │ │
│ │ 我可以帮您: │ │
│ │ • 解答饮食疑问 │ │
│ │ • 评估食物适宜性 │ │
│ │ ... │ │
│ └──────────────────────────┘ │
│ │
│ ┌──────────────────────────┐ │
│ │ [常见问题快捷按钮] │ │
│ │ [我今天想吃香蕉,可以吗?] │ │
│ │ [如何降低蔬菜中的钾含量?] │ │
│ │ ... │ │
│ └──────────────────────────┘ │
│ │
│ ┌──────────┐ │
│ │ 用户消息 │ │
│ │ 气泡 │ │
│ └──────────┘ │
│ │
│ ┌──────────┐ │
│ │ AI消息 │ │
│ │ 气泡 │ │
│ └──────────┘ │
│ │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【输入栏】(固定在底部) │
│ [图片] [语音] [输入框] [发送] │
└─────────────────────────────────┘
```
#### 3.3.2 交互说明
**欢迎消息**
- **显示时机**:首次进入页面时显示
- **样式**:白色气泡,左对齐
- **内容**AI能力介绍 + 常见问题快捷按钮
**常见问题快捷按钮**
- **布局**4个按钮垂直排列
- **样式**:浅灰色背景,圆角按钮
- **交互**
- 点击按钮 → 自动发送该问题
- 按钮文字显示在用户消息气泡中
**消息气泡**
**用户消息**
- **样式**
- 橙色渐变背景from-orange-500 to-orange-600
- 白色文字
- 右对齐
- 圆角气泡
- **显示内容**:消息文字 + 发送时间(小字,灰色)
**AI消息**
- **样式**
- 白色背景 + 灰色边框
- 黑色文字
- 左对齐
- 圆角气泡
- **显示内容**
- 顶部AI头像 + "AI 营养师助手"标签
- 消息文字
- 底部:发送时间(小字,灰色)
**打字动画**
- **触发时机**用户发送消息后1-2秒
- **动画效果**3个灰色小圆点跳动...
- **持续时间**直到AI回复完成
**输入栏**
- **布局**:固定在屏幕底部
- **功能按钮**
- 图片按钮:点击选择图片 → 发送图片消息
- 语音按钮:长按录音 → 松开发送语音
- **输入框**
- 支持多行输入
- 获得焦点时,输入栏上移,键盘弹出
- **发送按钮**
- 有内容时:显示发送按钮(橙色)
- 无内容时:隐藏发送按钮
- 点击发送 → 消息显示在消息区域
**消息滚动**
- 新消息发送后,自动滚动到底部
- 支持手动滚动查看历史消息
**图片消息**
- **显示方式**:缩略图 + 点击查看大图
- **上传方式**:从相册选择或拍照
**语音消息**
- **录制方式**:长按录音按钮
- **播放方式**:点击语音气泡播放
- **显示**:语音时长 + 波形图(可选)
---
### 3.4 饮食打卡Check-in
#### 3.4.1 打卡页面结构
```
┌─────────────────────────────────┐
│ < 返回 每日打卡 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【餐次选择】 │
│ [早餐] [午餐] [晚餐] [加餐] │
Tab切换选中高亮
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【推荐菜品】(可选) │
│ ☑️ 牛奶 │
│ ☑️ 鸡蛋拌面 │
│ ☐ 凉拌黄瓜 │
│ (从营养计划中获取) │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【实际食用】 │
│ [输入框:描述今天吃了什么] │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【上传照片】最多9张
│ ┌──┐ ┌──┐ ┌──┐ [+添加] │
│ │图│ │图│ │图│ │
│ └──┘ └──┘ └──┘ │
│ (支持删除、预览) │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【语音备注】(可选) │
│ [🎤 点击录音] │
│ (显示录音时长,支持播放) │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【AI智能分析】 │
│ ☑️ 开启AI识别食物 │
│ (自动识别照片中的食物) │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【AI视频生成】 │
│ ☑️ 生成AI视频分享 │
│ (生成打卡视频,+20积分
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ [提交打卡](固定在底部) │
└─────────────────────────────────┘
```
#### 3.4.2 交互说明
**餐次选择**
- **样式**Tab切换样式选中状态高亮橙色背景
- **交互**
- 点击切换餐次 → 清空当前输入内容
- 切换时有滑动动画
**推荐菜品**
- **显示条件**:如果用户已采纳营养计划,显示推荐菜品
- **交互**
- 复选框:点击勾选/取消
- 勾选的菜品自动添加到"实际食用"输入框
**实际食用输入框**
- **样式**:多行文本输入框
- **功能**:支持手动输入或从推荐菜品选择
**照片上传**
- **上传方式**
- 点击"+"按钮 → 选择相册或拍照
- 最多上传9张
- **照片展示**
- 网格布局3列
- 每张照片显示删除按钮右上角X
- **交互**
- 点击照片 → 预览大图(支持左右滑动)
- 长按照片 → 删除确认(可选)
**语音备注**
- **录制**
- 点击录音按钮 → 开始录音
- 显示录音时长(实时更新)
- 再次点击 → 停止录音
- **播放**
- 录制完成后显示播放按钮
- 点击播放 → 播放录音
- **删除**:支持删除已录制的语音
**AI智能分析开关**
- **功能**:开启后,上传照片时自动识别食物
- **显示**:识别结果以标签形式显示在照片下方
**AI视频生成开关**
- **功能**:开启后,提交打卡时自动生成视频
- **奖励**:生成视频可获得+20积分
**提交按钮**
- **状态管理**
- 未填写内容:按钮灰色,不可点击
- 已填写内容:按钮橙色,可点击
- **提交流程**
1. 点击提交 → 显示加载动画
2. 上传数据 → 显示进度
3. 提交成功 → 跳转至打卡成功页
4. 显示获得的积分奖励
---
### 3.5 打卡社区Community
#### 3.5.1 社区广场
**页面结构**
```
┌─────────────────────────────────┐
│ 🏠 社区广场 [发布+] │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【筛选Tab】 │
│ [推荐] [最新] [关注] [热门] │
│ (选中状态:橙色下划线) │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【瀑布流内容】2列布局
│ ┌──────┐ ┌──────┐ │
│ │ 封面图│ │ 封面图│ │
│ │ │ │ │ │
│ ├──────┤ ├──────┤ │
│ │ 标题 │ │ 标题 │ │
│ │ 用户 │ │ 用户 │ │
│ │ ❤️ 128│ │ ❤️ 256│ │
│ └──────┘ └──────┘ │
│ ┌──────┐ ┌──────┐ │
│ │ ... │ │ ... │ │
│ └──────┘ └──────┘ │
└─────────────────────────────────┘
```
**交互说明**
**筛选Tab**
- **切换交互**
- 点击Tab → 切换内容列表
- 选中状态:橙色文字 + 下划线
- 切换时有滑动动画
- **Tab说明**
- 推荐:算法推荐内容
- 最新:按时间排序
- 关注:仅显示关注用户的内容
- 热门:按点赞数排序
**瀑布流布局**
- **布局方式**2列网格左右交替
- **卡片内容**
- 封面图:自动取打卡照片第一张
- 标题:打卡标题(截断显示)
- 用户信息:头像 + 昵称
- 互动数据:点赞数
- **卡片交互**
- 点击卡片 → 跳转至内容详情页
- 点击反馈:轻微缩放动画
**发布按钮**
- **位置**:右上角
- **交互**:点击 → 跳转至发布页面
**下拉刷新**
- **触发方式**:下拉页面
- **反馈**:显示刷新动画
- **刷新后**:重新加载最新内容
**上拉加载**
- **触发方式**:滚动到底部
- **反馈**:显示加载动画
- **加载后**:追加更多内容
---
#### 3.5.2 内容详情页
**页面结构**
```
┌─────────────────────────────────┐
│ < 返回 [更多菜单] │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【用户信息】 │
│ 👤 头像 昵称透析3年
│ 📅 2025-11-20 12:30 │
│ [+ 关注] │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【图片轮播】1/3 │
│ [滑动查看更多照片] │
│ (支持左右滑动,显示页码) │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【内容文字】 │
│ 🥗 早餐打卡第7天
│ #早餐 #低钾饮食 #透析期 │
│ (话题标签可点击) │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【营养数据卡片】 │
│ 蛋白质18.8g (达标94%) │
│ 能量452kcal (达标90%) │
│ 🎯 整体营养达标率92% │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【互动栏】(固定在底部) │
│ ❤️ 128 💬 23 ⭐ 45 ➤ 分享 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【评论区】 │
│ ┌──────────────────────────┐ │
│ │ 👤 用户A │ │
│ │ 太棒了!我也要学习这样吃 │ │
│ │ ❤️ 5 [回复] │ │
│ └──────────────────────────┘ │
│ ┌──────────────────────────┐ │
│ │ 👤 用户B │ │
│ │ 坚持得很好,营养搭配合理👍 │ │
│ │ ❤️ 3 [回复] │ │
│ └──────────────────────────┘ │
└─────────────────────────────────┘
```
**交互说明**
**用户信息区域**
- **关注按钮**
- 未关注:显示"+ 关注"(橙色按钮)
- 已关注:显示"已关注"(灰色按钮)
- 点击切换关注状态
**图片轮播**
- **滑动方式**:左右滑动切换图片
- **显示**页码指示器1/3
- **交互**
- 点击图片 → 全屏预览(支持缩放)
- 支持多张图片1-3张
**话题标签**
- **样式**:蓝色文字,带#号
- **交互**:点击标签 → 跳转至话题页
**营养数据卡片**
- **数据来源**:自动从打卡记录获取
- **展示方式**:卡片式布局,数据可视化
**互动栏**
- **点赞按钮**
- 未点赞:空心❤️
- 已点赞:实心❤️(红色)
- 点击切换点赞状态,数字实时更新
- **评论按钮**
- 点击 → 滚动至评论区,聚焦输入框
- **收藏按钮**
- 未收藏:空心⭐
- 已收藏:实心⭐(黄色)
- 点击切换收藏状态
- **分享按钮**
- 点击 → 显示分享菜单(微信好友、朋友圈等)
**评论区**
- **评论列表**
- 显示:用户头像 + 昵称 + 评论内容 + 点赞数
- 支持回复评论(二级评论)
- **评论输入**
- 固定在底部(可选)
- 或点击评论按钮后弹出输入框
- **评论交互**
- 点击评论 → 回复该评论
- 长按评论 → 显示删除选项(仅自己的评论)
**页面滚动**
- 支持长页面滚动
- 互动栏可固定在底部(可选)
---
### 3.6 食物百科Food Search
#### 3.6.1 页面结构
```
┌─────────────────────────────────┐
│ < 返回 食物百科 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【搜索栏】 │
│ 🔍 [搜索食物名称...] │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【分类横向滚动】 │
│ 🌾 谷薯类 🥬 蔬菜类 🍎 水果类 │
│ 🍖 肉蛋类 🐟 水产类 ... │
│ (选中状态:橙色背景) │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【食物列表】 │
│ ┌──────────────────────────┐ │
│ │ [图片] 香蕉 │ │
│ │ 水果类 │ │
│ │ 🟡 钾:中 🔴 磷:高│ │
│ │ ⚠️ 慎用 │ │
│ └──────────────────────────┘ │
│ ┌──────────────────────────┐ │
│ │ [图片] 苹果 │ │
│ │ 水果类 │ │
│ │ 🟢 钾:低 🟢 磷:低│ │
│ └──────────────────────────┘ │
│ ... │
└─────────────────────────────────┘
```
#### 3.6.2 交互说明
**搜索栏**
- **交互**
- 点击搜索栏 → 聚焦,弹出键盘
- 输入关键词 → 实时搜索(防抖处理)
- 显示搜索结果列表
- **清空**:输入框右侧显示"X"按钮,点击清空
**分类滚动**
- **布局**横向滚动scroll-view horizontal
- **选中状态**:橙色背景 + 白色文字
- **交互**
- 点击分类 → 切换食物列表
- 切换时有滑动动画
**食物列表**
- **列表项内容**
- 左侧食物图片80x80圆角
- 右侧:食物名称 + 分类标签 + 营养成分标签 + 警告标志
- **营养成分标签**
- 🟢 绿色:低(适宜)
- 🟡 黄色:中(适量)
- 🔴 红色:高(慎用)
- **警告标志**
- ⚠️ 显示在慎用食物上
- **列表项交互**
- 点击列表项 → 跳转至食物详情页
---
#### 3.6.2 食物详情页
**页面结构**
```
┌─────────────────────────────────┐
│ < 返回 食物详情 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【食物大图】 │
│ [食物图片,全宽显示] │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 香蕉 │
│ 分类:水果类 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【营养成分表】 │
│ ┌──────────────────────────┐ │
│ │ 每100g含量 │ │
│ ├──────────────────────────┤ │
│ │ 能量93 kcal │ │
│ │ 蛋白质1.2 g │ │
│ │ 钾330 mg 🟡 中 │ │
│ │ 磷20 mg 🟢 低 │ │
│ │ 钠1 mg 🟢 低 │ │
│ └──────────────────────────┘ │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【适宜性判断】 │
│ ⚠️ 慎用 │
│ 香蕉含钾量较高,透析患者需谨慎 │
│ 食用。 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【食用建议】 │
│ • 如果血钾控制良好,可少量食用 │
│ • 建议透析后食用更安全 │
│ • 建议咨询主治医生确认 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ [咨询AI营养师] │
└─────────────────────────────────┘
```
**交互说明**
**营养成分表**
- **展示方式**:表格形式,清晰易读
- **颜色标识**:与列表页一致(绿/黄/红)
**适宜性判断**
- **显示**:警告图标 + 判断结果 + 说明文字
- **样式**:根据适宜性显示不同颜色(绿色/黄色/红色背景)
**食用建议**
- **内容**:针对该食物的具体建议
- **格式**:列表形式,每项一条建议
**咨询按钮**
- **交互**:点击 → 跳转至AI营养师页面自动带入食物名称
---
### 3.7 营养知识Knowledge
#### 3.7.1 页面结构
```
┌─────────────────────────────────┐
│ < 返回 营养知识 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【Tab切换】 │
│ [营养素百科] [饮食指南] [科普文章]│
│ (选中状态:橙色下划线) │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【内容列表】根据Tab切换
│ │
│ 【营养素百科】 │
│ ┌──────────────────────────┐ │
│ │ 💊 蛋白质 │ │
│ │ 优质蛋白质的来源和作用 │ │
│ │ 📖 阅读 5分钟 │ │
│ └──────────────────────────┘ │
│ ... │
│ │
│ 【饮食指南】 │
│ ┌──────────────────────────┐ │
│ │ 📋 CKD 1-2期饮食指南 │ │
│ │ 早期肾病的饮食原则 │ │
│ │ 📖 阅读 8分钟 │ │
│ └──────────────────────────┘ │
│ ... │
│ │
│ 【科普文章】 │
│ ┌──────────────────────────┐ │
│ │ [封面图] 文章标题 │ │
│ │ 文章摘要... │ │
│ │ 📖 阅读 10分钟 │ │
│ └──────────────────────────┘ │
│ ... │
└─────────────────────────────────┘
```
#### 3.7.2 交互说明
**Tab切换**
- **交互**点击Tab → 切换内容列表
- **选中状态**:橙色文字 + 下划线
- **切换动画**:滑动过渡
**内容列表**
- **营养素百科**
- 列表项:图标 + 标题 + 描述 + 阅读时间
- 点击 → 跳转至营养素详情页
- **饮食指南**
- 列表项:图标 + 标题 + 描述 + 阅读时间
- 点击 → 跳转至指南详情页
- **科普文章**
- 列表项:封面图 + 标题 + 摘要 + 阅读时间
- 点击 → 跳转至文章详情页
**详情页交互**
- **页面结构**:标题 + 正文内容 + 相关推荐
- **阅读体验**
- 支持长页面滚动
- 字体大小适中,易于阅读
- 支持收藏、分享功能
---
### 3.8 个人中心Mine
#### 3.8.1 页面结构
```
┌─────────────────────────────────┐
│ 【用户信息卡片】 │
│ ┌──────────────────────────┐ │
│ │ 👤 头像 │ │
│ │ 昵称 │ │
│ │ 积分525分 │ │
│ │ [编辑资料] │ │
│ └──────────────────────────┘ │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【我的健康】 │
│ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │健康档案│ │营养计划│ │数据报告│ │
│ └──────┘ └──────┘ └──────┘ │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【我的打卡】 │
│ ┌──────────────────────────┐ │
│ │ 📅 打卡日历 │ │
│ │ 连续打卡7天 │ │
│ │ [查看详情] │ │
│ └──────────────────────────┘ │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【我的食谱】 │
│ ┌──────────────────────────┐ │
│ │ ❤️ 收藏的食谱 │ │
│ │ 📜 历史食谱 │ │
│ └──────────────────────────┘ │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【工具与服务】 │
│ ┌──────────────────────────┐ │
│ │ 🔍 食物搜索 │ │
│ │ 📚 知识库 │ │
│ │ ⏰ 提醒设置 │ │
│ └──────────────────────────┘ │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 【设置】 │
│ ┌──────────────────────────┐ │
│ │ 关于我们 │ │
│ │ 💬 意见反馈 │ │
│ │ 📞 客服中心 │ │
│ └──────────────────────────┘ │
└─────────────────────────────────┘
```
#### 3.8.2 交互说明
**用户信息卡片**
- **头像**:点击 → 更换头像(选择图片或拍照)
- **积分显示**:点击 → 跳转至积分中心
- **编辑资料**:点击 → 跳转至资料编辑页
**我的健康**
- **健康档案**:点击 → 查看/编辑健康档案
- **营养计划**:点击 → 查看当前营养计划
- **数据报告**:点击 → 查看健康数据报告
**我的打卡**
- **打卡日历**:显示打卡记录(日历形式)
- **连续打卡**:显示连续打卡天数
- **查看详情**:点击 → 跳转至打卡历史页
**我的食谱**
- **收藏的食谱**:点击 → 查看收藏列表
- **历史食谱**:点击 → 查看历史记录
**工具与服务**
- **食物搜索**:点击 → 跳转至食物百科
- **知识库**:点击 → 跳转至营养知识
- **提醒设置**:点击 → 设置打卡提醒
**设置**
- **关于我们**:点击 → 显示产品信息
- **意见反馈**:点击 → 跳转至反馈页面
- **客服中心**:点击 → 打开客服对话
---
## 四、通用交互规范
### 4.1 页面跳转
**跳转方式**
- **navigateTo**:普通页面跳转(保留当前页面)
- **redirectTo**:重定向跳转(关闭当前页面)
- **switchTab**:切换底部标签页
**跳转动画**
- 默认使用微信小程序原生动画
- 支持自定义动画(可选)
### 4.2 加载状态
**加载提示**
- **页面加载**显示加载动画loading
- **数据加载**:显示"加载中..."文字
- **下拉刷新**:显示刷新动画
- **上拉加载**:显示"加载更多..."文字
**加载反馈**
- 所有异步操作都需要显示加载状态
- 加载失败时显示错误提示
### 4.3 错误处理
**错误提示**
- **网络错误**:显示"网络连接失败,请重试"
- **数据错误**:显示"数据加载失败"
- **操作错误**:显示具体错误原因
**错误交互**
- 显示错误提示后,提供"重试"按钮
- 错误提示自动消失3秒后
### 4.4 表单验证
**实时验证**
- 输入时实时验证格式
- 错误时显示红色提示文字
**提交验证**
- 提交前验证所有必填项
- 验证失败时,高亮错误项并显示提示
### 4.5 反馈机制
**操作反馈**
- **点击反馈**按钮点击时有缩放动画scale: 0.95
- **切换反馈**Tab切换时有滑动动画
- **成功反馈**操作成功时显示Toast提示
**视觉反馈**
- **选中状态**:使用颜色高亮(橙色)
- **禁用状态**:使用灰色,降低透明度
- **加载状态**:显示加载动画
---
## 五、视觉设计规范
### 5.1 颜色系统
**主色调**
- **主色**#4CAF50(绿色)
- **辅助色**#FF9800(橙色)
- **背景色**#F5F5F5(浅灰)
**功能色**
- **成功**#4CAF50(绿色)
- **警告**#FF9800(橙色)
- **错误**#F44336(红色)
- **信息**#2196F3(蓝色)
**文字颜色**
- **主文字**#333333(深灰)
- **次要文字**#666666(中灰)
- **辅助文字**#999999(浅灰)
### 5.2 字体规范
**字号**
- **标题**36rpx18px
- **副标题**32rpx16px
- **正文**28rpx14px
- **辅助文字**24rpx12px
**字重**
- **标题**Bold700
- **正文**Regular400
### 5.3 间距规范
**页面边距**20rpx10px
**卡片内边距**24rpx12px
**元素间距**16-32rpx8-16px
### 5.4 圆角规范
**按钮圆角**12rpx6px
**卡片圆角**16rpx8px
**输入框圆角**12rpx6px
---
## 六、特殊功能交互
### 6.1 一键复制打卡
**功能说明**:从历史打卡记录中快速复制,生成新的打卡记录。
**交互流程**
1. 在打卡历史页点击"一键复制"按钮
2. 跳转至复制确认页(预览内容)
3. 确认后跳转至打卡页(内容已填充)
4. 用户可修改内容后提交
5. 提交成功获得+5积分
**数据填充**
- 自动填充:照片、备注、餐次
- 用户可修改所有内容
### 6.2 AI视频生成
**功能说明**:根据打卡内容自动生成分享视频。
**交互流程**
1. 在打卡页开启"AI视频生成"开关
2. 提交打卡后自动生成视频
3. 生成完成后显示视频预览
4. 用户可选择分享到社区或保存到相册
5. 获得+20积分奖励
**视频内容**
- 包含:打卡照片、营养数据、文字描述
- 自动添加背景音乐和动画效果
### 6.3 积分系统
**积分显示**
- 在个人中心显示总积分
- 在操作后显示获得的积分Toast提示
**积分获得**
- 完成打卡:+5分
- 上传照片:+10分
- AI智能分析+10分
- 生成AI视频+20分
- 一键复制打卡:+5分
- 连续打卡:+50/100/500分3/7/30天
**积分兑换**
- 在积分中心查看可兑换项目
- 点击兑换 → 确认兑换 → 扣除积分
---
## 七、响应式设计
### 7.1 屏幕适配
**设计尺寸**
- 设计稿375pxiPhone 6/7/8
- 使用rpx单位自动适配不同屏幕
**适配方案**
- 使用微信小程序rpx单位
- 关键元素使用flex布局
- 图片使用mode="aspectFill"保持比例
### 7.2 横竖屏
**默认**:竖屏显示
**横屏**:保持竖屏布局(不强制横屏)
---
## 八、性能优化
### 8.1 图片优化
**图片格式**优先使用WebP格式
**图片大小**单张图片不超过1MB
**图片加载**使用懒加载lazy-load
### 8.2 数据加载
**分页加载**:列表数据使用分页加载
**数据缓存**:使用本地存储缓存数据
**请求优化**:合并请求,减少网络请求次数
### 8.3 动画优化
**动画性能**使用CSS动画避免JS动画
**动画时长**控制在300ms以内
**减少重绘**使用transform代替position
---
## 九、无障碍设计
### 9.1 文字可读性
**对比度**文字与背景对比度≥4.5:1
**字号**最小字号≥24rpx12px
### 9.2 操作便捷性
**点击区域**最小点击区域44x44px
**操作反馈**:所有操作都有明确的视觉反馈
---
## 十、总结
本文档详细说明了"慢生活智能营养专家"小程序的所有核心功能的用户界面交互设计。重点包括:
1. **整体架构**5个底部标签页的导航结构
2. **核心页面**首页、计算器、AI营养师、打卡、社区等8个主要页面的详细交互说明
3. **通用规范**:页面跳转、加载状态、错误处理、表单验证等通用交互规范
4. **视觉设计**:颜色、字体、间距、圆角等视觉设计规范
5. **特殊功能**一键复制打卡、AI视频生成、积分系统等特殊功能的交互流程
所有交互设计都遵循微信小程序的设计规范,确保用户体验的一致性和流畅性。
---
**文档版本**v1.0
**最后更新**2025-01-20
**设计来源**Figma设计稿 + PRD文档