💰 账单管理

账单列表展示、筛选、详情查看、成员管理、导出 CSV。

页面结构

  • 顶部:账单总数 + 刷新按钮
  • 筛选栏:创建时间范围 + 所有者筛选 + 共享成员筛选
  • 账单表格:账单名称 / 所有者昵称 / 成员数 / 交易数 / 创建时间
  • 行操作:点击账单行任意位置 → 进入详情页(GET /bills/:billId)

触发时机详解

1. 页面加载 → GET /api/admin/bills

触发条件:进入账单管理页面 / 刷新按钮 / 筛选条件变化
GET /api/admin/bills
✅ 页面加载时触发,筛选条件变化后自动重新请求
参数类型必填说明
start_datestring选填创建时间起始(YYYY-MM-DD)
end_datestring选填创建时间截止(YYYY-MM-DD)
owner_idstring选填账单所有者用户ID
shared_withstring选填共享成员用户ID(返回包含此成员的账单)

响应:

[{
  "id": "string",
  "name": "string",
  "owner_id": "string",
  "owner_nickname": "string",
  "member_count": 3,
  "tx_count": 45,
  "created_at": "ISO8601"
}]

2. 点击账单名称 → GET /api/admin/bills/:billId

触发条件:点击列表中的账单名称,进入账单详情页(通常是新页面/路由跳转)
GET /api/admin/bills/:billId
✅ 点击账单行任意位置触发(路由跳转)

响应:

{
  "id": "string",
  "name": "string",
  "owner_id": "string",
  "owner_nickname": "string",
  "created_at": "ISO8601",
  "members": [{
    "user_id": "string",
    "role": "owner|member",
    "nickname": "string"
  }]
}

3. 点击「刷新」按钮

触发条件:点击刷新按钮 → 重新调用 GET /api/admin/bills(保留当前筛选状态)

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

触发条件:点击导出按钮 → 纯前端 JS 根据筛选后本地数据生成 CSV 文件并触发下载