983 lines
52 KiB
Markdown
983 lines
52 KiB
Markdown
# 📱 APP 页面结构分析
|
||
|
||
> 创建: 2026-04-13 | 用途: 页面结构可视化 + 跳转关系 + 美观/功能问题分析 + 改进建议
|
||
> 跳转图例: `[→ 页面名]` = Get.toNamed跳转, `[⇥ Tab切换]` = 底部Tab切换, `[↑ 返回]` = Get.back/Get.until
|
||
|
||
---
|
||
|
||
## 🏗️ 全局导航图
|
||
|
||
```
|
||
┌─────────────┐
|
||
│ MainTabView │
|
||
└──────┬──────┘
|
||
┌────────┬───────┼───────┬────────┐
|
||
⇥ ⇥ ⇥ ⇥
|
||
┌───┴──┐ ┌───┴──┐ ┌─┴──┐ ┌──┴──┐
|
||
│🏠首页│ │🔍发现│ │🛠️工具│ │👤我的│
|
||
└──┬───┘ └──┬───┘ └─┬──┘ └──┬──┘
|
||
│ │ │ │
|
||
┌────────┼────────┼───────┼───────┼────────────┐
|
||
│ │ │ │ │ │
|
||
↓ ↓ ↓ ↓ ↓ ↓
|
||
[→搜索] [→详情] [→分类] [→计时] [→收藏] [→数据]
|
||
[→详情] [→标签] [→标签] [→换算] [→足迹] [→营养]
|
||
[→分类] [→热门] [→吃什么] [→BMI] [→笔记] [→设置]
|
||
[→标签] [→搜索] [→缩放] [→购物] [→反馈]
|
||
[→高级] [→详情] [→过敏] [→聊天] [→就寝]
|
||
[→时段]
|
||
[→食材]
|
||
[→菜单]
|
||
```
|
||
|
||
---
|
||
|
||
## 🏠 首页 (HomePage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ HomeAppBar (双层) │
|
||
│ ┌───────────────────────┐ │
|
||
│ │ 🍳 妈妈厨房 🔔 │ │ ← 固定顶栏
|
||
│ └───────────────────────┘ │
|
||
│ ┌───────────────────────┐ │
|
||
│ │ 🔍 搜索框 [→搜索页] │ │ ← 可折叠副栏,点击跳转
|
||
│ └───────────────────────┘ │
|
||
├─────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 📊 营养追踪仪表盘 │ │ ← NutritionDashboardCard
|
||
│ │ 热量/蛋白质/碳水/脂肪 │ │ [→营养中心页]
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
│ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │
|
||
│ │📖│ │🥬│ │📂│ │👅│ │ ← Discover瀑布流
|
||
│ │菜│ │食│ │分│ │标│ │ (MasonryGridView 2列)
|
||
│ │品│ │材│ │类│ │签│ │
|
||
│ │ ↓│ │ ↓│ │ ↓│ │ ↓│ │
|
||
│ └──┘ └──┘ └──┘ └──┘ │
|
||
│ ┌──┐ ┌──┐ │
|
||
│ │🍳│ │🕐│ │
|
||
│ │工│ │时│ │
|
||
│ │艺│ │段│ │
|
||
│ └──┘ └──┘ │
|
||
│ │
|
||
│ 🔄 刷新加载更多 35/80 │
|
||
│ ═══════════░░░░░░░░ │ ← 进度条
|
||
│ 最后更新: 5分钟前 │
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### <20> 页面视图文件
|
||
- `lib/src/pages/home/home_page.dart`(主页面)
|
||
- `lib/src/pages/home/home_recommended.dart`(瀑布流推荐)
|
||
|
||
### <20> 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| 搜索框 | `Get.toNamed` | 搜索页 | `/search` | keyword |
|
||
| 菜品卡片 | `Get.toNamed` | 菜品详情页 | `/recipe-detail` | id |
|
||
| 食材卡片 | `Get.toNamed` | 搜索页 | `/search` | keyword=食材名 |
|
||
| 分类卡片 | `Get.toNamed` | 分类浏览页 | `/category-browse` | category, title |
|
||
| 口味标签 | `Get.toNamed` | 标签菜谱列表 | `/tag-recipe-list` | tagName, tagId, tagType=taste |
|
||
| 工艺标签 | `Get.toNamed` | 标签菜谱列表 | `/tag-recipe-list` | tagName, tagId, tagType=cooking |
|
||
| 时段卡片 | `Get.toNamed` | 搜索页 | `/search` | keyword=时段名 |
|
||
| 营养仪表盘 | `Get.toNamed` | 营养中心 | `/nutrition` | - |
|
||
|
||
### 🎨 美观问题
|
||
| # | 问题 | 严重度 | 建议 |
|
||
|---|------|--------|------|
|
||
| 1 | 营养仪表盘与瀑布流风格不统一,仪表盘偏Material风格 | 🟡中 | 统一为Liquid Glass卡片风格 |
|
||
| 2 | 瀑布流卡片间距不够精致,部分卡片高度差异过大 | 🟡中 | 调整MasonryGridView crossAxisSpacing/mainAxisSpacing |
|
||
| 3 | 搜索框折叠动画与滚动不够丝滑 | 🟢低 | 使用AnimationController替代AnimatedSlide |
|
||
| 4 | 底部刷新按钮区域视觉过重,占用空间大 | 🟡中 | 精简为小按钮+进度文字 |
|
||
|
||
### ⚡ 功能缺失
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|--------|------|
|
||
| 1 | 下拉刷新 | P2 | 当前只有底部刷新按钮,缺少下拉手势 |
|
||
| 2 | 个性化推荐 | P3 | 瀑布流为随机数据,未基于用户偏好 |
|
||
| 3 | 卡片长按菜单 | P3 | 长按卡片可收藏/分享/不感兴趣 |
|
||
|
||
---
|
||
|
||
## 🔍 发现页 (DiscoverPage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ 发现 │
|
||
│ ┌───────────────────────┐ │
|
||
│ │ 🔍 搜索框 [→搜索页] │ │ ← GlassSearchBar,点击跳转
|
||
│ └───────────────────────┘ │
|
||
│ │
|
||
│ ┌───────────────────────┐ │
|
||
│ │📖推荐│🔥热门│🎲吃什么 │ │ ← GlassSegmentedControl
|
||
│ └───────────────────────┘ │
|
||
│ │
|
||
│ ── 推荐 Tab ── │
|
||
│ ┌───────────────────────┐ │
|
||
│ │📖菜谱│🥬食材│👅口味│🍳工艺│ │ ← 4段子分类
|
||
│ └───────────────────────┘ │
|
||
│ ┌──┐ ┌──┐ ┌──┐ │
|
||
│ │分类│ │分类│ │分类│ │ ← 分类/标签网格
|
||
│ │ ↓│ │ ↓│ │ ↓│ │
|
||
│ └──┘ └──┘ └──┘ │
|
||
│ │
|
||
│ ── 热门 Tab ── │
|
||
│ [→热门排行页] │ ← 嵌入HotPage
|
||
│ │
|
||
│ ── 今天吃什么 Tab ── │
|
||
│ [→今天吃什么页] │ ← 嵌入WhatToEatPage
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### 📄 页面视图文件
|
||
- `lib/src/pages/discover/discover_page.dart`(主页面)
|
||
- `lib/src/pages/discover/hot_page.dart`(热门排行Tab)
|
||
|
||
### 🔗 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| 搜索框 | `Get.toNamed` | 搜索页 | `/search` | - |
|
||
| 菜谱分类卡片 | `Get.toNamed` | 分类浏览页 | `/category-browse` | category, title |
|
||
| 食材分类卡片 | `Get.toNamed` | 分类浏览页 | `/category-browse` | category, title, isIngredient=true |
|
||
| 口味标签 | `Get.toNamed` | 标签菜谱列表 | `/tag-recipe-list` | tagName, tagId, tagType=taste |
|
||
| 工艺标签 | `Get.toNamed` | 标签菜谱列表 | `/tag-recipe-list` | tagName, tagId, tagType=cooking |
|
||
| 热门Tab | 嵌入页面 | 热门排行页 | `/hot` | - |
|
||
| 吃什么Tab | 嵌入页面 | 今天吃什么 | `/what-to-eat` | - |
|
||
| 热门菜谱卡片 | `Get.toNamed` | 菜品详情页 | `/recipe-detail` | id |
|
||
|
||
### 🎨 美观问题
|
||
| # | 问题 | 严重度 | 建议 |
|
||
|---|------|--------|------|
|
||
| 1 | 推荐4段子分类(菜谱/食材/口味/工艺)切换无过渡动画 | 🟡中 | 添加AnimatedSwitcher或PageView |
|
||
| 2 | 分类网格卡片样式单调,缺少图标/封面图 | 🟡中 | 分类卡片增加emoji图标或渐变色背景 |
|
||
| 3 | 热门排行榜列表项间距过密 | 🟢低 | 增加列表项间距 |
|
||
| 4 | "今天吃什么"页面视觉冲击力不足 | 🟡中 | 大卡片+动画翻转效果 |
|
||
|
||
### ⚡ 功能缺失
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|--------|------|
|
||
| 1 | 搜索历史 | P2 | 搜索框点击后无历史记录展示 |
|
||
| 2 | 热门排行榜分时段 | P3 | 日榜/周榜/月榜切换 |
|
||
| 3 | 今天吃什么筛选条件 | P2 | 可按口味/难度/时间筛选随机推荐 |
|
||
|
||
---
|
||
|
||
## 🔍 搜索页 (SearchPage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ ← [↑返回] 🔍 搜索框 ⚙️ │ ← ⚙️ [→高级搜索页]
|
||
├─────────────────────────────┤
|
||
│ │
|
||
│ ── 空状态 ── │
|
||
│ 🔥 热门搜索 │
|
||
│ ┌────┐┌────┐┌────┐ │
|
||
│ │红烧肉││鸡汤││蛋糕│ │ ← 点击 [→搜索页] 自动搜索
|
||
│ └────┘└────┘└────┘ │
|
||
│ │
|
||
│ ── 搜索结果 ── │
|
||
│ 📖菜谱(5)│🥬食材(3)│👅口味│ ← 动态Tab
|
||
│ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 🖼️ 红烧肉 │ │ ← 菜谱卡片 [→详情页]
|
||
│ │ ⭐4.5 👁️1.2k │ │
|
||
│ └─────────────────────┘ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 🥬 鸡蛋 分类:蛋类 │ │ ← 食材卡片 [→食材详情]
|
||
│ │ 📖 128个菜谱 │ │
|
||
│ └─────────────────────┘ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 👅 咸鲜 56道菜谱 │ │ ← 标签卡片 [→标签列表]
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### <20> 页面视图文件
|
||
- `lib/src/pages/home/search_page.dart`(主页面)
|
||
- `lib/src/controllers/search_controller.dart`(搜索控制器)
|
||
|
||
### <20> 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| ← 返回 | `Get.back` | 上一个页面 | - | - |
|
||
| ⚙️ 高级搜索 | `Get.toNamed` | 高级搜索页 | `/advanced-search` | - |
|
||
| 热门搜索词 | 本页搜索 | 本页 | - | keyword |
|
||
| 菜谱结果卡片 | `Get.toNamed` | 菜品详情页 | `/recipe-detail` | id |
|
||
| 食材结果卡片 | `Get.toNamed` | 食材详情页 | `/tools/ingredient` | ingredientId, ingredientName |
|
||
| 口味标签结果 | `Get.toNamed` | 标签菜谱列表 | `/tag-recipe-list` | tagName, tagId, tagType=taste |
|
||
| 工艺标签结果 | `Get.toNamed` | 标签菜谱列表 | `/tag-recipe-list` | tagName, tagId, tagType=cooking |
|
||
|
||
### 🎨 美观问题
|
||
| # | 问题 | 严重度 | 建议 |
|
||
|---|------|--------|------|
|
||
| 1 | 热门搜索标签样式过于朴素 | 🟡中 | 使用毛玻璃胶囊标签+渐变色 |
|
||
| 2 | 搜索结果卡片间距不统一 | 🟢低 | 统一使用DesignTokens.space3 |
|
||
| 3 | Tab切换无滑动指示器 | 🟡中 | 添加下划线滑动动画 |
|
||
|
||
### ⚡ 功能缺失
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|--------|------|
|
||
| 1 | 搜索历史记录 | P2 | 本地保存最近搜索词 |
|
||
| 2 | 搜索建议/自动补全 | P3 | 输入时实时显示建议 |
|
||
| 3 | 搜索结果分页加载 | P2 | 当前一次加载20条,无分页 |
|
||
|
||
---
|
||
|
||
## ⚙️ 高级搜索页 (AdvancedSearchPage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ ← [↑返回] 高级搜索 │
|
||
├─────────────────────────────┤
|
||
│ │
|
||
│ 📂 菜谱分类 │
|
||
│ ┌──┐┌──┐┌──┐┌──┐ │
|
||
│ │家常││川菜││粤菜││湘菜│ │
|
||
│ └──┘└──┘└──┘└──┘ │
|
||
│ │
|
||
│ <20> 口味标签 │
|
||
│ ┌──┐┌──┐┌──┐┌──┐ │
|
||
│ │咸鲜││酱香││麻辣││清淡│ │
|
||
│ └──┘└──┘└──┘└──┘ │
|
||
│ │
|
||
│ 🍳 工艺标签 │
|
||
│ ┌──┐┌──┐┌──┐┌──┐ │
|
||
│ │红烧│ │清蒸│ │炒│ │炖│ │
|
||
│ └──┘ └──┘ └──┘ └──┘ │
|
||
│ │
|
||
│ 🕐 用餐时段 │
|
||
│ ┌──┐┌──┐┌──┐ │
|
||
│ │早餐│ │午餐│ │晚餐│ │
|
||
│ └──┘└──┘└──┘ │
|
||
│ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 🔍 搜索 │ │ ← [↑返回搜索页] 执行筛选
|
||
│ └─────────────────────┘ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 🔄 重置 │ │
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### 📄 页面视图文件
|
||
- `lib/src/pages/home/advanced_search_page.dart`(主页面)
|
||
- `lib/src/repositories/recipe_repository.dart`(数据源)
|
||
|
||
### 🔗 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| ← 返回 | `Get.back` | 搜索页 | - | - |
|
||
| 🔍 搜索按钮 | `Get.back` + 搜索页刷新 | 搜索页 | `/search` | tasteName/cookingName/categoryId |
|
||
|
||
---
|
||
|
||
## <20><> 菜品详情页 (RecipeDetailPage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ ← [↑返回] 菜谱详情 │
|
||
├─────────────────────────────┤
|
||
│ ┌─────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ 🖼️ 封面大图 │ │ ← RecipeCoverImage
|
||
│ │ ⭐ 4.5 │ │ ← 评分徽章
|
||
│ │ │ │
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
│ 📝 红烧肉 │ ← RecipeTitleSection
|
||
│ 📂 家常菜 > 红烧 │ ← [→分类浏览页] 非末级可点击
|
||
│ │
|
||
│ 👁️1.2k ❤️56 ⭐4.5 💬0 │ ← RecipeStatisticsBar
|
||
│ │
|
||
│ 🏷️ 咸鲜 > 酱香 > 下饭菜 │ ← [→标签列表页] 标签可点击
|
||
│ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ ⏱️ 30分 📊 中等 │ │ ← RecipeTimeInfo
|
||
│ │ 👤 2人份 │ │
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
│ ── 🥬 食材 ── │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 主料: 五花肉500g [→食材]│ ← 食材名可点击
|
||
│ │ 辅料: 生抽/老抽/糖 [→食材]│
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
│ ── 👨🍳 步骤 ── │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ Step 1: 切肉... │ │ ← RecipeStepsSection
|
||
│ │ Step 2: 煎炒... │ │
|
||
│ │ Step 3: 炖煮... │ │
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
│ ── 📊 营养 ── │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 热量: 380kcal │ │ ← RecipeNutritionSection
|
||
│ │ 蛋白质/碳水/脂肪 │ │
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ ❤️ 点赞 ⭐ 评分 📤分享│ ← RecipeActionBar
|
||
│ │ 📝 笔记 │ │ [→笔记页]
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### <20> 页面视图文件
|
||
- `lib/src/pages/home/recipe_detail_page.dart`(主页面)
|
||
- `lib/src/widgets/recipe_detail/recipe_statistics_bar.dart`(统计栏组件)
|
||
|
||
### <20> 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| ← 返回 | `Get.back` | 上一个页面 | - | - |
|
||
| 分类面包屑 | `Get.toNamed` | 分类浏览页 | `/category-browse` | category, title |
|
||
| 口味/工艺标签 | `Get.toNamed` | 标签菜谱列表 | `/tag-recipe-list` | tagName, tagId, tagType |
|
||
| 食材名称 | `Get.toNamed` | 食材详情页 | `/tools/ingredient` | ingredientId, ingredientName |
|
||
| 📝 笔记按钮 | `Get.toNamed` | 烹饪笔记页 | `/cooking-note` | recipeId, recipeTitle, recipeInfo |
|
||
| 📤 分享按钮 | 系统分享 | iOS Share Sheet | - | - |
|
||
| ❤️ 点赞按钮 | API调用 | 本页更新 | - | - |
|
||
| ⭐ 评分按钮 | API调用 | 本页弹窗 | - | - |
|
||
|
||
### 🎨 美观问题
|
||
| # | 问题 | 严重度 | 建议 |
|
||
|---|------|--------|------|
|
||
| 1 | 封面图与标题之间缺少视觉过渡 | 🟡中 | 封面图底部添加渐变遮罩 |
|
||
| 2 | 步骤区域纯文字,缺少步骤图 | 🟡中 | 支持显示步骤配图(如有) |
|
||
| 3 | 食材区域排版过于紧凑 | 🟢低 | 增加主料/辅料分组间距 |
|
||
| 4 | 底部操作栏与内容区无分隔 | 🟡中 | 添加毛玻璃分隔条 |
|
||
| 5 | 营养数据纯文字展示,缺少可视化 | 🟡中 | 添加环形图/进度条展示占比 |
|
||
|
||
### ⚡ 功能缺失
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|--------|------|
|
||
| 1 | 🔗 相关菜谱推荐 | P2 | 详情页底部推荐相似菜品 |
|
||
| 2 | 📝 烹饪模式 | P2 | 全屏步骤+计时器+防息屏 |
|
||
| 3 | 💬 评论列表 | P3 | 展示用户评论(需后端) |
|
||
| 4 | ⚠️ 过敏原警示 | P2 | 食材含过敏原时显示警告 |
|
||
| 5 | 📱 二维码海报 | P3 | 生成菜谱分享图 |
|
||
|
||
---
|
||
|
||
## 🛠️ 工具中心 (ToolsCenterPage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ 🛠️ 工具箱 │
|
||
│ ┌───────────────────────┐ │
|
||
│ │ 🔍 搜索工具 │ │
|
||
│ └───────────────────────┘ │
|
||
│ │
|
||
│ ── 🍳 烹饪助手 ── │
|
||
│ ┌──┐ ┌──┐ │ ← GridView 2列布局
|
||
│ │⏱️│ │📝│ │
|
||
│ │计时│ │笔记│ │
|
||
│ │ ↓│ │ ↓│ │
|
||
│ │使用│ │使用│ ← 新增"使用工具"按钮
|
||
│ └──┘ └──┘ │
|
||
│ │
|
||
│ ── 📋 规划管理 ── │
|
||
│ ┌──┐ ┌──┐ │
|
||
│ │📅│ │🛒│ │
|
||
│ │菜单│ │购物│ │
|
||
│ └──┘ └──┘ │
|
||
│ │
|
||
│ ── 🏥 健康工具 ── │
|
||
│ ┌──┐ ┌──┐ │
|
||
│ │BMI│ │🌙│ │
|
||
│ │计算│ │就寝│ │
|
||
│ └──┘ └──┘ │
|
||
│ │
|
||
│ ── 🏷️ 热门标签 ── │
|
||
│ ┌────┐┌────┐┌────┐ │
|
||
│ │咸鲜 ││酱香 ││清淡 │ │ ← [→标签列表页]
|
||
│ └────┘└────┘└────┘ │
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### 📄 页面视图文件
|
||
- `lib/src/pages/tools/tools_center_page.dart`(主页面)
|
||
- `lib/src/widgets/glass/glass_container.dart`(毛玻璃卡片)
|
||
|
||
### 🔗 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| ⏱️ 烹饪计时 | `Get.toNamed` | 烹饪计时器 | `/cooking-timer` | - |
|
||
| 📝 烹饪笔记 | `Get.toNamed` | 烹饪笔记页 | `/cooking-note` | recipeId, recipeTitle |
|
||
| 🧮 用量换算 | `Get.toNamed` | 单位换算页 | `/unit-converter` | - |
|
||
| 📅 每周菜单 | `Get.toNamed` | 菜单规划页 | `/tools/weekly-menu` | - |
|
||
| 🛒 购物清单 | `Get.toNamed` | 购物清单页 | `/shopping-list` | - |
|
||
| ⚖️ 份量缩放 | `Get.toNamed` | 份量缩放页 | `/serving-scaler` | ingredients, servings |
|
||
| BMI计算 | `Get.toNamed` | BMI计算器 | `/bmi-calculator` | - |
|
||
| 🌙 就寝提醒 | `Get.toNamed` | 就寝提醒页 | `/profile/bedtime-reminder` | - |
|
||
| 热门标签 | `Get.toNamed` | 标签菜谱列表 | `/tag-recipe-list` | tagName, tagId, tagType |
|
||
| 🎮 使用工具按钮 | `Get.toNamed` | 工具功能页 | 工具对应路由 | - |
|
||
|
||
### 🎨 美观问题
|
||
| # | 问题 | 严重度 | 建议 |
|
||
|---|------|--------|------|
|
||
| 1 | 工具图标+文字卡片样式过于简单 | 🟡中 | 增加渐变背景或毛玻璃效果 |
|
||
| 2 | 分组标题缺少视觉层次 | 🟢低 | 添加分组图标和分割线 |
|
||
| 3 | 热门标签区域与工具卡片风格不一致 | 🟡中 | 统一为毛玻璃胶囊样式 |
|
||
|
||
### ⚡ 功能缺失
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|--------|------|
|
||
| 1 | 用餐时段推荐 | P2 | eating_times.json数据已有,缺页面入口 |
|
||
| 2 | 过敏原检测器增强 | P2 | 当前仅展示,缺智能过滤 |
|
||
| 3 | 工具使用统计 | P3 | 展示常用工具排行 |
|
||
|
||
---
|
||
|
||
## 👤 我的 (ProfilePage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ 我的 │
|
||
│ ┌───────────────────────┐ │
|
||
│ │ 🏠 首页 │ ⚙️ 更多 │ │ ← GlassSegmentedControl
|
||
│ └───────────────────────┘ │
|
||
│ │
|
||
│ ── 首页 Tab ── │
|
||
│ ┌───────────────────────┐ │
|
||
│ │ 🧑 用户头像 │ │
|
||
│ │ 美食爱好者 │ │
|
||
│ │ ⭐ Lv.5 烹饪达人 │ │
|
||
│ └───────────────────────┘ │
|
||
│ │
|
||
│ ┌──┐┌──┐┌──┐┌──┐ │
|
||
│ │❤️││👀││📝││🛒│ │ ← 功能入口
|
||
│ │收藏││足迹││笔记││购物│ │
|
||
│ │ ↓│ │ ↓│ │ ↓│ │ ↓│ │
|
||
│ └──┘└──┘└──┘└──┘ │
|
||
│ │
|
||
│ ┌──┐┌──┐┌──┐┌──┐ │
|
||
│ │⏱️│ │🔄│ │📊│ │⚖️│ │ ← 工具快捷
|
||
│ │计时│ │换算│ │BMI│ │缩放│ │
|
||
│ │ ↓│ │ ↓│ │ ↓│ │ ↓│ │
|
||
│ └──┘ └──┘ └──┘ └──┘ │
|
||
│ │
|
||
│ ── 更多 Tab ── │
|
||
│ ┌───────────────────────┐ │
|
||
│ │ 📊 数据管理中心 [→] │ │
|
||
│ │ 🎨 个性化设置 [→] │ │
|
||
│ │ 🗑️ 缓存管理 [→] │ │
|
||
│ │ 🌙 就寝提醒 [→] │ │
|
||
│ │ 📋 营养中心 [→] │ │
|
||
│ │ 💬 意见反馈 [→] │ │
|
||
│ └───────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### <20> 页面视图文件
|
||
- `lib/src/pages/profile/profile_page.dart`(主页面)
|
||
- `lib/src/pages/profile/profile_home.dart`(首页Tab)
|
||
|
||
### <20> 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| ❤️ 收藏 | `Get.toNamed` | 收藏页 | `/favorites` | - |
|
||
| 👀 足迹 | `Get.toNamed` | 浏览记录页 | `/footprints` | - |
|
||
| 📝 笔记 | `Get.toNamed` | 烹饪笔记页 | `/cooking-note` | - |
|
||
| 🛒 购物 | `Get.toNamed` | 购物清单页 | `/shopping-list` | - |
|
||
| ⏱️ 计时 | `Get.toNamed` | 烹饪计时器 | `/cooking-timer` | - |
|
||
| 🔄 换算 | `Get.toNamed` | 单位换算页 | `/unit-converter` | - |
|
||
| 📊 BMI | `Get.toNamed` | BMI计算器 | `/bmi-calculator` | - |
|
||
| ⚖️ 缩放 | `Get.toNamed` | 份量缩放页 | `/serving-scaler` | - |
|
||
| 📊 数据中心 | `Get.toNamed` | 数据管理中心 | `/data-center` | - |
|
||
| 🎨 个性化 | `Get.toNamed` | 个性化设置 | `/personalization` | - |
|
||
| 🗑️ 缓存 | `Get.toNamed` | 缓存管理页 | 内页 | - |
|
||
| 🌙 就寝 | `Get.toNamed` | 就寝提醒 | `/profile/bedtime-reminder` | - |
|
||
| 📋 营养 | `Get.toNamed` | 营养中心 | `/nutrition` | - |
|
||
| 💬 反馈 | `Get.toNamed` | 意见反馈 | `/chat` | - |
|
||
|
||
### 🎨 美观问题
|
||
| # | 问题 | 严重度 | 建议 |
|
||
|---|------|--------|------|
|
||
| 1 | 用户头像区域过于简单,无背景装饰 | 🟡中 | 添加渐变背景+装饰元素 |
|
||
| 2 | 功能入口图标样式不统一 | 🟡中 | 统一为圆形图标+渐变背景 |
|
||
| 3 | 设置列表项缺少图标 | 🟢低 | 每项添加对应emoji图标 |
|
||
|
||
### ⚡ 功能缺失
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|--------|------|
|
||
| 1 | 用户等级系统 | P3 | 浏览/收藏/评论获得经验值 |
|
||
| 2 | 成就徽章 | P3 | 烹饪达人/美食家等徽章 |
|
||
| 3 | 数据导出 | P3 | 导出收藏/浏览记录 |
|
||
|
||
---
|
||
|
||
## ❤️ 收藏页 (FavoritesPage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ ← [↑返回] 我的收藏 │
|
||
├─────────────────────────────┤
|
||
│ │
|
||
│ ┌──┐ ┌──┐ │ ← GridView 2列布局
|
||
│ │🖼️│ │🖼️│ │
|
||
│ │菜│ │菜│ │
|
||
│ │品│ │品│ │
|
||
│ │1│ │2│ │
|
||
│ └──┘ └──┘ │
|
||
│ ┌──┐ ┌──┐ │
|
||
│ │🖼️│ │🖼️│ │
|
||
│ │菜│ │菜│ │
|
||
│ │品│ │品│ │
|
||
│ │3│ │4│ │
|
||
│ └──┘ └──┘ │
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### 📄 页面视图文件
|
||
- `lib/src/pages/profile/social/favorites_page.dart`(主页面)
|
||
|
||
### 🔗 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| ← 返回 | `Get.back` | 上一个页面 | - | - |
|
||
| 菜品卡片 | `Get.toNamed` | 菜品详情页 | `/recipe-detail` | id |
|
||
|
||
### 🎨 美观问题
|
||
| # | 问题 | 严重度 | 建议 |
|
||
|---|------|--------|------|
|
||
| 1 | 空收藏状态缺少引导 | 🟡中 | 添加"去发现美食"按钮引导用户 |
|
||
|
||
### ⚡ 功能缺失
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|--------|------|
|
||
| 1 | 收藏分组 | P3 | 按分类/标签分组管理收藏 |
|
||
| 2 | 收藏排序 | P3 | 按收藏时间/评分排序 |
|
||
|
||
---
|
||
|
||
## 📋 关于页面 (AboutPage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ ← [↑返回] 关于 │
|
||
├─────────────────────────────┤
|
||
│ │
|
||
│ ┌───────────────────────┐ │
|
||
│ │ 🍳 妈妈厨房 │ │
|
||
│ │ Version 0.92.4 │ │
|
||
│ └───────────────────────┘ │
|
||
│ │
|
||
│ ── 应用信息 ── │
|
||
│ ┌───────────────────────┐ │
|
||
│ │ 📱 应用版本 0.92.4 │ │
|
||
│ │ 📅 更新日期 2026-04 │ │
|
||
│ │ 🏷️ 构建版本 92 │ │
|
||
│ └───────────────────────┘ │
|
||
│ │
|
||
│ ── 联系我们 ── │
|
||
│ ┌───────────────────────┐ │
|
||
│ │ 💬 用户反馈 [→] │ │ ← [→意见反馈页]
|
||
│ │ ⭐ 评价应用 [→] │ │
|
||
│ │ 📧 联系邮箱 [→] │ │
|
||
│ └───────────────────────┘ │
|
||
│ │
|
||
│ ── 法律信息 ── │
|
||
│ ┌───────────────────────┐ │
|
||
│ │ 📜 用户协议 [→] │ │
|
||
│ │ 🔒 隐私政策 [→] │ │
|
||
│ └───────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### 📄 页面视图文件
|
||
- `lib/src/pages/profile/about_page.dart`(主页面)
|
||
|
||
### 🔗 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| ← 返回 | `Get.back` | 上一个页面 | - | - |
|
||
| 💬 用户反馈 | `Get.toNamed` | 意见反馈页 | `/chat` | - |
|
||
| ⭐ 评价应用 | 打开应用商店 | App Store | - | - |
|
||
| 📧 联系邮箱 | 打开邮件客户端 | Mail App | - | - |
|
||
| 📜 用户协议 | `Get.toNamed` | 用户协议页 | `/user-agreement` | - |
|
||
| 🔒 隐私政策 | `Get.toNamed` | 隐私政策页 | `/privacy-policy` | - |
|
||
|
||
### 🎨 美观问题
|
||
| # | 问题 | 严重度 | 建议 |
|
||
|---|------|--------|------|
|
||
| 1 | 应用图标区域可增加动画效果 | 🟢低 | 添加呼吸动画或渐变效果 |
|
||
|
||
### ⚡ 功能缺失
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|--------|------|
|
||
| 1 | 检查更新 | P2 | 检测新版本并提示更新 |
|
||
| 2 | 更新日志 | P3 | 展示版本更新内容 |
|
||
|
||
---
|
||
|
||
## 🥬 食材详情页 (IngredientDetailPage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ ← [↑返回] 食材详情 │
|
||
├─────────────────────────────┤
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 🖼️ 食材图片 │ │
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
│ 🥚 鸡蛋 │
|
||
│ 📂 分类: 蛋类 │
|
||
│ │
|
||
│ ── 📖 相关菜谱 ── │
|
||
│ ┌──┐ ┌──┐ ┌──┐ │
|
||
│ │菜│ │菜│ │菜│ │ ← [→菜品详情页]
|
||
│ └──┘ └──┘ └──┘ │
|
||
│ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 🏠 返回首页 │ │ ← Get.until((route) => route.isFirst)
|
||
│ └─────────────────────┘ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### 📄 页面视图文件
|
||
- `lib/src/pages/tools/ingredient_detail_page.dart`(主页面)
|
||
- `lib/src/controllers/ingredient_controller.dart`(食材控制器)
|
||
|
||
### 🔗 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| ← 返回 | `Get.back` | 上一个页面 | - | - |
|
||
| 相关菜谱卡片 | `Get.toNamed` | 菜品详情页 | `/recipe-detail` | id |
|
||
| <20> 返回首页 | `Get.until((route) => route.isFirst)` | 首页(Tab0) | - | - |
|
||
|
||
### <20><> 美观问题
|
||
| # | 问题 | 严重度 | 建议 |
|
||
|---|------|--------|------|
|
||
| 1 | 食材信息区域过于简单 | 🟡中 | 添加营养成分摘要/季节性/选购建议 |
|
||
| 2 | 相关菜谱卡片样式与首页不一致 | 🟡中 | 统一卡片样式 |
|
||
|
||
### ⚡ 功能缺失
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|--------|------|
|
||
| 1 | 食材营养详情 | P2 | 展示食材营养成分数据 |
|
||
| 2 | 食材替代建议 | P3 | 缺少该食材时的替代品推荐 |
|
||
| 3 | 过敏原关联 | P2 | 关联数据管理中心的过敏原设置 |
|
||
|
||
---
|
||
|
||
## 📂 分类浏览页 (CategoryBrowsePage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ ← [↑返回] 📂 家常菜 │
|
||
├─────────────────────────────┤
|
||
│ ┌──┐ ┌──┐ ┌──┐ │
|
||
│ │红烧│ │炖菜│ │炒菜│ │ ← 子分类网格 [→分类浏览页(递归)]
|
||
│ └──┘ └──┘ └──┘ │
|
||
│ │
|
||
│ ── 菜谱列表 ── │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 🖼️ 红烧肉 ⭐4.5 │ │ ← [→菜品详情页]
|
||
│ └─────────────────────┘ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 🖼️ 炖排骨 ⭐4.2 │ │ ← [→菜品详情页]
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### <20> 页面视图文件
|
||
- `lib/src/pages/discover/category_browse_page.dart`(主页面)
|
||
- `lib/src/controllers/category_controller.dart`(分类控制器)
|
||
|
||
### <20> 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| ← 返回 | `Get.back` | 上一个页面 | - | - |
|
||
| 子分类卡片 | `Get.toNamed` | 分类浏览页(递归) | `/category-browse` | category, title |
|
||
| 菜谱卡片 | `Get.toNamed` | 菜品详情页 | `/recipe-detail` | id |
|
||
|
||
### 🎨 美观问题
|
||
| # | 问题 | 严重度 | 建议 |
|
||
|---|------|--------|------|
|
||
| 1 | 子分类网格与菜谱列表之间缺少视觉分隔 | 🟢低 | 添加分组标题 |
|
||
| 2 | 菜谱列表卡片样式单调 | 🟡中 | 添加封面图+评分+浏览量 |
|
||
|
||
### ⚡ 功能缺失
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|--------|------|
|
||
| 1 | 分页加载 | P2 | 当前一次加载,无分页 |
|
||
| 2 | 排序筛选 | P3 | 按评分/浏览量/最新排序 |
|
||
|
||
---
|
||
|
||
## 🏷️ 标签菜谱列表 (TagRecipeListPage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ ← [↑返回] 👅 咸鲜 │
|
||
├─────────────────────────────┤
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 🖼️ 红烧肉 ⭐4.5 │ │ ← [→菜品详情页]
|
||
│ └─────────────────────┘ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ 🖼️ 清蒸鱼 ⭐4.3 │ │ ← [→菜品详情页]
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### 📄 页面视图文件
|
||
- `lib/src/pages/home/tag_recipe_list_page.dart`(主页面)
|
||
- `lib/src/controllers/tag_controller.dart`(标签控制器)
|
||
|
||
### 🔗 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| ← 返回 | `Get.back` | 上一个页面 | - | - |
|
||
| 菜谱卡片 | `Get.toNamed` | 菜品详情页 | `/recipe-detail` | id |
|
||
|
||
### 🎨 美观问题
|
||
| # | 问题 | 严重度 | 建议 |
|
||
|---|------|--------|------|
|
||
| 1 | 页面顶部缺少标签说明/统计 | 🟡中 | 添加"共XX道菜"统计 |
|
||
| 2 | 列表卡片样式与首页瀑布流不统一 | 🟡中 | 可考虑使用小瀑布流布局 |
|
||
|
||
### ⚡ 功能缺失
|
||
| # | 功能 | 优先级 | 说明 |
|
||
|---|------|--------|------|
|
||
| 1 | 分页加载 | P2 | 当前无分页 |
|
||
| 2 | 排序筛选 | P3 | 按评分/浏览量排序 |
|
||
|
||
---
|
||
|
||
## 🔥 热门排行页 (HotPage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ 🔥 热门排行 │
|
||
│ <20>菜谱│🥬食材│👅口味│🍳工艺 │ ← Tab切换
|
||
│ │
|
||
│ 🥇 红烧肉 ❤️ 2.3k [→详情]│
|
||
│ 🥈 牛肉面 ❤️ 1.8k [→详情]│
|
||
│ 🥉 凉拌菜 ❤️ 1.5k [→详情]│
|
||
│ 4. 宫保鸡丁 ❤️ 1.2k [→详情]│
|
||
│ 5. 糖醋排骨 ❤️ 1.1k [→详情]│
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### <20> 页面视图文件
|
||
- `lib/src/pages/discover/hot_page.dart`(主页面)
|
||
- `lib/src/controllers/hot_controller.dart`(热门控制器)
|
||
|
||
### <20> 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| 排行菜谱卡片 | `Get.toNamed` | 菜品详情页 | `/recipe-detail` | id |
|
||
| 排行食材卡片 | `Get.toNamed` | 食材详情页 | `/tools/ingredient` | ingredientId, ingredientName |
|
||
| 排行标签 | `Get.toNamed` | 标签菜谱列表 | `/tag-recipe-list` | tagName, tagId, tagType |
|
||
|
||
### 🎨 美观问题
|
||
| # | 问题 | 严重度 | 建议 |
|
||
|---|------|--------|------|
|
||
| 1 | 排行榜前三名缺少视觉突出 | 🟡中 | 前三名使用金银铜色+大号排名 |
|
||
| 2 | 列表项样式过于简单 | 🟡中 | 添加封面缩略图+评分星级 |
|
||
|
||
---
|
||
|
||
## 🎲 今天吃什么 (WhatToEatPage)
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ 🎲 今天吃什么 │
|
||
│ │
|
||
│ ┌─────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ 🖼️ 推荐菜谱大卡 │ │ ← [→菜品详情页]
|
||
│ │ 红烧肉 │ │
|
||
│ │ ⭐4.5 👁️1.2k │ │
|
||
│ │ │ │
|
||
│ └─────────────────────┘ │
|
||
│ │
|
||
│ ┌────────┐ ┌────────┐ │
|
||
│ │ 🔄换一个│ │ 📖看详情│ │ ← 换一个=刷新, 看详情=[→详情]
|
||
│ └────────┘ └────────┘ │
|
||
│ │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
### 📄 页面视图文件
|
||
- `lib/src/pages/discover/what_to_eat_page.dart`(主页面)
|
||
- `lib/src/controllers/what_to_eat_controller.dart`(推荐控制器)
|
||
|
||
### 🔗 跳转关系
|
||
| 触发元素 | 跳转方式 | 目标页面 | 路由 | 传参 |
|
||
|---------|---------|---------|------|------|
|
||
| 📖 看详情 | `Get.toNamed` | 菜品详情页 | `/recipe-detail` | id |
|
||
| 🔄 换一个 | 本页刷新 | 本页 | - | - |
|
||
|
||
---
|
||
|
||
## 📊 全局美观问题汇总
|
||
|
||
| 优先级 | 问题 | 影响页面 | 建议 | 状态 |
|
||
|--------|------|---------|------|------|
|
||
| 🟡高 | 毛玻璃效果使用不一致 | 全局 | 统一GlassCard组件,所有卡片使用相同毛玻璃参数 | ✅已统一 |
|
||
| 🟡高 | 卡片圆角不统一 | 全局 | 统一使用DesignTokens.radiusMd/Lg | ✅已统一(89处) |
|
||
| 🟡高 | 颜色使用偶尔硬编码 | 全局 | 严格使用DesignTokens颜色变量 | ✅已统一(20处) |
|
||
| 🟡中 | 空状态页面缺少插画 | 多个页面 | 设计统一的空状态插画+文案 | ✅已增强(GlassCard包裹) |
|
||
| 🟡中 | 加载状态不统一 | 全局 | 统一骨架屏样式和动画 | ✅已增强(LoadingIndicator) |
|
||
| 🟢低 | 页面转场动画单调 | 全局 | 添加iOS风格滑入动画 | 🔴待开发 |
|
||
|
||
## 📊 全局功能缺失汇总
|
||
|
||
| 优先级 | 功能 | 影响页面 | 说明 | 状态 |
|
||
|--------|------|---------|------|------|
|
||
| P1 | 下拉刷新 | 首页/发现 | 缺少下拉手势刷新 | 🔴待开发 |
|
||
| P2 | 搜索历史 | 搜索页 | 无本地搜索记录 | 🔴待开发 |
|
||
| P2 | 分页加载 | 多个列表页 | 分类浏览/标签列表无分页 | 🔴待开发 |
|
||
| P2 | 相关推荐 | 详情页 | 缺少相关菜谱推荐 | ✅v0.92.0 |
|
||
| P2 | 烹饪模式 | 详情页 | 全屏步骤+计时器 | 🔴待开发 |
|
||
| P2 | 过敏原警示 | 详情页 | 食材含过敏原时警告 | ✅v0.92.0 |
|
||
| P2 | 营养可视化 | 详情页 | 环形图/进度条展示营养占比 | ✅v0.92.0 |
|
||
| P3 | 排序筛选 | 列表页 | 按评分/浏览量/最新排序 | 🔴待开发 |
|
||
| P3 | 评论系统 | 详情页 | 需后端支持 | 🔴需后端 |
|
||
| P3 | 用户等级 | 个人中心 | 经验值+等级+徽章 | 🔴需后端 |
|
||
|
||
---
|
||
|
||
## 🔌 API能力分析:可增加功能
|
||
|
||
> 基于 `APP_GUIDE.md`(v2.9.0) 和 `API_DOC.md`(v3.2.0) 全面分析,2026-04-13 更新
|
||
|
||
### 📊 已使用API接口一览
|
||
|
||
| 接口文件 | Repository | 已用act | 状态 |
|
||
|---------|-----------|---------|------|
|
||
| `api.php` | RecipeRepository | list/detail/full/ingredients/ingredient_detail/search/categories/tags/stats/unified_list/unified_detail/unified_search/unified_hot/query/mini | ✅ |
|
||
| `api_action.php` | ActionRepository | like/rate/view/ip_status | ✅ |
|
||
| `api_feed.php` | FeedRepository | recommend/latest/hot/prefetch | ✅ |
|
||
| `api_filter.php` | RecipeRepository+SearchController | recipe_main_categories/taste_tags/cooking_tags/filter_recipes/global_search/meal_times/recipe_sub_categories/ingredient_main_categories/ingredient_sub_categories/category_tags/filter_ingredients/ingredient_recipes | ✅ |
|
||
| `api_hot.php` | HotRepository(→stats_full.php?act=hot) | hot(sort=view/like/rate) | ✅ |
|
||
| `api_what_to_eat.php` | WhatToEatRepository | filter_apply/detail/filter_steps | ✅ |
|
||
| `api_discover.php` | DiscoverRepository | 随机数据 | ✅ |
|
||
| `api_check_duplicate.php` | RecipeRepository | check_title/check_ingredient/check_step/check_content/check_all | ✅v0.92.0 |
|
||
| `stats_full.php` | StatsRepository | online/request/hot/stats | ✅ |
|
||
| 静态数据 | 部分使用 | eating_times.json(✅)/nutrition_types.json(✅)/gmy.json(✅) | ✅v0.92.0 |
|
||
|
||
### 📊 未使用API接口一览
|
||
|
||
> 注:以下接口在v0.92.0版本已大部分实现,仅保留少量待开发接口
|
||
|
||
| 接口 | act/参数 | 文档描述 | 当前状态 |
|
||
|------|---------|---------|---------|
|
||
| `api.php?act=unified_list&type=ingredient` | unified_list&type=ingredient | 统一格式食材列表 | 🔴待开发 |
|
||
| `api.php?act=unified_detail&type=ingredient` | unified_detail&type=ingredient | 统一格式食材详情 | 🔴待开发 |
|
||
| `api.php?act=unified_hot&type=ingredient` | unified_hot&type=ingredient | 统一格式食材热门 | 🔴待开发 |
|
||
|
||
---
|
||
|
||
### 🟢 已有API可直接开发(P2优先级)
|
||
|
||
> 注:以下功能在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优先级)
|
||
|
||
| # | 功能 | 所需API | 页面位置 | 开发复杂度 | 状态 |
|
||
|---|------|---------|---------|-----------|------|
|
||
| 1 | 🧠 智能推荐 | `api_feed.php?act=recommend` + `api_filter.php?act=filter_recipes` + `gmy.json` + 用户偏好设置 | 首页 | ⭐⭐⭐⭐ | 🔴待开发 |
|
||
| 2 | 📅 每日菜单规划 | `api_what_to_eat.php?act=filter_apply` × 3次 + `eating_times.json` | 工具中心 | ⭐⭐⭐ | 🔴待开发 |
|
||
| 3 | 📱 二维码海报 | `api.php?act=detail` code字段 + qr_flutter库 | 菜品详情页 | ⭐⭐ | 🔴待开发 |
|
||
| 4 | 🔗 社交分享增强 | `api.php?act=detail` code字段 + `api_hot.php` statistics | 菜品详情页 | ⭐⭐ | 🔴待开发 |
|
||
| 5 | 🏋️ 健身餐推荐 | `api_filter.php?act=filter_recipes` nutrition_min/max + nutrition_types.json | 工具中心/发现页 | ⭐⭐⭐ | ✅v0.92.0 |
|
||
| 6 | 📋 过敏原报告 | `api.php?act=full` allergens + `gmy.json` | 菜品详情页 | ⭐⭐⭐ | ✅v0.92.0 |
|
||
| 7 | 🥗 食材营养详情 | `api.php?act=ingredient_detail` + `nutrition_types.json` | 食材详情页 | ⭐⭐ | ✅v0.92.0 |
|
||
| 8 | 🔄 食材替代建议 | `api_filter.php?act=filter_recipes` ingredient参数 + `gmy.json` | 食材详情页 | ⭐⭐⭐ | ✅v0.92.0 |
|
||
| 9 | 📈 营养目标追踪 | `api.php?act=full` nutrition × 多菜谱 + `nutrition_types.json` | 营养中心 | ⭐⭐⭐⭐ | ✅v0.92.0 |
|
||
| 10 | 🏷️ 统一格式输出 | `api.php?act=unified_list/detail/search/hot` type=ingredient | 食材相关页面 | ⭐⭐ | 🔴待开发 |
|
||
|
||
### 🔴 需后端新开发API
|
||
|
||
| # | 功能 | 建议接口 | 优先级 | 开发建议 | 说明 |
|
||
|---|------|---------|--------|---------|------|
|
||
| 1 | 👤 用户注册登录 | `api_user.php` | P1 | 暂不开发 | 需要用户认证体系,当前阶段不涉及 |
|
||
| 2 | 💾 收藏云端同步 | `api_favorite.php` | P1 | CRUD接口 | 当前收藏仅本地存储,需云端同步支持多设备 |
|
||
| 3 | 💬 评论系统 | `api_comment.php` | P2 | CRUD+分页 | 互动功能,需防刷+审核机制 |
|
||
| 4 | 🔔 消息推送 | `api_message.php` | P2 | 推送+站内信 | 后续可能使用邮箱实现 |
|
||
| 5 | 📜 浏览历史同步 | `api_history.php` | P2 | CRUD+分页 | 当前仅本地存储,需云端同步 |
|
||
| 6 | 📝 菜谱上传 | `api_recipe.php` | P2 | 表单提交+图片上传 | UGC内容,需审核流程 |
|
||
| 7 | 🔄 相关菜谱推荐 | `api.php?act=related&id=` | P2 | 基于分类+标签+食材相似度 | 详情页底部推荐相似菜品,可基于同分类+同标签实现 |
|
||
| 8 | 🔍 搜索建议/补全 | `api.php?act=suggest&keyword=` | P3 | 前缀匹配+热门词 | 输入时实时建议,需后端建立搜索索引 |
|
||
| 9 | 📊 用户营养目标 | `api_nutrition.php` | P3 | CRUD+每日统计 | 每日营养摄入目标追踪,需用户系统 |
|
||
| 10 | 🏆 用户成就系统 | `api_achievement.php` | P3 | 经验值+等级+徽章 | 需用户系统支撑 |
|
||
| 11 | 📝 烹饪笔记同步 | `api_note.php` | P2 | CRUD+分页 | 当前笔记仅本地Hive存储,需云端同步 |
|
||
| 12 | 🛒 购物清单同步 | `api_shopping.php` | P2 | CRUD | 当前购物清单仅本地存储 |
|
||
| 13 | ⏰ 每周菜单存储 | `api_menu.php` | P2 | CRUD+日期范围 | 当前菜单规划功能无持久化 |
|
||
|
||
---
|
||
|
||
### 🎯 推荐开发路线图
|
||
|
||
#### 第一阶段:快速见效(利用已有API,1-2天/功能)
|
||
|
||
| 顺序 | 功能 | 价值 | 工作量 |
|
||
|------|------|------|--------|
|
||
| 1 | 🏆 评分排行榜 | 热门页增加评分排序 | 极小(改sort参数) |
|
||
| 2 | 🌐 IP状态显示 | 评分前显示剩余次数 | 极小(已有方法) |
|
||
| 3 | 🔍 排除筛选 | 高级搜索增加排除选项 | 小(增加UI+参数) |
|
||
| 4 | 🕐 用餐时段推荐 | 根据时间智能推荐 | 小(新页面+API) |
|
||
| 5 | ⚠️ 过敏原警示 | 详情页安全提醒 | 小(展示已有字段) |
|
||
|
||
#### 第二阶段:体验提升(组合API,3-5天/功能)
|
||
|
||
| 顺序 | 功能 | 价值 | 工作量 |
|
||
|------|------|------|--------|
|
||
| 6 | 📊 营养可视化 | 详情页环形图展示 | 中(可视化组件) |
|
||
| 7 | 🏷️ 分类标签联动 | 筛选体验提升 | 中(联动逻辑) |
|
||
| 8 | 🥗 食材分类浏览 | 食材浏览体验完善 | 中(新页面) |
|
||
| 9 | 🎲 筛选步骤引导 | "吃什么"体验优化 | 中(步骤UI) |
|
||
| 10 | 📱 迷你信息加载 | 列表页性能优化 | 中(改造加载逻辑) |
|
||
|
||
#### 第三阶段:深度功能(需后端配合或复杂逻辑)
|
||
|
||
| 顺序 | 功能 | 价值 | 工作量 |
|
||
|------|------|------|--------|
|
||
| 11 | 📅 每日菜单规划 | 菜单规划工具 | 大(新页面+逻辑) |
|
||
| 12 | 🏋️ 健身餐推荐 | 健康饮食功能 | 大(营养目标+筛选) |
|
||
| 13 | 🧠 智能推荐 | 个性化推荐 | 大(推荐算法) |
|
||
| 14 | 🔄 相关菜谱推荐 | 详情页推荐 | 需后端开发API |
|
||
|
||
---
|
||
|
||
## 📋 已完成功能记录
|
||
|
||
> 2026-04-13 更新
|
||
|
||
| 阶段 | 功能 | 涉及文件 |
|
||
|------|------|---------|
|
||
| 三十二 | 主题色全局生效修复 | DesignTokens.dynamicPrimary替换(59文件439处) |
|
||
| 三十三 | 全局UI统一 | 圆角89处+颜色20处+EmptyState+LoadingIndicator |
|
||
| 三十四 | 食材详情本地缓存 | IngredientModel.toJson+RecipeRepository缓存+CacheManagePage食材管理 |
|