export const mockOverviewData = { summary: { title: "风险仪表盘", subtitle: "风险仪表盘数据概览", actions: [], stats: [ { key: "people", label: "总人数", value: 500, icon: "el-icon-user", tone: "blue" }, { key: "riskPeople", label: "高风险", value: 10, icon: "el-icon-warning-outline", tone: "red" }, { key: "medium", label: "中风险", value: 20, icon: "el-icon-s-opportunity", tone: "amber" }, { key: "low", label: "低风险", value: 38, icon: "el-icon-data-line", tone: "green" }, { key: "count", label: "无风险人员", value: 432, icon: "el-icon-document", tone: "blue" }, ], }, riskPeople: { overviewList: [ { name: "李四", idNo: "331081199003230321", department: "信息二部", riskCount: 5, riskLevel: "高风险", riskLevelType: "danger", modelCount: 3, riskPoint: "跨地域转账频繁交易", actionLabel: "查看详情", }, { name: "王五", idNo: "331081199003231077", department: "办公室", riskCount: 2, riskLevel: "中风险", riskLevelType: "warning", modelCount: 2, riskPoint: "多工资转入频繁交易", actionLabel: "查看详情", }, { name: "赵六", idNo: "331081199003231099", department: "信息五部", riskCount: 2, riskLevel: "低风险", riskLevelType: "info", modelCount: 1, riskPoint: "频繁小额转账", actionLabel: "查看详情", }, ], }, riskModels: { cardList: [ { key: "large", title: "大额交易频繁", count: 45, peopleCount: 9 }, { key: "salary", title: "可疑部门产薪异常", count: 32, peopleCount: 6 }, { key: "transfer", title: "频繁转账交易", count: 28, peopleCount: 5 }, ], filterOptions: { modelOptions: [ { label: "大额交易频繁", value: "large" }, { label: "频繁转账交易", value: "transfer" }, ], warningTypeOptions: [ { label: "高风险", value: "high" }, { label: "中风险", value: "medium" }, ], }, filterValues: { model: "large", warningType: "high", }, peopleList: [ { name: "黄明", idNo: "331081199403150329", department: "风险管理部", warningType: "高风险", modelName: "大额交易频繁", actionLabel: "查看详情", }, { name: "王江", idNo: "331081199102031209", department: "运营管理部", warningType: "中风险", modelName: "频繁转账交易", actionLabel: "查看详情", }, ], }, riskDetails: { transactionList: [ { tradeDate: "2024-01-15", counterparty: "李七", direction: "转出", accountNo: "李七(08901)", summary: "转账", amount: 500000, actionLabel: "查看详情", }, { tradeDate: "2024-01-16", counterparty: "王五", direction: "转出", accountNo: "王五(08901)", summary: "转账", amount: -200000, actionLabel: "查看详情", }, ], abnormalAccountList: [ { accountNo: "62209****1234", accountName: "李四", bankName: "中国农业银行", lastTradeDate: "2024-01-15", handler: "正常", actionLabel: "查看详情", }, { accountNo: "62209****5678", accountName: "王五", bankName: "中国工商银行", lastTradeDate: "2024-01-10", handler: "正常", actionLabel: "查看详情", }, ], }, }; const summaryStatMetaMap = mockOverviewData.summary.stats.reduce((acc, item) => { acc[item.key] = { icon: item.icon, tone: item.tone, }; return acc; }, {}); function normalizeSummaryStats(stats) { if (!Array.isArray(stats)) { return []; } return stats.map((item) => ({ ...summaryStatMetaMap[item.key], ...item, })); } export function createOverviewLoadedData({ dashboardData, riskPeopleData } = {}) { return { ...mockOverviewData, summary: { ...mockOverviewData.summary, ...(dashboardData || {}), actions: mockOverviewData.summary.actions, stats: normalizeSummaryStats(dashboardData && dashboardData.stats), }, riskPeople: { ...mockOverviewData.riskPeople, overviewList: Array.isArray(riskPeopleData && riskPeopleData.overviewList) ? riskPeopleData.overviewList : [], }, }; } export const mockOverviewStateData = { loaded: mockOverviewData, empty: { summary: { ...mockOverviewData.summary, stats: mockOverviewData.summary.stats.map((item) => ({ ...item, value: 0, })), }, riskPeople: { overviewList: [], }, riskModels: { ...mockOverviewData.riskModels, cardList: [], peopleList: [], }, riskDetails: { transactionList: [], abnormalAccountList: [], }, }, loading: mockOverviewData, };