IOS-DOC-005 新增轻笔记入口 #22

Open
opened 2026-05-30 19:56:07 +08:00 by wangdl · 1 comment
Owner

移动端不做复杂富文本,但需要支持轻笔记和 AI 回答保存。

目标:在资料阅读页增加轻笔记入口。

功能:新建纯文本/Markdown 笔记、关联当前资料、关联当前位置 NoteAnchor、保存后回到阅读页

非目标:不做富文本、不做手写、不做 PDF 划线、不做复杂块编辑器

验收标准:用户能从阅读页创建笔记、笔记能关联 materialId、如果存在当前位置能生成 NoteAnchor、保存失败有错误提示

移动端不做复杂富文本,但需要支持轻笔记和 AI 回答保存。 目标:在资料阅读页增加轻笔记入口。 功能:新建纯文本/Markdown 笔记、关联当前资料、关联当前位置 NoteAnchor、保存后回到阅读页 非目标:不做富文本、不做手写、不做 PDF 划线、不做复杂块编辑器 验收标准:用户能从阅读页创建笔记、笔记能关联 materialId、如果存在当前位置能生成 NoteAnchor、保存失败有错误提示
wangdl added this to the M3:iOS 主 App 资料阅读闭环 milestone 2026-05-30 19:56:07 +08:00
wangdl added the
priority:p1
type:implementation
area:ios
area:notes
labels 2026-05-30 19:56:07 +08:00
Author
Owner

实现完成 (2026-06-02)

新增文件

Features/MaterialReader/QuickNoteSheet.swift (~170 行)

  • QuickNote model — id, materialId, content, anchorType, anchorBlockId, anchorLineNumber, anchorPageNumber, createdAt
  • NoteStore — 单例,本地 UserDefaults 持久化(add / notesFor / delete)
  • QuickNoteSheet — Sheet 弹窗编辑器
    • 顶部显示关联资料名 + 位置标签("block abc12345" / "第 3 行" / "第 5 页")
    • TextEditor 纯文本输入 + placeholder
    • 保存 → 自动记录 NoteAnchor + ISO8601 时间戳 → NoteStore
    • 取消 → dismiss

修改文件

MaterialReaderView.swift — 工具栏新增笔记按钮:

  • NativeReader 模式下工具栏显示 square.and.pencil 图标
  • buildAnchor()collector.lastPosition 自动生成 NoteAnchor
  • Sheet 弹窗打开 QuickNoteSheet 并传入 materialId + anchor

使用流程

阅读资料 → 看到重要内容 → 点 ✏️ 按钮
  → Sheet 弹起
  → 输入"这个公式需要重点记忆"
  → 点保存
  → NoteStore 保存(materialId + blockId + 文本 + 时间)
  → Sheet 关闭,回到阅读页

待后端

  • NoteStore 目前纯本地存储
  • 后续接入后端 API 时替换 NoteStore.save → POST /notes
## 实现完成 (2026-06-02) ### 新增文件 **`Features/MaterialReader/QuickNoteSheet.swift`** (~170 行) - `QuickNote` model — id, materialId, content, anchorType, anchorBlockId, anchorLineNumber, anchorPageNumber, createdAt - `NoteStore` — 单例,本地 UserDefaults 持久化(add / notesFor / delete) - `QuickNoteSheet` — Sheet 弹窗编辑器 - 顶部显示关联资料名 + 位置标签("block abc12345" / "第 3 行" / "第 5 页") - TextEditor 纯文本输入 + placeholder - 保存 → 自动记录 NoteAnchor + ISO8601 时间戳 → NoteStore - 取消 → dismiss ### 修改文件 **`MaterialReaderView.swift`** — 工具栏新增笔记按钮: - NativeReader 模式下工具栏显示 `square.and.pencil` 图标 - `buildAnchor()` 从 `collector.lastPosition` 自动生成 NoteAnchor - Sheet 弹窗打开 QuickNoteSheet 并传入 materialId + anchor ### 使用流程 ``` 阅读资料 → 看到重要内容 → 点 ✏️ 按钮 → Sheet 弹起 → 输入"这个公式需要重点记忆" → 点保存 → NoteStore 保存(materialId + blockId + 文本 + 时间) → Sheet 关闭,回到阅读页 ``` ### 待后端 - NoteStore 目前纯本地存储 - 后续接入后端 API 时替换 NoteStore.save → POST /notes
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/zhixi-document-runtime#22
No description provided.