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

1311 lines
52 KiB
Markdown
Raw Normal View History

# 慢生活智能营养专家小程序 - 产品功能说明
## 用户界面交互设计文档
---
## 📋 文档信息
| 项目 | 内容 |
|------|------|
| 产品名称 | 慢生活智能营养专家 |
| 版本号 | 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文档