fuse-switch.vue 866 B

1234567891011121314151617181920212223242526272829303132
  1. <template>
  2. <SlideMenu />
  3. <ModelList v-if="!showSceneList" />
  4. <LeftPano v-else>
  5. <SceneList :current="currentModel" @update:current="loadModel" />
  6. </LeftPano>
  7. <router-view v-slot="{ Component }">
  8. <!-- <keep-alive> -->
  9. <component :is="Component" />
  10. <!-- </keep-alive> -->
  11. </router-view>
  12. </template>
  13. <script lang="ts" setup>
  14. import SlideMenu from "./fuse-slide-menu.vue";
  15. import SceneList from "../scene-list/index.vue";
  16. import { LeftPano } from "@/layout";
  17. import ModelList from "./fuse-left-pano.vue";
  18. import { computed, watch, watchEffect } from "vue";
  19. import router from "@/router";
  20. import { currentModel, fuseModel, loadModel } from "@/model";
  21. const showSceneList = computed(
  22. () => router.currentRoute.value.meta.left === "scene-list"
  23. );
  24. watch(showSceneList, (n, o) => {
  25. if (!n && o) {
  26. loadModel(fuseModel);
  27. }
  28. });
  29. </script>