# 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)