ios-projects/docs/system-map/ios/01-iOS页面地图.md

40 KiB
Raw Permalink Blame History

01 iOS 页面地图

按用户可见的页面层级整理,不按代码目录组织。


一、启动与登录流程

1.1 启动页SplashScreen

  • 页面作用: 应用启动时显示品牌标识,后台静默恢复登录会话。
  • 页面入口: 应用冷启动时的默认展示。
  • 页面组成: 深色渐变背景、品牌图标(大脑)、"知习"标题、加载指示器。
  • 用户可执行操作: 无(自动跳转)。
  • 自动执行功能: 从系统钥匙串读取 Token → 调用 API 校验 → 恢复会话或跳转到登录页。
  • 可跳转页面: 自动跳转至 Welcome 页(未登录)或主界面(已登录)。
  • 页面主要状态: 仅展示态。会话恢复中 / 恢复完成自动跳转。
  • 当前完成情况: 已完成

1.2 欢迎页WelcomePage

  • 页面作用: 向新用户介绍产品核心功能,引导进入登录流程。
  • 页面入口: 未登录用户从启动页自动跳转,或已登录用户退出后进入。
  • 页面组成: 页面渐变背景、装饰光晕、"AI 驱动"标签、主标题"用 AI 重新定义你的学习方式"、三个功能介绍卡片主动回忆、费曼解释、AI 分析)、"开始使用"按钮。
  • 用户可执行操作: 点击"开始使用"进入登录页。
  • 自动执行功能: 无。
  • 可跳转页面: LoginPage登录页
  • 页面主要状态: 仅展示态。
  • 当前完成情况: 已完成

1.3 登录页LoginPage

  • 页面作用: 用户使用 Apple ID 登录应用。
  • 页面入口: 欢迎页点击"开始使用"。
  • 页面组成: 页面渐变背景、品牌图标、欢迎文案、"使用 Apple 账号登录以同步学习数据"提示、Sign in with Apple 按钮、错误信息区域、登录中取消按钮覆盖层。
  • 用户可执行操作: Apple ID 登录、取消登录。
  • 自动执行功能: 登录成功后自动保存 Token 至钥匙串、切换会话状态。
  • 可跳转页面: 登录成功 → Onboarding 页(首次)或主界面(已设定目标)。
  • 页面主要状态: 待登录 / 登录中 / 登录失败(显示错误提示)。
  • 当前完成情况: 已完成

1.4 账号状态页AccountStatusView

  • 页面作用: 当账号被禁用或已注销时,向用户展示状态说明。
  • 页面入口: 启动时 AuthManager 检测到账号为 disabled 或 deleted 状态。
  • 页面组成: 页面渐变背景、状态图标、标题文案、说明文字、"返回首页"按钮。
  • 用户可执行操作: 点击"返回首页"回到未登录状态,可重新登录。
  • 自动执行功能: 无。
  • 可跳转页面: 回到 Welcome 页。
  • 页面主要状态: 禁用态 / 注销态(两种展示略有不同)。
  • 当前完成情况: 已完成

1.5 引导页OnboardingPage

  • 页面作用: 首次登录后展示产品价值,引导用户理解产品核心流程。
  • 页面入口: 首次登录成功后自动跳转。
  • 页面组成: 页面渐变背景、4 步引导指示器、步骤标题与说明、"下一步"/"开始使用"按钮、"跳过"链接。四步分别为输入知识、主动输出、AI 分析、掌握知识。
  • 用户可执行操作: 点击"下一步"依次浏览、点击"跳过"直接结束。
  • 自动执行功能: 无。
  • 可跳转页面: GoalSetupPage目标设置页或直接进入主界面跳过
  • 页面主要状态: 展示第1-4步。
  • 当前完成情况: 已完成

1.6 目标设置页GoalSetupPage

  • 页面作用: 用户设定学习目标、偏好方法和每日学习时间。
  • 页面入口: Onboarding 完成后自动跳转,或从"我的"→"学习目标设置"进入。
  • 页面组成: 页面渐变背景、标题"设定你的学习目标"、四个学习目标选项(备考考试/职业技能/通识学习/自定义)、三种学习方法多选(间隔回忆/费曼技巧/AI 分析、四个每日学习时间选项15分钟/30分钟/1小时/不限制)、"开始学习"按钮。
  • 用户可执行操作: 选择学习目标、选择学习方法、选择每日时间、确认进入主界面。
  • 自动执行功能: 确认后将目标通过 API 保存至用户偏好。
  • 可跳转页面: 主界面 ContentView。
  • 页面主要状态: 选择中(单选目标、多选方法、单选时间)/ 已确认。
  • 当前完成情况: 部分完成(学习目标和方法通过 API 保存;每日学习时长仅保存在本地 @State缺乏可靠持久化

二、学习(底部导航 Tab 1

2.1 学习主页StudyHomeView

  • 页面作用: 学习工作台,聚合展示今日学习任务、复习卡片、自我测试等学习入口。
  • 页面入口: 底部导航"学习" Tab默认选中
  • 页面组成:
    • 标题栏:页面标题"学习"(实际未显示明显标题)
    • 连续学习天数(火焰图标 + 天数)
    • 主操作卡片(动态变化,见下)
    • 今日复习卡片(卡片数 + 预计时长)
    • 自我测试卡片(可用测验数)
    • 每周摘要卡片(本周分钟数 / 复习卡片数 / 活跃天数 / 连续天数)
    • 底部"查看完整分析"链接
  • 用户可执行操作:
    • 点击主操作卡片(根据优先级不同,操作不同)
    • 点击复习卡片入口
    • 点击自我测试入口
    • 点击每周摘要区域查看详细分析
    • 下拉刷新
  • 自动执行功能: 页面加载时自动计算优先级最高的学习操作(继续学习 > 今日复习 > 自我测试 > 开始学习 > 空状态引导)
  • 可跳转页面:
    • MaterialReaderView资料阅读继续学习时
    • ReviewCardView复习卡片
    • QuizTakerView自我测试
    • QuizListView测验列表
    • ActiveRecallView主动回忆
    • 切换到"知识库" Tab
  • 页面主要状态: 加载中 / 加载失败(错误提示 + 重试按钮)/ 已加载·有任务 / 已加载·空状态。

    View 支持 error 状态展示,但 ViewModel 中所有 API 调用使用 try? 吞错error 状态在实际运行中永不可达。

  • 当前完成情况: 已完成

2.2 学习会话页LearningSessionView

  • 页面作用: 专注学习计时器,记录单次学习时长。
  • 页面入口: 从学习主页或资料阅读页的学习任务入口进入。
  • 页面组成: 环形计时器(带动画渐变环)、任务信息卡片(任务名称、类型、建议时长 30 分钟、今日已学时长)、提示卡片、底部状态栏"学习中…"、暂停/继续按钮、结束按钮。
  • 用户可执行操作: 暂停/继续计时、结束学习。
  • 自动执行功能: 进入页面自动开始计时1秒精度学习结束时自动展示庆祝动画。
  • 可跳转页面: 无(结束学习后展示庆祝动画,用户可返回)。
  • 页面主要状态: 计时中 / 已暂停 / 学习完成(庆祝动画覆盖层)。
  • 当前完成情况: 暂未确认(本地计时功能完成,但代码中未发现调用 LearningSessionService API 保存学习记录的代码,学习时长可能不持久化到服务端)

2.3 复习卡片页ReviewCardView

  • 页面作用: 基于间隔重复的闪卡复习。
  • 页面入口: 学习主页"今日复习"入口、AI 快捷操作。
  • 页面组成: 进度条、卡片正面(问题)、卡片反面(答案 + 出处)、自评按钮组("完全不会"/"有点难"/"基本会"/"很简单")。
  • 用户可执行操作: 点击卡片翻转查看答案、点击自评按钮评分、自动跳至下一张。
  • 自动执行功能: 评分后自动前进到下一张卡片,全部完成后自动展示庆祝动画。
  • 可跳转页面: 无。
  • 页面主要状态: 卡片正面 / 卡片反面(含自评按钮)/ 全部完成(庆祝动画覆盖层)。
  • 当前完成情况: 占位实现(展示 3 张机器学习相关硬编码卡片,未接通 ReviewViewModel 和 API

2.4 主动回忆页ActiveRecallView

  • 页面作用: 用户主动输出知识点内容,由 AI 评估掌握程度。
  • 页面入口: 学习主页底部链接或 AI 快捷操作。
  • 页面组成: 进度条、问题卡片(含题目类型标签:语音/文字 和来源、回答输入区TextEditor 或语音占位按钮)、提交按钮、提交确认区("下一题"/"查看 AI 分析"按钮)。
  • 用户可执行操作: 输入文字答案、提交答案、查看 AI 分析、进入下一题。
  • 自动执行功能: 提交答案后展示"AI 正在分析你的回答…"思考动画覆盖层,全部完成后展示庆祝动画。
  • 可跳转页面: AIFeedbackPageViewAI 反馈页)。
  • 页面主要状态: 答题模式 / 答案已提交 / AI 分析中(覆盖层)/ 全部完成(庆祝动画覆盖层)。
  • 当前完成情况: 占位实现3 道硬编码机器学习题目,第 3 题标记为语音类型但语音功能未实现)

三、知识库(底部导航 Tab 2

3.1 知识库首页LibraryHomeView

  • 页面作用: 展示和管理用户的知识库列表。
  • 页面入口: 底部导航"知识库" Tab。
  • 页面组成: 标题"知识库"、搜索按钮、创建按钮、搜索栏、筛选分类横条(全部/我的/已订阅/官方)、知识库卡片列表(封面图、名称、描述、日期、可见性标签、置顶标记)。
  • 用户可执行操作:
    • 点击知识库卡片进入详情
    • 点击搜索按钮进入搜索
    • 点击创建按钮新建知识库
    • 切换筛选分类
    • 下拉刷新
    • 无限滚动加载更多
  • 自动执行功能: 页面加载时自动拉取知识库列表。
  • 可跳转页面:
    • LibraryDetailPage知识库详情
    • LibrarySearchView搜索
    • CreateLibraryPage创建知识库
  • 页面主要状态: 加载中 / 各分类的空状态(文案不同)/ 已加载·有数据 / 分页加载更多中 / 刷新中。
  • 当前完成情况: 部分完成("官方"筛选返回空数组,待后端支持;搜索页仅展示空状态,未实现搜索逻辑)

3.2 知识库搜索页LibrarySearchView

  • 页面作用: 搜索知识库和知识点。
  • 页面入口: 知识库首页点击搜索图标。
  • 页面组成: 搜索输入框、空白搜索区域。
  • 用户可执行操作: 输入搜索关键词(实际搜索逻辑未实现)。
  • 自动执行功能: 无。
  • 可跳转页面: 无。
  • 页面主要状态: 搜索前空状态。
  • 当前完成情况: 部分完成(页面框架和输入框已搭建,搜索逻辑未实现)

3.3 知识库详情页LibraryDetailPage

  • 页面作用: 查看知识库内容,管理知识点和来源文件。
  • 页面入口: 知识库首页点击知识库卡片。
  • 页面组成:
    • 知识库信息头部(封面、标题、描述、元数据行)
    • 两个标签页切换:知识点 Tab / 来源 Tab
    • 知识点 Tab 知识点列表(类型图标、类型标签、日期、学习进度)、排序菜单、操作菜单、批量选择模式
    • 来源 Tab 来源文件列表(含阅读状态标签、删除按钮)
    • 底部 AI 对话按钮(知识库范围)
    • 文件夹管理入口Sheet
  • 用户可执行操作:
    • 切换知识点/来源 Tab
    • 点击知识点进入详情
    • 长按/滑动删除知识点
    • 批量选择与批量删除
    • 切换排序方式(默认/文件大小/创建时间/更新时间)
    • 点击上传导入资料
    • 打开文件夹管理弹窗
    • 点击底部 AI 对话按钮
    • 点击来源文件进入资料阅读
    • 删除来源文件
    • 点击"知识库管理"(操作菜单中存在,但 action 为空 TODO未实现
  • 自动执行功能: 页面加载时自动拉取知识点列表和来源列表。
  • 可跳转页面:
    • KnowledgeDetailPage知识点详情
    • ImportPage导入资料
    • AddKnowledgePage添加知识点
    • QuizListView生成测验
    • AIChatPageAI 对话,知识库范围)
    • MaterialReaderView资料阅读
    • FolderManageView文件夹管理Sheet 弹窗)
  • 页面主要状态:
    • 加载中 / 加载失败
    • 知识点 Tab·有数据 / 知识点 Tab·空
    • 来源 Tab·有数据 / 来源 Tab·空
    • 批量选择模式
    • 删除确认弹窗
  • 当前完成情况: 部分完成(知识点重命名 TODO、移动到文件夹 TODO、知识库管理页 TODO、收藏状态切换 TODO

3.4 创建知识库页CreateLibraryPage

  • 页面作用: 创建新的知识库。
  • 页面入口: 知识库首页点击创建按钮、"我的"页学习资产入口。
  • 页面组成: 封面图区域(可点击上传)、知识库名称输入框(必填)、描述输入框(必填)、创建按钮。
  • 用户可执行操作: 从相册选择封面图(自动裁剪为 512×512、输入名称和描述、点击创建。
  • 自动执行功能: 封面上传时自动调整图片尺寸。
  • 可跳转页面: 无(创建成功后返回上一页)。
  • 页面主要状态: 编辑中(名称/描述为空时按钮禁用)/ 封面上传中 / 创建中。
  • 当前完成情况: 已完成

3.5 添加知识点页AddKnowledgePage

  • 页面作用: 向知识库添加新的知识点。
  • 页面入口: 知识库详情页操作菜单中的"添加"。
  • 页面组成: "内容来源"分段选择器(手动 / 文件)、手动模式下的标题输入框和内容编辑器、文件模式下的"选择文件"/"图片"按钮、已选文件列表(可移除)、上传进度指示器、保存按钮。
  • 用户可执行操作:
    • 手动模式:输入标题和内容文字,点击保存。
    • 文件模式选择文件PDF/纯文本/图片)、选择照片、移除已选文件、批量保存。
  • 自动执行功能: 文件模式下自动检测 MIME 类型,大于 2MB 的图片自动压缩,文件上传至腾讯云 COS。
  • 可跳转页面: 无(保存成功后返回上一页)。
  • 页面主要状态: 手动模式 / 文件模式 / 文件上传中 / 保存中。
  • 当前完成情况: 已完成

3.6 知识点详情页KnowledgeDetailPage

  • 页面作用: 查看知识点详细内容,支持多种文件格式渲染。
  • 页面入口: 知识库详情页点击知识点。
  • 页面组成: 根据内容类型不同展示不同渲染方式:
    • URL 型知识点:嵌入 MaterialReaderView 渲染
    • 纯文本知识点:直接文本渲染(支持 Markdown
    • 图片/PDF/Word/Excel/PPT/ePub对应原生阅读器或系统预览
    • 工具栏菜单(笔记、预览选项、阅读原文按钮)
  • 用户可执行操作: 阅读内容、查看原文、添加笔记、收藏UI 存在但后端未支持)。
  • 自动执行功能: 加载知识点内容,自动从 COS 下载文件(带过期 URL 重新获取逻辑)。
  • 可跳转页面: MaterialReaderView。
  • 页面主要状态: 加载中 / 错误(显示概要回退文字 + 重试按钮)/ 内容已就绪。
  • 当前完成情况: 部分完成(收藏切换有 UI 但后端 API 未支持,收藏标记为 TODO

3.7 编辑知识点页EditKnowledgePage

  • 页面作用: 编辑知识点标题和内容。
  • 页面入口: 知识点详情页工具栏菜单。
  • 页面组成: 标题输入框、内容编辑器、保存按钮。
  • 用户可执行操作: 修改标题和内容、保存。
  • 自动执行功能: 无。
  • 可跳转页面: 无(保存后返回)。
  • 页面主要状态: 编辑中 / 保存中。
  • 当前完成情况: 已完成

3.8 导入资料页ImportPage

  • 页面作用: 向知识库导入外部资料。
  • 页面入口: 知识库详情页操作菜单中的"导入"。
  • 页面组成: 三种导入方式入口:文件导入、相册导入、链接导入。自动检测或提示选择目标知识库。
  • 用户可执行操作:
    • 文件导入:选择 PDF 或纯文本文件
    • 相册导入:选择照片
    • 链接导入:输入 URL通过弹窗
  • 自动执行功能: 自动选择第一个知识库,无知识库时提示用户创建。
  • 可跳转页面: ImportReviewPage导入候选审核页
  • 页面主要状态: 选择导入方式 / 导入中 / 导入失败(错误横幅)。
  • 当前完成情况: 已完成

3.9 导入候选审核页ImportReviewPage

  • 页面作用: 审核 AI 从导入资料中提取的知识点候选。
  • 页面入口: 导入资料完成后自动跳转。
  • 页面组成: 候选知识点列表(含置信度分数)、每条候选可展开查看详情、接受/拒绝按钮、"全部接受"按钮。
  • 用户可执行操作: 接受单个候选、拒绝单个候选、批量全部接受。
  • 自动执行功能: 加载该来源的导入候选列表。
  • 可跳转页面: 无。
  • 页面主要状态: 加载中 / 无待审核候选 / 有待审核列表。
  • 当前完成情况: 已完成

3.10 发现公开库页DiscoverView

  • 页面作用: 浏览和订阅其他用户公开的知识库。
  • 页面入口: "我的"页"发现公开库"入口。
  • 页面组成: 公开知识库列表(标题、描述、知识条目数)、每条右侧有订阅/取消订阅按钮。
  • 用户可执行操作: 订阅知识库、取消订阅。
  • 自动执行功能: 加载公开知识库列表。
  • 可跳转页面: 无。
  • 页面主要状态: 加载中 / 空(无公开知识库)/ 已加载。
  • 当前完成情况: 已完成

3.11 文件夹管理FolderManageView

  • 页面作用: 管理知识库内的文件夹/分类。
  • 页面入口: 知识库详情页操作菜单中的"文件夹管理"(以 Sheet 形式弹出)。
  • 页面组成: 文件夹列表(含名称)、新建按钮、每条可滑动操作(重命名、删除)。
  • 用户可执行操作: 创建文件夹(通过弹窗输入名称)、重命名文件夹、删除文件夹。
  • 自动执行功能: 加载该知识库的文件夹列表。
  • 可跳转页面:Sheet 内操作)。
  • 页面主要状态: 文件夹列表 / 新建弹窗 / 重命名弹窗。
  • 当前完成情况: 已完成

四、分析(底部导航 Tab 3

4.1 学习分析页AnalysisHomeView

  • 页面作用: 展示学习数据分析和趋势洞察。
  • 页面入口: 底部导航"分析" Tab。
  • 页面组成:
    • 标题"学习分析"+ 日期范围筛选("近 7 天"
    • 4 个统计徽章:综合掌握 / 总分钟 / 复习卡片 / 活跃天
    • 4 个阅读统计徽章:今日阅读 / 本周阅读 / 已读资料 / 阅读资料
    • 掌握度趋势折线图(含动画)
    • 阅读时长趋势柱状图
    • 本周学习活跃柱状图
    • 连续学习统计(当前连续/最长连续/最后活跃)
    • 最近学习记录列表(最多 5 条)
    • 学习推荐列表(含优先级标签)
    • 继续阅读入口
    • AI 综合分析文字摘要
    • 薄弱知识点列表(最多 5 条)
  • 用户可执行操作:
    • 点击薄弱知识点查看详情(跳转 WeakPointsPage
    • 点击继续阅读入口(跳转 MaterialReaderView
    • 下拉刷新数据
  • 自动执行功能: 页面加载时自动并行拉取活动概览、趋势、连续天数、推荐、阅读数据等。
  • 可跳转页面:
    • WeakPointsPage薄弱知识点详情
    • MaterialReaderView继续阅读
  • 页面主要状态: 加载中 / 加载失败(错误提示 + 重试按钮)/ 已加载·有数据 / 部分数据为空时隐藏对应区域。
  • 当前完成情况: 部分完成(掌握度趋势折线图和每周活跃柱状图使用编译时硬编码的 7 天数据,未从 ViewModel API 数据读取,属于占位实现;其他数据来自 API

五、我的(底部导航 Tab 4

5.1 个人中心页ProfileView

  • 页面作用: 用户个人信息与功能入口集合。
  • 页面入口: 底部导航"我的" Tab。
  • 页面组成:
    • 顶部导航栏:标题"我的"、发现公开库按钮、通知图标、设置图标
    • 个人资料卡片(头像、昵称、邮箱、活跃天/复习卡片/分钟统计)
    • 功能菜单:学习目标设置、复习提醒、学习方法偏好、帮助与反馈
    • 学习资产区域:知识库/条目/卡片计数、发现公开库入口、消息中心入口、存储空间展示
  • 用户可执行操作:
    • 点击资料卡片进入编辑资料
    • 点击各菜单项进入对应子页面
    • 点击通知图标进入通知列表
    • 点击设置图标进入设置
  • 自动执行功能: 页面加载时自动拉取用户资料、活动摘要、资产和存储统计。
  • 可跳转页面:
    • EditProfilePage编辑资料
    • GoalSettingDetailView学习目标设置
    • SettingsView设置从复习提醒行进入也是设置
    • MethodPreferenceView学习方法偏好
    • FeedbackFormView帮助与反馈
    • CreateLibraryPage学习资产入口
    • DiscoverView发现公开库
    • NotificationListView通知列表/消息中心)
  • 页面主要状态: 加载中 / 已加载(含默认值和占位信息)。
  • 当前完成情况: 已完成

5.2 编辑资料页EditProfilePage

  • 页面作用: 编辑个人资料信息。
  • 页面入口: 个人中心页点击资料卡片。
  • 页面组成:
    • 头像区域(可点击上传,自动裁剪为正方形 256×256
    • 基本信息区:昵称输入框、学习身份输入框
    • 学习档案区:学习方向输入框、当前目标输入框
    • 个人简介输入框
    • 保存按钮(含加载状态)
  • 用户可执行操作: 从相册选择头像、编辑各文本字段、保存。
  • 自动执行功能: 头像选择后自动裁剪上传。
  • 可跳转页面: 无。
  • 页面主要状态: 加载中(加载现有资料)/ 编辑中 / 头像上传中 / 保存中 / 错误提示。
  • 当前完成情况: 已完成

5.3 设置页SettingsView

  • 页面作用: 应用全局设置。
  • 页面入口: 个人中心页点击设置图标或"复习提醒"行。
  • 页面组成:
    • 外观与语言区:外观模式选择(跟随系统/深色/浅色)、语言
    • 学习设置区:学习目标(导航)、方法偏好(导航)
    • 复习提醒区:提醒开关、提醒时间选择器、间隔天数选择器
    • 通知设置区:复习提醒开关、导入完成通知开关、系统通知开关
    • 数据与存储区存储空间、iCloud 同步开关
    • 账号区:个人信息、设备管理
    • 帮助与反馈、隐私政策、用户协议
    • 退出登录按钮(带确认弹窗)
    • 底部关于信息(版本号)
  • 用户可执行操作: 切换外观模式、设置复习提醒时间和间隔天数、切换通知开关、iCloud 同步开关、退出登录、跳转子页面。
  • 自动执行功能: 外观模式变更时自动保存至用户偏好 API。
  • 可跳转页面:
    • GoalSettingDetailView学习目标设置
    • MethodPreferenceView方法偏好
  • 页面主要状态: 各开关状态、退出登录确认弹窗。
  • 当前完成情况: 部分完成(三个通知开关绑定到同一个 $reviewReminder 变量,存在明确 bug"设备管理"、"隐私政策"、"用户协议"入口无导航目标;"存储空间"行导航目标为 Route.settings 自身,形成无效自引用;"登录设备管理"行同理,导航目标也为 Route.settings 自身)

5.4 学习目标设置页GoalSettingDetailView

  • 页面作用: 配置学习目标和每日学习时长。
  • 页面入口: 设置页"学习目标"或"我的"页"学习目标设置"。
  • 页面组成: 四个学习目标选项(备考考试/职业技能/通识学习/自定义、四个每日学习时间选项15分钟/30分钟/1小时/不限制)。
  • 用户可执行操作: 选择目标和时间,保存。
  • 自动执行功能: 保存至用户 API。
  • 可跳转页面: 无。
  • 页面主要状态: 当前选中态展示。
  • 当前完成情况: 部分完成(学习目标选择通过 API 保存,但每日学习时长 dailyMins 仅保存在本地 @State 变量,不通过 API 持久化,下次进入恢复默认"30 分钟"

5.5 学习方法偏好页MethodPreferenceView

  • 页面作用: 配置偏好的学习方式。
  • 页面入口: 设置页或"我的"页"学习方法偏好"。
  • 页面组成: 四种方法选项(间隔回忆/费曼技巧/AI分析/主动回忆),多选框形式。
  • 用户可执行操作: 多选/取消方法,保存。
  • 自动执行功能: 保存至用户偏好 API。
  • 可跳转页面: 无。
  • 页面主要状态: 选中/未选中。
  • 当前完成情况: 已完成

5.6 通知列表页NotificationListView

  • 页面作用: 查看和管理系统通知。
  • 页面入口: "我的"页通知图标或消息中心入口。
  • 页面组成: 通知列表按日期分组(今天/本周/更早),每条通知含类型图标、标题、内容、时间、已读/未读状态。顶部"全部已读"按钮。
  • 用户可执行操作: 点击单条通知标记为已读、点击"全部已读"。
  • 自动执行功能: 加载通知列表。
  • 可跳转页面: 无。
  • 页面主要状态: 加载中 / 有通知 / 无通知。
  • 当前完成情况: 已完成

5.7 帮助与反馈页FeedbackFormView

  • 页面作用: 用户提交反馈和问题报告。
  • 页面入口: "我的"页"帮助与反馈"、设置页"帮助与反馈"。
  • 页面组成: 反馈类型选择器Bug反馈/功能建议/内容问题/其他)、内容输入框、提交按钮。
  • 用户可执行操作: 选择反馈类型、输入描述文字、提交。
  • 自动执行功能: 提交至反馈 API。
  • 可跳转页面: 无。
  • 页面主要状态: 编辑中 / 提交中 / 已提交(可继续提交新的)。
  • 当前完成情况: 已完成

六、AI 辅助功能(跨模块访问)

6.1 AI 对话页AIChatPage

  • 页面作用: 与 AI 进行学习相关的对话互动。
  • 页面入口: 知识库详情页底部 AI 对话按钮、AI 反馈页"深入提问"、资料阅读页工具栏 AI 按钮(多处入口,均可附带对话范围上下文)。
  • 页面组成:
    • 对话消息列表用户消息紫色渐变气泡、AI 消息含思考过程和内容)
    • AI 思考过程区(可折叠、含流式输出动画)
    • 范围标签(当对话限定在特定知识库/资料时显示)
    • 工具栏按钮(新建对话、会话列表)
    • 底部输入栏(文字输入框、语音图标(占位)、发送按钮)
    • AI 回复完成后显示"复制"和"重新生成"按钮
  • 用户可执行操作:
    • 发送文字消息
    • 查看 AI 思考过程
    • 复制 AI 回复
    • 重新生成回复
    • 新建对话
    • 打开会话列表 Sheet
    • 在会话列表中搜索、删除、归档会话
  • 自动执行功能: 流式接收 AI 回复并实时展示,自动创建或恢复对话会话。
  • 可跳转页面: 无(页面内操作)。
  • 页面主要状态:
    • 创建会话中 / 会话创建失败
    • 消息列表(含滚动加载历史)
    • AI 回复流式输出中(含思考动画)
    • 会话列表 Sheet搜索、筛选、编辑操作
  • 当前完成情况: 已完成

6.2 每日思考页DailyThinkingPage

  • 页面作用: 展示一道每日思考题,用户提交回答后获取 AI 反馈。
  • 页面入口: AI 反馈页"再来一题"。
  • 页面组成: 思考题目(硬编码:"Transformer 中的注意力机制")、评估要点提示、回答输入框、"提交获取 AI 反馈"按钮。
  • 用户可执行操作: 输入答案、提交获取 AI 反馈。
  • 自动执行功能: 无。
  • 可跳转页面: AIFeedbackPageView。
  • 页面主要状态: 回答中 / 提交后跳转。
  • 当前完成情况: 占位实现(题目硬编码,无 ViewModel无动态题目来源。注submitted 状态变量在代码中从未被设置为 true提交按钮始终可见可能导致用户重复提交

6.3 AI 反馈页AIFeedbackPageView

  • 页面作用: 展示 AI 对用户回答的分析评分和建议。
  • 页面入口: 主动回忆完成后、每日思考提交后、回忆测试提交后。
  • 页面组成(两阶段):
    • 分析中:动画步骤指示器("解析你的回答结构…"等 4 步,约 5 秒)
    • 分析结果:得分圆环、掌握度评价文字、用户原始回答、答对的部分列表、需要完善的内容、参考答案要点、"加入待巩固"按钮、"深入提问"按钮、"再来一题"按钮
  • 用户可执行操作: 查看分析结果、加入待巩固(跳转学习主页)、深入提问(跳转 AI 对话)、再来一题(跳转每日思考)。
  • 自动执行功能: 模拟分析过程5 秒后自动展示结果)。
  • 可跳转页面: StudyHomeView、AIChatPage、DailyThinkingPage。
  • 页面主要状态: 分析中 / 分析结果。
  • 当前完成情况: 占位实现(得分 78/100 硬编码,所有分析文字硬编码,未接通真实 AI 分析 API

6.4 薄弱知识点页WeakPointsPage

  • 页面作用: 展示用户的薄弱知识点列表。
  • 页面入口: 学习分析页薄弱知识点区域"全部"链接。
  • 页面组成: 薄弱知识点列表,每项含掌握度分数、知识点名称、所属知识库、优先级标签(高/中)。
  • 用户可执行操作: 查看列表。
  • 自动执行功能: 无。
  • 可跳转页面: 无。
  • 页面主要状态: 展示态。
  • 当前完成情况: 占位实现5 个硬编码知识点,主题为贝叶斯定理/正态分布/词根/Covariance/梯度下降,无 ViewModel未接通 API

6.5 AI 首页AIHomeView

  • 页面作用: 原本设计为 AI 功能的聚合首页,包含快速操作入口、每日思考题和 AI 输入。
  • 页面入口: 代码中无任何页面跳转到此页——该页面未接入导航系统,属于废弃页面。
  • 页面组成: 日期 + 服务器状态、Hero 区、Rive 动画占位、4 个快捷操作按钮、每日思考卡片、推荐问题列表、底部输入栏。
  • 用户可执行操作: (理论上的操作,实际不可达)
  • 自动执行功能: 健康检查服务器状态。
  • 可跳转页面: 理论上ActiveRecallView、WeakPointsPage、AIChatPage、ReviewCardView、DailyThinkingPage。
  • 页面主要状态: 服务器在线/检查中/离线。
  • 当前完成情况: 占位实现已废弃无导航入口。Rive 动画标注为占位,推荐问题硬编码)

6.6 回忆测试页RecallTestPage

  • 页面作用: 用户对特定知识点进行回忆测试,输入理解后提交,获取 AI 反馈。
  • 页面入口: 代码中无任何页面跳转到此页——Route 枚举中无对应 case属于代码存在但无导航入口的页面。
  • 页面组成: 提示文字(硬编码:"请回忆并写下你对「偏差-方差权衡」的理解"、TextEditor 回答输入框、"提交"按钮。
  • 用户可执行操作: (理论上的操作,实际不可达)输入答案、提交获取 AI 反馈。
  • 自动执行功能: 无。
  • 可跳转页面: 理论上AIFeedbackPageView。
  • 页面主要状态: 编辑中 / 提交后跳转。
  • 当前完成情况: 占位实现(无导航入口,题目硬编码,无 ViewModel。注submitted 状态变量在代码中从未被设置为 true提交按钮始终可见可能导致用户重复提交

七、测验功能(跨模块访问)

7.1 测验列表页QuizListView

  • 页面作用: 查看知识库下的所有测验,并可以生成新测验。
  • 页面入口: 知识库详情页操作菜单中的"测验"。
  • 页面组成: 测验列表(含测验标题等信息)、空状态提示("暂无测验"+"生成测验"按钮)、"生成新测验"按钮。
  • 用户可执行操作: 生成新测验、点击已有测验进入作答。
  • 自动执行功能: 加载该知识库的测验列表。
  • 可跳转页面: QuizTakerView测验作答
  • 页面主要状态: 加载中 / 空(引导生成)/ 有测验列表 / 生成失败Toast 提示)。
  • 当前完成情况: 已完成

7.2 测验作答页QuizTakerView

  • 页面作用: 逐题作答。
  • 页面入口: 测验列表点击测验、学习主页自我测试入口。
  • 页面组成: 进度条(当前题号/总题数)、题目题干、选项/答案区。支持三种题型选择题A/B/C/D 单选)、判断题(正确/错误按钮)、填空题(文本输入)。
  • 用户可执行操作: 选择题选择答案、判断正误、输入填空答案、上一题/下一题导航、提交全部答案。
  • 自动执行功能: 提交后自动计算得分。
  • 可跳转页面: QuizResultView测验结果
  • 页面主要状态: 答题中 / 提交中。
  • 当前完成情况: 已完成

7.3 测验结果页QuizResultView

  • 页面作用: 展示测验得分和详细答题情况。
  • 页面入口: 测验作答提交后自动跳转。
  • 页面组成: 大号得分数字(低于 60 分红色、高于 60 分绿色)、正确/总题数统计、"重新测验"按钮、逐题详细结果(正确/错误标记 + 解析)。
  • 用户可执行操作: 查看每道题的结果和解析、点击重新测验。
  • 自动执行功能: 加载测验结果详情。
  • 可跳转页面: 无(重新测验回到 QuizTakerView 或 QuizListView
  • 页面主要状态: 加载中 / 结果已加载。
  • 当前完成情况: 已完成

八、资料阅读(跨模块访问)

8.1 资料阅读页MaterialReaderView

  • 页面作用: 阅读学习资料,支持多种文件格式。
  • 页面入口: 学习主页"继续学习"、学习分析页"继续阅读"、知识库详情页来源文件、知识点详情页。
  • 页面组成:
    • 根据文件类型不同展示不同内容:
      • Markdown/文本/图片:原生渲染(标题、段落、列表、代码块、引用、表格、图片)
      • PDF/Word/Excel系统预览按钮QuickLook
      • PowerPoint外部打开按钮ShareLink
      • 不支持的格式:提示文字
    • 工具栏按钮标记已读、AI 对话(资料范围)、资料详情、开始学习会话、知识提取
    • 笔记功能入口Sheet
    • 解析状态 Toast
  • 用户可执行操作:
    • 阅读/滚动内容
    • 标记已读/取消标记
    • 打开 AI 对话(资料范围)
    • 查看资料详情
    • 开始学习会话
    • 添加笔记
    • QuickLook 预览PDF/Office
    • 外部打开PowerPoint
  • 自动执行功能:
    • 自动记录阅读位置2 秒防抖上报)
    • 自动开始/暂停/恢复阅读会话(前后台切换)
    • 自动心跳上报15 秒间隔)
    • 优先恢复上次阅读位置API > 本地缓存 > 会话位置)
    • 文件不存在时自动从 COS 下载
    • 后台时自动导出并上传阅读事件
  • 可跳转页面:
    • AIChatPage资料范围对话
    • MaterialDetailView资料详情
    • LearningSessionView学习会话
  • 页面主要状态: 加载中 / 加载失败(重试)/ 已加载·按格式渲染 / 解析状态 Toast。
  • 当前完成情况: 部分完成(核心功能已就位,解析触发使用 60×2s 硬编码轮询,存在改进空间)

8.2 资料详情页MaterialDetailView

  • 页面作用: 展示资料的元数据、处理状态和学习统计。
  • 页面入口: 资料阅读页工具栏"信息"按钮。
  • 页面组成:
    • "原始文件"区域AI 处理状态横幅(处理中/就绪/失败)、文件元数据(名称、格式、大小、上传日期)、阅读进度卡片
    • "学习内容"区域:知识点计数、测验计数
  • 用户可执行操作: 查看文件信息、查看阅读进度、查看关联学习内容。
  • 自动执行功能: 并行加载知识库详情、知识点列表、测验列表、阅读进度。
  • 可跳转页面: 无。
  • 页面主要状态:
    • AI 处理状态:处理中(琥珀色横幅)/ 就绪(绿色横幅)/ 失败(红色横幅)
    • 数据加载中
  • 当前完成情况: 已完成

九、弹窗与 Sheet

9.1 快速笔记QuickNoteSheet

  • 页面作用: 在阅读过程中快速添加笔记。
  • 页面入口: 资料阅读页工具栏笔记按钮(以 Sheet 形式弹出)。
  • 页面组成: 资料上下文头部、笔记内容 TextEditor自动聚焦、取消/保存按钮。
  • 用户可执行操作: 输入笔记文字、保存或取消。
  • 自动执行功能: 自动获取当前阅读位置作为笔记锚点。
  • 可跳转页面:Sheet 内操作)。
  • 页面主要状态: 编辑中 / 保存后关闭。
  • 当前完成情况: 已完成

9.2 系统预览QuickLook

  • 页面作用: 使用系统 QuickLook 预览 PDF、Word、Excel 等 Office 文件。
  • 页面入口: 资料阅读页中非原生支持格式的"系统预览"按钮(以 Sheet 形式弹出)。
  • 页面组成: 系统原生 QLPreviewController。
  • 用户可执行操作: 系统标准的文件预览操作。
  • 自动执行功能: 无。
  • 可跳转页面: 无。
  • 页面主要状态: 加载中 / 预览中。
  • 当前完成情况: 已完成

9.3 AI 会话列表 Sheet

  • 页面作用: 浏览和管理历史 AI 对话会话。
  • 页面入口: AI 对话页工具栏"会话列表"按钮(以 Sheet 形式弹出,支持 .medium 和 .large 展示高度)。
  • 页面组成: 可搜索会话列表,每条显示会话范围和最后消息时间;支持滑动操作(删除、归档)。
  • 用户可执行操作: 搜索会话、切换会话、删除会话、归档会话。
  • 自动执行功能: 根据当前对话范围过滤会话列表。
  • 可跳转页面: 选择会话后关闭 Sheet 并加载对应对话。
  • 页面主要状态: 会话列表 / 搜索中 / 空列表。
  • 当前完成情况: 已完成

9.4 封面选择 Sheet

  • 页面作用: 为知识库选择封面图片。
  • 页面入口: 创建知识库页封面区域点击(以 Sheet 形式弹出,固定高度 220pt
  • 页面组成: "从相册选择"选项。
  • 用户可执行操作: 打开系统相册选择图片。
  • 自动执行功能: 图片自动缩放为 512×512。
  • 可跳转页面: 无。
  • 页面主要状态: 选择中。
  • 当前完成情况: 已完成

9.5 链接导入弹窗

  • 页面作用: 输入 URL 以导入链接内容。
  • 页面入口: 导入资料页"链接导入"按钮(以 Alert 形式弹出,含输入框)。
  • 页面组成: 输入框URL、确认/取消按钮。
  • 用户可执行操作: 输入链接地址、确认导入。
  • 自动执行功能: 无。
  • 可跳转页面: 无。
  • 页面主要状态: 输入中。
  • 当前完成情况: 已完成

9.6 各类确认弹窗

以下为各页面中使用的系统 Alert 确认弹窗:

弹窗 所在页面 触发操作
删除知识库确认 LibraryDetailPage 操作菜单"删除知识库"
批量删除确认 LibraryDetailPage 批量选择后点击删除
新建文件夹 FolderManageView 点击"新建"
重命名文件夹 FolderManageView 滑动->重命名
退出登录确认 SettingsView 点击"退出登录"
结束学习确认 LearningSessionView 点击"结束"confirmationDialog

以上确认弹窗均已完成。