# 提现汇总 — 前端技术方案

> **依据：** 《提现汇总功能需求.md》v1.0、《提现汇总技术方案.md》v1.0  
> **前端规范：** `doc/前端设计/前端设计.md`  
> **范围：** 仅 **ruoyi-ui 平台端** **按店提现汇总列表**、**单店提现明细**（只读）；**不含** 提现审核、商家提交、账户维护。  
> **实现状态：** `index.vue`、`api/agri/finance/withdrawSummary.js` **已按 v1.0 落地**；待菜单配置及 `/agri/finance/withdrawSummary` 联调。

---

## 1. 技术栈与写法约定

| 项 | 说明 |
|----|------|
| 框架 | Vue 2 + Element UI |
| 请求 | `@/utils/request`（**无** `X-Shop-Id`；全平台） |
| 参考页面 | `agri/finance/fundOverview/index.vue`（汇总+抽屉）、`agri/finance/withdrawAudit/index.vue`（明细字段） |
| 布局 | 检索 `el-card` + `<br/>` + 汇总 `el-card` + `border` 表格 |
| 明细 | `el-drawer` width=72%；内嵌检索 + 表格 + 分页 |
| 图片 | 全局 `image-preview` |

---

## 2. 业务要点（前端需体现）

| 项 | 说明 |
|----|------|
| 只读 | **无** 审核、改状态/金额 |
| 已提现金额 | **提现完成** 单据金额合计 |
| 待审核金额 | **待审核** 单据金额合计 |
| 审核不通过 | **不计入** 汇总两列；**明细可见** |
| 无提现店 | 汇总 **仍展示**；金额为 **¥0.00** |
| 汇总检索 | **店铺名称** 模糊 |
| 明细检索 | **申请时间** + **提现状态**；固定 **shopId** |
| 明细字段 | 与 **提现审核 / 商家提现管理** 对齐（无提现编号列，非本期） |

---

## 3. 文件清单

| 类型 | 路径 | 说明 |
|------|------|------|
| 页面 | `ruoyi-ui/src/views/agri/finance/withdrawSummary/index.vue` | 汇总列表 + 明细抽屉 |
| API | `ruoyi-ui/src/api/agri/finance/withdrawSummary.js` | shops、details |

**组件 name（keep-alive）：** `AgriFinanceWithdrawSummary`

**不提供：** 汇总列排序、跳转提现审核、导出、提现编号列。

---

## 4. 菜单与路由

| 菜单名称 | 组件路径 | 路由 path（建议） | 权限标识 |
|----------|----------|-------------------|----------|
| 提现汇总 | `agri/finance/withdrawSummary/index` | `finance/withdrawSummary` | 见下表 |

**上级菜单：** 平台管理端 → **财务管理**

| 能力 | 权限 | 页面落点 |
|------|------|----------|
| 店铺汇总 | `agri:finance:withdrawSummary:summary` | 汇总列表 |
| 提现明细 | `agri:finance:withdrawSummary:detail` | 「查看提现明细」、抽屉内列表 |

---

## 5. 页面结构（与代码一致）

```text
提现汇总 index.vue
├── 检索区 search-card
│   ├── 店铺名称 shopName（模糊）
│   └── 搜索 / 重置
├── <br/>
├── 汇总列表 table-card
│   ├── el-table border
│   │   ├── 店铺名称（LOGO + 名称）
│   │   ├── 店铺状态
│   │   ├── 已提现金额 withdrawnAmount
│   │   ├── 待审核金额 pendingAuditAmount（>0 可高亮）
│   │   └── 操作：查看提现明细
│   └── pagination
└── 提现明细 el-drawer 72%
    ├── 申请时间 daterange
    ├── 提现状态 withdrawStatus
    ├── el-table：时间、店名、账号、金额、备注、状态、处理说明
    └── pagination
```

---

## 6. 店铺提现汇总

**GET** `/agri/finance/withdrawSummary/shops`

| Query | 说明 |
|-------|------|
| pageNum / pageSize | 分页 |
| shopName | 店铺名称模糊 |

**默认排序（后端）：** 待审核金额降序。

| 字段 | 说明 |
|------|------|
| shopId | 下钻明细 |
| shopName / shopAvatar | 店铺信息 |
| shopStatus / shopStatusText / deleted | 状态 |
| withdrawnAmount | 已提现金额 |
| pendingAuditAmount | 待审核金额 |

---

## 7. 提现明细

**GET** `/agri/finance/withdrawSummary/details`

| Query | 说明 |
|-------|------|
| shopId | **必填**（汇总行传入） |
| withdrawStatus | 空=全部；`1`/`2`/`3` |
| beginApplyTime / endApplyTime | `yyyy-MM-dd` |
| pageNum / pageSize | 分页 |

**重置：** 恢复该店全部明细（清空时间与状态筛选）。

---

## 8. API 封装

**模块：** `@/api/agri/finance/withdrawSummary.js`

| 方法 | HTTP | 路径 | 权限 |
|------|------|------|------|
| `listPlatformWithdrawSummaryShops` | GET | `/shops` | withdrawSummary:summary |
| `listPlatformWithdrawSummaryDetails` | GET | `/details` | withdrawSummary:detail |

---

## 9. 空状态与展示

| 场景 | 文案 |
|------|------|
| 汇总无店 | 「暂无店铺数据」 |
| 店名检索无结果 | 「未找到符合条件的店铺」 |
| 明细无记录 | 「暂无提现记录」 |
| 明细检索无结果 | 「未找到符合条件的提现记录」 |
| 金额为 0 | 「¥0.00」 |
| 待审核处理说明 | 「—」 |

---

## 10. 与兄弟模块边界（前端）

| 模块 | 关系 |
|------|------|
| **提现审核** | 审核写状态；本页只读；待审金额应与审核列表 SUM 一致 |
| **商家 · 提现管理** | 同 shopId 明细字段一致 |
| **资金概览** | 互补（余额/冻结 vs 已提现/待审） |

---

## 11. 联调检查清单

- [ ] 菜单挂载 `agri/finance/withdrawSummary/index`
- [ ] 从未提现店铺展示 ¥0.00
- [ ] 提交/审核后汇总列实时变化
- [ ] 驳回单不计入汇总两列、明细可见
- [ ] 明细与商家提现记录对账一致
- [ ] 权限 summary/detail 分权生效

---

## 12. 版本记录

| 版本 | 说明 |
|------|------|
| **v1.0** | 首版：按店汇总 + 单店明细抽屉 + API 封装 |

---

*文档版本：v1.0 · 依据《提现汇总功能需求.md》v1.0、《提现汇总技术方案.md》v1.0*
