|
@@ -1,19 +1,43 @@
|
|
|
-import { router } from "@/router";
|
|
|
+import {router} from "@/router";
|
|
|
import writeRouteName from "../../router/constant";
|
|
|
-import { startMeasure } from '../scene/linkage/measure'
|
|
|
-import {nextTick, ref} from "vue";
|
|
|
-import { useAsyncSDK } from '@/hook/useLaser'
|
|
|
+import {startMeasure, SuccessMeasureAtom} from '../scene/linkage/measure'
|
|
|
+import {ref, watchEffect} from "vue";
|
|
|
+import {useAsyncSDK} from '@/hook/useLaser'
|
|
|
+import {customMap, laserModeStack} from '@/hook/custom/index'
|
|
|
+import {Mode} from "@/sdk";
|
|
|
+import {mount} from "@/components/base/utils/componentHelper";
|
|
|
+import TrackMeasure from "@/views/scene/TrackMeasure.vue";
|
|
|
+import {list} from '@/store/measure'
|
|
|
+
|
|
|
|
|
|
export const trackMode = ref(false)
|
|
|
|
|
|
+watchEffect(() => console.error(customMap.mode))
|
|
|
export const trackMeasureWidth = async () => {
|
|
|
trackMode.value = true
|
|
|
await router.push({ name: writeRouteName.scene })
|
|
|
- await useAsyncSDK()
|
|
|
- const measure = await startMeasure('LINE', 'red')
|
|
|
+ const sdk = await useAsyncSDK()
|
|
|
+ list.value.forEach(item => sdk.carry.measureMap.get(item).hide())
|
|
|
+
|
|
|
+ laserModeStack.push(ref(Mode.cloud))
|
|
|
+ await new Promise(resolve => setTimeout(resolve, 10))
|
|
|
+ sdk.enterTopView()
|
|
|
+ const measure = await new Promise<SuccessMeasureAtom>(resolve => {
|
|
|
+ const { destroy } = mount(TrackMeasure, {
|
|
|
+ props: {
|
|
|
+ onConfirm: data => {
|
|
|
+ destroy()
|
|
|
+ resolve(data)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ element: document.body
|
|
|
+ } as any)
|
|
|
+ })
|
|
|
+ laserModeStack.pop()
|
|
|
await router.back()
|
|
|
- await nextTick();
|
|
|
+ list.value.forEach(item => sdk.carry.measureMap.get(item).show())
|
|
|
await new Promise(resolve => setTimeout(resolve, 100))
|
|
|
+ sdk.leaveTopView()
|
|
|
trackMode.value = false
|
|
|
return Number(measure.length.toFixed(2))
|
|
|
}
|