|
@@ -6,7 +6,6 @@
|
|
|
<component :is="Component" />
|
|
|
</keep-alive>
|
|
|
</router-view>
|
|
|
-
|
|
|
|
|
|
<SelectModel v-else>
|
|
|
<ui-button type="primary" class="add-fuse-model">
|
|
@@ -17,78 +16,81 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
-import { ref, watch, watchEffect, nextTick } from 'vue'
|
|
|
-import { currentMeta, router, RoutesName } from '@/router'
|
|
|
-import { showLeftPanoStack, showRightPanoStack } from '@/env'
|
|
|
-import { togetherCallback } from '@/utils'
|
|
|
-import { loadModel, fuseModel } from '@/model'
|
|
|
-import {
|
|
|
- enterEdit,
|
|
|
- isOld,
|
|
|
- save,
|
|
|
+import { ref, watch, watchEffect, nextTick } from "vue";
|
|
|
+import { currentMeta, router, RoutesName } from "@/router";
|
|
|
+import { showLeftPanoStack, showRightPanoStack } from "@/env";
|
|
|
+import { togetherCallback } from "@/utils";
|
|
|
+import { loadModel, fuseModel } from "@/model";
|
|
|
+import {
|
|
|
+ enterEdit,
|
|
|
+ isOld,
|
|
|
+ save,
|
|
|
fuseModels,
|
|
|
initialFuseModels,
|
|
|
initialScenes,
|
|
|
- initialTaggingStyles,
|
|
|
- initialTaggings,
|
|
|
- initialGuides,
|
|
|
+ initialTaggingStyles,
|
|
|
+ initialTaggings,
|
|
|
+ initialGuides,
|
|
|
initialMeasures,
|
|
|
- fuseModelsLoaded
|
|
|
-} from '@/store'
|
|
|
+ fuseModelsLoaded,
|
|
|
+} from "@/store";
|
|
|
|
|
|
-import Header from './header/index.vue'
|
|
|
-import SelectModel from './scene-select.vue'
|
|
|
+import Header from "./header/index.vue";
|
|
|
+import SelectModel from "./scene-select.vue";
|
|
|
|
|
|
-const loaded = ref(false)
|
|
|
+const loaded = ref(false);
|
|
|
const initialSys = async () => {
|
|
|
- await Promise.all([
|
|
|
- initialFuseModels(),
|
|
|
- initialScenes()
|
|
|
- ])
|
|
|
+ await Promise.all([initialFuseModels(), initialScenes()]);
|
|
|
await Promise.all([
|
|
|
initialTaggingStyles(),
|
|
|
initialTaggings(),
|
|
|
initialGuides(),
|
|
|
- initialMeasures()
|
|
|
- ])
|
|
|
- await loadModel(fuseModel)
|
|
|
+ initialMeasures(),
|
|
|
+ ]);
|
|
|
+ await loadModel(fuseModel);
|
|
|
const stop = watchEffect(() => {
|
|
|
if (fuseModelsLoaded.value) {
|
|
|
- loaded.value = true
|
|
|
- nextTick(() => stop())
|
|
|
+ loaded.value = true;
|
|
|
+ nextTick(() => stop());
|
|
|
}
|
|
|
- })
|
|
|
-}
|
|
|
-initialSys()
|
|
|
+ });
|
|
|
+};
|
|
|
+initialSys();
|
|
|
|
|
|
router.beforeEach(async (to, from, next) => {
|
|
|
if (to.params.save && isOld.value) {
|
|
|
- await save()
|
|
|
+ await save();
|
|
|
}
|
|
|
- next()
|
|
|
-})
|
|
|
-watch(router.currentRoute, (_n, _, onClean) => {
|
|
|
- const meta = currentMeta.value
|
|
|
- if (meta && 'full' in meta && (meta as any).full) {
|
|
|
- enterEdit(() => {
|
|
|
- if (!history.state.back) {
|
|
|
- router.replace({ name: RoutesName.merge })
|
|
|
- } else {
|
|
|
- router.back()
|
|
|
- }
|
|
|
- })
|
|
|
- onClean(togetherCallback([
|
|
|
- showLeftPanoStack.push(ref(false)),
|
|
|
- showRightPanoStack.push(ref(false)),
|
|
|
- ]))
|
|
|
- }
|
|
|
-}, { flush: 'post', immediate: true })
|
|
|
+ next();
|
|
|
+});
|
|
|
+watch(
|
|
|
+ router.currentRoute,
|
|
|
+ (_n, _, onClean) => {
|
|
|
+ const meta = currentMeta.value;
|
|
|
+ if (meta && "full" in meta && (meta as any).full) {
|
|
|
+ enterEdit(() => {
|
|
|
+ if (!history.state.back) {
|
|
|
+ router.replace({ name: RoutesName.merge });
|
|
|
+ } else {
|
|
|
+ router.back();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ onClean(
|
|
|
+ togetherCallback([
|
|
|
+ showLeftPanoStack.push(ref(false)),
|
|
|
+ showRightPanoStack.push(ref(false)),
|
|
|
+ ])
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { flush: "post", immediate: true }
|
|
|
+);
|
|
|
|
|
|
watchEffect((onCleanup) => {
|
|
|
if (!fuseModels.value.length) {
|
|
|
- onCleanup(showRightPanoStack.push(ref(false)))
|
|
|
+ onCleanup(showRightPanoStack.push(ref(false)));
|
|
|
}
|
|
|
-})
|
|
|
+});
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
@@ -104,4 +106,4 @@ watchEffect((onCleanup) => {
|
|
|
margin-right: 4px;
|
|
|
}
|
|
|
}
|
|
|
-</style>
|
|
|
+</style>
|