迷你卡片
This commit is contained in:
@@ -498,6 +498,7 @@
|
||||
| 🌙 就寝 | `Get.toNamed` | 就寝提醒 | `/profile/bedtime-reminder` | - |
|
||||
| 📋 营养 | `Get.toNamed` | 营养中心 | `/nutrition` | - |
|
||||
| 💬 反馈 | `Get.toNamed` | 意见反馈 | `/chat` | - |
|
||||
| ❤️ 迷你卡片 | `Get.toNamed` | 迷你卡片页 | `/mini-card` | - |
|
||||
|
||||
### 🎨 美观问题
|
||||
| # | 问题 | 严重度 | 建议 |
|
||||
@@ -825,6 +826,104 @@
|
||||
|
||||
---
|
||||
|
||||
## 🃏 迷你卡片页 (MiniCardPage)
|
||||
|
||||
```
|
||||
┌─────────────────────────────┐
|
||||
│ ← 返回 迷你卡片 🔍 │ ← CupertinoNavigationBar
|
||||
├─────────────────────────────┤
|
||||
│ [全部][素菜][荤菜][水产]... │ ← 横向分类标签
|
||||
├─────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────┐ │
|
||||
│ │ 🃏分类 ❤️ ⭐ 📤 │ │ ← 液态玻璃顶部操作栏
|
||||
│ │ │ │
|
||||
│ │ [菜品图片] │ │ ← _MiniCardImageView 独立组件
|
||||
│ │ │ │
|
||||
│ │ ┌─────────────────┐ │ │ ← 液态玻璃底部信息区
|
||||
│ │ │ 菜名 │ │ │
|
||||
│ │ │ 🏷️ 分类 详情 → │ │ │
|
||||
│ │ └─────────────────┘ │ │
|
||||
│ └─────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────┐ │
|
||||
│ │ 👎 │ ❤️ │ ⭐ │ ↩️ │ │ ← 底部操作按钮
|
||||
│ └─────────────────────┘ │
|
||||
│ │
|
||||
│ ████████░░░░ 12/341 │ ← 进度条
|
||||
│ │
|
||||
└─────────────────────────────┘
|
||||
|
||||
全屏图片查看器(点击卡片触发):
|
||||
┌─────────────────────────────┐
|
||||
│ ✕ 1/341 📤❤️ │ ← 液态玻璃顶栏
|
||||
│ │
|
||||
│ │
|
||||
│ [全屏菜品图片] │ ← PageView 左右滑动
|
||||
│ │
|
||||
│ │
|
||||
│ ┌─────────────────────────┐ │ ← 液态玻璃底部信息
|
||||
│ │ 菜名 │ │
|
||||
│ │ 🏷️ 分类 · 描述 详情 → │ │
|
||||
│ └─────────────────────────┘ │
|
||||
└─────────────────────────────┘
|
||||
|
||||
首页瀑布流迷你卡片横幅:
|
||||
┌─────────────────────────────┐
|
||||
│ 🃏 迷你卡片 │ ← 液态玻璃标签
|
||||
│ │
|
||||
│ [全宽菜品图片] │ ← MiniCardDiscoverCard
|
||||
│ │
|
||||
│ ┌─────────────────────────┐ │ ← 液态玻璃底部
|
||||
│ │ 菜名 🏷️分类 查看 → │ │
|
||||
│ └─────────────────────────┘ │
|
||||
└─────────────────────────────┘
|
||||
|
||||
网格视图模式:
|
||||
┌──────┐ ┌──────┐ ┌──────┐
|
||||
│[图片]│ │[图片]│ │[图片]│
|
||||
│菜名 │ │菜名 │ │菜名 │
|
||||
│分类 │ │分类 │ │分类 │
|
||||
└──────┘ └──────┘ └──────┘
|
||||
```
|
||||
|
||||
### 📄 页面文件
|
||||
- `lib/src/pages/discover/mini_card_page.dart` — 主页面+全屏查看器+图片组件
|
||||
- `lib/src/models/mini_card_model.dart` — 数据模型
|
||||
- `lib/src/services/data/mini_card_service.dart` — 数据服务(缓存优先)
|
||||
- `lib/src/widgets/discover/mini_card_discover_card.dart` — 瀑布流横幅组件
|
||||
|
||||
### 🔗 跳转关系
|
||||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||||
|---------|---------|---------|------|------|
|
||||
| 个人中心迷你卡片 | `Get.toNamed` | 迷你卡片页 | `/mini-card` | - |
|
||||
| 首页瀑布流横幅 | `Get.toNamed` | 迷你卡片页 | `/mini-card` | initialRecipeId |
|
||||
| 卡片点击 | 全屏查看器 | 本页弹窗 | - | - |
|
||||
| 详情按钮 | `Get.toNamed` | 菜品详情页 | `/recipe-detail` | id |
|
||||
| 搜索结果点击 | 本页跳转 | 本页定位 | - | index |
|
||||
|
||||
### 🎨 功能特性
|
||||
| # | 功能 | 说明 | 状态 |
|
||||
|---|------|------|------|
|
||||
| 1 | 🃏 左右滑动 | 拖拽>80px触发滑动,动画效果 | ✅ |
|
||||
| 2 | ❤️ 喜欢/不喜欢 | 持久化到SharedPreferences | ✅ |
|
||||
| 3 | ⭐ 收藏 | 与全局收藏系统联动 | ✅ |
|
||||
| 4 | 🔍 搜索 | 搜索菜品名称,点击跳转定位 | ✅ |
|
||||
| 5 | 📂 分类筛选 | 11个分类横向滚动标签 | ✅ |
|
||||
| 6 | 📱 网格视图 | 卡片/网格双视图切换 | ✅ |
|
||||
| 7 | 💾 本地缓存 | 5-10条记录不含图片 | ✅ |
|
||||
| 8 | 🗑️ 缓存管理 | 缓存管理页可清理 | ✅ |
|
||||
| 9 | 📊 进度条 | 显示浏览进度 | ✅ |
|
||||
| 10 | 🏠 瀑布流嵌入 | 首页1:20比例插入迷你卡片横幅 | ✅ |
|
||||
| 11 | 🖼️ 图片独立组件 | _MiniCardImageView 文本在图片内底部 | ✅ |
|
||||
| 12 | 🪟 液态玻璃 | 顶部操作栏+底部信息区 GlassContainer | ✅ |
|
||||
| 13 | 📱 全屏查看器 | PageView+异步预加载5张相邻图片 | ✅ |
|
||||
| 14 | 📤 分享 | share_plus 分享菜品信息+图片URL | ✅ |
|
||||
| 15 | 💾 缓存优先 | 查看过卡片存入缓存,先显示缓存 | ✅ |
|
||||
| 16 | 🔗 路由参数 | initialRecipeId 从首页跳转指定卡片 | ✅ |
|
||||
|
||||
---
|
||||
|
||||
## 📊 全局美观问题汇总
|
||||
|
||||
| 优先级 | 问题 | 影响页面 | 建议 | 状态 |
|
||||
@@ -888,20 +987,6 @@
|
||||
|
||||
> 注:以下功能在v0.92.0版本已全部实现
|
||||
|
||||
| # | 功能 | API接口 | 数据源 | 页面位置 | 开发复杂度 | 状态 |
|
||||
|---|------|---------|--------|---------|-----------|------|
|
||||
| 1 | 🕐 用餐时段推荐 | `api_filter.php?act=meal_times` | eating_times.json(34种) | 首页/工具中心 | ⭐⭐ | ✅v0.92.0 |
|
||||
| 2 | ⚠️ 过敏原警示 | `api.php?act=full` allergens字段 | gmy.json(585种) | 菜品详情页 | ⭐⭐ | ✅v0.92.0 |
|
||||
| 3 | 📊 营养可视化 | `api.php?act=full` nutrition字段 | nutrition_types.json(31种) | 菜品详情页/营养中心 | ⭐⭐⭐ | ✅v0.92.0 |
|
||||
| 4 | 🏆 评分排行榜 | `api_hot.php?type=recipe&sort=rate` | api_hot.php | 热门排行页 | ⭐ | ✅v0.92.0 |
|
||||
| 5 | 📱 迷你信息加载 | `api.php?act=mini&id=` | api.php | 列表页/卡片 | ⭐⭐ | ✅v0.92.0 |
|
||||
| 6 | 🔍 排除筛选 | `api_filter.php?act=filter_recipes` exclude_*参数 | api_filter.php | 高级搜索页 | ⭐ | ✅v0.92.0 |
|
||||
| 7 | 🌐 IP状态显示 | `api_action.php?act=ip_status` | api_action.php | 菜品详情页 | ⭐ | ✅v0.92.0 |
|
||||
| 8 | 🏷️ 分类标签联动 | `api_filter.php?act=category_tags&category_id=` | api_filter.php | 分类浏览页/高级搜索 | ⭐⭐ | ✅v0.92.0 |
|
||||
| 9 | 🥗 食材分类浏览 | `api_filter.php?act=ingredient_main_categories/sub_categories` | api_filter.php | 发现页/工具中心 | ⭐⭐ | ✅v0.92.0 |
|
||||
| 10 | 📋 食谱子分类 | `api_filter.php?act=recipe_sub_categories&parent_id=` | api_filter.php | 分类浏览页 | ⭐ | ✅v0.92.0 |
|
||||
| 11 | 🎲 筛选步骤引导 | `api_what_to_eat.php?act=filter_steps` | api_what_to_eat.php | 今天吃什么 | ⭐⭐ | ✅v0.92.0 |
|
||||
| 12 | 🔢 编码/模糊查询 | `api_what_to_eat.php?act=detail&code=/title=` | api_what_to_eat.php | 搜索页 | ⭐ | ✅v0.92.0 |
|
||||
|
||||
### 🟡 需组合API开发(P3优先级)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 📋 未完成功能清单
|
||||
|
||||
> 创建: 2026-04-09 | 更新: 2026-04-13 v0.92.4 | 优先级: P1=核心 P2=重要 P3=增强 | 优先级值1-5(5=最高)
|
||||
> 创建: 2026-04-09 | 更新: 2026-04-14 v0.92.6 | 优先级: P1=核心 P2=重要 P3=增强 | 优先级值1-5(5=最高)
|
||||
|
||||
---
|
||||
|
||||
@@ -174,28 +174,6 @@
|
||||
|
||||
## ✅ 已完成阶段(精简记录)
|
||||
|
||||
### 阶段三十五:食材详情页闪退修复 ✅
|
||||
- 🐛 setState() after dispose() 修复,4处添加mounted检查
|
||||
- 🍃 CupertinoIcons.leaf→Icons.eco 修复
|
||||
|
||||
### 阶段三十四:食材详情本地缓存+缓存管理 ✅
|
||||
- 🥬 IngredientModel.toJson + IngredientStatistics.toJson 序列化方法
|
||||
- 💾 RecipeRepository.fetchIngredientDetail 缓存逻辑(7天有效期,优先读取本地)
|
||||
- 🗑️ CacheManagePage 食材缓存管理(概览+操作+列表+左滑删除)
|
||||
|
||||
### 阶段三十三:全局UI统一(圆角/颜色/空状态/加载) ✅
|
||||
- 📐 统一圆角:89处硬编码 → DesignTokens变量
|
||||
- 🎨 统一颜色:20处硬编码 → DesignTokens变量
|
||||
- 💎 增强EmptyState:毛玻璃卡片+图标圆形背景
|
||||
- 🔄 增强LoadingIndicator:毛玻璃卡片+主题色指示器
|
||||
|
||||
### 阶段三十二:主题色全局生效修复 ✅
|
||||
- 🎨 批量替换为 DesignTokens.dynamicPrimary(59个文件,439处引用)
|
||||
|
||||
### 阶段三十一:搜索功能修复与高级搜索 ✅
|
||||
- 🔍 切换到global_search接口,4-Tab结果
|
||||
- ⚙️ 高级搜索页面
|
||||
|
||||
### 阶段三十六:21项功能批量实现 ✅
|
||||
- 🏆 评分排行榜:HotPage sort=rate排序(HotRepository+HotController+HotPage三层联动)
|
||||
- 🌐 IP状态显示:菜品详情页评分前显示剩余次数
|
||||
@@ -285,3 +263,35 @@
|
||||
| 接口 | act | 功能 | 可开发功能 |
|
||||
|------|-----|------|-----------|
|
||||
| `api.php` | unified_* type=ingredient | 统一格式食材 | 食材数据标准化 |
|
||||
|
||||
---
|
||||
|
||||
## 🃏 阶段三十九:迷你卡片功能(v0.92.8)
|
||||
|
||||
### ✅ 已完成
|
||||
- 🃏 迷你卡片页面(Tinder风格左右滑动浏览菜品)
|
||||
- 📂 数据模型 MiniCardModel(341道菜,11个分类)
|
||||
- 🔍 分类筛选+搜索+网格视图
|
||||
- ❤️ 收藏集成+喜欢/不喜欢记录
|
||||
- 💾 本地缓存5-10条记录(SharedPreferences)
|
||||
- 🗑️ 缓存管理页面新增迷你卡片缓存清理
|
||||
- 🖼️ 图片独立组件 _MiniCardImageView,文本在图片内底部展示
|
||||
- 🪟 液态玻璃效果(顶部操作栏+底部信息区 GlassContainer)
|
||||
- 📱 全屏图片查看器(PageView+异步预加载5张相邻图片)
|
||||
- 📤 分享按钮(share_plus,分享菜品信息+图片URL)
|
||||
- 💾 缓存优先加载(查看过的卡片存入缓存,先显示缓存再内部加载)
|
||||
- 🏠 首页瀑布流插入迷你卡片(1:20比例,全宽横幅)
|
||||
- 每20个瀑布流item后插入1个迷你卡片横幅
|
||||
- MiniCardDiscoverCard 组件:液态玻璃+全宽图片+分类标签
|
||||
- SliverMainAxisGroup 分组渲染
|
||||
- 🔗 路由参数支持(initialRecipeId,从首页跳转到指定卡片)
|
||||
- 🔄 MiniCardService 独立数据服务(缓存优先,多页面复用)
|
||||
|
||||
### 🟡 待开发:迷你卡片交互增强
|
||||
|
||||
**优先级**:P3(增强功能)| 优先级值:3
|
||||
**工作量**:⭐⭐(低)
|
||||
|
||||
- 迷你卡片横幅支持横向滑动预览多个菜品
|
||||
- 迷你卡片瀑布流插入比例可配置(当前固定1:20)
|
||||
- 迷你卡片数据自动刷新策略
|
||||
|
||||
Reference in New Issue
Block a user