52 KiB
慢生活智能营养专家小程序 - 产品功能说明
用户界面交互设计文档
📋 文档信息
| 项目 | 内容 |
|---|---|
| 产品名称 | 慢生活智能营养专家 |
| 版本号 | 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积分
提交按钮:
- 状态管理:
- 未填写内容:按钮灰色,不可点击
- 已填写内容:按钮橙色,可点击
- 提交流程:
- 点击提交 → 显示加载动画
- 上传数据 → 显示进度
- 提交成功 → 跳转至打卡成功页
- 显示获得的积分奖励
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 字体规范
字号:
- 标题:36rpx(18px)
- 副标题:32rpx(16px)
- 正文:28rpx(14px)
- 辅助文字:24rpx(12px)
字重:
- 标题:Bold(700)
- 正文:Regular(400)
5.3 间距规范
页面边距:20rpx(10px) 卡片内边距:24rpx(12px) 元素间距:16-32rpx(8-16px)
5.4 圆角规范
按钮圆角:12rpx(6px) 卡片圆角:16rpx(8px) 输入框圆角:12rpx(6px)
六、特殊功能交互
6.1 一键复制打卡
功能说明:从历史打卡记录中快速复制,生成新的打卡记录。
交互流程:
- 在打卡历史页点击"一键复制"按钮
- 跳转至复制确认页(预览内容)
- 确认后跳转至打卡页(内容已填充)
- 用户可修改内容后提交
- 提交成功获得+5积分
数据填充:
- 自动填充:照片、备注、餐次
- 用户可修改所有内容
6.2 AI视频生成
功能说明:根据打卡内容自动生成分享视频。
交互流程:
- 在打卡页开启"AI视频生成"开关
- 提交打卡后自动生成视频
- 生成完成后显示视频预览
- 用户可选择分享到社区或保存到相册
- 获得+20积分奖励
视频内容:
- 包含:打卡照片、营养数据、文字描述
- 自动添加背景音乐和动画效果
6.3 积分系统
积分显示:
- 在个人中心显示总积分
- 在操作后显示获得的积分(Toast提示)
积分获得:
- 完成打卡:+5分
- 上传照片:+10分
- AI智能分析:+10分
- 生成AI视频:+20分
- 一键复制打卡:+5分
- 连续打卡:+50/100/500分(3/7/30天)
积分兑换:
- 在积分中心查看可兑换项目
- 点击兑换 → 确认兑换 → 扣除积分
七、响应式设计
7.1 屏幕适配
设计尺寸:
- 设计稿:375px(iPhone 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 字号:最小字号≥24rpx(12px)
9.2 操作便捷性
点击区域:最小点击区域44x44px 操作反馈:所有操作都有明确的视觉反馈
十、总结
本文档详细说明了"慢生活智能营养专家"小程序的所有核心功能的用户界面交互设计。重点包括:
- 整体架构:5个底部标签页的导航结构
- 核心页面:首页、计算器、AI营养师、打卡、社区等8个主要页面的详细交互说明
- 通用规范:页面跳转、加载状态、错误处理、表单验证等通用交互规范
- 视觉设计:颜色、字体、间距、圆角等视觉设计规范
- 特殊功能:一键复制打卡、AI视频生成、积分系统等特殊功能的交互流程
所有交互设计都遵循微信小程序的设计规范,确保用户体验的一致性和流畅性。
文档版本:v1.0
最后更新:2025-01-20
设计来源:Figma设计稿 + PRD文档