# LSFX Mock Phase 2 Random Hit Frontend Implementation Plan

> **For agentic workers:** REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (`- [ ]`) syntax for tracking.

**Goal:** 明确本次 `lsfx-mock-server` 第二期稳定随机命中改造不引入前端代码变更，同时验证现有前端页面与接口契约无需调整。

**Architecture:** 本次改造只作用于 Mock 服务与本地数据库基线，不新增前端页面、字段、交互或路由。前端实施计划采用“零代码变更 + 契约核验 + 文档沉淀”的最短路径，若核验发现返回结构变化，再停止并回到设计阶段，而不是在本计划中临时扩展前端实现。

**Tech Stack:** Vue 2, npm, Axios request wrapper, Markdown docs

---

## File Structure

- `ruoyi-ui/src/api/`: 本次预期不修改，只用于核验现有接口调用契约是否保持不变。
- `ruoyi-ui/src/views/ccdiProject/`: 本次预期不修改，只用于核验“拉取本行信息”“重打标结果展示”“流水详情标签展示”相关页面是否无需联动调整。
- `docs/reports/implementation/2026-03-20-lsfx-mock-phase2-random-hit-frontend-record.md`: 记录本次前端无代码改动的范围说明。
- `docs/tests/records/2026-03-20-lsfx-mock-phase2-random-hit-frontend-verification.md`: 记录前端契约核验与页面回归结论。

### Task 1: 核验前端接口契约无需调整

**Files:**
- Reference: `ruoyi-ui/src/api/`
- Reference: `ruoyi-ui/src/views/ccdiProject/`
- Reference: `docs/design/2026-03-20-lsfx-mock-phase2-random-hit-design.md`

- [ ] **Step 1: Check the existing frontend touchpoints**

检查以下现有前端触点，不写代码：

- `拉取本行信息` 入口对应的接口调用位置
- `项目重打标` 入口对应的接口调用位置
- `流水详情命中标签` 展示链路

重点确认：

- 请求参数没有新增字段要求
- 返回结构没有新增前端必填字段要求
- 结果展示仍依赖现有标签结果接口，不需要额外渲染第二期专属字段

- [ ] **Step 2: Verify no code change is needed**

Run:

```bash
cd ruoyi-ui
rg -n "pull-bank-info|tags/rebuild|bank-statement/detail|hitTags" src
```

Expected:

- 只看到现有调用点
- 设计文档中的第二期改造不要求新增前端字段适配

- [ ] **Step 3: If contract drift is found, stop instead of patching**

若核验发现以下任一情况，则停止执行并回到设计阶段：

- 后端返回结构新增前端必须消费的新字段
- 结果展示需要新增新的专属列或筛选条件
- 现有页面无法承接第二期命中结果

若未发现上述情况，则保持前端零代码变更。

- [ ] **Step 4: Record the no-op decision**

在计划执行时将“无需前端改动”的事实沉淀到实施记录与验证记录，不创建任何前端源码改动。

- [ ] **Step 5: Commit**

```bash
git add docs/reports/implementation/2026-03-20-lsfx-mock-phase2-random-hit-frontend-record.md docs/tests/records/2026-03-20-lsfx-mock-phase2-random-hit-frontend-verification.md
git commit -m "补充第二期Mock联调前端核验记录"
```

### Task 2: 补前端实施与验证记录

**Files:**
- Create: `docs/reports/implementation/2026-03-20-lsfx-mock-phase2-random-hit-frontend-record.md`
- Create: `docs/tests/records/2026-03-20-lsfx-mock-phase2-random-hit-frontend-verification.md`

- [ ] **Step 1: Write implementation record**

在 `docs/reports/implementation/2026-03-20-lsfx-mock-phase2-random-hit-frontend-record.md` 中记录：

- 本次需求范围仅涉及 Mock 服务与数据库基线
- 前端页面、接口封装、路由和交互均不需要改动
- 不做“为了联调看起来完整”而新增无业务价值的前端补丁

- [ ] **Step 2: Write verification record**

在 `docs/tests/records/2026-03-20-lsfx-mock-phase2-random-hit-frontend-verification.md` 中记录：

- 核验的页面与接口触点
- 检查命令
- “无需前端改动”的依据
- 最终结论

- [ ] **Step 3: Confirm no frontend build/test is required**

若无源码改动，则不运行 `npm run build:prod`；在验证记录中明确写明“本次为零代码改动核验，因此未执行构建”。

- [ ] **Step 4: Verify git diff stays docs-only**

Run:

```bash
git diff --name-only -- ruoyi-ui
```

Expected:

- 无输出
- 证明本次前端计划执行保持零代码改动

- [ ] **Step 5: Commit**

```bash
git add docs/reports/implementation/2026-03-20-lsfx-mock-phase2-random-hit-frontend-record.md docs/tests/records/2026-03-20-lsfx-mock-phase2-random-hit-frontend-verification.md
git commit -m "记录第二期Mock联调前端零改动结论"
```
