40 KiB
40 KiB
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 正在分析你的回答…"思考动画覆盖层,全部完成后展示庆祝动画。
- 可跳转页面: AIFeedbackPageView(AI 反馈页)。
- 页面主要状态: 答题模式 / 答案已提交 / 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(生成测验)
- AIChatPage(AI 对话,知识库范围)
- 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) |
以上确认弹窗均已完成。