ソースを参照

增加对枪型相机的支持(增加isPtz字段)

louhangfei 2 年 前
コミット
b0afe9c016

+ 8 - 0
src/api/camera/camera-overview.ts

@@ -22,6 +22,11 @@ export type CameraQueryParams = {
   pageSize?: number;
 };
 
+export enum IsPtz {
+  disabled = 0,
+  enbaled = 1,
+}
+
 /** 根据后端返回的相机详情 */
 export interface CameraDetailServer {
   /** 相机IP */
@@ -60,6 +65,9 @@ export interface CameraDetailServer {
   pushstreamIp: string;
   /** 工位code */
   workspaceCode: string;
+
+  /** 是否支持设置相机转动,比如设置预置位,调整视角等 */
+  isPtz: IsPtz;
 }
 
 export const getCameraList = (params: CameraQueryParams) => {

+ 10 - 1
src/views/cameras/preview/CameraPreview.vue

@@ -24,6 +24,7 @@
   import useFenceStore from './store/useFenceStore';
   import useCameraTree from './hooks/useCameraTree';
   import { onMounted } from 'vue';
+  import { IsPtz } from '@/api/camera/camera-overview';
   const cameraDetailStore = useCameraDetailStore();
   const cameraAlgoStore = useCameraAlgoStore();
   const fenceStore = useFenceStore();
@@ -34,10 +35,18 @@
     () => cameraDetailStore.cameraId,
     (cameraId) => {
       if (cameraId) {
-        presetListStore.getPresetList(cameraId);
+        presetListStore.getPresetList(cameraId).then((res) => {
+          /** 相机如果不能设置预置位,那么就选中默认预置位 */
+          if (cameraDetailStore.detail?.isPtz === IsPtz.disabled) {
+            presetListStore.currentPresetToken = res?.[0].token;
+          }
+        });
         cameraAlgoStore.getCameraAlgoList(cameraId);
       }
     },
+    {
+      immediate: true,
+    },
   );
 
   onMounted(() => {

+ 5 - 1
src/views/cameras/preview/components/CameraViewSetting/CameraViewSetting.vue

@@ -21,7 +21,11 @@
           <CameraLiveVideo />
         </div>
       </div>
-      <div class="presetAddWrapper" :class="{ hidePresetControlCls: isEdit }">
+      <div
+        class="presetAddWrapper"
+        :class="{ hidePresetControlCls: isEdit }"
+        v-if="!!cameraDetailStore.detail?.isPtz"
+      >
         <CameraDirectionControl />
         <ElButton
           type="primary"

+ 1 - 0
src/views/cameras/preview/components/PresetSelect/PresetSelect.vue

@@ -8,6 +8,7 @@
         filterable
         @update:model-value="handleChangeValue"
         :loading="loading"
+        :disabled="Boolean(!cameraDetailStore.detail?.isPtz)"
       >
         <ElOption
           v-for="item in presetOptions"