# feat(前端): 合同方案附件管理 + 导游管理 UI 入口由前端自由选择

**日期**: 2026-05-05
**通知对象**: @mmg (前端)
**后端改动**: 0 (本条为 UI 形态澄清, 后端 API 早在 PR #1592 已就绪)

---

## 背景

`合同方案`(ContractScheme) 已支持「附件管理」+「导游管理」两个子资源的 CRUD 接口, 但前端编辑合同方案的弹窗里目前没有这两个入口。

之前的 changelog (`01_feat_contract_scheme_attachments_tab.md` / `01_feat_contract_scheme_tour_guides_tab.md`) 里建议用 Tab 形式集成, **但 UI 形态不限于 Tab**, 由你按实际编辑场景选择最合适的形式（Tab / 弹窗 / 抽屉 / 子页面 任选）。

## 后端 API (已就绪, 测试服可调)

### 附件 CRUD
- `GET    /admin/contract/scheme/{schemeId}/attachments` — 列表 (含排序)
- `POST   /admin/contract/scheme/{schemeId}/attachments` — 上传 (multipart/form-data, file + name + sortOrder)
- `PUT    /admin/contract/scheme/{schemeId}/attachments/{id}` — 改名/排序
- `DELETE /admin/contract/scheme/{schemeId}/attachments/{id}` — 删除

### 导游 CRUD
- `GET    /admin/contract/scheme/{schemeId}/tour-guides` — 列表
- `POST   /admin/contract/scheme/{schemeId}/tour-guides` — 新增 (name + phone + licenseNumber)
- `PUT    /admin/contract/scheme/{schemeId}/tour-guides/{id}` — 编辑
- `DELETE /admin/contract/scheme/{schemeId}/tour-guides/{id}` — 删除

字段定义、入参示例详见之前的 changelog (`01_feat_contract_scheme_attachments_tab.md` + `01_feat_contract_scheme_tour_guides_tab.md`)。

## curl 验证示例

```bash
# 列表
curl -sk "https://api.test.1814.love:9443/admin/contract/scheme/3/attachments" \
  -H "Authorization: Bearer <TK>"

curl -sk "https://api.test.1814.love:9443/admin/contract/scheme/3/tour-guides" \
  -H "Authorization: Bearer <TK>"
```

## UI 建议

按方案编辑现有弹窗的整体复杂度自行决定:
- 弹窗内 Tab — 适合方案数据量大场景
- 子弹窗 / 嵌入面板 — 适合附件/导游条目少
- 独立侧抽屉 — 适合需要专注上传/批量管理

无强制要求, 自由发挥。

## 关联

- 后端 PR: #1592 (2026-05-01)
- 已关闭工单: wx/HL #1637 (前端任务不建工单, 改走本条 changelog)
