|
@@ -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());
|
|
|
}
|
|
|
});
|