From 22ba9272bd098fd8d2530cb67d1d2f6d1e41a684 Mon Sep 17 00:00:00 2001 From: butubb <1422726308@qq.com> Date: Tue, 1 Sep 2026 08:58:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=A8=E7=AB=99=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=8F=AA=E7=9C=8B=E5=9C=A8=E7=BA=BF=E2=80=94=E2=80=94=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E9=A1=B5/=E5=A4=A7=E5=B1=8F/=E5=BE=85=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E6=B1=A0=E5=90=8C=E6=AD=A5=E8=BF=87=E6=BB=A4=E7=A6=BB?= =?UTF-8?q?=E7=BA=BF=E8=AE=BE=E5=A4=87=EF=BC=88=E5=8F=AF=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E5=85=A8=E9=83=A8=EF=BC=89=EF=BC=9B18051=20m?= =?UTF-8?q?ain=20=E6=97=A7=E5=AE=9E=E4=BE=8B=E5=B7=B2=E5=81=9C=E6=AD=A2?= =?UTF-8?q?=EF=BC=88STF=20=E5=B7=B2=E5=88=A0=EF=BC=8C=E6=97=A7=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=97=A0=E4=BF=9D=E7=95=99=E6=84=8F=E4=B9=89=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/admin/monitor.js | 8 +++++++- static/admin/tools.js | 4 ++-- templates/admin/monitor.html | 3 +++ templates/admin/wall.html | 12 +++++++++++- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/static/admin/monitor.js b/static/admin/monitor.js index 2e5a9b3..529b9f0 100644 --- a/static/admin/monitor.js +++ b/static/admin/monitor.js @@ -307,8 +307,14 @@ function renderDevices(){ if(_sig===_devicesSig)return; _devicesSig=_sig; // 排序由 applyListPager 统一处理(sortValue + _lpSort) + // 「只看在线」勾选时过滤离线设备(默认勾选) + const onlyOnline=document.getElementById('monitor-filter-online') + ? document.getElementById('monitor-filter-online').checked : true; setListPager('devices',{ - data:()=>_statusData.devices||[], + data:()=>{ + const all=_statusData.devices||[]; + return onlyOnline? all.filter(d=>d.present) : all; + }, filter:(dev,kw)=>((dev.serial||'').toLowerCase().includes(kw)||(dev.model||'').toLowerCase().includes(kw)||(dev.foreground_app||'').toLowerCase().includes(kw)||(dev.task_job||'').toLowerCase().includes(kw)||(dev.current_action||'').toLowerCase().includes(kw)), sortValue:_sortValue, render:renderDeviceRow, diff --git a/static/admin/tools.js b/static/admin/tools.js index 4c7f1d9..657ca2a 100644 --- a/static/admin/tools.js +++ b/static/admin/tools.js @@ -59,8 +59,8 @@ function loadDiscovery(){ if(r.last_error)txt+=' · ⚠ '+esc(r.last_error); status.textContent=txt; }else{status.textContent='尚未扫描';} - // 待连接表格 - const rows=(r.pending||[]); + // 待连接表格:只显示在线设备(离线候选不可确认连接,隐藏;恢复在线后自动出现) + const rows=(r.pending||[]).filter(x=>x.online); const tb=document.getElementById('tb-discovery'); if(!tb)return; if(!rows.length){ diff --git a/templates/admin/monitor.html b/templates/admin/monitor.html index 5b41db9..93c4534 100644 --- a/templates/admin/monitor.html +++ b/templates/admin/monitor.html @@ -343,6 +343,9 @@ body{background:var(--bg);font-family:var(--body);color:var(--text);font-size:14 + · 每 5 秒自动刷新 · · 未选中 diff --git a/templates/admin/wall.html b/templates/admin/wall.html index e057783..c995fa9 100644 --- a/templates/admin/wall.html +++ b/templates/admin/wall.html @@ -116,6 +116,9 @@ main{position:relative;z-index:2;height:calc(100vh - 88px);overflow-y:auto;paddi
设备监控大屏
+
--:--:--
@@ -203,11 +206,18 @@ async function refreshStatus(){ JSON.stringify(_devices.map(d=>[d.serial,d.present,d.worker_status,d.task_job,d.current_action,d.progress,d.device_name,d.model])); _devices=devs; renderStats(devs); - if(changed)renderGrid(devs); + if(changed)renderGrid(visibleDevs(devs)); // 操作弹窗打开时同步刷新其标题状态 if(_ctrlSerial)updateCtrlHead(); } +// 「只看在线」勾选时过滤离线设备(默认勾选) +function visibleDevs(devs){ + const onlyOnline=document.getElementById('wall-filter-online') + ? document.getElementById('wall-filter-online').checked : true; + return onlyOnline? devs.filter(d=>d.present) : devs; +} + function renderStats(devs){ const online=devs.filter(d=>d.present).length; const running=devs.filter(d=>['running','connecting'].includes(d.worker_status)).length;