v2.6.0 历史分页+筛选+搜索+表头升降排序;一键清空历史(DELETE /api/tests);右下角置顶/置底悬浮按钮

This commit is contained in:
2026-09-06 02:32:35 +08:00
parent 901232c75f
commit edbaedce15
7 changed files with 346 additions and 49 deletions
+22 -3
View File
@@ -148,11 +148,30 @@ def start_test():
@app.route("/api/tests", methods=["GET"])
def list_tests():
"""历史记录列表:支持关键词搜索 q、状态 status(逗号多选)、提供商 provider、
字段排序 sort/order、分页 page/page_size"""
try:
limit = int(request.args.get("limit", 100))
page = max(1, int(request.args.get("page", 1)))
page_size = min(100, max(1, int(request.args.get("page_size", 20))))
except ValueError:
limit = 100
return jsonify(db.list_tests(max(1, min(limit, 1000))))
page, page_size = 1, 20
q = (request.args.get("q") or "").strip()
status = (request.args.get("status") or "").strip()
provider = (request.args.get("provider") or "").strip()
sort = (request.args.get("sort") or "id").strip()
order = (request.args.get("order") or "desc").strip().lower()
if order not in ("asc", "desc"):
order = "desc"
data = db.query_tests(q=q, status=status, provider=provider,
sort=sort, order=order, page=page, page_size=page_size)
return jsonify({"ok": True, **data})
@app.route("/api/tests", methods=["DELETE"])
def clear_tests():
"""一键清空全部测试历史(含采样指标与日志)"""
db.clear_tests()
return jsonify({"ok": True})
@app.route("/api/tests/<int:tid>", methods=["GET"])