bill пре 4 месеци
родитељ
комит
64d2e406a0

+ 1 - 1
src/components/drawing/hook.ts

@@ -247,7 +247,7 @@ export const getOffset = (
   dom = ev.target! as HTMLElement,
   ndx = 0
 ) => {
-  const event = ev instanceof TouchEvent ? ev.changedTouches[ndx] : ev;
+  const event = (window.TouchEvent && ev instanceof TouchEvent) ? ev.changedTouches[ndx] : ev;
   const rect = dom.getBoundingClientRect();
   const offsetX = event.clientX - rect.left;
   const offsetY = event.clientY - rect.top;

+ 12 - 8
src/sdk/association/fuseMode.ts

@@ -179,27 +179,30 @@ export const activeModel = (status: {
   if (model && status.active === oldStatus.active) {
     if (status.showMode === "pano") {
       if (model) {
-        // model.changeSelect(false)
+        console.error('--->', model)
+        model.changeSelect(false)
         model.flyInPano();
       }
     } else {
       if (model) {
         model.flyOutPano();
-        // custom.currentModel === status.active && model.changeSelect(true)
+        custom.currentModel === status.active && model.changeSelect(true)
       }
     }
   } else {
     if (oldStatus.showMode !== status.showMode) {
       if (oldStatus.showMode === "pano") {
         if (oldModel) {
+          console.error('---> a', oldModel)
           oldModel.flyOutPano();
-          // custom.currentModel === oldStatus.active && oldModel.changeSelect(true)
+          custom.currentModel === oldStatus.active && oldModel.changeSelect(true)
         }
       }
     }
     if (status.showMode === "pano") {
       if (model) {
-        // model.changeSelect(false)
+        console.error('---> b', oldModel)
+        model.changeSelect(false)
         model.flyInPano();
       }
     } else {
@@ -221,13 +224,14 @@ export const activeModel = (status: {
 
 export const associationModels = (sdk: SDK) => {
   sdk.sceneBus.on("modeChange", (data) => {
-    if (data.active) {
-      activeModel({ active: getFuseModel(data.active)!, showMode: data.mode })
+    if (data.active || data.model) {
+      activeModel({ active: getFuseModel(data.active || data.model)!, showMode: data.mode })
     }
     custom.showMode = data.mode;
 
-    if (data.active && data.mode === 'pano') {
-      data.active.changeSelect(false)
+    console.error('modeChange', data, (data.active || data.model))
+    if ((data.active || data.model) && data.mode === 'pano') {
+      (data.active || data.model).changeSelect(false)
     }
   });
   sdk.sceneBus.on("panoModelChange", (data) => {

+ 2 - 0
src/sdk/association/index.ts

@@ -110,6 +110,7 @@ export const setPose = (
     if ("model" in pose) {
       setTimeout(() => {
         for (const [k, v] of Array.from(sceneModelMap.entries())) {
+          console.error('fly', v, pose.model)
           if (toRaw(v) === toRaw(pose.model)) {
             activeModel({ showMode: "pano", active: k });
             return;
@@ -117,6 +118,7 @@ export const setPose = (
         }
       }, 300);
     } else {
+      console.error
       activeModel({ showMode: "fuse" });
     }
     console.error("pose", pose);

+ 1 - 1
src/sdk/sdk.ts

@@ -165,7 +165,7 @@ export interface SDK {
     monitorError: void
     watchMonitor: void;
     panoModelChange: SceneModel;
-    modeChange: { mode: "pano" | "fuse"; active: SceneModel };
+    modeChange: { mode: "pano" | "fuse"; active: SceneModel; model: SceneModel };
   }>;
 
   changeMapTile: (args: { tempUrl: string; maximumLevel: number }[]) => void;

+ 5 - 1
src/views/proportion/index.vue

@@ -21,7 +21,7 @@ import { useViewStack } from "@/hook";
 import { router, RoutesName } from "@/router";
 import { ref, computed, watch, watchEffect } from "vue";
 import { getSceneModel } from "@/sdk";
-import { autoSaveFuseModels, FuseModel, getFuseModel, leave } from "@/store";
+import { autoSaveFuseModels, FuseModel, getFuseModel, leave, selectPaths } from "@/store";
 import {
   currentModelStack,
   showLeftCtrlPanoStack,
@@ -81,9 +81,13 @@ watchEffect((onCleanup) => {
 
 useViewStack(() => {
   const hide = Message.show({ msg: "请选择两点标记一段已知长度,并输入真实长度" });
+
+  const selects = [...selectPaths.selects.value];
+  selectPaths.all.value = false;
   const cleanups = mergeFuns([
     showLeftPanoStack.push(ref(false)),
     showLeftCtrlPanoStack.push(ref(false)),
+    () => selects.forEach((item) => selectPaths.updateSelect(item, true)),
     showSearchStack.push(ref(false)),
   ]);
   return () => {