fix: 全选勾选不显示(renderDevices 签名缺选中状态导致防抖跳过渲染)+ 亮屏/息屏支持勾选设备(未勾选则全部在线,离线自动过滤)

This commit is contained in:
2026-08-19 13:57:07 +08:00
parent 6f6093842c
commit 2d1b10c7f3
2 changed files with 17 additions and 5 deletions
+9 -2
View File
@@ -634,16 +634,23 @@ def api_device_locate_stop():
@app.route("/api/device/screen_all", methods=["POST"])
@perm_required(PERM_DEVICES)
def api_device_screen_all():
"""批量亮屏/息屏所有在线设备(并发)。mode: on=亮屏解锁 / off=息屏。
"""批量亮屏/息屏(并发)。mode: on=亮屏解锁 / off=息屏。
请求可带 serials 指定设备(前端勾选);不带则作用于全部在线设备。
息屏会中断运行中的任务(u2 无法操作),前端已有确认提示。
"""
data = request.json or {}
mode = data.get("mode", "on")
try:
serials = device_pool.list_online()
online = set(device_pool.list_online())
except Exception as e:
return jsonify({"ok": False, "error": f"获取设备列表失败: {e}"}), 502
serials = data.get("serials") or []
if serials:
# 指定设备:过滤掉不在线的(离线设备操作无意义,直接跳过)
serials = [s for s in serials if s in online]
else:
serials = list(online)
if not serials:
return jsonify({"ok": False, "error": "无在线设备"}), 400