跳到主要内容

功能详细设计文档:F3 人群定向推荐

功能优先级:P1(差异化核心) 文档版本:v1.0 关联 PRD:PRD-v1.0.md


一、页面结构

1.1 入口设计

人群入口位于首页快速入口区,以独立 Tab 或卡片形式呈现:

┌─────────────────────────────────────┐
│ │
│ 今日随便推荐 ────────────────── │
│ │
│ ┌─────────┐ ┌─────────┐ │
│ │ 👴 │ │ 🏥 │ │
│ │ 老人饮食 │ │ 病患饮食 │ │
│ └─────────┘ └─────────┘ │
│ ┌─────────┐ ┌─────────┐ │
│ │ 💪 │ │ ⚖️ │ │
│ │ 健身饮食 │ │ 减肥饮食 │ │
│ └─────────┘ └─────────┘ │
│ │
└─────────────────────────────────────┘

1.2 页面流程

人群入口卡片点击

人群专属页(补充信息表单)

推荐结果列表

点击菜品 → 菜品详情页(F4)

二、人群分类详细设计

2.1 老年人群(Elderly)

补充信息表单

┌──────────────────────────────────────┐
│ 👴 老人饮食推荐 │
│ │
│ 年龄段: │
│ [60-70岁] [70-80岁] [80岁以上] │
│ │
│ 咀嚼能力: │
│ [正常] [较差-需软烂] [只能流食] │
│ │
│ 饮食限制(可多选): │
│ ☐ 低盐 ☐ 低糖 ☐ 低脂 ☐ 高钙 │
│ ☐ 无限制 │
│ │
│ 今日可用食材(选填): │
│ [ + 添加食材 ] │
│ │
│ [ 开始推荐 ] │
└──────────────────────────────────────┘

推荐逻辑

  • 优先推荐 蒸、煮、炖、焖 类菜品
  • 排除:油炸、辛辣、过硬、过咸菜品
  • 硬度评级为「软」或「中」的菜品优先
  • 高钙食材(豆腐、芝麻、深绿叶菜)加权
  • 标注每道菜的咀嚼难度星级

菜品卡片特殊标注

┌──────────────────────────────────────┐
│ 🍲 蒸茄子(家常菜) │
│ 🟢软烂适合 · 🔥 85kcal │
│ ✅低盐 ✅易消化 │
│ [👴咀嚼难度:★☆☆(容易)] │
└──────────────────────────────────────┘

2.2 慢病患者(Patient)

补充信息表单

┌──────────────────────────────────────┐
│ 🏥 病患饮食推荐 │
│ │
│ 病症类型: │
│ [糖尿病] [高血压] [痛风] [肾病] │
│ [心脏病] [胃病] [其他] │
│ │
│ 当前状况: │
│ [控制期(严格限制)] │
│ [稳定期(日常饮食)] │
│ [恢复期(加强营养)] │
│ │
│ 其他约束(可多选): │
│ ☐ 低盐 ☐ 低糖 ☐ 低脂 │
│ ☐ 低嘌呤 ☐ 低蛋白 ☐ 低钾 │
│ │
│ [ 开始推荐 ] │
└──────────────────────────────────────┘

推荐逻辑

病症核心限制推荐策略
糖尿病控糖、低GI推荐 GI ≤ 55 的菜品,标注每道菜的 GI 值
高血压控钠、低盐推荐每份钠含量 < 600mg 的菜品
痛风控嘌呤避免内脏类、海鲜类;推荐低嘌呤蔬菜
肾病低蛋白、低钾推荐优质蛋白,少豆类
心脏病低脂、低盐推荐少油、清淡的菜品
胃病软烂、少刺激推荐蒸煮类,避免辛辣、生冷

菜品卡片特殊标注

┌──────────────────────────────────────┐
│ 🥗 凉拌黄瓜(清爽小菜) │
│ 🟢GI值:15(低GI) │
│ ⚠️ 钠含量:280mg/份 │
│ ✅低脂 ✅低卡 │
│ [⚠️ 注意:胃病患者需少量食用] │
└──────────────────────────────────────┘

⚠️ 免责声明设计

由于病患人群的特殊性,每道菜品详情页底部需展示:

⚠️ 温馨提示:
本推荐仅供参考,不构成医疗建议。
如有特殊病情,请遵医嘱调整饮食。
如有疑问,请咨询您的营养师或主治医生。

2.3 健身人群(Fitness)

补充信息表单

┌──────────────────────────────────────┐
│ 💪 健身饮食推荐 │
│ │
│ 健身目标: │
│ [减脂] [增肌] [维持体型] [力量训练] │
│ │
│ 当前阶段: │
│ [训练日] [休息日] [比赛/冲刺期] │
│ │
│ 蛋白质摄入目标(估算): │
│ [保守 1g/kg] [标准 1.5g/kg] │
│ [强化 2g/kg] │
│ │
│ 今日可用食材(选填): │
│ [ + 添加食材 ] │
│ │
│ [ 开始推荐 ] │
└──────────────────────────────────────┘

推荐逻辑

目标核心逻辑菜品加权
减脂低卡、高蛋白、高纤维、饱腹感强优先推荐 300kcal 以下、蛋白质 > 20g/份
增肌高蛋白、适量碳水、低脂优先推荐蛋白质 > 30g/份、低脂
维持均衡饮食参考标准营养配比
力量训练碳水 + 蛋白质双高优先推荐训练后餐(快碳+蛋白)

训练日 vs 休息日

  • 训练日:推荐高碳水 + 高蛋白(训练后餐推荐快碳如香蕉+鸡胸)
  • 休息日:推荐低碳水 + 高蛋白

菜品卡片特殊标注

┌──────────────────────────────────────┐
│ 🍗 香煎鸡胸肉(健身经典) │
│ 🔥 200kcal · 🥩蛋白质:42g │
│ 🟢低碳水 🟢低脂 │
│ [💪 完美训练后餐:高蛋白低脂] │
└──────────────────────────────────────┘

2.4 减肥人群(Weight Loss)

补充信息表单

┌──────────────────────────────────────┐
│ ⚖️ 减肥饮食推荐 │
│ │
│ 当前阶段: │
│ [初期(控制总热量)] │
│ [中期(调整饮食结构)] │
│ [维持期(稳定体重)] │
│ │
│ 饮食习惯偏好: │
│ [正常吃三餐] [16:8轻断食] │
│ [少食多餐] [无特别偏好] │
│ │
│ 今日可接受的最大热量: │
│ [1000kcal以下] [1200kcal] │
│ [1500kcal] [不限制] │
│ │
│ 今日可用食材(选填): │
│ [ + 添加食材 ] │
│ │
│ [ 开始推荐 ] │
└──────────────────────────────────────┘

推荐逻辑

  • 优先推荐 低热量密度(低卡/高饱腹感)的菜品
  • 每道菜标注「饱腹感指数」:★1-5
  • 推荐菜品以蔬菜、蛋白质为主,减少精制碳水
  • 标注「易坚持程度」:简单易做才能长期坚持

饱腹感指数参考指标

饱腹感指数 = (蛋白质含量 × 0.3 + 纤维含量 × 0.4 + 体积/热量 × 0.3)

菜品卡片特殊标注

┌──────────────────────────────────────┐
│ 🥗 鸡胸肉沙拉(轻食首选) │
│ 🔥 180kcal · 饱腹感:★★★★☆ │
│ 🥩蛋白质:35g · 🥬纤维:6g │
│ 🟢低碳水 ✅易坚持 │
│ [⚖️ 热量警戒线内,可放心食用] │
└──────────────────────────────────────┘

三、推荐结果页

3.1 列表页结构

┌──────────────────────────────────────┐
│ ← 返回 👴 老人饮食推荐 筛选 │ ← 顶部导航
├──────────────────────────────────────┤
│ │
│ 当前条件:70-80岁 · 咀嚼较差 · 低盐 │
│ [全部清除] │
│ │
│ 推荐结果:共 23 道 │
│ │
│ ┌──────────────────────────┐ │
│ │ 🍲 豆腐蒸肉饼 ★推荐 │ │
│ │ 🟢软烂 ✅低盐 🔥180kcal │ │
│ │ 缺少:无 │ │
│ └──────────────────────────┘ │
│ │
│ ┌──────────────────────────┐ │
│ │ 🥬 菠菜猪肝汤 🉐优质 │ │
│ │ 🟢软烂 ⚠️高钙 🔥150kcal │ │
│ │ 缺少:无 │ │
│ └──────────────────────────┘ │
│ │
└──────────────────────────────────────┘

3.2 推荐标签说明

标签含义
★ 推荐系统认为最符合该人群当前需求的菜品
🉐 优质营养配比优秀,超出预期
⚠️ 注意需要注意某些成分,适合人群有限制
🆕 新菜新入库菜品,无历史评分

四、技术数据模型

4.1 人群配置表

interface CrowdConfig {
crowdType: 'elderly' | 'patient' | 'fitness' | 'weightloss';
displayName: string; // 展示名称
icon: string; // 图标 emoji
formFields: FormField[]; // 补充信息表单
recommendRules: RecommendRule[]; // 推荐规则
dishLabels: DishLabel[]; // 特殊标签定义
disclaimer: string; // 免责声明
}

interface RecommendRule {
field: string; // 字段名
operator: 'eq' | 'lte' | 'gte' | 'in' | 'nin';
value: any; // 比较值
weight?: number; // 加权系数
exclude?: boolean; // true = 排除
}

4.2 推荐请求

interface CrowdRecommendRequest {
crowdType: 'elderly' | 'patient' | 'fitness' | 'weightloss';
formData: {
// 通用
ingredients?: string[];

// 老人
ageRange?: '60-70' | '70-80' | '80+';
chewingAbility?: 'normal' | 'poor' | 'liquid';
elderlyRestrictions?: string[];

// 病患
disease?: 'diabetes' | 'hypertension' | 'gout' | 'kidney' | 'heart' | 'stomach' | 'other';
diseaseStage?: 'controlled' | 'stable' | 'recovery';

// 健身
fitnessGoal?: 'fatloss' | 'muscle' | 'maintain' | 'strength';
trainingDay?: boolean;
proteinTarget?: 'conservative' | 'standard' | 'intensive';

// 减肥
weightLossStage?: 'early' | 'mid' | 'maintain';
dietHabit?: 'three-meals' | 'intermittent' | 'small-frequent' | 'none';
maxCalories?: number;
};
sortBy?: 'match' | 'calories' | 'protein';
page?: number;
pageSize?: number;
}

五、复核检查项

检查点状态
四个人群入口清晰,图标语义正确
表单设计贴合各人群实际需求
推荐逻辑规则明确可实现
菜品卡片特殊标注覆盖各人群特点
病患人群有免责声明
技术数据结构完整
分类/健身/减肥各有差异化标签