From e95151ad51c48723de1a812042fc6d885340c620 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com>
Date: Fri, 30 Oct 2026 14:41:49 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=90=88=E5=90=8C=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=A2=E5=95=86=E9=A3=8E=E9=99=A9=E5=88=97?=
=?UTF-8?q?=E5=B9=B6=E6=8A=BD=E5=8F=96=E9=A3=8E=E9=99=A9=E6=A0=87=E7=AD=BE?=
=?UTF-8?q?=E5=85=AC=E5=85=B1=E5=B1=95=E7=A4=BA=E6=96=B9=E6=B3=95=EF=BC=88?=
=?UTF-8?q?=E5=AE=A2=E5=95=86=E9=A1=B5=E5=A4=8D=E7=94=A8=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/option/business/contract-manage.js | 8 ++++++++
src/utils/risk-display.js | 28 ++++++++++++++++++++++++++
src/views/business/contract-manage.vue | 20 ++++++++++++++++++
src/views/vehicle/customer-archive.vue | 12 ++++-------
4 files changed, 60 insertions(+), 8 deletions(-)
create mode 100644 src/utils/risk-display.js
diff --git a/src/option/business/contract-manage.js b/src/option/business/contract-manage.js
index 9efc345..e16d95f 100644
--- a/src/option/business/contract-manage.js
+++ b/src/option/business/contract-manage.js
@@ -621,6 +621,14 @@ export const option = createCrudOption([
addDisplay: false,
editDisplay: false,
},
+ {
+ label: '客商风险',
+ prop: 'customerRisk',
+ slot: true,
+ minWidth: 150,
+ addDisplay: false,
+ editDisplay: false,
+ },
{
label: '金蝶合同ID',
prop: 'kingdeeId',
diff --git a/src/utils/risk-display.js b/src/utils/risk-display.js
new file mode 100644
index 0000000..224e92f
--- /dev/null
+++ b/src/utils/risk-display.js
@@ -0,0 +1,28 @@
+/**
+ * 客商/合同风险标签公共展示逻辑(黑名单=金蝶黑名单 A801-5 命中,与后端 HcsCreditCheckSupport 口径一致):
+ * 等级与黑名单组合展示、等级在前;内部组织客商默认无风险
+ */
+
+/** 金蝶黑名单命中判定(客商档案行:失信类别/列入事由任一非空) */
+export function isKingdeeBlack(category, reason) {
+ return !!(category || reason);
+}
+
+/** 合同行黑名单判定(推送链路按金蝶命中口径落库 kingdeeBlackStatus=yes) */
+export function isContractBlack(blackStatus) {
+ return String(blackStatus || '').toLowerCase() === 'yes';
+}
+
+/** 风险标签文案:riskLevel=C101-1 等级(0/1/2);isBlack=金蝶黑名单命中;customerKind=internal 显示"无风险" */
+export function resolveRiskTagName(riskLevel, isBlack, customerKind) {
+ const levelName = { 2: '高风险', 1: '中风险', 0: '低风险' }[riskLevel] || '';
+ if (isBlack) return levelName ? `${levelName}、黑名单` : '黑名单';
+ if (levelName) return levelName;
+ if (customerKind === 'internal') return '无风险';
+ return '';
+}
+
+/** 是否红色风险标签(黑名单命中或高风险) */
+export function isRiskyTag(riskLevel, isBlack) {
+ return isBlack || riskLevel === '2';
+}
diff --git a/src/views/business/contract-manage.vue b/src/views/business/contract-manage.vue
index 61454ec..a4a898e 100644
--- a/src/views/business/contract-manage.vue
+++ b/src/views/business/contract-manage.vue
@@ -92,6 +92,18 @@
-
+
+
+
+ {{ contractRiskTagName(row) }}
+
+ -
+
+