IOS-DOC-002 资料详情页增加阅读原文件 #19

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

资料详情页需要明确区分原文件可阅读和 AI 学习内容处理中。

目标:在 MaterialDetailView 增加原文件区域。

页面结构:
原文件区域:文件名、文件类型、文件大小、上传时间、阅读原文件按钮
学习内容区域:知识点整理状态、已生成知识点数量、测验数量、问这份资料、开始学习

状态文案:资料已上传可以先阅读原文件;知习正在整理知识点完成后可开始学习和自测

验收标准:AI 处理中时用户仍能阅读原文件、AI 未完成时开始学习/测验按钮不可用或有明确提示、阅读原文件进入 MaterialReaderView

资料详情页需要明确区分原文件可阅读和 AI 学习内容处理中。 目标:在 MaterialDetailView 增加原文件区域。 页面结构: 原文件区域:文件名、文件类型、文件大小、上传时间、阅读原文件按钮 学习内容区域:知识点整理状态、已生成知识点数量、测验数量、问这份资料、开始学习 状态文案:资料已上传可以先阅读原文件;知习正在整理知识点完成后可开始学习和自测 验收标准:AI 处理中时用户仍能阅读原文件、AI 未完成时开始学习/测验按钮不可用或有明确提示、阅读原文件进入 MaterialReaderView
wangdl added this to the M3:iOS 主 App 资料阅读闭环 milestone 2026-05-30 19:56:07 +08:00
wangdl added the
priority:p0
type:implementation
area:ios
labels 2026-05-30 19:56:07 +08:00
Author
Owner

实现完成 (2026-06-02)

新增文件

Features/MaterialReader/MaterialDetailView.swift (~250 行)

页面包含两个区域:

1. 原文件区域

  • 文件信息卡片:文件名、格式、大小、上传时间(4 行,图标 + 分隔线)
  • 状态 banner 三种变体:
    • processing — 琥珀色"知习正在整理知识点,完成后可开始学习和自测"
    • ready — 绿色"资料已上传,可以先阅读原文件" + "知识点已整理完成"
    • failed — 红色错误提示
  • "阅读原文件"按钮 → 导航到 MaterialReaderView(#18 IOS-DOC-001)

2. 学习内容区域

  • 知识点数量 + 测验数量(两个 stat box 并排)
  • "问这份资料"按钮 → AI 对话
  • "开始学习"按钮 → LearningSessionView
  • AI 处理中时底部灰色提示文案

ViewModel

  • 异步加载 KB 详情(名称、知识点数量、测验数量)
  • AI 状态推断:有知识点 → .ready,无知识点 → .processing
  • 调用 KnowledgeBaseService.detail / KnowledgeItemService.list / QuizService.list

Route

  • 新增 .materialDetail(knowledgeBaseId:fileName:fileType:fileSize:filePath:uploadDate:)
## 实现完成 (2026-06-02) ### 新增文件 **`Features/MaterialReader/MaterialDetailView.swift`** (~250 行) 页面包含两个区域: **1. 原文件区域** - 文件信息卡片:文件名、格式、大小、上传时间(4 行,图标 + 分隔线) - 状态 banner 三种变体: - `processing` — 琥珀色"知习正在整理知识点,完成后可开始学习和自测" - `ready` — 绿色"资料已上传,可以先阅读原文件" + "知识点已整理完成" - `failed` — 红色错误提示 - "阅读原文件"按钮 → 导航到 MaterialReaderView(#18 IOS-DOC-001) **2. 学习内容区域** - 知识点数量 + 测验数量(两个 stat box 并排) - "问这份资料"按钮 → AI 对话 - "开始学习"按钮 → LearningSessionView - AI 处理中时底部灰色提示文案 ### ViewModel - 异步加载 KB 详情(名称、知识点数量、测验数量) - AI 状态推断:有知识点 → `.ready`,无知识点 → `.processing` - 调用 `KnowledgeBaseService.detail` / `KnowledgeItemService.list` / `QuizService.list` ### Route - 新增 `.materialDetail(knowledgeBaseId:fileName:fileType:fileSize:filePath:uploadDate:)`
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

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