Przeglądaj źródła

fix:小地图添加相机push流地址

sunhongyao341504 2 lat temu
rodzic
commit
3a337eb525

+ 3 - 3
.env.development

@@ -16,8 +16,8 @@ VITE_DROP_CONSOLE = true
 # 跨域代理,可以配置多个,请注意不要换行
 #VITE_PROXY = [["/appApi","http://localhost:8001"],["/upload","http://localhost:8001/upload"]]
 # VITE_PROXY=[["/temp","http://172.16.23.144:8800"],["/upload","http://172.16.23.144:8086"]]
-VITE_PROXY=[["/skyeye-admin-api","http://172.16.23.144:8800/api"]]
-# VITE_PROXY=[["/skyeye-admin-api","http://192.168.1.102:8800/api"]]
+# VITE_PROXY=[["/skyeye-admin-api","http://172.16.23.144:8800/api"]]
+VITE_PROXY=[["/skyeye-admin-api","http://192.168.1.102:8800/api"]]
 
 # API 接口地址
 VITE_GLOB_API_URL = 
@@ -25,7 +25,7 @@ VITE_GLOB_API_URL =
 VITE_GLOB_UPLOAD_URL= http://172.16.23.144:8086
 
 # 图片前缀地址
-VITE_GLOB_IMG_URL = //172.16.23.144/tiancangstatic
+VITE_GLOB_IMG_URL = //192.168.1.102/skyeye_static/
 
 
 # 接口前缀

+ 1 - 1
.env.production

@@ -15,7 +15,7 @@ VITE_GLOB_API_URL =
 VITE_GLOB_UPLOAD_URL= http://172.16.23.144:8086
 
 # 图片前缀地址
-VITE_GLOB_IMG_URL= http://172.16.23.144:8086
+VITE_GLOB_IMG_URL= /skyeye_static
 
 # 接口前缀
 VITE_GLOB_API_URL_PREFIX = /skyeye-admin-api

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

@@ -54,6 +54,8 @@ export interface CameraDetailServer {
   workspaceName: string;
   /** 联网状态: 0-启用, 1-禁用 */
   networkingState: number;
+  /** 平台状态: 0-启用, 1-禁用 */
+  integrationState: number;
   /** 状态: 0-启用, 1-禁用 */
   status: number;
   /** 相机流 */
@@ -95,6 +97,20 @@ export const updateCameraItem = (data: Partial<CameraIPItem>) => {
   });
 };
 
+export const startCameraStream = (cameraId: number) => {
+  return http.request({
+    url: `/cameraConfig/startCameraStream?cameraId=${cameraId}`,
+    method: 'put',
+  });
+};
+
+export const stopCameraStream = (cameraId: number) => {
+  return http.request({
+    url: `/cameraConfig/stopCameraStream?cameraId=${cameraId}`,
+    method: 'put',
+  });
+};
+
 export const deleteCameraItem = (params: { cameraId: number }) => {
   return http.request({
     url: `/cameraConfig/deleteCamera?cameraId=${params.cameraId}`,

+ 2 - 0
src/api/scene/scene.ts

@@ -182,6 +182,8 @@ export type CameraItem = {
   remark: string;
   /** 状态: 0-启用, 1-禁用 */
   status: number;
+  /** 推流地址 */
+  pushstreamIp: string;
 };
 
 export type WorkSpaceCameraRelative = WorkSpaceInfoItem & { cameraList: CameraItem[] };

+ 15 - 9
src/views/cameras/overview/overviewColumns.ts

@@ -5,10 +5,10 @@ import connectedIcon from '@/assets/images/table/camera-netConnect.png';
 import unConnectedIcon from '@/assets/images/table/camera-netUnconnect.png';
 import { protocalTypeSelect } from './constant';
 import useCameraOverview from './stores/useCameraOverview';
-import { CameraShowItem } from './type';
+import { startCameraStream, stopCameraStream } from '@/api/camera/camera-overview';
 
 const cameraOverview = useCameraOverview();
-const { editCamera } = cameraOverview;
+const { getState, getCameraItems } = cameraOverview;
 
 export const columns: BasicColumn[] = [
   {
@@ -87,19 +87,25 @@ export const columns: BasicColumn[] = [
   },
   {
     label: '是否进入平台',
-    prop: 'status',
+    prop: 'integrationState',
     render(record) {
       return h(
         ElSwitch,
         {
-          modelValue: record.row.status,
+          modelValue: record.row.integrationState,
           onChange: (val) => {
             record.row.status = val;
-            const upData: CameraShowItem = {} as CameraShowItem;
-            upData.code = record.row.code;
-            upData.id = record.row.id;
-            upData.status = record.row.status;
-            editCamera(upData);
+            if (val === 0) {
+              startCameraStream(record.row.id).then(() => {
+                getState();
+                getCameraItems();
+              });
+            } else {
+              stopCameraStream(record.row.id).then(() => {
+                getState();
+                getCameraItems();
+              });
+            }
           },
           activeValue: 0,
           inactiveValue: 1,

+ 1 - 0
src/views/cameras/overview/stores/useCameraOverview.ts

@@ -112,6 +112,7 @@ export const useCameraOverview = defineStore('camera-overview', () => {
     editCamera,
     openInterval,
     closeInterval,
+    getState,
   };
 });
 

+ 2 - 0
src/views/cameras/overview/type.ts

@@ -23,6 +23,8 @@ export interface CameraIPItem {
   password?: string;
   /** 相机工位code */
   workspaceCode?: string;
+  /** 推流地址 */
+  pushstreamIp: string;
 }
 
 export interface CameraShowItem extends CameraIPItem {

+ 6 - 0
src/views/map-config/mini-map/hooks/useMapEditor.ts

@@ -8,8 +8,13 @@ import { TipPositionEnum } from '../type';
 import { ElMessage } from 'element-plus';
 import { useGlobSetting } from '@/hooks/setting';
 import urlJoin from 'url-join';
+import useMiniMap from '../use-mini-map';
+import { storeToRefs } from 'pinia';
 
 export function useMapEditor() {
+  const miniMap = useMiniMap();
+  const { shopCameraList } = storeToRefs(miniMap);
+
   // let initWidth; // 默认宽度
   // let initHeight; // 默认高度
   let stage: Konva.Stage | null = null;
@@ -335,6 +340,7 @@ export function useMapEditor() {
           y: Math.round(item.attrs.y | 0),
           scaleX: Number((item.attrs.scaleX | 1).toFixed(1)),
           scaleY: Number((item.attrs.scaleY | 1).toFixed(1)),
+          url: shopCameraList.value.find((cam) => cam.code === item.attrs.id)?.pushstreamIp || '',
         };
       });
     const layout = {