# change: 合同方案表单「签约模式/签署模式」精简选项 — 待前端处理
**日期**: 2026-04-28
**类型**: 产品决策(精简选项)— **后端零改动**
**影响端**: 管理后台 (admin) — 系统管理 → 合同方案 → 新增/编辑弹窗
**反馈来源**: 用户当面指示,截图圈出要删除的 3 个 radio 选项
---
## 改动要求
合同方案弹窗(`编辑合同方案` / `新增合同方案`)里**删除以下 3 个 radio**:
### 「签约模式」 contractMode
| 当前 value | 当前 label | 处理 |
|---|---|---|
| STANDARD | 电子签约 | ✅ 保留(且作为唯一选项) |
| SYNC | 线下报备 | ❌ **删除** |
### 「签署模式」 signatoryMode
| 当前 value | 当前 label | 处理 |
|---|---|---|
| 1 | 短信签署 | ✅ 保留(且作为唯一选项) |
| 2 | 现场签署 | ❌ **删除** |
| 3 | 线下签署 | ❌ **删除** |
删除后两个 radio group 都只剩单一选项,建议直接改成只读展示文字或保留单 radio(默认选中且 disabled)。
---
## 修改位置
**文件**: `hl-ui/src/views/contract/scheme/components/SchemeEditModal.vue`
```vue
电子签约
线下报备
短信签署
现场签署
线下签署
```
默认值(`line 167-168`)已经是 `'STANDARD'` 和 `'1'`,无需调整。
---
## 兼容性提醒
后端 **不会** 删除 `ContractMode.SYNC` 枚举值和 `signatoryMode=2/3` 的支持,原因:
1. 12301 平台规范本身定义了 `signatory.mode` 取值 1=短信 / 2=现场 / 3=线下,是上游协议字段
2. v1 历史数据 / contract_scheme 表 / contract 表里**可能存在** value=`SYNC` 或 signatoryMode=2/3 的旧记录
3. 后端 `ContractMode.java` / `dict_business_enums.sql` 里的字典/枚举原样保留
⚠️ **前端处理回显的兼容**:编辑老方案时 `detail.contractMode === 'SYNC'` 或 `detail.signatoryMode === 2/3` 的情况下,radio group 会找不到匹配项导致显示空白。建议前端任选一种处理:
- 方案 A:渲染前若检测到旧值,自动回填到剩余的有效值(`STANDARD` / `'1'`),用户保存时自动迁移
- 方案 B:旧值场景额外渲染一个 disabled radio 显示原值,但禁止重新选择
推荐方案 A(迁移更彻底)。
---
## 验证清单
- [ ] 「签约模式」radio 只剩 `电子签约`
- [ ] 「签署模式」radio 只剩 `短信签署`
- [ ] 编辑历史方案(`contractMode=SYNC` 或 `signatoryMode=2/3`)时回显不报错
- [ ] 新增/编辑保存后,提交给后端的 contractMode 始终是 `STANDARD`,signatoryMode 始终是 `1`
- [ ] 「合同方案列表」里历史 `SYNC`/`2`/`3` 数据展示是否仍正常(这个文件不动表格列,只动弹窗)
---
## 关联
- 后端 ContractMode 枚举: `hl-order-service-v2/src/main/java/com/hulalv/contract/enums/ContractMode.java`
- 后端 ContractSchemeVO: `hl-order-service-v2/src/main/java/com/hulalv/contract/vo/ContractSchemeVO.java:43-47`
- 12301 协议字段映射: `signatory.mode` (12301 申报合同 API)