|
|
@@ -10,16 +10,36 @@
|
|
|
</div> -->
|
|
|
<div>
|
|
|
<div class="viewContainer" style="display: none !important">
|
|
|
- <div id="previous" class="previous desktop-only ui-icon" style="display: none">
|
|
|
+ <div
|
|
|
+ id="previous"
|
|
|
+ class="previous desktop-only ui-icon"
|
|
|
+ style="display: none"
|
|
|
+ >
|
|
|
<a>
|
|
|
- <img rel="tooltip" title="" :src="require('@/assets/images/play.png')" width="24" height="24" data-original-title="播放" />
|
|
|
+ <img
|
|
|
+ rel="tooltip"
|
|
|
+ title=""
|
|
|
+ :src="require('@/assets/images/play.png')"
|
|
|
+ width="24"
|
|
|
+ height="24"
|
|
|
+ data-original-title="播放"
|
|
|
+ />
|
|
|
</a>
|
|
|
</div>
|
|
|
- <div id="play" class="ui-icon" rel="tooltip" data-original-title="播放">
|
|
|
+ <div
|
|
|
+ id="play"
|
|
|
+ class="ui-icon"
|
|
|
+ rel="tooltip"
|
|
|
+ data-original-title="播放"
|
|
|
+ >
|
|
|
<!-- 鼠标移入的显示 -->
|
|
|
<div class="hoverTit">自动漫游</div>
|
|
|
<a>
|
|
|
- <img :src="require('@/assets/image/icon/tour-play.png')" width="24" height="24" />
|
|
|
+ <img
|
|
|
+ :src="require('@/assets/image/icon/tour-play.png')"
|
|
|
+ width="24"
|
|
|
+ height="24"
|
|
|
+ />
|
|
|
</a>
|
|
|
</div>
|
|
|
<div id="pause" class="ui-icon" v-show="false">
|
|
|
@@ -27,45 +47,118 @@
|
|
|
<div class="hoverTit">自动漫游</div>
|
|
|
|
|
|
<a>
|
|
|
- <img rel="tooltip" title="" :src="require('@/assets/image/icon/tour-pause.png')" width="24" height="24" data-original-title="暂停" />
|
|
|
+ <img
|
|
|
+ rel="tooltip"
|
|
|
+ title=""
|
|
|
+ :src="require('@/assets/image/icon/tour-pause.png')"
|
|
|
+ width="24"
|
|
|
+ height="24"
|
|
|
+ data-original-title="暂停"
|
|
|
+ />
|
|
|
</a>
|
|
|
</div>
|
|
|
- <div id="next" class="next desktop-only ui-icon wide" style="display: none">
|
|
|
+ <div
|
|
|
+ id="next"
|
|
|
+ class="next desktop-only ui-icon wide"
|
|
|
+ style="display: none"
|
|
|
+ >
|
|
|
<a>
|
|
|
- <i rel="tooltip" title="" class="icon icon-dpad-right" data-original-title="下一个"></i>
|
|
|
+ <i
|
|
|
+ rel="tooltip"
|
|
|
+ title=""
|
|
|
+ class="icon icon-dpad-right"
|
|
|
+ data-original-title="下一个"
|
|
|
+ ></i>
|
|
|
</a>
|
|
|
</div>
|
|
|
<div id="gui-modes-map" class="ui-icon double active">
|
|
|
- <div data-original-title="导览" @click="isGuide = !isGuide" id="pullTab" rel="tooltip" title="场景导览">
|
|
|
+ <div
|
|
|
+ data-original-title="导览"
|
|
|
+ @click="isGuide = !isGuide"
|
|
|
+ id="pullTab"
|
|
|
+ rel="tooltip"
|
|
|
+ title="场景导览"
|
|
|
+ >
|
|
|
<!-- 鼠标移入的显示 -->
|
|
|
<div class="hoverTit">重点展位</div>
|
|
|
|
|
|
- <img title="" class="icon icon-inside" :src="require(`@/assets/image/icon/icon_point${!isGuide ? '_active' : '_normal'}.png`)" />
|
|
|
+ <img
|
|
|
+ title=""
|
|
|
+ class="icon icon-inside"
|
|
|
+ :src="
|
|
|
+ require(`@/assets/image/icon/icon_point${
|
|
|
+ !isGuide ? '_active' : '_normal'
|
|
|
+ }.png`)
|
|
|
+ "
|
|
|
+ />
|
|
|
</div>
|
|
|
- <div title="迷你漫游" data-original-title="迷你模型" id="gui-modes-dollhouse" rel="tooltip">
|
|
|
+ <div
|
|
|
+ title="迷你漫游"
|
|
|
+ data-original-title="迷你模型"
|
|
|
+ id="gui-modes-dollhouse"
|
|
|
+ rel="tooltip"
|
|
|
+ >
|
|
|
<!-- 鼠标移入的显示 -->
|
|
|
<div class="hoverTit">三维模型</div>
|
|
|
- <img class="icon icon-inside" :src="require('@/assets/image/icon/icon_dollhouse_normal.png')" />
|
|
|
- <img class="icon icon-inside active" :src="require('@/assets/image/icon/icon_dollhouse_active.png')" />
|
|
|
+ <img
|
|
|
+ class="icon icon-inside"
|
|
|
+ :src="require('@/assets/image/icon/icon_dollhouse_normal.png')"
|
|
|
+ />
|
|
|
+ <img
|
|
|
+ class="icon icon-inside active"
|
|
|
+ :src="require('@/assets/image/icon/icon_dollhouse_active.png')"
|
|
|
+ />
|
|
|
</div>
|
|
|
<!-- 热点列表 -->
|
|
|
<div v-show="!hideTools" id="myHotList" @click="openTags">
|
|
|
<!-- 鼠标移入的显示 -->
|
|
|
<div class="hoverTit">热点列表</div>
|
|
|
- <img :src="require(`@/assets/image/icon/icon_detail${openInd == 1 ? '_active' : '_normal'}.png`)" alt="" />
|
|
|
+ <img
|
|
|
+ :src="
|
|
|
+ require(`@/assets/image/icon/icon_detail${
|
|
|
+ openInd == 1 ? '_active' : '_normal'
|
|
|
+ }.png`)
|
|
|
+ "
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
</div>
|
|
|
|
|
|
- <div data-original-title="俯视图" id="gui-modes-floorplan" rel="tooltip" title="顶部俯视">
|
|
|
+ <div
|
|
|
+ data-original-title="俯视图"
|
|
|
+ id="gui-modes-floorplan"
|
|
|
+ rel="tooltip"
|
|
|
+ title="顶部俯视"
|
|
|
+ >
|
|
|
<!-- 鼠标移入的显示 -->
|
|
|
<div class="hoverTit">俯视平面</div>
|
|
|
- <img class="icon icon-inside" :src="require('@/assets/image/icon/icon_floor_normal.png')" />
|
|
|
- <img class="active icon icon-inside active" :src="require('@/assets/image/icon/icon_floor_active.png')" />
|
|
|
+ <img
|
|
|
+ class="icon icon-inside"
|
|
|
+ :src="require('@/assets/image/icon/icon_floor_normal.png')"
|
|
|
+ />
|
|
|
+ <img
|
|
|
+ class="active icon icon-inside active"
|
|
|
+ :src="require('@/assets/image/icon/icon_floor_active.png')"
|
|
|
+ />
|
|
|
</div>
|
|
|
- <div @click="onFullScreen" v-if="!isMobile" rel="tooltip" title="顶部俯视" id="gui-modes-floorplan" data-original-title="俯视图">
|
|
|
+ <div
|
|
|
+ @click="onFullScreen"
|
|
|
+ v-if="!isMobile"
|
|
|
+ rel="tooltip"
|
|
|
+ title="顶部俯视"
|
|
|
+ id="gui-modes-floorplan"
|
|
|
+ data-original-title="俯视图"
|
|
|
+ >
|
|
|
<!-- 鼠标移入的显示 -->
|
|
|
<div class="hoverTit" v-if="!isFullscreen">全屏</div>
|
|
|
<div class="hoverTit" v-else>退出全屏</div>
|
|
|
- <img class="icon icon-inside" :src="require(`@/assets/image/icon/icon_screen${isFullscreen ? '_active' : '_normal'}.png`)" />
|
|
|
+ <img
|
|
|
+ class="icon icon-inside"
|
|
|
+ :src="
|
|
|
+ require(`@/assets/image/icon/icon_screen${
|
|
|
+ isFullscreen ? '_active' : '_normal'
|
|
|
+ }.png`)
|
|
|
+ "
|
|
|
+ />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -85,12 +178,20 @@
|
|
|
|
|
|
<div id="vr" class="ui-icon wide hidden" style="display: none">
|
|
|
<a>
|
|
|
- <i rel="tooltip" title="{[{ VIEW_IN_VR }]}" class="icon icon-webvr"></i>
|
|
|
+ <i
|
|
|
+ rel="tooltip"
|
|
|
+ title="{[{ VIEW_IN_VR }]}"
|
|
|
+ class="icon icon-webvr"
|
|
|
+ ></i>
|
|
|
</a>
|
|
|
</div>
|
|
|
<div id="sharing" class="ui-icon wide hidden" style="display: none">
|
|
|
<a>
|
|
|
- <i rel="tooltip" title="{[{ SOCIAL_SHARING }]}" class="icon icon-share"></i>
|
|
|
+ <i
|
|
|
+ rel="tooltip"
|
|
|
+ title="{[{ SOCIAL_SHARING }]}"
|
|
|
+ class="icon icon-share"
|
|
|
+ ></i>
|
|
|
</a>
|
|
|
</div>
|
|
|
<div class="pull-right terms terms2">
|
|
|
@@ -140,50 +241,102 @@
|
|
|
</transition>
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
- <transition enter-active-class="animate__animated animate__fadeInUp animate__faster" leave-active-class="animate__animated animate__fadeOutDown animate__faster">
|
|
|
+ <transition
|
|
|
+ enter-active-class="animate__animated animate__fadeInUp animate__faster"
|
|
|
+ leave-active-class="animate__animated animate__fadeOutDown animate__faster"
|
|
|
+ >
|
|
|
<HotList v-if="openType === 'hots'" @close="openType = null" />
|
|
|
</transition>
|
|
|
</template>
|
|
|
|
|
|
<!-- 自动导览 -->
|
|
|
- <transition name="fade" enter-active-class="animate__animated animate__fadeInUp animate__faster" leave-active-class="animate__animated animate__fadeOutDown animate__faster">
|
|
|
+ <transition
|
|
|
+ name="fade"
|
|
|
+ enter-active-class="animate__animated animate__fadeInUp animate__faster"
|
|
|
+ leave-active-class="animate__animated animate__fadeOutDown animate__faster"
|
|
|
+ >
|
|
|
<Guide v-if="showGuide" :tourList="tourList" />
|
|
|
</transition>
|
|
|
|
|
|
<!-- 导览底部进度 -->
|
|
|
- <transition name="fade" enter-active-class="animate__animated animate__fadeInUp animate__faster" leave-active-class="animate__animated animate__fadeOutDown animate__faster">
|
|
|
+ <transition
|
|
|
+ name="fade"
|
|
|
+ enter-active-class="animate__animated animate__fadeInUp animate__faster"
|
|
|
+ leave-active-class="animate__animated animate__fadeOutDown animate__faster"
|
|
|
+ >
|
|
|
<div class="guide-progress" v-if="showGuide && guideIsPlay && isCollapse">
|
|
|
<div class="progress-box">
|
|
|
<div class="info">
|
|
|
<span>{{ guidePlayIndex + 1 }}</span
|
|
|
>of<span>{{ tourList.length }}</span>
|
|
|
</div>
|
|
|
- <div class="bar-box"><div :style="`width:${100 / tourList.length}%;left:${(guidePlayIndex * 100) / tourList.length}%;`" class="current-box"></div></div>
|
|
|
+ <div class="bar-box">
|
|
|
+ <div
|
|
|
+ :style="`width:${100 / tourList.length}%;left:${
|
|
|
+ (guidePlayIndex * 100) / tourList.length
|
|
|
+ }%;`"
|
|
|
+ class="current-box"
|
|
|
+ ></div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</transition>
|
|
|
|
|
|
<!-- 小地图控制按钮 -->
|
|
|
- <div class="minimap-controls" :class="{ open: !miniMapStatus, mobile: isMobile }" @click="toggleMiniMap()"></div>
|
|
|
+ <div
|
|
|
+ class="minimap-controls"
|
|
|
+ :class="{ open: !miniMapStatus, mobile: isMobile }"
|
|
|
+ @click="toggleMiniMap()"
|
|
|
+ ></div>
|
|
|
<template v-if="!isMobile">
|
|
|
- <transition name="fade" enter-active-class="animate__animated animate__fadeInUp animate__faster" leave-active-class="animate__animated animate__fadeOutDown animate__faster">
|
|
|
- <div v-show="openType != 'immersive' && !showGuide && !guideIsPlay" class="left-btn">
|
|
|
- <div class="button-item" :class="getActive(i.type)" v-show="mode == 'dollhouse' ? ['model', 'realMap'].includes(i.type) : !['model', 'realMap'].includes(i.type)" v-for="(i, index) in leftButtons" @click.stop="hanlderButtons(i, i.type)">
|
|
|
+ <transition
|
|
|
+ name="fade"
|
|
|
+ enter-active-class="animate__animated animate__fadeInUp animate__faster"
|
|
|
+ leave-active-class="animate__animated animate__fadeOutDown animate__faster"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ v-show="openType != 'immersive' && !showGuide && !guideIsPlay"
|
|
|
+ class="left-btn"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="button-item"
|
|
|
+ :class="getActive(i.type)"
|
|
|
+ v-show="
|
|
|
+ mode == 'dollhouse'
|
|
|
+ ? ['model', 'realMap'].includes(i.type)
|
|
|
+ : !['model', 'realMap'].includes(i.type)
|
|
|
+ "
|
|
|
+ v-for="(i, index) in leftButtons"
|
|
|
+ @click.stop="hanlderButtons(i, i.type)"
|
|
|
+ >
|
|
|
<img class="normal" :src="i.normalIcon" alt="" />
|
|
|
<img class="active" :src="i.activeIcon" alt="" />
|
|
|
- <div class="tip-box">{{ getActive(i.type) === 'active' ? (i.activeName || i.name) : i.name }}</div>
|
|
|
+ <div class="tip-box">
|
|
|
+ {{
|
|
|
+ getActive(i.type) === "active" ? i.activeName || i.name : i.name
|
|
|
+ }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</transition>
|
|
|
|
|
|
<!-- 沉浸模式-工具栏 -->
|
|
|
- <transition name="fade" enter-active-class="animate__animated animate__fadeInUp animate__faster" leave-active-class="animate__animated animate__fadeOutDown animate__faster">
|
|
|
- <div v-show="kanzhanBtnVisible" class="left-btn" :class="{['show-guide']: showGuide && !isCollapse}">
|
|
|
- <div class="button-item"
|
|
|
+ <transition
|
|
|
+ name="fade"
|
|
|
+ enter-active-class="animate__animated animate__fadeInUp animate__faster"
|
|
|
+ leave-active-class="animate__animated animate__fadeOutDown animate__faster"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ v-show="kanzhanBtnVisible"
|
|
|
+ class="left-btn"
|
|
|
+ :class="{ ['show-guide']: showGuide && !isCollapse }"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="button-item"
|
|
|
:class="getActive(i.type)"
|
|
|
v-for="(i, index) in immersiveButtons"
|
|
|
@click="exitImmersive"
|
|
|
- >
|
|
|
+ >
|
|
|
<img class="normal" :src="i.normalIcon" alt="" />
|
|
|
<img class="active" :src="i.activeIcon" alt="" />
|
|
|
<div class="tip-box">{{ i.name }}</div>
|
|
|
@@ -192,10 +345,21 @@
|
|
|
</transition>
|
|
|
|
|
|
<!-- 沉浸式看展按钮 -->
|
|
|
- <div class="kanzhan-btns" :class="{['show-guide']: showGuide && !isCollapse}">
|
|
|
+ <div
|
|
|
+ class="kanzhan-btns"
|
|
|
+ :class="{ ['show-guide']: showGuide && !isCollapse }"
|
|
|
+ >
|
|
|
<transition name="preScene">
|
|
|
- <div v-show="kanzhanBtnVisible" @click="goScene('prev')" class="button-item">
|
|
|
- <img class="normal" :src="require('@/assets/image/icon/new-icon/icon_pre.svg')" alt="" />
|
|
|
+ <div
|
|
|
+ v-show="kanzhanBtnVisible"
|
|
|
+ @click="goScene('prev')"
|
|
|
+ class="button-item"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ class="normal"
|
|
|
+ :src="require('@/assets/image/icon/new-icon/icon_pre.svg')"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
</div>
|
|
|
</transition>
|
|
|
<transition name="activeScene">
|
|
|
@@ -203,9 +367,12 @@
|
|
|
<div
|
|
|
v-for="(i, index) in playButtons"
|
|
|
:key="index"
|
|
|
- v-show="(i.action == 'play' && !guideIsPlay && mode == 'panorama') || (i.action == 'pause' && guideIsPlay && mode == 'panorama')"
|
|
|
+ v-show="
|
|
|
+ (i.action == 'play' && !guideIsPlay && mode == 'panorama') ||
|
|
|
+ (i.action == 'pause' && guideIsPlay && mode == 'panorama')
|
|
|
+ "
|
|
|
class="button-item2 button-item"
|
|
|
- :class="{pause: i.action === 'pause'}"
|
|
|
+ :class="{ pause: i.action === 'pause' }"
|
|
|
@click.stop="hanlderButtons(i, i.type)"
|
|
|
>
|
|
|
<template v-if="i.action !== 'pause'">
|
|
|
@@ -217,8 +384,16 @@
|
|
|
</div>
|
|
|
</transition>
|
|
|
<transition name="nextScene">
|
|
|
- <div v-show="kanzhanBtnVisible" class="button-item" @click="goScene('next')">
|
|
|
- <img class="normal" :src="require('@/assets/image/icon/new-icon/icon_next.svg')" alt="" />
|
|
|
+ <div
|
|
|
+ v-show="kanzhanBtnVisible"
|
|
|
+ class="button-item"
|
|
|
+ @click="goScene('next')"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ class="normal"
|
|
|
+ :src="require('@/assets/image/icon/new-icon/icon_next.svg')"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
</div>
|
|
|
</transition>
|
|
|
</div>
|
|
|
@@ -231,22 +406,41 @@
|
|
|
:class="getActive(i.type)"
|
|
|
@click.stop="hanlderButtons(i, i.type)"
|
|
|
v-for="(i, index) in mobileTopBtns"
|
|
|
- v-show="mode == 'dollhouse' ? ['model', 'realMap'].includes(i.type) : openType === 'immersive' ? ['immersive'].includes(i.type) : !['model', 'realMap'].includes(i.type)"
|
|
|
+ v-show="
|
|
|
+ mode == 'dollhouse'
|
|
|
+ ? ['model', 'realMap'].includes(i.type)
|
|
|
+ : openType === 'immersive'
|
|
|
+ ? ['immersive'].includes(i.type)
|
|
|
+ : !['model', 'realMap'].includes(i.type)
|
|
|
+ "
|
|
|
>
|
|
|
<img class="normal" :src="i.normalIcon" alt="" />
|
|
|
<img class="active" :src="i.activeIcon" alt="" />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="mobile-bottom-button" :class="{ center: openType == 'immersive', ['show-guide']: showGuide && !isCollapse }">
|
|
|
- <template
|
|
|
- v-for="(i, index) in mobileBottomBtns"
|
|
|
- >
|
|
|
+ <div
|
|
|
+ class="mobile-bottom-button"
|
|
|
+ :class="{
|
|
|
+ center: openType == 'immersive',
|
|
|
+ ['show-guide']: showGuide && !isCollapse,
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <template v-for="(i, index) in mobileBottomBtns">
|
|
|
<div
|
|
|
- v-if="kanzhanBtnVisible ? i.type == 'controls' : i.type !== 'controls'"
|
|
|
+ v-if="
|
|
|
+ kanzhanBtnVisible ? i.type == 'controls' : i.type !== 'controls'
|
|
|
+ "
|
|
|
:key="index"
|
|
|
class="button-item"
|
|
|
- :class="`${getBottomActive(i.type)} ${i.action === 'play' && guideIsPlay && 'active pause'}`"
|
|
|
- :style="`display:${(['hots', 'route'].includes(i.type) && openType == 'immersive') || mode === 'dollhouse' ? 'none' : 'block'};`"
|
|
|
+ :class="`${getBottomActive(i.type)} ${
|
|
|
+ i.action === 'play' && guideIsPlay && 'active pause'
|
|
|
+ }`"
|
|
|
+ :style="`display:${
|
|
|
+ (['hots', 'route'].includes(i.type) && openType == 'immersive') ||
|
|
|
+ mode === 'dollhouse'
|
|
|
+ ? 'none'
|
|
|
+ : 'block'
|
|
|
+ };`"
|
|
|
@click.stop="hanlderButtons(i, i.type)"
|
|
|
>
|
|
|
<img class="normal" :src="i.normalIcon" alt="" />
|
|
|
@@ -256,25 +450,53 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<!-- 音乐按钮 -->
|
|
|
- <transition name="fade" enter-active-class="animate__animated animate__fadeInUp animate__faster" leave-active-class="animate__animated animate__fadeOutDown animate__faster">
|
|
|
- <div class="right-btn"
|
|
|
- :class="{ mobile: isMobile, ['show-guide']: showGuide && !isCollapse}"
|
|
|
+ <transition
|
|
|
+ name="fade"
|
|
|
+ enter-active-class="animate__animated animate__fadeInUp animate__faster"
|
|
|
+ leave-active-class="animate__animated animate__fadeOutDown animate__faster"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="right-btn"
|
|
|
+ :class="{ mobile: isMobile, ['show-guide']: showGuide && !isCollapse }"
|
|
|
>
|
|
|
- <div id="bgm" class="button-item" :class="getActive(i.type)" v-for="(i, index) in rightButtons">
|
|
|
- <img class="normal" id="openMusic" :src="i.normalIcon" alt="" @click="switchBGM(false)" />
|
|
|
- <img class="active" id="closeMusic" :src="i.activeIcon" alt="" @click="switchBGM(true)" />
|
|
|
+ <div
|
|
|
+ id="bgm"
|
|
|
+ class="button-item"
|
|
|
+ :class="getActive(i.type)"
|
|
|
+ v-for="(i, index) in rightButtons"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ class="normal"
|
|
|
+ id="openMusic"
|
|
|
+ :src="i.normalIcon"
|
|
|
+ alt=""
|
|
|
+ @click="switchBGM(false)"
|
|
|
+ />
|
|
|
+ <img
|
|
|
+ class="active"
|
|
|
+ id="closeMusic"
|
|
|
+ :src="i.activeIcon"
|
|
|
+ alt=""
|
|
|
+ @click="switchBGM(true)"
|
|
|
+ />
|
|
|
<div v-if="!isMobile" class="tip-box">{{ i.name }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</transition>
|
|
|
<transition name="tour">
|
|
|
- <TourList :tourList="tourList" v-if="openType == 'tour'" @close="openType = null"> </TourList>
|
|
|
+ <TourList
|
|
|
+ :tourList="tourList"
|
|
|
+ v-if="openType == 'tour'"
|
|
|
+ @close="openType = null"
|
|
|
+ >
|
|
|
+ </TourList>
|
|
|
</transition>
|
|
|
- <transition name="fade" enter-active-class="animate__animated animate__fadeIn animate__faster" leave-active-class="animate__animated animate__fadeOut animate__faster">
|
|
|
- <LayerMap v-if="mapVisible" @close="() => {
|
|
|
- openType = null
|
|
|
- mapVisible = false
|
|
|
- }"> </LayerMap>
|
|
|
+ <transition
|
|
|
+ name="fade"
|
|
|
+ enter-active-class="animate__animated animate__fadeIn animate__faster"
|
|
|
+ leave-active-class="animate__animated animate__fadeOut animate__faster"
|
|
|
+ >
|
|
|
+ <LayerMap v-if="mapVisible" @close="closeLayer"> </LayerMap>
|
|
|
</transition>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -423,13 +645,19 @@ export default {
|
|
|
type: "immersive",
|
|
|
handler: () => {
|
|
|
if (!this.openType) {
|
|
|
- this.openType = 'immersive'
|
|
|
- this.setData({ showGuide: true, guideIsPlay: true, isCollapse: false });
|
|
|
+ this.openType = "immersive";
|
|
|
+ this.setData({
|
|
|
+ showGuide: true,
|
|
|
+ guideIsPlay: true,
|
|
|
+ isCollapse: false,
|
|
|
+ });
|
|
|
if (!this.tourList.length) {
|
|
|
- this.tourList = window.player ? player?.model?.heroLocations : [];
|
|
|
+ this.tourList = window.player
|
|
|
+ ? player?.model?.heroLocations
|
|
|
+ : [];
|
|
|
}
|
|
|
- } else this.exitImmersive()
|
|
|
- }
|
|
|
+ } else this.exitImmersive();
|
|
|
+ },
|
|
|
},
|
|
|
],
|
|
|
mobileBottomBtns: [
|
|
|
@@ -471,7 +699,7 @@ export default {
|
|
|
type: "controls",
|
|
|
},
|
|
|
],
|
|
|
- mapVisible: false
|
|
|
+ mapVisible: false,
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
|
@@ -479,10 +707,13 @@ export default {
|
|
|
handler(val, old) {
|
|
|
if (val) {
|
|
|
//导览播放
|
|
|
- settings.playTourNearBy ? player.director.playTourNearBy() : player.director.playTour();
|
|
|
+ settings.playTourNearBy
|
|
|
+ ? player.director.playTourNearBy()
|
|
|
+ : player.director.playTour();
|
|
|
} else {
|
|
|
// 导览结束
|
|
|
- player.director.tourInProgress && (player.director.stopTour(), player.director.endTourProgress());
|
|
|
+ player.director.tourInProgress &&
|
|
|
+ (player.director.stopTour(), player.director.endTourProgress());
|
|
|
}
|
|
|
},
|
|
|
},
|
|
|
@@ -506,15 +737,21 @@ export default {
|
|
|
computed: {
|
|
|
...mapGetters({
|
|
|
points: "points",
|
|
|
+ flyInModel: "flyInModel",
|
|
|
showGuide: "showGuide",
|
|
|
guideIsPlay: "guideIsPlay",
|
|
|
isCollapse: "isCollapse",
|
|
|
guidePlayIndex: "guidePlayIndex",
|
|
|
}),
|
|
|
- kanzhanBtnVisible: (v) => v.openType === 'immersive' || v.showGuide
|
|
|
+ kanzhanBtnVisible: (v) => v.openType === "immersive" || v.showGuide,
|
|
|
},
|
|
|
mounted() {
|
|
|
- let events = ["fullscreenchange", "webkitfullscreenchange", "mozfullscreenchange", "MSFullscreenChange"];
|
|
|
+ let events = [
|
|
|
+ "fullscreenchange",
|
|
|
+ "webkitfullscreenchange",
|
|
|
+ "mozfullscreenchange",
|
|
|
+ "MSFullscreenChange",
|
|
|
+ ];
|
|
|
events.forEach((item, index) => {
|
|
|
window.addEventListener(item, () => {
|
|
|
this.isFullscreen = !this.isFullscreen;
|
|
|
@@ -527,8 +764,12 @@ export default {
|
|
|
// }, 100);
|
|
|
window.addEventListener("playerAndModelReady", () => {
|
|
|
this.loaded = true;
|
|
|
+ // player.on("flying.started", (a, b, c, e) => {
|
|
|
+ // window.parent.window.setMode(e.model.mode);
|
|
|
+ // });
|
|
|
player.on("flying.ended", () => {
|
|
|
this.mode = player.mode;
|
|
|
+ window.parent.window.setMode(this.mode);
|
|
|
if (this.mode == "dollhouse") {
|
|
|
$(".cad").hide();
|
|
|
$(".minimap-controls").hide();
|
|
|
@@ -547,14 +788,14 @@ export default {
|
|
|
let n = player.director.describe();
|
|
|
this.setData({ guideIsPlay: n.tourIsPlaying });
|
|
|
|
|
|
- console.log(n.tourIsPlaying, '==')
|
|
|
- if (n.tourIsPlaying && this.openType !== 'immersive') {
|
|
|
- this.hanlderButtons(this.leftButtons[5],'immersive')
|
|
|
+ console.log(n.tourIsPlaying, "==");
|
|
|
+ if (n.tourIsPlaying && this.openType !== "immersive") {
|
|
|
+ this.hanlderButtons(this.leftButtons[5], "immersive");
|
|
|
}
|
|
|
if (null !== n.currentItem) {
|
|
|
//n.currentItem是二维数组,代表导览中的两层,导览图片展示的是外层的,也就是数据第一个元素。
|
|
|
//if (this.guideIsPlay) { //导览片段的选中与当前点位所属片段对应。
|
|
|
- this.setData({ guidePlayIndex: n.currentItem[0] });
|
|
|
+ this.setData({ guidePlayIndex: n.currentItem[0] });
|
|
|
//}
|
|
|
} else {
|
|
|
this.setData({ guidePlayIndex: -1 });
|
|
|
@@ -562,6 +803,13 @@ export default {
|
|
|
});
|
|
|
|
|
|
this.getPoints();
|
|
|
+ let flyInModel = localStorage.getItem("flyInModel") || false;
|
|
|
+
|
|
|
+ if (flyInModel) {
|
|
|
+ player.FlyToMode("dollhouse");
|
|
|
+ this.mode = "dollhouse";
|
|
|
+ localStorage.removeItem("flyInModel");
|
|
|
+ }
|
|
|
});
|
|
|
};
|
|
|
initListener();
|
|
|
@@ -569,6 +817,13 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
...mapMutations(["setData", "setPanoOver"]),
|
|
|
+ closeLayer() {
|
|
|
+ this.mapVisible = false;
|
|
|
+ this.openType = null;
|
|
|
+ if (this.mode == "dollhouse") {
|
|
|
+ window.parent.window.setMode(this.mode);
|
|
|
+ }
|
|
|
+ },
|
|
|
handleTour() {
|
|
|
this.setData({ guideIsPlay: !this.guideIsPlay });
|
|
|
// if (this.guideIsPlay) {
|
|
|
@@ -592,14 +847,14 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
goScene(type) {
|
|
|
- window.tourPlayCtl.go(type === 'prev' ? -1 : 1)
|
|
|
+ window.tourPlayCtl.go(type === "prev" ? -1 : 1);
|
|
|
},
|
|
|
toggleMiniMap() {
|
|
|
this.miniMapStatus = !this.miniMapStatus;
|
|
|
},
|
|
|
|
|
|
exitImmersive() {
|
|
|
- this.openType = null
|
|
|
+ this.openType = null;
|
|
|
this.setData({ showGuide: false, guideIsPlay: false });
|
|
|
},
|
|
|
hanlderButtons(item, type) {
|
|
|
@@ -607,19 +862,23 @@ export default {
|
|
|
if (player.flying) return;
|
|
|
|
|
|
if (item.handler) {
|
|
|
- item.handler()
|
|
|
- return
|
|
|
+ item.handler();
|
|
|
+ return;
|
|
|
}
|
|
|
if (!["route", "fullScreen", "controls", "guide"].includes(type)) {
|
|
|
if (this.openType != type) {
|
|
|
this.openType = type;
|
|
|
|
|
|
- if (type === 'immersive') {
|
|
|
- this.setData({ showGuide: true, isCollapse: false, guideIsPlay: true });
|
|
|
+ if (type === "immersive") {
|
|
|
+ this.setData({
|
|
|
+ showGuide: true,
|
|
|
+ isCollapse: false,
|
|
|
+ guideIsPlay: true,
|
|
|
+ });
|
|
|
if (!this.tourList.length) {
|
|
|
this.tourList = window.player ? player?.model?.heroLocations : [];
|
|
|
}
|
|
|
- return
|
|
|
+ return;
|
|
|
}
|
|
|
} else {
|
|
|
this.openType = null;
|
|
|
@@ -638,10 +897,14 @@ export default {
|
|
|
case "model":
|
|
|
player.FlyToMode("panorama");
|
|
|
this.mode = "panorama";
|
|
|
+ window.parent.window.setMode(this.mode);
|
|
|
break;
|
|
|
case "realMap":
|
|
|
- this.openType = 'realMap';
|
|
|
+ this.openType = "realMap";
|
|
|
this.mapVisible = true;
|
|
|
+ if (this.mode == "dollhouse") {
|
|
|
+ window.parent.window.setMode(null);
|
|
|
+ }
|
|
|
break;
|
|
|
case "map":
|
|
|
if (player.mode == "dollhouse") {
|
|
|
@@ -651,6 +914,7 @@ export default {
|
|
|
player.FlyToMode("dollhouse");
|
|
|
this.mode = "dollhouse";
|
|
|
}
|
|
|
+ window.parent.window.setMode(this.mode);
|
|
|
break;
|
|
|
case "tour":
|
|
|
if (!this.tourList.length) {
|
|
|
@@ -665,7 +929,7 @@ export default {
|
|
|
this.onFullScreen();
|
|
|
break;
|
|
|
case "controls":
|
|
|
- if (item.name == '自动导览') {
|
|
|
+ if (item.name == "自动导览") {
|
|
|
this.setData({ showGuide: true, guideIsPlay: !this.guideIsPlay });
|
|
|
if (!this.tourList.length) {
|
|
|
this.tourList = window.player ? player?.model?.heroLocations : [];
|
|
|
@@ -1090,7 +1354,7 @@ export default {
|
|
|
align-items: center;
|
|
|
flex-direction: row;
|
|
|
gap: 0.6667rem;
|
|
|
- transition: bottom linear .2s;
|
|
|
+ transition: bottom linear 0.2s;
|
|
|
&.show-guide {
|
|
|
bottom: 145px !important;
|
|
|
}
|
|
|
@@ -1117,7 +1381,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
&.pause {
|
|
|
- background-image: url('../../assets/image/icon/new-icon/icon_play.png');
|
|
|
+ background-image: url("../../assets/image/icon/new-icon/icon_play.png");
|
|
|
background-repeat: no-repeat;
|
|
|
background-size: auto 44px;
|
|
|
animation: mobile-play 2s steps(48) infinite;
|
|
|
@@ -1308,7 +1572,7 @@ export default {
|
|
|
&.pause {
|
|
|
width: 56px;
|
|
|
height: 56px;
|
|
|
- background-image: url('../../assets/image/icon/new-icon/icon_play.png');
|
|
|
+ background-image: url("../../assets/image/icon/new-icon/icon_play.png");
|
|
|
background-repeat: no-repeat;
|
|
|
animation: play 2s steps(48) infinite;
|
|
|
|