123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- <template>
- <!-- <Logo /> -->
- <Tips />
- <!-- <Menu /> -->
- <div v-show="showUI && !vrStatus">
- <sceneList />
- <div
- class="btn-style"
- :class="{
- needBottomSpace: isShowScenesList
- }"
- >
- <!-- <div class="menu-icon">
- <div @click="onIsShowList"
- v-if="!((metadata.catalogRoot && metadata.catalogRoot.length == 1) && scenes.length == 1 && secondaryList.length == 1)">
- <img :src="require(`@/assets/images/icon/${isShowScenesList ? 'function_off@2x.png' : 'function_on@2x.png'}`)"
- alt="" />
- </div>
- </div> -->
- <Control />
- <!-- <ControlRight /> -->
- </div>
- </div>
- </template>
- <script setup>
- import Logo from "./logo";
- import Tips from "./tips";
- import sceneList from "./list";
- import Control from "./control_js";
- import ControlRight from "./control.right";
- import Menu from "./menu";
- import { ref, watch, computed, onMounted, nextTick } from "vue";
- import { useApp, getApp } from "@/app";
- import { useStore } from "vuex";
- const store = useStore();
- const showUI = ref(false)
- const isShowScenesList = computed(() => store.getters["functions/isShowScenesList"]);
- const showTours = computed(() => store.getters["fdkk/isShowToursList"]);
- const metadata = computed(() => store.getters["scene/metadata"]);
- const scenes = computed(() => store.getters["scene/list"]);
- const secondaryList = computed(() => store.getters["scene/secondaryList"]);
- const currentScene = computed(() => store.getters["scene/currentScene"]);
- const vrStatus = computed(() => store.getters["functions/vrStatus"]);
- const onIsShowList = (data) => {
- if (showTours.value) {
- store.commit('fdkk/setShowToursList', false)
- }
- store.commit("functions/setShowScenesList", !isShowScenesList.value);
- };
- watch(currentScene, () => {
- if (currentScene.value.type == '4dkk' && isShowScenesList.value) {
- let t = setTimeout(() => {
- clearTimeout(t)
- store.commit("functions/setShowScenesList", false);
- }, 1500);
- }
- })
- useApp().then((app) => {
- app.Scene.on("ready", (data) => {
- if (currentScene && (currentScene.value.type == '4dkk' || currentScene.value.type === 'pano') && !showUI.value) {
- showUI.value = true
- }
- })
- app.Scene.on("ready", () => {
- showUI.value = true
- })
- app.Scene.on("onExitVr", () => {
- store.commit("functions/setVrStatus", false);
- })
- })
- </script>
- <style lang="scss" scoped>
- .btn-style {
- display: flex;
- width: 96%;
- position: absolute;
- left: 2%;
- right: 2%;
- bottom: 38px;
- z-index: 9;
- .menu-icon {
- width: 36px;
- height: 36px;
- >div {
- width: 100%;
- height: 36px;
- background: rgba(0, 0, 0, 0.4);
- border-radius: 50%;
- border: 1px solid rgba(255, 255, 255, 0.2);
- backdrop-filter: blur(6px);
- display: flex;
- align-items: center;
- justify-content: center;
- >img {
- width: 24px;
- height: 24px;
- }
- }
- }
- }
- @media only screen and (min-width: 1234px){
- .btn-style {
- bottom: 69px;
- }
- .btn-style.needBottomSpace {
- bottom: 180px;
- }
- }
- </style>
|