Просмотр исходного кода

车间地图离开跳转其他页面时的保存逻辑修改

zhudie 2 лет назад
Родитель
Сommit
d6857c8979

+ 9 - 1
src/views/map-config/mini-map/MapBase/KonvaMap.vue

@@ -47,6 +47,7 @@
   import useMiniMap from '../use-mini-map';
   import useMiniMap from '../use-mini-map';
   import { storeToRefs } from 'pinia';
   import { storeToRefs } from 'pinia';
   import { updateMinMapViewLayoutApi } from '@/api/scene/scene';
   import { updateMinMapViewLayoutApi } from '@/api/scene/scene';
+  import { emitKeypressEvents } from 'readline';
 
 
   const globSetting = useGlobSetting();
   const globSetting = useGlobSetting();
 
 
@@ -65,7 +66,7 @@
     integrationState?: number;
     integrationState?: number;
   }
   }
 
 
-  const emit = defineEmits(['changeDefaultCamera', 'sendCameraId']);
+  const emit = defineEmits(['changeDefaultCamera', 'sendCameraId', 'change']);
   const props = defineProps<{ filterData: DataType[] }>();
   const props = defineProps<{ filterData: DataType[] }>();
   const camImg = new Image();
   const camImg = new Image();
 
 
@@ -191,6 +192,7 @@
 
 
   const handleDragStart = () => {
   const handleDragStart = () => {
     tipShow.value = false;
     tipShow.value = false;
+    emit('change', true);
   };
   };
 
 
   const handleStageClick = (e: any) => {
   const handleStageClick = (e: any) => {
@@ -203,6 +205,7 @@
     //判断是否点击相机组
     //判断是否点击相机组
     if (parent.hasName('group')) {
     if (parent.hasName('group')) {
       lastClickedGroupId.value = parent.id();
       lastClickedGroupId.value = parent.id();
+      emit('change', true);
       // 判断是否为右键点击
       // 判断是否为右键点击
       if (e.evt.button === 2) {
       if (e.evt.button === 2) {
         lastClickedGroupId.value = parent.id();
         lastClickedGroupId.value = parent.id();
@@ -227,6 +230,7 @@
     // 将变换器附加到点击的相机
     // 将变换器附加到点击的相机
     transformerNode.nodes([cameraNode]);
     transformerNode.nodes([cameraNode]);
     transformerNode.moveToTop();
     transformerNode.moveToTop();
+    emit('change', true);
   };
   };
 
 
   //添加相机
   //添加相机
@@ -258,6 +262,7 @@
       cameras.value[0].isDefault = true;
       cameras.value[0].isDefault = true;
       defaultCameraId.value = id;
       defaultCameraId.value = id;
     }
     }
+    emit('change', true);
   };
   };
 
 
   //设置默认相机
   //设置默认相机
@@ -278,6 +283,7 @@
     // 将变换器附加到点击的相机
     // 将变换器附加到点击的相机
     transformerNode.nodes([cameraNode]);
     transformerNode.nodes([cameraNode]);
     defaultShow.value = false;
     defaultShow.value = false;
+    emit('change', true);
   };
   };
 
 
   watch(
   watch(
@@ -352,6 +358,7 @@
       defaultCameraId: defaultCameraId.value,
       defaultCameraId: defaultCameraId.value,
       cameraList: camerasLists,
       cameraList: camerasLists,
     };
     };
+    emit('change', false);
     return JSON.stringify(layout);
     return JSON.stringify(layout);
   };
   };
 
 
@@ -387,6 +394,7 @@
         const transformerNode = transformer.value.getNode();
         const transformerNode = transformer.value.getNode();
         transformerNode.nodes([]);
         transformerNode.nodes([]);
       }
       }
+      emit('change', true);
     }
     }
   };
   };
 
 

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

@@ -108,6 +108,7 @@
           :filter-data="filterShopCameraList"
           :filter-data="filterShopCameraList"
           @change-default-camera="changeDefault"
           @change-default-camera="changeDefault"
           @send-camera-id="sendCameras"
           @send-camera-id="sendCameras"
+          @change="changeMap"
           v-moveable:1
           v-moveable:1
         />
         />
         <div id="editContainer" v-moveable:1></div>
         <div id="editContainer" v-moveable:1></div>
@@ -172,6 +173,9 @@
   //是否能够保存
   //是否能够保存
   const isSave = computed(() => selectedShopCode.value && hasBg.value);
   const isSave = computed(() => selectedShopCode.value && hasBg.value);
 
 
+  //是否修改
+  const isChange = ref<boolean>(false);
+
   //单个相机时是否上传图片
   //单个相机时是否上传图片
   const isUploadBg = ref<boolean>(true);
   const isUploadBg = ref<boolean>(true);
   const isMap = ref(false);
   const isMap = ref(false);
@@ -317,8 +321,12 @@
     }
     }
   };
   };
 
 
+  const changeMap = (val) => {
+    isChange.value = val;
+  };
+
   onBeforeRouteLeave(async () => {
   onBeforeRouteLeave(async () => {
-    if (isSave.value) {
+    if (isChange.value) {
       await ElMessageBox.confirm('是否保存当前修改?', '提示', {
       await ElMessageBox.confirm('是否保存当前修改?', '提示', {
         confirmButtonText: '是',
         confirmButtonText: '是',
         cancelButtonText: '否',
         cancelButtonText: '否',