<template>
|
<div class="m-left-mobileCortrolButtom">
|
<!-- <div class="m-l-inbut" @click="mubiao"><i class="el-icon-s-help"></i></div> -->
|
<div class="m-l-inbut" v-show="false">
|
<!-- <i class="el-icon-s-flag"></i> -->
|
<el-dropdown trigger="click" @command="handleCommand">
|
<span class="el-dropdown-link icons">
|
<i class="el-icon-s-flag icon"></i>
|
</span>
|
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-item
|
v-for="(item, index) in tabTable"
|
:key="index"
|
:command="item"
|
>{{ item.title }}</el-dropdown-item>
|
</el-dropdown-menu>
|
</el-dropdown>
|
</div>
|
<div class="m-l-inbut" @click="openBigPopupAfter">
|
<i class="el-icon-menu"></i>
|
</div>
|
<!-- <div class="m-l-inbut" @click="openActivity">
|
<i class="el-icon-s-opportunity"></i>
|
</div>-->
|
<!-- <div class="m-l-inbut" @click="goOn"><i class="el-icon-location"></i></div> -->
|
</div>
|
</template>
|
|
<script>
|
import { mapGetters } from 'vuex'
|
import { getIp, getUsers } from '@/api/mobile/ip/index'
|
import { getListarc } from '@/api/mobile/public/arc'
|
import { getActivity } from '@/api/mobile/hd/hd'
|
export default {
|
name: 'mobileCortrolButtom',
|
data () {
|
return {
|
tabTable: [],
|
ccData: [
|
{
|
lnt: 114.03835559,
|
lat: 27.63057034
|
},
|
{
|
lnt: 114.03971446,
|
lat: 27.62986481
|
},
|
{
|
lnt: 114.03841654,
|
lat: 27.62919726
|
},
|
{
|
lnt: 114.039946,
|
lat: 27.62847544
|
}
|
]
|
}
|
},
|
computed: {
|
...mapGetters(['mviewer', 'openmobileGoTo', 'dimensionData'])
|
},
|
created () {
|
// this.getStreet();
|
},
|
mounted () { },
|
methods: {
|
openActivity () {
|
const d = {
|
main: [
|
{
|
name: '活动',
|
type: 1,
|
method: getActivity
|
}
|
],
|
qurey: '活动'
|
}
|
this.$store.commit('MSET_POPUPOUROPENDATA', d)
|
this.$store.commit('MSET_BIGPOPUP', { name: '活动' })
|
// this.$store.commit("set_showActivity", true);
|
},
|
mubiao () {
|
// 测试fllyTo
|
},
|
handleCommand (command) {
|
const that = this
|
const position = [+command.lnt + 0.00027, +command.lat + 0.00048, 450]
|
console.log(command, '定位')
|
// 定位
|
// this.$store.commit("MSETCC_SETCC", {
|
// lntLat: position,
|
// });
|
// this.$store.dispatch("mapFlyTo", {
|
// //飞入
|
// lntLat: [...position, 450],
|
// heading: 0,
|
// pitch: -90,
|
// roll: 0,
|
// noOpen: true,
|
// });
|
that.mviewer.camera.setView({
|
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
|
// fromDegrees()方法,将经纬度和高程转换为世界坐标
|
// eslint-disable-next-line new-cap
|
destination: new global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
|
// 114.0351,
|
// 27.6314,
|
// 200.0
|
position[0],
|
position[1],
|
position[2]
|
),
|
orientation: {
|
heading: global.DC.Namespace.Cesium.Math.toRadians(
|
that.dimensionData.heading
|
),
|
pitch: global.DC.Namespace.Cesium.Math.toRadians(
|
that.dimensionData.pitch
|
),
|
// heading: data.heading,
|
// pitch: data.pitch,
|
roll: that.dimensionData.roll
|
}
|
})
|
},
|
openBigPopupAfter () {
|
this.$store.commit('MSET_BIGPOPUPAFTER', true)
|
},
|
goOn () {
|
const that = this
|
this.$store.commit('MSET_OPENMOBILEGOTO', !that.openmobileGoTo)
|
// console.log(returnCitySN["cip"]);
|
// let data = {
|
// ip: returnCitySN["cip"],
|
// key: "7WKBZ-QDY62-WEEUG-C7KUN-ADAF5-L5BKZ",
|
// };
|
// console.log("定位", data.ip);
|
// getIp(data).then((res) => {
|
// // getUsers(data).then((res) => {
|
// console.log(res);
|
// });
|
},
|
getStreet () {
|
const that = this
|
getListarc().then((res) => {
|
const title = []
|
const data = res.data.data
|
for (let k = 0; k < data.length; k++) {
|
title.push({
|
title: data[k].dictValue,
|
flag: false,
|
key: data[k].dictKey,
|
child: [],
|
lnt: that.ccData[k].lnt,
|
lat: that.ccData[k].lat
|
})
|
}
|
// res.data.data.forEach((item) => {
|
// title.push({
|
// title: item.dictValue,
|
// flag: false,
|
// key: item.dictKey,
|
// child: [],
|
// });
|
// });
|
this.tabTable = title
|
this.$store.commit('MSET_POPUPTABLENAME', title)
|
})
|
}
|
}
|
}
|
</script>
|
|
<style scoped lang="scss">
|
.m-left-mobileCortrolButtom {
|
position: fixed;
|
bottom: 35px;
|
left: 20px;
|
z-index: 200;
|
.m-l-inbut {
|
float: left;
|
width: 39px;
|
height: 39px;
|
background-color: rgb(33, 150, 243);
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
color: white;
|
font-size: 32px;
|
margin-left: 12px;
|
border-radius: 5px;
|
.icons {
|
display: inline-block;
|
width: 100%;
|
height: 100%;
|
}
|
.icon {
|
font-size: 32px;
|
color: #fff;
|
&::before {
|
width: 100%;
|
height: 100%;
|
}
|
}
|
}
|
}
|
</style>
|