hl-api-changelog/changelogs/2026-04/2026-04-22_contract-scheme-platform-dropdown-tencent-esign.md

4.2 KiB

合同方案 "合同平台" 下拉:移除法大大,接入腾讯电子签

  • 日期: 2026-04-22
  • 涉及页面: 管理端 → 合同管理 → 合同方案 → 新增/编辑弹窗
  • 文件: src/views/contract/scheme/components/SchemeEditModal.vue
  • 原因: 后端第二期对接腾讯电子签PR #1138/#1141/#1147,字典 contract_platform 新增 TENCENT_ESIGN;同时业务不再使用法大大,字典 FADADA 已置 INACTIVE
  • 影响: 管理端创建/编辑合同方案时,当前只有 "12301 / 法大大" 两个硬编码选项,看不到腾讯电子签

后端已完成

字典 contract_platform12301(ACTIVE) / FADADA(INACTIVE) / TENCENT_ESIGN(ACTIVE)
后端枚举 ContractPlatform.TOURAGE / LOCAL / TENCENT_ESIGN
Scheme 新字段 vendorCode / channelPR #1138
策略实现 TencentEsignContractPlatformPR #1141
回调 Controller POST /contract/callback/tencent-esign[/{vendorCode}]PR #1147

前端改动(必做)

当前硬编码代码

<!-- src/views/contract/scheme/components/SchemeEditModal.vue line 30-34 -->
<n-form-item label="合同平台" path="contractPlatform">
  <n-radio-group v-model:value="formData.contractPlatform">
    <n-radio value="12301">全国旅游监管平台</n-radio>
    <n-radio value="FADADA">法大大</n-radio>
  </n-radio-group>
</n-form-item>

方案 A推荐,长期治本从字典动态拉取

<n-form-item label="合同平台" path="contractPlatform">
  <n-radio-group v-model:value="formData.contractPlatform">
    <n-radio v-for="opt in platformOptions" :key="opt.value" :value="opt.value">
      {{ opt.label }}
    </n-radio>
  </n-radio-group>
</n-form-item>
// 用你们现有的字典 hook
import { useDictData } from '@/hooks/useDictData'
const { options: platformOptions } = useDictData('contract_platform') // 只返 status=ACTIVE 项

后端字典 status=INACTIVE 的条目不会出现在下拉。未来加 ESIGN_XX 只改字典无需改前端。

方案 B立即修复,临时只改硬编码

<n-radio-group v-model:value="formData.contractPlatform">
  <n-radio value="12301">全国旅游监管平台</n-radio>
  <n-radio value="TENCENT_ESIGN">腾讯电子签</n-radio>
</n-radio-group>

删除 FADADA 那行,新增 TENCENT_ESIGN

default 值

line 165 contractPlatform: '12301' 和 line 263 contractPlatform: detail.contractPlatform || '12301' 保持不变12301 仍是默认兜底)。

同时需要改的下拉(同页面)

如果有 vendorCode 字段显示(腾讯多企业号场景),也需要加。但本期只接 TENCENT_HULAI 一个 vendor,字段可延后

  • 后端 ContractSchemeRequest.vendorCode 已支持PR #1138
  • @ApiModelProperty 描述:平台厂商编码TENCENT_HULAI=呼籁自有腾讯账号;12301 平台此字段可为空
  • 前端可加个条件显示platform=TENCENT_ESIGN 时才显示一个 vendorCode 单选(当前只有 TENCENT_HULAI

同时需要改的下拉(列表页)

src/views/contract/scheme/index.vuesrc/views/contract/list/index.vue 如果有按"合同平台"筛选或渲染标签,同样需要:

  • FADADA → 移除
  • TENCENT_ESIGN → 新增label "腾讯电子签"

相关后端接口(已就绪)

  • GET /admin/contract/scheme/list-all - 返回 contractPlatform / vendorCode / channel 字段
  • POST /admin/contract/scheme - 接 contractPlatform=TENCENT_ESIGN + vendorCode=TENCENT_HULAI + 可选 channel
  • GET /admin/dict/data/list?dictType=contract_platform - 拉字典(方案 A 用)

验收

  1. 打开 "新增合同方案" 弹窗
  2. "合同平台" 区域只显示 2 个选项:全国旅游监管平台 / 腾讯电子签(无法大大)
  3. 选"腾讯电子签" → 保存成功
  4. 方案列表/详情页的合同平台标签能正确显示"腾讯电子签"中文名

紧急度

。2026-04-25 腾讯测试专业版到期前要跑完端到端联调,前端不改这个下拉,运营无法创建 TENCENT_ESIGN 的 Scheme,整个第二期合同接入卡在这一步