# MES CRUD 接口规范: {{Entity}}

> 模块: {{module}} | 实体: {{Entity}} | 表: {{table_name}}

## ADDED Requirements

### API-001: 分页查询
系统应当提供 `POST /{{entity}}/search` 接口，接收 `PageForm<{{Entity}}>` 请求体，返回分页结果。

**验收标准:**
- **Given** 数据库中存在 {{Entity}} 记录
- **When** 用户请求 `POST /{{entity}}/search`，请求体为 `{ "size": 20, "current": 1, "condition": {} }`
- **Then** 返回 `ResponseWrapper<Page<{{Entity}}>>`，包含 records 数组和 total 总数

### API-002: 详情查询
系统应当提供 `GET /{{entity}}/get/{id}` 接口。

**验收标准:**
- **Given** 存在 ID 为 1 的记录
- **When** 用户请求 `GET /{{entity}}/get/1`
- **Then** 返回 `ResponseWrapper<{{Entity}}>`，data 为该记录详情

### API-003: 新增
系统应当提供 `POST /{{entity}}/add` 接口，接收实体 JSON。

**验收标准:**
- **Given** 用户提供必填字段，请求体为合法的 {{Entity}} JSON
- **When** 用户请求 `POST /{{entity}}/add`
- **Then** 创建记录（雪花 ID 自动生成，审计字段自动填充），返回 `ResponseWrapper<String>` 成功

### API-004: 修改
系统应当提供 `PUT /{{entity}}/update` 接口。

**验收标准:**
- **Given** 存在待修改的记录
- **When** 用户请求 `PUT /{{entity}}/update`，请求体包含 id 和修改字段
- **Then** 更新记录（last_updated_by/last_updated_date 自动更新），返回 `ResponseWrapper<String>` 成功

### API-005: 批量删除
系统应当提供 `DELETE /{{entity}}/delete` 接口，接收 ID 数组。

**验收标准:**
- **Given** 存在待删除的记录
- **When** 用户请求 `DELETE /{{entity}}/delete`，请求体为 `[1, 2, 3]`
- **Then** 删除指定记录，返回 `ResponseWrapper<String>` 成功

### API-006: 不分页列表
系统应当提供 `POST /{{entity}}/list` 接口。

**验收标准:**
- **Given** 数据库中存在匹配记录
- **When** 用户请求 `POST /{{entity}}/list`
- **Then** 返回 `ResponseWrapper<List<{{Entity}}>>`（限制最多 10000 条）

### API-007: Excel 导出
系统应当提供 `POST /{{entity}}/export` 接口。

**验收标准:**
- **Given** 存在可导出的记录
- **When** 用户请求 `POST /{{entity}}/export`
- **Then** 返回 Excel 文件流（EasyExcel），文件名包含模块名

---

## 前端接口规范

### FE-001: API 接口文件
系统应当在 `src/api/{{domain}}/{{entity}}.js` 中封装以下方法：
- `search{{Entity}}(data)` — POST /{{entity}}/search
- `save{{Entity}}(data)` — POST /{{entity}}/add 或 PUT /{{entity}}/update（根据是否有 id 判断）
- `delete{{Entity}}(ids)` — DELETE /{{entity}}/delete
- `list{{Entity}}(data)` — POST /{{entity}}/list
- `export{{Entity}}(data)` — POST /{{entity}}/export

**验收标准:**
- **Given** API 文件已创建
- **When** 前端页面调用 API 方法
- **Then** 正确发送 HTTP 请求并返回 Promise

### FE-002: 列表页
系统应当在 `src/views/{{domain}}/{{entity}}/index.vue` 中实现列表页。

**验收标准:**
- **Given** 用户有查看权限
- **When** 用户访问列表页
- **Then** 展示搜索条件表单 + 数据表格 + 分页，支持新增/编辑/查看/删除/导出操作

### FE-003: 表单页
系统应当在 `src/views/{{domain}}/{{entity}}/{{entity}}-form.vue` 中实现表单页。

**验收标准:**
- **Given** 用户点击新增或编辑按钮
- **When** 表单页展示
- **Then** 展示可编辑表单，必填字段有验证规则，提交后返回列表
