feat: unify login UI and improve kdocs defaults

This commit is contained in:
2026-02-07 01:27:00 +08:00
parent bf29ac1924
commit 9991834ccd
22 changed files with 358 additions and 114 deletions

View File

@@ -234,10 +234,12 @@ def get_user_email():
@login_required
def get_user_kdocs_settings():
"""获取当前用户的金山文档设置"""
settings = database.get_user_kdocs_settings(current_user.id)
if not settings:
return jsonify({"kdocs_unit": "", "kdocs_auto_upload": 0})
return jsonify(settings)
settings = database.get_user_kdocs_settings(current_user.id) or {}
cfg = database.get_system_config() or {}
default_unit = (cfg.get("kdocs_default_unit") or "").strip() or "道县"
kdocs_unit = (settings.get("kdocs_unit") or "").strip() or default_unit
kdocs_auto_upload = 1 if int(settings.get("kdocs_auto_upload", 0) or 0) == 1 else 0
return jsonify({"kdocs_unit": kdocs_unit, "kdocs_auto_upload": kdocs_auto_upload})
@api_user_bp.route("/api/user/kdocs", methods=["POST"])
@@ -265,8 +267,14 @@ def update_user_kdocs_settings():
):
return jsonify({"error": "更新失败"}), 400
settings = database.get_user_kdocs_settings(current_user.id) or {"kdocs_unit": "", "kdocs_auto_upload": 0}
return jsonify({"success": True, "settings": settings})
settings = database.get_user_kdocs_settings(current_user.id) or {}
cfg = database.get_system_config() or {}
default_unit = (cfg.get("kdocs_default_unit") or "").strip() or "道县"
response_settings = {
"kdocs_unit": (settings.get("kdocs_unit") or "").strip() or default_unit,
"kdocs_auto_upload": 1 if int(settings.get("kdocs_auto_upload", 0) or 0) == 1 else 0,
}
return jsonify({"success": True, "settings": response_settings})
@api_user_bp.route("/api/user/bind-email", methods=["POST"])
@@ -405,6 +413,14 @@ def get_kdocs_status_for_user():
login_required_flag = status.get("login_required", False)
last_login_ok = status.get("last_login_ok")
# 重启后首次查询时,状态可能还是 None这里做一次轻量实时校验
if last_login_ok is None:
live_status = kdocs.refresh_login_status()
if live_status.get("success"):
logged_in = bool(live_status.get("logged_in"))
login_required_flag = not logged_in
last_login_ok = logged_in
# 判断是否在线
is_online = not login_required_flag and last_login_ok is True