实现结果总览详情弹窗前端接线

This commit is contained in:
wkc
2026-03-25 15:26:03 +08:00
parent a52fb35bd3
commit 78ae93330c
15 changed files with 506 additions and 78 deletions

View File

@@ -6,6 +6,10 @@ const source = fs.readFileSync(
path.resolve(__dirname, "../../src/views/ccdiProject/components/detail/PreliminaryCheck.vue"),
"utf8"
);
const apiSource = fs.readFileSync(
path.resolve(__dirname, "../../src/api/ccdi/projectOverview.js"),
"utf8"
);
[
"getOverviewDashboard",
@@ -40,3 +44,9 @@ assert(loadOverviewDataBlock, "入口页应继续并发请求仪表盘、风险
["employeeResult", "resultTable", "topRiskList"].forEach((token) =>
assert(!source.includes(token), `入口页不应感知或回退到旧/新底层数据源字段:${token}`)
);
[
"getOverviewPersonAnalysisDetail",
"/ccdi/project/overview/person-analysis/detail",
"staffIdCard: params.staffIdCard",
].forEach((token) => assert(apiSource.includes(token), token));

View File

@@ -13,9 +13,11 @@ const entry = fs.readFileSync(
[
"currentProjectAnalysisPerson",
"projectAnalysisSource",
"projectAnalysisModelSummary",
"openProjectAnalysisDialog(source, person)",
'this.projectAnalysisSource = source || "riskPeople"',
"this.currentProjectAnalysisPerson = person || null",
"this.projectAnalysisModelSummary = this.buildProjectAnalysisModelSummary",
"this.projectAnalysisDialogVisible = true",
'this.openProjectAnalysisDialog("riskPeople", row)',
'this.openProjectAnalysisDialog("riskModelPeople", row)',
@@ -25,5 +27,11 @@ const entry = fs.readFileSync(
[
':person="currentProjectAnalysisPerson"',
':source="projectAnalysisSource"',
':model-summary="projectAnalysisModelSummary"',
"@close=\"handleProjectAnalysisDialogClose\"",
].forEach((token) => assert(entry.includes(token), token));
[
"buildProjectAnalysisModelSummary(source, person)",
"staffIdCard",
].forEach((token) => assert(entry.includes(token), token));

View File

@@ -24,13 +24,18 @@ const abnormalTab = fs.readFileSync(
].forEach((token) => assert(dialog.includes(token), token));
[
"异常交易明细",
"detailData.groups",
'group.groupType === "BANK_STATEMENT"',
'group.groupType === "OBJECT"',
"group.groupName",
"交易时间",
"本方账号/主体",
"对方名称/账户",
"本方账",
"对方账户",
"摘要/交易类型",
"异常标签",
"交易金额",
"标记状态",
"频繁转账账户异常摘要",
"关联交易异常摘要",
"title",
"subtitle",
"summary",
"extraFields",
].forEach((token) => assert(abnormalTab.includes(token), token));

View File

@@ -12,9 +12,10 @@ const dialog = fs.readFileSync(
[
'activeTab: "abnormalDetail"',
"if (value) {",
"resetDialogState()",
'this.activeTab = "abnormalDetail"',
"handleDialogClosed()",
"if (value) {",
"this.fetchDetailData()",
"this.resetDialogState()",
].forEach((token) => assert(dialog.includes(token), token));

View File

@@ -16,6 +16,13 @@ const mockSource = fs.readFileSync(
),
"utf8"
);
const dialog = fs.readFileSync(
path.resolve(
__dirname,
"../../src/views/ccdiProject/components/detail/ProjectAnalysisDialog.vue"
),
"utf8"
);
[
'sidebarData.basicInfo.staffCode || "-"',
@@ -24,7 +31,12 @@ const mockSource = fs.readFileSync(
].forEach((token) => assert(sidebar.includes(token), token));
[
'staffCode: safePerson.staffCode || "-"',
'department: safePerson.department || "-"',
"riskTags.length",
"projectAnalysisTabs",
'key: "abnormalDetail"',
].forEach((token) => assert(mockSource.includes(token), token));
[
"detailData: null",
"detailError = \"\"",
"detailData = null",
].forEach((token) => assert(dialog.includes(token), token));

View File

@@ -19,6 +19,7 @@ const mockSource = fs.readFileSync(
[
'title="项目分析"',
'width="1440px"',
"<project-analysis-sidebar",
'<el-tabs v-model="activeTab"',
'name="abnormalDetail"',
@@ -27,6 +28,10 @@ const mockSource = fs.readFileSync(
'label="征信摘要"',
'label="关系图谱"',
'label="资金流向"',
"fetchDetailData()",
"detailLoading",
"detailError",
"handleRetryDetail()",
].forEach((token) => assert(dialog.includes(token), token));
[

View File

@@ -9,6 +9,20 @@ const sidebar = fs.readFileSync(
),
"utf8"
);
const dialog = fs.readFileSync(
path.resolve(
__dirname,
"../../src/views/ccdiProject/components/detail/ProjectAnalysisDialog.vue"
),
"utf8"
);
const entry = fs.readFileSync(
path.resolve(
__dirname,
"../../src/views/ccdiProject/components/detail/PreliminaryCheck.vue"
),
"utf8"
);
[
"人员基础信息",
@@ -23,7 +37,16 @@ const sidebar = fs.readFileSync(
"当前命中模型",
"核心异常标签",
"暂无异常标签",
"formatRiskTag",
"tag.ruleName",
].forEach((token) => assert(sidebar.includes(token), token));
assert(!sidebar.includes("关系人画像"), "侧栏不应扩展到额外区块");
assert(!sidebar.includes("资产分布"), "侧栏不应扩展到额外区块");
[
"this.detailData && this.detailData.basicInfo",
"...(this.modelSummary || {})",
].forEach((token) => assert(dialog.includes(token), token));
assert(entry.includes(':model-summary="projectAnalysisModelSummary"'), "入口页应继续透传模型摘要");