You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
JiangningUrbanManagePc/src/views/bigScreen/map/index.vue

969 lines
31 KiB

2 years ago
<template>
<div class="map-main">
<div id="showMap" class="showMap"></div>
<div class="left-bg">
<div class="bgt"></div>
</div>
2 years ago
<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'">
2 years ago
<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">
2 years ago
<span>地图扎点</span>
<img src="@/assets/images/positioning.png" alt="">
</div>
<div class="creation-task">
2 years ago
<span>任务创建</span>
<img src="@/assets/images/createdTask.png" alt="">
</div>
</div>
2 years ago
<div class="middle-bottom-left" :class="!leftAnimationData ? 'middle-bottom-left2' : 'middle-bottom-left'">
2 years ago
<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>
2 years ago
<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'">
2 years ago
<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>
2 years ago
</div>
</template>
<script>
import L from 'leaflet'
//引入坐标系转换插件
2 years ago
// import 'proj4'
// import 'proj4leaflet'
2 years ago
//引入中国底图插件
2 years ago
// import '@/utils/lib/leaflet.ChineseTmsProviders.js'
2 years ago
//引入坐标系偏移插件
2 years ago
// import '@/utils/lib/leaflet.mapCorrection.min.js'
2 years ago
// 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 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,
},
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:{},
2 years ago
leftAnimationData:true,
rightAnimationData:true,
2 years ago
}
},
methods:{
initMap(){
this.globalMap = L.map('showMap', {
center: this.townCenter, // 地图中心[纬度,经度]
zoom: this.myZoom, // 地图层级
zoomControl: false,
attributionControl: false, // 右下角leaflet图标
doubleClickZoom: false, // 双击放大
scrollWheelZoom: true, // 滚轮放大
dragging: true,
})
// 电子底图/百度
2 years ago
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']
}
)
2 years ago
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('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.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();
},
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],
2 years ago
})
let ico3 = L.icon({
iconUrl: require('../../../assets/images/icon/icon3.png'),
iconSize: [44, 91],
2 years ago
})
let ico4 = L.icon({
iconUrl: require('../../../assets/images/icon/icon4.png'),
iconSize: [45, 95],
2 years ago
})
let ico5 = L.icon({
iconUrl: require('../../../assets/images/icon/icon5.png'),
iconSize: [52, 81],
})
point.features.map((item,index)=>{
2 years ago
if(this.actionMap == 1) {
if(item.properties.name == "执法人员"){
2 years ago
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>
2 years ago
</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>
2 years ago
<div>附近队员</div>
<div>位置分享</div>
<div>任务派发</div>
</div>
</div>
</div>
`,
{
className: 'popup-pc-person'
}
).openPopup();
2 years ago
marker.addTo(this.mapEvent.mapEvent1)
this.markerClick(marker,index)
2 years ago
}
} 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})
2 years ago
.bindPopup(
`
<div class="event-popup">
<div class="event-title">
<div class="title">事件信息</div>
<div class="mask" id='monitoring${index}'></div>
2 years ago
</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}">
2 years ago
指派
</div>
</div>
</div>
`,
{
className: 'popup-pc-common'
}
).openPopup();
2 years ago
marker.addTo(this.mapEvent.mapEvent1)
this.markerClick(marker,index)
2 years ago
} else if(item.properties.name == "重点事件"){
2 years ago
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>
2 years ago
</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}">
2 years ago
指派
</div>
</div>
</div>
`,
{
className: 'popup-pc-emphasis'
}
).openPopup();
2 years ago
marker.addTo(this.mapEvent.mapEvent1)
this.markerClick(marker,index)
2 years ago
}
} else if(this.actionMap == 3) {
if(item.properties.name == "执法车辆"){
2 years ago
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>
2 years ago
</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>
2 years ago
</div>
</div>
`,
{
className: 'popup-pc-car'
}
).openPopup();
2 years ago
marker.addTo(this.mapEvent.mapEvent1)
this.markerClick(marker,index)
2 years ago
}
} else if(this.actionMap == 4) {
if(item.properties.name == "监控视频"){
2 years ago
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>
2 years ago
</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>
2 years ago
<div class="btn">转发</div>
</div>
</div>
</div>
`,
{
className: 'popup-pc-monitoring'
}
).openPopup();
2 years ago
marker.addTo(this.mapEvent.mapEvent1)
this.markerClick(marker,index)
2 years ago
}
}
})
},
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;
2 years ago
// } else if(this.actionMap == 2) {
// // this.eventPopup = true;
// } else if(this.actionMap == 3) {
// // this.carPopup = true
// } else if(this.actionMap == 4){
// // this.monitoringPopup = true;
// }
})
2 years ago
},
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();
// },
2 years ago
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: '#00C5EC',
weight: 1,
fillColor: 'rgba(255,0,0,0.38)',
fillOpacity: 1,
}
},
},{ className: 'jack-s5' }
).addTo(this.mapLayers.mapLayer5)
// 获取json文件的中心位置
this.mapLayer5 = geojson.getBounds()
},
actionBtn(id){
this.action = id;
// console.log(id)
// this.$emit('actionBtn',id);
// if(id == 1){
// this.$refs.personageTrack.open();
// } else {
// this.$refs.crewAssign.open();
// }
2 years ago
},
// 输入框的搜索框点击事件
search(){
},
// 创建任务的点击事件
createdTask(){
},
// 地图扎点的点击事件
positioning(){
// this.$refs.videoWall.open();
2 years ago
},
// 切换地图事件
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;
}
},
2 years ago
leftAnimation(){
setTimeout(()=>{
this.leftAnimationData = !this.leftAnimationData;
},800)
2 years ago
this.$emit('leftAnimationAction')
},
rightAnimation(){
setTimeout(()=>{
this.rightAnimationData = !this.rightAnimationData;
},1000)
this.$emit('rightAnimationAction')
},
2 years ago
},
mounted(){
this.$nextTick(()=>{
this.initMap()
})
}
}
</script>
<style lang="scss" scoped>
.map-main {
width: 100%;
height: 100%;
position: relative;
2 years ago
.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);
}
2 years ago
.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%;
2 years ago
background-image: url('../../../assets/images/broadside2-bg.png');
2 years ago
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;
2 years ago
// background: rgba(216,216,216,0.05);
2 years ago
}
.left-image {
z-index: 600;
position: absolute;
left: 527px;
bottom: 50%;
width: 40px;
cursor: pointer;
}
2 years ago
.left-image2 {
z-index: 600;
position: absolute;
left: 67px;
bottom: 50%;
width: 40px;
cursor: pointer;
}
2 years ago
.right-image {
z-index: 600;
position: absolute;
right: 527px;
bottom: 50%;
width: 40px;
cursor: pointer;
}
2 years ago
.right-image2 {
z-index: 600;
position: absolute;
right: 67px;
bottom: 50%;
width: 40px;
cursor: pointer;
}
2 years ago
.map-right {
position: absolute;
right: 47px;
top: 10px;
width: 460px;
2 years ago
height: 95%;
2 years ago
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 {
2 years ago
background-image: url('../../../assets/images/bgtongyong.png');
background-size: 100% 100%;
2 years ago
.el-input__inner {
background-color: transparent;
width: 222px;
height: 38px;
color: #fff;
border: none;
}
.el-input__inner::placeholder {
/* 在这里添加你想要修改的 placeholder 样式 */
font-size: 14px;
2 years ago
font-family: Source Han Sans CN-Regular;
2 years ago
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;
2 years ago
width: 130px;
2 years ago
margin-left: 8px;
2 years ago
background-image: url('../../../assets/images/bgtongyong.png');
background-size: 100% 100%;
2 years ago
display: flex;
align-items: center;
justify-content: center;
padding: 9px 13px;
cursor: pointer;
span {
font-size: 14px;
2 years ago
font-family: Source Han Sans CN-Regular;
2 years ago
font-weight: 400;
color: #D3EEF2;
line-height: 20px;
margin-right: 12px;
}
img {
width: 20px;
}
}
}
2 years ago
.middle-top-left2 {
left: 67px;
}
2 years ago
.middle-bottom-left {
2 years ago
// 490
2 years ago
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;
2 years ago
font-family: Source Han Sans CN-Bold;
2 years ago
font-weight: 700;
color: #FFFFFF;
line-height: 26px;
text-shadow: 0px 0px 5px #0077FF;
}
}
}
}
2 years ago
.middle-bottom-left2 {
left: 67px;
}
2 years ago
.middle-bottom-right {
position: absolute;
bottom: 40px;
right: 537px;
z-index: 600;
.btn-action {
display: flex;
span {
2 years ago
width: 142px;
height: 40px;
2 years ago
flex: 1;
display: inline-block;
text-align: center;
2 years ago
background-image: url('../../../assets/images/changeBtn2.png');
background-size: 100% 100%;
2 years ago
padding: 10px 33px;
font-size: 16px;
2 years ago
font-family: Source Han Sans CN-Regular;
2 years ago
font-weight: 400;
2 years ago
line-height: 20px;
2 years ago
color: #D3EEF2;
cursor: pointer;
2 years ago
// 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);
2 years ago
&:nth-child(1) {
margin-right: 10px;
}
}
.action {
color: #fff;
2 years ago
background-image: url('../../../assets/images/changeBtn1.png.png');
background-size: 100% 100%;
2 years ago
}
}
}
2 years ago
.middle-bottom-right2 {
right: 67px;
}
2 years ago
.showMap {
width: 100%;
height: 100%;
2 years ago
background-color: #00192e;
2 years ago
}
}
</style>