Files
kitchen/CHANGELOG.md
Developer 8d27c67d3a api实现
2026-04-09 08:54:36 +08:00

191 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
All notable changes to this project will be documented in this file.
## [0.33.0] - 2026-04-09
### Fixed
- 🐛 **Bug 修复** — 阶段六 + Bug 修复清单
- ✅ B.7 去掉右上角 DEBUG 标签 (`main.dart` 设置 `debugShowCheckedModeBanner: false`)
- ✅ B.5 修复发现页购物清单点击无反应 (`discover_page.dart` 添加路由跳转)
- ✅ B.8 修复发现页营养中心报告跳转到测试页 (改为 `/nutrition-report`)
- ✅ B.6 修复我的页面购物清单被拦截 (`app_routes.dart` 注册 PageRegistry)
- ✅ 发现页搜索栏添加跳转逻辑
- ✅ 发现页目标设置按钮添加跳转逻辑
- ✅ 注册缺失页面goalSetting, shoppingList, search, nutritionReport
### Changed
- 🔄 `discover_page.dart` 快速操作区全部功能化
- 🔄 `main.dart` 关闭 DEBUG 标签显示
- 🔄 `app_routes.dart` 补充注册缺失页面到 PageRegistry
- 🔄 文档更新UNFINISHED_FEATURES.md 进度更新
## [0.32.0] - 2026-04-09
### Added
- 🔍 **搜索功能** — 阶段六 6.4 完成
- 新增 `lib/src/controllers/search/search_controller.dart` 搜索控制器
- 新增 `lib/src/pages/search/search_page.dart` 搜索页面
- 支持热门搜索标签快速选择
- 支持搜索历史记录(本地持久化)
- 支持清空/删除单条历史记录
- 搜索结果列表展示
- 首页搜索栏点击跳转搜索页
- 💀 **骨架屏加载效果** — 阶段六 6.2 完成
- 新增 `lib/src/widgets/skeleton/shimmer_effect.dart` 闪光动画组件
- 新增 `lib/src/widgets/skeleton/feed_card_skeleton.dart` 信息流卡片骨架屏
- 首页加载时显示3个骨架卡片提升感知性能
- 🎯 **交互按钮优化** — 阶段六 6.1 完成
- 首页卡片交互按钮从16px增大到20px
- 点击热区从2px padding扩大到8px horizontal + 6px vertical
- 激活状态添加背景色高亮
- 统计图标从14px增大到18px
### Changed
- 🔄 `home_page.dart` 集成骨架屏、优化交互按钮、搜索栏跳转
- 🔄 `HiveService` 新增搜索历史存储支持
- 🔄 `app_routes.dart` 注册 `/search` 路由
## [0.31.0] - 2026-04-09
### Added
- 🛒 **购物清单功能** — 阶段四100%完成
- 新增 `lib/src/controllers/shopping/shopping_list_controller.dart` 购物清单控制器
- 新增 `lib/src/pages/shopping/shopping_list_page.dart` 购物清单页面
- 支持添加/删除/勾选/清空已购物品
- 分类展示(蔬菜/肉类/海鲜/谷物/乳制品/调味品/水果/其他)
- 筛选功能:显示/隐藏已购 + 分类筛选
- 进度条显示购物完成度
- 我的页面功能网格添加购物清单入口
- 首页卡片添加「添加到购物清单」按钮
### Changed
- 🔄 `profile_home.dart` 功能网格添加购物清单入口
- 🔄 `app_routes.dart` 注册 `/shopping-list` 路由
- 🔄 `HiveService` 新增 `getAllShoppingItemsWithKeys()` 方法
- 🔄 `home_card_carousel.dart` 添加购物车按钮,支持从菜谱添加食材
## [0.30.0] - 2026-04-09
### Added
- 🎯 **用户目标设置页面** — 阶段三最后一项阶段三100%完成
- 新增 `lib/src/pages/nutrition/goal_setting_page.dart` 目标设置页
- 快速预设:🧘减脂(1500kcal) / ⚖️均衡(2000kcal) / 💪增肌(2500kcal)
- 四项滑块调整:热量/蛋白质/脂肪/碳水,各自独立范围和步进
- 💡 营养小贴士卡片
- 保存后写入 HiveService.userGoals 持久化
### Changed
- 🔄 `NutritionCenterPage` 热量概览区新增「🎯 设置目标」入口
- 🔄 `app_routes.dart` 注册 `/goal-setting` 路由
## [0.29.0] - 2026-04-09
### Added
- 📊 **营养报告页面fl_chart 图表)**
- 新增 `lib/src/pages/nutrition/nutrition_report_page.dart` 营养报告页(周/月切换+热量趋势+营养素占比+摘要统计)
- 新增 `lib/src/widgets/charts/nutrition_line_chart.dart` 折线趋势图组件fl_chart LineChart封装支持目标线/触摸提示/自适应刻度)
- 新增 `lib/src/widgets/charts/nutrition_pie_chart.dart` 营养素占比饼图组件fl_chart PieChart封装蛋白质/脂肪/碳水三色展示+图例)
- 🏗️ **全局可复用骨架组件**
- 新增 `lib/src/widgets/base/app_page_scaffold.dart` 页面骨架组件AppPageScaffold/AppSectionHeader/AppCard/AppStatItem/AppProgressBar
- 统一 iOS26 风格页面结构:导航栏/加载/空态/错误/内容五种状态
- 📁 **目录结构按功能域重组**
- `models/` 按功能域分子目录api/recipe/feed/nutrition/user/shopping/note
- `controllers/` 按功能域分子目录feed/home/nutrition/user/favorites/discovery
- 删除未使用的 `product_model.dart``theme_model.dart`
- 全局更新 41 个文件的导入路径
### Changed
- 🔄 `MealRecordController` 扩展周/月营养聚合方法weeklyNutrition/monthlyNutrition/getAggregatedNutrition/getWeeklyAverageCalories/getMonthlyAverageCalories
- 🔄 `NutritionCenterPage` 导航栏新增「📊 报告」按钮跳转营养报告页
- 🔄 `app_routes.dart` 注册 `/nutrition-report` 路由
### Fixed
- 🐛 `app_page_scaffold.dart` navigationBar 类型错误Widget → CupertinoNavigationBar
- 🐛 `app_page_scaffold.dart` refresh protected member 访问错误
## [0.28.0] - 2026-04-09
### Added
- 📊 **fl_chart 本地化 + 鸿蒙适配**
- 拉取 `fl_chart 1.2.0` 源码到 `packages/fl_chart/`(本地依赖)
- 版本号改为 `1.2.0-ohos.1` 标识鸿蒙适配版
- 创建 `packages/fl_chart/ohos/` 鸿蒙平台目录结构
- `ohos/Index.ets` 模块入口
- `ohos/oh-package.json5` 依赖配置
- `ohos/build-profile.json5` 构建配置
- `ohos/src/main/module.json5` 模块声明
- `ohos/src/main/ets/components/plugin/FlChartPlugin.ets` 空壳插件
- `pubspec.yaml` 引入本地 fl_chart`path: packages/fl_chart`
- 📋 **未完成功能清单文档**
- 新增 `docs/dev/UNFINISHED_FEATURES.md` 记录阶段三~五共19项未完成任务
### Fixed
- 🔧 **卡死/闪退问题修复10项**
- #1 Hive `late Box` 未初始化 → 改为 `Box?` + `_assertInitialized()`
- #2 ApiService 缓存竞态 → `late CacheOptions` 改为 `CacheOptions?` + `Completer`
- #3 Get.find 未注册 Controller → 加 `Get.isRegistered<T>()` 判断
- #4 Platform API Web 崩溃 → 条件导入 + `kIsWeb` 检查 + Web stub
- #5 网络请求无超时 → `_isOffline()` 加 3s 超时
- #6 runWithLoading 嵌套 → 布尔值改为计数器 `_loadingCount`
- #8 SharedPreferences 未初始化 → `late` 改为 `?` + 安全调用
- #10 中间件拦截循环 → `/standards-violation` 路由跳过校验
- #9 LoggerService 未初始化 → `_logger` 改为 `Logger?`(上一轮已修)
- #11 MediaQuery 空值崩溃 → try-catch + 默认值(上一轮已修)
### Changed
- 🔄 `docs/dev/UNFINISHED_FEATURES.md` 3.1 fl_chart 状态更新为 ✅ 已引入
---
## 开发进度
### 已完成功能
- ✅ 主题服务ThemeService
- ✅ 动画服务AnimationService
- ✅ 国际化支持en, zh, zh_Hant
- ✅ 权限管理服务
- ✅ 自适应布局系统
- ✅ GetX 全局状态管理
- ✅ 标准组件库
- ✅ 路由守卫系统
- ✅ 繁体中文语言切换 + 弹窗/Toast 样式配置
- ✅ 核心错误修复DeviceType/类型提升/空值检查等)
- ✅ API 基础设施baseUrl + 模型 + Repository— 阶段一
- ✅ 核心数据接入(首页真实数据)— 阶段二
- ✅ 信息流 + 推荐系统 — 阶段三
- ✅ 互动功能:点赞/推荐/浏览 — 阶段四
- ✅ 用户偏好系统 — 阶段五
- ✅ "今天吃什么"功能 — 阶段六
- ✅ 热门排行 + 在线统计 — 阶段七
- ✅ 缓存优化 + 离线支持 — 阶段八
### 待开发功能(优先级 P2-P3
- 📋 "今天吃什么"功能 — 阶段六P2
- 📋 热门排行 + 在线统计 — 阶段七P3
- 📋 缓存优化 + 离线支持 — 阶段八P3
---
## 技术栈
- **框架**: Flutter
- **状态管理**: GetX
- **响应式布局**: flutter_adaptive_scaffold
- **动画系统**: animations
- **国际化**: flutter_localizations + intl
- **权限管理**: permission_handler
---
## 贡献指南
1. 遵循 iOS 风格设计规范
2. 使用主题服务统一管理颜色和字体
3. 使用动画服务统一管理动画效果
4. 新增功能需更新 CHANGELOG.md
5. 代码提交前运行 `flutter analyze` 确保无错误
6. **新建页面必须支持 GetX 状态管理**