💎 充值订单
查看所有用户支付订单和订阅记录,支持筛选、搜索、导出CSV。
页面结构
- 顶部按钮:刷新 / 导出CSV
- 筛选栏:状态下拉(全部/已完成/待处理/已退款)+ 时间范围
- 搜索栏:按用户昵称/订单号/套餐名搜索(300ms防抖,本地过滤)
- 统计卡片:总收入 / 已完成数 / 待处理数 / 已退款数
- 订单表格:用户 / 订单号 / 套餐 / 金额 / 第三方ID / 状态 / 创建时间
- 表格底部:已完成订单合计金额
触发时机详解
1. 页面加载 → GET /api/admin/payments
触发条件:进入充值订单页面时,一次性加载所有订单(不分页)
GET
/api/admin/payments
✅ 页面加载时触发;点击刷新按钮时重新请求
响应:
{
"payments": [{
"id": "string",
"user_id": "string",
"user_nickname": "string",
"order_id": "string",
"plan_name": "string",
"amount": 99.00,
"status": "completed|pending|refunded",
"third_party_tx_id": "string",
"created_at": "ISO8601"
}],
"stats": {
"total": 5000.00,
"completed": 45,
"pending": 3,
"refunded": 2
}
}
2. 修改状态筛选 → 本地过滤(不发请求)
触发条件:修改状态下拉 → 立即更新本地 filteredPayments(不回发请求)
3. 修改时间范围 → 本地过滤(不发请求)
触发条件:修改开始/结束时间 → 立即更新本地 filteredPayments(不回发请求)
4. 搜索框输入 → 本地过滤(不发请求)
触发条件:搜索框输入 → 300ms 防抖后本地过滤
过滤字段:user_nickname / order_id / plan_name
过滤字段:user_nickname / order_id / plan_name
5. 点击「刷新」
触发条件:点击刷新按钮 → 重新请求 GET /api/admin/payments
6. 导出 CSV → 本地生成(无需后端)
触发条件:点击导出CSV按钮 → 纯前端 JS 根据筛选后本地数据生成 CSV 下载
包含字段:用户 / 订单号 / 套餐 / 金额 / 第三方ID / 状态 / 创建时间
包含字段:用户 / 订单号 / 套餐 / 金额 / 第三方ID / 状态 / 创建时间