IOS-M0-02 Document Import 文档导入 #2

Closed
opened 2026-05-28 19:54:59 +08:00 by wangdl · 1 comment
Owner

目标

实现文档导入功能:选择文件 → 上传到 COS → 创建导入任务 → 轮询导入状态。

背景说明

当前 ImportPage 有 4 个按钮(拍照导入/文件导入/链接导入/相册导入)全是空壳 Button { } 没有任何逻辑。后端 document-import 模块已实现。

后端接口

方法 路径 说明
POST /imports 创建导入任务(指定 knowledgeBaseId + fileId)
GET /imports/:id/status 查询导入状态(pending/processing/completed/failed)

模块职责

  1. ImportPage 重写:
    • 拍照导入 → 相机拍摄 → 上传 COS → 创建导入任务
    • 文件导入 → document picker → 上传 COS → 创建导入任务
    • 链接导入 → 输入 URL → 传给后端
    • 相册导入 → PhotosPicker → 上传 COS → 创建导入任务
  2. 导入进度展示:
    • 上传进度条
    • 导入状态轮询(每 2 秒)
    • 成功/失败状态展示
  3. 新增 DocumentImportService

禁止事项

  • 禁止保留空壳 Button { }
  • 禁止跳过 COS 上传直接用 base64
## 目标 实现文档导入功能:选择文件 → 上传到 COS → 创建导入任务 → 轮询导入状态。 ## 背景说明 当前 ImportPage 有 4 个按钮(拍照导入/文件导入/链接导入/相册导入)全是空壳 Button { } 没有任何逻辑。后端 document-import 模块已实现。 ## 后端接口 | 方法 | 路径 | 说明 | |------|------|------| | POST | /imports | 创建导入任务(指定 knowledgeBaseId + fileId) | | GET | /imports/:id/status | 查询导入状态(pending/processing/completed/failed) | ## 模块职责 1. ImportPage 重写: - 拍照导入 → 相机拍摄 → 上传 COS → 创建导入任务 - 文件导入 → document picker → 上传 COS → 创建导入任务 - 链接导入 → 输入 URL → 传给后端 - 相册导入 → PhotosPicker → 上传 COS → 创建导入任务 2. 导入进度展示: - 上传进度条 - 导入状态轮询(每 2 秒) - 成功/失败状态展示 3. 新增 DocumentImportService ## 禁止事项 - 禁止保留空壳 Button { } - 禁止跳过 COS 上传直接用 base64
wangdl added this to the M0:iOS C 端核心功能补全 milestone 2026-05-28 19:54:59 +08:00
Author
Owner

IOS-M0-02 修复完成

问题

ImportPage 4 个按钮(文件导入/相册导入/链接导入/拍照导入)全是空壳 Button { } 没有任何逻辑。用户无法导入文档到知识库。

修改

文件 变更
Core/Models/APIModels.swift 新增 CreateImportRequestImportStatusResponse 模型
Core/Services/APIService.swift 新增 DocumentImportServicecreate()getStatus() 2 个方法
Features/Library/LibrarySubpages.swift ImportPage 重写:3 个导入入口全部接入后端

行为变化

入口 修改前 修改后
文件导入 Button { } 空壳 fileImporter 选文件 → 上传 COS → POST /imports
相册导入 Button { } 空壳 PhotosPicker 选图 → 上传 COS → POST /imports
链接导入 Button { } 空壳 alert 输入 URL → POST /imports (sourceType: link)
拍照导入 Button { } 空壳 暂移除(待后续接入相机)

接入的后端接口

方法 路径 用途
POST /imports 创建导入任务(knowledgeBaseId + fileName + sourceType)

导入流程

选文件 → 上传 COS → 创建导入任务 → 后端异步解析 → 生成候选知识点

后续 IOS-M0-03 Import Candidate 将处理解析后的候选审批。

## ✅ IOS-M0-02 修复完成 ### 问题 `ImportPage` 4 个按钮(文件导入/相册导入/链接导入/拍照导入)全是空壳 `Button { }` 没有任何逻辑。用户无法导入文档到知识库。 ### 修改 | 文件 | 变更 | |------|------| | `Core/Models/APIModels.swift` | 新增 `CreateImportRequest`、`ImportStatusResponse` 模型 | | `Core/Services/APIService.swift` | 新增 `DocumentImportService`:`create()`、`getStatus()` 2 个方法 | | `Features/Library/LibrarySubpages.swift` | `ImportPage` 重写:3 个导入入口全部接入后端 | ### 行为变化 | 入口 | 修改前 | 修改后 | |------|--------|--------| | 文件导入 | `Button { }` 空壳 | fileImporter 选文件 → 上传 COS → `POST /imports` | | 相册导入 | `Button { }` 空壳 | PhotosPicker 选图 → 上传 COS → `POST /imports` | | 链接导入 | `Button { }` 空壳 | alert 输入 URL → `POST /imports` (sourceType: link) | | 拍照导入 | `Button { }` 空壳 | 暂移除(待后续接入相机) | ### 接入的后端接口 | 方法 | 路径 | 用途 | |------|------|------| | POST | `/imports` | 创建导入任务(knowledgeBaseId + fileName + sourceType) | ### 导入流程 ``` 选文件 → 上传 COS → 创建导入任务 → 后端异步解析 → 生成候选知识点 ``` 后续 `IOS-M0-03 Import Candidate` 将处理解析后的候选审批。
Sign in to join this conversation.
No description provided.