bill 2 年之前
父节点
当前提交
dbfd3fdaa1
共有 2 个文件被更改,包括 169 次插入159 次删除
  1. 二进制
      server/test/SS-t-P1d6CwREny2/attach/upload/1684923242847878.jpg
  2. 169 159
      src/store/sync.ts

二进制
server/test/SS-t-P1d6CwREny2/attach/upload/1684923242847878.jpg


+ 169 - 159
src/store/sync.ts

@@ -1,176 +1,187 @@
-import axios from '@/dbo/main'
+import axios from "@/dbo/main";
 import { list } from "@/store/measure";
-import {baseLines} from "@/store/baseLine";
-import {basePoints} from "@/store/basePoint";
-import {fixPoints} from "@/store/fixPoint";
-import {photos} from "@/store/photos";
-import {accidentPhotos} from "@/store/accidentPhotos";
-import {roadPhotos} from "@/store/roadPhotos";
-import {blobToBase64, debounce, getId} from '@/utils'
-import {watch} from "vue";
-import {params} from "@/hook";
-import router, {writeRouteName} from "@/router";
-import { baseURL } from '@/dbo/local'
+import { baseLines } from "@/store/baseLine";
+import { basePoints } from "@/store/basePoint";
+import { fixPoints } from "@/store/fixPoint";
+import { photos } from "@/store/photos";
+import { accidentPhotos } from "@/store/accidentPhotos";
+import { roadPhotos } from "@/store/roadPhotos";
+import { blobToBase64, debounce, getId } from "@/utils";
+import { watch } from "vue";
+import { params } from "@/hook";
+import router, { writeRouteName } from "@/router";
+import { baseURL } from "@/dbo/local";
 
-const global = window as any
+const global = window as any;
 
 global.getImageCallback = () => {
-  console.log("原始getImageCallback")
-
-}
+  console.log("原始getImageCallback");
+};
 global.getSceneStoreCallback = () => {
-  console.log("原始getSceneStoreCallback")
-}
+  console.log("原始getSceneStoreCallback");
+};
 global.setSceneStoreCallback = () => {
-  console.log("原始setSceneStoreCallback")
-}
+  console.log("原始setSceneStoreCallback");
+};
 global.uploadImageCallback = () => {
-  console.log("原始uploadImageCallback")
-}
+  console.log("原始uploadImageCallback");
+};
 global.downloadImageCallback = () => {
-  console.log("原始downloadImageCallback")
-}
+  console.log("原始downloadImageCallback");
+};
 
-export const api = import.meta.env.DEV && !global.android
-// const api = import.meta.env.DEV
-  ? {
-      async setStore(data) {
-        return axios.post("sceneStore", data)
-      },
-      async getStore() {
-        return (await axios.get("/attach/sceneStore")).data
-      },
-      async uploadImage(file) {
-        return (await axios({
-          url: "/upload",
-          headers: { "Content-Type": "multipart/form-data" },
-          method: 'post',
-          data: { file }
-        })).data.data as string
-      },
-      async downloadImage(file) {
-        window.open(URL.createObjectURL(file))
-      },
-      async getFile(url) {
-        if (url.includes(baseURL)) {
-          url = url.substring(baseURL.length)
-        }
-        url = url.trim()
-        const data = await axios.get(url,{responseType:'blob'})
-        // console.error("getFile", url)
-        const base64 = await blobToBase64(data.data)
-        // console.error("getFile", url, base64)
-        return base64
-      },
-      async closePage() {
-        return router.push({ name: writeRouteName.scene })
-      }
-    }
-  : {
-    // async setStore(data) {
-    //   return axios.post("sceneStore", data)
-    // },
-    // async getStore() {
-    //   return (await axios.get("/attach/sceneStore")).data
-    // },
-    setStore(data) {
-      return new Promise(resolve => {
-        console.log("调用setSceneStore参数", JSON.stringify(data))
-        global.android.setSceneStore(params.m + "/store.json", JSON.stringify(data))
-        global.setSceneStoreCallback = data => {
-          console.log("setSceneStoreCallback返回", data)
-          resolve(data)
-        }
-      })
-    },
-    getStore() {
-      return new Promise(resolve => {
-        console.log("调用getSceneStore")
-        global.getSceneStoreCallback = data => {
-          console.log("getSceneStoreCallback返回", data)
-          resolve(data ? JSON.parse(data) : data)
-        }
-        global.android.getSceneStore(params.m + "/store.json")
-      })
-    },
-    getFile(fileUrl) {
-      fileUrl = fileUrl.trim()
-      if (import.meta.env.DEV) {
-        return new Promise<string>(resolve => {
-          global.getImageCallback = (base64) => {
-            console.error("getImageCallback返回" + base64)
-            console.error("getFile", fileUrl, base64)
-            resolve(base64)
+export const api =
+  import.meta.env.DEV && !global.android
+    ? // const api = import.meta.env.DEV
+      {
+        async setStore(data) {
+          return axios.post("sceneStore", data);
+        },
+        async getStore() {
+          return (await axios.get("/attach/sceneStore")).data;
+        },
+        async uploadImage(file) {
+          return (
+            await axios({
+              url: "/upload",
+              headers: { "Content-Type": "multipart/form-data" },
+              method: "post",
+              data: { file },
+            })
+          ).data.data as string;
+        },
+        async downloadImage(file) {
+          window.open(URL.createObjectURL(file));
+        },
+        async getFile(url) {
+          if (url.includes(baseURL)) {
+            url = url.substring(baseURL.length);
           }
-          console.log("获取", params.m + fileUrl)
-          global.android.getImage(params.m + fileUrl)
-          console.log(global, global.getImageCallback)
-        })
-      } else {
-        return Promise.resolve(fileUrl)
+          url = url.trim();
+          const data = await axios.get(url, { responseType: "blob" });
+          // console.error("getFile", url)
+          const base64 = await blobToBase64(data.data);
+          // console.error("getFile", url, base64)
+          return base64;
+        },
+        async closePage() {
+          return router.push({ name: writeRouteName.scene });
+        },
       }
-    },
-    uploadImage(file: File) {
-      return new Promise<string>(resolve => {
-        global.uploadImageCallback = resolve
-        console.log("上传图片", params.m + "/" + file.name, "参数", blobToBase64(file))
-        global.android.uploadImage(params.m + "/" + file.name, blobToBase64(file))
-      })
-    },
-    downloadImage(file: File) {
-      return new Promise(resolve => {
-        global.downloadImageCallback = resolve
-        // file为base64
-        console.log("下载图片", file.name, blobToBase64(file))
-        global.android.downloadImage(file.name, blobToBase64(file))
-      })
-    },
-    closePage() {
-      return new Promise(resolve => {
-        global.closeWebViewCallback = resolve
-        global.android.closeWebView()
-      })
-    }
-  }
+    : {
+        // async setStore(data) {
+        //   return axios.post("sceneStore", data)
+        // },
+        // async getStore() {
+        //   return (await axios.get("/attach/sceneStore")).data
+        // },
+        setStore(data) {
+          return new Promise((resolve) => {
+            console.log("调用setSceneStore参数", JSON.stringify(data));
+            global.android.setSceneStore(
+              params.m + "/store.json",
+              JSON.stringify(data)
+            );
+            global.setSceneStoreCallback = (data) => {
+              console.log("setSceneStoreCallback返回", data);
+              resolve(data);
+            };
+          });
+        },
+        getStore() {
+          return new Promise((resolve) => {
+            console.log("调用getSceneStore");
+            global.getSceneStoreCallback = (data) => {
+              console.log("getSceneStoreCallback返回", data);
+              resolve(data ? JSON.parse(data) : data);
+            };
+            global.android.getSceneStore(params.m + "/store.json");
+          });
+        },
+        getFile(fileUrl) {
+          fileUrl = fileUrl.trim();
+          if (import.meta.env.DEV) {
+            return new Promise<string>((resolve) => {
+              global.getImageCallback = (base64) => {
+                console.error("getImageCallback返回");
+                // console.error("getFile", fileUrl, base64)
+                resolve(base64);
+              };
+              console.log("获取", params.m + fileUrl);
+              global.android.getImage(params.m + fileUrl);
+              console.log(global, global.getImageCallback);
+            });
+          } else {
+            return Promise.resolve(fileUrl);
+          }
+        },
+        uploadImage(file: File) {
+          return new Promise<string>(async (resolve) => {
+            global.uploadImageCallback = resolve;
+            const data = await blobToBase64(file);
+            console.log("上传图片", params.m + "/" + file.name, "参数:", data);
+            global.android.uploadImage(params.m + "/" + file.name, data);
+          });
+        },
+        downloadImage(file: File) {
+          return new Promise(async (resolve) => {
+            global.downloadImageCallback = resolve;
+            const data = await blobToBase64(file);
+            // file为base64
+            console.log("下载图片", file.name);
+            global.android.downloadImage(file.name, data);
+          });
+        },
+        closePage() {
+          return new Promise((resolve) => {
+            global.closeWebViewCallback = resolve;
+            global.android.closeWebView();
+          });
+        },
+      };
 
 export const back = () => {
   if (history.state.back) {
-    router.back()
+    router.back();
   } else {
-    api.closePage()
+    api.closePage();
   }
-}
+};
 
 const loadStore = async () => {
-  const data: any = await api.getStore()
-  list.value = data?.measures || []
-  baseLines.value = data?.baseLines || []
-  basePoints.value = data?.basePoints || []
-  fixPoints.value = data?.fixPoints || []
-  photos.value = data?.photos || []
-  accidentPhotos.value = data?.accidentPhotos || []
-  roadPhotos.value = data?.roadPhotos || []
+  const data: any = await api.getStore();
+  list.value = data?.measures || [];
+  baseLines.value = data?.baseLines || [];
+  basePoints.value = data?.basePoints || [];
+  fixPoints.value = data?.fixPoints || [];
+  photos.value = data?.photos || [];
+  accidentPhotos.value = data?.accidentPhotos || [];
+  roadPhotos.value = data?.roadPhotos || [];
 
-  syncSceneStore()
-}
+  syncSceneStore();
+};
 
-export const updateSceneStore = debounce(api.setStore, 1000)
+export const updateSceneStore = debounce(api.setStore, 1000);
 export const uploadImage = (blob: Blob) => {
-  const file = new File([blob], `${getId()}.jpg`)
-  return api.uploadImage(file)
-}
+  const file = new File([blob], `${getId()}.jpg`);
+  return api.uploadImage(file);
+};
 
-export const downloadImage = async (data: Blob | string, name: string = getId()) => {
-  const blob: Blob = typeof data === "string"
-    ? (await axios.get(data, { responseType: "blob" })).data
-    : data
-  const file = new File([blob], name, {type: "image/jpeg"})
-  await api.downloadImage(file)
-}
+export const downloadImage = async (
+  data: Blob | string,
+  name: string = getId()
+) => {
+  const blob: Blob =
+    typeof data === "string"
+      ? (await axios.get(data, { responseType: "blob" })).data
+      : data;
+  const file = new File([blob], name, { type: "image/jpeg" });
+  await api.downloadImage(file);
+};
 
 const syncSceneStore = () => {
   if (import.meta.env.DEV) {
-    console.log("自动保存测试")
+    console.log("自动保存测试");
     updateSceneStore({
       measures: list.value,
       baseLines: baseLines.value,
@@ -178,8 +189,8 @@ const syncSceneStore = () => {
       fixPoints: fixPoints.value,
       photos: photos.value,
       accidentPhotos: accidentPhotos.value,
-      roadPhotos: roadPhotos.value
-    })
+      roadPhotos: roadPhotos.value,
+    });
   }
   return watch(
     () => ({
@@ -189,17 +200,16 @@ const syncSceneStore = () => {
       fixPoints: fixPoints.value,
       photos: photos.value,
       accidentPhotos: accidentPhotos.value,
-      roadPhotos: roadPhotos.value
+      roadPhotos: roadPhotos.value,
     }),
     (data) => {
-      updateSceneStore(data)
+      updateSceneStore(data);
     },
     { deep: true }
-  )
-}
+  );
+};
 
-loadStore()
-  .catch((e) => {
-    console.error(e)
-    alert("场景数据加载失败")
-  })
+loadStore().catch((e) => {
+  console.error(e);
+  alert("场景数据加载失败");
+});