Explorar el Código

Merge branch 'saveFix' into 'master'

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

See merge request tian-group/skyeye-admin-fe!80
楼航飞 hace 2 años
padre
commit
0ad31d67d3

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

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

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

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