ソースを参照

fix: rtsp流添加相机接口

sunhongyao341504 2 年 前
コミット
d4bbd5f514

+ 15 - 1
src/api/camera/camera-overview.ts

@@ -1,5 +1,10 @@
 import { http } from '@/utils/http/axios';
-import { CameraIPItem, CameraShowItem, CameraRangeItem } from '@/views/cameras/overview/type';
+import {
+  CameraIPItem,
+  CameraShowItem,
+  CameraRangeItem,
+  CameraSRS,
+} from '@/views/cameras/overview/type';
 
 export type PaginationArrayData<T> = {
   records: T[];
@@ -143,3 +148,12 @@ export const getCameraState = (data: { cameraCodeList: string[] }) => {
     data,
   });
 };
+
+/** 添加流媒体相机 */
+export const addSRSCameraItem = (data: CameraSRS) => {
+  return http.request({
+    url: '/cameraConfig/saveRstp',
+    method: 'post',
+    data,
+  });
+};

+ 4 - 3
src/views/cameras/overview/components/AddCameraBySRS.vue

@@ -39,9 +39,9 @@
             style="width: 200px"
           />
         </el-form-item>
-        <el-form-item label="rsp地址:" prop="srsStream">
+        <el-form-item label="rsp地址:" prop="rtspurl">
           <el-input
-            v-model="CameraSRSData.srsStream"
+            v-model="CameraSRSData.rtspurl"
             placeholder="rtsp://192.168.0.249:557/34020000000_00000000000001"
             style="width: 685px"
           />
@@ -80,7 +80,7 @@
     name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
     workspaceCode: [{ required: true, message: '请输入场景名称', trigger: 'blur' }],
     code: [{ required: true, message: '请输入设备ID号', trigger: 'blur' }],
-    srsStream: [{ required: true, message: '请输入流媒体地址', trigger: 'blur' }],
+    rtspurl: [{ required: true, message: '请输入流媒体地址', trigger: 'blur' }],
   };
 
   const handleCancel = () => {
@@ -95,6 +95,7 @@
           (item) => item.code === CameraSRSData.value.workspaceCode,
         ).id;
         delete (copyData as any).workspaceCode;
+        delete (copyData as any).principal;
         emits('confirm-execute', copyData);
       }
     });

+ 11 - 4
src/views/cameras/overview/components/CameraAddPopover.vue

@@ -26,7 +26,7 @@
       <SRSAddCamera
         v-if="addType === 'srs'"
         @cancel-execute="updateValue(false)"
-        @confirm-execute="onAddCamera"
+        @confirm-execute="onAddSRSCamera"
       />
       <RangeAddCamera v-if="addType === 'ipRange'" @cancel-execute="updateValue(false)" />
     </div>
@@ -47,7 +47,7 @@
   const emits = defineEmits(['update:modelValue']);
 
   const cameraOverview = useCameraOverview();
-  const { addCamera } = cameraOverview;
+  const { addCamera, addSRSCamera } = cameraOverview;
 
   const addType = ref(cameraAddType[0].value);
 
@@ -57,8 +57,15 @@
   };
 
   const onAddCamera = (data) => {
-    addCamera(data);
-    updateValue(false);
+    addCamera(data).then(() => {
+      updateValue(false);
+    });
+  };
+
+  const onAddSRSCamera = (data) => {
+    addSRSCamera(data).then(() => {
+      updateValue(false);
+    });
   };
 </script>
 

+ 10 - 2
src/views/cameras/overview/stores/useCameraOverview.ts

@@ -6,8 +6,9 @@ import {
   addCameraItem,
   updateCameraItem,
   getCameraState,
+  addSRSCameraItem,
 } from '@/api/camera/camera-overview';
-import { CameraIPItem, CameraShowItem } from '../type';
+import { CameraIPItem, CameraSRS, CameraShowItem } from '../type';
 import { useRequest } from 'vue-hooks-plus';
 
 export const useCameraOverview = defineStore('camera-overview', () => {
@@ -62,7 +63,13 @@ export const useCameraOverview = defineStore('camera-overview', () => {
   const addCamera = (data: CameraIPItem) => {
     console.log(data);
 
-    addCameraItem(data).then(() => {
+    return addCameraItem(data).then(() => {
+      getCameraItems();
+    });
+  };
+
+  const addSRSCamera = (data: CameraSRS) => {
+    return addSRSCameraItem(data).then(() => {
       getCameraItems();
     });
   };
@@ -113,6 +120,7 @@ export const useCameraOverview = defineStore('camera-overview', () => {
     openInterval,
     closeInterval,
     getState,
+    addSRSCamera,
   };
 });
 

+ 1 - 1
src/views/cameras/overview/type.ts

@@ -92,7 +92,7 @@ export interface CameraSRS {
   /** 相机工位code */
   workspaceCode?: string;
   /** 流媒体地址 */
-  srsStream: string;
+  rtspurl: string;
   /** 工位负责人 */
   principal?: string;
   /** 描述 */

+ 6 - 0
src/views/page-config/ConfigEdit.vue

@@ -194,6 +194,12 @@
       });
       return false;
     }
+    if (
+      rawFile.type !== 'image/jpg' &&
+      rawFile.type !== 'image/jpeg' &&
+      rawFile.type !== 'image/png'
+    ) {
+    }
     // console.log(rawFile.type);
     // return false;
   };