bill před 2 roky
rodič
revize
c9eb8b5874
3 změnil soubory, kde provedl 29 přidání a 19 odebrání
  1. 18 13
      src/hook/useGraphic.ts
  2. 9 4
      src/views/graphic/header.vue
  3. 2 2
      src/views/photos/index.vue

+ 18 - 13
src/hook/useGraphic.ts

@@ -53,6 +53,21 @@ export const graphicState = ref({
   continuedMode: false,
 });
 
+export const loadData = genUseLoading(
+  async (data?: RoadPhoto, oldId?: RoadPhoto["id"]) => {
+    if (data) {
+      oldId && drawRef.value.load.clear();
+      console.log("load", data);
+      drawRef.value.load.load(data.data, {
+        ...data.sceneData,
+        backImage: data.photoUrl,
+      });
+    } else {
+      drawRef.value.load.clear();
+    }
+  }
+);
+
 export const setCanvas = async (
   canvas: HTMLCanvasElement,
   data: Ref<AccidentPhoto | RoadPhoto>
@@ -62,19 +77,9 @@ export const setCanvas = async (
 
     watch(
       () => data.value?.id,
-      genUseLoading(async (id, oldId) => {
-        if (data.value) {
-          oldId && drawRef.value.load.clear();
-          console.log("load", data.value);
-
-          drawRef.value.load.load(data.value.data, {
-            ...data.value.sceneData,
-            backImage: data.value.photoUrl,
-          });
-        } else {
-          drawRef.value.load.clear();
-        }
-      }) as any,
+      (id, oldId) => {
+        loadData(data.value, oldId);
+      },
       { immediate: true, flush: "post" }
     );
   });

+ 9 - 4
src/views/graphic/header.vue

@@ -73,6 +73,7 @@ import UiInput from "@/components/base/components/input/index.vue";
 import { roadPhotos } from "@/store/roadPhotos";
 import { uploadImage } from "@/store/sync";
 import { genUseLoading } from "@/hook";
+import { loadData } from "@/hook/useGraphic";
 
 import { dataService } from "@/graphic/Service/DataService";
 
@@ -187,10 +188,14 @@ const saveHandler = async () => {
       name: isRoad.value ? writeRouteName.roads : writeRouteName.accidents,
     });
   } else {
-    router.replace({
-      name: writeRouteName.graphic,
-      params: { mode: Mode.Road, id: data.value.id, action: "update" },
-    });
+    if (router.currentRoute.value.params.action === "update") {
+      loadData(data.value, data.value.id);
+    } else {
+      router.replace({
+        name: writeRouteName.graphic,
+        params: { mode: Mode.Road, id: data.value.id, action: "update" },
+      });
+    }
   }
 };
 

+ 2 - 2
src/views/photos/index.vue

@@ -67,7 +67,7 @@ import { PhotoRaw, photos } from "@/store/photos";
 import UiIcon from "@/components/base/components/icon/index.vue";
 import { router, writeRouteName } from "@/router";
 import ButtonPane from "@/components/button-pane/index.vue";
-import { computed, onDeactivated, ref, watchEffect } from "vue";
+import { computed, onActivated, ref, watchEffect } from "vue";
 import { Mode } from "@/views/graphic/menus";
 import UiButton from "@/components/base/components/button/index.vue";
 import Photos from "@/components/photos/index.vue";
@@ -191,7 +191,7 @@ const gotoDraw = (mode: Mode) => {
   });
 };
 
-onDeactivated(() => {
+onActivated(() => {
   active.value = null;
   selectMode.value = false;
 });