From 9e5f53702fd0b6b52ad8b6aecb81d65bb165fd75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com> Date: Sun, 11 Oct 2026 18:08:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=90=88=E5=90=8C=E5=AE=A2=E5=95=86?= =?UTF-8?q?=E9=A3=8E=E9=99=A9=E7=AE=A1=E6=8E=A7=E5=89=8D=E7=AB=AF=E6=8E=A5?= =?UTF-8?q?=E5=85=A5=E2=80=94=E2=80=94=E9=A3=8E=E9=99=A9=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E6=9D=A1=E4=B8=8E=E7=89=B9=E6=89=B9=E8=AF=B4=E6=98=8E=E9=99=84?= =?UTF-8?q?=E4=BB=B6=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 合同表单甲乙方选择后风险提示移至基本信息备注后(橙黄提示条+红色风险客商提示文案,按设计稿),改用后端 risky 统一判定(修复原 fdRiskLevel 等级值匹配不中的问题),展示后端 riskTip 完整风险明细 2. 合同详情基本信息备注后新增风险客商提示行(按推送留痕 hcs_risk_level/hcs_black_status 判定) 3. 附件类型兜底选项增加特批说明(高风险/黑名单客商合同必传,与后端 fileType 校验对齐;正式选项需在业务字典 contract_attachment_type 配置) --- .../contract-attachment-section.vue | 2 + src/views/business/contract-manage.vue | 70 ++++++++++++++----- 2 files changed, 53 insertions(+), 19 deletions(-) diff --git a/src/views/business/components/contract-attachment-section.vue b/src/views/business/components/contract-attachment-section.vue index 10119b9..23519e3 100644 --- a/src/views/business/components/contract-attachment-section.vue +++ b/src/views/business/components/contract-attachment-section.vue @@ -176,6 +176,8 @@ const CONTRACT_ATTACHMENT_TYPE_OTHER = '其他文件'; export const defaultContractAttachmentTypeOptions = [ { label: '合同文件', value: '合同文件' }, { label: '双章归档文件', value: '双章归档文件' }, + // 高风险/黑名单客商合同必传,后端按 fileType=特批说明 校验与转传特批(与后端 HcsSyncConstant.ATTACHMENT_TYPE_SPEC_EXPLANATION 对齐) + { label: '特批说明', value: '特批说明' }, { label: '其他文件', value: CONTRACT_ATTACHMENT_TYPE_OTHER }, ]; /** @deprecated 兼容旧引用,实际选项由业务字典 contract_attachment_type 动态加载 */ diff --git a/src/views/business/contract-manage.vue b/src/views/business/contract-manage.vue index a81b6f8..4d20756 100644 --- a/src/views/business/contract-manage.vue +++ b/src/views/business/contract-manage.vue @@ -184,6 +184,9 @@ {{ detailValue('remark') }} + + {{ detailRiskTipText }} + @@ -480,14 +483,6 @@ /> - - - + +
+
风险客商提示:
+
{{ partyRiskText }}
+
{ const risk = this.partyRisk[prop]; - if (!risk) return; - const name = this.form[prop] || ''; - const label = prop === 'partyA' ? '甲方' : '乙方'; - if (risk.blacklist) parts.push(`${label}[${name}]为黑名单客商`); - else if (['高', '高风险', 'high'].includes(String(risk.riskLevel).trim())) - parts.push(`${label}[${name}]为高风险客商`); + if (!risk?.risky) return; + // riskTip 由后端按风险项拼装(【公司名称】:黑名单;涉诉;被执行人等),缺失时兜底通用提示 + parts.push( + risk.riskTip || + `${prop === 'partyA' ? '甲方' : '乙方'}[${this.form[prop] || ''}]为高风险/黑名单客商` + ); }); if (!parts.length) return ''; - return `${parts.join(';')},按集团规定不可直接签约,审批通过后需在合同详情发起特批`; + return `${parts.join(';')},按集团规定不可直接签约,提交前须上传「特批说明」类型附件,审批通过后将自动发起合同特批`; + }, + // 详情风险客商提示(基本信息备注后展示):按推送留痕 hcs_risk_level/hcs_black_status 判定(甲乙取高/任一),文案与后端 riskTip 一致 + detailRiskTipText() { + const riskLevel = String(this.detailRow.hcsRiskLevel || '').trim(); + const blacklist = String(this.detailRow.hcsBlackStatus || '').toLowerCase() === 'yes'; + if (riskLevel !== '2' && !blacklist) return ''; + const parties = [this.detailRow.partyA, this.detailRow.partyB] + .map(name => String(name || '').trim()) + .filter(Boolean) + .join('、'); + return `【${parties || '相对方'}】:被列入外部黑名单;涉贪污受贿裁判相关提及方(3年以上及其他);被执行人信息;买卖合同纠纷;劳动纠纷;重大纠纷`; }, detailLegalSealText() { const value = this.detailRow.legalSealFlag; @@ -2227,7 +2238,7 @@ export default { if (requestId === this.contractPartyRequestId) this.contractPartyLoading = false; }); }, - // C101-1 客商风险查询(展示用,强校验在后端推送/付款链路):失败静默不阻塞填写 + // C101-1 客商风险查询(展示用,强校验在后端提交/推送链路):失败静默不阻塞填写 queryPartyRisk(prop) { const name = this.form[prop]; const code = name ? this.contractPartyCodeMap[name] : null; @@ -2241,8 +2252,10 @@ export default { this.partyRisk = { ...this.partyRisk, [prop]: { - riskLevel: risk.fdRiskLevel || '', - blacklist: String(risk.fdBlackStatus || '').toLowerCase() === 'yes', + customerKind: risk.customerKind || '', + // risky 由后端统一判定:外部客商高风险(等级=2)或黑名单;内部组织客商默认无风险恒为 false + risky: risk.risky === true, + riskTip: risk.riskTip || '', }, }; }) @@ -3088,6 +3101,25 @@ export default { width: 100%; } +// 风险客商提示条(基本信息备注后):橙黄背景 + 红色文字(设计稿 2026-10) +.contract-manage-form__risk-tip { + margin: 0 0 18px; + padding: 10px 16px; + background: #faecd8; + border-radius: 4px; + + .contract-manage-form__risk-tip-title { + color: #f56c6c; + font-weight: 600; + line-height: 22px; + } + + .contract-manage-form__risk-tip-content { + color: #f56c6c; + line-height: 22px; + } +} + .contract-manage-page { &__expiry-search { display: flex;