# 尾款凭证上传功能 — 前端缺少入口

**日期**: 2026-03-22
**页面**: 订单详情
**类型**: 前端功能缺失

---

## 问题

订单详情页没有"上传尾款凭证"的按钮，管理员无法记录线下收取的尾款。

## 后端接口（已就绪）

### 记录尾款（线下收取）
```
PUT /admin/order/{orderId}/record-balance
```

**请求体**：
```json
{
  "proofUrl": "https://xxx.oss.aliyuncs.com/proof/xxx.jpg",  // 选填：支付凭证图片URL
  "remark": "客户微信转账"                                      // 选填：备注
}
```

**前置条件**：订单状态为 `CONFIRMED`（已确认）或 `PENDING_DEPARTURE`（待出发）

**调用后效果**：
- 订单状态变为 `PENDING_DEPARTURE`（待出发）
- `balance_proof_url` 保存凭证图片
- 时间线记录"管理员确认收到尾款"

### 设置尾款支付方式
```
PUT /admin/order/{orderId}/balance-pay-method?balancePayMethod=OFFLINE
```
可选值：`ONLINE`（线上支付）/ `OFFLINE`（线下收取）

## 前端实现建议

### 显示时机
订单状态为 `CONFIRMED`（已确认）且 `paymentMode = DEPOSIT`（定金模式）时，在订单详情页显示"尾款"区域。

### UI 布局
```
┌─ 尾款信息 ──────────────────────────────┐
│ 尾款金额：¥8,950.00（总价 - 已付定金）      │
│ 支付方式：○ 线上支付  ● 线下收取            │
│                                         │
│ [上传凭证]  ← 点击上传图片（调文件服务）     │
│ 备注：[________________]                  │
│                                         │
│              [确认收到尾款]                │
└─────────────────────────────────────────┘
```

### 操作流程
1. 管理员选择"线下收取"
2. 上传凭证图片（调 `POST /admin/file/upload-token` 获取上传凭证 → 上传到 OSS → 拿到 URL）
3. 点击"确认收到尾款" → 调 `PUT /admin/order/{orderId}/record-balance`
4. 刷新订单详情

### 已有凭证回显
订单详情返回的 `balanceProofUrl` 字段如果有值，显示已上传的凭证图片。
