diff --git a/openspec/changes/archive/2025-12-26-enhance-loan-audit-pages/proposal.md b/openspec/changes/archive/2025-12-26-enhance-loan-audit-pages/proposal.md new file mode 100644 index 0000000..f9d8077 --- /dev/null +++ b/openspec/changes/archive/2025-12-26-enhance-loan-audit-pages/proposal.md @@ -0,0 +1,71 @@ +# Change: 增强贷款审核相关页面功能 + +## Why + +当前贷款审核相关页面(银行端审核列表、用户端申请记录、商家端贷款协助、银行端审核详情)的模拟数据不够完善,缺少不同状态的展示,且用户端无法查看银行端受理人的联系方式,影响业务沟通效率。同时银行端审核详情页缺少征信信息和信用评估功能。商家端贷款协助页面需要优化信息展示逻辑和添加状态筛选功能。此外,各端之间的模拟数据需要保持一致,商家端的订单和商品数据应与用户端的商品信息一致,银行端审核详情需要展示用户在商城的消费订单信息。 + +## What Changes + +### 银行端审核列表页面(/pagesBank/audit/list) +- 优化模拟数据,确保包含所有贷款状态(SUBMITTED、ACCEPTED、INVESTIGATING、REPORTED、APPROVED、REJECTED、SIGNED、DISBURSED) +- 确保表格展示不同状态的申请记录 +- 添加状态筛选 Tab,可快速切换查看不同状态的申请记录 + +### 用户端助贷申请记录页面(/pages/me/loan-application-records) +- 在处理中状态的申请记录中添加银行端受理人信息 +- 显示受理人姓名和手机号码,方便用户联系业务处理人员 + +### 商家端贷款协助页面(/pagesMerchant/loan/assist) +- 优化模拟数据,确保包含不同状态的贷款申请 +- 确保商家端看到的贷款数据与银行端一致 +- 移除银行受理人信息卡片(src\pagesMerchant\loan\assist.vue:121-136) +- 申请进度及负责人信息:还没有执行的进度不显示负责人信息 +- 添加状态筛选 Tab,可快速切换查看不同状态的申请记录 +- 页面标题修改:将"贷款辅助材料"显示为"辅助贷款材料" + +### 银行端审核详情页面(/pagesBank/audit/detail) +- 添加征信信息查询功能(弹窗模拟远程查询征信信息),与平台信用评估功能保持一致 +- 添加平台信用评估分数展示,并注明免责声明:"仅供参考,不构成专业建议,实际应用请以权威数据为准。" +- 平台信用评估和征信查询功能完成后,刷新按钮应该隐藏 +- 状态标签显示中文状态文本(如"已拒绝"而非"rejected") +- 优化关联商家信息展示,使用用户端中的商家信息(包括商家ID、商家名称、logo等) +- 商家相关附件使用 src/static/fb 目录中的图片资源 +- **新增:添加用户在商城消费的订单信息展示,包括订单号、商品名称、购买数量、金额等** + +### 商家端贷款协助页面(/pagesMerchant/loan/assist)- 续 +- 显示申请进度及每个进度的负责人姓名和手机号码(仅已执行的进度显示负责人信息) + +### 商家端订单管理页面(/pagesMerchant/order/list) +- **新增:修改订单模拟数据,使其与用户端商品信息保持一致** +- 订单中的商品应使用用户端 mockGoodsList 中的商品数据(包括商品ID、商品名称、图片、价格等) +- 订单中的商家信息应与用户端商品中的 shopId 和 shopName 保持一致 + +### 商家端商品管理页面(/pagesMerchant/goods/list) +- **新增:修改商品模拟数据,使其与用户端商品信息保持一致** +- 商品数据应使用用户端 mockGoodsList 中的商品数据(包括商品ID、商品名称、图片、价格、库存、销量等) +- 商品分类应与用户端商品中的 categoryId 和 categoryName 保持一致 + +### 商家端全局文本修改 +- 商家端贷款协助页面标题"贷款辅助材料"修改为"辅助贷款材料" + +### 所有端模拟数据补充 +- 所有端添加"驳回要求补充资料"状态的模拟数据 + +## Impact + +### Affected Specs +- `specs/loan-audit` (新建能力) + +### Affected Code +- `src/pagesBank/audit/list.vue` - 银行端审核列表 +- `src/pagesBank/audit/detail.vue` - 银行端审核详情 +- `src/pages/me/loan-application-records.vue` - 用户端申请记录 +- `src/pagesMerchant/loan/assist.vue` - 商家端贷款协助 +- `src/pagesMerchant/order/list.vue` - 商家端订单管理 +- `src/pagesMerchant/goods/list.vue` - 商家端商品管理 +- `src/mock/loan-application.ts` - 贷款申请模拟数据 +- `src/pagesMerchant/mock/order.ts` - 商家端订单模拟数据 +- `src/pagesMerchant/mock/goods.ts` - 商家端商品模拟数据 +- `src/api/loan.ts` - 贷款相关API(可能需要扩展) +- `src/typings/loan.ts` - 贷款类型定义(可能需要扩展) +- `src/typings/mall.ts` - 商城类型定义(可能需要扩展) diff --git a/openspec/changes/archive/2025-12-26-enhance-loan-audit-pages/specs/loan-audit/spec.md b/openspec/changes/archive/2025-12-26-enhance-loan-audit-pages/specs/loan-audit/spec.md new file mode 100644 index 0000000..3bc99e8 --- /dev/null +++ b/openspec/changes/archive/2025-12-26-enhance-loan-audit-pages/specs/loan-audit/spec.md @@ -0,0 +1,209 @@ +## ADDED Requirements + +### Requirement: 银行端审核列表多状态展示 + +银行端审核列表页面 SHALL 显示包含所有贷款状态的申请记录,包括:SUBMITTED(新申请)、ACCEPTED(已受理)、INVESTIGATING(调查中)、REPORTED(待审批)、APPROVED(已通过)、REJECTED(已拒绝)、SIGNED(已签约)、DISBURSED(已放款)、REJECTED_REQUIRE_SUPPLEMENT(驳回要求补充资料)。页面 SHALL 提供状态筛选 Tab,可快速切换查看不同状态的申请记录。 + +#### Scenario: 银行审核员查看审核列表 +- **WHEN** 银行审核员访问审核列表页面 +- **THEN** 页面 SHALL 显示不同状态的贷款申请记录 +- **AND** 每条记录 SHALL 显示状态标签,使用不同颜色区分状态 +- **AND** 页面 SHALL 提供状态筛选 Tab 组件 +- **AND** 用户可以通过 Tab 切换查看特定状态的申请 +- **AND** 状态标签 SHALL 显示中文状态文本(如"已拒绝"而非"rejected") + +#### Scenario: 银行审核员使用状态筛选 Tab +- **WHEN** 银行审核员点击状态筛选 Tab +- **THEN** 页面 SHALL 过滤显示对应状态的申请记录 +- **AND** Tab SHALL 高亮显示当前选中的状态 +- **AND** 切换 Tab SHALL 不影响其他筛选条件 + +#### Scenario: 银行审核员查看驳回要求补充资料状态 +- **WHEN** 银行审核员查看审核列表中的"驳回要求补充资料"状态 +- **THEN** 状态标签 SHALL 正确显示该状态 +- **AND** 状态标签 SHALL 使用正确的样式和颜色 + +### Requirement: 用户端显示银行受理人信息 + +用户端助贷申请记录页面 SHALL 在处理中状态的申请记录中显示银行端受理人的姓名和手机号码,方便用户联系业务处理人员。 + +#### Scenario: 用户查看处理中的贷款申请 +- **WHEN** 用户查看状态为"处理中"的贷款申请记录 +- **THEN** 页面 SHALL 显示银行受理人的姓名和手机号码 +- **AND** 用户可以点击手机号码直接拨打联系 + +#### Scenario: 用户查看非处理中的贷款申请 +- **WHEN** 用户查看状态为"已完成"或"待提交"的贷款申请记录 +- **THEN** 页面 SHALL 不显示银行受理人信息 + +#### Scenario: 用户查看驳回要求补充资料的贷款申请 +- **WHEN** 用户查看状态为"驳回要求补充资料"的贷款申请记录 +- **THEN** 页面 SHALL 显示该状态 +- **AND** 状态标签 SHALL 使用正确的样式和颜色 + +### Requirement: 商家端贷款协助页面展示 + +商家端贷款协助页面 SHALL 显示不同状态的贷款申请,数据 SHALL 与银行端保持一致。页面 SHALL 提供状态筛选 Tab,可快速切换查看不同状态的申请记录。页面标题 SHALL 显示为"辅助贷款材料"。 + +#### Scenario: 商家查看贷款协助列表 +- **WHEN** 商家查看贷款协助列表 +- **THEN** 列表 SHALL 包含不同状态的贷款申请 +- **AND** 数据 SHALL 与银行端审核列表保持一致 +- **AND** 页面标题 SHALL 显示为"辅助贷款材料" + +#### Scenario: 商家使用状态筛选 Tab +- **WHEN** 商家点击状态筛选 Tab +- **THEN** 页面 SHALL 过滤显示对应状态的申请记录 +- **AND** Tab SHALL 高亮显示当前选中的状态 +- **AND** 切换 Tab SHALL 不影响其他筛选条件 + +#### Scenario: 商家查看驳回要求补充资料的贷款申请 +- **WHEN** 商家查看状态为"驳回要求补充资料"的贷款申请记录 +- **THEN** 页面 SHALL 显示该状态 +- **AND** 状态标签 SHALL 使用正确的样式和颜色 + +### Requirement: 商家端显示申请进度及负责人信息 + +商家端贷款协助页面 SHALL 显示申请进度。已执行的进度 SHALL 显示负责人姓名和手机号码,未执行的进度 SHALL 不显示负责人信息。 + +#### Scenario: 商家查看贷款申请进度 +- **WHEN** 商家查看贷款协助页面 +- **THEN** 页面 SHALL 显示申请进度列表 +- **AND** 已执行的进度 SHALL 显示负责人姓名和手机号码 +- **AND** 未执行的进度 SHALL 不显示负责人信息 +- **AND** 商家可以点击已执行进度的手机号码直接拨打联系 + +#### Scenario: 商家查看未执行的进度 +- **WHEN** 商家查看贷款申请进度中的未执行进度项 +- **THEN** 进度项 SHALL 不显示负责人姓名和手机号码 +- **AND** 进度项 SHALL 显示进度步骤名称和时间(如果有) + +### Requirement: 银行端审核详情征信查询 + +银行端审核详情页面 SHALL 提供征信信息查询功能,通过弹窗模拟远程查询征信信息,与平台信用评估功能保持一致。 + +#### Scenario: 银行审核员查询征信信息 +- **WHEN** 银行审核员点击"查询征信"按钮 +- **THEN** 系统 SHALL 弹出征信信息查询弹窗 +- **AND** 弹窗 SHALL 显示模拟的征信查询结果 +- **AND** 弹窗 SHALL 包含加载状态提示 +- **AND** 查询完成后,刷新按钮 SHALL 隐藏 + +#### Scenario: 银行审核员查看征信查询状态 +- **WHEN** 征信信息查询已完成 +- **THEN** 刷新按钮 SHALL 不再显示 +- **AND** 页面 SHALL 显示查询结果 + +### Requirement: 银行端审核详情信用评估分数 + +银行端审核详情页面 SHALL 显示平台信用评估分数,并附带免责声明:"仅供参考,不构成专业建议,实际应用请以权威数据为准。" + +#### Scenario: 银行审核员查看信用评估分数 +- **WHEN** 银行审核员查看贷款审核详情 +- **THEN** 页面 SHALL 显示平台信用评估分数 +- **AND** 页面 SHALL 显示免责声明:"仅供参考,不构成专业建议,实际应用请以权威数据为准。" +- **AND** 免责声明 SHALL 使用醒目的样式展示 + +#### Scenario: 银行审核员刷新信用评估分数 +- **WHEN** 银行审核员点击刷新按钮获取信用评估分数 +- **THEN** 系统 SHALL 显示加载状态 +- **AND** 评估完成后,刷新按钮 SHALL 隐藏 +- **AND** 页面 SHALL 显示评估分数 + +### Requirement: 银行端审核详情状态中文显示 + +银行端审核详情页面 SHALL 显示中文状态文本,而非英文状态代码。 + +#### Scenario: 银行审核员查看贷款状态 +- **WHEN** 银行审核员查看贷款审核详情 +- **THEN** 状态标签 SHALL 显示中文状态文本(如"已拒绝"而非"rejected") +- **AND** 所有状态 SHALL 使用统一的中文翻译 + +### Requirement: 银行端审核详情关联商家信息 + +银行端审核详情页面 SHALL 显示关联商家信息,商家相关附件 SHALL 使用 src/static/fb 目录中的图片资源。商家信息 SHALL 与用户端商品数据保持一致。 + +#### Scenario: 银行审核员查看关联商家信息 +- **WHEN** 银行审核员查看贷款审核详情 +- **THEN** 页面 SHALL 显示关联商家列表 +- **AND** 每个商家 SHALL 显示商家名称、logo、最后交易时间 +- **AND** 商家相关附件 SHALL 使用 src/static/fb 目录中的图片资源 +- **AND** 商家信息 SHALL 与用户端商品数据中的商家信息一致 + +#### Scenario: 银行审核员预览商家附件 +- **WHEN** 银行审核员点击商家附件图片 +- **THEN** 系统 SHALL 打开图片预览功能 + +### Requirement: 银行端审核详情用户订单信息 + +银行端审核详情页面 SHALL 显示用户在商城的消费订单信息,包括订单号、商品名称、购买数量、金额等。 + +#### Scenario: 银行审核员查看用户订单信息 +- **WHEN** 银行审核员查看贷款审核详情 +- **THEN** 页面 SHALL 显示用户的消费订单列表 +- **AND** 每条订单 SHALL 显示订单号、商品名称、购买数量、金额 +- **AND** 订单 SHALL 显示下单时间和订单状态 +- **AND** 订单中的商品信息 SHALL 与用户端商品数据一致 + +#### Scenario: 银行审核员查看订单详情 +- **WHEN** 银行审核员点击订单项 +- **THEN** 系统 SHALL 显示订单详细信息 +- **AND** 详细信息 SHALL 包含商品图片、规格、价格等 + +### Requirement: 商家端订单数据一致性 + +商家端订单管理页面的模拟数据 SHALL 与用户端商品信息保持一致。订单中的商品 SHALL 使用用户端 mockGoodsList 中的商品数据。 + +#### Scenario: 商家查看订单列表 +- **WHEN** 商家查看订单管理页面 +- **THEN** 订单列表 SHALL 显示订单信息 +- **AND** 订单中的商品 ID SHALL 与用户端商品 ID 一致 +- **AND** 订单中的商品名称、图片、价格 SHALL 与用户端商品数据一致 +- **AND** 订单中的商家信息 SHALL 与用户端商品中的 shopId 和 shopName 一致 + +#### Scenario: 商家查看订单详情 +- **WHEN** 商家查看订单详情 +- **THEN** 订单详情 SHALL 显示完整订单信息 +- **AND** 商品信息 SHALL 与用户端商品数据保持一致 + +### Requirement: 商家端商品数据一致性 + +商家端商品管理页面的模拟数据 SHALL 与用户端商品信息保持一致。商品数据 SHALL 使用用户端 mockGoodsList 中的商品数据。 + +#### Scenario: 商家查看商品列表 +- **WHEN** 商家查看商品管理页面 +- **THEN** 商品列表 SHALL 显示商品信息 +- **AND** 商品 ID、名称、图片、价格、库存、销量 SHALL 与用户端商品数据一致 +- **AND** 商品分类信息 SHALL 与用户端商品中的 categoryId 和 categoryName 一致 + +#### Scenario: 商家查看商品详情 +- **WHEN** 商家查看商品详情 +- **THEN** 商品详情 SHALL 显示完整商品信息 +- **AND** 商品信息 SHALL 与用户端商品数据保持一致 + +### Requirement: 商家端页面标题修改 + +商家端贷款协助页面标题 SHALL 显示为"辅助贷款材料"。 + +#### Scenario: 商家查看贷款协助页面 +- **WHEN** 商家访问贷款协助页面 +- **THEN** 页面标题 SHALL 显示"辅助贷款材料" + +### Requirement: 所有端驳回要求补充资料状态 + +所有端(银行端、用户端、商家端)的模拟数据 SHALL 包含"驳回要求补充资料"状态。 + +#### Scenario: 银行端查看驳回要求补充资料状态 +- **WHEN** 银行审核员查看审核列表 +- **THEN** 列表 SHALL 包含"驳回要求补充资料"状态的申请 +- **AND** 状态标签 SHALL 正确显示该状态 + +#### Scenario: 用户端查看驳回要求补充资料状态 +- **WHEN** 用户查看申请记录 +- **THEN** 列表 SHALL 包含"驳回要求补充资料"状态的申请 +- **AND** 状态标签 SHALL 正确显示该状态 + +#### Scenario: 商家端查看驳回要求补充资料状态 +- **WHEN** 商家查看贷款协助列表 +- **THEN** 列表 SHALL 包含"驳回要求补充资料"状态的申请 +- **AND** 状态标签 SHALL 正确显示该状态 diff --git a/openspec/changes/archive/2025-12-26-enhance-loan-audit-pages/tasks.md b/openspec/changes/archive/2025-12-26-enhance-loan-audit-pages/tasks.md new file mode 100644 index 0000000..a08df91 --- /dev/null +++ b/openspec/changes/archive/2025-12-26-enhance-loan-audit-pages/tasks.md @@ -0,0 +1,114 @@ +## 1. 数据模型扩展 + +- [x] 1.1 扩展 `LoanApplication` 类型定义,添加银行受理人信息字段(handlerName、handlerPhone) +- [x] 1.2 扩展 `LoanApplicationRecord` 类型定义,添加银行受理人信息字段 +- [x] 1.3 扩展商家端贷款列表项类型,添加银行受理人信息字段 +- [x] 1.4 扩展 `LoanApplication` 类型定义,添加用户订单信息字段(userOrders) +- [x] 1.5 扩展商家端订单类型定义,确保与用户端商品信息一致 + +## 2. 模拟数据优化 + +- [x] 2.1 优化银行端审核列表模拟数据,确保包含所有贷款状态 +- [x] 2.2 优化用户端申请记录模拟数据,为处理中状态添加银行受理人信息 +- [x] 2.3 优化商家端贷款协助模拟数据,确保包含不同状态和银行受理人信息 +- [x] 2.4 添加征信信息模拟数据 +- [x] 2.5 添加信用评估分数模拟数据 +- [x] 2.6 添加用户商城消费订单模拟数据到贷款申请详情 +- [x] 2.7 修改商家端订单模拟数据,使用用户端商品信息(mockGoodsList) +- [x] 2.8 修改商家端商品模拟数据,使用用户端商品信息(mockGoodsList) + +## 3. 银行端审核列表页面(/pagesBank/audit/list) + +- [x] 3.1 更新模拟数据,确保包含所有贷款状态 +- [x] 3.2 验证列表页面能正确显示不同状态的申请记录 +- [x] 3.3 验证状态标签颜色和文本显示正确 +- [x] 3.4 添加状态筛选 Tab 组件,支持快速切换查看不同状态的申请记录 +- [x] 3.5 实现 Tab 切换逻辑,根据选中状态过滤显示的申请记录 +- [x] 3.6 验证 Tab 切换功能正常工作 + +## 4. 用户端申请记录页面(/pages/me/loan-application-records) + +- [x] 4.1 在处理中状态的申请记录卡片中添加银行受理人信息展示区域 +- [x] 4.2 实现受理人姓名和手机号码的显示 +- [x] 4.3 实现手机号码点击拨打功能 +- [x] 4.4 确保非处理中状态不显示受理人信息 +- [x] 4.5 在详情弹窗中也添加银行受理人信息展示 + +## 5. 商家端贷款协助页面(/pagesMerchant/loan/assist) + +- [x] 5.1 更新模拟数据,确保包含不同状态的贷款申请 +- [x] 5.2 确保商家端数据与银行端保持一致 +- [x] 5.3 移除银行受理人信息卡片(已无此卡片) +- [x] 5.4 显示申请进度及每个进度的负责人姓名和手机号码(仅已执行的进度显示) +- [x] 5.5 修改页面标题,将"贷款辅助材料"显示为"辅助贷款材料" +- [x] 5.6 添加状态筛选 Tab 组件,支持快速切换查看不同状态的申请记录 +- [x] 5.7 实现 Tab 切换逻辑,根据选中状态过滤显示的申请记录 +- [x] 5.8 验证 Tab 切换功能正常工作 +- [x] 5.9 验证未执行的进度不显示负责人信息 + +## 6. 银行端审核详情页面(/pagesBank/audit/detail) + +- [x] 6.1 添加"查询征信"按钮 +- [x] 6.2 实现征信查询弹窗组件 +- [x] 6.3 实现征信信息模拟查询功能(包含加载状态) +- [x] 6.4 添加平台信用评估分数展示区域 +- [x] 6.5 添加免责声明:"仅供参考,不构成专业建议,实际应用请以权威数据为准。" +- [x] 6.6 优化关联商家信息展示 +- [x] 6.7 更新商家附件图片路径,使用 src/static/fb 目录中的资源 +- [x] 6.8 实现平台信用评估和征信查询功能完成后隐藏刷新按钮 +- [x] 6.9 修改状态标签显示中文状态文本(如"已拒绝"而非"rejected") +- [x] 6.10 优化查询征信功能,使其与平台信用评估功能保持一致 +- [x] 6.11 添加用户商城消费订单信息展示区域 +- [x] 6.12 实现订单列表展示(订单号、商品名称、数量、金额等) +- [x] 6.13 验证订单信息正确显示 + +## 7. 商家端订单管理页面(/pagesMerchant/order/list) + +- [x] 7.1 修改订单模拟数据,使用用户端商品信息(mockGoodsList) +- [x] 7.2 确保订单中的商品ID与用户端商品ID一致 +- [x] 7.3 确保订单中的商品名称、图片、价格与用户端商品一致 +- [x] 7.4 验证订单列表正确显示商品信息 + +## 8. 商家端商品管理页面(/pagesMerchant/goods/list) + +- [x] 8.1 修改商品模拟数据,使用用户端商品信息(mockGoodsList) +- [x] 8.2 确保商品ID、名称、图片、价格、库存、销量与用户端一致 +- [x] 8.3 确保商品分类信息与用户端一致 +- [x] 8.4 验证商品列表正确显示 + +## 9. 商家端页面标题修改 + +- [x] 9.1 修改商家端贷款协助页面标题,将"贷款辅助材料"显示为"辅助贷款材料" +- [x] 9.2 验证修改后的标题显示正确 + +## 10. 所有端模拟数据补充 + +- [x] 10.1 添加"驳回要求补充资料"状态到模拟数据 +- [x] 10.2 确保银行端、用户端、商家端都包含该状态的模拟数据 +- [x] 10.3 验证各端能正确显示"驳回要求补充资料"状态 + +## 11. 静态资源准备 + +- [x] 11.1 确认 src/static/fb 目录存在 +- [x] 11.2 准备商家附件图片资源(如需要) + +## 12. 测试验证 + +- [x] 12.1 验证银行端审核列表显示所有状态 +- [x] 12.2 验证用户端处理中申请显示银行受理人信息 +- [x] 12.3 验证商家端已移除银行受理人信息卡片 +- [x] 12.4 验证商家端未执行的进度不显示负责人信息 +- [x] 12.5 验证银行端审核列表状态筛选 Tab 功能 +- [x] 12.6 验证商家端贷款协助页面状态筛选 Tab 功能 +- [x] 12.7 验证商家端页面标题显示为"辅助贷款材料" +- [x] 12.8 验证银行端审核详情征信查询功能 +- [x] 12.9 验证银行端审核详情信用评估分数显示 +- [x] 12.10 验证商家附件图片正确加载 +- [x] 12.11 验证用户端手机号码拨打功能 +- [x] 12.12 验证平台信用评估和征信查询完成后刷新按钮隐藏 +- [x] 12.13 验证状态标签显示中文状态文本 +- [x] 12.14 验证商家端显示申请进度及已执行进度的负责人信息 +- [x] 12.15 验证所有端包含"驳回要求补充资料"状态 +- [x] 12.16 验证银行端审核详情显示用户商城消费订单信息 +- [x] 12.17 验证商家端订单数据与用户端商品信息一致 +- [x] 12.18 验证商家端商品数据与用户端商品信息一致 diff --git a/src/api/loan.ts b/src/api/loan.ts index 741d9bc..c49396d 100644 --- a/src/api/loan.ts +++ b/src/api/loan.ts @@ -79,26 +79,57 @@ let mockDatabase: LoanApplication[] = [] export function getLoanApplicationList(params: any) { return new Promise<{ list: LoanApplication[], total: number }>((resolve) => { setTimeout(() => { - // 如果没有数据,初始化一些 Mock 数据 + // 如果没有数据,初始化一些 Mock 数据,包含所有状态 if (mockDatabase.length === 0) { mockDatabase = [ { - id: 'LA20251219001', + id: 'LA20251226001', userId: 'U001', userName: '张三', userPhone: '13800138000', amount: 50, term: 1, status: LoanStatus.SUBMITTED, - createTime: '2025-12-19 10:00:00', - updateTime: '2025-12-19 10:00:00', + createTime: '2025-12-26 09:00:00', + updateTime: '2025-12-26 09:00:00', + userOrders: [ + { + orderNo: 'O20251226001', + goodsName: '桂味新鲜荔枝现摘现发当季水果自家果园荔枝', + goodsImage: '/static/product/1/1.jpg', + quantity: 2, + amount: 40.00, + orderTime: '2025-12-20 10:30:00', + status: '已完成' + }, + { + orderNo: 'O20251226002', + goodsName: '老农田桂圆肉干无核新货8a龙眼肉干500g厚元肉干', + goodsImage: '/static/product/2/1.jpg', + quantity: 1, + amount: 50.00, + orderTime: '2025-12-15 14:20:00', + status: '已完成' + } + ], relatedMerchants: [ { merchantId: 'M001', merchantName: '乐高玩具旗舰店', lastTradeTime: '2025-12-01', selected: true, - assistStatus: 'pending' + assistStatus: 'pending', + materials: { + merchantId: 'M001', + merchantName: '乐高玩具旗舰店', + loanApplicationId: 'LA20251226001', + materials: [ + { type: 'invoice', url: '/static/fb/1.jpg', name: '发票', uploadTime: '2025-12-26 09:00:00' }, + { type: 'contract', url: '/static/fb/2.jpg', name: '合同', uploadTime: '2025-12-26 09:00:00' } + ], + submitTime: '2025-12-26 09:00:00', + status: 'submitted' + } } ], personalInfo: { @@ -121,13 +152,636 @@ export function getLoanApplicationList(params: any) { otherMaterials: [] }, processRecords: [] + }, + { + id: 'LA20251226002', + userId: 'U002', + userName: '李四', + userPhone: '13900139000', + amount: 80, + term: 2, + status: LoanStatus.ACCEPTED, + handlerName: '王经理', + handlerPhone: '13800138888', + createTime: '2025-12-25 14:30:00', + updateTime: '2025-12-25 15:00:00', + userOrders: [ + { + orderNo: 'O20251225001', + goodsName: '自然禾方化橘红陈皮无糖植物饮料350ml*9瓶整箱装', + goodsImage: '/static/product/3/1.jpg', + quantity: 2, + amount: 100.00, + orderTime: '2025-12-18 09:15:00', + status: '已完成' + }, + { + orderNo: 'O20251225002', + goodsName: '沉香原木摆件老料虫漏原材料天然刮香', + goodsImage: '/static/product/4/1.jpg', + quantity: 1, + amount: 152.00, + orderTime: '2025-12-10 16:45:00', + status: '已完成' + } + ], + relatedMerchants: [ + { + merchantId: 'M002', + merchantName: '迪士尼官方店', + lastTradeTime: '2025-11-20', + selected: true, + assistStatus: 'pending', + materials: { + merchantId: 'M002', + merchantName: '迪士尼官方店', + loanApplicationId: 'LA20251226002', + materials: [ + { type: 'invoice', url: '/static/fb/1.jpg', name: '发票', uploadTime: '2025-12-25 14:30:00' }, + { type: 'contract', url: '/static/fb/2.jpg', name: '合同', uploadTime: '2025-12-25 14:30:00' } + ], + submitTime: '2025-12-25 14:30:00', + status: 'submitted' + } + } + ], + personalInfo: { + name: '李四', + phone: '13900139000', + idCard: '440106199002021234', + region: ['广东省', '深圳市', '南山区'], + detailAddress: '科技园路2号' + }, + businessInfo: { + businessProject: '玩具批发', + businessTime: '5年', + annualIncome: 150, + hasDebt: 'no', + loanDemand: 80, + assets: ['house'] + }, + documentInfo: { + businessLicense: 'https://via.placeholder.com/150', + otherMaterials: [] + }, + processRecords: [] + }, + { + id: 'LA20251226003', + userId: 'U003', + userName: '王五', + userPhone: '13700137000', + amount: 30, + term: 1, + status: LoanStatus.INVESTIGATING, + handlerName: '刘经理', + handlerPhone: '13800139999', + createTime: '2025-12-24 10:00:00', + updateTime: '2025-12-25 16:00:00', + userOrders: [ + { + orderNo: 'O20251224001', + goodsName: '罗非鱼苗新吉富雄性淡水养殖特大鱼耐寒', + goodsImage: '/static/product/6/1.jpg', + quantity: 5, + amount: 50.00, + orderTime: '2025-12-12 11:20:00', + status: '已完成' + }, + { + orderNo: 'O20251224002', + goodsName: '三华李5斤新鲜李子孕妇水果现摘大果珍珠青李', + goodsImage: '/static/product/7/1.jpg', + quantity: 1, + amount: 30.00, + orderTime: '2025-12-08 15:30:00', + status: '已完成' + } + ], + relatedMerchants: [ + { + merchantId: 'M003', + merchantName: '泡泡玛特', + lastTradeTime: '2025-11-15', + selected: true, + assistStatus: 'submitted', + materials: { + merchantId: 'M003', + merchantName: '泡泡玛特', + loanApplicationId: 'LA20251226003', + materials: [ + { type: 'invoice', url: '/static/fb/1.jpg', name: '发票', uploadTime: '2025-12-26 10:00:00' }, + { type: 'contract', url: '/static/fb/2.jpg', name: '合同', uploadTime: '2025-12-26 10:00:00' } + ], + submitTime: '2025-12-26 10:00:00', + status: 'submitted' + } + } + ], + personalInfo: { + name: '王五', + phone: '13700137000', + idCard: '440106199003031234', + region: ['广东省', '广州市', '越秀区'], + detailAddress: '北京路3号' + }, + businessInfo: { + businessProject: '玩具零售', + businessTime: '2年', + annualIncome: 80, + hasDebt: 'yes', + debtAmount: 10, + loanDemand: 30, + assets: ['car'] + }, + documentInfo: { + businessLicense: 'https://via.placeholder.com/150', + otherMaterials: [] + }, + processRecords: [] + }, + { + id: 'LA20251226004', + userId: 'U004', + userName: '赵六', + userPhone: '13600136000', + amount: 100, + term: 3, + status: LoanStatus.REPORTED, + handlerName: '陈经理', + handlerPhone: '13800137777', + createTime: '2025-12-23 11:00:00', + updateTime: '2025-12-25 17:00:00', + userOrders: [ + { + orderNo: 'O20251223001', + goodsName: '茂名特产正宗黑豆干豆豉豉原味古法工艺散装', + goodsImage: '/static/product/10/1.jpg', + quantity: 3, + amount: 97.50, + orderTime: '2025-12-05 10:10:00', + status: '已完成' + }, + { + orderNo: 'O20251223002', + goodsName: '电白绿奇线香纯手工电白绿奇手工香电白绿奇楠老料', + goodsImage: '/static/product/9/1.jpg', + quantity: 2, + amount: 91.20, + orderTime: '2025-11-28 14:50:00', + status: '已完成' + } + ], + relatedMerchants: [ + { + merchantId: 'M004', + merchantName: '奥特曼官方玩具店', + lastTradeTime: '2025-11-10', + selected: true, + assistStatus: 'submitted', + materials: { + merchantId: 'M004', + merchantName: '奥特曼官方玩具店', + loanApplicationId: 'LA20251226004', + materials: [ + { type: 'invoice', url: '/static/fb/1.jpg', name: '发票', uploadTime: '2025-12-26 11:00:00' }, + { type: 'contract', url: '/static/fb/2.jpg', name: '合同', uploadTime: '2025-12-26 11:00:00' } + ], + submitTime: '2025-12-26 11:00:00', + status: 'submitted' + } + } + ], + personalInfo: { + name: '赵六', + phone: '13600136000', + idCard: '440106199004041234', + region: ['广东省', '珠海市', '香洲区'], + detailAddress: '情侣路4号' + }, + businessInfo: { + businessProject: '玩具连锁', + businessTime: '8年', + annualIncome: 200, + hasDebt: 'no', + loanDemand: 100, + assets: ['house', 'car', 'shop'] + }, + documentInfo: { + businessLicense: 'https://via.placeholder.com/150', + otherMaterials: [] + }, + processRecords: [] + }, + { + id: 'LA20251226005', + userId: 'U005', + userName: '孙七', + userPhone: '13500135000', + amount: 60, + term: 2, + status: LoanStatus.APPROVED, + handlerName: '周经理', + handlerPhone: '13800136666', + createTime: '2025-12-22 09:00:00', + updateTime: '2025-12-25 18:00:00', + userOrders: [ + { + orderNo: 'O20251222001', + goodsName: '茂名特产籺籺寿桃籺籺菠萝叶籺籺电白高州籺籺', + goodsImage: '/static/product/11/1.jpg', + quantity: 2, + amount: 30.00, + orderTime: '2025-12-01 09:25:00', + status: '已完成' + }, + { + orderNo: 'O20251222002', + goodsName: '凤球唛唛瑶柱鲍鱼汁290g/瓶海参即食捞饭', + goodsImage: '/static/product/12/1.jpg', + quantity: 1, + amount: 10.00, + orderTime: '2025-11-25 13:40:00', + status: '已完成' + } + ], + relatedMerchants: [ + { + merchantId: 'M005', + merchantName: '玩具反斗城', + lastTradeTime: '2025-11-05', + selected: true, + assistStatus: 'submitted', + materials: { + merchantId: 'M005', + merchantName: '玩具反斗城', + loanApplicationId: 'LA20251226005', + materials: [ + { type: 'invoice', url: '/static/fb/1.jpg', name: '发票', uploadTime: '2025-12-26 12:00:00' }, + { type: 'contract', url: '/static/fb/2.jpg', name: '合同', uploadTime: '2025-12-26 12:00:00' } + ], + submitTime: '2025-12-26 12:00:00', + status: 'submitted' + } + } + ], + personalInfo: { + name: '孙七', + phone: '13500135000', + idCard: '440106199005051234', + region: ['广东省', '广州市', '番禺区'], + detailAddress: '番禺大道5号' + }, + businessInfo: { + businessProject: '玩具批发', + businessTime: '6年', + annualIncome: 120, + hasDebt: 'no', + loanDemand: 60, + assets: ['house', 'shop'] + }, + documentInfo: { + businessLicense: 'https://via.placeholder.com/150', + otherMaterials: [] + }, + processRecords: [] + }, + { + id: 'LA20251226006', + userId: 'U006', + userName: '周八', + userPhone: '13400134000', + amount: 40, + term: 1, + status: LoanStatus.REJECTED, + handlerName: '吴经理', + handlerPhone: '13800135555', + createTime: '2025-12-21 14:00:00', + updateTime: '2025-12-24 10:00:00', + userOrders: [ + { + orderNo: 'O20251221001', + goodsName: '灰色西装套装女春秋高级感气质显瘦时尚通勤连衣', + goodsImage: '/static/product/14/1.jpg', + quantity: 1, + amount: 150.00, + orderTime: '2025-11-20 10:55:00', + status: '已完成' + } + ], + relatedMerchants: [ + { + merchantId: 'M006', + merchantName: 'KidsLand', + lastTradeTime: '2025-10-20', + selected: true, + assistStatus: 'pending', + materials: { + merchantId: 'M006', + merchantName: 'KidsLand', + loanApplicationId: 'LA20251226006', + materials: [ + { type: 'invoice', url: '/static/fb/1.jpg', name: '发票', uploadTime: '2025-12-26 13:00:00' }, + { type: 'contract', url: '/static/fb/2.jpg', name: '合同', uploadTime: '2025-12-26 13:00:00' } + ], + submitTime: '2025-12-26 13:00:00', + status: 'submitted' + } + } + ], + personalInfo: { + name: '周八', + phone: '13400134000', + idCard: '440106199006061234', + region: ['广东省', '广州市', '海珠区'], + detailAddress: '江南大道6号' + }, + businessInfo: { + businessProject: '玩具零售', + businessTime: '1年', + annualIncome: 50, + hasDebt: 'yes', + debtAmount: 20, + loanDemand: 40, + assets: [] + }, + documentInfo: { + businessLicense: 'https://via.placeholder.com/150', + otherMaterials: [] + }, + processRecords: [] + }, + { + id: 'LA20251226007', + userId: 'U007', + userName: '郑九', + userPhone: '13300133000', + amount: 70, + term: 2, + status: LoanStatus.SIGNED, + handlerName: '郑经理', + handlerPhone: '13800134444', + createTime: '2025-12-20 10:00:00', + updateTime: '2025-12-26 09:00:00', + userOrders: [ + { + orderNo: 'O20251220001', + goodsName: '竹编竹篮子高档手提中秋月饼包装礼盒端午节粽子', + goodsImage: '/static/product/17/1.jpg', + quantity: 2, + amount: 30.00, + orderTime: '2025-11-15 14:30:00', + status: '已完成' + }, + { + orderNo: 'O20251220002', + goodsName: '洗面奶专用清爽控油祛痘洁面乳去油去黑头', + goodsImage: '/static/product/18/1.jpg', + quantity: 1, + amount: 45.00, + orderTime: '2025-11-10 09:20:00', + status: '已完成' + } + ], + relatedMerchants: [ + { + merchantId: 'M001', + merchantName: '乐高玩具旗舰店', + lastTradeTime: '2025-12-01', + selected: true, + assistStatus: 'submitted', + materials: { + merchantId: 'M001', + merchantName: '乐高玩具旗舰店', + loanApplicationId: 'LA20251226007', + materials: [ + { type: 'invoice', url: '/static/fb/1.jpg', name: '发票', uploadTime: '2025-12-26 14:00:00' }, + { type: 'contract', url: '/static/fb/2.jpg', name: '合同', uploadTime: '2025-12-26 14:00:00' } + ], + submitTime: '2025-12-26 14:00:00', + status: 'submitted' + } + } + ], + personalInfo: { + name: '郑九', + phone: '13300133000', + idCard: '440106199007071234', + region: ['广东省', '广州市', '白云区'], + detailAddress: '白云大道7号' + }, + businessInfo: { + businessProject: '玩具零售', + businessTime: '4年', + annualIncome: 110, + hasDebt: 'no', + loanDemand: 70, + assets: ['house', 'car'] + }, + documentInfo: { + businessLicense: 'https://via.placeholder.com/150', + otherMaterials: [] + }, + processRecords: [] + }, + { + id: 'LA20251226008', + userId: 'U008', + userName: '王十', + userPhone: '13200132000', + amount: 90, + term: 3, + status: LoanStatus.DISBURSED, + handlerName: '冯经理', + handlerPhone: '13800133333', + createTime: '2025-12-19 11:00:00', + updateTime: '2025-12-26 10:00:00', + userOrders: [ + { + orderNo: 'O20251219001', + goodsName: '100寸防爆电视机4K高清智能网络平板', + goodsImage: '/static/product/13/1.jpg', + quantity: 1, + amount: 500.00, + orderTime: '2025-11-05 11:45:00', + status: '已完成' + }, + { + orderNo: 'O20251219002', + goodsName: '原创汉服改良交领刺绣织金妆花黑色马面裙女冬款', + goodsImage: '/static/product/15/1.jpg', + quantity: 1, + amount: 90.00, + orderTime: '2025-10-28 16:20:00', + status: '已完成' + } + ], + relatedMerchants: [ + { + merchantId: 'M002', + merchantName: '迪士尼官方店', + lastTradeTime: '2025-11-20', + selected: true, + assistStatus: 'submitted', + materials: { + merchantId: 'M002', + merchantName: '迪士尼官方店', + loanApplicationId: 'LA20251226008', + materials: [ + { type: 'invoice', url: '/static/fb/1.jpg', name: '发票', uploadTime: '2025-12-26 15:00:00' }, + { type: 'contract', url: '/static/fb/2.jpg', name: '合同', uploadTime: '2025-12-26 15:00:00' } + ], + submitTime: '2025-12-26 15:00:00', + status: 'submitted' + } + } + ], + personalInfo: { + name: '王十', + phone: '13200132000', + idCard: '440106199008081234', + region: ['广东省', '广州市', '荔湾区'], + detailAddress: '中山八路8号' + }, + businessInfo: { + businessProject: '玩具批发', + businessTime: '7年', + annualIncome: 180, + hasDebt: 'no', + loanDemand: 90, + assets: ['house', 'shop'] + }, + documentInfo: { + businessLicense: 'https://via.placeholder.com/150', + otherMaterials: [] + }, + processRecords: [] + }, + { + id: 'LA20251226009', + userId: 'U009', + userName: '钱十一', + userPhone: '13100131000', + amount: 45, + term: 1, + status: LoanStatus.PENDING_SUPPLEMENT, + handlerName: '吴经理', + handlerPhone: '13800132222', + createTime: '2025-12-18 13:00:00', + updateTime: '2025-12-26 16:00:00', + userOrders: [ + { + orderNo: 'O20251218001', + goodsName: '正宗化州拖罗饼金腿拖罗大饼广式月饼中秋特产', + goodsImage: '/static/product/8/1.jpg', + quantity: 1, + amount: 30.00, + orderTime: '2025-10-15 10:30:00', + status: '已完成' + }, + { + orderNo: 'O20251218002', + goodsName: '天然玉石玉雕龙船一帆风顺摆件家居装饰品', + goodsImage: '/static/product/16/1.jpg', + quantity: 1, + amount: 168.00, + orderTime: '2025-10-10 14:15:00', + status: '已完成' + } + ], + relatedMerchants: [ + { + merchantId: 'M003', + merchantName: '泡泡玛特', + lastTradeTime: '2025-11-15', + selected: true, + assistStatus: 'pending', + materials: { + merchantId: 'M003', + merchantName: '泡泡玛特', + loanApplicationId: 'LA20251226009', + materials: [ + { type: 'invoice', url: '/static/fb/1.jpg', name: '发票', uploadTime: '2025-12-26 16:00:00' }, + { type: 'contract', url: '/static/fb/2.jpg', name: '合同', uploadTime: '2025-12-26 16:00:00' } + ], + submitTime: '2025-12-26 16:00:00', + status: 'submitted' + } + } + ], + personalInfo: { + name: '钱十一', + phone: '13100131000', + idCard: '440106199009091234', + region: ['广东省', '广州市', '黄埔区'], + detailAddress: '黄埔大道9号' + }, + businessInfo: { + businessProject: '玩具零售', + businessTime: '1.5年', + annualIncome: 60, + hasDebt: 'yes', + debtAmount: 15, + loanDemand: 45, + assets: ['car'] + }, + documentInfo: { + businessLicense: 'https://via.placeholder.com/150', + otherMaterials: [] + }, + processRecords: [ + { + step: 'accept', + operator: '王经理', + operateTime: '2025-12-18 14:00:00', + result: 'pass' + }, + { + step: 'investigate', + operator: '刘经理', + operateTime: '2025-12-20 10:00:00', + result: 'pass', + opinion: '经营情况良好,但需要补充近3个月银行流水' + }, + { + step: 'report', + operator: '陈经理', + operateTime: '2025-12-26 16:00:00', + result: 'reject', + opinion: '资料不全,要求补充近3个月银行流水和纳税证明' + } + ] } ] } + // 根据参数过滤数据 + let filteredList = [...mockDatabase] + + console.log('getLoanApplicationList - params:', params) + console.log('getLoanApplicationList - mockDatabase length:', mockDatabase.length) + + // 按状态过滤 + if (params.status) { + console.log('按状态过滤:', params.status) + filteredList = filteredList.filter(item => item.status === params.status) + console.log('过滤后数量:', filteredList.length) + } + + // 按关键词过滤 + if (params.keyword) { + const keyword = params.keyword.toLowerCase() + filteredList = filteredList.filter(item => + item.userName.toLowerCase().includes(keyword) || + item.id.toLowerCase().includes(keyword) + ) + } + + console.log('最终返回数量:', filteredList.length) + resolve({ - list: mockDatabase, - total: mockDatabase.length + list: filteredList, + total: filteredList.length }) }, 500) }) @@ -191,15 +845,84 @@ export function getMerchantPendingAssistList() { return new Promise<{ list: any[] }>((resolve) => { setTimeout(() => { // 找到所有关联了当前商家的未处理申请 - // 这里简化逻辑,直接返回 Mock + // 这里简化逻辑,直接返回 Mock,包含不同状态 resolve({ list: [ { - loanId: 'LA20251219001', - userName: '张三', - applyTime: '2025-12-19 10:00:00', - amount: 50, - status: 'pending' + loanId: 'LA20251226002', + userName: '李四', + applyTime: '2025-12-25 14:30:00', + amount: 80, + status: 'accepted', + handlerName: '王经理', + handlerPhone: '13800138888', + // 申请进度及负责人信息 + progress: [ + { step: '提交申请', handlerName: '李四', handlerPhone: '13900139000', time: '2025-12-25 14:30:00', completed: true }, + { step: '银行受理', handlerName: '王经理', handlerPhone: '13800138888', time: '2025-12-25 15:00:00', completed: true }, + { step: '上门调查', handlerName: '刘经理', handlerPhone: '13800139999', time: '', completed: false }, + { step: '审批决策', handlerName: '陈经理', handlerPhone: '13800137777', time: '', completed: false } + ] + }, + { + loanId: 'LA20251226003', + userName: '王五', + applyTime: '2025-12-24 10:00:00', + amount: 30, + status: 'investigating', + handlerName: '刘经理', + handlerPhone: '13800139999', + progress: [ + { step: '提交申请', handlerName: '王五', handlerPhone: '13700137000', time: '2025-12-24 10:00:00', completed: true }, + { step: '银行受理', handlerName: '王经理', handlerPhone: '13800138888', time: '2025-12-24 11:00:00', completed: true }, + { step: '上门调查', handlerName: '刘经理', handlerPhone: '13800139999', time: '2025-12-25 16:00:00', completed: true }, + { step: '审批决策', handlerName: '陈经理', handlerPhone: '13800137777', time: '', completed: false } + ] + }, + { + loanId: 'LA20251226004', + userName: '赵六', + applyTime: '2025-12-23 11:00:00', + amount: 100, + status: 'reported', + handlerName: '陈经理', + handlerPhone: '13800137777', + progress: [ + { step: '提交申请', handlerName: '赵六', handlerPhone: '13600136000', time: '2025-12-23 11:00:00', completed: true }, + { step: '银行受理', handlerName: '王经理', handlerPhone: '13800138888', time: '2025-12-23 12:00:00', completed: true }, + { step: '上门调查', handlerName: '刘经理', handlerPhone: '13800139999', time: '2025-12-24 10:00:00', completed: true }, + { step: '审批决策', handlerName: '陈经理', handlerPhone: '13800137777', time: '2025-12-25 17:00:00', completed: true } + ] + }, + { + loanId: 'LA20251226005', + userName: '孙七', + applyTime: '2025-12-22 09:00:00', + amount: 60, + status: 'approved', + handlerName: '周经理', + handlerPhone: '13800136666', + progress: [ + { step: '提交申请', handlerName: '孙七', handlerPhone: '13500135000', time: '2025-12-22 09:00:00', completed: true }, + { step: '银行受理', handlerName: '王经理', handlerPhone: '13800138888', time: '2025-12-22 10:00:00', completed: true }, + { step: '上门调查', handlerName: '刘经理', handlerPhone: '13800139999', time: '2025-12-23 09:00:00', completed: true }, + { step: '审批决策', handlerName: '陈经理', handlerPhone: '13800137777', time: '2025-12-25 18:00:00', completed: true } + ] + }, + { + loanId: 'LA20251226009', + userName: '钱十一', + applyTime: '2025-12-18 13:00:00', + amount: 45, + status: 'pending_supplement', + handlerName: '吴经理', + handlerPhone: '13800132222', + progress: [ + { step: '提交申请', handlerName: '钱十一', handlerPhone: '13100131000', time: '2025-12-18 13:00:00', completed: true }, + { step: '银行受理', handlerName: '王经理', handlerPhone: '13800138888', time: '2025-12-18 14:00:00', completed: true }, + { step: '上门调查', handlerName: '刘经理', handlerPhone: '13800139999', time: '2025-12-20 10:00:00', completed: true }, + { step: '审批决策', handlerName: '吴经理', handlerPhone: '13800132222', time: '2025-12-26 16:00:00', completed: true } + ] } ] }) @@ -213,7 +936,7 @@ export function getMerchantPendingAssistList() { export function submitAssistMaterial(loanId: string, materials: any[]) { return new Promise((resolve) => { setTimeout(() => { - const item = mockDatabase.find(i => i.id === loanId) + const item = mockDatabase.find(i => i.id === loanId) // 简化:更新第一个匹配的商家状态 if (item && item.relatedMerchants.length > 0) { item.relatedMerchants[0].assistStatus = 'submitted' @@ -230,3 +953,82 @@ export function submitAssistMaterial(loanId: string, materials: any[]) { }, 800) }) } + +/** + * [银行端] 查询征信信息 + */ +export function queryCreditInfo(userId: string) { + return new Promise((resolve) => { + setTimeout(() => { + resolve({ + creditScore: 720, + creditLevel: '良好', + loanRecords: [ + { + bank: '工商银行', + amount: 30, + status: 'paid', + date: '2022-03-15' + }, + { + bank: '建设银行', + amount: 50, + status: 'normal', + date: '2023-06-20' + }, + { + bank: '农业银行', + amount: 20, + status: 'overdue', + date: '2021-11-10' + } + ], + overdueRecords: [ + { + amount: 20, + overdueDays: 15, + date: '2021-11-10' + } + ], + queryTime: new Date().toLocaleString() + }) + }, 1500) + }) +} + +/** + * [银行端] 获取信用评估分数 + */ +export function getCreditAssessment(userId: string) { + return new Promise((resolve) => { + setTimeout(() => { + resolve({ + score: 78, + level: '良好', + factors: [ + { + name: '收入稳定性', + score: 85, + description: '年收入稳定,无大额波动' + }, + { + name: '负债率', + score: 75, + description: '负债率适中,还款能力良好' + }, + { + name: '征信记录', + score: 70, + description: '存在少量逾期记录,需注意' + }, + { + name: '经营年限', + score: 82, + description: '经营年限较长,经验丰富' + } + ], + updateTime: new Date().toLocaleString() + }) + }, 800) + }) +} diff --git a/src/mock/loan-application.ts b/src/mock/loan-application.ts index c491f2f..1bf071e 100644 --- a/src/mock/loan-application.ts +++ b/src/mock/loan-application.ts @@ -24,6 +24,8 @@ export const mockLoanApplicationRecords: LoanApplicationRecord[] = [ type: "info", content: "您的申请正在风控部门审核中,预计还需要1-2个工作日完成评估" }, + handlerName: "王经理", + handlerPhone: "13800138888", actions: [ { code: "VIEW_DETAIL", @@ -104,6 +106,8 @@ export const mockLoanApplicationRecords: LoanApplicationRecord[] = [ type: "info", content: "您的申请已进入资料审核阶段,请耐心等待" }, + handlerName: "刘经理", + handlerPhone: "13800139999", actions: [ { code: "CANCEL", diff --git a/src/pages/me/loan-application-records.vue b/src/pages/me/loan-application-records.vue index 8c739a1..9485a3c 100644 --- a/src/pages/me/loan-application-records.vue +++ b/src/pages/me/loan-application-records.vue @@ -73,6 +73,13 @@ function handleActionClick(record: LoanApplicationRecord, action: any) { } } +// 拨打银行受理人电话 +function handleCallPhone(phone: string) { + uni.makePhoneCall({ + phoneNumber: phone + }) +} + // 获取状态颜色 function getStatusColor(status: LoanApplicationStatus) { switch (status) { @@ -185,10 +192,25 @@ function getButtonStyle(style: string) { + + + + + + 银行受理人 + {{ record.handlerName }} + + + {{ record.handlerPhone }} + + + + + - + + + 银行受理人 + + + + {{ selectedRecord.handlerName }} + + + + {{ selectedRecord.handlerPhone }} + + + + - - - {{ selectedRecord.alertInfo.content }} @@ -451,6 +488,58 @@ function getButtonStyle(style: string) { } } + .handler-section { + margin-bottom: 24rpx; + + .handler-info { + background: linear-gradient(135deg, #3B82F6 0%, #60A5FA 100%); + border-radius: 12rpx; + padding: 20rpx; + display: flex; + align-items: center; + gap: 16rpx; + + .handler-icon { + font-size: 48rpx; + color: #fff; + } + + .handler-details { + flex: 1; + display: flex; + flex-direction: column; + gap: 8rpx; + + .handler-label { + font-size: 22rpx; + color: rgba(255, 255, 255, 0.8); + } + + .handler-name { + font-size: 28rpx; + font-weight: 600; + color: #fff; + } + + .handler-phone-wrapper { + display: flex; + align-items: center; + gap: 8rpx; + + .handler-phone-icon { + font-size: 24rpx; + color: #fff; + } + + .handler-phone { + font-size: 26rpx; + color: #fff; + } + } + } + } + } + .actions-section { display: flex; justify-content: flex-end; @@ -612,6 +701,52 @@ function getButtonStyle(style: string) { } } + .handler-detail { + padding: 20rpx 0; + + .detail-label { + font-size: 28rpx; + color: #666; + margin-bottom: 20rpx; + display: block; + } + + .handler-detail-info { + background: linear-gradient(135deg, #3B82F6 0%, #60A5FA 100%); + border-radius: 12rpx; + padding: 20rpx; + display: flex; + flex-direction: column; + gap: 16rpx; + + .handler-detail-row { + display: flex; + align-items: center; + gap: 12rpx; + + .handler-detail-icon { + font-size: 32rpx; + color: #fff; + } + + .handler-detail-name { + font-size: 28rpx; + font-weight: 600; + color: #fff; + } + + &.handler-detail-phone { + cursor: pointer; + + .handler-detail-phone-number { + font-size: 26rpx; + color: #fff; + } + } + } + } + } + .alert-detail { padding: 20rpx 0; diff --git a/src/pagesBank/audit/detail.vue b/src/pagesBank/audit/detail.vue index 3cf6e5a..337ff10 100644 --- a/src/pagesBank/audit/detail.vue +++ b/src/pagesBank/audit/detail.vue @@ -1,5 +1,5 @@