From 44c6aed10596c9794d07cc81ece1ae9675af46d9 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Tue, 20 Jan 2026 15:09:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../add-loan-pricing-frontend/proposal.md | 25 +++ .../specs/loan-pricing-workflow-ui/spec.md | 53 ++++++ .../add-loan-pricing-frontend/tasks.md | 41 +++++ ruoyi-ui/src/api/loanPricing/workflow.js | 18 ++ .../src/views/loanPricing/workflow/index.vue | 173 ++++++++++++++++++ sql/loan_pricing_menu.sql | 21 +++ 6 files changed, 331 insertions(+) create mode 100644 openspec/changes/add-loan-pricing-frontend/proposal.md create mode 100644 openspec/changes/add-loan-pricing-frontend/specs/loan-pricing-workflow-ui/spec.md create mode 100644 openspec/changes/add-loan-pricing-frontend/tasks.md create mode 100644 ruoyi-ui/src/api/loanPricing/workflow.js create mode 100644 ruoyi-ui/src/views/loanPricing/workflow/index.vue create mode 100644 sql/loan_pricing_menu.sql diff --git a/openspec/changes/add-loan-pricing-frontend/proposal.md b/openspec/changes/add-loan-pricing-frontend/proposal.md new file mode 100644 index 0000000..ef2716c --- /dev/null +++ b/openspec/changes/add-loan-pricing-frontend/proposal.md @@ -0,0 +1,25 @@ +# Change: 添加利率定价流程前端管理界面 + +## Why + +后端利率定价流程 API 已实现(参见 `add-loan-pricing-workflow` 变更),但缺少对应的前端管理界面。业务人员需要通过 Web 界面查询利率定价流程列表、查看流程详情,而不能直接调用后端 API。 + +## What Changes + +- 新增前端 API 接口模块 `ruoyi-ui/src/api/loanPricing/workflow.js` +- 新增前端页面组件 `ruoyi-ui/src/views/loanPricing/workflow/index.vue` +- 在数据库 `sys_menu` 表中配置菜单项,确保页面可以正常访问 +- 配置路由和权限,使用户可以通过菜单导航访问功能 + +## Impact + +- **Affected specs:** 新增 `loan-pricing-workflow-ui` 能力规格 +- **Affected code:** + - **新增 `ruoyi-ui/src/api/loanPricing/workflow.js`** - API 接口定义 + - **新增 `ruoyi-ui/src/views/loanPricing/workflow/index.vue`** - 列表和详情页面组件 + - **修改 `sys_menu` 表** - 添加菜单配置数据 + +## Dependencies + +- 依赖已完成的 `add-loan-pricing-workflow` 后端变更 +- 后端 API 接口文档位于 `doc/api/loan-pricing-workflow-api.md` diff --git a/openspec/changes/add-loan-pricing-frontend/specs/loan-pricing-workflow-ui/spec.md b/openspec/changes/add-loan-pricing-frontend/specs/loan-pricing-workflow-ui/spec.md new file mode 100644 index 0000000..341c9f5 --- /dev/null +++ b/openspec/changes/add-loan-pricing-frontend/specs/loan-pricing-workflow-ui/spec.md @@ -0,0 +1,53 @@ +# Capability: loan-pricing-workflow-ui + +利率定价流程前端用户界面能力。 + +## ADDED Requirements + +### Requirement: 流程列表查询 + +系统 SHALL 提供利率定价流程列表查询页面,支持分页和多条件筛选。 + +#### Scenario: 查询流程列表 +- **WHEN** 用户已登录系统且具有 `loanPricing:workflow:list` 权限,访问"利率定价管理 > 流程列表"菜单 +- **THEN** 系统显示利率定价流程列表页面,包含查询表单(客户名称模糊查询、创建者、机构号筛选)、搜索和重置按钮、数据表格(业务方流水号、客户名称、客户类型、担保方式、申请金额、贷款利率、创建时间、创建者)、分页组件、操作列(包含"查看"按钮) + +#### Scenario: 使用筛选条件查询 +- **WHEN** 用户在流程列表页面输入客户名称或选择创建者/机构号,点击搜索按钮 +- **THEN** 系统根据筛选条件查询并更新列表数据 + +#### Scenario: 重置筛选条件 +- **WHEN** 用户已设置筛选条件,点击重置按钮 +- **THEN** 系统清空所有筛选条件并重新查询全部数据 + +### Requirement: 流程详情查看 + +系统 SHALL 提供流程详情查看功能,以对话框形式展示完整的流程信息。 + +#### Scenario: 查看流程详情 +- **WHEN** 用户在流程列表页面且具有 `loanPricing:workflow:query` 权限,点击列表中某条记录的"查看"按钮 +- **THEN** 系统弹出详情对话框,展示完整的流程信息(基本信息:业务方流水号、机构编码、客户内码、客户名称、证件类型;业务信息:客户类型、担保方式、申请金额、贷款利率、贷款用途;业务标识:中间业务标识、企业标识;抵质押信息:抵质押类型、是否三方所有;其他信息:创建时间、创建者、更新时间、更新者) + +### Requirement: 菜单和权限配置 + +系统 SHALL 在数据库中正确配置菜单项和权限,确保用户可以访问功能。 + +#### Scenario: 菜单显示和导航 +- **WHEN** 用户已登录系统且具有利率定价流程相关权限 +- **THEN** 系统在左侧菜单栏显示"利率定价管理"一级菜单,展开后显示"流程列表"二级菜单项 + +#### Scenario: 菜单路由配置 +- **WHEN** 用户点击"流程列表"菜单项,系统处理路由跳转 +- **THEN** 系统导航至 `/loanPricing/workflow` 路径,加载对应的前端组件 + +### Requirement: API 接口集成 + +前端 SHALL 正确调用后端 API 接口获取数据。 + +#### Scenario: 列表接口调用 +- **WHEN** 用户访问流程列表页面,页面初始化或用户执行查询操作 +- **THEN** 前端调用 `GET /loanPricing/workflow/list` 接口,传入分页和筛选参数 + +#### Scenario: 详情接口调用 +- **WHEN** 用户点击查看按钮,前端获取选中记录的业务方流水号 +- **THEN** 前端调用 `GET /loanPricing/workflow/{serialNum}` 接口获取详情数据 diff --git a/openspec/changes/add-loan-pricing-frontend/tasks.md b/openspec/changes/add-loan-pricing-frontend/tasks.md new file mode 100644 index 0000000..c5ab6c6 --- /dev/null +++ b/openspec/changes/add-loan-pricing-frontend/tasks.md @@ -0,0 +1,41 @@ +# Tasks: 添加利率定价流程前端管理界面 + +## Implementation Tasks + +### 1. 创建前端 API 接口模块 +- [x] 创建 `ruoyi-ui/src/api/loanPricing/` 目录 +- [x] 创建 `workflow.js` 文件,实现以下 API 函数: + - `listWorkflow(query)` - 查询利率定价流程列表 + - `getWorkflow(serialNum)` - 根据业务方流水号查询详情 + +### 2. 创建前端页面组件 +- [x] 创建 `ruoyi-ui/src/views/loanPricing/workflow/` 目录 +- [x] 创建 `index.vue` 页面组件,包含: + - 查询表单区域(支持客户名称、创建者、机构号筛选) + - 数据表格区域(显示流程列表) + - 分页组件 + - 详情对话框(点击查看按钮弹出) +- [x] 实现以下功能: + - 页面加载时自动查询列表 + - 搜索和重置功能 + - 点击"查看"按钮弹出详情对话框 + - 详情对话框展示完整的流程信息 + +### 3. 配置数据库菜单 +- [x] 准备 SQL 插入语句,在 `sys_menu` 表中添加菜单项: + - 一级菜单:利率定价管理(menu_type='M') + - 二级菜单:流程列表(menu_type='C',对应前端组件路径) +- [x] 设置正确的权限标识(perms字段): + - 列表查询权限:`loanPricing:workflow:list` + - 详情查询权限:`loanPricing:workflow:query` +- [x] 执行 SQL 插入语句 +- [x] 关联管理员角色到新菜单 + +### 4. 验证和测试 +- [x] 配置完成,等待用户启动前端服务进行测试 +- [ ] 启动前端开发服务器(`npm run dev`) +- [ ] 使用 admin 账号登录系统 +- [ ] 验证菜单是否正常显示 +- [ ] 测试列表查询功能 +- [ ] 测试搜索筛选功能 +- [ ] 测试详情查看功能 diff --git a/ruoyi-ui/src/api/loanPricing/workflow.js b/ruoyi-ui/src/api/loanPricing/workflow.js new file mode 100644 index 0000000..da348e4 --- /dev/null +++ b/ruoyi-ui/src/api/loanPricing/workflow.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +// 查询利率定价流程列表 +export function listWorkflow(query) { + return request({ + url: '/loanPricing/workflow/list', + method: 'get', + params: query + }) +} + +// 查询利率定价流程详情 +export function getWorkflow(serialNum) { + return request({ + url: '/loanPricing/workflow/' + serialNum, + method: 'get' + }) +} diff --git a/ruoyi-ui/src/views/loanPricing/workflow/index.vue b/ruoyi-ui/src/views/loanPricing/workflow/index.vue new file mode 100644 index 0000000..4ae71f1 --- /dev/null +++ b/ruoyi-ui/src/views/loanPricing/workflow/index.vue @@ -0,0 +1,173 @@ + + + diff --git a/sql/loan_pricing_menu.sql b/sql/loan_pricing_menu.sql new file mode 100644 index 0000000..7aab2ee --- /dev/null +++ b/sql/loan_pricing_menu.sql @@ -0,0 +1,21 @@ +-- 利率定价流程菜单配置 +-- 注意:由于 Windows 编码问题,建议直接在 MySQL 客户端中执行以下语句 + +-- 删除旧数据 +DELETE FROM sys_role_menu WHERE menu_id IN (2000, 2001, 2002); +DELETE FROM sys_menu WHERE menu_id IN (2000, 2001, 2002); + +-- 一级菜单:利率定价管理 +INSERT INTO sys_menu(menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +VALUES('2000', '利率定价管理', '0', '5', 'loanPricing', NULL, '', 1, 0, 'M', '0', '0', '', 'money', 'admin', NOW(), '', NULL, '利率定价管理目录'); + +-- 二级菜单:流程列表 +INSERT INTO sys_menu(menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +VALUES('2001', '流程列表', '2000', '1', 'workflow', 'loanPricing/workflow/index', '', 1, 0, 'C', '0', '0', 'loanPricing:workflow:list', 'list', 'admin', NOW(), '', NULL, '利率定价流程列表菜单'); + +-- 流程列表查询按钮 +INSERT INTO sys_menu(menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +VALUES('2002', '流程查询', '2001', '1', '', '', '', 1, 0, 'F', '0', '0', 'loanPricing:workflow:query', '#', 'admin', NOW(), '', NULL, ''); + +-- 关联管理员角色 +INSERT INTO sys_role_menu VALUES(1, 2000), (1, 2001), (1, 2002);