Kaynağa Gözat

fix: 修复无渲染不回填问题 bug-view-617

louhangfei 1 yıl önce
ebeveyn
işleme
e7f844c4bb

+ 13 - 14
src/views/cameras/preview/components/RenderSwitch/RenderSwitch.vue

@@ -2,7 +2,7 @@
   <div style="display: flex; margin-left: 16px" v-if="cameraDetailStore.detail">
     <div style="margin-top: 2px; margin-right: 4px">渲染开关</div>
     <ElSelect v-model="selectedIds" @change="changeRender" style="width: 150px" size="small">
-      <ElOption value="" label="无渲染">无渲染</ElOption>
+      <ElOption value="none" label="无渲染">无渲染</ElOption>
       <ElOption value="demo" label="有渲染">有渲染</ElOption>
       <!-- <ElOption v-for="item in allAlgoList" :key="item.id" :value="item.id" :label="item.name">
         {{ item.name }}
@@ -13,41 +13,40 @@
 </template>
 <script lang="ts" setup>
   import { ElSelect, ElOption } from 'element-plus';
-  import useCameraAlgoStore from '../../store/useCameraAlgoStore';
   import useCameraDetailStore from '../../store/useCameraDetailStore';
-  import { storeToRefs } from 'pinia';
   import { ref } from 'vue';
   import { renderCamera } from '@/api/camera/camera-preview';
   import { watch } from 'vue';
 
   const cameraDetailStore = useCameraDetailStore();
-  const cameraAlgoStore = useCameraAlgoStore();
+
+  enum RenderTypes {
+    none = 'none',
+    demo = 'demo',
+  }
 
   const emits = defineEmits<{
     (e: 'changeCameraRender', render: number | string): unknown;
   }>();
 
-  const { isAlgoBind } = cameraAlgoStore;
-  const { allAlgoList } = storeToRefs(cameraAlgoStore);
-
-  const selectedIds = ref<number | string>();
+  const selectedIds = ref<number | string>('');
 
   const changeRender = (val) => {
+    const trueRender = val === RenderTypes.none ? '' : val;
     const renderData = {
-      render: val,
+      render: trueRender,
       cameraId: cameraDetailStore.cameraId,
     };
     renderCamera(renderData).then(() => {
-      emits('changeCameraRender', val);
+      emits('changeCameraRender', trueRender);
     });
   };
 
   const changeRenderWatch = () => {
-    if (cameraDetailStore.detail?.render) {
-      // selectedIds.value = Number(cameraDetailStore.detail?.render);
-      selectedIds.value = cameraDetailStore.detail?.render;
+    if (!cameraDetailStore.detail?.render) {
+      selectedIds.value = RenderTypes.none;
     } else {
-      selectedIds.value = '';
+      selectedIds.value = cameraDetailStore.detail?.render;
     }
   };