迷你卡片
This commit is contained in:
475
CHANGELOG.md
475
CHANGELOG.md
@@ -2,355 +2,190 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.92.4] - 2026-04-13
|
||||
|
||||
### 📋 关于页面 + 文档更新
|
||||
## [0.92.9] - 2026-04-14
|
||||
|
||||
#### 新增功能
|
||||
- 📋 **关于页面** — 新增AboutPage,展示应用信息、版本号、用户反馈入口
|
||||
- 💬 **用户反馈入口** — 关于页面新增"用户反馈"选项,点击跳转意见反馈页
|
||||
### 🃏 迷你卡片优化 — 液态玻璃效果+详情跳转+Bug修复
|
||||
|
||||
#### 页面结构
|
||||
- 📱 应用信息:版本号、更新日期、构建版本
|
||||
- 📞 联系我们:用户反馈、评价应用、联系邮箱
|
||||
- 📜 法律信息:用户协议、隐私政策
|
||||
|
||||
#### 路由更新
|
||||
- 新增 `/about` 路由指向AboutPage
|
||||
- profile_settings.dart"关于"按钮跳转改为 `/about`
|
||||
|
||||
#### 文档更新
|
||||
- 📄 **UNFINISHED_FEATURES.md** — 新增阶段三十七/三十八记录,更新总体进度96%
|
||||
- 📄 **PAGE_STRUCTURE_ANALYSIS.md** — 新增收藏页面和关于页面结构描述,更新工具中心布局说明
|
||||
|
||||
## [0.92.3] - 2026-04-13
|
||||
|
||||
### 📚 文档更新 + UI布局优化
|
||||
|
||||
#### 文档更新
|
||||
- 📄 **PAGE_STRUCTURE_ANALYSIS.md** — 更新全局功能缺失汇总状态(相关推荐/过敏原警示/营养可视化标记为✅v0.92.0)
|
||||
- 📄 **PAGE_STRUCTURE_ANALYSIS.md** — 更新API能力分析部分(已使用/未使用接口状态同步)
|
||||
- 📄 **UNFINISHED_FEATURES.md** — 更新API接口使用状态一览(新增api_check_duplicate.php、静态数据使用状态)
|
||||
|
||||
#### UI布局优化
|
||||
- ❤️ **收藏页面** — 布局改为每行2个卡片(GridView.builder替代ListView.separated)
|
||||
- 🛠️ **工具中心页面** — 新增"使用工具"按钮,点击直接跳转工具使用页面(非详情页)
|
||||
|
||||
#### 代码改进
|
||||
- 🎨 收藏卡片改为垂直布局,图标居中显示
|
||||
- 🎨 工具卡片新增"使用工具"按钮(次要样式,边框风格)
|
||||
|
||||
## [0.92.2] - 2026-04-13
|
||||
|
||||
### 📚 烹饪技巧模块 — HowToCook开源项目集成
|
||||
|
||||
#### 新增功能
|
||||
- 📖 **烹饪技巧列表页** — 分类展示18篇烹饪技巧文章(基础/进阶技巧/学习烹饪)
|
||||
- 📝 **Markdown渲染页面** — 使用flutter_markdown_plus渲染,支持标题/列表/代码块/表格等
|
||||
- 🔍 **搜索功能** — 支持按名称和分类搜索烹饪技巧
|
||||
- 🏠 **本地Assets存储** — 18个MD文件打包到应用内,无需网络请求
|
||||
|
||||
#### 数据来源
|
||||
- 数据来源于 [HowToCook](https://github.com/Anduin2017/HowToCook) 开源项目
|
||||
- 包含厨房准备、食材相克、油温判断、学习烹饪等实用技巧
|
||||
|
||||
#### 文件结构
|
||||
- `assets/md/tips/` — 基础技巧MD文件
|
||||
- `assets/md/tips/advanced/` — 进阶技巧MD文件
|
||||
- `assets/md/tips/learn/` — 学习烹饪MD文件
|
||||
- `assets/json/cooking_tips.json` — 技巧元数据索引
|
||||
|
||||
#### 依赖更新
|
||||
- 新增 `flutter_markdown_plus: ^1.0.7` 依赖
|
||||
#### 优化
|
||||
- 🎨 **液态玻璃效果重设计** — 底部信息区改为"装水玻璃杯"效果
|
||||
- 使用 ClipRect + BackdropFilter(sigmaX/Y: 30) 实现高斯模糊
|
||||
- 顶部白色半透明边框(0.25 alpha)模拟光线折射
|
||||
- 渐变背景(0.05→0.12 alpha)模拟水杯透明度
|
||||
- 文字添加 Shadow(black54/black38) 增强可读性
|
||||
- 按钮使用渐变玻璃效果(0.25→0.1 alpha)替代纯色
|
||||
- 🆕 **categoryName 显示** — 迷你卡片底部信息区显示分类名称标签(液态玻璃胶囊样式)
|
||||
- 🆕 **详情按钮API搜索** — 点击详情按钮通过 RecipeRepository.search() 搜索菜名获取API真实ID,再跳转菜谱详情页
|
||||
- 🆕 **全屏查看器详情按钮** — 全屏查看器中详情按钮也通过API搜索跳转
|
||||
|
||||
#### Bug修复
|
||||
- 🐛 修复QR码绘制使用qr 3.0 API(isDark方法移至QrImage类)
|
||||
- 🐛 修复recipe_detail_page.dart中steps字段不存在问题
|
||||
- 🐛 修复cooking_mode_page.dart和daily_menu_page.dart缺少material导入
|
||||
- 🐛 修复ToastService调用方式
|
||||
- 🐛 **setState after dispose** — _goNext()/_goPrev() 添加 mounted 检查,防止动画回调在页面销毁后调用 setState
|
||||
- 🐛 **MediaQuery initState 报错** — 图片预加载从 initState 移至 didChangeDependencies
|
||||
- 🐛 **分享功能改为图片分享** — 使用 RepaintBoundary 截取卡片组件为PNG图片,通过 ShareXFiles 分享
|
||||
- 🐛 **PaginatedData 缺少 totalPages** — 补充必需参数
|
||||
|
||||
## [0.92.1] - 2026-04-13
|
||||
#### 影响文件
|
||||
- `lib/src/pages/discover/mini_card_page.dart` — 液态玻璃重设计+详情跳转+Bug修复
|
||||
|
||||
### 📁 目录结构重构 — 所有文件夹不超过8个文件
|
||||
## [0.92.8] - 2026-04-14
|
||||
|
||||
#### controllers/ (14→1+4子文件夹)
|
||||
- `controllers/recipe/` — recipe_detail_controller, search_controller
|
||||
- `controllers/home/` — home_controller, main_navigation_controller
|
||||
- `controllers/tools/` — tools_controller, what_to_eat_controller, bedtime_reminder_controller
|
||||
- `controllers/data/` — favorites, browse_history, cooking_note, shopping_list, meal_record, weekly_menu
|
||||
|
||||
#### models/ (11→4+2子文件夹)
|
||||
- `models/user/` — user_goal_model, user_preference_model
|
||||
- `models/data/` — browse_history, cooking_note, meal_record, shopping_item, weekly_menu
|
||||
|
||||
#### widgets/根目录 (11→4+2子文件夹)
|
||||
- `widgets/common/` — adaptive_widgets, loading_indicator, responsive_grid, skeleton_widgets
|
||||
- `widgets/recipe/` — recipe_card, recipe_image, nutrition_dashboard_card
|
||||
|
||||
#### pages/profile/ (11→5+2子文件夹)
|
||||
- `pages/profile/data/` — cache_manage, data_center, stats_dashboard
|
||||
- `pages/profile/social/` — chat, favorites, footprints
|
||||
|
||||
#### pages/tools/ (14→3+3子文件夹)
|
||||
- `pages/tools/health/` — allergen_checker, allergen_report, bmi_calculator, meal_time_recommend
|
||||
- `pages/tools/cooking/` — cooking_note, cooking_timer, serving_scaler, unit_converter
|
||||
- `pages/tools/planning/` — meal_planner, weekly_menu_planner, eating_times
|
||||
|
||||
#### widgets/glass/ (10→7+1子文件夹)
|
||||
- `widgets/glass/nav/` — glass_nav_bar, liquid_glass_nav_bar, home_app_bar
|
||||
|
||||
#### widgets/recipe_detail/ (20→1+4子文件夹)
|
||||
- `widgets/recipe_detail/header/` — cover_image, title_section, author_card, meta_info_card, time_info
|
||||
- `widgets/recipe_detail/content/` — ingredients_section, ingredient_details, steps_section, indices_card, picid_card
|
||||
- `widgets/recipe_detail/interaction/` — action_bar, rating_dialog, statistics_bar, tags_section
|
||||
- `widgets/recipe_detail/info/` — nutrition_section, ring_chart, allergen_warning, category_breadcrumb, similar_section
|
||||
|
||||
#### 代码质量
|
||||
- ✅ flutter analyze 零错误通过
|
||||
- 🔧 修复所有相对路径import(3个文件)
|
||||
|
||||
## [0.92.0] - 2026-04-13
|
||||
|
||||
### 🚀 21项功能批量实现 — 评分排行榜/过敏原报告/营养可视化/查重检测/运营大屏等
|
||||
### 🃏 迷你卡片页面 — Tinder风格滑动浏览菜品 + 首页瀑布流插入
|
||||
|
||||
#### 新增功能
|
||||
- 🏆 **评分排行榜** — HotPage新增sort=rate排序,HotRepository/HotController/HotPage三层联动
|
||||
- 📋 **过敏原报告页面** — AllergenReportPage:选择过敏原→生成报告→安全/风险菜谱分类→替代建议
|
||||
- 📊 **营养可视化环形图** — NutritionRingChart组件:蛋白质/脂肪/碳水/纤维占比环形图+热量达标进度条
|
||||
- 🎯 **筛选步骤引导** — WhatToEatPage新增3步引导指示器(选分类→选口味→开转!)
|
||||
- 🔄 **食材替代建议** — IngredientDetailPage新增30+食材替代映射,点击可跳转查看替代食材
|
||||
- 🍽️ **相似菜品推荐** — RecipeSimilarSection组件:菜品详情页底部推荐同分类菜品
|
||||
- 🍽️ **食材相关菜谱** — IngredientDetailPage底部显示含该食材的菜谱列表
|
||||
- 💪 **健身餐推荐** — NutritionCenterPage新增减脂餐/增肌餐/生酮餐/碳水补充快捷入口
|
||||
- ⚡ **营养中心快捷功能** — 营养目标/营养报告/购物清单快捷入口
|
||||
- 🔍 **查重检测页面** — DuplicateCheckPage:输入菜谱名称→搜索相似→计算相似度→分级显示
|
||||
- 📈 **运营数据大屏** — StatsDashboardPage:今日/本月/历史排行+浏览/点赞汇总统计
|
||||
- 📈 **数据管理中心增强** — DataCenterPage新增运营数据大屏入口
|
||||
- 🆕 **迷你卡片页面** — 交友软件风格左右滑动浏览菜品
|
||||
- 数据源:`/assets/recipes.json`(341道菜,11个分类)
|
||||
- 图片URL:`https://eat.wktyl.com/api/assets/mpic/{id}.jpeg`
|
||||
- 左右拖拽滑动切换菜品卡片,拖拽距离>80触发滑动
|
||||
- 滑动时显示"❤️ 喜欢"或"👎 下一道"标签
|
||||
- 底部4个操作按钮:下一道/收藏/喜欢/上一道
|
||||
- 进度条显示浏览进度
|
||||
- 🆕 **分类筛选** — 顶部横向滚动分类标签(全部/素菜/荤菜/水产等11类)
|
||||
- 🆕 **搜索功能** — 搜索菜品名称,点击结果跳转到对应卡片
|
||||
- 🆕 **网格视图** — 卡片/网格双视图切换,响应式布局(2/3/4列)
|
||||
- 🆕 **收藏集成** — 卡片右上角收藏按钮,与全局收藏系统联动
|
||||
- 🆕 **本地缓存** — SharedPreferences存储5-10条记录(不含图片),离线fallback
|
||||
- 🆕 **喜欢/不喜欢记录** — 持久化到SharedPreferences,重启保留
|
||||
- 🆕 **缓存管理** — 缓存管理页面新增迷你卡片缓存清理入口
|
||||
- 🆕 **图片独立组件** — _MiniCardImageView 独立组件,文本在图片内底部展示
|
||||
- 🆕 **液态玻璃效果** — 卡片顶部操作栏和底部信息区使用 GlassContainer 毛玻璃
|
||||
- 🆕 **全屏图片查看器** — 点击卡片打开全屏 PageView,左右滑动切换,异步预加载5张相邻图片
|
||||
- 🆕 **分享按钮** — 使用 share_plus 分享菜品信息+图片URL
|
||||
- 🆕 **缓存优先加载** — 查看过的卡片存入缓存,下次进入先显示缓存再内部加载
|
||||
- 🆕 **首页瀑布流插入** — 迷你卡片以全宽横幅插入首页瀑布流(1:20比例)
|
||||
- 每20个瀑布流item后插入1个迷你卡片横幅
|
||||
- 点击横幅跳转迷你卡片页面(支持指定卡片ID)
|
||||
- MiniCardDiscoverCard 组件:液态玻璃+全宽图片+分类标签
|
||||
- 🆕 **MiniCardService** — 独立数据服务,支持缓存优先,供多页面复用
|
||||
- 🆕 **路由参数支持** — 迷你卡片页面支持 initialRecipeId 参数,从首页跳转到指定卡片
|
||||
|
||||
#### 工具中心新增
|
||||
- 📋 过敏原报告 — 工具中心健康分类新增入口
|
||||
- 🔍 查重检测 — 工具中心数据分类新增入口
|
||||
- 📊 运营数据大屏 — 工具中心数据分类新增入口
|
||||
#### 入口
|
||||
- 个人中心 → 迷你卡片(原null路由已连接)
|
||||
- 首页瀑布流 → 迷你卡片横幅(每20个item后出现)
|
||||
|
||||
#### 路由注册
|
||||
- `/allergen-report` — 过敏原报告页面
|
||||
- `/duplicate-check` — 查重检测页面
|
||||
- `/stats-dashboard` — 运营数据大屏页面
|
||||
#### 影响文件
|
||||
- `lib/src/models/mini_card_model.dart` — 新建数据模型
|
||||
- `lib/src/pages/discover/mini_card_page.dart` — 重构:图片独立组件+全屏查看器+分享+缓存优先
|
||||
- `lib/src/config/app_routes.dart` — 路由支持 initialRecipeId 参数
|
||||
- `lib/src/pages/profile/profile_home.dart` — 连接入口
|
||||
- `lib/src/pages/profile/data/cache_manage_page.dart` — 新增迷你卡片缓存管理
|
||||
- `lib/src/widgets/discover/mini_card_discover_card.dart` — 新建瀑布流迷你卡片横幅组件
|
||||
- `lib/src/widgets/discover/discover_waterfall.dart` — 支持迷你卡片插入(SliverMainAxisGroup)
|
||||
- `lib/src/models/discover_model.dart` — 新增 miniCard 类型和 MiniCardRecipeRef
|
||||
- `lib/src/services/data/mini_card_service.dart` — 新建迷你卡片数据服务
|
||||
- `lib/src/pages/home/home_page.dart` — 加载迷你卡片数据,传递给瀑布流
|
||||
|
||||
#### 代码质量
|
||||
- ✅ flutter analyze 零错误通过
|
||||
- 🔧 修复nutrition_ring_chart num→double类型转换
|
||||
- 🔧 修复stats_dashboard_page HotItem属性引用(recipeId→id, title→name)
|
||||
- 🔧 移除allergen_report_page未使用的_isGenerating字段
|
||||
## [0.92.7] - 2026-04-14
|
||||
|
||||
## [0.91.21] - 2026-04-13
|
||||
### 🧬 营养成分交互增强 + 食材详情页修复
|
||||
|
||||
### 🐛 食材详情页闪退修复 + API能力分析文档更新
|
||||
#### 新增功能
|
||||
- 🆕 **营养成分展开更多** — 菜品详情页详细营养成分标题右侧新增"更多"按钮
|
||||
- 点击弹出底部对话框(CupertinoModalPopup),从下到上弹出
|
||||
- 每个营养成分显示emoji图标+名称+数值+跳转提示
|
||||
- 点击营养成分跳转到含该成分的菜品列表页
|
||||
- 营养成分emoji映射表(31种营养成分对应emoji)
|
||||
- 🆕 **营养成分菜品列表页** — 新增 NutritionRecipeListPage
|
||||
- 使用 `api_filter.php?act=filter_recipes&nutrition_name=` 接口查询
|
||||
- 支持分页加载,显示菜品卡片+图片
|
||||
- 路由: `/nutrition-recipe-list`
|
||||
|
||||
#### Bug修复
|
||||
- 🐛 **setState() after dispose() 闪退** — 食材详情页异步操作完成后页面已销毁仍调用setState
|
||||
- `_loadIngredientFromArgs()` 添加 `mounted` 检查
|
||||
- `_loadIngredientByName()` 添加 `mounted` 检查
|
||||
- `_loadIngredients()` 3处 `setState` 全部添加 `mounted` 检查
|
||||
- 举一反三:扫描15个页面的 `await→setState` 模式,确认其他页面已有保护
|
||||
#### 修复内容
|
||||
- 🐛 **食材详情菜谱数量显示0** — 修复 `recipeCount` 始终为0的问题
|
||||
- 根因:API `ingredient_detail` 不返回 `statistics` 字段,但返回 `related_recipes` 数组
|
||||
- 修复:IngredientModel 新增 `relatedRecipes` 字段和 `effectiveRecipeCount` getter
|
||||
- 当 `statistics.recipeCount` 为0时,fallback 到 `related_recipes.length`
|
||||
- 同时支持 `recipe_count` 和 `view_count` 顶层字段
|
||||
- 🔧 **食材详情卡片位置调整** — 将"食材详情"卡片移到"储存方法"下面
|
||||
|
||||
#### 文档更新
|
||||
- 📊 **API能力分析全面更新** — PAGE_STRUCTURE_ANALYSIS.md
|
||||
- 新增"已使用API接口一览"表(8个接口文件+9个Repository)
|
||||
- 新增"未使用API接口一览"表(18个未调用接口/参数/静态资源)
|
||||
- 🟢 已有API可直接开发:12项(新增筛选步骤引导、编码/模糊查询、食谱子分类)
|
||||
- 🟡 需组合API开发:10项(新增食材营养详情、食材替代建议、营养目标追踪、统一格式输出)
|
||||
- 🔴 需后端新开发API:13项(新增烹饪笔记同步、购物清单同步、每周菜单存储)
|
||||
- 新增"推荐开发路线图"三阶段规划
|
||||
#### 影响文件
|
||||
- `lib/src/widgets/recipe_detail/info/recipe_nutrition_section.dart` — 新增展开更多+弹窗+跳转
|
||||
- `lib/src/pages/discover/nutrition_recipe_list_page.dart` — 新建
|
||||
- `lib/src/config/app_routes.dart` — 新增路由
|
||||
- `lib/src/models/recipe/ingredient_model.dart` — 新增relatedRecipes+effectiveRecipeCount
|
||||
- `lib/src/pages/tools/ingredient_detail_page.dart` — 修复count+调整卡片顺序
|
||||
|
||||
#### 代码修复
|
||||
- 🍃 **CupertinoIcons.leaf不存在** — 替换为 `Icons.eco`(Material),添加 `material.dart` import
|
||||
- 🧹 **移除不必要的 painting.dart import** — 替换为 `material.dart`
|
||||
## [0.92.6] - 2026-04-14
|
||||
|
||||
## [0.91.20] - 2026-04-13
|
||||
### 🖼️ 图片加载修复 + 收藏页交互增强 + 详情页AI提示
|
||||
|
||||
### 🥬 食材详情本地缓存 + 缓存管理增强
|
||||
#### 修复内容
|
||||
- 🐛 **菜品卡片图片不显示** — 修复HTTP→HTTPS协议问题+Fallback链机制
|
||||
- RecipeImage 改为 StatefulWidget,支持URL链自动fallback(coverUrl→picId a→picId b)
|
||||
- HTTP→HTTPS 自动转换,解决iOS阻止HTTP请求问题
|
||||
- DiscoverRecipe 模型新增 `picId` 字段和 `resolvedCoverUrl` getter
|
||||
- 从cover URL中自动提取picId(正则匹配 `/pic/(\d+)`)
|
||||
- RecipeDiscoverCard 简化图片加载逻辑,使用模型字段替代本地计算
|
||||
- RecipePicIdCard 修复HTTP→HTTPS显示问题
|
||||
|
||||
#### 食材缓存
|
||||
- 🥬 **IngredientModel.toJson** — 新增序列化方法,支持缓存存储
|
||||
- 💾 **RecipeRepository.fetchIngredientDetail** — 添加缓存逻辑,优先读取本地缓存,7天有效期
|
||||
- 🗑️ **缓存管理页面** — 新增食材详情缓存管理
|
||||
- 概览卡片:显示食材缓存数量
|
||||
- 操作按钮:清理食材详情缓存
|
||||
- 食材列表:显示已缓存食材,支持左滑删除、点击查看
|
||||
- 单项清理:`_clearSpecificIngredientCache`
|
||||
#### 新增功能
|
||||
- 🆕 **收藏页跳转详情** — 点击收藏菜品卡片跳转菜品详情页
|
||||
- 🆕 **收藏页下拉工具中心** — 类似微信小程序下拉面板,下拉显示工具中心
|
||||
- 支持手势拖拽和动画过渡
|
||||
- 工具中心内嵌模式(隐藏导航栏)
|
||||
- 🆕 **工具中心响应式布局** — 一行2列,横屏自动多列
|
||||
- 🆕 **首页回顶部** — AppBar右上角第二个图标改为回顶部功能(不刷新内容)
|
||||
- 🆕 **菜品详情页AI图片提示** — 封面图顶部显示"图片可能为AI生成"横幅,可点击X关闭
|
||||
|
||||
## [0.91.19] - 2026-04-13
|
||||
#### 影响文件
|
||||
- `lib/src/widgets/recipe/recipe_image.dart` — 重构为StatefulWidget,添加Fallback链+HTTPS转换
|
||||
- `lib/src/models/discover_model.dart` — 新增picId字段+resolvedCoverUrl getter
|
||||
- `lib/src/widgets/discover/recipe_discover_card.dart` — 简化图片加载逻辑
|
||||
- `lib/src/widgets/recipe_detail/content/recipe_picid_card.dart` — HTTPS修复
|
||||
- `lib/src/widgets/recipe_detail/header/recipe_cover_image.dart` — 新增AI横幅
|
||||
- `lib/src/pages/profile/social/favorites_page.dart` — 跳转详情+下拉工具中心
|
||||
- `lib/src/pages/tools/tools_center_page.dart` — 响应式2列布局+内嵌模式
|
||||
- `lib/src/pages/home/home_page.dart` — 回顶部功能
|
||||
- `lib/src/widgets/glass/nav/home_app_bar.dart` — 图标更换
|
||||
|
||||
### 🎨 全局UI统一:圆角/颜色/毛玻璃/空状态/加载状态
|
||||
## [0.92.5] - 2026-04-14
|
||||
|
||||
#### 统一圆角
|
||||
- 📐 **替换89处硬编码圆角** — `BorderRadius.circular(N)` → `DesignTokens.borderRadiusSm/Md/Lg/Xl/Full`
|
||||
- 映射规则:2-8→Sm, 10-16→Md, 18-20→Lg, 22-28→Xl, 25+→Full
|
||||
- 9个文件缺少 `design_tokens.dart` import,已自动添加
|
||||
### 🎠 轮播组件优化 — 问候语集成与刷新问题修复
|
||||
|
||||
#### 统一颜色
|
||||
- 🎨 **替换20处硬编码颜色** — `Color(0xFFFF3B30)` 等 → `DesignTokens.red/green/orange/purple/blue/teal/text2/text3`
|
||||
- 映射规则:FF3B30/F44336→red, 34C759/4CAF50→green, FFB800→gold, 9C27B0→purple, 3498DB→blue, 1ABC9C→teal, 8E8E93→text2
|
||||
- 修复 `const DesignTokens.red` → `DesignTokens.red`(静态字段不是构造函数)
|
||||
- 修复 `Colors.transparent` → `const Color(0x00000000)`(避免缺少 import)
|
||||
#### 优化内容
|
||||
- 🔧 **问候语集成** — 将问候语从 HomeAppBar 移至轮播组件顶部固定显示
|
||||
- 左侧显示时间问候(如"夜深了"、"早上好"等)
|
||||
- 右侧显示日期(MM/DD格式)
|
||||
- 固定在轮播组件顶部,不随轮播切换
|
||||
- 点击问候语可切换显示提示语(如"深夜了,注意身体")
|
||||
- 🔧 **液态玻璃效果** — 问候语组件使用真正的 iOS 风格液态玻璃
|
||||
- `BackdropFilter` 模糊背景(sigmaX/Y = glassBlur * 1.2)
|
||||
- 半透明白色背景(深色模式 8% 透明度,浅色模式 25% 透明度)
|
||||
- 细边框纹路(深色模式 15% 透明度,浅色模式 30% 透明度)
|
||||
- 🔧 **滚动事件隔离** — 使用 `NotificationListener` 阻止轮播滚动事件冒泡
|
||||
- 修复轮播滚动导致搜索框消失的问题
|
||||
- 修复轮播滚动触发底部卡片刷新的问题
|
||||
- 🔧 **状态隔离优化** — 彻底隔离营养数据监听
|
||||
- PageView 提取为独立的 `_CarouselPageView` StatelessWidget
|
||||
- 营养数据监听提取为独立的 `_NutritionDataBuilder` 组件
|
||||
- 页面指示器使用 `ValueNotifier` + `ValueListenableBuilder`
|
||||
- 🔧 **搜索栏修复** — 修复 HomeAppBar 副栏高度问题,确保搜索栏正常显示
|
||||
|
||||
#### 增强EmptyState
|
||||
- 💎 **毛玻璃卡片包裹** — 新增 `useGlassCard` 参数(默认true)
|
||||
- 🎯 **图标圆形背景** — 使用 `DesignTokens.dynamicPrimary` 主题色圆形背景
|
||||
- 📏 **行高优化** — message 文本 `height: 1.5` 提升可读性
|
||||
#### 影响文件
|
||||
- `lib/src/widgets/carousel/feature_carousel_card.dart` — 集成问候语,液态玻璃效果,滚动事件隔离
|
||||
- `lib/src/widgets/glass/nav/home_app_bar.dart` — 移除问候语,简化副栏
|
||||
|
||||
#### 增强LoadingIndicator
|
||||
- 💎 **毛玻璃卡片包裹** — 新增 `useGlassCard` 参数
|
||||
- 🎯 **主题色指示器** — 使用 `DesignTokens.dynamicPrimary` 替代 ThemeService 直接引用
|
||||
- 📐 **centered参数** — 支持非居中场景(如列表底部加载更多)
|
||||
## [0.92.4] - 2026-04-14
|
||||
|
||||
## [0.91.18] - 2026-04-13
|
||||
### 🎠 功能轮播组件 — 首页全新交互体验
|
||||
|
||||
### 🎨 修复主题色切换全局不生效 + 统一动态主题色引用
|
||||
#### 新增功能
|
||||
- 🆕 **FeatureCarouselCard** — 替换原有营养卡片,提供六个功能入口
|
||||
- 📊 **今日营养** — 展示营养数据环形图(热量、蛋白质、脂肪、碳水)
|
||||
- 🌟 **应用推荐** — 弹窗确认后跳转浏览器访问推荐页面
|
||||
- 👨🍳 **厨艺技巧** — 跳转烹饪技巧页面
|
||||
- 📈 **运营数据** — 跳转数据大屏页面
|
||||
- 🎲 **今天吃什么** — 随机推荐菜谱
|
||||
- 🎁 **敬请期待** — 占位项
|
||||
|
||||
#### 核心Bug修复
|
||||
- 🎨 **主题色切换全局不生效** — 根因:UI组件使用 `DesignTokens.primary`(静态常量)而非 `DesignTokens.dynamicPrimary`(动态读取ThemeService)
|
||||
- 批量替换 `isDark ? DarkDesignTokens.primary : DesignTokens.primary` → `DesignTokens.dynamicPrimary`(34个文件)
|
||||
- 批量替换 `DesignTokens.primary` → `DesignTokens.dynamicPrimary`(33个文件,排除design_tokens.dart定义和theme_service.dart默认值)
|
||||
- 修复 `DarkDesignTokens.dynamicPrimary` 误替换为 `DesignTokens.dynamicPrimary`(5个文件)
|
||||
- 修复 `const` 上下文错误:移除包含 `dynamicPrimary` 的 `const` 构造函数关键字
|
||||
- 修复默认参数值错误:`AppProgressBar.color` 和 `NutritionLineChart.lineColor` 改为可空+初始化列表
|
||||
#### 交互特性
|
||||
- ⏱️ **自动轮播** — 3秒间隔自动切换
|
||||
- 👆 **手动滑动** — 支持左右滑动切换
|
||||
- 🔘 **进度指示器** — 底部小圆点显示当前位置
|
||||
- 🎨 **渐变背景** — 每个卡片独特的渐变色设计
|
||||
- 🌙 **深色模式** — 完美适配深色主题
|
||||
|
||||
#### 影响范围
|
||||
- 全部59个dart文件中的439处 `DesignTokens.primary` / `DarkDesignTokens.primary` 引用
|
||||
- 主题色切换现在能即时生效于所有页面
|
||||
#### 影响文件
|
||||
- `lib/src/widgets/carousel/feature_carousel_card.dart` — 新建
|
||||
- `lib/src/pages/home/home_page.dart` — 更新引用
|
||||
|
||||
## [0.91.17] - 2026-04-13
|
||||
|
||||
### 📝 文档更新:页面结构分析 + 视图文件引用
|
||||
|
||||
#### 核心变更
|
||||
- 📊 **新增页面结构分析文档** — `docs/dev/PAGE_STRUCTURE_ANALYSIS.md`(新建)
|
||||
- 全局导航图:MainTabView → 首页/发现/工具/我的 四大Tab
|
||||
- 12个页面详细结构图(文本符号可视化)
|
||||
- 每个页面跳转关系表(触发元素/跳转方式/目标页面/路由/传参)
|
||||
- 美观问题分析(严重度分级:🟡高/🟡中/🟢低)
|
||||
- 功能缺失清单(优先级P1-P3)
|
||||
- 全局美观/功能问题汇总
|
||||
|
||||
- 📄 **页面视图文件引用** — `docs/dev/PAGE_STRUCTURE_ANALYSIS.md`
|
||||
- 为每个页面添加"📄 页面视图文件"章节
|
||||
- 仅展示前2个关联视图文件(主页面+核心组件/控制器)
|
||||
- 涵盖:首页/发现/搜索/高级搜索/菜品详情/工具中心/我的/食材详情/分类浏览/标签列表/热门排行/今天吃什么
|
||||
|
||||
- 📋 **压缩未完成功能清单** — `docs/dev/UNFINISHED_FEATURES.md`
|
||||
- 从~600行压缩至~130行
|
||||
- 聚焦未完成任务,已完成阶段仅保留汇总
|
||||
|
||||
## [0.91.16] - 2026-04-13
|
||||
|
||||
### ✨ 搜索功能修复 + 高级搜索 + 食材详情返回首页
|
||||
|
||||
#### 核心变更
|
||||
- 🔍 **修复搜索功能** — `lib/src/controllers/search_controller.dart`
|
||||
- 切换到 `api_filter.php?act=global_search` 接口,解决搜索无结果问题
|
||||
- 新增4类搜索结果:recipeResults/ingredientResults/tasteTagResults/cookingTagResults
|
||||
- 新增 SearchIngredientResult 模型解析食材搜索结果
|
||||
- 新增 `totalResultCount`/`hasAnyResult`/`_autoSelectTab` 便捷方法
|
||||
- 新增 `searchByFilter()` 支持高级筛选搜索
|
||||
|
||||
- 📑 **搜索结果分Tab展示** — `lib/src/pages/home/search_page.dart`
|
||||
- 搜索结果动态Tab:📖 菜谱 / 🥬 食材 / 👅 口味 / 🍳 工艺
|
||||
- 每个Tab显示结果数量徽章
|
||||
- 自动选择有结果的Tab
|
||||
- 导航栏增加高级搜索入口(⚙️ slider_horizontal_3图标)
|
||||
- 食材结果卡片显示分类名和菜谱数量
|
||||
- 口味/工艺标签结果使用2列网格布局
|
||||
|
||||
- ⚙️ **新增高级搜索页面** — `lib/src/pages/home/advanced_search_page.dart`(新建)
|
||||
- 4个筛选维度:📂 菜谱分类 / 👅 口味标签 / 🍳 工艺标签 / 🕐 用餐时段
|
||||
- 支持多条件组合筛选
|
||||
- 支持重置筛选条件
|
||||
- 底部搜索按钮调用 searchByFilter() 执行筛选
|
||||
|
||||
- 🔌 **Repository新增接口** — `lib/src/repositories/recipe_repository.dart`
|
||||
- `fetchMainCategories()`: 获取菜谱大类列表(调用 recipe_main_categories 接口)
|
||||
|
||||
- 🛤️ **新增路由** — `lib/src/config/app_routes.dart`
|
||||
- 新增 `advancedSearch` 路由(/advanced-search)
|
||||
|
||||
- 🏠 **食材详情返回首页** — `lib/src/pages/tools/ingredient_detail_page.dart`
|
||||
- 底部按钮从"返回列表"改为"返回首页"
|
||||
- 使用 `Get.until((route) => route.isFirst)` 返回根路由
|
||||
|
||||
- 📦 **CategoryModel增强** — `lib/src/models/recipe/category_model.dart`
|
||||
- fromJson 支持 `recipe_count` 字段映射到 count
|
||||
|
||||
## [0.91.15] - 2026-04-13
|
||||
|
||||
### ✨ 发现页推荐Tab新增口味/工艺筛选 + 分类导航修复
|
||||
|
||||
#### 核心变更
|
||||
- 👅 **推荐Tab新增口味筛选** — `lib/src/pages/discover/discover_page.dart`
|
||||
- GlassSegmentedControl 从2段扩展为4段:📖 菜谱 / 🥬 食材 / 👅 口味 / 🍳 工艺
|
||||
- 口味Tab显示口味标签网格(3列),点击跳转 TagRecipeListPage
|
||||
- 工艺Tab显示工艺标签网格(3列),点击跳转 TagRecipeListPage
|
||||
|
||||
- 🏷️ **标签网格UI** — `lib/src/pages/discover/discover_page.dart`
|
||||
- 新增 `_buildTagGrid` 方法,3列紧凑布局,圆角卡片+边框
|
||||
- 空状态显示🏷️图标+"暂无标签数据"
|
||||
- 点击标签传递 tagName/tagId/tagType 到 TagRecipeListPage
|
||||
|
||||
- 📂 **分类网格重构** — `lib/src/pages/discover/discover_page.dart`
|
||||
- 提取 `_buildCategoryGrid` 方法,与标签网格分离
|
||||
- 提取 `_buildRecommendContent` 方法,根据tab索引切换内容
|
||||
|
||||
- 🔌 **Repository新增筛选接口** — `lib/src/repositories/recipe_repository.dart`
|
||||
- `fetchTasteTags()`: 获取口味标签列表
|
||||
- `fetchCookingTags()`: 获取工艺标签列表
|
||||
- `filterRecipesByTag()`: 按口味/工艺/分类筛选菜谱
|
||||
|
||||
- 🐛 **分类导航修复** — `lib/src/pages/discover/category_browse_page.dart`
|
||||
- 修复点击菜谱/食材分类闪退问题(BOTTOM OVERFLOWED)
|
||||
- 使用 CustomScrollView + SliverList 替代 Column + Expanded
|
||||
|
||||
## [0.91.14] - 2026-04-13
|
||||
|
||||
### ✨ 菜品详情页功能完善 — 评分显示 + 交互跳转
|
||||
|
||||
#### 核心变更
|
||||
- ⭐ **新增 RecipeRating 模型** — `lib/src/models/recipe/recipe_model.dart`
|
||||
- 对齐 API v2.8.0 rating 字段:score/nums/display/status/level/star
|
||||
- 支持评分状态判断(none/few/normal/sufficient/abnormal)
|
||||
- 支持评分等级判断(优秀/推荐/一般/较差/不推荐)
|
||||
- 提供 `displayText`/`hasRating` 等便捷属性
|
||||
|
||||
- 📊 **更新 RecipeStatistics 模型** — `lib/src/models/recipe/recipe_model.dart`
|
||||
- 新增 `rateNums`/`rateScore` 字段,替代旧的 `recommends`/`recommendScore`
|
||||
- 新增 `rating` (RecipeRating?) 字段
|
||||
- 旧字段标记为 `@Deprecated`,保持向后兼容
|
||||
- fromJson 兼容 `rate_nums`/`recommends`/`recommend_count` 多种API字段名
|
||||
|
||||
- 📈 **重构 RecipeStatisticsBar** — `lib/src/widgets/recipe_detail/recipe_statistics_bar.dart`
|
||||
- 评分列从"⭐推荐"改为星级+评分文本+等级标签
|
||||
- 5星评级显示(CupertinoIcons.star_fill/star)
|
||||
- 评分等级彩色标签(🌟金色优秀/⭐蓝色推荐/✨灰色一般/⚠️红色较差)
|
||||
- 无评分时显示灰色星星+"暂无评分"
|
||||
|
||||
- 🖼️ **更新 RecipeCoverImage** — `lib/src/widgets/recipe_detail/recipe_cover_image.dart`
|
||||
- 封面图叠加层新增评分徽章(⭐ 4.5)
|
||||
- 有评分时显示评分徽章,无评分时显示热度标签
|
||||
- 评分等级对应不同徽章颜色
|
||||
|
||||
- 🏷️ **标签点击跳转** — `lib/src/widgets/recipe_detail/recipe_tags_section.dart`
|
||||
- 点击标签跳转到 TagRecipeListPage
|
||||
- 标签添加 chevron_right 图标提示可点击
|
||||
|
||||
- 📂 **分类面包屑点击跳转** — `lib/src/widgets/recipe_detail/recipe_category_breadcrumb.dart`
|
||||
- 非末级分类可点击跳转到 CategoryBrowsePage
|
||||
- 末级分类高亮不可点击
|
||||
- 面包屑项添加 chevron_right 图标提示可点击
|
||||
|
||||
- 🔄 **RecipeDetailPage 传递 rating** — `lib/src/pages/home/recipe_detail_page.dart`
|
||||
- RecipeCoverImage 和 RecipeStatisticsBar 接收 rating 参数
|
||||
|
||||
#### 文档更新
|
||||
- 📋 更新 `docs/dev/UNFINISHED_FEATURES.md` 新增阶段二十九:菜品详情页功能完善
|
||||
|
||||
> 📌 已移除更早版本记录(0.91.13及之前),功能已归档至软件特性清单。
|
||||
> 📌 已移除较早版本记录(0.92.3及之前),功能已归档至软件特性清单。
|
||||
|
||||
Reference in New Issue
Block a user