Files
loan-pricing/doc/2026-04-03-retail-display-fields-design.md

114 lines
3.8 KiB
Markdown
Raw Normal View History

2026-04-03 10:47:16 +08:00
# 个人模型详情缺失展示字段补齐设计文档
## 1. 背景
个人模型接口返回字段有更新。根据 `doc/上虞对私利率测算_上传字段与展示字段.xlsx``展示指标` sheet当前个人详情页仍缺少部分应展示字段需要补齐页面展示并保证接口链路字段完整。
## 2. 已确认范围
- 仅处理个人客户详情页
- 仅补齐 `展示指标` sheet 中当前缺失的 6 个字段
- 不调整企业客户页面
- 不新增兼容逻辑、兜底逻辑或额外展示区域
- 保持现有页面结构和分组,按最短路径补齐
## 3. 缺失字段
经核对,当前页面缺少以下字段:
- `loanTerm` 借款期限
- `loanRateHistory` 历史利率
- `minRateProduct` 产品最低利率下限
- `smoothRange` 平滑幅度
- `finalCalculateRate` 最终测算利率
- `referenceRate` 参考利率
其中:
- `loanTerm` 属于流程明细字段,来自 `LoanPricingWorkflow`
- 其余 5 个字段属于个人模型输出字段,来自 `ModelRetailOutputFields`
- 其余 5 个字段同时要求 `model_retail_output_fields` 表具备对应列,否则新流程详情无法完整落库展示
## 4. 现状分析
### 4.1 前端现状
个人详情页由两个主要区域组成:
- `PersonalWorkflowDetail.vue` 负责流程详情与左侧关键信息
- `ModelOutputDisplay.vue` 负责个人模型输出分组展示
当前页面已覆盖大部分 `展示指标` 字段,但个人详情页“业务信息”中未展示 `loanTerm`,个人模型输出“测算结果”中也未展示 5 个新增利率相关字段。
### 4.2 后端现状
- `LoanPricingWorkflow` 已包含 `loanTerm`
- `ModelRetailOutputFields` 当前未包含 `loanRateHistory``minRateProduct``smoothRange``finalCalculateRate``referenceRate`
因此前端目前无法从个人模型输出对象中读取这 5 个字段。
同时,开发库 `model_retail_output_fields` 表当前也未包含这 5 个字段列。如果只补代码而不补表结构,新的个人流程在模型结果入库时将无法完整保存这些字段。
## 5. 方案对比
### 方案一:在现有分组内补齐字段
做法:
- 在个人详情页“业务信息”区域补 `loanTerm`
- 在个人模型输出“测算结果”区域补 5 个新增利率字段
- 后端仅补 `ModelRetailOutputFields` 缺失字段定义
优点:
- 改动最小
- 不影响现有页面结构
- 与现有字段分组最贴合
缺点:
- 需要同时修改前后端
### 方案二:单独新增“利率结果扩展”分组
做法:
- 新增一个专门的 Tab 或卡片展示 5 个新增利率字段
优点:
- 新增字段集中展示
缺点:
- 页面改动更大
- 用户认知路径变化
- 不符合本次最短路径要求
## 6. 设计结论
采用方案一。
实现方式如下:
- 后端在 `ModelRetailOutputFields` 中新增 5 个字段定义,保证接口对象具备完整返回结构
- 数据库为 `model_retail_output_fields` 新增 5 个对应列,保证模型输出可正常落库
- 前端在 `PersonalWorkflowDetail.vue` 的“业务信息”中补齐 `loanTerm`
- 前端在 `ModelOutputDisplay.vue` 的个人“测算结果”中补齐 `loanRateHistory``minRateProduct``smoothRange``finalCalculateRate``referenceRate`
## 7. 验证设计
本次按最小可执行验证:
- 后端新增一个实体字段断言测试,先验证缺失字段不存在并失败,再补齐后验证通过
- 前端新增一个源码断言脚本,先验证缺失展示未实现并失败,再补齐后验证通过
- 对开发库执行表结构迁移
- 创建新的个人流程并打开详情页,确认新增字段可在真实页面展示
- 最后执行前端生产构建,确认页面代码可正常打包
## 8. 非目标
- 不调整企业详情页
- 不修改模型计算逻辑
- 不重构页面布局