实现结果总览项目分析弹窗主视图

This commit is contained in:
wkc
2026-03-25 14:09:47 +08:00
parent a13c73f9a8
commit 85f4e7bc61
7 changed files with 362 additions and 37 deletions

View File

@@ -156,6 +156,47 @@ export const projectAnalysisTabs = [
},
];
const projectAnalysisTransactionTemplate = [
{
tradeTime: "2024-02-18 10:24:11",
ownAccountName: "本人尾号 6222 / 工资卡",
counterpartyName: "张某某 / 6222****9087",
tradeType: "转账汇款",
tradeAmount: "128,000.00",
markStatus: "已标记关注",
},
{
tradeTime: "2024-02-20 16:40:32",
ownAccountName: "本人尾号 6217 / 二类户",
counterpartyName: "某贸易公司 / 对公账户",
tradeType: "往来款",
tradeAmount: "86,500.00",
markStatus: "待复核",
},
];
const projectAnalysisFrequentTransferTemplate = [
{
accountNo: "6222****1234",
description: "近 30 日出现多次短周期往返转账,交易对象集中于关联人员与外部中介账户。",
},
{
accountNo: "6217****2288",
description: "同日多笔拆分入账后快速转出,摘要模式高度相似。",
},
];
const projectAnalysisRelatedTradeTemplate = [
{
title: "关联人员往来",
description: "存在与同部门人员、历史共同项目人员的高频资金往来记录。",
},
{
title: "项目相关交易",
description: "部分交易时间靠近项目关键节点,需结合业务资料进一步核验。",
},
];
function normalizeProjectAnalysisTags(person) {
const sourceTags = Array.isArray(person && person.riskPointTagList)
? person.riskPointTagList
@@ -194,6 +235,8 @@ function resolveCurrentModel(person, source) {
export function buildProjectAnalysisDialogData({ person, source = "riskPeople", projectName = "" } = {}) {
const safePerson = person || {};
const riskTags = normalizeProjectAnalysisTags(safePerson);
const currentModelValue = resolveCurrentModel(safePerson, source);
const displayName = safePerson.name || safePerson.staffName || "-";
return {
tabs: projectAnalysisTabs,
@@ -207,11 +250,25 @@ export function buildProjectAnalysisDialogData({ person, source = "riskPeople",
},
modelSummary: {
modelCount: safePerson.modelCount || (Array.isArray(safePerson.modelNames) ? safePerson.modelNames.length : "-"),
currentModel: resolveCurrentModel(safePerson, source),
currentModel: currentModelValue,
hasRiskTags: riskTags.length > 0,
riskTags,
},
recordSummary: "排查记录摘要为静态承载内容,本轮用于展示统一工作台侧栏结构。",
},
sourceSummary: {
showCurrentModel: source === "riskModelPeople",
currentModelLabel: "当前命中模型",
currentModelValue,
},
abnormalDetail: {
transactionList: projectAnalysisTransactionTemplate.map((item, index) => ({
...item,
ownAccountName: index === 0 ? `${displayName} / ${item.ownAccountName}` : item.ownAccountName,
})),
frequentTransferSummary: projectAnalysisFrequentTransferTemplate,
relatedTradeSummary: projectAnalysisRelatedTradeTemplate,
},
};
}