|
@@ -1,24 +1,44 @@
|
|
|
<template>
|
|
|
- <ul class="control-pano">
|
|
|
+ <ul class="btn-list">
|
|
|
+ <!--菜单-->
|
|
|
+ <li @click="onIsShowList"
|
|
|
+ v-if="
|
|
|
+ !(
|
|
|
+ metadata.catalogRoot &&
|
|
|
+ metadata.catalogRoot.length == 1 &&
|
|
|
+ scenes.length == 1 &&
|
|
|
+ secondaryList.length == 1
|
|
|
+ )
|
|
|
+ ">
|
|
|
+ <img :src="
|
|
|
+ require(`@/assets/images/icon2/${
|
|
|
+ isShowScenesList ? 'function_off@2x.png' : 'function_on@2x.png'
|
|
|
+ }`)
|
|
|
+ " alt="" />
|
|
|
+ <span>{{ $t('menu.tour') }}</span>
|
|
|
+ </li>
|
|
|
<!-- 自定义链接 -->
|
|
|
<li @click="onLink" v-if="customLink && customLink.isShow">
|
|
|
- <img :src="require(`@/assets/images/icon/link@2x.png`)" alt="" />
|
|
|
+ <img :src="require(`@/assets/images/icon2/link@2x.png`)" alt="" />
|
|
|
+ <span>{{ customLink.name }}</span>
|
|
|
</li>
|
|
|
|
|
|
<!-- 联系电话 -->
|
|
|
<li v-if="customTelephone && customTelephone.isShow">
|
|
|
<a :href="`tel:${customTelephone.value}`">
|
|
|
- <img :src="require(`@/assets/images/icon/telephone@2x.png`)" alt="" />
|
|
|
+ <img :src="require(`@/assets/images/icon2/telephone@2x.png`)" alt="" />
|
|
|
</a>
|
|
|
+ <span>{{ customTelephone.name }}</span>
|
|
|
</li>
|
|
|
|
|
|
<!-- 简介 -->
|
|
|
<li @click="onIntroduce" v-if="metadata.description">
|
|
|
- <img :src="require(`@/assets/images/icon/text@2x.png`)" alt="" />
|
|
|
+ <img :src="require(`@/assets/images/icon2/text@2x.png`)" alt="" />
|
|
|
+ <span>{{ $t('menu.introduce') }}</span>
|
|
|
</li>
|
|
|
|
|
|
<!-- 背景音乐 -->
|
|
|
- <li @click="onIsBGM" v-if="isHasNormalBGM">
|
|
|
+ <li @click="onIsBGM" v-if="isHasNormalBGM" style="display: none;">
|
|
|
<img
|
|
|
:src="
|
|
|
require(`@/assets/images/icon/${
|
|
@@ -32,7 +52,7 @@
|
|
|
</li>
|
|
|
|
|
|
<!-- 解说音频 -->
|
|
|
- <li @click="onIsCommentary" v-if="isHasExplanationBGM">
|
|
|
+ <li @click="onIsCommentary" v-if="isHasExplanationBGM" style="display: none;">
|
|
|
<img
|
|
|
:src="
|
|
|
require(`@/assets/images/icon/${
|
|
@@ -44,16 +64,9 @@
|
|
|
alt=""
|
|
|
/>
|
|
|
</li>
|
|
|
-
|
|
|
- <li @click="onIsAutoRotate">
|
|
|
- <img
|
|
|
- :src="
|
|
|
- require(`@/assets/images/icon/${
|
|
|
- isAutoRotate ? 'rotation@2x.png' : 'rotation_disabled@2x.png'
|
|
|
- }`)
|
|
|
- "
|
|
|
- alt=""
|
|
|
- />
|
|
|
+ <li @click="onShowMore">
|
|
|
+ <img :src="require(`@/assets/images/icon2/more@2x.png`)" alt="" />
|
|
|
+ <span>{{ $t('menu.more') }}</span>
|
|
|
</li>
|
|
|
</ul>
|
|
|
|
|
@@ -61,6 +74,51 @@
|
|
|
<introduce v-if="showIntroduce" />
|
|
|
<telephone v-if="showTelephone" />
|
|
|
<clink v-if="showLink" />
|
|
|
+ <div class="tools-more" @click="showMore = false" v-if="showMore">
|
|
|
+ <div class="list">
|
|
|
+ <div @click="onIsAutoRotate">
|
|
|
+ <img
|
|
|
+ :src="
|
|
|
+ require(`@/assets/images/icon2/${
|
|
|
+ isAutoRotate ? 'rotation@2x.png' : 'rotation_disabled@2x.png'
|
|
|
+ }`)
|
|
|
+ "
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <span>{{ $t('menu.autoRotate') }}</span>
|
|
|
+ </div>
|
|
|
+ <div @click="onVR">
|
|
|
+ <img :src="require(`@/assets/images/icon2/vr@2x.png`)" alt="" />
|
|
|
+ <span>{{ $t('menu.vr') }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="tools-right">
|
|
|
+ <div @click="onIsBGM" v-if="isHasNormalBGM">
|
|
|
+ <img
|
|
|
+ :src="
|
|
|
+ require(`@/assets/images/icon2/${
|
|
|
+ isPlayNormalBGM && isCurrentPlaying
|
|
|
+ ? 'music@2x.png'
|
|
|
+ : 'music_disabled@2x.png'
|
|
|
+ }`)
|
|
|
+ "
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div @click="onIsCommentary" v-if="isHasExplanationBGM">
|
|
|
+ <img
|
|
|
+ :src="
|
|
|
+ require(`@/assets/images/icon2/${
|
|
|
+ isPlayExplanationBGM && isCurrentPlaying
|
|
|
+ ? 'commentary@2x.png'
|
|
|
+ : 'commentary_disabled@2x.png'
|
|
|
+ }`)
|
|
|
+ "
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</teleport>
|
|
|
</template>
|
|
|
|
|
@@ -83,10 +141,22 @@ import clink from "./control/link";
|
|
|
|
|
|
const store = useStore();
|
|
|
|
|
|
+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 isShowScenesList = computed(
|
|
|
+ () => store.getters["functions/isShowScenesList"]
|
|
|
+);
|
|
|
+
|
|
|
const isAutoRotate = computed(() => store.getters["functions/isAutoRotate"]);
|
|
|
|
|
|
+const showMore = ref(false);
|
|
|
+
|
|
|
const showMusicPlaying = ref(false);
|
|
|
|
|
|
const showCommentaryPlaying = ref(false);
|
|
@@ -184,30 +254,16 @@ const onShare = () => {
|
|
|
store.commit("functions/setShareUrl", true);
|
|
|
};
|
|
|
|
|
|
-const staticList = ref([
|
|
|
- {
|
|
|
- id: "cruise",
|
|
|
- name: "巡游开关",
|
|
|
- icon: "rotation@2x.png",
|
|
|
- icondisabled: "rotation_disabled@2x.png",
|
|
|
- },
|
|
|
- {
|
|
|
- id: "vr",
|
|
|
- name: "VR",
|
|
|
- icon: "vr@2x.png",
|
|
|
- },
|
|
|
- {
|
|
|
- id: "share",
|
|
|
- name: "分享",
|
|
|
- icon: "share@2x.png",
|
|
|
- },
|
|
|
- {
|
|
|
- id: "full",
|
|
|
- name: "全屏",
|
|
|
- icon: "fullscreen@2x.png",
|
|
|
- icondisabled: "rotation_disabled@2x.png",
|
|
|
- },
|
|
|
-]);
|
|
|
+const onIsShowList = (data) => {
|
|
|
+ if (showTours.value) {
|
|
|
+ store.commit("fdkk/setShowToursList", false);
|
|
|
+ }
|
|
|
+ store.commit("functions/setShowScenesList", !isShowScenesList.value);
|
|
|
+};
|
|
|
+
|
|
|
+const onShowMore = () => {
|
|
|
+ showMore.value = true
|
|
|
+};
|
|
|
|
|
|
onMounted(() => {
|
|
|
let events = [
|
|
@@ -252,4 +308,81 @@ onMounted(() => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+.btn-list {
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ li {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ img{
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ object-fit: contain;
|
|
|
+ }
|
|
|
+ span{
|
|
|
+ color:#fff;
|
|
|
+ font-size:12px;
|
|
|
+ text-shadow: 0px 0px 4px rgba(0,0,0,0.4);
|
|
|
+ margin-top: 6px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+.tools-more{
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ top: 0;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ background: rgba(0,0,0,0.4);
|
|
|
+ z-index: 999;
|
|
|
+ .list{
|
|
|
+ height: 6rem;
|
|
|
+ background: rgba(27,27,28,0.8);
|
|
|
+ box-shadow: inset 0px 2px 0px 0px rgba(255,255,255,0.1), inset 0px 1px 0px 0px #000000;
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ bottom: 0;
|
|
|
+ width: 100%;
|
|
|
+ border-top-left-radius: 10px;
|
|
|
+ border-top-right-radius: 10px;
|
|
|
+ display: flex;
|
|
|
+ >div{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ flex-direction: column;
|
|
|
+ margin-top: 10px;
|
|
|
+ margin-left: 26px;
|
|
|
+ img{
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ object-fit: contain;
|
|
|
+ }
|
|
|
+ span{
|
|
|
+ color:#fff;
|
|
|
+ font-size:12px;
|
|
|
+ text-shadow: 0px 0px 4px rgba(0,0,0,0.4);
|
|
|
+ margin-top: 6px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+.tools-right {
|
|
|
+ position: absolute;
|
|
|
+ right:25PX;
|
|
|
+ top: 40%;
|
|
|
+ z-index: 999;
|
|
|
+ pointer-events: none;
|
|
|
+ div{
|
|
|
+ margin-top: 25px;
|
|
|
+ }
|
|
|
+ img{
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ object-fit: contain;
|
|
|
+ pointer-events: all;
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|