Files
loan-pricing/doc/workflow-create-ui-design.md

217 lines
7.0 KiB
Markdown
Raw Normal View History

2026-02-02 15:25:38 +08:00
# 利率定价创建流程前端重构设计文档
## 设计概述
本文档描述利率定价创建流程的前端重构设计,将原有的单一表单拆分为个人客户和企业客户两个独立的创建流程。
## 设计日期
2026-02-02
---
## 一、交互流程
### 用户操作步骤
1. **点击「新增」按钮** → 弹出「选择客户类型」对话框
2. **选择客户类型** → 打开对应的创建表单对话框
3. **填写表单并提交** → 调用对应的 API 接口
4. **成功/失败处理**
- 成功:关闭对话框,刷新列表,显示成功提示
- 失败:保留表单数据,显示后端错误信息
---
## 二、组件结构
### 文件组织
```
ruoyi-ui/src/
├── views/loanPricing/workflow/
│ ├── index.vue (修改)
│ └── components/
│ ├── CustomerTypeSelector.vue (新增)
│ ├── WorkflowCreateDialog.vue (删除)
│ ├── PersonalCreateDialog.vue (新增)
│ └── CorporateCreateDialog.vue (新增)
└── api/loanPricing/
└── workflow.js (修改)
```
### 组件职责
| 组件 | 职责 |
|-----------------------|-----------|
| CustomerTypeSelector | 客户类型选择对话框 |
| PersonalCreateDialog | 个人客户创建表单 |
| CorporateCreateDialog | 企业客户创建表单 |
---
## 三、表单字段设计
### 个人客户表单字段
| 分组 | 字段 | 类型 | 必填 | 说明 |
|-------|----------------|--------|----|------------|
| 基本信息 | custIsn | String | 是 | 客户内码 |
| 基本信息 | custName | String | 是 | 客户名称 |
| 基本信息 | idType | String | 是 | 证件类型 |
| 基本信息 | idNum | String | 是 | 证件号码 |
| 贷款信息 | guarType | String | 是 | 担保方式 |
| 贷款信息 | applyAmt | String | 是 | 申请金额(元) |
| 贷款信息 | bizProof | String | 是 | 是否有经营佐证 |
| 贷款信息 | loanLoop | String | 是 | 循环功能 |
| 抵质押信息 | collType | String | 是 | 抵质押类型 |
| 抵质押信息 | collThirdParty | String | 是 | 抵质押物是否三方所有 |
### 企业客户表单字段
| 分组 | 字段 | 类型 | 必填 | 说明 |
|-------|---------------------|--------|----|------------|
| 基本信息 | custIsn | String | 是 | 客户内码 |
| 基本信息 | custName | String | 是 | 客户名称 |
| 基本信息 | idType | String | 是 | 证件类型 |
| 基本信息 | idNum | String | 是 | 证件号码 |
| 贷款信息 | guarType | String | 是 | 担保方式 |
| 贷款信息 | applyAmt | String | 是 | 申请金额(元) |
| 贷款信息 | loanTerm | String | 是 | 贷款期限(月) |
| 企业标识 | isAgriGuar | String | 是 | 省农担担保贷款 |
| 企业标识 | isGreenLoan | String | 是 | 绿色贷款 |
| 企业标识 | isTechEnt | String | 是 | 科技型企业 |
| 企业标识 | isTradeConstruction | String | 是 | 贸易和建筑业企业 |
| 抵质押信息 | collType | String | 是 | 抵质押类型 |
| 抵质押信息 | collThirdParty | String | 是 | 抵质押物是否三方所有 |
---
## 四、API 接口设计
### 新增接口函数
```javascript
// 创建个人客户利率定价流程
export function createPersonalWorkflow(data) {
return request({
url: '/loanPricing/workflow/create/personal',
method: 'post',
data: data
})
}
// 创建企业客户利率定价流程
export function createCorporateWorkflow(data) {
return request({
url: '/loanPricing/workflow/create/corporate',
method: 'post',
data: data
})
}
```
### 数据转换规则
开关字段在提交时需要转换为字符串 `"true"/"false"`
```javascript
bizProof: this.form.bizProof ? 'true' : 'false'
```
---
## 五、验证规则
### 个人客户验证规则
| 字段 | 验证规则 |
|----------------|------------------------|
| custIsn | 必填,长度 1-50 字符 |
| custName | 必填,长度 1-100 字符 |
| idType | 必填 |
| idNum | 必填,身份证格式 15/18 位 |
| guarType | 必填 |
| applyAmt | 必填,正数,最大值 999999999.99 |
| bizProof | 必填(开关值,默认 "false" |
| loanLoop | 必填(开关值,默认 "false" |
| collType | 必填 |
| collThirdParty | 必填(开关值,默认 "false" |
### 企业客户验证规则
| 字段 | 验证规则 |
|---------------------|------------------------|
| custIsn | 必填,长度 1-50 字符 |
| custName | 必填,长度 1-100 字符 |
| idType | 必填 |
| idNum | 必填,统一社会信用代码 18 位 |
| guarType | 必填 |
| applyAmt | 必填,正数,最大值 999999999.99 |
| loanTerm | 必填,正整数,范围 1-360 |
| isAgriGuar | 必填(开关值,默认 "false" |
| isGreenLoan | 必填(开关值,默认 "false" |
| isTechEnt | 必填(开关值,默认 "false" |
| isTradeConstruction | 必填(开关值,默认 "false" |
| collType | 必填 |
| collThirdParty | 必填(开关值,默认 "false" |
---
## 六、UI 样式规范
### 对话框规范
| 对话框类型 | 宽度 | 说明 |
|--------|-------|------|
| 客户类型选择 | 500px | 居中显示 |
| 表单对话框 | 900px | 两列布局 |
### 表单布局
- 分组:使用 `el-divider` 分隔,带标题
- 字段:两列布局(`el-col :span="12"`
- 必填标识:红色星号
- 按钮:右下角,「确定」(主按钮)、「取消」
### 响应式处理
- 当屏幕宽度 < 768px 时,表单字段改为单列布局
---
## 七、错误处理
| 场景 | 处理方式 |
|--------|--------------------|
| 前端验证失败 | 阻止提交,高亮错误字段 |
| 网络错误 | 显示网络错误提示,保留表单 |
| 后端业务错误 | 显示后端返回的 `msg`,保留表单 |
| 成功 | 关闭对话框,刷新列表,显示成功提示 |
---
## 八、数据字典
### 担保方式 (guarType)
| 值 | 说明 |
|----|------|
| 信用 | 信用贷款 |
| 保证 | 保证贷款 |
| 抵押 | 抵押贷款 |
| 质押 | 质押贷款 |
### 抵质押类型 (collType)
| 值 | 说明 |
|----|------|
| 一线 | 一线抵押 |
| 一类 | 一类抵押 |
| 二类 | 二类抵押 |
### 证件类型 (idType)
- 个人:身份证
- 企业:统一社会信用代码