# Mock 数据说明

本目录包含用于分支功能的 mock 数据，支持在开发环境中测试分支逻辑，无需调用真实后端 API。

## 文件说明

### 1. `branchPlanOutlineMock.ts`
**用途**: 根节点级别的分支（任务大纲分支）

**类型**: `IApiStepTask[][]`

**说明**: 返回多个分支方案，每个方案是一个完整的任务流程（IApiStepTask[]）

**示例结构**:
```typescript
[
  // 第一个分支方案（瀑布流开发）
  [task1, task2, ...],
  // 第二个分支方案（敏捷开发）
  [task1, task2, ...],
  // 第三个分支方案（快速原型）
  [task1, task2, ...]
]
```

### 2. `branchTaskProcessMock.ts`
**用途**: 任务节点级别的分支（任务流程分支）

**类型**: `IApiAgentAction[][]`

**说明**: 返回多个分支方案，每个方案是一系列动作（IApiAgentAction[]），这些动作会追加到现有任务的 TaskProcess 中

**示例结构**:
```typescript
[
  // 第一个分支方案（标准开发流程）
  [action1, action2, action3, ...],
  // 第二个分支方案（快速原型流程）
  [action1, action2, ...],
  // ... 更多方案
]
```

## 如何使用

### 切换 Mock 数据开关

在 `PlanModification.vue` 文件中，找到以下配置：

```typescript
// 开关：控制是否使用 mock 数据（开发时设置为 true，生产时设置为 false）
const USE_MOCK_DATA = true
```

- **开发阶段**: 设置为 `true`，使用 mock 数据
- **生产环境**: 设置为 `false`，调用真实 API

### 数据转换流程

```
IApiStepTask (API 格式)
    ↓ convertToIRawStepTask()
IRawStepTask (内部格式)
    ↓
更新到 agentsStore.agentRawPlan.data
    ↓
Vue Flow 流程图自动更新
```

### Mock 数据特点

1. **模拟网络延迟**: Mock 数据调用会模拟 800ms 的网络延迟
2. **多方案选择**: 每个分支接口提供多个备选方案（目前默认使用第一个）
3. **完整数据结构**: Mock 数据包含完整的字段，与真实 API 返回格式一致
4. **类型安全**: 使用 TypeScript 类型定义，确保类型正确

## 扩展 Mock 数据

### 添加新的分支方案

在对应的 mock 文件中添加新的数组元素：

```typescript
// branchPlanOutlineMock.ts
const mockPlanBranchData: IApiStepTask[][] = [
  // 现有方案...
  [
    // 新增方案
    {
      name: '新方案步骤1',
      content: '...',
      // ... 其他字段
    },
    {
      name: '新方案步骤2',
      content: '...',
      // ... 其他字段
    }
  ]
]
```

### 随机选择方案

修改 `PlanModification.vue` 中的方案选择逻辑：

```typescript
// 当前：固定选择第一个
const mockBranchTasks = branchPlanOutlineMock[0]

// 改为：随机选择一个方案
const randomIndex = Math.floor(Math.random() * branchPlanOutlineMock.length)
const mockBranchTasks = branchPlanOutlineMock[randomIndex]
```

## 注意事项

1. ⚠️ **生产环境**: 发布前务必将 `USE_MOCK_DATA` 设置为 `false`
2. 🔍 **调试**: 查看控制台日志，以 `[Mock]` 开头的是 mock 数据相关日志
3. 📝 **数据一致性**: 确保 mock 数据结构与真实 API 返回格式一致
4. 🔄 **数据持久化**: Mock 数据仅存在于前端，刷新页面后会丢失

## 相关文件

- `PlanModification.vue`: 主要逻辑文件，包含分支添加和 mock 数据集成
- `api/index.ts`: 真实 API 接口定义
- `stores/modules/agents.ts`: 类型定义和数据存储
