Переглянути джерело

fix: 修复相机编辑bug

bxy 1 рік тому
батько
коміт
3fca6ae234

+ 11 - 1
src/views/cameras/overview/components/AddCameraByIP.vue

@@ -116,6 +116,7 @@
   import useTreeWorkspaceInfo from '../hooks/useTreeWorkspaceInfo';
   import { cloneDeep } from 'lodash-es';
   import sysConfigItemOfAddCamera from './sysConfigItemOfAddCamera.vue';
+  import { CheckedSceneTemplate } from '@/types/camera/type';
 
   const props = defineProps<{ formData?: CameraDetailServer | null }>();
   const emits = defineEmits(['cancel-execute', 'confirm-execute']);
@@ -152,7 +153,7 @@
     sceneTemplateList: [{ required: true, validator: validateSceneTemplate, trigger: 'blur' }],
   };
 
-  const sceneCheckedDataRef = ref([]);
+  const sceneCheckedDataRef = ref({} as Record<number, boolean>);
   const handleUpdateSceneTemplateList = (sceneTemplateData, sceneCheckedData) => {
     sceneCheckedDataRef.value = sceneCheckedData;
     cameraIPData.value.sceneTemplateList = sceneTemplateData;
@@ -181,12 +182,21 @@
     cameraIPData.value.workshopId = node.workshopId;
   };
 
+  function getsceneCheckedDataRef(arr: CheckedSceneTemplate[]): Record<number, boolean> {
+    const result: Record<number, boolean> = {};
+    arr.forEach(({ sceneId }) => {
+      result[sceneId] = true;
+    });
+    return result;
+  }
+
   onBeforeMount(() => {
     getNvrDevice();
     getWorkspaceFromTreeInfo();
     if (props.formData) {
       cameraIPData.value = props.formData;
       cameraIPData.value.workspaceIdStr = `workspace-${props.formData.workspaceId}`;
+      sceneCheckedDataRef.value = getsceneCheckedDataRef(props.formData.sceneTemplateList);
     }
   });
 </script>

+ 11 - 1
src/views/cameras/overview/components/AddCameraByNVR.vue

@@ -107,6 +107,7 @@
   import useNvrDevice from '../hooks/useNvrDevice';
   import useTreeWorkspaceInfo from '../hooks/useTreeWorkspaceInfo';
   import sysConfigItemOfAddCamera from './sysConfigItemOfAddCamera.vue';
+  import { CheckedSceneTemplate } from '@/types/camera/type';
 
   const props = defineProps<{ formData?: CameraDetailServer | null }>();
   const emits = defineEmits(['cancel-execute', 'confirm-execute']);
@@ -141,7 +142,7 @@
     videoStandard: [{ required: true, message: '请选择视频编码标准', trigger: 'blur' }],
   };
 
-  const sceneCheckedDataRef = ref([]);
+  const sceneCheckedDataRef = ref({} as Record<number, boolean>);
   const handleUpdateSceneTemplateList = (sceneTemplateData, sceneCheckedData) => {
     sceneCheckedDataRef.value = sceneCheckedData;
     cameraNVRData.value.sceneTemplateList = sceneTemplateData;
@@ -170,12 +171,21 @@
     cameraNVRData.value.workshopId = node.workshopId;
   };
 
+  function getsceneCheckedDataRef(arr: CheckedSceneTemplate[]): Record<number, boolean> {
+    const result: Record<number, boolean> = {};
+    arr.forEach(({ sceneId }) => {
+      result[sceneId] = true;
+    });
+    return result;
+  }
+
   onBeforeMount(() => {
     getNvrDevice();
     getWorkspaceFromTreeInfo();
     if (props.formData) {
       cameraNVRData.value = props.formData;
       cameraNVRData.value.workspaceIdStr = `workspace-${props.formData.workspaceId}`;
+      sceneCheckedDataRef.value = getsceneCheckedDataRef(props.formData.sceneTemplateList);
     }
   });
 </script>

+ 11 - 1
src/views/cameras/overview/components/AddCameraBySRS.vue

@@ -104,6 +104,7 @@
   import useNvrDevice from '../hooks/useNvrDevice';
   import useTreeWorkspaceInfo from '../hooks/useTreeWorkspaceInfo';
   import sysConfigItemOfAddCamera from './sysConfigItemOfAddCamera.vue';
+  import { CheckedSceneTemplate } from '@/types/camera/type';
 
   const props = defineProps<{ formData?: CameraDetailServer | null }>();
   const emits = defineEmits(['cancel-execute', 'confirm-execute']);
@@ -137,7 +138,7 @@
     videoStandard: [{ required: true, message: '请选择视频编码标准', trigger: 'blur' }],
   };
 
-  const sceneCheckedDataRef = ref([]);
+  const sceneCheckedDataRef = ref({} as Record<number, boolean>);
   const handleUpdateSceneTemplateList = (sceneTemplateData, sceneCheckedData) => {
     sceneCheckedDataRef.value = sceneCheckedData;
     CameraSRSData.value.sceneTemplateList = sceneTemplateData;
@@ -166,12 +167,21 @@
     CameraSRSData.value.workshopId = node.workshopId;
   };
 
+  function getsceneCheckedDataRef(arr: CheckedSceneTemplate[]): Record<number, boolean> {
+    const result: Record<number, boolean> = {};
+    arr.forEach(({ sceneId }) => {
+      result[sceneId] = true;
+    });
+    return result;
+  }
+
   onBeforeMount(() => {
     getNvrDevice();
     getWorkspaceFromTreeInfo();
     if (props.formData) {
       CameraSRSData.value = props.formData;
       CameraSRSData.value.workspaceIdStr = `workspace-${props.formData.workspaceId}`;
+      sceneCheckedDataRef.value = getsceneCheckedDataRef(props.formData.sceneTemplateList);
     }
   });
 </script>

+ 2 - 12
src/views/cameras/overview/components/sysConfigItemOfAddCamera.vue

@@ -1,10 +1,6 @@
 <template>
   <div class="scene-template-item" v-for="item in sceneTemplateList" :key="item.id">
-    <el-checkbox
-      v-model="sceneCheckedValues[item.id!]"
-      :label="item.name"
-      @change="handleSceneIdChange(item.id)"
-    />
+    <el-checkbox v-model="sceneCheckedValues[item.id!]" :label="item.name" @change="handleSceneIdChange(item.id)" />
     <div class="template-item">
       <div class="template-item-tip"><span style="color: red"> * </span> 应用模版:</div>
       <el-radio-group
@@ -32,7 +28,6 @@
 
   const sceneTemplateListInfo = useSceneTemplateList();
   const { sceneTemplateList } = storeToRefs(sceneTemplateListInfo);
-  // const { sceneTemplateList, getSceneTemplateList } = sceneTemplateListInfo;
 
   const props = defineProps<{ originSceneCheckedList: CheckedSceneTemplate[] }>();
   const emits = defineEmits(['update:sceneCheckedList']);
@@ -74,10 +69,7 @@
     if (!sceneCheckedValues.value[id]) delete templateCheckedValues.value[id];
     updateSceneCheckedList();
     for (let key in sceneCheckedValues.value) {
-      if (
-        sceneCheckedValues.value.hasOwnProperty(key) &&
-        sceneCheckedValues.value[Number(key)] === false
-      ) {
+      if (sceneCheckedValues.value.hasOwnProperty(key) && sceneCheckedValues.value[Number(key)] === false) {
         delete sceneCheckedValues.value[Number(key)];
       }
     }
@@ -88,8 +80,6 @@
   };
 
   onMounted(() => {
-    // getSceneTemplateList();
-    console.log('props', props.originSceneCheckedList);
     if (props.originSceneCheckedList?.length) {
       sceneCheckedValues.value = getSceneCheckedValues(props.originSceneCheckedList);
       templateCheckedValues.value = getTemplateCheckedValues(props.originSceneCheckedList);