feat 查看监控多设备互相影响bug修复

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Ironsp
2026-06-02 08:22:08 +08:00
parent 624cfb4d0a
commit 98c53dce04

View File

@@ -406,7 +406,7 @@ const handleSee = async (row?: any) => {
monitorVideoUrl.value = videosStore.hisUrl || '';
if (!monitorVideoUrl.value) {
proxy?.$modal.msgWarning('该设备未登录或无法获取直播地址,已停止播放旧画面');
//proxy?.$modal.msgWarning('该设备未登录或无法获取直播地址,已停止播放旧画面');
initVideoResizeObserver();
return;
}
@@ -414,6 +414,7 @@ const handleSee = async (row?: any) => {
// 等待 DOM 更新后初始化 Hls
await nextTick();
initHls();
// 等待视频加载完成后初始化 ResizeObserver以便能正确获取视频尺寸
initVideoResizeObserver();
// 如果有 drawArea直接使用它显示矩形区域不允许点击绘制
@@ -499,14 +500,14 @@ const displayDrawArea = (drawArea: any, video: HTMLVideoElement) => {
console.log('[查看监控] 已加载已有报警区域', payload.value);
};
// 在窗口调整大小时更新绘制区域位置和大小
const updateDrawAreaOnResize = () => {
const drawArea = currentDrawArea.value;
const video = monitorVideoRef.value;
if (!drawArea || !video || video.videoWidth <= 0 || video.videoHeight <= 0) return;
displayDrawArea(drawArea, video);
};
// 初始化 ResizeObserver 监听视频元素尺寸变化,以便在窗口调整大小时更新绘制区域位置和大小
const initVideoResizeObserver = () => {
if (!window.ResizeObserver || videoResizeObserver.value) return;
const video = monitorVideoRef.value;
@@ -516,7 +517,7 @@ const initVideoResizeObserver = () => {
});
videoResizeObserver.value.observe(video);
};
// 销毁 ResizeObserver
const destroyVideoResizeObserver = () => {
if (videoResizeObserver.value) {
videoResizeObserver.value.disconnect();