소스 검색

Merge branch 'all-v4-lhf' into 'all-v4'

fix: 完成了前台画面显示的接口联调

See merge request skyeye/skyeye_frontend/skyeye-admin!402
楼航飞 1 년 전
부모
커밋
25a296c66e

+ 5 - 2
src/api/camera/camera-preview.ts

@@ -131,6 +131,8 @@ export interface CameraAlgoItem {
   status: ALGO_ENABLED_STATUS;
   algoInfo: AlgoItem;
   extra: string;
+  /** 电子围栏是否展示在前台 */
+  isDisplayFence: FenceDisplayStatus;
 }
 
 /** 查询某个camera下的所有算法 */
@@ -513,7 +515,8 @@ export const getCameraAlgoPresetList = (cameraId: number): Promise<{ algoInfoVOL
 };
 
 interface UpdateFenceType {
-  cameraCode: string;
+  cameraId: number;
+  algoId: number;
   isDisplayFence: FenceDisplayStatus;
 }
 
@@ -521,7 +524,7 @@ interface UpdateFenceType {
 export const updateFenceDisplayStatus = (data: UpdateFenceType) => {
   return http.request({
     url: `/admin/algo/updateFenceDisplayStatus`,
-    method: 'put',
+    method: 'post',
     data,
   });
 };

+ 7 - 17
src/modules/algo-params-setting-base/components/FenceToolbar/FenceToolbar.vue

@@ -111,12 +111,13 @@
     },
   );
   watch(
-    () => cameraDetailStore.isDisplayFence,
+    () => cameraAlgoStore.selectedAlgoDetail?.isDisplayFence,
     (isDisplayFence) => {
-      isDisplayFenceInVideo.value = isDisplayFence;
+      isDisplayFenceInVideo.value = Boolean(isDisplayFence);
     },
     {
       immediate: true,
+      deep: true,
     },
   );
 
@@ -162,26 +163,15 @@
   };
 
   const handleUpdateDisplay = (nextStatus: boolean) => {
+    const algoDetail = cameraAlgoStore.selectedAlgoDetail;
+    if (!algoDetail) return;
     const params = {
-      cameraCode: cameraDetailStore.detail?.code!,
+      cameraId: algoDetail.cameraId!,
+      algoId: algoDetail.algoId!,
       isDisplayFence: nextStatus ? FenceDisplayStatus.enabled : FenceDisplayStatus.disabled,
     };
 
     updateFenceDisplayStatus(params);
-    if (nextStatus) {
-      // 由于历史原因,需要调用两次接口
-      const cameraId = cameraDetailStore.cameraId;
-      const algoId = cameraAlgoStore.selectedAlgoId!;
-      const presetToken = presetStore.currentPresetToken;
-      const params = {
-        algoId,
-        cameraId,
-        presetToken,
-      };
-      choosePreset(params).then((res) => {
-        ElMessage.success('修改成功');
-      });
-    }
   };
 
   const handleUpdateFenceStatus = (nextStatus: boolean) => {

+ 1 - 3
src/modules/algo-params-setting-base/store/useCameraDetailStore.ts

@@ -33,7 +33,6 @@ const formatDateTime = (time: string) => {
 
 const useCameraDetailStore = defineStore('cameraDetail', () => {
   const cameraId = useRouteQuery('cameraId', '', { transform: (str) => Number(str) });
-  const isDisplayFence = ref<boolean>(false);
 
   const detail = ref<CameraDetailServer | null>(null);
 
@@ -48,14 +47,13 @@ const useCameraDetailStore = defineStore('cameraDetail', () => {
       resolution: newDetail.resolution || VideoResolution.HIGH_RESOLUTION,
       period: newDetail.nvrPeriod || 30,
     };
-    isDisplayFence.value = newDetail.isDisplayFence === FenceDisplayStatus.enabled ? true : false;
   };
 
   const clear = () => {
     detail.value = null;
     params.value = { ...defaultParams };
   };
-  return { detail, setDetail, cameraId, params, clear, isDisplayFence };
+  return { detail, setDetail, cameraId, params, clear };
 });
 
 export default useCameraDetailStore;

+ 1 - 1
src/types/camera/type.ts

@@ -73,7 +73,7 @@ export interface CameraDetailServer extends CameraAddItem {
   workspaceName?: string; // 工位名称
   workspaceCode?: string; // 工位code
   principal?: string; // 工位负责人
-  isDisplayFence: FenceDisplayStatus;
+  // isDisplayFence: FenceDisplayStatus;
 
   // TODO:以下字段为V4版本之前本interface所具有,V4接口无以下返回,暂保留
   // /** 相机MAC地址 */