소스 검색

兼容高密度设备

bill 2 년 전
부모
커밋
34a086fdfc
36개의 변경된 파일82개의 추가작업 그리고 43개의 파일을 삭제
  1. 1 1
      index.html
  2. 1 1
      server/test/SS-t-P1d6CwREny2/attach/sceneStore
  3. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684834019606270.jpg
  4. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684834522971537.jpg
  5. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684834587284297.jpg
  6. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684834612575296.jpg
  7. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684836380734100.jpg
  8. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684836386114191.jpg
  9. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684836398384775.jpg
  10. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684836399474814.jpg
  11. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684836418968190.jpg
  12. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684890488940717.jpg
  13. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/16848905200457.jpg
  14. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684890542756506.jpg
  15. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684890584206913.jpg
  16. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684901863836749.jpg
  17. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684912034560405.jpg
  18. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684912048689444.jpg
  19. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684912062582182.jpg
  20. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684913016716529.jpg
  21. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684913584200506.jpg
  22. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684913644275931.jpg
  23. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/168491765626444.jpg
  24. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/168492106969344.jpg
  25. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684977719571783.jpg
  26. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684977973919495.jpg
  27. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684978274363526.jpg
  28. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684978291015325.jpg
  29. BIN
      server/test/SS-t-P1d6CwREny2/attach/upload/1684979656145328.jpg
  30. 3 2
      src/graphic/Renderer/Draw.js
  31. 0 1
      src/graphic/Settings.js
  32. 7 6
      src/main.ts
  33. 2 1
      src/router/info.ts
  34. 26 9
      src/store/sync.ts
  35. 18 3
      src/views/scene/container.vue
  36. 24 19
      src/views/scene/photo.vue

+ 1 - 1
index.html

@@ -2,7 +2,7 @@
 <html lang="en">
   <head>
     <meta charset="UTF-8" />
-    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
+<!--    <link rel="icon" type="image/svg+xml" href="/vite.svg" />-->
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>Vite + Vue + TS</title>
   </head>

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
server/test/SS-t-P1d6CwREny2/attach/sceneStore


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684834019606270.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684834522971537.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684834587284297.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684834612575296.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684836380734100.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684836386114191.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684836398384775.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684836399474814.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684836418968190.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684890488940717.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/16848905200457.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684890542756506.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684890584206913.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684901863836749.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684912034560405.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684912048689444.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684912062582182.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684913016716529.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684913584200506.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684913644275931.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/168491765626444.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/168492106969344.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684977719571783.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684977973919495.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684978274363526.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684978291015325.jpg


BIN
server/test/SS-t-P1d6CwREny2/attach/upload/1684979656145328.jpg


+ 3 - 2
src/graphic/Renderer/Draw.js

@@ -141,7 +141,7 @@ const help = {
     ctx.closePath();
   },
   getRealDistance(p1, p2) {
-    return Math.round(mathUtil.getDistance(p1, p2) * 100) / 100
+    return Math.round(mathUtil.getDistance(p1, p2) * coordinate.res * 100) / 100
   },
   getPerpendicularPoint(p1, p2, p3, d) {
     if (p1.x === p2.x) {
@@ -703,7 +703,7 @@ export default class Draw {
       this.context,
       coordinate.getScreenXY(startReal),
       coordinate.getScreenXY(endReal),
-      help.getRealDistance(startReal, endReal) * coordinate.res + "m",
+      help.getRealDistance(startReal, endReal) + "m",
       style
     )
   }
@@ -782,6 +782,7 @@ export default class Draw {
         this.drawBaseLineLabel(vector)
         drawPoints()
         break;
+      case VectorCategory.Line.MeasureLine:
       case VectorCategory.Line.PositionLine:
         this.drawLineText(vector, style.text)
         break;

+ 0 - 1
src/graphic/Settings.js

@@ -1,4 +1,3 @@
-export default Settings;
 import Constant from "./Constant";
 import VectorCategory from "./enum/VectorCategory";
 import { os } from "@/utils/vue.ts";

+ 7 - 6
src/main.ts

@@ -1,3 +1,10 @@
+import VConsole from 'vconsole';
+if (import.meta.env.DEV) {
+  if (!os.isPc) {
+    new VConsole();
+  }
+}
+
 import "@/assets/theme.editor.scss";
 import "@/assets/public.scss";
 import "@/assets/pc.scss";
@@ -9,7 +16,6 @@ import appConfig from "./appConfig";
 import { currentApp, setCurrentApp } from "@/store/app";
 import { os } from '@/utils'
 import App from "./main.vue";
-import VConsole from 'vconsole';
 
 const app = createApp(App);
 
@@ -23,9 +29,4 @@ app.use(Components);
 
 app.mount("#app");
 
-if (import.meta.env.DEV) {
-  if (!os.isPc) {
-    new VConsole();
-  }
-}
 export default app;

+ 2 - 1
src/router/info.ts

@@ -23,7 +23,8 @@ export type RouteAtom<
 
 export type RoutesRaw<T extends ModeFlag = any> = RouteAtom<T>[];
 
-
+import graphic from "@/views/graphic/index.vue"
+console.log(graphic)
 export const writeRoutesRaw: RoutesRaw<typeof modeFlags.LOGIN> = [
   {
     path: "/graphic/:mode/:action/:id",

+ 26 - 9
src/store/sync.ts

@@ -13,6 +13,7 @@ import router from "@/router";
 
 const global = window as any
 const api = import.meta.env.DEV && !global.android
+// const api = import.meta.env.DEV
   ? {
       async setStore(data) {
         return axios.post("sceneStore", data)
@@ -36,19 +37,35 @@ const api = import.meta.env.DEV && !global.android
       }
     }
   : {
-    async setStore(data) {
-      global.android.setSceneStore(params.m, data)
+    setStore(data) {
+      return new Promise(resolve => {
+        global.android.setSceneStore(params.m, data)
+        global.setSceneStoreCallback = resolve
+      })
     },
-    async getStore() {
-      return global.android.getSceneStore(params.m)
+    getStore() {
+      return new Promise(resolve => {
+        global.getSceneStoreCallback = resolve
+        global.android.getSceneStore(params.m)
+      })
     },
-    async uploadImage(file) {
-      return global.android.uploadImage(params.m, file)
+    uploadImage(file) {
+      return new Promise(resolve => {
+        global.uploadImageCallback = resolve
+        global.android.uploadImage(params.m, file)
+      })
     },
-    async downloadImage(file) {
-      global.android.downloadImage(params.m, file)
+    downloadImage(file) {
+      return new Promise(resolve => {
+        global.downloadImageCallback = resolve
+        global.android.downloadImage(params.m, file)
+      })
     },
     closePage() {
+      return new Promise(resolve => {
+        global.closeWebViewCallback = resolve
+        global.android.closeWebView()
+      })
 
     }
   }
@@ -62,7 +79,7 @@ export const back = () => {
 }
 
 const loadStore = async () => {
-  const data = await api.getStore()
+  const data: any = await api.getStore()
   list.value = data?.measures || []
   baseLines.value = data?.baseLines || []
   basePoints.value = data?.basePoints || []

+ 18 - 3
src/views/scene/container.vue

@@ -6,11 +6,12 @@
 
 <script setup lang="ts">
 import {onMounted, ref, watchEffect} from "vue";
-import {setupLaser, useLoading, useParams} from "@/hook";
+import {customMap, setupLaser, useLoading, useParams} from "@/hook";
 import {store} from "@/store";
 import {currentApp} from "@/store/app";
-import { axios } from "@/dbo/";
-import { Loading } from '@kankan/components/index'
+import {axios} from "@/dbo/";
+import {Loading} from '@kankan/components/index'
+import {Mode} from "@/sdk";
 
 const emit = defineEmits<{ (e: 'loaded'): void }>()
 const sceneLayoutRef = ref<HTMLCanvasElement>();
@@ -29,7 +30,21 @@ onMounted(async () => {
   );
 
   emit('loaded')
+
+
   setTimeout(() => {
+    watchEffect(() => {
+      const doms = Array.from(sceneLayoutRef.value.querySelectorAll("#navCube, #home")) as HTMLElement[]
+      if (customMap.mode === Mode.pano) {
+        doms.forEach(dom => {
+          dom.style.display = "none"
+        })
+      } else {
+        doms.forEach(dom => {
+          dom.style.display = "block"
+        })
+      }
+    })
     Loading.hideAll()
   }, 1000)
 });

+ 24 - 19
src/views/scene/photo.vue

@@ -62,28 +62,33 @@ const photo = genUseLoading(async () => {
 
   const upload = uploadImage(blob)
   await nextTick();
-  const handler = () => {
+  const handler = async () => {
     coverRef.value.removeEventListener("animationend", handler)
     showCoverUrl.value = tempPhoto.value
     tempPhoto.value = null
-
-    upload.then(url => {
-      photos.value.push({
-        id: getId(),
-        url: url,
-        time: new Date().getTime(),
-        meterPerPixel: data.meterPerPixel,
-        measures: list.value
-          .map(data => getCurrentScreens(data.points))
-          .filter(poss => poss.length),
-        baseLines: baseLines.value
-          .map(data => getCurrentScreens(data.points))
-          .filter(poss => poss.length),
-        fixPoints: getCurrentScreens(fixPoints.value.map(data => data.pos)),
-        basePoints: getCurrentScreens(basePoints.value.map(data => data.pos))
-      })
-      showCoverUrl.value = getStaticFile(url)
-      dom.style.pointerEvents = "all"
+    baseLines.value.concat(list.value).forEach(item => {
+      item.show = false
+    })
+    await nextTick()
+    const url = await upload
+    photos.value.push({
+      id: getId(),
+      url: url,
+      time: new Date().getTime(),
+      meterPerPixel: data.meterPerPixel,
+      measures: list.value
+        .map(data => getCurrentScreens(data.points))
+        .filter(poss => poss.length),
+      baseLines: baseLines.value
+        .map(data => getCurrentScreens(data.points))
+        .filter(poss => poss.length),
+      fixPoints: getCurrentScreens(fixPoints.value.map(data => data.pos)),
+      basePoints: getCurrentScreens(basePoints.value.map(data => data.pos))
+    })
+    showCoverUrl.value = getStaticFile(url)
+    dom.style.pointerEvents = "all"
+    baseLines.value.concat(list.value).forEach(item => {
+      item.show = true
     })
   }
   coverRef.value.addEventListener("animationend", handler)