Procházet zdrojové kódy

fix: 无电子围栏的时候,增加文字提示

louhangfei před 1 rokem
rodič
revize
d04234508f

+ 4 - 4
src/api/camera/camera-preview.ts

@@ -329,7 +329,7 @@ interface CreatePresetParam {
 /** 创建预置位 */
 export const createPresetApi = (data: CreatePresetParam) => {
   return http.request({
-    url: `/camera/createPreset`,
+    url: `/onvif/createPreset`,
     method: 'post',
     data,
   });
@@ -343,7 +343,7 @@ interface UpdatePresetNameParam {
 /** 修改预置位名称 */
 export const changePresetNameApi = (data: UpdatePresetNameParam) => {
   return http.request({
-    url: `/camera/changePresetName`,
+    url: `/onvif/changePresetName`,
     method: 'post',
     data,
   });
@@ -352,7 +352,7 @@ export const changePresetNameApi = (data: UpdatePresetNameParam) => {
 /** 删除预置位 */
 export const deletePresetApi = (data: { presetToken: string; cameraId: number }) => {
   return http.request({
-    url: `/camera/deletePreset`,
+    url: `/onvif/deletePreset`,
     method: 'post',
     data,
   });
@@ -426,7 +426,7 @@ interface CameraMoveParam {
 /** 移动相机 */
 export const cameraMoveApi = (data: CameraMoveParam) => {
   return http.request({
-    url: `/camera/move`,
+    url: `/onvif/move`,
     method: 'post',
     data,
   });

+ 1 - 2
src/views/cameras/algo-params-setting/AlgoParamsSetting.vue

@@ -49,12 +49,11 @@
       isShowFence.value = false;
       fenceStore.clear();
       if (cameraId) {
-        // FIXME: 缺 后端v4 api
         getCameraDeatilById(cameraId).then(async (res) => {
           cameraDetailStore.setDetail(res);
           // 如果isPtz为null,或者为0,都按照枪击相机
+          const presetList = await presetListStore.getPresetList(cameraId);
           if (res.isPtz === IsPtz.disabled || !res.isPtz) {
-            const presetList = await presetListStore.getPresetList(cameraId);
             presetListStore.currentPresetToken = presetList?.[0].token;
           }
         });

+ 1 - 2
src/views/cameras/algo-params-setting/components/CameraViewSetting/CameraViewSetting.vue

@@ -205,7 +205,6 @@
   // };
 
   const showFenceTool = computed(() => {
-    if (!presetStore.currentPresetToken) return false;
     if (!cameraAlgoStore.selectedAlgoId) return false;
     if (!fenceStore.showFenceTool) return false;
     return true;
@@ -257,7 +256,7 @@
   .presetAddWrapper {
     position: absolute;
     bottom: 50px;
-    right: 50px;
+    right: 280px;
     flex-direction: column;
     display: flex;
     align-items: center;

+ 20 - 0
src/views/cameras/algo-params-setting/components/FenceToolbar/Description.vue

@@ -0,0 +1,20 @@
+<template>
+  <div class="tipWrapper">
+    <div v-if="props.isSimple">请在画面上绘制电子围栏...</div>
+    <div v-else>
+      <div>选择目标预置位后</div>
+      <div>在画面上绘制电子围栏...</div>
+    </div>
+  </div>
+</template>
+<script lang="ts" setup>
+  const props = defineProps<{ isSimple: boolean }>();
+</script>
+<style scoped>
+  .tipWrapper {
+    background-color: #e8f5ff;
+    color: #1890ff;
+    padding: 10px 20px;
+    font-size: 14px;
+  }
+</style>

+ 2 - 0
src/views/cameras/algo-params-setting/components/FenceToolbar/FenceToolbar.vue

@@ -13,6 +13,7 @@
       {{ selectedAlgoDetail?.algoInfo?.name }}
     </div>
     <PresetSelect />
+    <Description :is-simple="Boolean(!cameraDetailStore.detail?.isPtz)" v-if="fenceStore.allFences.length === 0" />
     <div v-if="fenceStore.allFences.length > 0">
       <div style="display: flex">
         <ElCheckbox label="检测围栏外部" v-model="isFenceRegionOut" @update:modelValue="handleUpdateRegion" />
@@ -62,6 +63,7 @@
   import { FenceDisplayStatus } from '@/types/camera/constant';
   import { useGlobSetting } from '@/hooks/setting';
   import useParamsSettingFn from '../../hooks/useParamsSettingFn';
+  import Description from './Description.vue';
   const cameraAlgoStore = useCameraAlgoStore();
 
   const fenceStore = useFenceStore();