# 执行计划 - 用例执行后跳转执行中心对应子菜单

> **文档类型**: 执行计划文档
> **创建日期**: 2026-07-15
> **作者**: czj
> **关联 PRD**: `_PRD_需求文档_用例执行跳转执行中心对应子菜单.md`
> **状态**: 待执行

---

## 一、改动总览

| # | 改动项 | 文件 | 改动量 | 说明 |
|---|--------|------|--------|------|
| 1 | 执行后跳转携带类型参数 | `frontend/src/views/Cases.vue` | 1 行 | `router.push('/execution')` → `router.push(\`/execution/${currentType.value}\`)` |

**总计**：1 个文件，1 行核心改动。

---

## 二、详细执行步骤

### Step 1：修改 Cases.vue 跳转路径

**文件**：`frontend/src/views/Cases.vue`

**位置**：第 688 行，`runSelectedCases` 方法内

**改动**：

```typescript
// 改动前
router.push('/execution')

// 改动后
router.push(`/execution/${currentType.value}`)
```

**说明**：
- `currentType` 已在第 423 行定义为 `computed(() => (route.params.type as string) || 'ui')`
- 当用户在"用例管理 > UI自动化"页面时，`currentType.value` = `'ui'`，跳转到 `/execution/ui`
- 当用户在"用例管理 > 接口自动化"页面时，`currentType.value` = `'api'`，跳转到 `/execution/api`
- 直接访问 `/cases`（无 type 参数）时，`currentType.value` = `'ui'`，跳转到 `/execution/ui`

**无需额外改动**：
- Execution.vue — 已有 `currentType = computed(() => (route.params.type as string) || 'ui')` 和 `watch(currentType)` 自动加载
- App.vue — 已有子菜单结构，`/execution/ui` 等路径可正确匹配高亮
- router/index.ts — 已有 `/execution/:type?` 路由定义
- 后端 — 无需改动，`case_type` 由 service 层自动推断

---

## 三、验证步骤

### 3.1 构建验证

```bash
cd frontend && npm run build
```

确认 vue-tsc 类型检查通过 + Vite 打包成功。

### 3.2 功能验证

| 步骤 | 操作 | 预期结果 |
|------|------|----------|
| 1 | 启动前后端服务 | 服务正常运行 |
| 2 | 访问"用例管理 > UI自动化"，勾选用例，点击"执行选中" | 跳转到 `/execution/ui`，侧边栏"执行中心 > UI自动化"高亮 |
| 3 | 访问"用例管理 > 接口自动化"（如有用例），执行 | 跳转到 `/execution/api`，侧边栏"执行中心 > 接口自动化"高亮 |
| 4 | 直接访问 `/cases`（无 type），执行用例 | 跳转到 `/execution/ui`，默认行为正确 |
| 5 | 跳转后执行中心列表 | 能看到刚创建的执行记录 |

---

## 四、风险评估

| 风险 | 概率 | 影响 | 缓解 |
|------|------|------|------|
| `currentType` 值与后端推断的 case_type 不一致 | 低 | 跳转后列表可能为空 | 后端取首个用例的 case_type，前端取当前页面类型，正常使用场景下一致 |
| 选中不同类型用例执行 | 低 | 执行记录归到首个用例类型下 | 属于已有问题，不在本次范围 |

---

*本文档由 Claude Code 生成，遵循项目执行计划文档规范。*
