Files
kitchen/CHANGELOG.md
Developer ceb11d9aac feat: 新增口味偏好服务和菜谱分享功能
- 新增 TastePreferenceService 用于管理用户口味偏好设置
- 实现菜谱分享功能,包括 RecipeShareService 和分享页面
- 更新平台工具类以支持鸿蒙系统检测
- 优化收藏页和农场商店页面的UI交互
- 添加新的参考文献和关于页面内容
- 更新API文档至v3.3.0版本
2026-04-18 08:29:31 +08:00

9.6 KiB
Raw Blame History

Changelog

All notable changes to this project will be documented in this file.

[0.98.9] - 2026-04-18

新增 — 菜谱分享本地存储 + 3天自动过期清理

菜谱分享数据推送Flutter → PHP

  • 📤 RecipeShareService:新增菜谱分享数据推送服务,将菜谱数据推送到 recipe_share.php 本地存储
  • 🔄 先推送后生成:二维码海报生成前先推送数据到服务器,推送失败仍显示海报(降级策略)
  • 📱 完整数据推送:推送菜谱标题/简介/封面/分类/食材/营养/评分等完整信息
  • 🎯 CRUD接口:支持创建/更新/删除菜谱分享数据

recipe_share.php 重构

  • 💾 本地JSON存储从调用外部API改为本地JSON文件存储cache/kitchen/recipe_*.json
  • 3天自动过期数据写入时自动设置3天过期时间读取时自动检查并清理过期文件
  • 🧹 清理接口:新增 ?act=cleanup 接口,手动清理所有过期数据
  • 📋 数据目录共享:与 kitchen.php 共享 cache/kitchen/ 目录

二维码海报组件改进

  • 🎨 加载提示:推送数据时显示 CupertinoActivityIndicator 加载动画
  • 📦 RecipeModel传递showQrPosterSheet 新增 recipe 参数,支持完整菜谱数据传递
  • 🔗 recipe_action_bar:新增 recipe 字段,详情页传递完整菜谱对象

修改文件

  • lib/src/services/data/recipe_share_service.dart — 新增菜谱分享数据推送服务
  • lib/src/widgets/recipe_detail/interaction/recipe_qr_poster.dart — 改为先推送数据再生成二维码
  • lib/src/widgets/recipe_detail/interaction/recipe_action_bar.dart — 新增 recipe 参数
  • lib/src/pages/home/recipe_detail_page.dart — 传递 recipe 到操作栏
  • docs/api/recipe_share.php — 重构为本地存储新增3天过期清理功能

[0.98.8] - 2026-04-18

新增 — 二维码分享URL生成 + PHP分享页面

二维码URL生成

  • 🔗 QR URL重构二维码URL从硬编码改为通过 ApiConfig.baseUrl 动态生成
  • 📱 URL格式https://eat.wktyl.com/api/recipe_share.php?code=CP00001?id=123
  • 🆔 双重参数:支持 code(菜谱编码)和 recipeId数字ID两种查询方式
  • 🔄 降级策略:优先使用 code无 code 时使用 recipeId均无则生成 app scheme URL

PHP分享页面recipe_share.php

  • 🍳 美观分享页iOS风格设计深色模式自适应毛玻璃效果流畅动画
  • 📊 访问统计:自动记录每次扫码访问,按菜谱统计浏览量
  • 📝 访问日志记录IP、UA、来源等保留最近200条
  • 🏷️ OG标签:支持微信/社交媒体分享预览(标题/描述/封面图)
  • 🔌 API代理:通过调用 api.php 获取数据,不直接查询数据库
  • 📈 管理接口?act=stats 查看统计、?act=log 查看日志、?act=api 返回JSON

修改文件

  • lib/src/widgets/recipe_detail/interaction/recipe_qr_poster.dart — QR URL生成逻辑重构新增 recipeId 参数
  • lib/src/widgets/recipe_detail/interaction/recipe_action_bar.dart — 新增 recipeId 传递
  • lib/src/pages/home/recipe_detail_page.dart — 传入 recipe.id 到二维码组件
  • docs/api/recipe_share.php — 新增PHP分享页面

[0.98.7] - 2026-04-18

新增 — 口味偏好持久化 + 菜品详情页偏好标注

口味偏好持久化

  • 💾 TastePreferenceService:新增口味偏好持久化服务,所有偏好值写入 SharedPreferences
  • 🥗 饮食类型/辣度/口味/烹饪水平/人数/健康目标6项偏好值全部持久化应用重启后自动恢复
  • 🔄 PreferencePage 接入:偏好设置页改用 TastePreferenceService 读写,移除本地 State 临时变量
  • 🧹 枚举统一DietType/SpiceLevel/CookingLevel/ServingSize/HealthGoal 统一定义在 TastePreferenceService

菜品详情页偏好标注

  • 💚 我的偏好卡片:在菜品详情页过敏原警告下方新增「我的偏好」标注卡片
  • 🌶️ 辣度匹配:对比用户辣度偏好与菜品口味标签,标注「很匹配/一般/不太匹配」
  • 👅 口味匹配:对比用户甜/咸/酸偏好与菜品口味,计算匹配度
  • 👨‍🍳 难度匹配:对比用户烹饪水平与菜品难度,标注匹配度
  • 🥗 饮食类型匹配:检测菜品食材是否包含用户饮食禁忌(素食/纯素/低碳水/生酮/清真等)
  • ⚠️ 过敏原标注:只标注用户选择的过敏原,显示「安全」或「含过敏原」

修改文件

  • lib/src/services/user/taste_preference_service.dart — 新增口味偏好持久化服务
  • lib/src/pages/profile/settings/preference_page.dart — 接入 TastePreferenceService
  • lib/src/widgets/recipe_detail/info/recipe_taste_preference.dart — 新增菜品偏好标注组件
  • lib/src/pages/home/recipe_detail_page.dart — 集成偏好标注组件
  • lib/src/app_binding.dart — 注册 TastePreferenceService

[0.98.6] - 2026-04-18

新增与改进

软件信息页面

  • 🖼️ 头部卡片图标:将 emoji 替换为应用图标 icon_128x128.png,图标与文本左右居中对齐
  • 📦 assets/icons 注册:在 pubspec.yaml 中添加 assets/icons/ 资源目录

参考文献页面

  • 📚 新增参考文献:从 8 条扩充至 18 条,覆盖 BMI、过敏原、特殊人群、烹饪安全、慢病防控、GI 数据库等
  • 🏷️ 分类标签优化:分类名增加 emoji 前缀(🥗 营养健康、⚠️ 过敏原、⚖️ 体重管理等)

偏好设置页面(重写)

  • 🥗 饮食类型:普通/素食/纯素/低碳水/生酮/地中海/清真
  • 🌶️ 辣度偏好:不吃辣/微辣/中辣/重辣/变态辣
  • 👅 口味偏好:甜度/咸度/酸度滑块调节
  • 👨‍🍳 烹饪水平:厨房小白/入门选手/熟练厨师/厨艺大师
  • 🍚 每餐人数1-2人/3-4人/5人+
  • 🎯 健康目标:减脂/增肌/控糖/心血管/肠胃/免疫/骨骼(多选)
  • 偏好摘要卡片:底部汇总所有偏好设置
  • 🔄 重置功能:一键重置所有偏好

路由修复

  • 🐛 修复 /about 路由未注册:在 PageRegistry.registerAll 中补充 about/privacyPolicy/guide 路由
  • 🐛 修复 app_routes.dart 乱码'分类浏览' 替换损坏的 Unicode 字符

[0.98.5] - 2026-04-18

新增 — 软件信息页面 + 了解我们页面

软件信息页面

  • 📱 新增软件信息页面:展示应用版本、技术栈、构建信息、后端服务、设备信息、更新日志
  • 🎨 毛玻璃头部卡片:渐变背景 + BackdropFilter 毛玻璃效果,展示应用名称和版本
  • ⚙️ 技术栈展示2×2 网格布局展示 Dart / GetX / Hive / Dio 技术栈
  • 🔨 构建信息版本号、内部版本号、打包时间、Build SDK支持点击复制
  • 🖥️ 后端服务信息:展示 PHP / Nginx / API 地址
  • 📱 设备信息操作系统、设备类型、Dart 版本(动态获取)、渲染引擎(三层检测+标注)、屏幕尺寸和像素密度
  • 🎨 渲染引擎检测三层检测机制API → 引擎 → 平台),使用 defaultTargetPlatform + TargetPlatform.ohos 精准识别
  • 🐛 修复鸿蒙端设备信息显示 UnknownPlatformUtils.isHarmonyOS 改用 Platform.isOhos 替代字符串匹配
  • 🐛 修复鸿蒙端渲染引擎显示默认:改用 defaultTargetPlatform 枚举匹配,鸿蒙端正确显示 Impeller (平台)
  • 📋 更新日志:展示版本更新记录
  • 🔓 隐藏开发者模式:连续点击 Flutter 标签 5 次激活开发者模式
  • 📄 开源框架弹窗:展示所有依赖的开源协议
  • 🔗 关于页面入口修改:软件信息从打开 URL 改为跳转 AppInfoPage

了解我们页面

  • 📖 了解我们页面:新增 LearnUsPage展示开发者信息、团队信息、官网链接和ICP备案号
  • 🔗 关于页面入口:关于页面"了解我们"入口从打开外部链接改为跳转新页面
  • 🎨 iOS风格UI:使用 CupertinoPageScaffold + DesignTokens 统一主题,支持深色模式
  • 📋 链接确认弹窗:点击外部链接时弹出 CupertinoAlertDialog 确认,支持复制链接

修改文件

  • lib/src/pages/profile/app_info_page.dart — 新增软件信息页面
  • lib/src/pages/profile/learn_us_page.dart — 新增了解我们页面
  • lib/src/pages/profile/about_page.dart — 软件信息/了解我们入口改为跳转新页面

[0.98.4] - 2026-04-18

🐛 修复 — 小妈菜园交互优化 + 商店布局修复

变更

  • 🔇 消息限流机制:添加 Toast 限流5秒内最多2次10秒内最多3次重复消息自动过滤避免气泡弹出过于频繁
  • 🔄 消息系统统一:所有 Get.snackbar 替换为 ToastService,统一使用项目消息服务
  • 📐 商店布局重构:种子商店卡片从单行布局改为上下分行(名称+购买按钮同行,信息标签换行),使用 Wrap 防止溢出
  • 📤 分享功能确认FarmShareUtil 已支持图片+文本分享(Share.shareXFiles + text),无需修改

修改文件

  • lib/src/controllers/farm/farm_game_controller.dart — 添加消息限流、替换 Get.snackbar
  • lib/src/controllers/farm/farm_shop_controller.dart — 替换 Get.snackbar 为 ToastService
  • lib/src/pages/tools/farm/farm_shop_page.dart — 重构卡片布局,信息标签和购买按钮分行

📌 已移除较早版本记录(0.98.3及之前),功能已归档至软件特性清单。