diff --git a/changelogs/2026-05/05_feat_contract_scheme_ui_form_flexible.md b/changelogs/2026-05/05_feat_contract_scheme_ui_form_flexible.md new file mode 100644 index 0000000..f823482 --- /dev/null +++ b/changelogs/2026-05/05_feat_contract_scheme_ui_form_flexible.md @@ -0,0 +1,54 @@ +# 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 " + +curl -sk "https://api.test.1814.love:9443/admin/contract/scheme/3/tour-guides" \ + -H "Authorization: Bearer " +``` + +## UI 建议 + +按方案编辑现有弹窗的整体复杂度自行决定: +- 弹窗内 Tab — 适合方案数据量大场景 +- 子弹窗 / 嵌入面板 — 适合附件/导游条目少 +- 独立侧抽屉 — 适合需要专注上传/批量管理 + +无强制要求, 自由发挥。 + +## 关联 + +- 后端 PR: #1592 (2026-05-01) +- 已关闭工单: wx/HL #1637 (前端任务不建工单, 改走本条 changelog)