# 贷款风险报告组件 (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个独立模块
- 支持自动数据拆分
- 提供完整的风险评估功能
- 支持多种数据可视化方式
