|
|
|
|
<template>
|
|
|
|
|
<div class="map-main">
|
|
|
|
|
<div id="showMap" class="showMap"></div>
|
|
|
|
|
<div class="left-bg">
|
|
|
|
|
<div class="bgt"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<transition name="left-animationMap">
|
|
|
|
|
<div class="map-left" v-if="leftAnimationData">
|
|
|
|
|
<map-left></map-left>
|
|
|
|
|
</div>
|
|
|
|
|
</transition>
|
|
|
|
|
|
|
|
|
|
<img :src="leftAnimationData ? require('@/assets/images/action-left.png'):require('@/assets/images/action-right.png')" alt="" :class="!leftAnimationData ? 'left-image2':'left-image'" @click="leftAnimation()">
|
|
|
|
|
<div class="middle-top-left" :class="!leftAnimationData ? 'middle-top-left2':'middle-top-left'">
|
|
|
|
|
<div class="input-keyword">
|
|
|
|
|
<el-input
|
|
|
|
|
placeholder="请输入关键字"
|
|
|
|
|
v-model="input">
|
|
|
|
|
<i slot="suffix" class="el-icon-search" @click="search"></i>
|
|
|
|
|
</el-input>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="laser-positioning">
|
|
|
|
|
<span>地图扎点</span>
|
|
|
|
|
<img src="@/assets/images/positioning.png" alt="">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="creation-task">
|
|
|
|
|
<span>任务创建</span>
|
|
|
|
|
<img src="@/assets/images/createdTask.png" alt="">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="middle-bottom-left" :class="!leftAnimationData ? 'middle-bottom-left2' : 'middle-bottom-left'">
|
|
|
|
|
<div class="list" @click="changeMap(1)">
|
|
|
|
|
<div class="leftbg" :class="actionMap == 1 ? 'action-map':''">
|
|
|
|
|
<img src="@/assets/images/icon1.png" alt="">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="rightbg" v-show="actionMap == 1">
|
|
|
|
|
<span>执法人员</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="list" @click="changeMap(2)">
|
|
|
|
|
<div class="leftbg" :class="actionMap == 2 ? 'action-map':''">
|
|
|
|
|
<img src="@/assets/images/icon2.png" alt="">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="rightbg" v-show="actionMap == 2">
|
|
|
|
|
<span>普通事件</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="list" @click="changeMap(2)">
|
|
|
|
|
<div class="leftbg" :class="actionMap == 2 ? 'action-map':''">
|
|
|
|
|
<img src="@/assets/images/icon3.png" alt="">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="rightbg" v-show="actionMap == 2">
|
|
|
|
|
<span>重点事件</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="list" @click="changeMap(3)">
|
|
|
|
|
<div class="leftbg" :class="actionMap == 3 ? 'action-map':''">
|
|
|
|
|
<img src="@/assets/images/icon4.png" alt="">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="rightbg" v-show="actionMap == 3">
|
|
|
|
|
<span>执法车辆</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="list" @click="changeMap(4)">
|
|
|
|
|
<div class="leftbg" :class="actionMap == 4 ? 'action-map':''">
|
|
|
|
|
<img src="@/assets/images/icon5.png" alt="">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="rightbg" v-show="actionMap == 4">
|
|
|
|
|
<span>监控视频</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<transition name="right-animationMap">
|
|
|
|
|
<div class="map-right" v-if="rightAnimationData">
|
|
|
|
|
<map-right></map-right>
|
|
|
|
|
</div>
|
|
|
|
|
</transition>
|
|
|
|
|
|
|
|
|
|
<img :src="rightAnimationData ? require('@/assets/images/action-right.png') : require('@/assets/images/action-left.png')" alt="" :class="!rightAnimationData ? 'right-image2' : 'right-image'" @click="rightAnimation()">
|
|
|
|
|
|
|
|
|
|
<div class="middle-bottom-right" :class="!rightAnimationData ? 'middle-bottom-right2' : 'middle-bottom-right'">
|
|
|
|
|
<div class="btn-action">
|
|
|
|
|
<span :class="action == 1? 'action':''" @click="actionBtn(1)">电子地图</span>
|
|
|
|
|
<span :class="action == 2? 'action':''" @click="actionBtn(2)">卫星地图</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="right-bg">
|
|
|
|
|
<div class="bgt"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="bottom-bg">
|
|
|
|
|
<div class="bgt"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<personage-track ref="personageTrack"></personage-track>
|
|
|
|
|
<crew-assign ref="crewAssign"></crew-assign>
|
|
|
|
|
<video-wall ref="videoWall"></video-wall>
|
|
|
|
|
<person-popup v-if="personPopup" v-on:personClose="personClose" v-on:getRoute="presoninfo" :point="mypoint"></person-popup>
|
|
|
|
|
<event-popup v-if="eventPopup" v-on:eventClose="eventClose" v-on:zhipai="personzhipai" :point="mypoint"></event-popup>
|
|
|
|
|
<car-popup v-if="carPopup" v-on:carClose="carClose" v-on:carinfo="carinfo" :point="mypoint"></car-popup>
|
|
|
|
|
<monitoring-popup v-if="monitoringPopup" v-on:monitoringClose="monitoringClose" v-on:monitoringInfo="monitoringInfo" :point="mypoint"></monitoring-popup>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<script>
|
|
|
|
|
import L from 'leaflet'
|
|
|
|
|
//引入坐标系转换插件
|
|
|
|
|
// import 'proj4'
|
|
|
|
|
// import 'proj4leaflet'
|
|
|
|
|
//引入中国底图插件
|
|
|
|
|
// import '@/utils/lib/leaflet.ChineseTmsProviders.js'
|
|
|
|
|
//引入坐标系偏移插件
|
|
|
|
|
// import '@/utils/lib/leaflet.mapCorrection.min.js'
|
|
|
|
|
// import zhifarenyuan from "@/utils/mapJson/zhifarenyuan.json"
|
|
|
|
|
// import shijianfenbu from "@/utils/mapJson/shijianfenbu.json"
|
|
|
|
|
// import zhifacheliang from "@/utils/mapJson/zhifacheliang.json"
|
|
|
|
|
// import jiankongshipin from "@/utils/mapJson/jiankongshipin.json"
|
|
|
|
|
import point from "@/utils/mapJson/point.json"
|
|
|
|
|
|
|
|
|
|
import jiangninggeo from "@/utils/mapJson/jiangningjingkaiqugeo.json"
|
|
|
|
|
import detachment1 from "@/utils/mapJson/detachment1.json"
|
|
|
|
|
import detachment2 from "@/utils/mapJson/detachment2.json"
|
|
|
|
|
import detachment3 from "@/utils/mapJson/detachment3.json"
|
|
|
|
|
import detachment4 from "@/utils/mapJson/detachment4.json"
|
|
|
|
|
|
|
|
|
|
import zhongdianluduan from "@/utils/mapJson/zhongdianluduan.json"
|
|
|
|
|
import zhongdianquyu from "@/utils/mapJson/zhongdianquyu.json"
|
|
|
|
|
|
|
|
|
|
import mapLeft from "../components/mapLeftContent.vue"
|
|
|
|
|
import mapRight from "../components/mapRightContent.vue"
|
|
|
|
|
// import mapCentre from "../components/mapCentre.vue"
|
|
|
|
|
// 弹窗
|
|
|
|
|
import personageTrack from "../../components/personagetrack/index.vue"
|
|
|
|
|
import crewAssign from "../../components/crewAssign/index.vue"
|
|
|
|
|
import videoWall from "../../components/videoWall/index.vue"
|
|
|
|
|
import personPopup from "../../components/personPopup/index.vue"
|
|
|
|
|
import eventPopup from "../../components/eventPopup/index.vue"
|
|
|
|
|
import carPopup from "../../components/carPopup/index.vue"
|
|
|
|
|
import monitoringPopup from "../../components/monitoringPopup/index.vue"
|
|
|
|
|
export default {
|
|
|
|
|
name: 'myMap',
|
|
|
|
|
components:{mapLeft,mapRight,personageTrack,crewAssign,videoWall,personPopup,eventPopup,carPopup,monitoringPopup},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
globalMap:null,
|
|
|
|
|
basemap:null,
|
|
|
|
|
townCenter: [31.863971, 118.835418],
|
|
|
|
|
myZoom:12,
|
|
|
|
|
mapLayers:{
|
|
|
|
|
mapLayer1:null,
|
|
|
|
|
mapLayer2:null,
|
|
|
|
|
mapLayer3:null,
|
|
|
|
|
mapLayer4:null,
|
|
|
|
|
mapLayer5:null,
|
|
|
|
|
mapLayer6:null,
|
|
|
|
|
mapLayer7:null,
|
|
|
|
|
},
|
|
|
|
|
mapEvent:{
|
|
|
|
|
mapEvent1:null,
|
|
|
|
|
mapEvent2:null,
|
|
|
|
|
mapEvent3:null,
|
|
|
|
|
mapEvent4:null,
|
|
|
|
|
},
|
|
|
|
|
mapLayer1:null,
|
|
|
|
|
mapLayer2:null,
|
|
|
|
|
mapLayer3:null,
|
|
|
|
|
mapLayer4:null,
|
|
|
|
|
mapLayer5:null,
|
|
|
|
|
input:'', // 输入框的值
|
|
|
|
|
actionMap:1, // 默认选中执法人员地图
|
|
|
|
|
action:1, // 切换执法人员/车辆/事件分类/监控视频控制的值
|
|
|
|
|
personPopup:false,
|
|
|
|
|
eventPopup:false,
|
|
|
|
|
carPopup:false,
|
|
|
|
|
monitoringPopup:false,
|
|
|
|
|
mypoint:{},
|
|
|
|
|
leftAnimationData:true,
|
|
|
|
|
rightAnimationData:true,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods:{
|
|
|
|
|
initMap(){
|
|
|
|
|
this.globalMap = L.map('showMap', {
|
|
|
|
|
center: this.townCenter, // 地图中心[纬度,经度]
|
|
|
|
|
zoom: this.myZoom, // 地图层级
|
|
|
|
|
zoomControl: false,
|
|
|
|
|
attributionControl: false, // 右下角leaflet图标
|
|
|
|
|
doubleClickZoom: false, // 双击放大
|
|
|
|
|
scrollWheelZoom: true, // 滚轮放大
|
|
|
|
|
dragging: true,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// 电子底图/百度
|
|
|
|
|
this.basemap = L.tileLayer(
|
|
|
|
|
'https://api.mapbox.com/styles/v1/sharealex/cllg9dw1i00iz01oj9zmu6iv7/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1Ijoic2hhcmVhbGV4IiwiYSI6ImNsaXNhZmRjbTFhbnczZmxib3h1OW05YXYifQ.PhlKv60ar3K359d8x2yBPw',
|
|
|
|
|
{
|
|
|
|
|
maxZoom: 18,
|
|
|
|
|
minZoom: 9,
|
|
|
|
|
subdomains: ['0', '1', '2', '3', '4', '5', '6', '7']
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
this.globalMap.addLayer(this.basemap);
|
|
|
|
|
|
|
|
|
|
this.globalMap.createPane('mapLayer1')
|
|
|
|
|
this.globalMap.getPane('mapLayer1').style.zIndex = 501
|
|
|
|
|
this.globalMap.getPane('mapLayer1').style.pointerEvents = 'none'
|
|
|
|
|
|
|
|
|
|
this.globalMap.createPane('mapLayer2')
|
|
|
|
|
this.globalMap.getPane('mapLayer2').style.zIndex = 502
|
|
|
|
|
this.globalMap.getPane('mapLayer2').style.pointerEvents = 'none'
|
|
|
|
|
|
|
|
|
|
this.globalMap.createPane('mapLayer3')
|
|
|
|
|
this.globalMap.getPane('mapLayer3').style.zIndex = 502
|
|
|
|
|
this.globalMap.getPane('mapLayer3').style.pointerEvents = 'none'
|
|
|
|
|
|
|
|
|
|
this.globalMap.createPane('mapLayer4')
|
|
|
|
|
this.globalMap.getPane('mapLayer4').style.zIndex = 502
|
|
|
|
|
this.globalMap.getPane('mapLayer4').style.pointerEvents = 'none'
|
|
|
|
|
|
|
|
|
|
this.globalMap.createPane('mapLayer5')
|
|
|
|
|
this.globalMap.getPane('mapLayer5').style.zIndex = 502
|
|
|
|
|
this.globalMap.getPane('mapLayer5').style.pointerEvents = 'none'
|
|
|
|
|
|
|
|
|
|
this.globalMap.createPane('mapLayer6')
|
|
|
|
|
this.globalMap.getPane('mapLayer6').style.zIndex = 502
|
|
|
|
|
this.globalMap.getPane('mapLayer6').style.pointerEvents = 'none'
|
|
|
|
|
|
|
|
|
|
this.globalMap.createPane('mapLayer7')
|
|
|
|
|
this.globalMap.getPane('mapLayer7').style.zIndex = 502
|
|
|
|
|
this.globalMap.getPane('mapLayer7').style.pointerEvents = 'none'
|
|
|
|
|
|
|
|
|
|
this.globalMap.createPane('mapEvent1')
|
|
|
|
|
this.globalMap.getPane('mapEvent1').style.zIndex = 503
|
|
|
|
|
this.globalMap.getPane('mapEvent1').style.pointerEvents = 'none'
|
|
|
|
|
|
|
|
|
|
this.mapEvent.mapEvent1 = L.featureGroup().addTo(this.globalMap)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.mapLayers.mapLayer1 = L.featureGroup().addTo(this.globalMap)
|
|
|
|
|
this.mapLayers.mapLayer2 = L.featureGroup().addTo(this.globalMap)
|
|
|
|
|
this.mapLayers.mapLayer3 = L.featureGroup().addTo(this.globalMap)
|
|
|
|
|
this.mapLayers.mapLayer4 = L.featureGroup().addTo(this.globalMap)
|
|
|
|
|
this.mapLayers.mapLayer5 = L.featureGroup().addTo(this.globalMap)
|
|
|
|
|
this.mapLayers.mapLayer6 = L.featureGroup().addTo(this.globalMap)
|
|
|
|
|
this.mapLayers.mapLayer7 = L.featureGroup().addTo(this.globalMap)
|
|
|
|
|
|
|
|
|
|
this.globalMap.on('zoomend', e => {
|
|
|
|
|
let zoom = this.globalMap.getZoom()
|
|
|
|
|
console.log('层级:', zoom)
|
|
|
|
|
})
|
|
|
|
|
// this.addLayer2();
|
|
|
|
|
this.addLayer1();
|
|
|
|
|
this.addMark("执法人员");
|
|
|
|
|
// this.addLayer2();
|
|
|
|
|
// this.addLayer3();
|
|
|
|
|
// this.addLayer4();
|
|
|
|
|
// this.addLayer5();
|
|
|
|
|
this.addLayer6();
|
|
|
|
|
this.addLayer7();
|
|
|
|
|
},
|
|
|
|
|
addLayer1(){
|
|
|
|
|
this.mapLayers.mapLayer1.clearLayers()
|
|
|
|
|
// this.mapLayers.mapLayer2.clearLayers()
|
|
|
|
|
let geojson = L.geoJSON(jiangninggeo,{
|
|
|
|
|
pane: 'mapLayer1',
|
|
|
|
|
style: function (feature) {
|
|
|
|
|
return {
|
|
|
|
|
color: '#00C5EC',
|
|
|
|
|
weight: 1,
|
|
|
|
|
fillColor: 'rgba(64,175,255,0.4)',
|
|
|
|
|
fillOpacity: 1,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},{ className: 'jack-s' }
|
|
|
|
|
).addTo(this.mapLayers.mapLayer1)
|
|
|
|
|
// this.addMark()
|
|
|
|
|
// 获取json文件的中心位置
|
|
|
|
|
this.mapLayer1 = geojson.getBounds()
|
|
|
|
|
// 居中加载json文件
|
|
|
|
|
this.globalMap.fitBounds(this.mapLayer1)
|
|
|
|
|
},
|
|
|
|
|
addMark(name){
|
|
|
|
|
this.mapEvent.mapEvent1.clearLayers()
|
|
|
|
|
let ico1 = L.icon({
|
|
|
|
|
iconUrl: require('../../../assets/images/icon/icon1.png'),
|
|
|
|
|
iconSize: [52, 81],
|
|
|
|
|
})
|
|
|
|
|
let ico2 = L.icon({
|
|
|
|
|
iconUrl: require('../../../assets/images/icon/icon2.png'),
|
|
|
|
|
iconSize: [44, 91],
|
|
|
|
|
})
|
|
|
|
|
let ico3 = L.icon({
|
|
|
|
|
iconUrl: require('../../../assets/images/icon/icon3.png'),
|
|
|
|
|
iconSize: [44, 91],
|
|
|
|
|
})
|
|
|
|
|
let ico4 = L.icon({
|
|
|
|
|
iconUrl: require('../../../assets/images/icon/icon4.png'),
|
|
|
|
|
iconSize: [45, 95],
|
|
|
|
|
})
|
|
|
|
|
let ico5 = L.icon({
|
|
|
|
|
iconUrl: require('../../../assets/images/icon/icon5.png'),
|
|
|
|
|
iconSize: [52, 81],
|
|
|
|
|
})
|
|
|
|
|
point.features.map((item,index)=>{
|
|
|
|
|
if(this.actionMap == 1) {
|
|
|
|
|
if(item.properties.name == "执法人员"){
|
|
|
|
|
let marker = L.marker({lng:item.geometry.coordinates[0],lat:item.geometry.coordinates[1]},{icon:ico1}).bindPopup(
|
|
|
|
|
`
|
|
|
|
|
<div class="person-popup">
|
|
|
|
|
<div class="person-title">
|
|
|
|
|
<div class="title">人员信息</div>
|
|
|
|
|
<div class="mask" id='monitoring${index}'></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="person-main">
|
|
|
|
|
<div class="person-info">
|
|
|
|
|
<div class="dot"></div>
|
|
|
|
|
<div class="name">李飞</div>
|
|
|
|
|
<div class="position">执法1队队员</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="btns">
|
|
|
|
|
<div id='personClick${index}'>行程轨迹</div>
|
|
|
|
|
<div>附近队员</div>
|
|
|
|
|
<div>位置分享</div>
|
|
|
|
|
<div>任务派发</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
`,
|
|
|
|
|
{
|
|
|
|
|
className: 'popup-pc-person'
|
|
|
|
|
}
|
|
|
|
|
).openPopup();
|
|
|
|
|
marker.addTo(this.mapEvent.mapEvent1)
|
|
|
|
|
this.markerClick(marker,index)
|
|
|
|
|
}
|
|
|
|
|
} else if(this.actionMap == 2) {
|
|
|
|
|
let marker
|
|
|
|
|
if(item.properties.name == "普通事件") {
|
|
|
|
|
marker = L.marker({lng:item.geometry.coordinates[0],lat:item.geometry.coordinates[1]},{icon:ico2})
|
|
|
|
|
.bindPopup(
|
|
|
|
|
`
|
|
|
|
|
<div class="event-popup">
|
|
|
|
|
<div class="event-title">
|
|
|
|
|
<div class="title">事件信息</div>
|
|
|
|
|
<div class="mask" id='monitoring${index}'></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="event-main">
|
|
|
|
|
<div class="event-info">
|
|
|
|
|
<div class="dot"></div>
|
|
|
|
|
<div class="name">事件名称:</div>
|
|
|
|
|
<div class="position">XXX小区乱堆杂物</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="event-info">
|
|
|
|
|
<div class="dot"></div>
|
|
|
|
|
<div class="name">事件类别:</div>
|
|
|
|
|
<div class="position">暴露垃圾</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="event-info">
|
|
|
|
|
<div class="dot"></div>
|
|
|
|
|
<div class="name">事件地址:</div>
|
|
|
|
|
<div class="position">XX街道XX小区</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="event-info">
|
|
|
|
|
<div class="dot"></div>
|
|
|
|
|
<div class="name">描述:</div>
|
|
|
|
|
<div class="position">XXXXXXXXXXXXXX</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="btn" id="zhipai${index}">
|
|
|
|
|
指派
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
`,
|
|
|
|
|
{
|
|
|
|
|
className: 'popup-pc-common'
|
|
|
|
|
}
|
|
|
|
|
).openPopup();
|
|
|
|
|
marker.addTo(this.mapEvent.mapEvent1)
|
|
|
|
|
this.markerClick(marker,index)
|
|
|
|
|
} else if(item.properties.name == "重点事件"){
|
|
|
|
|
marker = L.marker({lng:item.geometry.coordinates[0],lat:item.geometry.coordinates[1]},{icon:ico3}).bindPopup(
|
|
|
|
|
`
|
|
|
|
|
<div class="event-popup">
|
|
|
|
|
<div class="event-title">
|
|
|
|
|
<div class="title">事件信息</div>
|
|
|
|
|
<div class="mask" id='monitoring${index}'></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="event-main">
|
|
|
|
|
<div class="event-info">
|
|
|
|
|
<div class="dot"></div>
|
|
|
|
|
<div class="name">事件名称:</div>
|
|
|
|
|
<div class="position">XXX小区乱堆杂物</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="event-info">
|
|
|
|
|
<div class="dot"></div>
|
|
|
|
|
<div class="name">事件类别:</div>
|
|
|
|
|
<div class="position">暴露垃圾</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="event-info">
|
|
|
|
|
<div class="dot"></div>
|
|
|
|
|
<div class="name">事件地址:</div>
|
|
|
|
|
<div class="position">XX街道XX小区</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="event-info">
|
|
|
|
|
<div class="dot"></div>
|
|
|
|
|
<div class="name">描述:</div>
|
|
|
|
|
<div class="position">XXXXXXXXXXXXXX</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="btn" id="zhipai${index}">
|
|
|
|
|
指派
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
`,
|
|
|
|
|
{
|
|
|
|
|
className: 'popup-pc-emphasis'
|
|
|
|
|
}
|
|
|
|
|
).openPopup();
|
|
|
|
|
marker.addTo(this.mapEvent.mapEvent1)
|
|
|
|
|
this.markerClick(marker,index)
|
|
|
|
|
}
|
|
|
|
|
} else if(this.actionMap == 3) {
|
|
|
|
|
if(item.properties.name == "执法车辆"){
|
|
|
|
|
let marker = L.marker({lng:item.geometry.coordinates[0],lat:item.geometry.coordinates[1]},{icon:ico4}).bindPopup(
|
|
|
|
|
`
|
|
|
|
|
<div class="car-popup">
|
|
|
|
|
<div class="car-title">
|
|
|
|
|
<div class="title">车辆信息</div>
|
|
|
|
|
<div class="mask" id='monitoring${index}'></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="car-main">
|
|
|
|
|
<div class="car-info">
|
|
|
|
|
<div class="dot"></div>
|
|
|
|
|
<div class="name">执法一队1号车</div>
|
|
|
|
|
<div class="position">苏A568974</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="btn" id="carinfo${index}">行程轨迹</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
`,
|
|
|
|
|
{
|
|
|
|
|
className: 'popup-pc-car'
|
|
|
|
|
}
|
|
|
|
|
).openPopup();
|
|
|
|
|
marker.addTo(this.mapEvent.mapEvent1)
|
|
|
|
|
this.markerClick(marker,index)
|
|
|
|
|
}
|
|
|
|
|
} else if(this.actionMap == 4) {
|
|
|
|
|
if(item.properties.name == "监控视频"){
|
|
|
|
|
let marker = L.marker({lng:item.geometry.coordinates[0],lat:item.geometry.coordinates[1]},{icon:ico5}).bindPopup(
|
|
|
|
|
`
|
|
|
|
|
<div class="monitoring-popup">
|
|
|
|
|
<div class="monitoring-title">
|
|
|
|
|
<div class="title">监控视频</div>
|
|
|
|
|
<div class="mask" id='monitoring${index}'></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="monitoring">
|
|
|
|
|
<div class="bg">
|
|
|
|
|
<img src="@/assets/images/popup/screenshot20230817.png" alt="">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="btns">
|
|
|
|
|
<div class="btn" id="monitoringInfo${index}">上墙</div>
|
|
|
|
|
<div class="btn">转发</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
`,
|
|
|
|
|
{
|
|
|
|
|
className: 'popup-pc-monitoring'
|
|
|
|
|
}
|
|
|
|
|
).openPopup();
|
|
|
|
|
marker.addTo(this.mapEvent.mapEvent1)
|
|
|
|
|
this.markerClick(marker,index)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
markerClick(marker,index){
|
|
|
|
|
|
|
|
|
|
// document.getElementsByName('monitoring').addEventListener("click",function(){//通过个体ElementsById()方法获得的element对象中的addEventListener()方法用于添加事件监听器,第一个参数设置事件类型,第二个参数可用来设置具体事件
|
|
|
|
|
// console.log("点击");
|
|
|
|
|
// })
|
|
|
|
|
console.log(marker)
|
|
|
|
|
marker.on('click', e => {
|
|
|
|
|
console.log(e);
|
|
|
|
|
this.$nextTick(()=>{
|
|
|
|
|
document.querySelector('#monitoring' + index).addEventListener("click",function(){//通过个体ElementsById()方法获得的element对象中的addEventListener()方法用于添加事件监听器,第一个参数设置事件类型,第二个参数可用来设置具体事件
|
|
|
|
|
marker.closePopup();
|
|
|
|
|
})
|
|
|
|
|
if(this.actionMap == 1) {
|
|
|
|
|
document.querySelector('#personClick' + index).addEventListener("click",()=>{
|
|
|
|
|
this.$refs.personageTrack.open('person');
|
|
|
|
|
})
|
|
|
|
|
} else if(this.actionMap == 2) {
|
|
|
|
|
document.querySelector('#zhipai' + index).addEventListener("click",()=>{
|
|
|
|
|
this.$refs.crewAssign.open();
|
|
|
|
|
})
|
|
|
|
|
// document.querySelector('#zhipai2' + index).addEventListener("click",()=>{
|
|
|
|
|
// this.$refs.crewAssign.open();
|
|
|
|
|
// })
|
|
|
|
|
} else if(this.actionMap == 3) {
|
|
|
|
|
document.querySelector('#carinfo' + index).addEventListener("click",()=>{
|
|
|
|
|
this.$refs.personageTrack.open('car');
|
|
|
|
|
})
|
|
|
|
|
} else if(this.actionMap == 4){
|
|
|
|
|
document.querySelector('#monitoringInfo' + index).addEventListener("click",()=>{
|
|
|
|
|
this.$refs.videoWall.open();
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
// this.mypoint = e.containerPoint;
|
|
|
|
|
// if(this.actionMap == 1) {
|
|
|
|
|
// // this.personPopup = true;
|
|
|
|
|
|
|
|
|
|
// } else if(this.actionMap == 2) {
|
|
|
|
|
// // this.eventPopup = true;
|
|
|
|
|
// } else if(this.actionMap == 3) {
|
|
|
|
|
// // this.carPopup = true
|
|
|
|
|
// } else if(this.actionMap == 4){
|
|
|
|
|
// // this.monitoringPopup = true;
|
|
|
|
|
// }
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
personClose(){
|
|
|
|
|
this.personPopup = false;
|
|
|
|
|
},
|
|
|
|
|
eventClose(){
|
|
|
|
|
this.eventPopup = false;
|
|
|
|
|
},
|
|
|
|
|
carClose(){
|
|
|
|
|
this.carPopup = false;
|
|
|
|
|
},
|
|
|
|
|
monitoringClose(){
|
|
|
|
|
this.monitoringPopup = false;
|
|
|
|
|
},
|
|
|
|
|
// personzhipai(){
|
|
|
|
|
// this.$refs.crewAssign.open();
|
|
|
|
|
// },
|
|
|
|
|
// presoninfo(){
|
|
|
|
|
// this.$refs.personageTrack.open('person');
|
|
|
|
|
// },
|
|
|
|
|
// carinfo(){
|
|
|
|
|
// this.$refs.personageTrack.open('car');
|
|
|
|
|
// },
|
|
|
|
|
// monitoringInfo(){
|
|
|
|
|
// this.$refs.videoWall.open();
|
|
|
|
|
// },
|
|
|
|
|
addLayer2(){
|
|
|
|
|
this.mapLayers.mapLayer2.clearLayers()
|
|
|
|
|
let geojson = L.geoJSON(detachment1,{
|
|
|
|
|
pane: 'mapLayer2',
|
|
|
|
|
style: function (feature) {
|
|
|
|
|
return {
|
|
|
|
|
color: '#00C5EC',
|
|
|
|
|
weight: 1,
|
|
|
|
|
fillColor: 'rgba(255,0,0,0.38)',
|
|
|
|
|
fillOpacity: 1,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onEachFeature: (feature, layer) => {
|
|
|
|
|
console.log(feature.properties.name)
|
|
|
|
|
let polygon = L.polygon(layer._latlngs, {
|
|
|
|
|
text: feature.properties.name,
|
|
|
|
|
textStyle: {
|
|
|
|
|
strokeStyle: '#ffffff',//描边颜色
|
|
|
|
|
fillStyle: '#00000',//文字颜色
|
|
|
|
|
// eslint-disable-next-line quotes
|
|
|
|
|
font: "18px 'PuHuiTi-Medium'",
|
|
|
|
|
lineWidth: 1,//描边粗细
|
|
|
|
|
offsetX: -36,//-字号*4个字/2
|
|
|
|
|
offsetY: 9,//字号/2
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
polygon.addTo(this.mapLayers.mapLayer2)
|
|
|
|
|
}
|
|
|
|
|
},{ className: 'jack-s2' }
|
|
|
|
|
).addTo(this.mapLayers.mapLayer2)
|
|
|
|
|
this.mapLayer2 = geojson.getBounds()
|
|
|
|
|
},
|
|
|
|
|
addLayer3(){
|
|
|
|
|
this.mapLayers.mapLayer3.clearLayers()
|
|
|
|
|
let geojson = L.geoJSON(detachment2,{
|
|
|
|
|
pane: 'mapLayer3',
|
|
|
|
|
style: function (feature) {
|
|
|
|
|
return {
|
|
|
|
|
color: '#00C5EC',
|
|
|
|
|
weight: 1,
|
|
|
|
|
fillColor: 'rgba(255,0,0,0.38)',
|
|
|
|
|
fillOpacity: 1,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},{ className: 'jack-s3' }
|
|
|
|
|
).addTo(this.mapLayers.mapLayer3)
|
|
|
|
|
this.mapLayer3 = geojson.getBounds()
|
|
|
|
|
},
|
|
|
|
|
addLayer4(){
|
|
|
|
|
this.mapLayers.mapLayer4.clearLayers()
|
|
|
|
|
let geojson = L.geoJSON(detachment3,{
|
|
|
|
|
pane: 'mapLayer4',
|
|
|
|
|
style: function (feature) {
|
|
|
|
|
return {
|
|
|
|
|
color: '#00C5EC',
|
|
|
|
|
weight: 1,
|
|
|
|
|
fillColor: 'rgba(255,0,0,0.38)',
|
|
|
|
|
fillOpacity: 1,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},{ className: 'jack-s4' }
|
|
|
|
|
).addTo(this.mapLayers.mapLayer4)
|
|
|
|
|
// 获取json文件的中心位置
|
|
|
|
|
this.mapLayer4 = geojson.getBounds()
|
|
|
|
|
},
|
|
|
|
|
addLayer5(){
|
|
|
|
|
this.mapLayers.mapLayer5.clearLayers()
|
|
|
|
|
let geojson = L.geoJSON(detachment4,{
|
|
|
|
|
pane: 'mapLayer5',
|
|
|
|
|
style: function (feature) {
|
|
|
|
|
return {
|
|
|
|
|
color: 'rgba(255,0,0,0.38)',
|
|
|
|
|
weight: 1,
|
|
|
|
|
fillColor: 'rgba(255,0,0,0.38)',
|
|
|
|
|
fillOpacity: 1,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},{ className: 'jack-s5' }
|
|
|
|
|
).addTo(this.mapLayers.mapLayer5)
|
|
|
|
|
// 获取json文件的中心位置
|
|
|
|
|
this.mapLayer5 = geojson.getBounds()
|
|
|
|
|
},
|
|
|
|
|
addLayer6(){
|
|
|
|
|
this.mapLayers.mapLayer5.clearLayers()
|
|
|
|
|
let geojson = L.geoJSON(zhongdianquyu,{
|
|
|
|
|
pane: 'mapLayer6',
|
|
|
|
|
style: function (feature) {
|
|
|
|
|
return {
|
|
|
|
|
color: 'rgba(255,0,0,0.38)',
|
|
|
|
|
weight: 1,
|
|
|
|
|
fillColor: 'rgba(255,0,0,0.38)',
|
|
|
|
|
fillOpacity: 1,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
},{ className: 'jack-s6' }
|
|
|
|
|
).addTo(this.mapLayers.mapLayer6)
|
|
|
|
|
// 获取json文件的中心位置
|
|
|
|
|
let bounds = geojson.getBounds()
|
|
|
|
|
let latlng = bounds.getCenter()
|
|
|
|
|
|
|
|
|
|
let myIcon1 = L.divIcon({
|
|
|
|
|
className: 'region-name1',
|
|
|
|
|
html: '重点区域',
|
|
|
|
|
iconSize: [120, 68],
|
|
|
|
|
})
|
|
|
|
|
L.marker(latlng, {
|
|
|
|
|
pane: 'mapLayer4',
|
|
|
|
|
icon: myIcon1,
|
|
|
|
|
}).addTo(this.mapLayers.mapLayer6)
|
|
|
|
|
// this.mapLayer5 = geojson.getBounds()
|
|
|
|
|
},
|
|
|
|
|
addLayer7(){
|
|
|
|
|
this.mapLayers.mapLayer7.clearLayers()
|
|
|
|
|
let geojson = L.geoJSON(zhongdianluduan,{
|
|
|
|
|
pane: 'mapLayer7',
|
|
|
|
|
style: function (feature) {
|
|
|
|
|
return {
|
|
|
|
|
color: '#00C5EC',
|
|
|
|
|
weight: 0,
|
|
|
|
|
fillColor: 'rgba(70,255,119,0.38)',
|
|
|
|
|
fillOpacity: 1,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},{ className: 'jack-s7' }
|
|
|
|
|
).addTo(this.mapLayers.mapLayer7)
|
|
|
|
|
// 获取json文件的中心位置
|
|
|
|
|
// this.mapLayer5 = geojson.getBounds()
|
|
|
|
|
let bounds = geojson.getBounds()
|
|
|
|
|
let latlng = bounds.getCenter()
|
|
|
|
|
|
|
|
|
|
let myIcon1 = L.divIcon({
|
|
|
|
|
className: 'region-name2',
|
|
|
|
|
html: '重点路段',
|
|
|
|
|
iconSize: [120, 68],
|
|
|
|
|
})
|
|
|
|
|
L.marker(latlng, {
|
|
|
|
|
pane: 'mapLayer4',
|
|
|
|
|
icon: myIcon1,
|
|
|
|
|
}).addTo(this.mapLayers.mapLayer7)
|
|
|
|
|
},
|
|
|
|
|
actionBtn(id){
|
|
|
|
|
this.action = id;
|
|
|
|
|
// console.log(id)
|
|
|
|
|
// this.$emit('actionBtn',id);
|
|
|
|
|
// if(id == 1){
|
|
|
|
|
// this.$refs.personageTrack.open();
|
|
|
|
|
// } else {
|
|
|
|
|
// this.$refs.crewAssign.open();
|
|
|
|
|
// }
|
|
|
|
|
},
|
|
|
|
|
// 输入框的搜索框点击事件
|
|
|
|
|
search(){
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
// 创建任务的点击事件
|
|
|
|
|
createdTask(){
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
// 地图扎点的点击事件
|
|
|
|
|
positioning(){
|
|
|
|
|
// this.$refs.videoWall.open();
|
|
|
|
|
},
|
|
|
|
|
// 切换地图事件
|
|
|
|
|
changeMap(id){
|
|
|
|
|
this.actionMap = id;
|
|
|
|
|
this.personPopup = false;
|
|
|
|
|
this.eventPopup = false;
|
|
|
|
|
this.carPopup = false;
|
|
|
|
|
this.monitoringPopup = false;
|
|
|
|
|
this.addMark()
|
|
|
|
|
switch(id){
|
|
|
|
|
case 1:
|
|
|
|
|
this.addMark("执法人员")
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
this.addMark("普通事件")
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
this.addMark("执法车辆")
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
this.addMark("监控视频")
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
leftAnimation(){
|
|
|
|
|
setTimeout(()=>{
|
|
|
|
|
this.leftAnimationData = !this.leftAnimationData;
|
|
|
|
|
},800)
|
|
|
|
|
this.$emit('leftAnimationAction')
|
|
|
|
|
},
|
|
|
|
|
rightAnimation(){
|
|
|
|
|
setTimeout(()=>{
|
|
|
|
|
this.rightAnimationData = !this.rightAnimationData;
|
|
|
|
|
},1000)
|
|
|
|
|
this.$emit('rightAnimationAction')
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
mounted(){
|
|
|
|
|
this.$nextTick(()=>{
|
|
|
|
|
this.initMap()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
|
|
|
|
.map-main {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
position: relative;
|
|
|
|
|
.left-animationMap-enter-active, .left-animationMap-leave-active {
|
|
|
|
|
transition: all 1s;
|
|
|
|
|
}
|
|
|
|
|
.left-animationMap-enter, .left-animationMap-leave-to {
|
|
|
|
|
/* 进入的初始状态和离开的最终状态 */
|
|
|
|
|
opacity: 0;
|
|
|
|
|
transform: translateX(-510px);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right-animationMap-enter-active, .right-animationMap-leave-active {
|
|
|
|
|
transition: all 1s;
|
|
|
|
|
}
|
|
|
|
|
.right-animationMap-enter, .right-animationMap-leave-to {
|
|
|
|
|
/* 进入的初始状态和离开的最终状态 */
|
|
|
|
|
opacity: 0;
|
|
|
|
|
transform: translateX(510px);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.left-bg {
|
|
|
|
|
position: absolute;
|
|
|
|
|
left: 20px;
|
|
|
|
|
top: 0;
|
|
|
|
|
width: 11px;
|
|
|
|
|
height: 95%;
|
|
|
|
|
padding: 20px 0 0 0;
|
|
|
|
|
z-index: 600;
|
|
|
|
|
.bgt {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
background-image: url('../../../assets/images/broadside-bg.png');
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.right-bg {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 0;
|
|
|
|
|
right: 20px;
|
|
|
|
|
width: 11px;
|
|
|
|
|
height: 95%;
|
|
|
|
|
padding: 20px 0;
|
|
|
|
|
z-index: 600;
|
|
|
|
|
.bgt {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
background-image: url('../../../assets/images/broadside2-bg.png');
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.bottom-bg {
|
|
|
|
|
position: absolute;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
right: 0;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 20px;
|
|
|
|
|
z-index: 600;
|
|
|
|
|
.bgt {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
background-image: url('../../../assets/images/bottom-bg.png');
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.map-left {
|
|
|
|
|
position: absolute;
|
|
|
|
|
left: 47px;
|
|
|
|
|
top: 10px;
|
|
|
|
|
width: 460px;
|
|
|
|
|
height: 95%;
|
|
|
|
|
z-index: 600;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
// background: rgba(216,216,216,0.05);
|
|
|
|
|
}
|
|
|
|
|
.left-image {
|
|
|
|
|
z-index: 600;
|
|
|
|
|
position: absolute;
|
|
|
|
|
left: 527px;
|
|
|
|
|
bottom: 50%;
|
|
|
|
|
width: 40px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
.left-image2 {
|
|
|
|
|
z-index: 600;
|
|
|
|
|
position: absolute;
|
|
|
|
|
left: 67px;
|
|
|
|
|
bottom: 50%;
|
|
|
|
|
width: 40px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
.right-image {
|
|
|
|
|
z-index: 600;
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 527px;
|
|
|
|
|
bottom: 50%;
|
|
|
|
|
width: 40px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
.right-image2 {
|
|
|
|
|
z-index: 600;
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 67px;
|
|
|
|
|
bottom: 50%;
|
|
|
|
|
width: 40px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
.map-right {
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 47px;
|
|
|
|
|
top: 10px;
|
|
|
|
|
width: 460px;
|
|
|
|
|
height: 95%;
|
|
|
|
|
z-index: 600;
|
|
|
|
|
// margin: 10px 17px 0 10px;
|
|
|
|
|
// padding: 20px 0;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
}
|
|
|
|
|
.middle-top-left {
|
|
|
|
|
z-index: 600;
|
|
|
|
|
position: absolute;
|
|
|
|
|
left: 537px;
|
|
|
|
|
top: 10px;
|
|
|
|
|
display: flex;
|
|
|
|
|
.input-keyword {
|
|
|
|
|
::v-deep .el-input {
|
|
|
|
|
background-image: url('../../../assets/images/bgtongyong.png');
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
.el-input__inner {
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
width: 222px;
|
|
|
|
|
height: 38px;
|
|
|
|
|
color: #fff;
|
|
|
|
|
border: none;
|
|
|
|
|
}
|
|
|
|
|
.el-input__inner::placeholder {
|
|
|
|
|
/* 在这里添加你想要修改的 placeholder 样式 */
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
font-family: Source Han Sans CN-Regular;
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
color: #D3EEF2;
|
|
|
|
|
line-height: 20px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-input__suffix {
|
|
|
|
|
line-height: 44px;
|
|
|
|
|
color: #D3EEF2;
|
|
|
|
|
right: 10px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
.el-icon-search:before {
|
|
|
|
|
font-size: 24px;
|
|
|
|
|
color: #D3EEF2;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.laser-positioning,.creation-task {
|
|
|
|
|
// height: 38px;
|
|
|
|
|
width: 130px;
|
|
|
|
|
margin-left: 8px;
|
|
|
|
|
background-image: url('../../../assets/images/bgtongyong.png');
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
padding: 9px 13px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
span {
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
font-family: Source Han Sans CN-Regular;
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
color: #D3EEF2;
|
|
|
|
|
line-height: 20px;
|
|
|
|
|
margin-right: 12px;
|
|
|
|
|
}
|
|
|
|
|
img {
|
|
|
|
|
width: 20px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.middle-top-left2 {
|
|
|
|
|
left: 67px;
|
|
|
|
|
}
|
|
|
|
|
.middle-bottom-left {
|
|
|
|
|
// 490
|
|
|
|
|
position: absolute;
|
|
|
|
|
left: 537px;
|
|
|
|
|
bottom: 40px;
|
|
|
|
|
// width: 200px;
|
|
|
|
|
z-index: 600;
|
|
|
|
|
padding: 5px 10px;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
.list{
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
.leftbg {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
background-image: url('../../../assets/images/iconbg2.png');
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
width: 36px;
|
|
|
|
|
height: 36px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
img {
|
|
|
|
|
width: 20px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.action-map {
|
|
|
|
|
background-image: url('../../../assets/images/iconbg1.png');
|
|
|
|
|
}
|
|
|
|
|
.rightbg {
|
|
|
|
|
padding-left: 6px;
|
|
|
|
|
margin-left: 2px;
|
|
|
|
|
background-image: url('../../../assets/images/right-icon.png');
|
|
|
|
|
width: 115px;
|
|
|
|
|
height: 36px;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
span {
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
font-family: Source Han Sans CN-Bold;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
line-height: 26px;
|
|
|
|
|
text-shadow: 0px 0px 5px #0077FF;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.middle-bottom-left2 {
|
|
|
|
|
left: 67px;
|
|
|
|
|
}
|
|
|
|
|
.middle-bottom-right {
|
|
|
|
|
position: absolute;
|
|
|
|
|
bottom: 40px;
|
|
|
|
|
right: 537px;
|
|
|
|
|
z-index: 600;
|
|
|
|
|
.btn-action {
|
|
|
|
|
display: flex;
|
|
|
|
|
span {
|
|
|
|
|
width: 142px;
|
|
|
|
|
height: 40px;
|
|
|
|
|
flex: 1;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
text-align: center;
|
|
|
|
|
background-image: url('../../../assets/images/changeBtn2.png');
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
padding: 10px 33px;
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
font-family: Source Han Sans CN-Regular;
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
line-height: 20px;
|
|
|
|
|
color: #D3EEF2;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
// background: transparent;
|
|
|
|
|
// box-shadow: inset 0px 0px 6px 0px #00C2FF;
|
|
|
|
|
// border-radius: 2px 2px 2px 2px;
|
|
|
|
|
// opacity: 1;
|
|
|
|
|
// border: 1px solid rgba(181,207,255,0.5);
|
|
|
|
|
&:nth-child(1) {
|
|
|
|
|
margin-right: 10px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.action {
|
|
|
|
|
color: #fff;
|
|
|
|
|
background-image: url('../../../assets/images/changeBtn1.png.png');
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.middle-bottom-right2 {
|
|
|
|
|
right: 67px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.showMap {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
background-color: #00192e;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</style>
|