<template>
|
<!-- 浮动弹窗 mobileWindow-->
|
<div ref="mobile-mapContentContent" v-show="!MobileWindowsHide" id="mobile-map_content_content">
|
<div class="mobiletitle">
|
{{ title }}
|
<span class="mobile_audio" @click="openAudio" v-show="introduce && !video">
|
<!-- <i class="el-icon-video-play icon" v-show="!audioState"></i>
|
<i class="el-icon-video-pause icon" v-show="audioState"></i>-->
|
<img src="/zhjg/img/icon/start-video.png" class="icon" alt v-show="audioState" />
|
<img src="/zhjg/img/icon/close-video.png" class="icon" alt v-show="!audioState" />
|
<!-- <div id="bdtts_div_id">
|
<audio id="tts_autio_id" autoplay="autoplay">
|
<source
|
id="tts_source_id"
|
src="https://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=5&per=1&text=请输入文字"
|
type="audio/mpeg"
|
/>
|
<embed id="tts_embed_id" height="0" width="0" src="" />
|
</audio>
|
</div>-->
|
</span>
|
</div>
|
<div class="mobilelabel-content">
|
<div class="mobile-popup-imgs-heard">
|
<div class="mobile-popup-imgs-h-close">
|
<i class="el-icon-close icon" @click="closeWindow"></i>
|
</div>
|
<!-- <video :src="video" controls="controls" autoplay v-if="video"></video> -->
|
<playVideo :src="video" controls="controls" autoplay v-if="video"></playVideo>
|
<!-- <img :src="url" alt="" v-show="url && !video" /> -->
|
<!-- style="width: 100px; height: 100px" -->
|
<el-image
|
class="imgs"
|
:src="url"
|
id="mobileBigImgs"
|
v-show="url && !video"
|
:preview-src-list="srcList"
|
>
|
<!-- v-show="false" -->
|
</el-image>
|
<!-- <div>{{ query.query }}</div> -->
|
<div class="mobileBig-center-our" v-show="!video">
|
<div v-for="(item, index) in center" :key="index" class="mobileBig-center">
|
<div class="m-c-title">{{ item.name }}:</div>
|
<span class="m-c-center">{{ item.value }}</span>
|
</div>
|
<div
|
class="mobileBig-center-introduce"
|
style="padding-top: 10px"
|
v-show="introduce"
|
v-html="introduce"
|
></div>
|
</div>
|
</div>
|
<div class="mobile-popup-control">
|
<div v-for="(item, index) in seebut" :key="index">
|
<el-link
|
:icon="
|
item.name == '实景'
|
? 'el-icon-place'
|
: item.name == '图集'
|
? 'el-icon-data-board'
|
: item.name == '去这'
|
? quzheD
|
? 'el-icon-loading'
|
: 'el-icon-finished'
|
: item.name == '视频' || item.name == '返回'
|
? 'el-icon-video-camera-solid'
|
: ''
|
"
|
class="mobilePopupOurOnce_r_d_in"
|
@click="openOnce(item.name)"
|
>{{ item.name }}</el-link>
|
<el-divider
|
direction="vertical"
|
class="mobilePopupOurOnce_r_d_in"
|
v-if="index != seebut.length - 1"
|
></el-divider>
|
</div>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import {
|
Message
|
} from 'element-ui'
|
|
import { mapGetters } from 'vuex'
|
|
export default {
|
name: 'mobileWindow',
|
computed: {
|
...mapGetters([
|
'MobileWindowsHide',
|
'query',
|
'MobileWindowChangeData',
|
'audioState'
|
// "areaLayerSelect",
|
])
|
},
|
watch: {
|
MobileWindowChangeData () {
|
this.$store.dispatch('MSET_GETAUDIOBEGIN', 'notOpen')
|
this.quzheD = false
|
// 数据更改
|
// this.fullscreenLoading = true;
|
if (!this.MobileWindowsHide) {
|
this.video = '' // 清除视频
|
this.seebut = [] // 清除按钮
|
const queryData = this.query.query
|
this.title = queryData.name
|
// 判断是否显示操作按钮
|
if (queryData.seebut) {
|
this.seebut = queryData.seebut
|
if (queryData.from == '活动') {
|
this.seebut = []
|
this.seebut.push({
|
name: '图集'
|
})
|
this.seebut.push({
|
name: '显示活动'
|
})
|
if (queryData.notAddGoOn == 'notAddGoOn') {
|
this.seebut.push({
|
name: '去这'
|
})
|
}
|
}
|
for (const k in this.seebut) {
|
if (this.seebut[k].name == '定位') {
|
this.seebut.splice(k, k + 1)
|
}
|
}
|
if (queryData.notAddGoOn != 'notAddGoOn') {
|
this.seebut.push({
|
name: '去这'
|
})
|
}
|
} else {
|
this.seebut = [
|
// {
|
// name: "实景",
|
// },
|
{
|
name: '图集'
|
},
|
{
|
name: '去这'
|
}
|
]
|
}
|
// 图集
|
if (queryData.bgImg) {
|
this.srcList = queryData.bgImg.split(',')
|
this.url = this.srcList[0]
|
} else {
|
this.seebut = this.seebut.filter((res) => {
|
return res.name != '图集'
|
})
|
}
|
// 视频
|
if (queryData.video) {
|
if (queryData.from == 'labels') {
|
this.seebut = []
|
this.video = queryData.video
|
} else {
|
this.seebut.push({ name: '视频' })
|
}
|
}
|
// 全景
|
if (queryData.panoramaurl) {
|
this.panoramaurl = queryData.panoramaurl
|
this.seebut = this.seebut.filter((res) => {
|
return res.name != '实景'
|
})
|
this.seebut.splice(0, 0, { name: '实景' })
|
} else {
|
this.panoramaurl = ''
|
this.seebut = this.seebut.filter((res) => {
|
return res.name != '实景'
|
})
|
}
|
// 中心内容
|
this.center = []
|
for (const k in queryData) {
|
for (const n in this.getCenter) {
|
if (
|
k == this.getCenter[n].name &&
|
queryData[k] &&
|
queryData.from != '活动' &&
|
this.getCenter[n].value == '地址'
|
) {
|
this.center.push({
|
name: this.getCenter[n].value,
|
value: queryData[k] ? queryData[k] : '暂无'
|
})
|
}
|
if (k == 'introduce') {
|
this.introduce = queryData[k]
|
if (this.introduce) {
|
setTimeout(() => {
|
const Str = document.querySelector(
|
'.mobileBig-center-introduce'
|
).innerText
|
this.$store.dispatch('MSET_GETAUDIO', Str) // 加入语音
|
}, 20)
|
}
|
}
|
}
|
}
|
}
|
}
|
},
|
data () {
|
return {
|
// 导航是否开起
|
navigationFlag: false,
|
|
getCenter: [
|
{
|
name: 'websiteUrl',
|
value: '网址'
|
},
|
{
|
name: 'telePhone',
|
value: '电话'
|
},
|
{
|
name: 'address',
|
value: '地址'
|
}
|
// {
|
// name: "introduce",
|
// value: "详情",
|
// },
|
],
|
introduce: '暂无详情数据',
|
title: '',
|
fullscreenLoading: false,
|
url: '',
|
video: '',
|
positions: '',
|
srcList: [],
|
seebut: [],
|
center: [],
|
panoramaurl: '',
|
quzheD: false // 是否点击了去这,并不能再按,以及不应用路线导航
|
}
|
},
|
|
mounted () {
|
this.$EventBus.$on('clearTimoutTime', () => {
|
if (this.navigationFlag == true) {
|
window.geolocation.clearWatch()
|
|
this.$store.dispatch('removeLabelLayerIconMobelUse')
|
}
|
})
|
},
|
|
methods: {
|
// 按钮点击事件
|
openOnce (val) {
|
const that = this
|
const query = this.query.query
|
that.routerS = []
|
|
if (val == '去这') {
|
if (that.quzheD) {
|
console.log('不可点击')
|
return
|
}
|
|
that.navigationFlag = false
|
that.quzheD = true
|
that.$EventBus.$emit('clearTimoutTime')
|
// return;
|
// 定位
|
// console.log(this.query.query);
|
// that.$store.commit("set_endPosition", this.query.query.lntLat);
|
that.getCurrentLocation()
|
} else if (val == '实景') {
|
this.$store.commit('MSET_OPENMOBILEPANORAMA', this.panoramaurl)
|
return
|
this.$store.commit(
|
'MSET_OPENMOBILEPANORAMA',
|
'https://www.kuleiman.com/110487/index.html?m=1'
|
)
|
} else if (val == '图集') {
|
const imgsDom = document.getElementById('mobileBigImgs')
|
if (imgsDom) {
|
imgsDom.click()
|
}
|
} else if (val == '视频') {
|
this.seebut[this.seebut.length - 1].name = '返回'
|
this.video = this.query.query.video
|
} else if (val == '返回') {
|
this.seebut[this.seebut.length - 1].name = '视频'
|
this.video = ''
|
} else if (val == '显示活动') {
|
const addressOur = this.changeData(query, 'addressname', 'address')
|
const lxOur = this.changeData(query, 'lxname', 'lx')
|
that.$store.dispatch('MSET_DRAWALINELAYERMANY', [
|
lxOur,
|
addressOur,
|
query
|
])
|
}
|
},
|
// 修改数据
|
changeData (data, name, value) {
|
const arr = []
|
for (const k in data[name]) {
|
arr.push({
|
name: data[name][k],
|
value:
|
name == 'lxname'
|
? data[value][k]
|
.split('(')[1]
|
.split(')')[0]
|
.split(',')
|
.join(';')
|
.split(' ')
|
.join(',')
|
: [+data[value][k].split(',')[0], +data[value][k].split(',')[1]]
|
})
|
}
|
return arr
|
},
|
closeWindow () {
|
if (!this.MobileWindowsHide) {
|
const that = this
|
this.$store.dispatch('closeMobileWindowsDom') // 关闭随地图弹窗
|
if (window.select.overlay != undefined) {
|
window.select.overlay.setStyle({
|
material: window.select.color,
|
outline: false
|
})
|
|
that.$store.commit('mset_changeSelect', [undefined, undefined])
|
}
|
}
|
},
|
openAudio () {
|
if (this.introduce) {
|
this.$store.dispatch('MSET_GETAUDIOBEGIN')
|
}
|
},
|
|
doit (now) {
|
console.log(now)
|
const that = this
|
const query = this.query.query
|
if (now[0] == '失败') {
|
that.quzheD = false
|
return
|
}
|
|
const ints = {
|
start: [now[0], now[1]],
|
end: [query.lntLat[0], query.lntLat[1], 360],
|
// start: [+query.lntLat[0], +query.lntLat[1], 360],
|
// end: [114.031946, 27.621475],
|
type: 'driving',
|
fn: function (datas) {
|
// 获取回调路径
|
that.routerS.push(datas)
|
that.quzheD = false
|
|
// 加载第一条线路
|
// that.$store.commit('set_choiceRouterS', 0)
|
that.$store.dispatch('MSET_DRAWALINELAYER', datas.Str)
|
// that.$store.commit('cameraSetView', ints.start)
|
}
|
}
|
|
that.$store.dispatch('MSET_GOTOWHERE', ints)
|
},
|
|
getCurrentLocation (flag = true) {
|
const that = this
|
|
window.geolocation.watchPosition(that.showPosition)
|
|
window.geolocation.getLocation(that.showPosition, that.showErrow, {
|
timeout: 8000
|
})
|
},
|
|
showPosition (result) {
|
const that = this
|
|
const position = global.DC.CoordTransform.GCJ02ToWGS84(result.lng, result.lat)
|
|
const data = {
|
name: '我的位置',
|
jd: position[0],
|
wd: position[1]
|
}
|
|
that.$store.dispatch('addLabelLayerIconMobelUse', {
|
data: data,
|
clear: true,
|
mviewer: global.viewer
|
})
|
|
if (that.navigationFlag == true) return
|
|
if (position[0] > 116.009836 && position[0] < 116.045022 && position[1] > 28.664168 && position[1] < 28.699788) {
|
that.$store.dispatch('pcMoveView', {
|
jd: position[0],
|
wd: position[1],
|
viewer: global.viewer
|
})
|
|
that.$store.dispatch('addLabelLayerIconMobelUse', {
|
data: data,
|
clear: true,
|
mviewer: global.viewer
|
})
|
that.doit([position[0], position[1]])
|
|
that.navigationFlag = true
|
} else {
|
Message({
|
message: '您当前位置超出学校范围',
|
type: 'warning',
|
duration: 2000
|
})
|
|
that.doit(['失败'])
|
that.$EventBus.$emit('clearTimoutTime')
|
}
|
},
|
|
showErrow (result) {
|
if (result.code == 1) {
|
confirm('您拒绝了定位功能')
|
} else if (result.code == 3 || result.code == 5) {
|
confirm('请求超时')
|
}
|
|
this.$EventBus.$emit('clearTimoutTime')
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
.mobile_audio {
|
margin-left: 3px;
|
.icon {
|
font-size: 20px;
|
width: 20px;
|
height: 20px;
|
float: right;
|
position: relative;
|
right: 8px;
|
}
|
}
|
#bdtts_div_id {
|
width: 100px;
|
height: 100px;
|
display: inline-block;
|
position: absolute;
|
top: -50px;
|
background-color: #fff;
|
}
|
</style>
|