"""设备页面 API""" from flask import Blueprint, jsonify, render_template, request from flask_login import login_required from app.models import get_all_devices, update_device_name, get_device_by_id bp = Blueprint("devices", __name__) @bp.route("/") @login_required def index(): """设备列表页(默认首页)""" return render_template("devices.html") @bp.route("/api/devices") def api_devices(): """获取所有设备列表""" devices = get_all_devices() return jsonify(devices) @bp.route("/api/devices//status") def api_device_status(device_id): """获取单个设备的在线状态""" device = get_device_by_id(device_id) if not device: return jsonify({"ok": False, "error": "设备不存在"}), 404 state_names = {0: "离线", 1: "在线", 2: "通信不良"} return jsonify({ "ok": True, "device_id": device_id, "state": device["state"], "state_name": state_names.get(device["state"], "未知"), "serial": device["serial"], }) @bp.route("/api/devices//name", methods=["PUT"]) def api_update_name(device_id): """修改设备名称""" data = request.get_json() name = data.get("name", "") update_device_name(device_id, name) return jsonify({"ok": True})