修复前端

This commit is contained in:
dekun
2026-05-22 11:29:34 +08:00
parent 371dec6999
commit 427f94e0e8
4 changed files with 246 additions and 114 deletions
+32 -4
View File
@@ -38,27 +38,55 @@ def _row_to_dict(row):
return dict(row) if row is not None else {}
_FAIL_HINTS = (
"失败",
"错误",
"拒绝",
"无效",
"缺少",
"无法",
"过期",
"未达",
"不能为空",
"已有",
"不允许",
"异常",
)
def _invoke_view(view_name: str, path: str, form=None) -> dict:
views = _ctx().get("views") or {}
view = views.get(view_name)
if not view:
return {"ok": False, "messages": [f"未配置视图 {view_name}"]}
data = form if form is not None else request.form
if hasattr(data, "items") and not isinstance(data, dict):
data = {k: v for k, v in data.items()}
with current_app.test_request_context(path, method="POST", data=data):
session["logged_in"] = True
try:
view()
except Exception as e:
return {"ok": False, "messages": [str(e)]}
msgs = [str(x) for x in get_flashed_messages()]
try:
msgs = [str(x) for x in get_flashed_messages()]
except Exception as e:
return {"ok": False, "messages": [f"读取提示信息失败: {e}"]}
ok = True
for m in msgs:
if any(k in m for k in ("失败", "错误", "拒绝", "无效", "缺少", "无法", "过期")):
if any(k in m for k in _FAIL_HINTS):
ok = False
break
return {"ok": ok, "messages": msgs}
def _hub_json(view_name: str, path: str, form=None):
try:
return jsonify(_invoke_view(view_name, path, form=form))
except Exception as e:
return jsonify({"ok": False, "messages": [str(e)]})
def install_on_app(
app,
*,
@@ -155,12 +183,12 @@ def register_hub_routes(app):
@app.route("/api/hub/add_order", methods=["POST"])
@_hub_auth_required
def api_hub_add_order():
return jsonify(_invoke_view("add_order", "/trade"))
return _hub_json("add_order", "/add_order")
@app.route("/api/hub/add_key", methods=["POST"])
@_hub_auth_required
def api_hub_add_key():
return jsonify(_invoke_view("add_key", "/key_monitor"))
return _hub_json("add_key", "/add_key")
@app.route("/api/hub/trend/preview", methods=["POST"])
@_hub_auth_required