feat: admin用户支持删除测试数据(按条件/日期范围),含确认框+日志
This commit is contained in:
@@ -3,8 +3,8 @@
|
||||
import csv
|
||||
import io
|
||||
from flask import Blueprint, jsonify, render_template, request, Response
|
||||
from flask_login import login_required
|
||||
from app.models import get_test_data, get_all_test_data_for_export
|
||||
from flask_login import login_required, current_user
|
||||
from app.models import get_test_data, get_all_test_data_for_export, delete_test_data, insert_log
|
||||
|
||||
bp = Blueprint("test_data", __name__)
|
||||
|
||||
@@ -78,3 +78,39 @@ def api_export():
|
||||
mimetype="text/csv",
|
||||
headers={"Content-Disposition": "attachment; filename=test_data.csv"},
|
||||
)
|
||||
|
||||
|
||||
@bp.route("/api/test-data/delete", methods=["POST"])
|
||||
@login_required
|
||||
def api_delete():
|
||||
"""删除测试数据(仅 admin)"""
|
||||
if current_user.role != "admin":
|
||||
return jsonify({"ok": False, "error": "无权限"}), 403
|
||||
|
||||
data = request.get_json() or {}
|
||||
serial = data.get("serial", "")
|
||||
date_from = data.get("date_from", "")
|
||||
date_to = data.get("date_to", "")
|
||||
data_source = data.get("data_source", "")
|
||||
|
||||
cnt = delete_test_data(serial, date_from, date_to, data_source)
|
||||
|
||||
detail_parts = [f"删除 {cnt} 条测试数据"]
|
||||
if serial:
|
||||
detail_parts.append(f"设备={serial}")
|
||||
if date_from:
|
||||
detail_parts.append(f"从{date_from}")
|
||||
if date_to:
|
||||
detail_parts.append(f"至{date_to}")
|
||||
if data_source:
|
||||
detail_parts.append(f"来源={data_source}")
|
||||
|
||||
insert_log(
|
||||
current_user.id, current_user.username, "delete",
|
||||
target="test_data",
|
||||
detail=", ".join(detail_parts),
|
||||
result="ok",
|
||||
ip=request.remote_addr or "",
|
||||
)
|
||||
|
||||
return jsonify({"ok": True, "deleted": cnt})
|
||||
|
||||
Reference in New Issue
Block a user