3.6 KiB
3.6 KiB
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
<!-- 当前 line 47-51 -->
<n-form-item label="签约模式" path="contractMode">
<n-radio-group v-model:value="formData.contractMode">
<n-radio value="STANDARD">电子签约</n-radio>
<n-radio value="SYNC">线下报备</n-radio> <!-- 删除这行 -->
</n-radio-group>
</n-form-item>
<!-- 当前 line 54-60 -->
<n-form-item label="签署模式" path="signatoryMode">
<n-radio-group v-model:value="formData.signatoryMode">
<n-radio value="1">短信签署</n-radio>
<n-radio value="2">现场签署</n-radio> <!-- 删除这行 -->
<n-radio value="3">线下签署</n-radio> <!-- 删除这行 -->
</n-radio-group>
</n-form-item>
默认值(line 167-168)已经是 'STANDARD' 和 '1',无需调整。
兼容性提醒
后端 不会 删除 ContractMode.SYNC 枚举值和 signatoryMode=2/3 的支持,原因:
- 12301 平台规范本身定义了
signatory.mode取值 1=短信 / 2=现场 / 3=线下,是上游协议字段 - v1 历史数据 / contract_scheme 表 / contract 表里可能存在 value=
SYNC或 signatoryMode=2/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)