💎 充值订单

查看所有用户支付订单和订阅记录,支持筛选、搜索、导出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

5. 点击「刷新」

触发条件:点击刷新按钮 → 重新请求 GET /api/admin/payments

6. 导出 CSV → 本地生成(无需后端)

触发条件:点击导出CSV按钮 → 纯前端 JS 根据筛选后本地数据生成 CSV 下载
包含字段:用户 / 订单号 / 套餐 / 金额 / 第三方ID / 状态 / 创建时间