feat: 合同列表新增客商风险列并抽取风险标签公共展示方法(客商页复用)

This commit is contained in:
刘泉佳
2026-10-30 14:41:49 +08:00
parent 5351911d50
commit e95151ad51
4 changed files with 60 additions and 8 deletions
+20
View File
@@ -92,6 +92,18 @@
<span v-else>-</span>
</template>
<!-- 客商风险:等级与金蝶黑名单组合展示(推送链路按金蝶命中口径落库),复用公共展示方法 -->
<template #customerRisk="{ row }">
<el-tag
v-if="contractRiskTagName(row)"
:type="isContractRisky(row) ? 'danger' : row.hcsRiskLevel === '1' ? 'warning' : 'success'"
class="status-text"
>
{{ contractRiskTagName(row) }}
</el-tag>
<span v-else>-</span>
</template>
<template #menu="{ row }">
<el-link
v-if="hasPermission(`${config.permission}_view`)"
@@ -1091,6 +1103,7 @@ import { exportBlob } from '@/api/common';
import * as api from '@/api/business/contract-manage';
import { createFromContract } from '@/api/business/contract-change';
import { repush as hcsRepush, repushBatch as hcsRepushBatch, getRisk } from '@/api/business/hcs';
import { isContractBlack, isRiskyTag, resolveRiskTagName } from '@/utils/risk-display';
import { Position } from '@element-plus/icons-vue';
import { getMkPublicDetail } from '@/api/mk-process';
import { getList as getProjectList } from '@/api/business/project-apply';
@@ -1756,6 +1769,13 @@ export default {
hcsSyncLabel(value) {
return { unsynced: '待推送', synced: '已推送', failed: '推送失败' }[value] || value;
},
// ==================== 客商风险(推送链路按金蝶黑名单命中口径落库,展示复用公共方法) ====================
contractRiskTagName(row) {
return resolveRiskTagName(row.hcsRiskLevel, isContractBlack(row.kingdeeBlackStatus));
},
isContractRisky(row) {
return isRiskyTag(row.hcsRiskLevel, isContractBlack(row.kingdeeBlackStatus));
},
hcsSyncTagType(value) {
return { unsynced: 'info', synced: 'success', failed: 'danger' }[value] || 'info';
},
+4 -8
View File
@@ -1598,6 +1598,7 @@ import {
syncKingdee,
} from '@/api/vehicle/customer-archive';
import { getRiskByName } from '@/api/business/hcs';
import { isKingdeeBlack, isRiskyTag, resolveRiskTagName } from '@/utils/risk-display';
import {
getList as getCreditScoreQuantificationList,
getDetail as getCreditScoreQuantificationDetail,
@@ -5558,20 +5559,15 @@ export default {
},
// 黑名单判定:仅以金蝶黑名单(A801-5)命中为准(失信类别/列入事由任一非空);C101-1 的 hcsBlackStatus 不作为黑名单依据
customerRowIsBlack(row) {
return !!(row.kingdeeBlackCategory || row.kingdeeBlackReason);
return isKingdeeBlack(row.kingdeeBlackCategory, row.kingdeeBlackReason);
},
// 客商风险名称(每日定时刷新落库字段):等级与黑名单组合展示(如"低风险、黑名单");内部组织默认无风险;未查询显示"-"
customerRowRiskName(row) {
const isBlack = this.customerRowIsBlack(row);
const levelName = { 2: '高风险', 1: '中风险', 0: '低风险' }[row.hcsRiskLevel] || '';
if (isBlack) return levelName ? `${levelName}、黑名单` : '黑名单';
if (levelName) return levelName;
if (row.customerKind === 'internal') return '无风险';
return '';
return resolveRiskTagName(row.hcsRiskLevel, this.customerRowIsBlack(row), row.customerKind);
},
// 高风险/黑名单判定(与列表筛选口径一致,命中显示红色标签)
customerRowRisky(row) {
return this.customerRowIsBlack(row) || row.hcsRiskLevel === '2';
return isRiskyTag(row.hcsRiskLevel, this.customerRowIsBlack(row));
},
// 客商名称风险校验(C101-1,仅展示不作为安全边界):名称失焦/回显时查询,
// risky 在名称框下展示红色提示,悬浮见风险项明细;查询失败静默不阻断填写,提交链路由后端强校验兜底