完善
This commit is contained in:
324
CHANGELOG.md
324
CHANGELOG.md
@@ -2,6 +2,181 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.66.0] - 2026-04-11
|
||||
|
||||
### Fixed — 阶段十九综合Bug修复+功能增强
|
||||
|
||||
- 🐛 **19.1 发现页更多按钮卡死** — `tools_center_page.dart`
|
||||
- 添加ToolsController安全检查,防止未注册时崩溃
|
||||
|
||||
- 🐛 **19.2 烹饪计时器常用预设** — `cooking_timer_page.dart`
|
||||
- 添加18种常用烹饪步骤快捷添加(煮鸡蛋/煮面条/炖汤等)
|
||||
|
||||
- 🐛 **19.3 菜谱详情显示全部数据** — `recipe_detail_page.dart`
|
||||
- 显示浏览量/营养成分/分类/标签/过敏原/时间等全部字段
|
||||
- 笔记icon改为横向滚动,修复溢出
|
||||
|
||||
- 🐛 **19.4 口味偏好分类+标签修复** — `user_preference_model.dart`
|
||||
- 修复PreferenceCategory id字符串解析+children子分类+标签显示
|
||||
|
||||
- 🐛 **19.5 热门排行数据修复** — `hot_repository.dart`
|
||||
- 添加fallback机制,period无数据时回退total
|
||||
|
||||
- 🐛 **19.6 购物清单按钮增大** — `shopping_list_page.dart`
|
||||
- 勾选/删除按钮增大至44x44点击区域
|
||||
|
||||
- 🐛 **19.7 我的页面左右滑动** — `profile_page.dart`
|
||||
- 使用PageView替代条件渲染,支持手势滑动
|
||||
|
||||
- 🐛 **19.8 笔记保存后不显示** — `cooking_note_page.dart`
|
||||
- 修复异步保存未await+添加Obx响应式刷新
|
||||
|
||||
- 🐛 **19.9 深色模式跟随系统** — `theme_service.dart`
|
||||
- 添加DarkModeSource枚举,支持system/manual模式
|
||||
|
||||
- 🐛 **19.10 字体大小全局生效** — `main.dart`
|
||||
- 通过GetCupertinoApp.builder设置全局textScaleFactor
|
||||
|
||||
- 🐛 **19.11 底部Tab栏高度+安全区** — `glass_nav_bar.dart`
|
||||
- 高度增加,添加底部安全区域padding
|
||||
|
||||
- 🐛 **19.12 白色区域遮住底部** — `navigation_widgets.dart`
|
||||
- 移除SafeArea(bottom:false),GlassNavBar自行处理安全区域
|
||||
|
||||
- ✨ **19.13 推荐分类层级导航** — `category_browse_page.dart`
|
||||
- 大类→小类→菜谱列表→详情,新建CategoryBrowsePage
|
||||
|
||||
- 🐛 **19.14 今天吃什么GetX报错** — `what_to_eat_page.dart`
|
||||
- 控制器注册+加载优化+分类扁平化
|
||||
|
||||
- ✨ **19.15 搜索显示相似结果** — `search_page.dart` + `search_controller.dart`
|
||||
- 无结果时提取关键词模糊搜索,显示相似推荐列表
|
||||
|
||||
- ⚙️ **19.16 设置功能全局生效** — `navigation_widgets.dart`
|
||||
- 底部栏样式已全局生效(贴边/悬浮切换)
|
||||
|
||||
- ✨ **19.17 用餐时段推荐页** — `eating_times_page.dart`
|
||||
- 基于eating_times.json创建5类时段浏览+菜谱列表
|
||||
|
||||
- ⚡ **19.18 网络请求优化** — `api_service.dart`
|
||||
- 增强日志拦截器+重试机制+统一离线检查+缓存解析修复
|
||||
|
||||
## [0.65.0] - 2026-04-11
|
||||
|
||||
### Added — 阶段任务补全(12/13/14/16)
|
||||
|
||||
- ✨ **12.1 分享菜谱** — `recipe_detail_page.dart`
|
||||
- 菜谱详情页添加分享按钮(CupertinoIcons.share)
|
||||
- 生成格式化分享文本:菜名+食材列表+做法+来源标识
|
||||
- 调用 CommonUtils.shareContent(底层 share_plus)
|
||||
|
||||
- ✨ **12.3 搜索热词从API获取** — `search_controller.dart`
|
||||
- 热门搜索词改为从 RecipeRepository.fetchTags() API 获取
|
||||
- API 获取失败时保留硬编码 fallback 热词(10个经典菜名)
|
||||
- onInit 时自动加载热词
|
||||
|
||||
- ✨ **13.3 食材用量换算增强** — `serving_scaler_page.dart`
|
||||
- 添加 CupertinoSegmentedControl 切换「份量缩放」/「单位换算」Tab
|
||||
- 单位换算支持三大类:⚖️重量(g/kg/lb/oz/斤/两)、🥛容量(ml/L/杯/汤匙/茶匙)、🔢计数(个/根/片/瓣/条/块/把/勺/滴)
|
||||
- 实时计算换算结果,支持任意单位互转
|
||||
- 底部展示常用换算速查表(8组常用换算)
|
||||
|
||||
- ✨ **14.3 过敏原警示增强** — `allergen_checker.dart` + `recipe_detail_page.dart`
|
||||
- AllergenChecker 添加食材替代建议映射(11类过敏原→替代食材)
|
||||
- 菜谱详情页过敏原警示区展示替代建议(🔄 标识)
|
||||
|
||||
- ✨ **14.4 点赞/推荐系统完善** — `recipe_detail_page.dart`
|
||||
- 点赞按钮显示当前状态(实心/空心心形+颜色变化)
|
||||
- 推荐按钮显示当前推荐状态
|
||||
- 五星评分对话框(1-5星+表情描述)
|
||||
|
||||
- ✨ **14.8 浏览量统计+热度标签** — `recipe_detail_page.dart`
|
||||
- 菜谱详情页展示浏览次数+热度标签(🔥热门/🔥🔥非常热门)
|
||||
|
||||
- ✨ **16.6 收藏页面UI重构** — `favorites_page.dart`
|
||||
- 全面重构为 iOS 26 Liquid Glass 风格
|
||||
- 所有卡片/按钮/筛选器使用 BackdropFilter + 半透明背景
|
||||
- 统一使用 DarkDesignTokens.glass / glassBorder 设计令牌
|
||||
- 空状态居中毛玻璃卡片,编辑栏底部毛玻璃效果
|
||||
- 收藏项卡片毛玻璃+细边框,选中态半透明高亮
|
||||
|
||||
## [0.64.0] - 2026-04-11
|
||||
|
||||
### Added — 阶段十八:浑水摸鱼功能补全
|
||||
|
||||
- ✨ **18.1 烹饪笔记页面** — `cooking_note_page.dart`
|
||||
- 创建完整CookingNotePage,支持按菜谱关联的笔记增删改查
|
||||
- 从菜谱详情页跳转时携带recipeId和recipeTitle
|
||||
|
||||
- ✨ **18.2 过敏原检测实现** — `allergen_checker.dart`
|
||||
- 接入PreferenceController获取用户过敏原偏好设置
|
||||
- 实现11类过敏原关键词匹配检测(坚果/海鲜/乳制品/蛋类/谷物/豆类/肉类/水果/蔬菜/菌类/调味品)
|
||||
- checkAllergens返回实际检测结果,isAllergen正确判断
|
||||
|
||||
- ✨ **18.3 份量缩放从菜谱导入** — `serving_scaler_page.dart`
|
||||
- ServingScalerPage支持ingredients和defaultServings参数
|
||||
- 从菜谱详情页跳转时携带真实食材列表,替代硬编码数据
|
||||
- 菜谱详情页添加"份量缩放"按钮
|
||||
|
||||
- ✨ **18.4 菜单规划数据持久化** — `meal_planner_page.dart`
|
||||
- 接入StorageService+SharedPreferences按周保存/加载菜单数据
|
||||
- 自动检测周次变化,清理过期数据
|
||||
|
||||
- ✨ **18.5 菜单规划从收藏添加** — `meal_planner_page.dart`
|
||||
- 实现_addFromFavorites方法,CupertinoActionSheet选择收藏菜谱
|
||||
- 从FavoritesController获取收藏列表数据
|
||||
|
||||
- ✅ **18.6 购物清单从菜谱添加** — 已确认实现
|
||||
- recipe_detail_page.dart已有_addToShoppingList方法和"购物"按钮
|
||||
|
||||
- ✨ **18.7 食材详情营养信息** — `ingredient_detail_page.dart` + `ingredient_nutrition_db.dart`
|
||||
- 创建IngredientNutritionDb营养数据库(60+种常见食材)
|
||||
- 页面展示:热量大字+营养概览(热量/蛋白质/脂肪/碳水/纤维)+营养素占比条+关键营养素标签+时令季节+选购技巧+储存方法
|
||||
- 列表卡片显示热量预览信息
|
||||
- 支持模糊匹配和分类回退
|
||||
|
||||
- ✨ **18.8 营养中心饼图+折线图** — `charts_widgets.dart` + `nutrition_report_page.dart`
|
||||
- 新增MealTypePieChart组件(早/午/晚/加餐热量分布饼图)
|
||||
- 营养报告页集成餐次分布饼图卡片
|
||||
- 现有图表完整:折线图(热量趋势)+营养素饼图+餐次分布饼图+进度条
|
||||
|
||||
### 新增文件
|
||||
- `lib/src/services/data/ingredient_nutrition_db.dart` — 食材营养数据库
|
||||
|
||||
## [0.63.0] - 2026-04-11
|
||||
|
||||
### Fixed — 控制器注册重复与生命周期统一管理
|
||||
|
||||
- 🐛 **控制器重复注册修复** — `app_binding.dart`
|
||||
- 移除 MainBinding 中 FavoritesController/ShoppingListController 的重复注册(已在 AppBinding 全局注册)
|
||||
- 移除 FavoritesBinding 中 FavoritesController/ToolsController 的重复注册
|
||||
- 移除 RecipeDetailBinding 中 FavoritesController/ActionController/ShoppingListController 的重复注册
|
||||
- 移除 ShoppingBinding 中 ShoppingListController 的重复注册(且与 AppBinding 的 put+permanent 方式冲突)
|
||||
- 移除 ToolsBinding 中 ToolsController 的重复注册
|
||||
- 移除 DiscoverBinding/HotBinding/WhatToEatBinding 中 HotController/WhatToEatController 的重复注册
|
||||
- 删除已清空的 Binding 类:MainBinding, DiscoverBinding, HotBinding, WhatToEatBinding, ShoppingBinding, FavoritesBinding, RecipeDetailBinding, ToolsBinding
|
||||
|
||||
- 🔧 **AppBinding 全局控制器统一管理**
|
||||
- 新增 ToolsController 全局注册(permanent: true)— 多页面使用,应全局管理
|
||||
- 新增 HotController 全局注册(permanent: true)— 主标签页+独立页面均使用
|
||||
- 新增 WhatToEatController 全局注册(permanent: true)— 主标签页+独立页面均使用
|
||||
- 添加分类注释,明确服务层/主题层/核心业务控制器的职责边界
|
||||
|
||||
- 🧹 **页面内联注册清理**
|
||||
- `favorites_page.dart` — 移除 ToolsController 防御性 Get.put,改为直接 Get.find
|
||||
- `tools_center_page.dart` — 移除 ToolsController 防御性 Get.put,改为直接 Get.find
|
||||
- `recipe_detail_page.dart` — 移除 ActionController/FavoritesController 防御性 Get.put,改为直接 Get.find
|
||||
- `navigation_widgets.dart` — 移除 MainNavigationController 的 Get.isRegistered 检查+Get.put,改为直接 Get.find
|
||||
- `app_routes.dart` — 移除已删除 Binding 的路由引用
|
||||
|
||||
### 影响说明
|
||||
|
||||
此修复解决了以下问题:
|
||||
1. **状态丢失**:Get.put() 对已注册的同类型会替换实例,导致控制器状态数据丢失
|
||||
2. **注册方式冲突**:同一控制器在不同 Binding 中混用 put/lazyPut,生命周期不一致
|
||||
3. **内存泄漏风险**:重复创建/销毁控制器实例造成不必要的资源消耗
|
||||
4. **防御性代码冗余**:页面中 try-catch + Get.put 模式不再需要
|
||||
|
||||
## [0.62.1] - 2026-04-10
|
||||
|
||||
### Fixed — Linter 警告清理
|
||||
@@ -78,142 +253,6 @@ All notable changes to this project will be documented in this file.
|
||||
- ✅ **稳定性**: 波动 < 100ms
|
||||
- 📈 **优化空间**: 目标 < 500ms
|
||||
|
||||
## [0.61.0] - 2026-04-10
|
||||
|
||||
### Fixed — 崩溃与数据问题
|
||||
|
||||
- 🐛 **收藏页面点击更多工具卡死闪退** — `favorites_page.dart` / `feature_binding.dart`
|
||||
- 修复 GetX `Obx` 使用不当导致的崩溃
|
||||
- 在 FavoritesBinding 中注册 ToolsController
|
||||
- 添加 Controller 存在性检查,避免 `Get.find()` 抛出异常
|
||||
|
||||
- 🐛 **菜品详情页营养成分全0显示异常检测** — `recipe_detail_page.dart`
|
||||
- 添加营养成分全为0的异常检测
|
||||
- 当热量/蛋白质/脂肪/碳水全部为0时,显示"数据可能有误"标签
|
||||
- 使用橙色标签提示用户数据可能存在问题
|
||||
|
||||
## [0.60.0] - 2026-04-10
|
||||
|
||||
### Fixed — 布局与性能问题
|
||||
|
||||
- 🐛 **工具中心布局溢出** — `tools_center_page.dart`
|
||||
- 移除 GridView 卡片内的 `Spacer()` 组件
|
||||
- 使用 `mainAxisExtent: 140` 替代 `childAspectRatio`
|
||||
- 缩小图标尺寸,优化卡片布局
|
||||
|
||||
## [0.59.0] - 2026-04-10
|
||||
|
||||
### Added — 工具中心功能
|
||||
|
||||
- 🛠️ **工具数据模型** — `tool_item_model.dart`
|
||||
- ToolItem: 工具项数据结构(ID/名称/图标/分类/路由/联网状态)
|
||||
- ToolCategory: 工具分类枚举(烹饪/健康/规划/查询/其他)
|
||||
- ToolRegistry: 工具注册表,定义所有可用工具
|
||||
|
||||
- 🛠️ **工具控制器** — `tools_controller.dart`
|
||||
- 工具列表管理与加载
|
||||
- 使用频率统计(SharedPreferences 持久化)
|
||||
- 搜索与分类过滤
|
||||
- 常用工具推荐(按使用频率排序)
|
||||
|
||||
- 🛠️ **工具中心页面** — `tools_center_page.dart`
|
||||
- 搜索栏支持模糊搜索
|
||||
- 分类标签筛选(全部/烹饪/健康/规划/查询)
|
||||
- 工具网格布局(一行两个,大图标)
|
||||
- 联网状态指示器(绿点=联网/红点=离线)
|
||||
|
||||
- 🛠️ **收藏页工具入口Bar** — `favorites_page.dart`
|
||||
- 显示常用工具快捷入口(最多5个)
|
||||
- 更多工具入口按钮
|
||||
- 按使用频率排序显示
|
||||
|
||||
- 🥜 **过敏原检查工具** — `allergen_checker_page.dart`
|
||||
- 从 API 加载过敏原数据
|
||||
- 搜索食材过敏原信息
|
||||
- 分类浏览(肉类/蔬菜/水产/水果/调料/其他)
|
||||
- 显示过敏原等级和注意事项
|
||||
|
||||
- 🍽️ **用餐时段推荐** — `meal_time_recommend_page.dart`
|
||||
- 从 API 加载用餐时段数据
|
||||
- 根据当前时间自动推荐用餐类型
|
||||
- 按时段搜索推荐菜谱
|
||||
- 支持早中晚餐/夜宵/下午茶分类
|
||||
|
||||
- 📅 **每周菜单规划** — `meal_planner_page.dart`
|
||||
- 一周七天日期选择器
|
||||
- 早中晚三餐规划卡片
|
||||
- 支持搜索菜谱/从收藏选择/自定义输入
|
||||
- 今日规划进度统计
|
||||
|
||||
- 🥕 **食材详情查询** — `ingredient_detail_page.dart`
|
||||
- 从 API 加载食材标签数据
|
||||
- 搜索食材营养信息
|
||||
- 显示食材分类和关联菜谱数量
|
||||
- 营养价值与选购技巧展示
|
||||
|
||||
### Changed — 路由配置更新
|
||||
|
||||
- 🛠️ **新增工具路由** — `app_routes.dart`
|
||||
- `/tools/allergen` → 过敏原检查
|
||||
- `/tools/meal-time` → 用餐时段推荐
|
||||
- `/tools/planner` → 每周菜单规划
|
||||
- `/tools/ingredient` → 食材详情查询
|
||||
- `/tools/nutrition` → 营养中心
|
||||
- `/tools/stats` → 热门统计
|
||||
|
||||
### Docs — 开发清单更新
|
||||
|
||||
- 📝 **UNFINISHED_FEATURES.md 更新**
|
||||
- 新增"十一+:工具中心"阶段,5项任务全部完成
|
||||
- 软件特性功能汇总新增5项工具功能
|
||||
- 总体进度 71% → 73%
|
||||
|
||||
## [0.58.0] - 2026-04-10
|
||||
|
||||
### Fixed — 搜索列表和今天吃什么页面问题
|
||||
|
||||
- 🐛 **搜索列表点击详情卡死** — `search_page.dart`
|
||||
- 添加 recipeId 空值检查,防止无效 ID 导致页面跳转失败
|
||||
- 添加 title 默认值,防止空标题显示异常
|
||||
|
||||
- 🐛 **今天吃什么随机选择后布局溢出** — `what_to_eat_page.dart`
|
||||
- Column 添加 `mainAxisSize: MainAxisSize.min` 防止内容撑开
|
||||
- 文本添加 `maxLines` 和 `overflow` 防止长文本溢出
|
||||
- 标签数量限制为 3 个,防止 Wrap 溢出
|
||||
|
||||
### Added — 阶段十一开发
|
||||
|
||||
- 📊 **营养追踪仪表盘卡片** — `nutrition_dashboard_card.dart`
|
||||
- 首页展示今日营养摄入环形图
|
||||
- 显示热量/蛋白质/脂肪/碳水四项指标
|
||||
- 点击"详情"跳转营养页面
|
||||
- 完成阶段十一任务 11.2
|
||||
|
||||
- 📝 **首页集成营养仪表盘** — `home_page.dart`
|
||||
- 在"今日推荐"上方添加营养追踪卡片
|
||||
- 使用 SliverToBoxAdapter 嵌入
|
||||
|
||||
### Docs — 开发清单更新
|
||||
|
||||
- 📝 **UNFINISHED_FEATURES.md 更新**
|
||||
- 阶段十一 11.2 营养追踪仪表盘 → ✅ 已完成
|
||||
- 阶段十一 11.3 食材加入购物清单 → ✅ 已存在
|
||||
|
||||
|
||||
|
||||
## [0.37.0] - 2026-04-09 — 已归档
|
||||
|
||||
> 主要包含:通知功能移除、路由参数修复、UI组件修复、依赖修复
|
||||
|
||||
## [0.34.0] - 2026-04-09 — 已归档
|
||||
|
||||
> 主要包含:Bug修复阶段六、菜谱详情页、收藏功能增强
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 开发进度
|
||||
|
||||
### 已完成功能
|
||||
@@ -245,6 +284,18 @@ All notable changes to this project will be documented in this file.
|
||||
- ✅ **实用工具入口** — 烹饪计时/用量换算/BMI/份量缩放(优先级2)
|
||||
- ✅ **页面拦截修复** — 路由守卫+PageRegistry注册(优先级2)
|
||||
- ✅ **布局溢出修复** — 标签栏横向滑动+工具区横向滚动(优先级2)
|
||||
- ✅ **工具中心布局溢出修复** — 移除Spacer+mainAxisExtent替代childAspectRatio(v0.60.0)
|
||||
- ✅ **浑水摸鱼功能补全** — 烹饪笔记+过敏原检测+份量缩放+菜单持久化+收藏添加+购物清单+食材营养+餐次饼图(v0.64.0)
|
||||
- ✅ **工具中心** — 数据模型+控制器+搜索/分类/频率统计+联网指示(优先级4)
|
||||
- ✅ **过敏原检查** — API数据加载+分类浏览+等级提示(优先级3)
|
||||
- ✅ **用餐时段推荐** — 时段自动推荐+分类搜索(优先级3)
|
||||
- ✅ **每周菜单规划** — 七日选择器+三餐规划+搜索/收藏选择(优先级3)
|
||||
- ✅ **食材详情查询** — 营养信息+分类+关联菜谱(优先级3)
|
||||
- ✅ **营养追踪仪表盘** — 首页环形图+四项指标(优先级5)
|
||||
- ✅ **搜索列表/今天吃什么Bug修复** — 空值检查+布局溢出(优先级4)
|
||||
- ✅ **统一 Controller Binding 注册** — AppBinding全局管理+移除重复注册(优先级4)
|
||||
- ✅ **崩溃修复** — 收藏页Obx崩溃+详情页营养全0检测(v0.61.0)
|
||||
- ✅ **阶段任务补全(12/13/14/16)** — 分享菜谱+搜索热词API+单位换算+过敏原替代+点赞评分+浏览量统计+收藏页Liquid Glass(v0.65.0)
|
||||
|
||||
### 待开发功能(详见 UNFINISHED_FEATURES.md 阶段九~十三)
|
||||
|
||||
@@ -257,7 +308,6 @@ All notable changes to this project will be documented in this file.
|
||||
- 🟢 聊天页面功能化或移除(优先级3)
|
||||
|
||||
**阶段十:代码质量提升(P1/P2)**
|
||||
- 🟡 统一 Controller Binding 注册(优先级4)
|
||||
- 🟡 HiveService 数据迁移机制(优先级3)
|
||||
- 🟡 统一错误处理 AppException(优先级4)
|
||||
- 🟡 离线缓存策略(优先级4)
|
||||
|
||||
Reference in New Issue
Block a user