liujintao 1 ヶ月 前
コミット
efee402e9f

+ 1 - 1
src/views/settings/imageDisplay/components/image/index.vue

@@ -214,7 +214,7 @@ async function resetDefaults() {
   await saveParams()
 }
 
-defineExpose({ myVideoRef })
+defineExpose({ myVideoRef, fetchImagePara })
 
 onMounted(() => {
   fetchImagePara()

+ 2 - 0
src/views/settings/imageDisplay/components/osd/index.vue

@@ -308,6 +308,8 @@ onMounted( () => {
   fetchOsd()
 })
 
+defineExpose({ myVideoRef, fetchOsd, GetTime })
+
 onUnmounted(() => {
   if (timeTimer) clearInterval(timeTimer)
   endDragOsd()

+ 2 - 0
src/views/settings/imageDisplay/components/privacyMasking/index.vue

@@ -337,6 +337,8 @@ onMounted(async () => {
   await fetchMasks()
 })
 
+defineExpose({ myVideoRef, fetchMasks })
+
 onUnmounted(() => {
   resizeObserver?.disconnect()
 })

+ 9 - 0
src/views/settings/imageDisplay/index.vue

@@ -87,6 +87,15 @@ const handleChnChange = async (val: number) => {
     await putDeviceNum({ ChnNumber: val })
     await fetchDeviceInfo()
     refreshCurrentVideo()
+
+    if (activeName.value === 'first' && imageRef.value?.fetchImagePara) {
+      await imageRef.value.fetchImagePara()
+    } else if (activeName.value === 'second' && osdRef.value?.fetchOsd && osdRef.value?.GetTime) {
+      await osdRef.value.GetTime()
+      await osdRef.value.fetchOsd()
+    } else if (activeName.value === 'third' && privacyMaskingRef.value?.fetchMasks) {
+      await privacyMaskingRef.value.fetchMasks()
+    }
   } catch (error) {
     console.error('Failed to switch channel:', error)
     ElMessage.error('Failed to switch channel, please try again')