bill vor 1 Jahr
Ursprung
Commit
5455b418bd
2 geänderte Dateien mit 14 neuen und 6 gelöschten Zeilen
  1. 13 5
      src/hook/useGraphic.ts
  2. 1 1
      src/views/graphic/header.vue

+ 13 - 5
src/hook/useGraphic.ts

@@ -15,7 +15,7 @@ import type { AccidentPhoto } from "@/store/accidentPhotos";
 import { api } from "@/store/sync";
 import { genUseLoading } from "./useLoading.js";
 import mitt from "mitt";
-import router from "@/router/index.js";
+import router, { readyRouteName } from "@/router/index.js";
 
 export const bus = mitt();
 export type UITypeT = typeof UIType;
@@ -57,7 +57,8 @@ export const graphicState = ref({
 });
 
 export const loadData = genUseLoading(
-  async (data?: RoadPhoto, oldId?: RoadPhoto["id"]) => {
+  async (data: RoadPhoto, oldId: RoadPhoto["id"], onCleanup: any) => {
+    console.log(data, oldId);
     if (data) {
       oldId && drawRef.value.load.clear();
       await drawRef.value.load.load(JSON.parse(JSON.stringify(data.data)), {
@@ -69,7 +70,14 @@ export const loadData = genUseLoading(
       graphicState.value.canRevoke = false;
     } else {
       drawRef.value.load.clear();
-      router.back();
+      console.error("没有数据!");
+
+      const timeout = setTimeout(() => {
+        if (router.currentRoute.value.name === readyRouteName.graphic) {
+          router.back();
+        }
+      }, 1000);
+      onCleanup(() => clearTimeout(timeout));
     }
   }
 );
@@ -83,8 +91,8 @@ export const setCanvas = async (
 
     watch(
       () => data.value?.id,
-      (id, oldId) => {
-        loadData(data.value, oldId);
+      (id, oldId, onCleanup) => {
+        loadData(data.value, oldId, onCleanup);
       },
       { immediate: true, flush: "post" }
     );

+ 1 - 1
src/views/graphic/header.vue

@@ -196,7 +196,7 @@ const saveHandler = async () => {
   if (isRoad.value) {
     Message.success(`保存成功`);
   }
-  await router.replace({
+  await router.push({
     name: isRoad.value ? writeRouteName.roads : writeRouteName.accidents,
   });