This commit is contained in:
Developer
2026-04-13 05:11:52 +08:00
parent 13fdbdc431
commit 5150501643
88 changed files with 3984 additions and 2967 deletions

View File

@@ -0,0 +1,746 @@
# 📱 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)
```
┌─────────────────────────────┐
│ 🛠️ 工具箱 │
│ ┌───────────────────────┐ │
│ │ 🔍 搜索工具 │ │
│ └───────────────────────┘ │
│ │
│ ── 🍳 烹饪助手 ── │
│ ┌──┐ ┌──┐ ┌──┐ │
│ │⏱️│ │📝│ │🧮│ │
│ │计时│ │笔记│ │换算│ │
│ │ ↓│ │ ↓│ │ ↓│ │
│ └──┘ └──┘ └──┘ │
│ │
│ ── 📋 规划管理 ── │
│ ┌──┐ ┌──┐ ┌──┐ │
│ │📅│ │🛒│ │⚖️│ │
│ │菜单│ │购物│ │缩放│ │
│ │ ↓│ │ ↓│ │ ↓│ │
│ └──┘ └──┘ └──┘ │
│ │
│ ── 🏥 健康工具 ── │
│ ┌──┐ ┌──┐ │
│ │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 |
### 🎨 美观问题
| # | 问题 | 严重度 | 建议 |
|---|------|--------|------|
| 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 | 导出收藏/浏览记录 |
---
## 🥬 食材详情页 (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 |
| 🟡高 | 颜色使用偶尔硬编码 | 全局 | 严格使用DesignTokens颜色变量 |
| 🟡中 | 空状态页面缺少插画 | 多个页面 | 设计统一的空状态插画+文案 |
| 🟡中 | 加载状态不统一 | 全局 | 统一骨架屏样式和动画 |
| 🟢低 | 页面转场动画单调 | 全局 | 添加iOS风格滑入动画 |
## 📊 全局功能缺失汇总
| 优先级 | 功能 | 影响页面 | 说明 |
|--------|------|---------|------|
| P1 | 下拉刷新 | 首页/发现 | 缺少下拉手势刷新 |
| P2 | 搜索历史 | 搜索页 | 无本地搜索记录 |
| P2 | 分页加载 | 多个列表页 | 分类浏览/标签列表无分页 |
| P2 | 相关推荐 | 详情页 | 缺少相关菜谱推荐 |
| P2 | 烹饪模式 | 详情页 | 全屏步骤+计时器 |
| P2 | 过敏原警示 | 详情页 | 食材含过敏原时警告 |
| P2 | 营养可视化 | 详情页 | 环形图/进度条展示营养占比 |
| P3 | 排序筛选 | 列表页 | 按评分/浏览量/最新排序 |
| P3 | 评论系统 | 详情页 | 需后端支持 |
| P3 | 用户等级 | 个人中心 | 经验值+等级+徽章 |