Files
nj/docs/opendesign/audit-shots/design-vs-implementation-audit.md
iven 8111471e93
Some checks failed
Main Merge / backend (push) Has been cancelled
Main Merge / frontend (push) Has been cancelled
feat: 添加管理端前端 (HMS 基座 React 管理面板)
- 从 HMS 基座复制 apps/web/ (React + Ant Design + Vite + TypeScript)
- 管理端自动代理 API 到 localhost:3000 (vite.config.ts)
- 更新 scripts/dev.sh 支持三端启动: backend/admin/app
- 登录验证通过, 用户管理/角色权限/审计日志等页面正常
- 添加 .gitignore 排除 node_modules/dist
2026-06-02 10:03:13 +08:00

282 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 暖记设计规格 vs 实际实现 — 逐页审核报告
> 审核日期2026-06-02
> 设计规格文档:`docs/opendesign/warm-notes-design-spec.md`
> 审核范围14 个移动端页面
---
## 总览
| # | 页面 | 路由 | 总模块数 | ✅ 完整 | ⚠️ 部分 | ❌ 缺失 |
|---|------|------|---------|---------|---------|---------|
| 01 | 启动页 | `/splash` | 8 | **8** | 0 | 0 |
| 02 | 引导页 | `/onboarding` | 3 | **3** | 0 | 0 |
| 03 | 登录/注册 | `/login` | 4 | 1 | 1 | **2** |
| 04 | 首页日记流 | `/home` | 8 | 5 | **2** | 0 |
| 05 | 手账编辑器 | `/editor` | 7 | 0 | **5** | **2** |
| 06 | 日历视图 | `/calendar` | 6 | 1 | **4** | **1** |
| 07 | 心情追踪 | `/mood` | 5 | 0 | **2** | **3** |
| 08 | 周视图 | `/weekly` | 4 | **4** | 0 | 0 |
| 09 | 月度统计 | `/monthly` | 4 | 3 | **1** | 0 |
| 10 | 贴纸素材 | `/stickers` | 6 | 0 | **3** | **3** |
| 11 | 模板库 | `/templates` | 3 | 0 | **2** | **1** |
| 12 | 发现页 | `/discover` | 5 | **5** | 0 | 0 |
| 13 | 搜索页 | `/search` | 7 | 0 | **3** | **4** |
| 14 | 个人中心 | `/profile` | 5 | 0 | **2** | **3** |
| | **合计** | | **75** | **30** (40%) | **25** (33%) | **19** (25%) |
---
## 缺失页面:无
所有 14 个设计规格页面都有对应的 Flutter 路由和页面文件。
**额外路由(不在设计规格中):**
- `/role-selection` — 角色选择页(学生/老师/家长)
- `/class-code` — 班级码加入页
- `/class` — 班级管理页
- `/teacher` — 老师视图
- `/parent` — 家长视图
- `/achievements` — 成就页
- `/settings` — 设置页
---
## 逐页审核详情
### ✅ 页面 01启动页 (Splash) — 完整度 100%
| 模块 | 状态 | 备注 |
|------|------|------|
| 渐变背景 (bg→tertiary-soft→accent) | ✅ | 三段渐变,深浅模式均支持 |
| 装饰元素 (3星+2圆, 浮动动画) | ✅ | `_FloatingStar` + `_FloatingCircle` CustomPainter |
| App 图标 (120×120, 渐变, 阴影, 高光) | ✅ | `_NotebookIconPainter` 绘制 |
| App 名称 "暖记" (42px Quicksand) | ✅ | |
| 标语 (17px Nunito, muted) | ✅ | |
| 手写标语 (22px Caveat, accent) | ✅ | |
| "开始记录" 按钮 (accent, 阴影, 箭头) | ✅ | |
| 提示文字 (13px, meta) | ✅ | |
---
### ✅ 页面 02引导页 (Onboarding) — 完整度 100%
| 模块 | 状态 | 备注 |
|------|------|------|
| "跳过" 按钮 | ✅ | |
| 3 页滑动 (圆形插图 260×260 + 标题 + 描述) | ✅ | 使用 emoji 代替自定义插图,布局完全匹配 |
| 底部控制 (圆点指示器 8/28px + 按钮) | ✅ | 最后一页文字变"开始使用" |
---
### ⚠️ 页面 03登录/注册 (Login) — 完整度 50%
| 模块 | 状态 | 备注 |
|------|------|------|
| 品牌区域 (渐变背景, Logo, 装饰) | ❌ | 缺少渐变背景、5 个装饰元素Logo 样式简化 |
| 表单 (手机号/验证码/密码/昵称/协议) | ⚠️ | 使用用户名+密码而非手机号+验证码;**缺少验证码倒计时、协议勾选** |
| 第三方登录 (微信/Apple/Google 56px 圆形) | ❌ | 完全缺失 |
| 登录/注册切换 | ✅ | 文字链接切换模式 |
**关键问题:** 登录模型与设计规格根本不同 — 设计要求手机号+验证码,实现用用户名+密码。
---
### ⚠️ 页面 04首页日记流 (Home Daily) — 完整度 85%
| 模块 | 状态 | 备注 |
|------|------|------|
| 问候区 (日期+问候语+搜索按钮) | ✅ | 44px 搜索按钮,问候语名字 accent 色 |
| 连续记录徽章 | ✅ | tertiary-soft 背景,金色,火焰图标 |
| 心情选择器 (5 种心情+天气+Caveat 标题) | ⚠️ | 5 种心情正确,但**缺少心形容器**;天气**硬编码**为"☀ 晴 26°" |
| 今日卡片 (渐变+写按钮) | ✅ | |
| 三栏统计 | ✅ | 注意:`totalCount` 受限于分页大小 (最多 10 条) |
| "最近记录" 标题+"查看全部" | ✅ | |
| 日记卡片列表 | ⚠️ | **摘录显示标签而非正文内容**(架构限制);无图片预览 |
| 空状态 | ✅ | |
---
### ⚠️ 页面 05手账编辑器 (Editor) — 完整度 35%
| 模块 | 状态 | 备注 |
|------|------|------|
| 顶部工具栏 (日期/撤销重做/自动保存/标签/保存) | ⚠️ | 有返回+完成按钮;**缺少日期显示、顶部撤销重做、绿点自动保存、标签按钮** |
| 日期+心情条 | ❌ | 完全缺失 |
| 画布区域 (点阵背景+标题+格式栏+正文) | ⚠️ | 有涂鸦/贴纸/照片;**缺少点阵背景、内联标题输入、格式栏(B/I/U/对齐)、内联文本编辑** |
| 底部工具栏 (6 工具, 72px) | ⚠️ | 8 工具 160px**缺少模板和更多工具**;画笔被拆分为 4 个独立按钮 |
| 贴纸面板 (260px, 7 分类, 5 列) | ⚠️ | 用 Modal 底部面板而非内嵌展开6 分类而非 7无分类筛选 |
| 画笔面板 (280px 抽屉, 滑块) | ⚠️ | 4 种画笔+8 色+预设宽度存在;**缺少独立面板、连续粗细滑块、透明度滑块** |
| 标签面板 (200px, 已选+输入+推荐) | ❌ | 完全缺失 |
---
### ⚠️ 页面 06日历视图 (Calendar) — 完整度 60%
| 模块 | 状态 | 备注 |
|------|------|------|
| 月份标题+导航 (44×44 圆形) | ⚠️ | 有标题+导航,但按钮非 44×44 圆形轮廓 |
| 视图切换 (月/周/时间轴 pill) | ⚠️ | 有 3 选项,但用 Material SegmentedButton 而非 pill 样式;标签简写 |
| 心情概览柱状图 | ❌ | **完全缺失** — 设计规格要求 5 根柱状图 |
| 星期行 | ✅ | |
| 日历网格 (心情圆点+日记指示器) | ⚠️ | 有网格+今日高亮+选中态;圆点 4×4 (规格 6×6)**缺日记指示器** |
| 时间线 (40×40 圆点+卡片) | ⚠️ | 有时间线但圆点 36×36**卡片缺时间和摘要** |
---
### ⚠️ 页面 07心情追踪 (Mood Tracker) — 完整度 30%
| 模块 | 状态 | 备注 |
|------|------|------|
| 今日心情卡片 (渐变+大 emoji+文字) | ⚠️ | 有概览卡片但非渐变背景emoji 不大,非"今日选择"交互 |
| 天气卡片 (5 种天气按钮) | ❌ | 完全缺失 |
| 心情趋势图 (柱状图+7天/30天/3月) | ⚠️ | 有饼图 (非柱状图);有周期选择但标签不同 (周/月/季) |
| 2×2 统计网格 | ❌ | 完全缺失 |
| 心情洞察 (3 项洞察卡片) | ⚠️ | 仅有连续天数单卡,非 3 项洞察 |
---
### ✅ 页面 08周视图 (Weekly) — 完整度 100%
| 模块 | 状态 | 备注 |
|------|------|------|
| 周标题+导航 | ✅ | 44×44 圆形按钮 |
| 7 天横向卡片 (星期+日期+emoji+指示器) | ✅ | |
| 周总结卡片 (3 统计+心情分布条) | ✅ | 8px pill 分布条 |
| 日期卡片 (×3, 正文+标签+照片) | ✅ | 3 行省略 + 彩色标签 pills |
---
### ✅ 页面 09月度统计 (Monthly) — 完整度 90%
| 模块 | 状态 | 备注 |
|------|------|------|
| 月份标题+导航 | ✅ | |
| 月度热力图 (7 列, 5 色心情映射) | ⚠️ | 有热力图但用模拟数据;周起始日(周日)与日历页(周一)不一致 |
| 月度统计 2×2 网格 | ✅ | |
| 本月精选 (3 卡片+徽章) | ✅ | |
---
### ⚠️ 页面 10贴纸素材 (Stickers) — 完整度 30%
| 模块 | 状态 | 备注 |
|------|------|------|
| 顶部导航 (返回+标题) | ⚠️ | 用默认 AppBar非设计系统样式 |
| 搜索框 | ❌ | 完全缺失 |
| 分类标签 (8 类横向滚动) | ⚠️ | 有分类但动态加载,非固定 8 类;用 FilterChip 而非设计样式 |
| 精选贴纸包 (渐变卡+限时免费) | ❌ | 完全缺失 |
| 贴纸包列表 (2 列, 预览+价格) | ⚠️ | 2 列网格存在,但无价格显示 |
| 单贴纸选择 (4 列网格+收藏) | ❌ | 完全缺失 — 只显示贴纸包,无包内贴纸浏览 |
---
### ⚠️ 页面 11模板库 (Templates) — 完整度 40%
| 模块 | 状态 | 备注 |
|------|------|------|
| 顶部导航 | ⚠️ | 默认 AppBar |
| 视图选择 (日/周/月视图) | ❌ | 完全缺失 — 用分类标签代替 |
| 模板列表 (200px 预览+使用按钮+标签) | ⚠️ | 有网格卡片但预览仅 72px (规格 200px)**缺"使用"按钮、标签 pills** |
---
### ✅ 页面 12发现页 (Discover) — 完整度 100%
| 模块 | 状态 | 备注 |
|------|------|------|
| 搜索栏 (pill) | ✅ | |
| 灵感卡片 (渐变+装饰圆+缩略图) | ✅ | |
| 热门话题 (横向滚动 chips) | ✅ | 8 个话题完全匹配 |
| 精选模板 (2 列网格) | ✅ | |
| 达人日记 (纵向列表) | ✅ | |
---
### ⚠️ 页面 13搜索页 (Search) — 完整度 25%
| 模块 | 状态 | 备注 |
|------|------|------|
| 搜索头部 (返回+输入+取消) | ⚠️ | 有搜索框但**无"取消"按钮** |
| 搜索前:搜索历史+热门搜索 | ⚠️ | 有常用标签但**非搜索历史/热门搜索**;额外加了心情筛选器 |
| 结果分类 tabs (全部/日记/模板/标签) | ❌ | 完全缺失 |
| 日记结果 (关键词高亮) | ⚠️ | 有结果卡片但**无关键词高亮** |
| 模板结果网格 | ❌ | 完全缺失 — 只搜日记 |
| 标签结果 pills | ❌ | 完全缺失 |
---
### ⚠️ 页面 14个人中心 (Profile) — 完整度 25%
| 模块 | 状态 | 备注 |
|------|------|------|
| 头像+用户名+签名 | ⚠️ | 头像 64px (规格 80px);显示角色标签而非签名 |
| 统计条 (4 项彩色数字) | ❌ | 完全缺失 |
| 成就徽章 (横向滚动) | ❌ | 有链接到成就页但**无内联徽章滚动** |
| 设置列表 (emoji 图标+toggle/箭头) | ⚠️ | 有菜单列表但用 Material Icons 而非 36px emoji**无 toggle 开关** |
| 更多设置 (导出/反馈/关于) | ❌ | 完全缺失 |
---
## 关键发现与优先建议
### 🔴 高优先(核心体验缺失)
| # | 问题 | 影响页面 | 建议 |
|---|------|---------|------|
| 1 | **编辑器标签面板缺失** | 编辑器 | 添加标签面板 (200px 抽屉) + BLoC 标签状态 |
| 2 | **编辑器日期+心情条缺失** | 编辑器 | 添加日期时间+心情快速选择条 |
| 3 | **日历心情概览柱状图缺失** | 日历 | 添加 5 根心情柱状图卡片 |
| 4 | **搜索结果无分类 tabs** | 搜索 | 添加全部/日记/模板/标签分页 |
| 5 | **个人中心统计条缺失** | 个人中心 | 添加 4 项彩色统计 |
### 🟡 中优先(功能不完整)
| # | 问题 | 影响页面 | 建议 |
|---|------|---------|------|
| 6 | **登录用用户名/密码而非手机号/验证码** | 登录 | 改为手机号+验证码登录流程 |
| 7 | **第三方登录缺失** | 登录 | 添加微信/Apple/Google 登录按钮 |
| 8 | **天气硬编码** | 首页 | 接入天气 API 或使用设备定位 |
| 9 | **日记卡片摘录显示标签而非正文** | 首页 | JournalEntry 模型需添加 content 摘要字段 |
| 10 | **贴纸页无包内贴纸浏览** | 贴纸 | 添加点击贴纸包进入详情页 |
| 11 | **心情追踪用饼图而非柱状图** | 心情 | 改为柱状图 + 添加天气卡片 |
| 12 | **模板预览仅 72px (规格 200px)** | 模板 | 增大预览区域,添加"使用"按钮 |
### 🟢 低优先(样式偏差)
| # | 问题 | 影响页面 | 建议 |
|---|------|---------|------|
| 13 | 编辑器底部工具栏 160px (规格 72px) | 编辑器 | 考虑整合画笔类型为单按钮 |
| 14 | 部分页面用默认 AppBar 而非设计系统 | 贴纸/模板 | 统一使用设计系统组件 |
| 15 | 月度热力图周起始不一致 | 月度 | 统一为周一起始 |
| 16 | 日记卡片数量未限制为 4 条 | 首页 | 可考虑限制或保持动态 |
---
## Tab 栏对照
| 设计规格 Tab | 实现方式 | 匹配度 |
|---|---|---|
| 首页 (房屋图标) | ✅ `home_outlined`/`home` | 匹配 |
| 日历 (日历图标) | ✅ `calendar_month_outlined`/`calendar_month` | 匹配 |
| 写日记 (加号, **中央凸出**) | ✅ FAB 48×48 圆形, accent 色, -16px margin | 匹配 |
| 发现 (放大镜图标) | ✅ `explore_outlined`/`explore` | 匹配 |
| 我的 (人像图标) | ✅ `person_outline`/`person` | 匹配 |
Tab 栏结构与设计规格一致。
---
## 多端适配对照
| 特性 | 设计规格 | 实际实现 | 匹配度 |
|------|---------|---------|--------|
| 手机底部 Tab 栏 | 5 Tab + 中央 FAB | ✅ `ResponsiveScaffold` mobile 模式 | 匹配 |
| 平板侧边导航栏 | 240px NavigationRail | ✅ `NavigationRail` | 匹配 |
| 桌面扩展导航 | 侧边栏+macOS 风格 | ✅ `extended NavigationRail` + 3:2 flex | 部分匹配 |
---
*报告生成于 2026-06-02基于设计规格 v3.0 文档与 Flutter 前端代码的逐行对比。*