💰 账单管理

账单列表展示、筛选、详情查看、成员管理、导出 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 文件并触发下载

💬 AI Prompt 管理

管理各账单成员的自定义 AI Prompt(Admin 后台独立页面,不属于用户侧功能)

1. 进入 Prompt 管理页面

路由:/bill-member-prompts(侧边栏「AI Prompt 管理」入口)
调用:GET /api/admin/bills → 获取账单列表(limit=500)

2. 选择账单 → 查看成员 Prompt

调用:GET /api/admin/bills/:billId → 返回 members 数组,每个成员含 custom_prompt 字段
说明:每个用户在每个账单有独立的 custom_prompt,可分别设置

3. 编辑并保存 Prompt

调用:PUT /api/admin/bills/:billId/members/:memberId/prompt
请求体:{ custom_prompt: "..." }(传 null 或空字符串则清除,使用系统默认)