<template>
|
<div class="showIndex-wrap">
|
<div class="mapBox">
|
<!-- <baidu-map-->
|
<!-- :center="center"-->
|
<!-- :zoom="zoom"-->
|
<!-- class="bm-view"-->
|
<!-- @ready="handler">-->
|
<!-- </baidu-map>-->
|
<div class="map" id="map"></div>
|
<!--<div class="map_container" id="map_container"></div>-->
|
</div>
|
<div class="upload-box">
|
<el-dropdown @command="uploadClick">
|
<el-button class="uploadBtn" plain size="small">
|
上传文件<i class="el-icon-arrow-down el-icon--right"></i>
|
</el-button>
|
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-item command="1">
|
报警
|
</el-dropdown-item>
|
<el-dropdown-item command="0">状态值</el-dropdown-item>
|
</el-dropdown-menu>
|
</el-dropdown>
|
</div>
|
<div class="showIndex-wrap-inside">
|
<div class="indexMoudleBlock-box">
|
<IndexMoudleBlock></IndexMoudleBlock>
|
</div>
|
<div class="yunwei-box">
|
<YunweiBlock></YunweiBlock>
|
</div>
|
<div class="rizhi-box">
|
<TimesLogs></TimesLogs>
|
</div>
|
</div>
|
<uploadForm ref="uploadForm" v-if="uploadVisiable"></uploadForm>
|
</div>
|
</template>
|
|
<script>
|
import IndexMoudleBlock from "./IndexMoudleBlock";
|
import TimesLogs from "./TimesLogs";
|
import YunweiBlock from "./YunweiBlock";
|
import uploadForm from "./upload/uploadForm";
|
import {getMapData} from '@/api/daping'
|
export default {
|
name: "showIndex",
|
components: {
|
IndexMoudleBlock,
|
YunweiBlock,
|
TimesLogs,
|
uploadForm
|
},
|
data() {
|
return{
|
center: { lng: 118.20, lat: 39.63},
|
zoom: 6,
|
mapObj:{},
|
mapData2:[],
|
uploadVisiable:false, //上传文件弹框
|
timer:null,
|
mapData:[],
|
map:{}
|
}
|
},
|
destroyed() {
|
clearInterval(this.timer)
|
},
|
mounted() {
|
//this.getMapData()
|
//this.initMap()
|
this.$nextTick(() => {
|
this.initMap()
|
})
|
|
|
// this.timer = setInterval(() => {
|
// this.getMapData()
|
// },300000)
|
|
},
|
methods: {
|
initMap() {
|
let map = new window.BMap.Map("map");
|
console.log(map,'map===')
|
map.centerAndZoom(new BMap.Point(118.183450598,39.6505309225), 11)
|
//map.enableScrollWheelZoom(true) //鼠标滚动缩放
|
map.setCurrentCity('唐山') // 设置地图显示的城市 此项是必须设置的
|
map.enableScrollWheelZoom(true) //开启鼠标滚轮缩放
|
//this.getMapData()
|
//this.addMarker()
|
|
},
|
uploadClick(type) {
|
console.log(type,'type===')
|
this.uploadVisiable = true
|
this.$nextTick(() => {
|
this.$refs.uploadForm.init(type)
|
})
|
},
|
getMapData() {
|
getMapData().then(res => {
|
if(res.code == 0) {
|
this.mapData = res.data
|
this.addMarker()
|
}
|
})
|
},
|
// handler({BMap, map}) {
|
// this.mapObj = {BMap, map}
|
// //let goodsData = require('../../../assets/js/custom_map_config2')
|
// let point = new BMap.Point(118.183450598,39.6505309225)
|
// map.centerAndZoom(point, 11)
|
// map.enableScrollWheelZoom(true) //鼠标滚动缩放
|
// // map.setMapStyleV2({
|
// // styleJson: goodsData
|
// // // styleId: '5f9b8a9639cf6e4ae8806379bedba141'
|
// // // style: 'bluish'
|
// // })
|
// map.setCurrentCity('唐山') // 设置地图显示的城市 此项是必须设置的
|
// this.getMapData()
|
//
|
// },
|
|
addMarker() {
|
let BMap = window.BMap
|
let map = new window.BMap.Map("map");
|
//let map = new window.BMap.Map("map");
|
let BMapLib = window.BMapLib
|
let mapMarkers = []
|
this.mapData = [{
|
lon:118.167201,
|
lat:39.60944,
|
address: '河北省唐山市开平区东西大街199号',
|
health: '0'
|
},{
|
lon:118.15782,
|
lat:39.63102,
|
address: '河北省唐山市开平区东西大街199号',
|
health: '0'
|
},{
|
lon:118.09289,
|
lat:39.58163,
|
address: '河北省唐山市开平区东西大街199号',
|
health: '0'
|
},{
|
lon:118.145069,
|
lat:39.662586,
|
address: '河北省唐山市开平区东西大街199号',
|
health: '0'
|
}]
|
// this.mapData.forEach(item => {
|
// let marker = new BMap.Marker(item.lon,item.lat)
|
// mapMarkers.push(marker)
|
// this.mapObj.map.addOverlay(marker)
|
// })
|
// let markerClusterer = new BMapLib.MarkerClusterer(this.mapObj.map, {
|
// markers: mapMarkers,
|
// styles: [
|
// {
|
// url: "./static/img/markerIcon3",
|
// size: new BMap.Size(35, 35),
|
// },
|
// ],
|
// })
|
// markerClusterer.setMinClusterSize(2)
|
this.mapData.forEach(item => { //lng 经度 lat 经度
|
console.log(this.mapData,'this.mapData===')
|
if(item.lon && item.lat) {
|
let longitude = item.lon
|
console.log(item.lon,'经纬----')
|
console.log(item.lat,'经纬----')
|
let latitude = item.lat
|
let myIcon = ''
|
if(item.health == 0) {
|
myIcon = new BMap.Icon(
|
require("../../../assets/img/markerIcon3.png"),
|
new BMap.Size(35, 35),
|
{ imageSize: new BMap.Size(35, 35),anchor : new BMap.Size(35, 35) })
|
}else {
|
myIcon = new BMap.Icon(
|
require("../../../assets/img/markerIcon2.png"),
|
new BMap.Size(35, 35),
|
{ imageSize: new BMap.Size(35, 35),anchor : new BMap.Size(35, 35) })
|
}
|
|
let point = new BMap.Point(longitude,latitude)
|
let marker = new BMap.Marker(point,{icon:myIcon})
|
map.addOverlay(marker)
|
map.setZoom(11)
|
// 添加鼠标划入坐标点的显示内容
|
let isH = ''
|
if(item.health == 0) {
|
isH = '正常'
|
}else {
|
isH = '异常'
|
}
|
let str = '<div style="padding:4px 10px;width:300px;max-width: 400px;display: flex;flex-direction: row;">'
|
str += '<div>'
|
str += '<div style="display: flex;flex-direction: column">'
|
str += '<div><h1 style="font-size: 12px;padding:2px 0;width: 100%;white-space:pre-wrap">通讯状态:'+isH+'</h1></div>'
|
str += '<div><h1 style="font-size: 12px;padding:2px 0"">地址:'+item.address+'</h1></div>'
|
str += '</div>'
|
str += '</div>'
|
let opts = {
|
position: point,
|
offset: new BMap.Size(30,-30)
|
}
|
// 创建一个文本标注实例
|
let label = new BMap.Label(str,opts);
|
// 清除百度地图自带样式
|
label.setStyle({
|
border: 'none',
|
//backgroundColor: 'rgba(0,0,0,0.5)',
|
padding: '6px',
|
borderRadius:'4px',
|
boxShadow: '0 0 0 10px rgba(0,0,0,0)'
|
});
|
// 默认不显示文本标注
|
label.hide()
|
// 在全景场景内添加覆盖物
|
map.addOverlay(label);
|
/*marker.addEventListener('mouseover', function () {
|
console.log(marker,'marker==')
|
//鼠标移入动画
|
let divElement = document.createElement('div')
|
divElement.className = 'before'
|
let divElement2 = document.createElement('div')
|
divElement2.className = 'after'
|
marker.hd.innerHtml = marker.hd.childNodes[0]
|
marker.hd.appendChild(divElement)
|
marker.hd.appendChild(divElement2)
|
marker.hd.className = ''
|
marker.hd.className = 'mapBGFault'
|
label.show()
|
})
|
marker.addEventListener('mouseout', function () {
|
marker.hd.className = ''
|
label.hide()
|
})*/
|
|
}
|
})
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
.upload-box{
|
.uploadBtn{
|
background: linear-gradient(to right,#0e0e25,#092749);
|
}
|
.el-button.is-plain:focus, .el-button.is-plain:hover{
|
background: transparent;
|
}
|
.el-button{
|
border:1px solid #1ee3f3!important;
|
span{
|
color: #fff;
|
}
|
}
|
}
|
</style>
|
<style lang="scss" scoped>
|
|
.showIndex-wrap{
|
width: 100%;
|
height: calc(100% - 0.4167rem /* 80/192 */);
|
margin-top: 0.1042rem /* 20/192 */;
|
position: relative;
|
.upload-box{
|
position: absolute;
|
right: 0.1042rem /* 20/192 */;
|
top: -0.09375rem /* -18/192 */;
|
z-index: 999999999;
|
}
|
.showIndex-wrap-inside{
|
width: 100%;
|
height: 100%;
|
}
|
.indexMoudleBlock-box{
|
position: absolute;
|
left: 0.1823rem /* 35/192 */;
|
top: 0;
|
}
|
.yunwei-box{
|
position: absolute;
|
left: 0.1823rem /* 35/192 */;
|
top: 0.9375rem /* 180/192 */;
|
height: calc(100% - 0.9896rem /* 190/192 */);
|
max-height: 4.078125rem /* 783/192 */;
|
}
|
.rizhi-box{
|
position: absolute;
|
right: 0.15625rem /* 30/192 */;
|
top:0.9375rem /* 180/192 */;
|
height: calc(100% - 0.9896rem /* 190/192 */);
|
max-height: 4.078125rem /* 783/192 */;
|
}
|
.mapBox{
|
width: 100%;
|
position: absolute;
|
left: 0;
|
top: -0.4167rem /* -80/192 */;
|
bottom: 0;
|
right: 0;
|
.map{
|
width: 100%;
|
height: 100%;
|
}
|
.map_container{
|
width: 100%;
|
height: 100%;
|
}
|
.bm-view{
|
width: 100%;
|
height: 100%;
|
/*overflow: hidden;*/
|
}
|
}
|
}
|
</style>
|