chauncey 1 год назад
Родитель
Сommit
970b747feb

+ 12 - 8
src/views/map-config/mini-map/MapBase/KonvaMap.vue

@@ -190,8 +190,13 @@ const handleStageClick = (e: any) => {
       const clickedVideoUrl = props.filterData.find(
         (item) => item.code === lastClickedGroupId.value,
       );
-      if (clickedVideoUrl) {
-        lastClickedVideoUrl.value = clickedVideoUrl.pushStreamDTO.videoUrls;
+
+      const videoUrl = clickedVideoUrl.pushStreamDTO?.videoUrls?.pushstreamIpAbs
+      if (videoUrl) {
+        lastClickedVideoUrl.value = videoUrl;
+      } else {
+        ElMessage.error("视频地址不存在")
+        return;
       }
       isShow.value = false;
       posX.value = e.evt.offsetX + 20;
@@ -364,7 +369,6 @@ const saveLayout = () => {
 
 //删除相机
 const handleKeyDown = (e) => {
-  console.log(e)
   if (e.keyCode === 46 || e.code === 'Delete' || e.keyCode === 8 || e.code === 'Backspace') {
     if (lastClickedGroupId.value === defaultCameraId.value) {
       // ElMessage.error({
@@ -433,7 +437,7 @@ const createMap = (layout, selectId) => {
         return item;
       })
       ?.filter((cam) => {
-        if (shopCameraList.value.findIndex((x) => x.code === cam.id) >= 0) {
+        if (props.cameraList.findIndex((x) => x.code === cam.id) >= 0) {
           return true;
         } else {
           unExitList.push(cam.code);
@@ -467,12 +471,12 @@ defineExpose({
 });
 onMounted(() => {
   camImg.src = cameraImgSrc;
-  // stageAll.value.addEventListener('keydown', handleKeyDown);
+  window.addEventListener('keydown', handleKeyDown);
 });
 
-// onBeforeUnmount(() => {
-//   stageAll.value.removeEventListener('keydown', handleKeyDown);
-// });
+onBeforeUnmount(() => {
+  window.removeEventListener('keydown', handleKeyDown);
+});
 </script>
 
 <style scoped lang="scss">

+ 0 - 1
src/views/map-config/mini-map/MiniMapConfig.vue

@@ -219,7 +219,6 @@ const getShopContent = async (id: number) => {
     isMap.value = res.isUploadBg;
     if (res.isUploadBg) {
       isUploadBg.value = true;
-      console.log(res)
       konvaMap.value.createMap(res, selectedShopId.value);
     } else {
       hasBg.value = false;

+ 14 - 4
src/views/page-config/component/BasicLayoutList.vue

@@ -120,16 +120,26 @@ const getLayoutInfoImg = (layoutType: LayoutConfigType.scene | LayoutConfigType.
     case LayoutConfigType.scene:
       scenePlatformApiMap[viewType]({ companyIds: idList }).then((res) => {
         res.map((companyWithLayout) => {
-          layoutList.value.find((company) => company.id === companyWithLayout.targetId)!.layout =
-            JSON.parse(companyWithLayout.layout).bgInfo.img;
+          let img
+          try {
+            img = JSON.parse(companyWithLayout.layout).bgInfo.img;
+          } catch {
+            img = ''
+          }
+          layoutList.value.find((company) => company.id === companyWithLayout.targetId)!.layout = img
         });
       });
       break;
     case LayoutConfigType.camera:
       cameraPlatformApiMap[viewType]({ workshopIdList: idList }).then((res) => {
         res.map((workshopWithLayout) => {
-          layoutList.value.find((workshop) => workshop.id === workshopWithLayout.targetId)!.layout =
-            JSON.parse(workshopWithLayout.layout).bgImgUrl;
+          let img
+          try {
+            img = JSON.parse(workshopWithLayout.layout).bgImgUrl;
+          } catch {
+            img = ''
+          }
+          layoutList.value.find((workshop) => workshop.id === workshopWithLayout.targetId)!.layout = img
         });
       });
       break;