Files
kitchen/CHANGELOG.md
2026-04-14 05:35:30 +08:00

11 KiB
Raw Blame History

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.json341道菜11个分类
    • 图片URLhttps://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_countview_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链自动fallbackcoverUrl→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及之前),功能已归档至软件特性清单。