ios-projects/docs/system-map/ios/review/04-功能差异清单.md

7.9 KiB
Raw Blame History

04 功能差异清单

将独立功能基线review/02-独立功能基线.md与已有文档02-iOS页面功能总表.md逐项比对。


一、功能遗漏清单

遗漏 1学习主页 selfTestSmallCard → QuizListView (kbId="")

  • 文档覆盖: 文档记录"进行自我测试"功能(点击主操作卡片或测试卡片)
  • 遗漏: 文档未说明 smallCard 跳转 QuizListView 时 knowledgeBaseId 为空字符串,可能导致不正确的行为
  • 应补到: 02-iOS页面功能总表.md → 学习 Tab → "进行自我测试"
  • 建议补充说明: "注:辅助卡片自测入口使用空 knowledgeBaseId可能在 quizList 中显示空列表"

遗漏 2GoalSettingDetailView 每日学习时长不持久化

  • 文档覆盖: 文档 5.4 节记录 GoalSettingDetailView 的"修改每日时长"功能为"已完成"
  • 实际: dailyMins 只保存在本地 @State 变量,未通过 API 持久化
  • 应补到: 02-iOS页面功能总表.md → 我的 Tab → "修改每日时长"
  • 建议状态修正: 已完成为 → 部分完成UI 完成,数据不持久化)

遗漏 3RecallTestPage 功能未记录

  • 文档覆盖: 未记录
  • 实际: RecallTestPage 代码存在Features/AI/RecallTestPage.swift
    • 查看回忆测试题(硬编码)
    • 输入回答
    • 提交获取 AI 反馈(→ AIFeedbackPageView
  • 建议补到: 02-iOS页面功能总表.md → AI 辅助功能 → 新增"回忆测试页"行
  • 建议状态: 占位实现(无导航入口,题目硬编码)

遗漏 4AIChatPage 置顶/取消置顶会话

  • 文档覆盖: 文档记录"删除会话"和"归档会话"
  • 遗漏: 未记录置顶/取消置顶功能swipeActions(edge: .leading)
  • 应补到: 02-iOS页面功能总表.md → AI 辅助功能 → AI 对话页
  • 建议新增行: "置顶/取消置顶会话 | 左滑→置顶/取消置顶 | 切换会话置顶状态"

遗漏 5MaterialReaderView 解析触发 + 轮询

  • 文档覆盖: 文档在"阅读 Markdown 内容"等行标注已完成
  • 遗漏: 文档未将"触发 AI 知识提取(解析)"作为独立功能记录,工具栏 brain 按钮触发 60×2s 轮询是一个重要功能
  • 建议补到: 02-iOS页面功能总表.md → 资料阅读 → 新增行
  • 建议新增行: "触发知识提取 | 点击工具栏大脑按钮 | 提交解析任务轮询进度60×2s | 部分完成 | 轮询使用硬编码次数和间隔"

遗漏 6AIHomeView 的全部功能(虽已废弃)

  • 文档覆盖: 文档记录了 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-页面不一致未记录。