ios-projects/docs/system-map/ios/review/03-页面差异清单.md

10 KiB
Raw Blame History

03 页面差异清单

将独立页面基线review/01-独立页面基线.md与已有文档01-iOS页面地图.md逐项比对。


一、文档已覆盖且正确的页面(一致项)

以下页面在文档中描述正确,与代码实现一致:

文档章节 文档页面名 代码类型 判定
1.1 启动页 (SplashScreen) SplashScreen 一致
1.2 欢迎页 (WelcomePage) WelcomePage 一致
1.3 登录页 (LoginPage) LoginPage 一致
1.4 账号状态页 (AccountStatusView) AccountStatusView 一致
1.5 引导页 (OnboardingPage) OnboardingPage 一致
1.6 目标设置页 (GoalSetupPage) GoalSetupPage 一致
2.1 学习主页 (StudyHomeView) StudyHomeView 一致
2.2 学习会话页 (LearningSessionView) LearningSessionView 一致
2.3 复习卡片页 (ReviewCardView) ReviewCardView 一致
2.4 主动回忆页 (ActiveRecallView) ActiveRecallView 一致
3.1 知识库首页 (LibraryHomeView) LibraryHomeView 一致
3.2 知识库搜索页 (LibrarySearchView) LibrarySearchView 一致
3.3 知识库详情页 (LibraryDetailPage) LibraryDetailPage 一致
3.4 创建知识库页 (CreateLibraryPage) CreateLibraryPage 一致
3.5 添加知识点页 (AddKnowledgePage) AddKnowledgePage 一致
3.6 知识点详情页 (KnowledgeDetailPage) KnowledgeDetailPage 一致
3.7 编辑知识点页 (EditKnowledgePage) EditKnowledgePage 一致
3.8 导入资料页 (ImportPage) ImportPage 一致
3.9 导入候选审核页 (ImportReviewPage) ImportReviewPage 一致
3.10 发现公开库页 (DiscoverView) DiscoverView 一致
3.11 文件夹管理 (FolderManageView) FolderManageView 一致
4.1 学习分析页 (AnalysisHomeView) AnalysisHomeView 一致
5.1 个人中心页 (ProfileView) ProfileView 一致
5.2 编辑资料页 (EditProfilePage) EditProfilePage 一致
5.3 设置页 (SettingsView) SettingsView 一致
5.4 学习目标设置页 (GoalSettingDetailView) GoalSettingDetailView 一致
5.5 学习方法偏好页 (MethodPreferenceView) MethodPreferenceView 一致
5.6 通知列表页 (NotificationListView) NotificationListView 一致
5.7 帮助与反馈页 (FeedbackFormView) FeedbackFormView 一致
6.1 AI 对话页 (AIChatPage) AIChatPage 一致
6.2 每日思考页 (DailyThinkingPage) DailyThinkingPage 一致
6.3 AI 反馈页 (AIFeedbackPageView) AIFeedbackPageView 一致
6.4 薄弱知识点页 (WeakPointsPage) WeakPointsPage 一致
6.5 AI 首页 (AIHomeView) AIHomeView 一致(正确标记为废弃)
7.1 测验列表页 (QuizListView) QuizListView 一致
7.2 测验作答页 (QuizTakerView) QuizTakerView 一致
7.3 测验结果页 (QuizResultView) QuizResultView 一致
8.1 资料阅读页 (MaterialReaderView) MaterialReaderView 一致
8.2 资料详情页 (MaterialDetailView) MaterialDetailView 一致
9.1 快速笔记 (QuickNoteSheet) QuickNoteSheet 一致
9.2 系统预览 (QuickLook) QuickLookPreview 一致
9.3 AI 会话列表 Sheet AIChatPage 内 Sheet 一致
9.4 封面选择 Sheet CreateLibraryPage 内 Sheet 一致
9.5 链接导入弹窗 ImportPage 内 Alert 一致
9.6 各类确认弹窗 多个 Alert/ConfirmationDialog 一致

一致页面数43 个(含 6 个 Sheet/弹窗)


二、代码存在但文档遗漏的页面

遗漏 1RecallTestPage

  • 代码位置: Features/AI/RecallTestPage.swift
  • 页面作用: 独立的回忆测试页面,用户输入对特定知识点的理解,提交后跳转 AI 反馈页。
  • 入口: 代码中有 Route 定义但未被任何 NavigationLink 引用。Route 枚举中有 aiFeedback case但未发现 recallTest case。
  • 实际状态: 代码存在但无导航入口(类似 AIHomeView 的情况)。
  • 应出现在: 01-iOS页面地图.md → 第六章 AI 辅助功能
  • 建议补到位置: 新增 6.6 节"回忆测试页RecallTestPage"
  • 建议状态: 占位实现(无导航入口 + 题目硬编码)

遗漏 2Route.studyHome 独立页面

  • 代码位置: Route.swift case studyHome
  • 说明: Route 中定义了 studyHome 路由目标(指向 StudyHomeView(selectedTab: .constant("study"))),可被 NavigationLink 跳转到学习主页的独立副本。虽然与 Tab 1 的学习主页渲染同一 View但路由跳转会 push 一个新的 NavigationStack 副本。
  • 文档处理: 文档将 StudyHomeView 仅归入 Tab 页面,未提及它也可作为 Push 路由目标。
  • 建议: 在页面跳转关系中标注 StudyHomeView 可被 Route.studyHome 推入导航栈。

三、文档记录但当前不可访问的页面

无。所有文档记录的页面在代码中均有对应的入口。


四、文档记录为"已完成",但实际为"部分完成"或"占位实现"的页面

文档页面 文档状态 实际状态 差异说明
学习会话页 (2.2) 已完成 暂未确认 文档称"已完成"。页面计时功能完成,但未发现调用 LearningSessionService.start/end 保存学习记录到 API 的代码,学习时长仅在本地计时。
复习卡片页 (2.3) 占位实现 占位实现 状态一致,但文档说 ReviewViewModel 和 ReviewPlanViewModel 代码已就绪。实际情况ReviewCardView 完全忽略 ViewModel 的数据,使用不同类型的硬编码结构体 ReviewCardItem。
主动回忆页 (2.4) 占位实现 占位实现 状态一致。
知识库首页 (3.1) 部分完成 部分完成 状态一致。
知识库详情页 (3.3) 部分完成 部分完成 状态一致。
学习分析页 (4.1) 部分完成 部分完成 状态一致。但需补充:每日学习时长(dailyMins)保存逻辑缺失GoalSettingDetailView 中 dailyMins 仅保存在本地 @State
设置页 (5.3) 部分完成 部分完成 状态一致。需补充:"存储空间"行 → Route.settings自引用"登录设备管理" → Route.settings自引用均无实际导航目标。
AI 反馈页 (6.3) 占位实现 占位实现 状态一致。
薄弱知识点页 (6.4) 占位实现 占位实现 状态一致。
资料阅读页 (8.1) 部分完成 部分完成 状态一致。
每日思考页 (6.2) 占位实现 占位实现 状态一致。但需补充:submitted 状态变量从未被设置为 true提交按钮始终可见这可能导致 UI 行为异常)。

五、文档重复记录的页面

无发现。文档每个页面只记录一次。


六、页面名称不同但实际为同一个页面的情况

无发现。文档页面名称与代码类型名称一一对应。


七、页面被错误归入业务模块的情况

页面 文档归类 建议归类 原因
创建知识库页 知识库 Tab 正确 入口来自知识库首页和我的页
学习会话页 学习 Tab 正确 入口来自资料阅读页
主动回忆页 学习 Tab 正确 入口来自学习主页

无严重归类错误。


八、Sheet、弹窗、隐藏入口遗漏检查

已记录的 Sheet/弹窗9.1-9.6

文档项目 覆盖情况
快速笔记 (9.1) 已覆盖
系统预览 (9.2) 已覆盖
AI 会话列表 Sheet (9.3) 已覆盖
封面选择 Sheet (9.4) 已覆盖
链接导入弹窗 (9.5) 已覆盖
各类确认弹窗 (9.6) 已覆盖 6 个中的 6 个

遗漏的 Sheet/弹窗

遗漏项 所在页面 说明
文件夹新建/重命名 Alert FolderManageView "新建分类" + "重命名"两个带 TextField 的 Alert文档在 9.6 确认弹窗表格中未列出

建议在 9.6 确认弹窗表格中补充:

  • 新建分类FolderManageView
  • 重命名分类FolderManageView

九、页面入口和跳转关系错误

错误位置 文档描述 实际代码 严重程度
学习主页"查看完整分析" → ActiveRecallView 文档:跳转主动回忆页 代码:Route.activeRecall → ActiveRecallView 正确(但主动回忆页为占位实现)
学习主页"自我测试" → QuizTakerView 文档:跳转测验作答页 代码MainAction.selfTest → Route.quizTake(quizId:) 正确
学习主页"自我测试"小卡片 → QuizListView 文档未明确 代码Route.quizList(knowledgeBaseId: "") 需补充,知识库 ID 为空字符串可能导致异常
设置页"复习提醒" → SettingsView 文档:跳转设置页(从我的页复习提醒行) 代码:Route.settings → SettingsView 正确但奇怪:从设置页的"复习提醒"行再次跳转 SettingsView 形成自引用

十、页面状态遗漏

遗漏状态 所在页面 说明
LearningSessionView 未保存学习记录到 API 学习会话页 文档标记为"已完成",但缺少 API 持久化,用户在分析页看不到本次学习数据
StudyHomeViewModel 永不为 error 学习主页 error 状态代码存在但 ViewModel 中所有 API 调用用 try? 吞错error 状态永不可达
DailyThinkingPage submitted 永不为 true 每日思考页 提交按钮始终可见,可能导致用户重复提交
GoalSettingDetailView dailyMins 不持久化 学习目标设置页 每日时长选择不通过 API 保存,下次进入恢复默认"30 分钟"

十一、总体评估

评估维度 结果
文档页面覆盖率 43/45 (95.6%) — 遗漏 RecallTestPage + studyHome 路由
页面状态准确率 38/43 (88.4%) — 5 个页面状态描述与代码存在差异
Sheet/弹窗覆盖率 8/9 (88.9%) — 遗漏 1 个确认弹窗组合
跳转关系准确率 基本正确1 处需补充说明
页面状态描述完整度 需补充 4 处状态遗漏

结论:页面地图文档整体质量较高,覆盖率 95%+。主要问题集中在页面完成状态的部分误判,以及个别状态的遗漏。