feat(control): 看板页视频源原因简化显示

看板窗口小,原因改为类型级摘要(去掉 URL/细节):
  '视频源异常:RTSP 打开失败' (由 last_error 提取错误类型前缀)
hlsError 兜底也显示具体原因(有数据时),不再模糊提示
'请检查视频源'。监控页保留完整原因。
This commit is contained in:
tian 2026-08-02 13:10:59 +08:00
parent 7fe93b58d0
commit 565e4bb3d6

View File

@ -183,6 +183,13 @@
function esc(s) { return (s||"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"); }
// 简化错误原因:只保留类型(如 'RTSP 打开失败'),去掉 URL/细节(看板窗口小)
function briefError(e) {
if (!e) return '视频源异常';
var m = e.match(/^([^:(]+)/);
return '视频源异常:' + (m ? m[1].trim() : '请检查视频源');
}
// 视频源状态覆盖层:离线红字/连接中/状态未知
function applySourceStatus(tile, status, hlsError) {
var overlay = tile.querySelector('.video-status-overlay');
@ -192,7 +199,8 @@
tile.appendChild(overlay);
}
if (hlsError) {
overlay.innerHTML = '<div class="video-status-text offline">无视频输出</div><div class="video-status-detail">HLS 流不可用,请检查视频源</div>';
var why = (status && status.last_error) ? briefError(status.last_error) : '视频源异常:请检查视频源';
overlay.innerHTML = '<div class="video-status-text offline">无视频输出</div><div class="video-status-detail">' + why + '</div>';
overlay.style.display = 'flex';
return;
}
@ -211,7 +219,7 @@
return;
}
overlay.innerHTML = '<div class="video-status-text offline">离线</div>' +
(status.last_error ? '<div class="video-status-detail">' + esc(status.last_error) + '</div>' : '');
'<div class="video-status-detail">' + briefError(status.last_error) + '</div>';
overlay.style.display = 'flex';
}