Billing 前端页面更新 - 快速验证指南
🎯 更新内容
根据后端 billing 接口返回的数据结构,更新了前端 billing 页面。
✅ 主要更新
1. 视图层 (views/client/billing/__init__.py)
- ✅ 添加页面标题和说明
- ✅ 移除"充值"按钮(充值在 buy 页面)
- ✅ 移除"修改"按钮(订单不可修改)
- ✅ 更新状态颜色标签(4种状态,4种颜色)
- ✅ 添加"备注"列
- ✅ 优化操作按钮逻辑(仅待支付/已取消可删除)
2. 回调层 (callbacks/client_c/billing_c.py)
- ✅ 更新状态处理逻辑
- ✅ 优化操作按钮显示规则
🚀 快速验证
1. 启动服务
# 终端 1 - 启动后端
cd /home/lxy/github/SaasKit/backend/backlin
backlin --env dev
# 终端 2 - 启动前端
cd /home/lxy/github/SaasKit/frontend/frontlin
frontlin --env dev
2. 创建测试订单
方法 A:通过前端 UI(推荐)
- 访问
http://localhost:8050/client/buy - 选择充值金额(如 10 元)
- 选择支付方式(支付宝/微信/银行卡)
- 点击 "Next step"
- 等待支付完成(Mock 支付 5-15 秒 )
方法 B:通过测试脚本
cd /home/lxy/github/SaasKit/backend/backlin
python test/test_payment.py
3. 查看订单列表
访问 http://localhost:8050/client/billing
期望看到:
┌─────────────────────────────────────────────────┐
│ 📊 充值订单管理 │
│ 查看和管理您的充值订单记录,支持多种支付方式 │
├─────────────────────────────────────────────────┤
│ [删除] [导出] [🔄] │
├─────────────────────────────────────────────────┤
│ 订单号 │ API Key │ 状态 │ 金额 │... │
│ ORD2025... │ My Key │ 🟢已支付│ 10.0│... │
│ ORD2025... │ Test │ 🟠待支付│ 50.0│... │
│ ORD2025... │ - │ 🔴已取消│ 20.0│... │
└─────────────────────────────────────────────────┘
🎨 状态颜色说明
| 状态 | 颜色 | 图标 | 说明 |
|---|---|---|---|
| 已支付 | 🟢 绿色 | green | 支付成功,余 额已到账 |
| 待支付 | 🟠 橙色 | orange | 等待支付中 |
| 已取消 | 🔴 红色 | red | 已取消(超时或主动取消) |
| 已退款 | 🟣 紫色 | purple | 已退款(未来功能) |
📋 功能检查清单
页面显示
- 页面标题"充值订单管理"显示
- 页面说明文字显示
- 表格正常加载
数据显示
- 订单号正确显示(可复制)
- API Key 名称正确显示(后端关联查询)
- 状态颜色标签正确
- 已支付 = 绿色
- 待支付 = 橙色
- 已取消 = 红色
- 已退款 = 紫色
- 金额显示格式化(保留2位小数)
- 支付方式正确显示
- 支付时间正确显示
- 创建时间正确显示
- 备注信息正确显示
操作按钮
- "删除"按钮仅在待支付/已取消订单显示
- 已支付订单不显示删除按钮
- "导出"按钮存在
- "刷新"按钮存在
分页功能
- 分页器正常显示
- 页码切换正常
- 每页数量选择正常(10/30/50/100)
🔍 测试场景
场景 1:查看已支付订单
- 完成一次充值(在 buy 页面)
- 访问 billing 页面
- 应该看到已支付订单,绿色标签
- 操作列不显示删除按钮
场景 2:查看待支付订单
- 创建订单但不完成支付
- 访问 billing 页面
- 应该看到待支付订单,橙色标签
- 操作列显示删除按钮
场景 3:查看已取消订单
- 创建订单后主动取消
- 或等待支付超时
- 访问 billing 页面
- 应该看到已取消订单,红色标签
- 操作列显示删除按钮
场景 4:删除订单
- 选择待支付或已取消的订单
- 点击"删除"
- 确认删除
- 订单从列表中移除
场景 5:导出订单
- 点击"导出"按钮
- 系统生成 Excel 文件
- 下载并打开文件
- 验证数据完整性
场景 6:刷新列表
- 点击刷新按钮(🔄)
- 列表重新加载
- 显示最新数据
🐛 常见问题排查
Q1: 页面显示为空
可能原因:
- 当前用户没有创建过订单
- 后端服务未启动
- Token 过期
解决方法:
- 在 buy 页面创建订单
- 检查后端服务状态
- 重新登录
Q2: API Key 名称显示为 null
原因:订单创建时没有关联 api_key_id
说明:这是正常的,api_key_id 是可选字段
Q3: 状态颜色不正确
检查:
- 后端返回的状态字符串是否正确
- 前端状态映射逻辑是否正确
Q4: 删除按钮不显示
原因:
- 订单状态为"已支付"(已支付订单不可删除)
- 用户没有删除权限
说明:这是预期行为
📁 相关文件
已修改
frontend/frontlin/frontlin/views/client/billing/__init__.py⭐frontend/frontlin/frontlin/callbacks/client_c/billing_c.py⭐
相关后端
backend/backlin/backlin/module_saas/route_apikey.pybackend/backlin/backlin/module_saas/schema.py
测试
backend/backlin/test/test_billing_page.pybackend/backlin/test/test_payment.py