bill il y a 4 mois
Parent
commit
9547c1e794
2 fichiers modifiés avec 35 ajouts et 20 suppressions
  1. 34 20
      src/sdk/association/index.ts
  2. 1 0
      src/sdk/sdk.ts

+ 34 - 20
src/sdk/association/index.ts

@@ -6,7 +6,13 @@ import {
   getFuseModel,
   sceneModelMap,
 } from "./fuseMode";
-import { FuseModel, fuseModels, fuseModelsLoaded, GuidePath, setting } from "@/store";
+import {
+  FuseModel,
+  fuseModels,
+  fuseModelsLoaded,
+  GuidePath,
+  setting,
+} from "@/store";
 import { associationTaggings } from "./tagging";
 import { associationSetting } from "./setting";
 import { associationMessaures } from "./measure";
@@ -14,6 +20,7 @@ import { custom } from "@/env";
 import { associationPaths } from "./path";
 import { associationAnimation } from "./animation";
 import { associationMonitor } from "./monitor";
+import { Message } from "bill/expose-common";
 
 export const getSupperPanoModel = () => {
   const supperModel = ref<FuseModel | null>(null);
@@ -22,29 +29,28 @@ export const getSupperPanoModel = () => {
     if (!sdk) return;
     clearInterval(interval);
 
-
     const update = () => {
       const data = sdk.canTurnToPanoMode();
       if (data?.model) {
-        const smodel = getFuseModel(data.model)!
+        const smodel = getFuseModel(data.model)!;
         supperModel.value = smodel;
       } else {
         supperModel.value = null;
       }
-    }
+    };
     watchEffect((onCleanup) => {
-      const smodels = [...sceneModelMap.values()]
-      smodels.forEach(smodel => {
-        smodel.bus.on('transformChanged', update)
-      })
+      const smodels = [...sceneModelMap.values()];
+      smodels.forEach((smodel) => {
+        smodel.bus.on("transformChanged", update);
+      });
       onCleanup(() => {
-        smodels.forEach(smodel => {
-          smodel.bus.off('transformChanged', update)
-        })
-      })
-    })
+        smodels.forEach((smodel) => {
+          smodel.bus.off("transformChanged", update);
+        });
+      });
+    });
     sdk.sceneBus.on("cameraChange", update);
-    update()
+    update();
   }, 16);
 
   return supperModel;
@@ -53,7 +59,7 @@ export const getSupperPanoModel = () => {
 export const analysisPose = (pose: Pose) => {
   if ("modelId" in pose && pose.modelId) {
     let info: GuidePath["panoInfo"] | undefined = undefined;
-    let fuseMode = fuseModels.value.find(item => item.id === pose.modelId);
+    let fuseMode = fuseModels.value.find((item) => item.id === pose.modelId);
     if (fuseMode!) {
       info = {
         panoId: pose.panoId,
@@ -94,7 +100,11 @@ export const analysisPoseInfo = (info: ReturnType<typeof analysisPose>) => {
   return pose;
 };
 
-export const setPose = (info: ReturnType<typeof analysisPose>, _sdk = sdk, modeChange = true) => {
+export const setPose = (
+  info: ReturnType<typeof analysisPose>,
+  _sdk = sdk,
+  modeChange = true
+) => {
   const pose = analysisPoseInfo(info);
   if (modeChange) {
     if ("model" in pose) {
@@ -109,7 +119,7 @@ export const setPose = (info: ReturnType<typeof analysisPose>, _sdk = sdk, modeC
     } else {
       activeModel({ showMode: "fuse" });
     }
-    console.error('pose', pose)
+    console.error("pose", pose);
   }
   setTimeout(() => {
     sdk.comeTo({ ...pose, dur: 300 });
@@ -119,14 +129,18 @@ export const setPose = (info: ReturnType<typeof analysisPose>, _sdk = sdk, modeC
 export const setupAssociation = (mountEl: HTMLDivElement, sdk: SDK) => {
   associationModels(sdk);
 
+  sdk.sceneBus.on("monitorError", () => {
+    Message.error("无法查看监控,请检查网络是否正常");
+  });
+
   const stopWatch = watchEffect(() => {
     if (fuseModelsLoaded.value && setting.value) {
       associationTaggings(sdk, mountEl);
       associationMessaures(sdk);
       associationSetting(sdk, mountEl);
-      associationPaths(sdk, mountEl)
-      associationAnimation(sdk, mountEl)
-      associationMonitor(sdk, mountEl)
+      associationPaths(sdk, mountEl);
+      associationAnimation(sdk, mountEl);
+      associationMonitor(sdk, mountEl);
       nextTick(() => stopWatch());
     }
   });

+ 1 - 0
src/sdk/sdk.ts

@@ -162,6 +162,7 @@ export interface SDK {
   layout: HTMLDivElement;
   sceneBus: Emitter<{
     cameraChange: SceneLocalPos;
+    monitorError: void
     watchMonitor: void;
     panoModelChange: SceneModel;
     modeChange: { mode: "pano" | "fuse"; active: SceneModel };