收口结果总览风险人员区块

This commit is contained in:
wkc
2026-03-20 09:31:33 +08:00
parent faaf04abf4
commit 11c678ab26
16 changed files with 176 additions and 75 deletions

View File

@@ -15,11 +15,3 @@ export function getOverviewRiskPeople(projectId) {
params: { projectId }
})
}
export function getOverviewTopRiskPeople(projectId) {
return request({
url: '/ccdi/project/overview/top-risk-people',
method: 'get',
params: { projectId }
})
}

View File

@@ -30,7 +30,6 @@ import {
import {
getOverviewDashboard,
getOverviewRiskPeople,
getOverviewTopRiskPeople,
} from "@/api/ccdi/projectOverview";
import OverviewStats from "./OverviewStats";
import RiskPeopleSection from "./RiskPeopleSection";
@@ -103,25 +102,21 @@ export default {
this.pageState = "loading";
try {
const [dashboardRes, riskPeopleRes, topRiskPeopleRes] = await Promise.all([
const [dashboardRes, riskPeopleRes] = await Promise.all([
getOverviewDashboard(this.projectId),
getOverviewRiskPeople(this.projectId),
getOverviewTopRiskPeople(this.projectId),
]);
const dashboardData = (dashboardRes && dashboardRes.data) || {};
const riskPeopleData = (riskPeopleRes && riskPeopleRes.data) || {};
const topRiskPeopleData = (topRiskPeopleRes && topRiskPeopleRes.data) || {};
this.realData = createOverviewLoadedData({
dashboardData,
riskPeopleData,
topRiskPeopleData,
});
const hasOverviewData = Boolean(
(Array.isArray(dashboardData.stats) && dashboardData.stats.length) ||
(Array.isArray(riskPeopleData.overviewList) && riskPeopleData.overviewList.length) ||
(Array.isArray(topRiskPeopleData.topRiskList) && topRiskPeopleData.topRiskList.length)
(Array.isArray(riskPeopleData.overviewList) && riskPeopleData.overviewList.length)
);
this.pageState = hasOverviewData ? "loaded" : "empty";

View File

@@ -16,37 +16,15 @@
<el-table-column prop="idNo" label="身份证号" min-width="180" />
<el-table-column prop="department" label="所属部门" min-width="140" />
<el-table-column prop="riskCount" label="疑似违规数" min-width="100" />
<el-table-column prop="riskPoint" label="核心异常点" min-width="220" />
<el-table-column label="操作" width="100" align="right">
<template slot-scope="scope">
<el-button type="text" size="mini">{{ scope.row.actionLabel || "查看详情" }}</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="block">
<div class="block-header">
<div>
<div class="block-title">中高风险人员TOP10</div>
<div class="block-subtitle">按风险等级和命中数量聚焦重点对象</div>
</div>
<el-button size="mini" type="text">导出</el-button>
</div>
<el-table :data="sectionData.topRiskList || []" class="people-table">
<el-table-column type="index" label="排名" width="60" />
<el-table-column prop="name" label="姓名" min-width="100" />
<el-table-column prop="idNo" label="身份证号" min-width="180" />
<el-table-column prop="department" label="所属部门" min-width="140" />
<el-table-column prop="riskLevel" label="风险等级" min-width="100">
<el-table-column prop="riskLevel" label="风险等级" min-width="110">
<template slot-scope="scope">
<el-tag size="mini" :type="scope.row.riskLevelType" effect="plain">
{{ scope.row.riskLevel }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="modelCount" label="命中模型数" min-width="100" />
<el-table-column prop="modelCount" label="命中模型数" min-width="110" />
<el-table-column prop="riskPoint" label="核心异常点" min-width="220" />
<el-table-column label="操作" width="100" align="right">
<template slot-scope="scope">
<el-button type="text" size="mini">{{ scope.row.actionLabel || "查看详情" }}</el-button>
@@ -82,10 +60,6 @@ export default {
box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}
.block + .block {
margin-top: 24px;
}
.block-header {
display: flex;
justify-content: space-between;

View File

@@ -18,6 +18,9 @@ export const mockOverviewData = {
idNo: "331081199003230321",
department: "信息二部",
riskCount: 5,
riskLevel: "高风险",
riskLevelType: "danger",
modelCount: 3,
riskPoint: "跨地域转账频繁交易",
actionLabel: "查看详情",
},
@@ -26,6 +29,9 @@ export const mockOverviewData = {
idNo: "331081199003231077",
department: "办公室",
riskCount: 2,
riskLevel: "中风险",
riskLevelType: "warning",
modelCount: 2,
riskPoint: "多工资转入频繁交易",
actionLabel: "查看详情",
},
@@ -34,30 +40,13 @@ export const mockOverviewData = {
idNo: "331081199003231099",
department: "信息五部",
riskCount: 2,
riskLevel: "低风险",
riskLevelType: "info",
modelCount: 1,
riskPoint: "频繁小额转账",
actionLabel: "查看详情",
},
],
topRiskList: [
{
name: "张三",
idNo: "331081199003231021",
department: "信贷部",
riskLevel: "高风险",
riskLevelType: "danger",
modelCount: 8,
actionLabel: "查看详情",
},
{
name: "李四",
idNo: "331081199003230321",
department: "信息二部",
riskLevel: "中风险",
riskLevelType: "warning",
modelCount: 6,
actionLabel: "查看详情",
},
],
},
riskModels: {
cardList: [
@@ -158,7 +147,7 @@ function normalizeSummaryStats(stats) {
}));
}
export function createOverviewLoadedData({ dashboardData, riskPeopleData, topRiskPeopleData } = {}) {
export function createOverviewLoadedData({ dashboardData, riskPeopleData } = {}) {
return {
...mockOverviewData,
summary: {
@@ -172,9 +161,6 @@ export function createOverviewLoadedData({ dashboardData, riskPeopleData, topRis
overviewList: Array.isArray(riskPeopleData && riskPeopleData.overviewList)
? riskPeopleData.overviewList
: [],
topRiskList: Array.isArray(topRiskPeopleData && topRiskPeopleData.topRiskList)
? topRiskPeopleData.topRiskList
: [],
},
};
}
@@ -191,7 +177,6 @@ export const mockOverviewStateData = {
},
riskPeople: {
overviewList: [],
topRiskList: [],
},
riskModels: {
...mockOverviewData.riskModels,