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

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Ironsp
2026-06-02 08:17:41 +08:00
parent f10c5bd4ea
commit 624cfb4d0a
2 changed files with 16 additions and 3 deletions

View File

@@ -6,7 +6,7 @@ import Hls from 'hls.js';
export const useVideosStore = defineStore('videos', () => {
// --- State (状态) ---
// 相当于 Vuex 中的 state用 ref 或 reactive 定义
const hisUrl = ref();
const hisUrl = ref('');
// --- Getters (计算属性) ---
// 相当于 Vuex 中的 getters直接用 computed 定义
@@ -14,12 +14,14 @@ export const useVideosStore = defineStore('videos', () => {
// --- Actions (动作) ---
// 相当于 Vuex 中的 actions/mutations直接写同步或异步函数
async function getVideos(deviceId?: string | number) {
hisUrl.value = '';
try {
const response = await listDemo(deviceId);
console.log('获取视频:', response);
hisUrl.value = response.data;
hisUrl.value = response?.data || '';
} catch (error) {
console.error('获取视频失败', error);
hisUrl.value = '';
}
}

View File

@@ -399,8 +399,18 @@ const handleSee = async (row?: any) => {
Object.assign(form.value, res.data);
dialog1.visible = true;
dialog1.title = '修改设备';
destroyHls();
monitorVideoUrl.value = '';
await videosStore.getVideos(row.id);
monitorVideoUrl.value = videosStore.hisUrl;
monitorVideoUrl.value = videosStore.hisUrl || '';
if (!monitorVideoUrl.value) {
proxy?.$modal.msgWarning('该设备未登录或无法获取直播地址,已停止播放旧画面');
initVideoResizeObserver();
return;
}
// 等待 DOM 更新后初始化 Hls
await nextTick();
initHls();
@@ -517,6 +527,7 @@ const destroyVideoResizeObserver = () => {
const handleMonitorDialogClose = (done: () => void) => {
// 卸载 Hls 与清理 video
destroyHls();
monitorVideoUrl.value = '';
destroyVideoResizeObserver();
resetMonitorDraw();
done();