247 lines
9.3 KiB
Markdown
247 lines
9.3 KiB
Markdown
|
|
# 贷款风险报告组件 (CJRZQ5E9F) - 模块化架构
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
贷款风险报告组件采用模块化架构设计,将完整的贷款风险评估拆分成7个独立的模块,每个模块都可以作为独立的tab显示,具有独立的大标题。
|
|||
|
|
|
|||
|
|
## 数据结构
|
|||
|
|
|
|||
|
|
贷款风险报告的数据结构如下:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
{
|
|||
|
|
"apiID": "CJRZQ5E9F",
|
|||
|
|
"data": {
|
|||
|
|
"xyp_cpl0001": "5", // 贷款总机构数
|
|||
|
|
"xyp_cpl0002": "3", // 已结清机构数
|
|||
|
|
"xyp_cpl0007": "2", // 消费金融类机构数
|
|||
|
|
"xyp_cpl0008": "1", // 网络贷款类机构数
|
|||
|
|
"xyp_cpl0009": "1", // 最近7天机构数
|
|||
|
|
"xyp_cpl0014": "15", // 历史成功还款笔数
|
|||
|
|
"xyp_cpl0015": "2", // 历史失败还款笔数
|
|||
|
|
"xyp_cpl0016": "1", // 最近1天失败笔数
|
|||
|
|
"xyp_cpl0017": "3", // 最近1天成功笔数
|
|||
|
|
"xyp_cpl0018": "1", // 最近7天失败笔数
|
|||
|
|
"xyp_cpl0019": "5", // 最近7天成功笔数
|
|||
|
|
"xyp_cpl0020": "1", // 最近14天失败笔数
|
|||
|
|
"xyp_cpl0021": "7", // 最近14天成功笔数
|
|||
|
|
"xyp_cpl0022": "2", // 最近30天失败笔数
|
|||
|
|
"xyp_cpl0023": "10", // 最近30天成功笔数
|
|||
|
|
"xyp_cpl0024": "2", // 最近90天失败笔数
|
|||
|
|
"xyp_cpl0025": "12", // 最近90天成功笔数
|
|||
|
|
"xyp_cpl0026": "2", // 最近180天失败笔数
|
|||
|
|
"xyp_cpl0027": "14", // 最近180天成功笔数
|
|||
|
|
"xyp_cpl0028": "0", // 最近1天逾期标识
|
|||
|
|
"xyp_cpl0029": "0", // 最近7天逾期标识
|
|||
|
|
"xyp_cpl0030": "0", // 最近14天逾期标识
|
|||
|
|
"xyp_cpl0031": "0", // 最近30天逾期标识
|
|||
|
|
"xyp_cpl0032": "1000", // 最近1天失败金额
|
|||
|
|
"xyp_cpl0033": "5000", // 最近1天成功金额
|
|||
|
|
"xyp_cpl0034": "2000", // 最近7天失败金额
|
|||
|
|
"xyp_cpl0035": "8000", // 最近7天成功金额
|
|||
|
|
"xyp_cpl0036": "1500", // 最近14天失败金额
|
|||
|
|
"xyp_cpl0037": "12000", // 最近14天成功金额
|
|||
|
|
"xyp_cpl0038": "3000", // 最近30天失败金额
|
|||
|
|
"xyp_cpl0039": "20000", // 最近30天成功金额
|
|||
|
|
"xyp_cpl0040": "4000", // 最近90天失败金额
|
|||
|
|
"xyp_cpl0041": "35000", // 最近90天成功金额
|
|||
|
|
"xyp_cpl0042": "5000", // 最近180天失败金额
|
|||
|
|
"xyp_cpl0043": "45000", // 最近180天成功金额
|
|||
|
|
"xyp_cpl0044": "0", // 当前逾期状态
|
|||
|
|
"xyp_cpl0045": "365", // 信用贷款时长
|
|||
|
|
"xyp_cpl0046": "30", // 最近一次交易距今天数
|
|||
|
|
"xyp_cpl0064": "1", // 最近21天成功笔数
|
|||
|
|
"xyp_cpl0065": "0", // 最近21天失败笔数
|
|||
|
|
"xyp_cpl0066": "1000", // 最近21天失败金额
|
|||
|
|
"xyp_cpl0067": "6000", // 最近21天成功金额
|
|||
|
|
"xyp_cpl0068": "15", // 最近一次还款距今天数
|
|||
|
|
"xyp_cpl0070": "1", // 最近1天机构数
|
|||
|
|
"xyp_cpl0071": "0", // 当前逾期机构数
|
|||
|
|
"xyp_cpl0072": "0", // 当前逾期金额
|
|||
|
|
"xyp_cpl0073": "0.85", // 近5次金额成功率
|
|||
|
|
"xyp_cpl0074": "0.80", // 近5次还款成功率
|
|||
|
|
"xyp_cpl0075": "0.75", // 近20次小贷成功率
|
|||
|
|
"xyp_cpl0079": "0.70", // 近90天金额成功率
|
|||
|
|
"xyp_cpl0080": "0.65", // 近90天还款成功率
|
|||
|
|
"xyp_cpl0081": "0.25", // 信用风险评分
|
|||
|
|
"xyp_cpl0082": "0.30", // 履约金额综合指数
|
|||
|
|
"xyp_cpl0083": "0.35", // 履约笔数综合指数
|
|||
|
|
"xyp_model_score_high": "750", // 小额网贷分
|
|||
|
|
"xyp_model_score_mid": "680", // 小额分期分
|
|||
|
|
"xyp_model_score_low": "720", // 中大额分期分
|
|||
|
|
"xyp_t0400002": "0.78", // 近20次还款成功率
|
|||
|
|
"xyp_t0400003": "0.82", // 近50次还款成功率
|
|||
|
|
"xyp_t0400004": "0.80" // 近100次还款成功率
|
|||
|
|
},
|
|||
|
|
"success": true,
|
|||
|
|
"timestamp": "2025-01-20 21:19:58"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 模块拆分
|
|||
|
|
|
|||
|
|
贷款风险报告被拆分成以下7个独立模块:
|
|||
|
|
|
|||
|
|
| API ID | 模块名称 | 包含数据 | 组件文件 |
|
|||
|
|
|--------|----------|----------|----------|
|
|||
|
|
| `CJRZQ5E9F_RiskOverview` | 风险概览 | 综合风险等级、当前状态、关键指标 | RiskOverview.vue |
|
|||
|
|
| `CJRZQ5E9F_CreditScores` | 信用评分 | 综合信用指数、专业模型评分、还款表现 | CreditScores.vue |
|
|||
|
|
| `CJRZQ5E9F_LoanBehaviorAnalysis` | 贷款行为分析 | 机构类型分布、还款表现统计、时间维度分析 | LoanBehaviorAnalysis.vue |
|
|||
|
|
| `CJRZQ5E9F_InstitutionAnalysis` | 机构分析 | 机构类型分析、合作机构详情 | InstitutionAnalysis.vue |
|
|||
|
|
| `CJRZQ5E9F_TimeTrendAnalysis` | 时间趋势分析 | 历史趋势、周期性分析 | TimeTrendAnalysis.vue |
|
|||
|
|
| `CJRZQ5E9F_RiskIndicators` | 风险指标详情 | 详细风险指标、风险因子分析 | RiskIndicators.vue |
|
|||
|
|
| `CJRZQ5E9F_RiskAdvice` | 专业建议 | 风险评估建议、优化建议 | RiskAdvice.vue |
|
|||
|
|
|
|||
|
|
## 使用方法
|
|||
|
|
|
|||
|
|
### 1. 前端自动拆分
|
|||
|
|
|
|||
|
|
BaseReport.vue 已自动配置支持贷款风险报告的模块化显示:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
import { splitCJRZQ5E9FForTabs } from '@/ui/CJRZQ5E9F/utils/simpleSplitter.js';
|
|||
|
|
|
|||
|
|
// 处理数据拆分(支持DWBG8B4D、DWBG6A2C和CJRZQ5E9F)
|
|||
|
|
const processedReportData = computed(() => {
|
|||
|
|
let data = reportData.value;
|
|||
|
|
|
|||
|
|
// 拆分DWBG8B4D数据
|
|||
|
|
data = splitDWBG8B4DForTabs(data);
|
|||
|
|
|
|||
|
|
// 拆分DWBG6A2C数据
|
|||
|
|
data = splitDWBG6A2CForTabs(data);
|
|||
|
|
|
|||
|
|
// 拆分CJRZQ5E9F数据
|
|||
|
|
data = splitCJRZQ5E9FForTabs(data);
|
|||
|
|
|
|||
|
|
return data;
|
|||
|
|
});
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 组件配置
|
|||
|
|
|
|||
|
|
BaseReport.vue 中已配置所有贷款风险报告模块:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// 贷款风险报告
|
|||
|
|
JRZQ5E9F: {
|
|||
|
|
name: "贷款风险评估",
|
|||
|
|
component: defineAsyncComponent(() => import("@/ui/CJRZQ5E9F/index.vue")),
|
|||
|
|
remark: '贷款风险评估提供全面的个人贷款风险分析,包括风险概览、信用评分、贷款行为分析、机构分析等多维度评估。'
|
|||
|
|
},
|
|||
|
|
// ... 其他模块配置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 组件结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
src/ui/CJRZQ5E9F/
|
|||
|
|
├── index.vue # 原始完整组件(保留)
|
|||
|
|
├── README.md # 文档说明
|
|||
|
|
├── components/ # 子组件目录
|
|||
|
|
│ ├── RiskOverview.vue # 风险概览
|
|||
|
|
│ ├── CreditScores.vue # 信用评分
|
|||
|
|
│ ├── LoanBehaviorAnalysis.vue # 贷款行为分析
|
|||
|
|
│ ├── InstitutionAnalysis.vue # 机构分析
|
|||
|
|
│ ├── TimeTrendAnalysis.vue # 时间趋势分析
|
|||
|
|
│ ├── RiskIndicators.vue # 风险指标详情
|
|||
|
|
│ └── RiskAdvice.vue # 专业建议
|
|||
|
|
└── utils/
|
|||
|
|
└── simpleSplitter.js # 数据拆分工具
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 特色功能
|
|||
|
|
|
|||
|
|
### 1. 智能风险评估
|
|||
|
|
- 多维度风险等级计算
|
|||
|
|
- 智能颜色编码
|
|||
|
|
- 动态风险提示
|
|||
|
|
|
|||
|
|
### 2. 数据可视化
|
|||
|
|
- 渐变色彩设计
|
|||
|
|
- 图标化展示
|
|||
|
|
- 响应式布局
|
|||
|
|
- 交互式图表
|
|||
|
|
|
|||
|
|
### 3. 用户友好
|
|||
|
|
- 清晰的层次结构
|
|||
|
|
- 详细的说明文档
|
|||
|
|
- 直观的风险提示
|
|||
|
|
- 专业的建议指导
|
|||
|
|
|
|||
|
|
### 4. 模块化设计
|
|||
|
|
- 独立的模块组件
|
|||
|
|
- 可复用的工具函数
|
|||
|
|
- 灵活的数据拆分
|
|||
|
|
- 易于维护和扩展
|
|||
|
|
|
|||
|
|
## 工具函数
|
|||
|
|
|
|||
|
|
`utils/simpleSplitter.js` 提供了以下工具函数:
|
|||
|
|
|
|||
|
|
- `splitCJRZQ5E9FForTabs()` - 数据拆分
|
|||
|
|
- `parseIntervalValue()` - 解析区间化数值
|
|||
|
|
- `formatMetricValue()` - 格式化指标值
|
|||
|
|
- `formatDays()` - 格式化天数显示
|
|||
|
|
- `formatAmount()` - 格式化金额显示
|
|||
|
|
- `calculateRiskLevel()` - 计算风险等级
|
|||
|
|
- `calculateCreditScore()` - 计算信用评分
|
|||
|
|
- `getCreditScoreLevel()` - 获取信用等级描述
|
|||
|
|
- `getCreditScoreBadgeClass()` - 获取信用等级样式
|
|||
|
|
- `getScoreClass()` - 获取评分样式
|
|||
|
|
- `getCircleStyle()` - 获取圆形进度样式
|
|||
|
|
- `hasRiskData()` - 检查是否有风险数据
|
|||
|
|
|
|||
|
|
## 使用示例
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// 在页面中使用
|
|||
|
|
<BaseReport
|
|||
|
|
:reportData="reportData"
|
|||
|
|
:reportParams="reportParams"
|
|||
|
|
reportName="贷款风险评估"
|
|||
|
|
feature="CJRZQ5E9F"
|
|||
|
|
:isEmpty="false"
|
|||
|
|
:isDone="true"
|
|||
|
|
/>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 数据字段说明
|
|||
|
|
|
|||
|
|
### 主要指标字段
|
|||
|
|
- `xyp_cpl0001`: 贷款总机构数
|
|||
|
|
- `xyp_cpl0002`: 已结清机构数
|
|||
|
|
- `xyp_cpl0044`: 当前逾期状态 (0: 无逾期, 1: 有逾期)
|
|||
|
|
- `xyp_cpl0081`: 信用风险评分 (0-1)
|
|||
|
|
- `xyp_cpl0082`: 履约金额综合指数 (0-1)
|
|||
|
|
- `xyp_cpl0083`: 履约笔数综合指数 (0-1)
|
|||
|
|
|
|||
|
|
### 模型评分字段
|
|||
|
|
- `xyp_model_score_high`: 小额网贷分 (350-950)
|
|||
|
|
- `xyp_model_score_mid`: 小额分期分 (350-950)
|
|||
|
|
- `xyp_model_score_low`: 中大额分期分 (350-950)
|
|||
|
|
|
|||
|
|
### 还款表现字段
|
|||
|
|
- `xyp_cpl0073`: 近5次金额成功率
|
|||
|
|
- `xyp_cpl0074`: 近5次还款成功率
|
|||
|
|
- `xyp_t0400002`: 近20次还款成功率
|
|||
|
|
- `xyp_t0400003`: 近50次还款成功率
|
|||
|
|
- `xyp_t0400004`: 近100次还款成功率
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. 确保数据格式符合贷款风险报告的标准结构
|
|||
|
|
2. 所有模块都支持数据为空的情况
|
|||
|
|
3. 风险评估基于实际数据动态计算
|
|||
|
|
4. 组件采用 Tailwind CSS 进行样式设计
|
|||
|
|
5. 支持移动端响应式布局
|
|||
|
|
6. 区间化数值会自动解析为具体数值进行显示
|
|||
|
|
|
|||
|
|
## 更新日志
|
|||
|
|
|
|||
|
|
- v1.0.0: 初始版本,支持完整的贷款风险报告模块化显示
|
|||
|
|
- 包含7个独立模块
|
|||
|
|
- 支持自动数据拆分
|
|||
|
|
- 提供完整的风险评估功能
|
|||
|
|
- 支持多种数据可视化方式
|