Sfoglia il codice sorgente

fix: [小地图]相机未接入平台,不允许添加到小地图

louhangfei 1 anno fa
parent
commit
5d607fc9a3

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

@@ -46,6 +46,14 @@ export interface CameraAddItem {
   version?: number; // 版本
 }
 
+/** 相机是否接入平台 */
+export enum IntegrationIsActive {
+  /** 接入平台 */
+  YES = 0,
+  /** 未接入平台 */
+  NO = 1,
+}
+
 /** 根据后端返回的相机详情 */
 export interface CameraDetailServer extends CameraAddItem {
   isDisabled?: number; // 状态: 0-启用, 1-禁用
@@ -56,7 +64,7 @@ export interface CameraDetailServer extends CameraAddItem {
   isDeleted?: number; //0-未删除,大于0(时间戳)-已删除
   tenantId?: number; // 租户ID
   networkingState: number; // 联网状态: 0-启用, 1-禁用
-  integrationState: number; // 接入状态: 0-启用, 1-禁用
+  integrationState: IntegrationIsActive; // 接入状态: 0-启用, 1-禁用
   render?: string; // 渲染选择,无渲染/某个算法
   extra?: string; // 扩展数据
   pushStreamDTO?: PushStreamDTOType;

+ 3 - 1
src/types/scene/type.ts

@@ -1,3 +1,4 @@
+import { IntegrationIsActive } from '../camera/type';
 import { ViewType, DrawerType } from './constant';
 
 /** 场景标签信息 */
@@ -162,7 +163,8 @@ export interface ShopMapCamera extends CameraItem {
   isSet: number;
   /** 工位名称 */
   workSpaceName: string;
-  integrationState?: number;
+  /** 相机是否接入平台 */
+  integrationState?: IntegrationIsActive;
 }
 
 /** ??? */

+ 14 - 7
src/views/map-config/mini-map/MiniMapConfig.vue

@@ -43,9 +43,9 @@
             :class="{
               isAdded: isAddedCamera(item.code),
               isActive: item.code === caremaActiveId,
-              integrationState: item.integrationState === 1,
+              integrationState: item.integrationState === IntegrationIsActive.NO,
             }"
-            @click="handleAddCamera(item.code, index)"
+            @click="handleAddCamera(item, index)"
           >
             <span class="camera-id">{{ item.name }}</span>
             <el-popover placement="right-start" trigger="hover" :content="item.workSpaceName" :teleported="false">
@@ -107,7 +107,7 @@
   import { ShopMapCamera } from '@/types/scene/type';
   import { ViewType } from '@/types/page-config/type';
   import { openMessageBox } from '@/views/system-config/business-scene/components/MessageBox';
-
+  import { IntegrationIsActive } from '@/types/camera/type';
   const cameraStatus = useCameraStatus();
   const { openIntervalNew, closeInterval } = cameraStatus;
 
@@ -275,19 +275,26 @@
     );
   });
 
-  const handleAddCamera = (cameraId: string, index: number) => {
-    if (isAddedCamera(cameraId)) {
-      const camera = konvaMap.value.findCamera(cameraId);
+  const handleAddCamera = (cameraDetail: ShopMapCamera, index: number) => {
+    const cameraCode = cameraDetail.code;
+    if (isAddedCamera(cameraCode)) {
+      const camera = konvaMap.value.findCamera(cameraCode);
       konvaMap.value.handleCameraClick(camera);
       return;
     }
+    if (cameraDetail.integrationState === IntegrationIsActive.NO) {
+      ElMessage.warning({
+        message: '该相机未接入平台,暂时无法添加到小地图',
+      });
+      return;
+    }
     if (!hasBg.value) {
       ElMessage.warning({
         message: '请先添加车间地图',
       });
       return;
     }
-    konvaMap.value.addCamera(cameraId, index);
+    konvaMap.value.addCamera(cameraCode, index);
   };
 
   const handleSave = () => {