# Changelog All notable changes to this project will be documented in this file. ## [0.92.9] - 2026-04-14 ### 🃏 迷你卡片优化 — 液态玻璃效果+详情跳转+Bug修复 #### 优化 - 🎨 **液态玻璃效果重设计** — 底部信息区改为"装水玻璃杯"效果 - 使用 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修复 - 🐛 **setState after dispose** — _goNext()/_goPrev() 添加 mounted 检查,防止动画回调在页面销毁后调用 setState - 🐛 **MediaQuery initState 报错** — 图片预加载从 initState 移至 didChangeDependencies - 🐛 **分享功能改为图片分享** — 使用 RepaintBoundary 截取卡片组件为PNG图片,通过 ShareXFiles 分享 - 🐛 **PaginatedData 缺少 totalPages** — 补充必需参数 #### 影响文件 - `lib/src/pages/discover/mini_card_page.dart` — 液态玻璃重设计+详情跳转+Bug修复 ## [0.92.8] - 2026-04-14 ### 🃏 迷你卡片页面 — Tinder风格滑动浏览菜品 + 首页瀑布流插入 #### 新增功能 - 🆕 **迷你卡片页面** — 交友软件风格左右滑动浏览菜品 - 数据源:`/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后出现) #### 影响文件 - `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` — 加载迷你卡片数据,传递给瀑布流 ## [0.92.7] - 2026-04-14 ### 🧬 营养成分交互增强 + 食材详情页修复 #### 新增功能 - 🆕 **营养成分展开更多** — 菜品详情页详细营养成分标题右侧新增"更多"按钮 - 点击弹出底部对话框(CupertinoModalPopup),从下到上弹出 - 每个营养成分显示emoji图标+名称+数值+跳转提示 - 点击营养成分跳转到含该成分的菜品列表页 - 营养成分emoji映射表(31种营养成分对应emoji) - 🆕 **营养成分菜品列表页** — 新增 NutritionRecipeListPage - 使用 `api_filter.php?act=filter_recipes&nutrition_name=` 接口查询 - 支持分页加载,显示菜品卡片+图片 - 路由: `/nutrition-recipe-list` #### 修复内容 - 🐛 **食材详情菜谱数量显示0** — 修复 `recipeCount` 始终为0的问题 - 根因:API `ingredient_detail` 不返回 `statistics` 字段,但返回 `related_recipes` 数组 - 修复:IngredientModel 新增 `relatedRecipes` 字段和 `effectiveRecipeCount` getter - 当 `statistics.recipeCount` 为0时,fallback 到 `related_recipes.length` - 同时支持 `recipe_count` 和 `view_count` 顶层字段 - 🔧 **食材详情卡片位置调整** — 将"食材详情"卡片移到"储存方法"下面 #### 影响文件 - `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+调整卡片顺序 ## [0.92.6] - 2026-04-14 ### 🖼️ 图片加载修复 + 收藏页交互增强 + 详情页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显示问题 #### 新增功能 - 🆕 **收藏页跳转详情** — 点击收藏菜品卡片跳转菜品详情页 - 🆕 **收藏页下拉工具中心** — 类似微信小程序下拉面板,下拉显示工具中心 - 支持手势拖拽和动画过渡 - 工具中心内嵌模式(隐藏导航栏) - 🆕 **工具中心响应式布局** — 一行2列,横屏自动多列 - 🆕 **首页回顶部** — AppBar右上角第二个图标改为回顶部功能(不刷新内容) - 🆕 **菜品详情页AI图片提示** — 封面图顶部显示"图片可能为AI生成"横幅,可点击X关闭 #### 影响文件 - `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` — 图标更换 ## [0.92.5] - 2026-04-14 ### 🎠 轮播组件优化 — 问候语集成与刷新问题修复 #### 优化内容 - 🔧 **问候语集成** — 将问候语从 HomeAppBar 移至轮播组件顶部固定显示 - 左侧显示时间问候(如"夜深了"、"早上好"等) - 右侧显示日期(MM/DD格式) - 固定在轮播组件顶部,不随轮播切换 - 点击问候语可切换显示提示语(如"深夜了,注意身体") - 🔧 **液态玻璃效果** — 问候语组件使用真正的 iOS 风格液态玻璃 - `BackdropFilter` 模糊背景(sigmaX/Y = glassBlur * 1.2) - 半透明白色背景(深色模式 8% 透明度,浅色模式 25% 透明度) - 细边框纹路(深色模式 15% 透明度,浅色模式 30% 透明度) - 🔧 **滚动事件隔离** — 使用 `NotificationListener` 阻止轮播滚动事件冒泡 - 修复轮播滚动导致搜索框消失的问题 - 修复轮播滚动触发底部卡片刷新的问题 - 🔧 **状态隔离优化** — 彻底隔离营养数据监听 - PageView 提取为独立的 `_CarouselPageView` StatelessWidget - 营养数据监听提取为独立的 `_NutritionDataBuilder` 组件 - 页面指示器使用 `ValueNotifier` + `ValueListenableBuilder` - 🔧 **搜索栏修复** — 修复 HomeAppBar 副栏高度问题,确保搜索栏正常显示 #### 影响文件 - `lib/src/widgets/carousel/feature_carousel_card.dart` — 集成问候语,液态玻璃效果,滚动事件隔离 - `lib/src/widgets/glass/nav/home_app_bar.dart` — 移除问候语,简化副栏 ## [0.92.4] - 2026-04-14 ### 🎠 功能轮播组件 — 首页全新交互体验 #### 新增功能 - 🆕 **FeatureCarouselCard** — 替换原有营养卡片,提供六个功能入口 - 📊 **今日营养** — 展示营养数据环形图(热量、蛋白质、脂肪、碳水) - 🌟 **应用推荐** — 弹窗确认后跳转浏览器访问推荐页面 - 👨‍🍳 **厨艺技巧** — 跳转烹饪技巧页面 - 📈 **运营数据** — 跳转数据大屏页面 - 🎲 **今天吃什么** — 随机推荐菜谱 - 🎁 **敬请期待** — 占位项 #### 交互特性 - ⏱️ **自动轮播** — 3秒间隔自动切换 - 👆 **手动滑动** — 支持左右滑动切换 - 🔘 **进度指示器** — 底部小圆点显示当前位置 - 🎨 **渐变背景** — 每个卡片独特的渐变色设计 - 🌙 **深色模式** — 完美适配深色主题 #### 影响文件 - `lib/src/widgets/carousel/feature_carousel_card.dart` — 新建 - `lib/src/pages/home/home_page.dart` — 更新引用 > 📌 已移除较早版本记录(0.92.3及之前),功能已归档至软件特性清单。