# 04 功能差异清单 > 将独立功能基线(review/02-独立功能基线.md)与已有文档(02-iOS页面功能总表.md)逐项比对。 --- ## 一、功能遗漏清单 ### 遗漏 1:学习主页 selfTestSmallCard → QuizListView (kbId="") - **文档覆盖:** 文档记录"进行自我测试"功能(点击主操作卡片或测试卡片) - **遗漏:** 文档未说明 smallCard 跳转 QuizListView 时 knowledgeBaseId 为空字符串,可能导致不正确的行为 - **应补到:** 02-iOS页面功能总表.md → 学习 Tab → "进行自我测试" - **建议补充说明:** "注:辅助卡片自测入口使用空 knowledgeBaseId,可能在 quizList 中显示空列表" ### 遗漏 2:GoalSettingDetailView 每日学习时长不持久化 - **文档覆盖:** 文档 5.4 节记录 GoalSettingDetailView 的"修改每日时长"功能为"已完成" - **实际:** dailyMins 只保存在本地 @State 变量,未通过 API 持久化 - **应补到:** 02-iOS页面功能总表.md → 我的 Tab → "修改每日时长" - **建议状态修正:** 已完成为 → 部分完成(UI 完成,数据不持久化) ### 遗漏 3:RecallTestPage 功能未记录 - **文档覆盖:** 未记录 - **实际:** RecallTestPage 代码存在(Features/AI/RecallTestPage.swift),含: - 查看回忆测试题(硬编码) - 输入回答 - 提交获取 AI 反馈(→ AIFeedbackPageView) - **建议补到:** 02-iOS页面功能总表.md → AI 辅助功能 → 新增"回忆测试页"行 - **建议状态:** 占位实现(无导航入口,题目硬编码) ### 遗漏 4:AIChatPage 置顶/取消置顶会话 - **文档覆盖:** 文档记录"删除会话"和"归档会话" - **遗漏:** 未记录置顶/取消置顶功能(swipeActions(edge: .leading)) - **应补到:** 02-iOS页面功能总表.md → AI 辅助功能 → AI 对话页 - **建议新增行:** "置顶/取消置顶会话 | 左滑→置顶/取消置顶 | 切换会话置顶状态" ### 遗漏 5:MaterialReaderView 解析触发 + 轮询 - **文档覆盖:** 文档在"阅读 Markdown 内容"等行标注已完成 - **遗漏:** 文档未将"触发 AI 知识提取(解析)"作为独立功能记录,工具栏 brain 按钮触发 60×2s 轮询是一个重要功能 - **建议补到:** 02-iOS页面功能总表.md → 资料阅读 → 新增行 - **建议新增行:** "触发知识提取 | 点击工具栏大脑按钮 | 提交解析任务,轮询进度(60×2s) | 部分完成 | 轮询使用硬编码次数和间隔" ### 遗漏 6:AIHomeView 的全部功能(虽已废弃) - **文档覆盖:** 文档记录了 AIHomeView 为占位实现/已废弃,但功能总表中将其合并入一行"AI 首页(已废弃)" - **遗漏:** 该页面内有具体的子功能(服务器状态检查、快速操作入口、每日思考卡片、推荐问题列表),但功能总表未展开 - **评估:** 这对于已废弃页面是合理的简化处理,不做强制修正要求 --- ## 二、功能状态误判 | 文档功能 | 文档状态 | 实际状态 | 判定依据 | |---------|---------|---------|---------| | 学习会话-专注计时学习 | 已完成 | 暂未确认 | 本地计时完成,但未发现调用 LearningSessionService API 保存学习记录 | | 学习主页-开始今日复习 | 部分完成 | 部分完成 | 入口正常,ReviewCardView 为占位实现。文档正确标记。 | | 学习主页-查看完整分析 | 已完成 | 已完成 | 入口存在,跳转到 ActiveRecallView(本身为占位实现)。**文档正确标记了跳转目标的状态,但入口本身已完成。** | | 学习主页-探索公开知识库 | 已完成 | 已完成 | 切换到 library Tab | | 分析页-查看掌握度趋势图 | 部分完成 | 占位实现 | **应为占位实现**,ZXChartView 使用完全硬编码的 7 天数据 `[("一", 0.62)...]`,ViewModel 的 trend 数据被忽略 | | 分析页-查看每周学习活跃 | 部分完成 | 占位实现 | **应为占位实现**,ZXWeekBarChart 使用完全硬编码数据,ViewModel 的 heatmap 数据被忽略 | | 分析页-查看 AI 综合分析 | 已完成 | 已完成 | 动态拼接 API 数据,非 AI 生成 | | 分析页-查看全部薄弱知识点 | 已完成 | 已完成 | 跳转到 WeakPointsPage(本身为占位实现) | | 设置页-切换导入完成通知 | 暂未确认 | 部分完成 | 三个通知开关全部绑定到同一个 $reviewReminder 变量,是明确的 **bug** 而非待确认 | | 设置页-切换系统通知 | 暂未确认 | 部分完成 | 同上 | | 设置页-切换 iCloud 同步 | 暂未确认 | 暂未确认 | 仅改变本地 @State,无 API 调用 | | GoalSettingDetailView-修改每日时长 | 已完成 | 部分完成 | dailyMins 不持久化 | | 每日思考页-提交回答 | 占位实现 | 占位实现 | 状态一致,但 submitted 变量 bug 未记录 | --- ## 三、自动触发功能遗漏 文档功能总表主要记录了用户主动触发的功能,以下自动触发功能在文档中有部分遗漏: | 自动功能 | 文档覆盖 | 建议 | |---------|---------|------| | MaterialReaderView 进入时自动恢复阅读位置 | 已覆盖("恢复阅读位置"行) | — | | MaterialReaderView 前后台切换暂停/恢复会话 | 已覆盖 | — | | MaterialReaderView 自动从 COS 下载文件 | 未明确记录 | 建议在"阅读 Markdown 内容"备注中补充 | | MaterialReaderView COS 过期 URL 重取 | 未明确记录 | 建议补充 | | 学习主页优先级自动计算 | 已覆盖 | — | | StudyHomeViewModel 错误状态永不可达 | 未记录 | 建议在备注中说明 ViewModel 的 try? 吞错行为 | --- ## 四、搜索、筛选、排序、分页等辅助功能检查 | 功能 | 页面 | 文档覆盖 | 备注 | |------|------|---------|------| | 知识库搜索 | LibraryHomeView | 已覆盖(但标为部分完成) | 搜索页搜索逻辑未实现 | | 知识库分类筛选 | LibraryHomeView | 已覆盖 | 4 个分类 chips | | 知识库分页加载 | LibraryHomeView | 已覆盖 | 无限滚动 | | 知识点排序 | LibraryDetailPage | 已覆盖 | 4 种排序 | | 知识点批量选择 | LibraryDetailPage | 已覆盖 | | | 会话搜索 | AIChatPage Sheet | 已覆盖 | | | 通知列表无筛选 | NotificationListView | 未记录筛选 | 无筛选功能,合理 | | 测验列表无筛选 | QuizListView | 未记录筛选 | 无筛选功能,合理 | --- ## 五、API 调用存在但无页面入口 ### WaitlistService - **API 端点:** /waitlist (POST), /waitlist/stats (GET) - **代码存在:** APIService.swift 中 WaitlistService 类完整定义 - **页面入口:** 无任何 View 或 ViewModel 调用 WaitlistService - **文档记录:** 文档未提及 waitlist 功能 - **建议:** 在系统地图中标注"Waitlist API 已就绪但 C 端无入口"(或在总览中标注为后端预留能力) ### UserService.requestAccountDeletion / cancelDeletion - **API 端点:** /users/me/deletion-request (POST/DELETE) - **页面入口:** 无任何页面调用这两个方法 - **文档记录:** 未提及注销账号功能 - **建议:** 补充到设置页的未完成功能列表 ### UserService.listDevices / removeDevice - **API 端点:** /users/me/devices (GET/DELETE) - **页面入口:** 设置页有"登录设备管理"行但无导航目标(→ Route.settings 自引用) - **建议:** 标注为"API 已就绪,设备管理页面未实现" --- ## 六、总体评估 | 评估维度 | 结果 | |---------|------| | 功能总表覆盖率 | 约 95%,遗漏约 6 个功能点 | | 功能状态准确率 | 约 90%,7 个功能的状态需要修正 | | 自动触发功能覆盖 | 基本完整,2 处建议补充 | | 辅助功能覆盖 | 完整 | | API-页面映射完整性 | 3 个 API 有端点无页面入口需标注 | **结论:功能总表文档覆盖较全面,主要问题是若干功能的状态标记偏乐观(部分图表数据被标记为"部分完成"但实际为"占位实现"),以及少数自动触发功能和 API-页面不一致未记录。**