Files
kitchen/docs/dev/UNFINISHED_FEATURES.md
2026-04-11 02:02:23 +08:00

35 KiB
Raw Blame History

📋 未完成功能清单

文档创建: 2026-04-09
最后更新: 2026-04-11
数据来源 说明: 记录所有未完成的功能任务,跟踪开发进度
优先级说明: P1=核心功能 P2=重要功能 P3=增强功能
优先级值1-5: 5=最高优先级(多次提及自动提升)


📊 总体进度

阶段 总任务 已完成 未完成 完成率
三:热量追踪+营养分析 7 7 0 100%
四:购物清单 5 5 0 100%
十三AI+规划高级功能 4 0 4 0% 🔵
十四:接口能力挖掘 8 0 8 0% 🟢
十五:后端接口增强 6 0 6 0% 🔴
十六:用户体验优化+Bug 修复 7 7 0 100%
十七紧急Bug修复 14 14 0 100%
合计 124 95 29 77%

五、开发阶段

阶段一基础设施P1 已完成

目标:搭建 Hive 本地数据库 + 数据模型 + 持久化收藏

六、页面导航规划

发现页
  └── 📊 营养中心
        ├── 🍽️ 饮食日记(日历视图 + 每日记录列表)
        │     └──  添加记录(底部弹窗:选餐次 + 选菜谱/手动输入)
        ├── 🔥 热量追踪(环形进度 + 三大营养素比例 + 目标线)
        └── 📊 分析报告(周/月趋势折线图 + 营养素饼图)

我的页面
  ├── 📋 购物清单(分类展示 + 勾选已购)
  ├── ⏱️ 烹饪计时器(多步骤倒计时)
  ├── 🔄 用量换算
  ├── 🎯 BMI 计算器
  └── ⚙️ 设置
        ├── 🎯 每日营养目标
        ├── 🔔 用餐提醒
        └── ⚠️ 过敏原管理

八、开发优先级矩阵

功能 用户价值 技术难度 依赖关系 优先级
Hive 本地数据库 P1-0
收藏持久化 数据库 P1-1
饮食日记 数据库 P1-2
热量追踪 饮食日记 P1-3
营养分析报告 饮食日记+fl_chart P1-4
购物清单 数据库 P2-1
烹饪计时器 P2-2
用量换算 P2-3
过敏原检测 偏好数据 P2-4
烹饪笔记 数据库 P3-1
用餐提醒 本地通知 P3-2
BMI 计算器 P3-3
份量缩放 P3-4

九、验收标准

🟡 阶段五增强功能P2/P3

目标:烹饪计时器 + 用量换算 + 过敏原检测 + 烹饪笔记 + 用餐提醒 + BMI + 份量缩放
前置依赖:各功能独立,无强依赖


🔵 阶段八API v2.0.0 迁移 + Bug修复P0/P1

目标:迁移到 API v2.0.0 合并接口修复用户反馈的8个严重Bug


🔴 阶段九:架构修复+核心BugP0/P1

目标:修复架构违规和核心功能缺失
发现时间2026-04-10flutter analyze 全面扫描 + 项目分析)

🟡 阶段十代码质量提升P1/P2

目标:提升代码可维护性和健壮性
前置依赖:阶段九完成
关键阻塞:无

序号 任务 产出文件 优先级 状态 说明
10.1 统一 Controller 注册 lib/src/bindings/feature_binding.dart P1 已完成 创建 FeatureBinding路由添加 binding 参数,页面改用 Get.find()
10.2 HiveService 数据迁移机制 lib/src/services/data/hive_service.dart P2 已完成 添加 schema 版本号 + 迁移函数,支持 Box 升级
10.3 统一错误处理 lib/src/errors/app_exception.dart P1 已完成 定义 AppException + AppErrorCode + Result统一错误码映射
10.4 离线缓存策略 lib/src/services/data/cache_service.dart P1 已完成 新增 CacheService支持 TTL 过期 + 离线读取
10.5 DesignTokens 与 ThemeService 解耦 lib/src/services/ui/theme_service.dart P2 已完成 新增 DynamicTokens 类ThemeService.tokens 统一获取主题颜色

验收标准

  • 所有 Controller 通过 Binding 注册
  • HiveService 支持 schema 版本迁移
  • Repository 统一抛出 AppException
  • 离线时首页可显示缓存数据
  • 页面颜色值统一通过 ThemeService 获取

🟢 阶段十一:烹饪模式+营养仪表盘P1

目标:实现核心增强功能,提升应用价值
前置依赖:阶段九完成


🟢 阶段十二:社交+通知增强P2

目标:增加社交分享和通知提醒功能
前置依赖:阶段十一完成
关键阻塞12.1 需 share_plus12.2 需 flutter_local_notifications

序号 任务 产出文件 优先级 状态 说明
12.1 📱 分享菜谱 lib/src/pages/recipe/recipe_detail_page.dart P2 未实现 生成菜谱卡片图片,支持系统分享
12.2 🔔 烹饪提醒通知 lib/src/services/notification_service.dart P2 未实现 定时提醒烹饪步骤,与计时器联动
12.3 🔍 搜索建议/热词 lib/src/pages/search/search_page.dart P2 未实现 搜索页展示热门搜索词,输入时自动补全
12.4 📸 拍照记录 lib/src/pages/tools/cooking_note_page.dart P3 未实现 烹饪笔记支持拍照上传,记录成品

功能详情

12.1 分享菜谱

  • 入口:菜谱详情页 → 分享按钮
  • 功能
    • 生成菜谱卡片图片(封面+标题+食材摘要)
    • 调用 iOS Share Sheet / Android 分享面板
    • 支持保存到相册
  • 技术方案screenshot + share_plus

12.2 烹饪提醒通知

  • 入口:烹饪模式 → 设置提醒
  • 功能
    • 烹饪步骤到达时发送本地通知
    • 计时器完成时通知
    • 支持自定义提醒时间
  • 技术方案flutter_local_notifications

12.3 搜索建议/热词

  • 入口:搜索页搜索栏
  • 功能
    • 空搜索框时展示热门搜索词
    • 输入时自动补全建议
    • 热门搜索词从 API 获取
  • 技术方案RecipeRepository.fetchTags() 获取热词

12.4 拍照记录

  • 入口:烹饪笔记 → 拍照按钮
  • 功能
    • 调用相机拍照或从相册选择
    • 图片压缩后保存到本地
    • 笔记列表展示缩略图
  • 技术方案image_picker + 本地文件存储

需引入的外部依赖

依赖 用途 纯Dart 鸿蒙兼容
share_plus 系统分享 ⚠️ 需适配
image_picker 拍照/相册 ⚠️ 需适配
screenshot 截图

验收标准

  • 详情页可分享菜谱卡片到其他应用
  • 烹饪计时器完成时发送本地通知
  • 搜索页展示热门搜索词
  • 烹饪笔记可添加照片

🔵 阶段十三AI+规划高级功能P3

目标:实现智能化和规划类高级功能
前置依赖:阶段十二完成
关键阻塞13.1 需 AI API13.2 需日历组件

序号 任务 产出文件 优先级 状态 说明
13.1 🤖 AI 菜谱推荐 lib/src/services/ai_recommend_service.dart P3 未实现 基于口味偏好+浏览历史,智能推荐菜谱
13.2 📅 每周菜单规划 lib/src/pages/tools/meal_planner_page.dart P3 未实现 日历视图规划一周饮食,自动生成购物清单
13.3 🧮 食材用量换算增强 lib/src/pages/tools/serving_scaler_page.dart P3 未实现 增强份量缩放,支持不同单位换算
13.4 🌙 就寝提醒 lib/src/pages/settings/health_reminder_page.dart P3 未实现 根据饮食时间推荐健康作息

功能详情

13.1 AI 菜谱推荐

  • 入口:首页"为你推荐"Tab
  • 功能
    • 基于用户口味偏好PreferenceController
    • 基于浏览历史FootprintsPage 数据)
    • 基于收藏记录FavoritesController
    • 推荐相似菜谱
  • 技术方案:调用后端推荐 API 或本地协同过滤算法

13.2 每周菜单规划

  • 入口:工具页 → "📅 每周菜单"
  • 功能
    • 日历视图选择日期
    • 每日早/中/晚三餐分配菜谱
    • 自动汇总生成购物清单
    • 支持拖拽调整
  • 技术方案:自定义日历组件 + Hive 持久化

13.3 食材用量换算增强

  • 入口:工具页 → 份量缩放
  • 功能
    • 支持克/千克/磅/盎司互转
    • 支持毫升/升/杯/汤匙互转
    • 常用食材密度表
  • 技术方案:扩展 serving_scaler_page.dart,添加单位换算 Tab

13.4 就寝提醒

  • 入口:设置 → 健康提醒
  • 功能
    • 根据晚餐时间推荐就寝时间
    • 睡前不宜进食提醒
    • 与营养追踪联动
  • 技术方案flutter_local_notifications + 健康算法

验收标准

  • "为你推荐"展示个性化推荐菜谱
  • 每周菜单可规划三餐并生成购物清单
  • 份量缩放支持多种单位换算
  • 就寝提醒根据饮食时间智能推荐

🟢 阶段十四接口能力挖掘P1/P2

目标利用已有API接口能力实现App端未开发的功能
前置依赖API v2.0.0 已支持完整接口
关键阻塞:无
数据来源docs/api/doc/API_DOC.md + docs/api/doc/APP_GUIDE.md

序号 任务 产出文件 优先级 状态 说明
14.1 🍽️ 用餐时段推荐 lib/src/pages/home/meal_time_recommend.dart P1 未实现 根据时间推荐早餐/午餐/晚餐
14.2 📊 营养分析增强 lib/src/pages/nutrition/nutrition_detail_page.dart P1 未实现 营养成分详情+趋势图表
14.3 ⚠️ 过敏原警示增强 lib/src/pages/recipe/recipe_detail_page.dart P1 未实现 详情页过敏原警示+食材替代建议
14.4 🔥 点赞/推荐系统 lib/src/services/action_service.dart P2 未实现 点赞/取消点赞+五星评分
14.5 📱 社交分享 lib/src/pages/recipe/share_recipe_page.dart P2 未实现 生成分享链接+二维码海报
14.6 👤 个性化信息流 lib/src/pages/home_page.dart P1 未实现 基于用户偏好的首页推荐
14.7 🥕 食材详情页 lib/src/pages/ingredient/ingredient_detail_page.dart P2 未实现 食材介绍+营养+选购指南
14.8 📈 浏览量统计 lib/src/services/analytics_service.dart P2 未实现 增加浏览量+热度标签展示

功能详情

14.1 用餐时段推荐

  • 接口支持api.php?act=search&keyword=早餐/中餐/晚餐

🔴 阶段十六:用户体验优化+Bug修复P0/P1

目标修复用户反馈的7个严重问题提升应用稳定性和用户体验
发现时间2026-04-10用户反馈
关键阻塞:无
优先级P0=最高优先级(影响用户使用的严重问题)

序号 任务 产出文件 优先级 状态 说明
16.1 🚀 启动加载优化+骨架屏 lib/src/pages/home_page.dart P0 已完成 添加超时保护+骨架屏组件+缓存优先策略
16.2 🛠️ 收藏页面"更多"卡死修复 lib/src/pages/favorites/favorites_page.dart P0 已完成 添加Binding+错误处理+空指针保护
16.3 🔍 搜索详情卡死修复 lib/src/pages/search/search_page.dart P0 已完成 为RecipeDetailPage添加Binding+Controller安全获取
16.4 🎲 今天吃什么动态筛选优化 lib/src/pages/what_to_eat/what_to_eat_page.dart P1 已完成 优化UI显示+添加错误提示+空结果处理
16.5 📊 营养中心报告按钮修复 lib/src/pages/nutrition/nutrition_center_page.dart P1 已完成 检查NutritionBinding+添加错误处理
16.6 ❤️ 收藏页面UI重构 lib/src/pages/favorites/favorites_page.dart P2 未实现 iOS 26 Liquid Glass风格+优化按钮尺寸
16.7 🔥 热门排行数据修复 lib/src/repositories/hot_repository.dart P1 已完成 检查API返回+添加错误提示+调试日志

问题详情

16.1 启动加载慢+无骨架屏

  • 现象:启动应用时 loading 动画超过10秒首页点击菜谱 loading 超过5秒
  • 原因分析
    1. RecipeRepository.fetchFeedRecipes() 没有超时保护
    2. 首页没有骨架屏,只有简单的 loading 动画
    3. 没有缓存机制,每次都要从网络获取数据
  • 解决方案
    1. 添加超时保护12秒
    2. 创建骨架屏组件 SkeletonLoader
    3. 添加缓存优先策略,优先显示缓存数据

16.2 收藏页面点击"更多"卡死闪退

  • 现象:收藏页面点击"更多"按钮后应用卡死闪退
  • 原因分析
    1. ToolsCenterPage 使用 Get.put(ToolsController()) 直接注册
    2. 可能 ToolsController 初始化时出错
    3. 没有错误处理和空指针保护
  • 解决方案
    1. 创建 ToolsBinding 并添加到路由配置
    2. 使用 Get.find() 获取 Controller
    3. 添加 try-catch 错误处理

16.3 搜索结果点击详情卡死闪退

  • 现象:搜索后点击详细结果,应用卡死闪退
  • 原因分析
    1. RecipeDetailPage 使用 Get.find<FavoritesController>()
    2. 如果 Controller 未注册会抛出异常
    3. ActionControllerShoppingListController 初始化可能失败
  • 解决方案
    1. RecipeDetailPage 添加完整的 Binding
    2. 所有 Controller 使用 try-catch 保护
    3. 添加空指针检查和默认值

16.4 今天吃什么动态筛选问题

  • 现象:不支持动态筛选,随机选择有时不显示结果
  • 原因分析
    1. 代码已实现动态筛选,但 UI 不够明显
    2. 随机选择不显示结果可能是 API 返回空数据
    3. 没有错误提示
  • 解决方案
    1. 优化 UI使筛选功能更明显
    2. 添加错误提示和空结果处理
    3. 添加调试日志,排查 API 问题

16.5 营养中心报告按钮卡死

  • 现象:点击右上角"报告"按钮应用卡死闪退,"今天"按钮无反应
  • 原因分析
    1. NutritionReportPage 使用 Get.find<MealRecordController>()
    2. 路由配置中已有 NutritionBinding
    3. 可能是 MealRecordController 初始化失败
  • 解决方案
    1. 检查 NutritionBinding 是否正确注册
    2. 添加错误处理和空指针保护
    3. 添加加载状态提示

16.6 收藏页面UI设计问题

  • 现象:排版杂乱无章,按钮太小点不到,不符合操作逻辑
  • 原因分析
    1. UI 布局不够清晰
    2. 按钮尺寸不符合 iOS 设计规范
    3. 操作流程不顺畅
  • 解决方案
    1. 重构 UI使用 iOS 26 Liquid Glass 风格
    2. 增大按钮尺寸至最小 44x44
    3. 优化操作流程和布局比例

16.7 热门排行数据为空

  • 现象:今日浏览量、点赞数、推荐数都显示"暂无数据"
  • 原因分析
    1. HotRepository 调用 stats_full.php?act=hot API
    2. API 可能返回空数据或数据结构不匹配
    3. 没有错误提示
  • 解决方案
    1. 检查 API 返回数据结构
    2. 添加错误提示和空数据处理
    3. 添加调试日志,排查 API 问题

开发顺序建议

16.1 启动加载优化(影响最大,用户第一印象)
  → 16.2 收藏页面"更多"修复(严重闪退)
    → 16.3 搜索详情修复(严重闪退)
      → 16.5 营养中心修复(功能性问题)
        → 16.4 今天吃什么优化(体验问题)
          → 16.7 热门排行修复(数据问题)
            → 16.6 收藏页面UI重构体验优化

验收标准

  • 启动应用 3 秒内显示骨架屏5 秒内加载完成
  • 收藏页面点击"更多"正常跳转,无卡死闪退
  • 搜索结果点击详情正常跳转,无卡死闪退
  • 今天吃什么支持动态筛选,随机选择有结果提示
  • 营养中心报告按钮正常跳转,"今天"按钮有反馈
  • 收藏页面 UI 整洁美观,按钮易于点击
  • 热门排行显示真实数据,无数据时有友好提示

技术要点

骨架屏组件

class SkeletonLoader extends StatefulWidget {
  final double width;
  final double height;
  final BorderRadius? borderRadius;
  
  const SkeletonLoader({
    required this.width,
    required this.height,
    this.borderRadius,
  });
}

class _SkeletonLoaderState extends State<SkeletonLoader>
    with SingleTickerProviderStateMixin {
  late AnimationController _controller;
  
  @override
  void initState() {
    super.initState();
    _controller = AnimationController(
      vsync: this,
      duration: const Duration(milliseconds: 1500),
    )..repeat();
  }
  
  @override
  Widget build(BuildContext context) {
    return AnimatedBuilder(
      animation: _controller,
      builder: (context, child) {
        return Container(
          width: widget.width,
          height: widget.height,
          decoration: BoxDecoration(
            color: Colors.grey[300],
            borderRadius: widget.borderRadius,
          ),
        );
      },
    );
  }
}

Controller 安全获取

FavoritesController? _favoritesController;

@override
void initState() {
  super.initState();
  try {
    _favoritesController = Get.find<FavoritesController>();
  } catch (e) {
    debugPrint('FavoritesController not found: $e');
    _favoritesController = null;
  }
}

超时保护

Future<List<RecipeModel>> fetchFeedRecipes() async {
  try {
    final results = await _recipeRepository.fetchFeedRecipes()
        .timeout(const Duration(seconds: 12));
    return results;
  } on TimeoutException {
    debugPrint('fetchFeedRecipes timeout');
    return [];
  } catch (e) {
    debugPrint('fetchFeedRecipes error: $e');
    return [];
  }
}
  • 数据文件http://eat.wktyl.com/api/assets/eating_times.json34种时段
  • 功能
    • 🌅 早餐推荐7-10点
    • 🍱 午餐推荐11-14点
    • 🌙 晚餐推荐17-20点
    • 📅 每日菜单规划(早中晚餐)

14.2 营养分析增强

  • 接口支持api.php?act=full&id=xxx 返回 nutrition 字段
  • 数据文件http://eat.wktyl.com/api/assets/nutrition_types.json31种营养成分
  • 功能
    • 📊 营养成分详情展示(维生素/矿物质/宏量营养素)
    • 🎯 每日营养目标追踪
    • 🏋️ 健身餐推荐(高蛋白/低碳水)
    • 📈 营养趋势分析图表

14.3 过敏原警示增强

  • 接口支持api.php?act=full&id=xxx 返回 allergens 字段
  • 数据文件http://eat.wktyl.com/api/assets/gmy.json585种过敏原数据
  • 功能
    • ⚠️ 菜谱详情页过敏原警示
    • 🚫 自动过滤含过敏原菜谱
    • 🔄 食材替代建议
    • 📋 过敏原报告生成

14.4 点赞/推荐系统

  • 接口支持
    • api_action.php?act=like&type=recipe&id=1&action=like/unlike
    • api_action.php?act=recommend&type=recipe&id=1&score=5
  • 功能
    • 👍 点赞/取消点赞
    • 五星评分
    • 📊 用户评价统计
    • 🏆 推荐排行榜

14.5 社交分享

  • 接口支持api_what_to_eat.php?act=detail&code=CP032892code字段生成分享链接
  • 功能
    • 🔗 分享链接生成(https://eat.wktyl.com/recipe/CP032892
    • 📱 二维码海报
    • 📊 热度标签展示(🔥爆款/📈热门/❤️受欢迎)
    • 👥 社交平台分享

14.6 个性化信息流

  • 接口支持api_feed.php?act=personal&user_id=xxx
  • 功能
    • 🎯 基于偏好推荐
    • 🚫 自动过滤过敏原
    • 📊 千人千面首页
    • 🔄 智能刷新

14.7 食材详情页

  • 接口支持api.php?act=ingredient_detail&id=1
  • 返回字段introduction/nutrition/usage_tip/effect/guidance
  • 功能
    • 📖 食材介绍
    • 🥗 营养成分
    • 💡 使用技巧
    • 🏥 食疗功效
    • 🛒 选购指南

14.8 浏览量统计

  • 接口支持
    • api_action.php?act=view&type=recipe&id=1&count=1
    • api.php?act=detail&id=xxx&viewnums=true
  • 功能
    • 📈 增加浏览量
    • 🔥 热门排行统计
    • 📊 用户浏览历史
    • 📈 趋势分析

开发优先级

优先级 功能 说明
P1 用餐时段推荐 接口完整,实现简单,用户价值高
P1 个性化信息流 接口完整,提升用户体验
P1 过敏原警示增强 接口完整,健康安全
P2 点赞/推荐系统 接口完整,增加互动
P2 营养分析增强 接口完整,健康管理
P2 社交分享 接口完整,增加传播
P2 食材详情页 接口完整,内容丰富
P2 浏览量统计 接口完整,数据驱动

验收标准

  • 首页根据时段推荐早餐/午餐/晚餐
  • 营养中心展示详细营养成分
  • 详情页显示过敏原警示
  • 详情页可点赞/评分
  • 详情页可分享菜谱
  • 首页个性化推荐
  • 食材可查看详情页
  • 浏览量正确统计

🔴 阶段十五后端接口增强P1/P2

目标:新增后端接口,实现高级功能
前置依赖:后端开发配合
关键阻塞:需要后端新增接口
优先级说明🔴 红色表示需要后端支持

序号 任务 建议接口 优先级 状态 说明
15.1 👤 用户注册登录 api_user.php?act=register/login P1 未实现 用户账号体系
15.2 💾 收藏云端同步 api_favorite.php?act=add/remove/list P1 未实现 收藏数据云端存储
15.3 💬 评论系统 api_comment.php?act=list/add/delete P2 未实现 菜谱评论功能
15.4 🔔 消息推送 api_message.php?act=list/read P2 未实现 站内信+推送通知
15.5 📜 浏览历史同步 api_history.php?act=add/list P2 未实现 浏览历史云端存储
15.6 📝 菜谱上传 api_recipe.php?act=add/edit/delete P2 未实现 用户菜谱上传/编辑

功能详情

15.1 用户注册登录

  • 现状 无注册登录接口
  • 建议接口
    POST api_user.php?act=register
    { "username": "xxx", "password": "xxx", "email": "xxx" }
    
    POST api_user.php?act=login
    { "username": "xxx", "password": "xxx" }
    
    GET api_user.php?act=profile&user_id=xxx
    
  • 功能
    • 📱 手机号注册/登录
    • 🔗 第三方登录(微信/Apple ID
    • 👤 用户资料管理
    • 🔐 密码找回

15.2 收藏云端同步

  • 现状⚠️ 仅本地 Hive 存储
  • 建议接口
    POST api_favorite.php?act=add
    { "user_id": "xxx", "recipe_id": 123 }
    
    GET api_favorite.php?act=list&user_id=xxx
    
    DELETE api_favorite.php?act=remove
    { "user_id": "xxx", "recipe_id": 123 }
    
  • 功能
    • ☁️ 收藏云端存储
    • 🔄 多设备同步
    • 📂 收藏分类管理
    • 🔗 收藏分享

15.3 评论系统

  • 现状 无评论接口
  • 建议接口
    GET api_comment.php?act=list&recipe_id=123&page=1
    
    POST api_comment.php?act=add
    { "user_id": "xxx", "recipe_id": 123, "content": "xxx" }
    
    DELETE api_comment.php?act=delete
    { "user_id": "xxx", "comment_id": 456 }
    
  • 功能
    • 💬 发表评论
    • 👍 评论点赞
    • 📝 评论回复
    • 🔔 评论通知

15.4 消息推送

  • 现状 无推送接口
  • 建议接口
    GET api_message.php?act=list&user_id=xxx
    
    POST api_message.php?act=read
    { "user_id": "xxx", "message_id": 123 }
    
  • 功能
    • 📬 站内信
    • 🔔 推送通知
    • 📢 系统公告
    • 💬 评论提醒

15.5 浏览历史同步

  • 现状⚠️ 仅本地存储
  • 建议接口
    POST api_history.php?act=add
    { "user_id": "xxx", "recipe_id": 123 }
    
    GET api_history.php?act=list&user_id=xxx&page=1
    
  • 功能
    • ☁️ 浏览历史云端存储
    • 🔄 多设备同步
    • 📊 浏览统计
    • 🧹 历史清理

15.6 菜谱上传

  • 现状 无上传接口
  • 建议接口
    POST api_recipe.php?act=add
    { "title": "xxx", "ingredients": [...], "steps": [...] }
    
    PUT api_recipe.php?act=edit
    { "recipe_id": 123, "title": "xxx" }
    
    DELETE api_recipe.php?act=delete
    { "recipe_id": 123 }
    
  • 功能
    • 📝 用户菜谱上传
    • ✏️ 菜谱编辑
    • 🗑️ 菜谱删除
    • 📊 菜谱审核

开发优先级

优先级 功能 说明
P1 用户注册登录 核心功能,其他功能依赖用户体系
P1 收藏云端同步 用户数据安全,多设备同步
P2 评论系统 增加互动,提升活跃度
P2 消息推送 用户触达,提升留存
P2 浏览历史同步 用户体验,多设备同步
P2 菜谱上传 UGC内容丰富平台

验收标准

  • 用户可注册/登录
  • 收藏数据云端同步
  • 菜谱可评论
  • 收到系统通知
  • 浏览历史云端同步
  • 用户可上传菜谱

📎 软件特性功能汇总

以下功能已开发完成或开发中,从历史版本号归档而来

功能 状态 首次版本 说明
热量追踪+营养分析 已完成 v0.3x 环形图+饼图+折线图+目标设置
购物清单 已完成 v0.4x 添加/删除/勾选/分类/从菜谱添加
烹饪计时器 已完成 v0.5x 多步骤倒计时
用量换算 已完成 v0.5x 常用单位换算
过敏原检测 已完成 v0.5x 标记含过敏原菜谱
烹饪笔记 已完成 v0.5x 按菜谱关联笔记
BMI 计算器 已完成 v0.5x 含健康建议
份量缩放 已完成 v0.5x 按比例调整食材用量
主页体验优化 已完成 v0.6x 骨架屏+动画+搜索+详情页
今天吃什么增强 已完成 v0.7x 分类/标签/过敏原三维筛选
API v2.0.0 迁移 已完成 v0.8x 合并接口+8个Bug修复
动态主题 已完成 v0.6x 多主题色+暗色模式+卡片滑动方向
Liquid Glass 风格 已完成 v0.6x 底栏+搜索栏+分段控件+卡片
收藏管理 已完成 v0.8x 编辑/排序/分类/跳转详情
静态分析清理 已完成 v0.52 107→1 个 info0 error/warning
工具中心 已完成 v0.9x 工具入口Bar+分类筛选+使用频率统计
过敏原检查工具 已完成 v0.9x 食材过敏原查询与分类浏览
用餐时段推荐 已完成 v0.9x 根据时间推荐早中晚餐菜谱
每周菜单规划 已完成 v0.9x 一周三餐规划与进度追踪
食材详情查询 已完成 v0.9x 食材营养信息与选购指南

🛠️ 工具中心开发记录

2026-04-10 开发完成

已实现工具列表

工具名称 路由 是否联网 说明
⏱️ 烹饪计时器 /tools/timer 离线 多步骤倒计时
📏 用量换算 /tools/converter 离线 常用单位换算
🧮 BMI 计算器 /tools/bmi 离线 含健康建议
⚖️ 份量缩放 /tools/scaler 离线 按比例调整食材用量
🥜 过敏原检查 /tools/allergen 联网 食材过敏原查询
🍽️ 用餐时段推荐 /tools/meal-time 联网 根据时间推荐菜谱
📅 每周菜单规划 /tools/planner 离线 一周三餐规划
🥕 食材详情查询 /tools/ingredient 联网 食材营养信息
📊 营养中心 /tools/nutrition 联网 营养追踪仪表盘
📈 热门统计 /tools/stats 联网 热门菜谱排行

技术实现

  1. 工具数据模型 (tool_item_model.dart)

    • ToolItem: 工具项数据结构
    • ToolCategory: 工具分类枚举
    • ToolRegistry: 工具注册表
  2. 工具控制器 (tools_controller.dart)

    • 工具列表管理
    • 使用频率统计SharedPreferences
    • 搜索与分类过滤
    • 常用工具推荐
  3. 工具中心页面 (tools_center_page.dart)

    • 搜索栏
    • 分类标签筛选
    • 工具网格布局(一行两个)
    • 联网状态指示器(绿点/红点)
  4. 收藏页工具入口Bar

    • 显示常用工具快捷入口
    • 更多工具入口按钮
    • 使用频率排序

文件清单

lib/src/
├── models/tools/
│   └── tool_item_model.dart          # 工具数据模型
├── controllers/tools/
│   └── tools_controller.dart         # 工具控制器
└── pages/tools/
    ├── tools_center_page.dart        # 工具中心页面
    ├── allergen_checker_page.dart    # 过敏原检查
    ├── meal_time_recommend_page.dart # 用餐时段推荐
    ├── meal_planner_page.dart        # 每周菜单规划
    └── ingredient_detail_page.dart   # 食材详情查询

🔴 阶段十七紧急Bug修复P0/P1

目标:修复用户反馈的多个严重问题,提升应用稳定性
发现时间2026-04-11用户反馈
关键阻塞:无
优先级P0=最高优先级(影响用户使用的严重问题)

序号 任务 产出文件 优先级 状态 说明
17.1 🔍 搜索详情卡死修复 lib/src/pages/search/search_page.dart P0 已完成 使用Get.toNamed命名路由跳转
17.2 ❤️ 收藏页更多按钮GetX报错 lib/src/pages/favorites/favorites_page.dart P0 已完成 使用命名路由跳转工具中心
17.3 🌙 夜间模式字体颜色优化 lib/src/config/design_tokens.dart P1 已完成 调整DarkDesignTokens文字颜色值
17.4 📊 营养中心报告GetX报错 lib/src/bindings/feature_binding.dart P1 已完成 Controller改为permanent注册
17.5 🎲 今天吃什么筛选优化 lib/src/pages/what_to_eat/what_to_eat_page.dart P1 已完成 修复筛选逻辑和随机选择
17.6 🏠 首页加载骨架屏优化 lib/src/pages/home_page.dart P1 已完成 添加骨架屏组件和超时保护
17.7 📋 购物清单UI优化 lib/src/pages/shopping/shopping_list_page.dart P2 已完成 增大图标尺寸,优化布局
17.8 ⚙️ 主题设置iOS风格重构 lib/src/pages/settings/personalization_page.dart P2 已完成 重构为iOS设计风格
17.9 🏷️ 口味偏好数据修复 lib/src/pages/settings/preference_page.dart P1 已完成 添加错误处理和默认数据
17.10 👁️ 菜谱详情浏览量统计 lib/src/pages/recipe/recipe_detail_page.dart P1 已完成 增加浏览量并显示
17.11 🔥 热门排行今日数据修复 lib/src/pages/hot/hot_page.dart P1 已完成 修复API参数传递
17.12 🍽️ 用餐时段推荐卡死修复 lib/src/pages/tools/meal_time_recommend_page.dart P0 已完成 添加超时处理和默认数据
17.13 🛠️ 工具中心跳转分裂修复 lib/src/controllers/tools/tools_controller.dart P0 已完成 使用Get.toNamed命名路由
17.14 📝 文档更新 docs/dev/UNFINISHED_FEATURES.md P2 已完成 记录修复内容

问题详情

17.1 搜索详情卡死

  • 现象:搜索结果点击详情后应用卡死闪退
  • 原因使用Get.to()直接跳转Widget未正确注册Binding
  • 方案改用Get.toNamed('/recipe-detail', arguments: recipeId)

17.2 收藏页更多按钮报错

  • 现象:点击"更多"按钮后GetX报错
  • 原因直接跳转ToolsCenterPage未通过路由系统
  • 方案使用Get.toNamed('/tools')

17.3 夜间模式字体颜色

  • 现象:夜间模式大部分字体灰色看不清
  • 原因DarkDesignTokens文字颜色值过暗
  • 方案调整text2为#EBEBF5text3为#8E8E93

17.4 营养中心报告报错

  • 现象点击报告按钮GetX报错
  • 原因MealRecordController未正确注册
  • 方案在FeatureBinding中使用permanent: true注册

17.5 今天吃什么筛选

  • 现象:分类筛选不支持动态筛选,随机选择无结果
  • 原因:筛选逻辑未正确触发,空结果无提示
  • 方案优化筛选触发机制添加空结果Toast提示

17.6 首页加载优化

  • 现象加载时间超过8秒无骨架屏
  • 原因:无超时保护,无骨架屏组件
  • 方案添加12秒超时保护创建SkeletonLoader组件

17.7 购物清单UI

  • 现象:图标太小,列表分裂,容易误触
  • 原因:图标尺寸过小,间距不合理
  • 方案:增大图标尺寸,优化布局间距

17.8 主题设置风格

  • 现象不符合iOS设计风格
  • 原因使用Material风格组件
  • 方案重构为Cupertino风格符合iOS设计规范

17.9 口味偏好数据

  • 现象:显示"暂无分类数据"
  • 原因API返回数据未正确处理
  • 方案:添加错误处理和默认数据展示

17.10 菜谱浏览量

  • 现象:详情页无浏览量显示
  • 原因:未调用浏览量统计接口
  • 方案加载时调用viewnums接口显示浏览次数

17.11 热门排行今日数据

  • 现象:无今日数据
  • 原因API参数传递错误
  • 方案修复period参数为'today'

17.12 用餐时段推荐卡死

  • 现象:页面卡死黑屏
  • 原因:网络请求无超时处理,无错误状态
  • 方案添加8秒超时添加默认用餐时段数据

17.13 工具中心跳转分裂

  • 现象:跳转页面出现分裂感,左边工具中心右边目标页面
  • 原因:路由跳转方式问题
  • 方案统一使用Get.toNamed命名路由

验收标准

  • 搜索结果点击详情正常跳转
  • 收藏页更多按钮正常跳转
  • 夜间模式字体清晰可见
  • 营养中心报告按钮正常跳转
  • 今天吃什么支持动态筛选
  • 首页加载有骨架屏
  • 购物清单图标易于点击
  • 主题设置符合iOS风格
  • 口味偏好正常显示数据
  • 菜谱详情显示浏览量
  • 热门排行显示今日数据
  • 用餐时段推荐正常加载
  • 工具中心跳转无分裂感