# 知识库页面路由和 Mock 数据说明

## 一、知识库页面路由结构

### 1. 主路由 `/knowledge`
- **面包屑名称**: 知识库管理
- **显示**: 是

### 2. 二级路由

#### 2.1 知识库列表 `/knowledge/knowledgeLib`
- **面包屑名称**: 知识库
- **显示**: 是
- **页面文件**: `src/pages/knowledgeLib/list/index.tsx`
- **子路由**:
  - `/knowledge/knowledgeLib` (列表首页)
  - `/knowledge/knowledgeLib/create` (创建知识库)
  - `/knowledge/knowledgeLib/:knowledgeId/:createBy` (知识库详情)

#### 2.2 修订工具 `/knowledge/revisionTool`
- **面包屑名称**: 修订工具
- **显示**: 是
- **页面文件**: `src/pages/knowledgeLib/revisionTool/list/index.tsx`

### 3. 三级页面和弹出层

#### 3.1 知识库详情页面 `/knowledge/knowledgeLib/:knowledgeId/:createBy`
- **面包屑名称**: 知识库详情
- **显示**: 否（隐藏）
- **页面文件**: `src/pages/knowledgeLib/detail/index.tsx`
- **功能**:
  - 文档列表管理
  - 文档上传
  - 文档编辑
  - 文档删除
  - 文档配置
  - 切片管理
  - 引用知识库

#### 3.2 弹出层组件

##### 3.2.1 InfoModal
- **用途**: 文档重命名
- **文件**: `src/pages/knowledgeLib/detail/components/InfoModal.tsx`

##### 3.2.2 InfoModalSetting
- **用途**: 文档配置设置
- **文件**: `src/pages/knowledgeLib/detail/components/InfoModalSetting.tsx`

##### 3.2.3 UploadModal
- **用途**: 文档上传
- **文件**: `src/pages/knowledgeLib/detail/components/UploadModal.tsx`

##### 3.2.4 MdModal
- **用途**: 切片查看和编辑
- **文件**: `src/pages/knowledgeLib/detail/components/MdModal.tsx`

##### 3.2.5 QuoteModal
- **用途**: 引用知识库
- **文件**: `src/pages/knowledgeLib/detail/components/QuoteModal.tsx`

##### 3.2.6 PrevewSlice
- **用途**: 切片预览
- **文件**: `src/pages/knowledgeLib/detail/components/prevewSlice.tsx`

#### 3.3 修订工具页面组件

##### 3.3.1 ReviseDrawer
- **用途**: 修订抽屉组件
- **文件**: `src/pages/knowledgeLib/revisionTool/components/reviseDrawer.tsx`

##### 3.3.2 RevisionHistory
- **用途**: 修订历史记录
- **文件**: `src/pages/knowledgeLib/revisionTool/components/revisionHistory.tsx`

## 二、API 接口 Mock 数据

### 1. Mock 数据文件

#### 1.1 主 Mock 数据文件
- **文件**: `src/mock/index.ts`
- **包含数据**:
  - `mockKnowledgeLibList`: 知识库列表数据（8 条）
  - `mockKnowledgeLibDetail`: 知识库详情数据
  - `mockDocumentList`: 文档列表数据（5 条）
  - `mockSliceList`: 切片列表数据（5 条）
  - `mockReviseToolList`: 修订工具列表数据（3 条）
  - `mockReviseHistoryList`: 修订历史数据（2 条）
  - `mockEmbeddingList`: 向量化模型列表（3 条）
  - `mockParsingTypeList`: 解析类型列表（4 条）
  - `mockSplittingTypeList`: 切分规则列表（4 条）
  - `mockStandardClassificationList`: 标准分类列表（3 条）
  - `mockRevisionStatusList`: 修订状态列表（2 条）
  - `mockChatHistoryList`: 聊天记录列表（2 条）

#### 1.2 Mock API 拦截器
- **文件**: `src/mock/knowledgeApi.ts`
- **功能**: 提供所有知识库相关 API 的 Mock 实现

### 2. Mock API 接口列表

#### 2.1 知识库管理 API

| 接口 | 方法 | Mock 函数 | 说明 |
|------|------|----------|------|
| `/bigmodel/api/knowledgeList` | POST | `mockFetchKnowledgeLibList` | 获取知识库列表 |
| `/bigmodel/api/detailKnowledge/:id` | GET | `mockFetchKnowledgeLibDetail` | 获取知识库详情 |
| `/bigmodel/api/createKnowledge` | POST | `mockCreateKnowledgeLib` | 创建知识库 |
| `/bigmodel/api/updateKnowledge/:id` | PUT | `mockModifyKnowledgeLib` | 修改知识库 |
| `/bigmodel/api/delKnowledge/:id` | DELETE | `mockDeleteKnowledgeLib` | 删除知识库 |
| `/bigmodel/api/embedding` | GET | `mockFetchEmbeddingList` | 获取向量化模型列表 |

#### 2.2 文档管理 API

| 接口 | 方法 | Mock 函数 | 说明 |
|------|------|----------|------|
| `/bigmodel/api/documentList` | POST | `mockFetchDocumentLibList` | 获取文档列表 |
| `/bigmodel/api/documentDetail/:id` | GET | `mockFetchDocumentLibDetail` | 获取文档详情 |
| `/bigmodel/api/updateDocument/:id` | PUT | `mockModifyDocumentLib` | 修改文档 |
| `/bigmodel/api/delDocument/:id` | DELETE | `mockDeleteDocumentLib` | 删除文档 |
| `/bigmodel/api/uploadDocument/:knowledgeId` | POST | `mockUploadDocument` | 上传文档 |
| `/bigmodel/api/documentSetting/:id` | GET | `mockFetchDocumentSetting` | 获取文档配置 |
| `/bigmodel/api/updateDocumentSetting/:id` | PUT | `mockModifyDocumentSetting` | 修改文档配置 |

#### 2.3 切片管理 API

| 接口 | 方法 | Mock 函数 | 说明 |
|------|------|----------|------|
| `/bigmodel/api/getSliceList` | POST | `mockFetchSliceList` | 获取切片列表 |
| `/bigmodel/api/getSliceDetail/:sliceId/:knowledgeId` | GET | `mockFetchSliceDetail` | 获取切片详情 |
| `/bigmodel/api/add/slice` | POST | `mockAddSlice` | 新增切片 |
| `/bigmodel/api/updateSliceInfo` | PUT | `mockModifySlice` | 修改切片 |
| `/bigmodel/api/deleteSlice/:sliceId/:knowledgeId/:documentId` | DELETE | `mockDeleteSlice` | 删除切片 |

#### 2.4 修订工具 API

| 接口 | 方法 | Mock 函数 | 说明 |
|------|------|----------|------|
| `/deepseek/revise/pageList` | GET | `mockFetchReviseToolList` | 获取修订工具列表（分页） |
| `/deepseek/revise/list` | GET | `mockFetchReviseToolAllList` | 获取修订工具列表（不分页） |
| `/deepseek/revise/sliceList` | GET | `mockFetchReviseToolSliceList` | 获取修订切片列表 |
| `/deepseek/revise/reviseSlice` | PUT | `mockSubmitReviseSlice` | 提交修订切片 |
| `/deepseek/revise/reviseHistoryList` | GET | `mockFetchReviseHistoryList` | 获取修订历史列表 |

#### 2.5 字典数据 API

| 接口 | 方法 | Mock 函数 | 说明 |
|------|------|----------|------|
| `/deepseek/api/standard_classification` | GET | `mockFetchTakaiAppTypeList` | 获取标准分类 |
| `/deepseek/api/parsing_type` | GET | `mockFetchTakaiAppTypeList` | 获取解析类型 |
| `/deepseek/api/splitting_type` | GET | `mockFetchTakaiAppTypeList` | 获取切分规则 |
| `/deepseek/api/revision_status` | GET | `mockFetchTakaiAppTypeList` | 获取修订状态 |

#### 2.6 聊天记录 API

| 接口 | 方法 | Mock 函数 | 说明 |
|------|------|----------|------|
| `/bigmodel/api/chatHistory/list` | POST | `mockFetchChatHistoryList` | 获取聊天记录列表 |
| `/bigmodel/api/dialog/export/:id` | POST | `mockExportChatHistory` | 导出聊天记录 |

## 三、Mock 数据示例

### 3.1 知识库列表数据示例

```json
{
  "knowledgeId": "kb001",
  "name": "政务公文知识库",
  "createBy": "admin",
  "standardClassification": "0",
  "splittingType": "1",
  "docCount": 128,
  "sliceCount": 1024,
  "createTime": "2024-01-15 10:30:00",
  "updateTime": "2024-01-19 10:30"
}
```

### 3.2 文档列表数据示例

```json
{
  "id": "doc001",
  "name": "政务服务指南.pdf",
  "url": "/files/doc001.pdf",
  "length": 1024000,
  "sentenceSize": 150,
  "knowledgeType": 1,
  "customSeparator": ["\\n"],
  "embeddingStat": 1,
  "wordNum": 5000,
  "parseImage": 0,
  "createTime": "2024-01-15 10:30:00",
  "updateTime": "2024-01-19 10:30",
  "knowledgeId": "kb001",
  "knowledgeName": "政务公文知识库",
  "status": "completed"
}
```

### 3.3 切片列表数据示例

```json
{
  "sliceId": "slice001",
  "knowledgeId": "kb001",
  "documentId": "doc001",
  "sliceText": "政务服务是指政府机关通过多种渠道和方式，为公民、法人和其他组织提供的各类公共服务。",
  "sliceNum": 1,
  "createTime": "2024-01-15 10:30:00",
  "updateTime": "2024-01-19 10:30",
  "status": "active"
}
```

## 四、启用/禁用 Mock

在 `src/apis/api.ts` 中修改 `USE_MOCK` 常量：

```typescript
// 是否启用 Mock 模式
const USE_MOCK = true;  // 启用 Mock
// const USE_MOCK = false;  // 禁用 Mock，使用真实 API
```

## 五、测试路由

### 5.1 访问知识库列表
```
http://localhost:3100/knowledge/knowledgeLib
```

### 5.2 访问创建知识库页面
```
http://localhost:3100/knowledge/knowledgeLib/create
```

### 5.3 访问知识库详情页面
```
http://localhost:3100/knowledge/knowledgeLib/kb001/admin
```

### 5.4 访问修订工具页面
```
http://localhost:3100/knowledge/revisionTool
```

## 六、注意事项

1. **路由配置**: 所有路由已在 `src/store/route.tsx` 中配置完成
2. **Mock 数据**: 所有 API 接口已配置 Mock 数据，无需后端即可测试
3. **弹出层**: 所有弹出层组件均为页面内组件，不需要单独路由
4. **路由参数**: 知识库详情页面使用 `:knowledgeId/:createBy` 作为路由参数
5. **权限控制**: 页面中的操作按钮根据用户权限和配置显示/隐藏

## 七、文件清单

### 7.1 路由文件
- `src/store/route.tsx` - 路由配置

### 7.2 页面文件
- `src/pages/knowledgeLib/list/index.tsx` - 知识库列表
- `src/pages/knowledgeLib/detail/index.tsx` - 知识库详情
- `src/pages/knowledgeLib/revisionTool/list/index.tsx` - 修订工具列表

### 7.3 组件文件
- `src/pages/knowledgeLib/detail/components/InfoModal.tsx`
- `src/pages/knowledgeLib/detail/components/InfoModalSetting.tsx`
- `src/pages/knowledgeLib/detail/components/UploadModal.tsx`
- `src/pages/knowledgeLib/detail/components/MdModal.tsx`
- `src/pages/knowledgeLib/detail/components/QuoteModal.tsx`
- `src/pages/knowledgeLib/detail/components/prevewSlice.tsx`
- `src/pages/knowledgeLib/revisionTool/components/reviseDrawer.tsx`
- `src/pages/knowledgeLib/revisionTool/components/revisionHistory.tsx`

### 7.4 Mock 文件
- `src/mock/index.ts` - Mock 数据
- `src/mock/knowledgeApi.ts` - Mock API 拦截器
- `src/apis/api.ts` - API 配置（含 Mock 支持）
