This commit is contained in:
wkc
2026-01-22 16:01:12 +08:00
parent c102714f92
commit d75e6a9594
7 changed files with 271 additions and 18 deletions

View File

@@ -0,0 +1,45 @@
# 提案: 添加执行利率设定前端功能
## 背景
后端已经实现了执行利率设定接口 `PUT /loanPricing/workflow/{serialNum}/executeRate`,并且详情接口 `GET /loanPricing/workflow/{serialNum}` 已经返回 `executeRate` 字段。但前端缺少相应的 UI 交互功能,业务人员无法通过界面设定执行利率。
## 问题
1. 议价池组件中只显示议价池数据,没有执行利率输入框
2. 前端缺少调用设定执行利率接口的 API 方法
3. 用户无法通过界面设定或更新执行利率
## 提案概述
在流程详情页面的议价池组件中添加执行利率设定功能,允许业务人员输入执行利率并提交。
### 功能范围
1. **API 方法**
-`ruoyi-ui/src/api/loanPricing/workflow.js` 中添加 `setExecuteRate` 方法
2. **议价池组件更新**
-`BargainingPoolDisplay.vue` 中添加执行利率输入框和提交按钮
- 添加执行利率显示/编辑状态的切换
- 支持显示已设定的执行利率值
- 添加表单验证(利率格式)
3. **详情页面更新**
-`detail.vue` 中传递 `executeRate``serialNum` 给议价池组件
- 添加提交成功后刷新详情的处理
## 影响范围
- 前端 API: `ruoyi-ui/src/api/loanPricing/workflow.js`
- 前端组件: `ruoyi-ui/src/views/loanPricing/workflow/components/BargainingPoolDisplay.vue`
- 前端页面: `ruoyi-ui/src/views/loanPricing/workflow/detail.vue`
- 规范: `loan-pricing-workflow-ui` (添加新需求)
## 设计考虑
1. **UI 位置**: 在议价池组件中添加新行,保持与现有议价池数据显示的一致性
2. **输入验证**: 利率格式验证(数字,可含小数点,范围合理)
3. **状态管理**: 编辑/查看状态切换,提交成功后显示最新值
4. **用户反馈**: 提交成功/失败的提示消息
5. **权限控制**: 后端接口无需特殊权限,前端暂不添加权限控制

View File

@@ -0,0 +1,45 @@
## ADDED Requirements
### Requirement: 执行利率设定
系统 SHALL 在流程详情页面的议价池组件中提供执行利率设定功能,允许用户输入并提交执行利率。
#### Scenario: 显示未设定的执行利率
- **WHEN** 用户在流程详情页面查看议价池组件,且该流程尚未设定执行利率
- **THEN** 系统在议价池组件中显示"执行利率"行,当前值显示为"-"
#### Scenario: 显示已设定的执行利率
- **WHEN** 用户在流程详情页面查看议价池组件,且该流程已设定执行利率
- **THEN** 系统在议价池组件中显示"执行利率"行,显示当前设定的执行利率值
#### Scenario: 进入编辑模式
- **WHEN** 用户在议价池组件中点击"执行利率"行的编辑按钮
- **THEN** 系统切换到编辑模式,显示输入框(预填充当前值或空)、提交按钮和取消按钮
#### Scenario: 提交执行利率成功
- **WHEN** 用户在编辑模式下输入有效的执行利率值并点击提交按钮
- **THEN** 系统调用 `PUT /loanPricing/workflow/{serialNum}/executeRate` 接口,成功后更新显示值为新设定的利率,显示成功提示消息,并退出编辑模式
#### Scenario: 提交执行利率失败
- **WHEN** 用户在编辑模式下提交执行利率,但后端接口返回错误
- **THEN** 系统保持编辑模式,显示错误提示消息
#### Scenario: 取消编辑
- **WHEN** 用户在编辑模式下点击取消按钮
- **THEN** 系统退出编辑模式,恢复显示模式,显示原来的执行利率值
#### Scenario: 输入验证
- **WHEN** 用户在编辑模式下输入非法的执行利率值(非数字、超出合理范围)
- **THEN** 系统在提交前进行验证,显示错误提示,阻止提交
#### Scenario: API 接口调用
- **WHEN** 用户提交执行利率
- **THEN** 前端调用 `setExecuteRate(serialNum, executeRate)` API 方法,该方法发送 `PUT /loanPricing/workflow/{serialNum}/executeRate` 请求

View File

@@ -0,0 +1,85 @@
# 实施任务
## 任务清单
1. **添加 API 方法**
- 文件: `ruoyi-ui/src/api/loanPricing/workflow.js`
- 操作: 添加 `setExecuteRate(serialNum, executeRate)` 方法
- 请求: `PUT /loanPricing/workflow/{serialNum}/executeRate`
- 验证: 方法添加成功
2. **更新议价池组件 - Props**
- 文件: `ruoyi-ui/src/views/loanPricing/workflow/components/BargainingPoolDisplay.vue`
- 操作: 添加 `executeRate``serialNum` props
- 验证: props 定义成功
3. **更新议价池组件 - UI**
- 文件: `ruoyi-ui/src/views/loanPricing/workflow/components/BargainingPoolDisplay.vue`
- 操作: 在 el-descriptions 中添加"执行利率"行,包含:
- 显示模式: 显示当前执行利率值(若无则显示"-"
- 编辑模式: 输入框 + 提交按钮 + 取消按钮
- 编辑按钮: 在显示模式下点击进入编辑模式
- 验证: UI 更新成功
4. **更新议价池组件 - 数据和逻辑**
- 文件: `ruoyi-ui/src/views/loanPricing/workflow/components/BargainingPoolDisplay.vue`
- 操作:
- 添加 `isEditing` 状态变量
- 添加 `tempExecuteRate` 临时输入值
- 添加 `handleEdit` 方法进入编辑模式
- 添加 `handleSubmit` 方法调用 API 并处理响应
- 添加 `handleCancel` 方法取消编辑
- 添加输入验证(数字格式、范围检查)
- 验证: 逻辑实现完整
5. **更新议价池组件 - API 调用**
- 文件: `ruoyi-ui/src/views/loanPricing/workflow/components/BargainingPoolDisplay.vue`
- 操作: 引入 `setExecuteRate` API 方法
- 验证: 引入成功
6. **更新详情页面 - 传递 Props**
- 文件: `ruoyi-ui/src/views/loanPricing/workflow/detail.vue`
- 操作: 在 BargainingPoolDisplay 组件上传递:
- `:execute-rate="workflowDetail.executeRate"`
- `:serial-num="workflowDetail.serialNum"`
- `@execute-rate-updated="handleExecuteRateUpdated"`
- 验证: props 传递正确
7. **前端功能验证**
- 操作:
- 启动前端服务
- 打开流程详情页面
- 测试首次设定执行利率
- 测试更新已设定的执行利率
- 测试输入验证
- 测试取消编辑
- 验证:
- 未设定时显示"-"
- 已设定时显示当前值
- 点击编辑按钮进入编辑模式
- 输入框显示当前值
- 提交成功后显示新值并显示成功提示
- 取消编辑恢复显示模式
- 输入非法值时显示错误提示
## 依赖关系
- 任务 1 必须首先执行API 方法)
- 任务 2-5 依次执行Props -> UI -> 数据逻辑 -> API 调用)
- 任务 6 依赖任务 2
- 任务 7 在所有代码任务完成后执行
## 验收标准
- [x] API 方法 `setExecuteRate` 添加成功
- [x] 议价池组件添加 `executeRate``serialNum` props
- [x] 议价池组件显示执行利率行
- [x] 未设定时显示"-"
- [x] 已设定时显示当前值
- [x] 编辑按钮切换到编辑模式
- [x] 输入框显示当前值
- [x] 提交按钮调用 API 成功
- [x] 提交成功后更新显示并显示成功提示
- [x] 取消按钮恢复显示模式
- [x] 输入验证正确工作
- [x] 详情页面正确传递 props