feat:融合通信管理平台 bug
BIN
god-ui/src/views/monitoringwarning/lookVideo/assets/jk.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
god-ui/src/views/monitoringwarning/lookVideo/assets/warn.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
188
god-ui/src/views/monitoringwarning/lookVideo/index.vue
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
<template>
|
||||||
|
<div class="box">
|
||||||
|
<div id="middleMap"></div>
|
||||||
|
<div class="sl">
|
||||||
|
<div class="left">
|
||||||
|
<div class="sxt"></div>
|
||||||
|
<div>监控</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import AMapLoader from "@amap/amap-jsapi-loader";
|
||||||
|
window._AMapSecurityConfig = {
|
||||||
|
securityJsCode: "b6314ade5a42c3f3ac2284b6d4d89b1f",
|
||||||
|
};
|
||||||
|
import sp2 from './assets/20240325144727.mp4'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
map: null,
|
||||||
|
sp2
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.initMap()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
initMap() {
|
||||||
|
AMapLoader.load({
|
||||||
|
key: "e49669059fa36494531a82ed982f395c", // 申请好的Web端开发者Key,首次调用 load 时必填
|
||||||
|
version: "1.4.15", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
|
||||||
|
// plugins: ["AMap.AutoComplete", "AMap.PlaceSearch"], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
|
||||||
|
})
|
||||||
|
.then((AMap) => {
|
||||||
|
this.map = new AMap.Map("middleMap", {
|
||||||
|
zoom: 13, //级别
|
||||||
|
center: [106.45773,29.54098], //中心点坐标
|
||||||
|
mapStyle: "",
|
||||||
|
});
|
||||||
|
this.map.on("click", (e) => {
|
||||||
|
navigator.clipboard.writeText(
|
||||||
|
`[${e.lnglat.R.toString()}, ${e.lnglat.Q.toString()}],`
|
||||||
|
);
|
||||||
|
});
|
||||||
|
const marks = [
|
||||||
|
{
|
||||||
|
locaton: [106.46174288158418,29.53138123556404],
|
||||||
|
name: "重庆亿利宝汽车配件有限公司",
|
||||||
|
device: "AI摄像头-CAM90802",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
locaton: [106.45773188158418,29.54092123556404],
|
||||||
|
name: "重庆市沙坪坝区人民政府",
|
||||||
|
device: "AI摄像头-CAM90804",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const marks2 = [
|
||||||
|
{
|
||||||
|
locaton: [106.45413980158418,29.55100123556404],
|
||||||
|
name: "沙坪公园",
|
||||||
|
device: "AI摄像头-CAM90801",
|
||||||
|
address: "游客溺水",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
locaton: [106.48074381158418,29.54188923556404],
|
||||||
|
name: "森林实验小学",
|
||||||
|
device: "AI摄像头-CAM90801",
|
||||||
|
address: "校门口出现车不礼让行人现象",
|
||||||
|
src:this.sp2
|
||||||
|
},
|
||||||
|
];
|
||||||
|
marks.forEach((item, index) => {
|
||||||
|
this.addMapMarker(item.locaton, 'sxt2', { name: item.name, device: item.device })
|
||||||
|
});
|
||||||
|
marks2.forEach((item, index) => {
|
||||||
|
this.addMapMarker2(item.locaton, 'jb', { name: item.name, device: item.device,address: item.address})
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
console.log(e);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 添加图形点标记
|
||||||
|
addMapMarker(sourceData = [], type = "sxt", info = {}) {
|
||||||
|
const marker = new AMap.Marker({
|
||||||
|
position: new AMap.LngLat(sourceData[0], sourceData[1]),
|
||||||
|
offset: new AMap.Pixel(-30, -52),
|
||||||
|
icon: `/images/${type}.png`, // 添加 Icon 图标 URL
|
||||||
|
title: "",
|
||||||
|
});
|
||||||
|
this.map.add(marker);
|
||||||
|
marker.on("click", (e) => {
|
||||||
|
this.showInfoWindow(sourceData[0], sourceData[1], {
|
||||||
|
type: "#304156",
|
||||||
|
...info,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
addMapMarker2(sourceData = [], type = "jb", info = {}) {
|
||||||
|
const marker = new AMap.Marker({
|
||||||
|
position: new AMap.LngLat(sourceData[0], sourceData[1]),
|
||||||
|
offset: new AMap.Pixel(-30, -52),
|
||||||
|
icon: `/images/${type}.png`, // 添加 Icon 图标 URL
|
||||||
|
title: "",
|
||||||
|
});
|
||||||
|
this.map.add(marker);
|
||||||
|
marker.on("click", (e) => {
|
||||||
|
this.showInfoWindow2(sourceData[0], sourceData[1], {
|
||||||
|
type: "#304156",
|
||||||
|
...info,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 显示信息窗体
|
||||||
|
showInfoWindow(lng, lat, sourceInfo) {
|
||||||
|
let content = `
|
||||||
|
<div style="padding: 6px;background-color: #32b9ef;">
|
||||||
|
<div>
|
||||||
|
<div style="padding: 4px;fontweigth:500"><b>${sourceInfo.device}</b></div>
|
||||||
|
<div style="padding: 4px;margin:5px 0">${sourceInfo.name}</div>
|
||||||
|
<div style="padding: 4px;">正常运行</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
const infoWindow = new AMap.InfoWindow({
|
||||||
|
content,
|
||||||
|
anchor: "middle-left",
|
||||||
|
isCustom: true,
|
||||||
|
});
|
||||||
|
infoWindow.open(this.map, [lng, lat]);
|
||||||
|
},
|
||||||
|
// 显示信息窗体
|
||||||
|
showInfoWindow2(lng, lat, sourceInfo) {
|
||||||
|
let content = `
|
||||||
|
<div style="padding: 6px;background-color: #cce0f1;">
|
||||||
|
<div>
|
||||||
|
<div style="padding: 4px;margin:5px 0;color:red;"><b>${sourceInfo.address}</b></div>
|
||||||
|
<div style="padding: 4px;fontweigth:500"><b>${sourceInfo.device}</b></div>
|
||||||
|
<div style="padding: 4px;"><b>${sourceInfo.name}</b></div>
|
||||||
|
<video src="./assets/20240325144727.mp4" style="width:100%;height:100px;"></video>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
const infoWindow = new AMap.InfoWindow({
|
||||||
|
content,
|
||||||
|
anchor: "middle-left",
|
||||||
|
isCustom: true,
|
||||||
|
});
|
||||||
|
infoWindow.open(this.map, [lng, lat]);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
#middleMap {
|
||||||
|
width: 100vw;
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
}
|
||||||
|
.box{
|
||||||
|
position: relative;
|
||||||
|
.sl{
|
||||||
|
width: 130px;
|
||||||
|
height: 70px;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 3%;
|
||||||
|
right:3%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.left{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-around;
|
||||||
|
.sxt{
|
||||||
|
width: 2.5rem;
|
||||||
|
height: 2.5rem;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-image: url(./assets/jk.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
BIN
god-ui/src/views/monitoringwarning/screenVideo/assets/jk.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
god-ui/src/views/monitoringwarning/screenVideo/assets/warn.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
205
god-ui/src/views/monitoringwarning/screenVideo/index.vue
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
<template>
|
||||||
|
<div class="box">
|
||||||
|
<div id="middleMap"></div>
|
||||||
|
<div class="sl">
|
||||||
|
<div class="left">
|
||||||
|
<div class="sxt"></div>
|
||||||
|
<div>监控</div>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="warn"></div>
|
||||||
|
<div>预警</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import AMapLoader from "@amap/amap-jsapi-loader";
|
||||||
|
window._AMapSecurityConfig = {
|
||||||
|
securityJsCode: "b6314ade5a42c3f3ac2284b6d4d89b1f",
|
||||||
|
};
|
||||||
|
import sp2 from './assets/20240325144727.mp4'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
map: null,
|
||||||
|
sp2
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.initMap()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
initMap() {
|
||||||
|
AMapLoader.load({
|
||||||
|
key: "e49669059fa36494531a82ed982f395c", // 申请好的Web端开发者Key,首次调用 load 时必填
|
||||||
|
version: "1.4.15", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
|
||||||
|
// plugins: ["AMap.AutoComplete", "AMap.PlaceSearch"], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
|
||||||
|
})
|
||||||
|
.then((AMap) => {
|
||||||
|
this.map = new AMap.Map("middleMap", {
|
||||||
|
zoom: 13, //级别
|
||||||
|
center: [106.45773,29.54098], //中心点坐标
|
||||||
|
mapStyle: "",
|
||||||
|
});
|
||||||
|
this.map.on("click", (e) => {
|
||||||
|
navigator.clipboard.writeText(
|
||||||
|
`[${e.lnglat.R.toString()}, ${e.lnglat.Q.toString()}],`
|
||||||
|
);
|
||||||
|
});
|
||||||
|
const marks = [
|
||||||
|
{
|
||||||
|
locaton: [106.46174288158418,29.53138123556404],
|
||||||
|
name: "重庆亿利宝汽车配件有限公司",
|
||||||
|
device: "AI摄像头-CAM90802",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
locaton: [106.45773188158418,29.54092123556404],
|
||||||
|
name: "重庆市沙坪坝区人民政府",
|
||||||
|
device: "AI摄像头-CAM90804",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const marks2 = [
|
||||||
|
{
|
||||||
|
locaton: [106.45413980158418,29.55100123556404],
|
||||||
|
name: "沙坪公园",
|
||||||
|
device: "AI摄像头-CAM90801",
|
||||||
|
address: "游客溺水",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
locaton: [106.48074381158418,29.54188923556404],
|
||||||
|
name: "森林实验小学",
|
||||||
|
device: "AI摄像头-CAM90801",
|
||||||
|
address: "校门口出现车不礼让行人现象",
|
||||||
|
src:this.sp2
|
||||||
|
},
|
||||||
|
];
|
||||||
|
marks.forEach((item, index) => {
|
||||||
|
this.addMapMarker(item.locaton, 'sxt2', { name: item.name, device: item.device })
|
||||||
|
});
|
||||||
|
marks2.forEach((item, index) => {
|
||||||
|
this.addMapMarker2(item.locaton, 'jb', { name: item.name, device: item.device,address: item.address})
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
console.log(e);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 添加图形点标记
|
||||||
|
addMapMarker(sourceData = [], type = "sxt", info = {}) {
|
||||||
|
const marker = new AMap.Marker({
|
||||||
|
position: new AMap.LngLat(sourceData[0], sourceData[1]),
|
||||||
|
offset: new AMap.Pixel(-30, -52),
|
||||||
|
icon: `/images/${type}.png`, // 添加 Icon 图标 URL
|
||||||
|
title: "",
|
||||||
|
});
|
||||||
|
this.map.add(marker);
|
||||||
|
marker.on("click", (e) => {
|
||||||
|
this.showInfoWindow(sourceData[0], sourceData[1], {
|
||||||
|
type: "#304156",
|
||||||
|
...info,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
addMapMarker2(sourceData = [], type = "jb", info = {}) {
|
||||||
|
const marker = new AMap.Marker({
|
||||||
|
position: new AMap.LngLat(sourceData[0], sourceData[1]),
|
||||||
|
offset: new AMap.Pixel(-30, -52),
|
||||||
|
icon: `/images/${type}.png`, // 添加 Icon 图标 URL
|
||||||
|
title: "",
|
||||||
|
});
|
||||||
|
this.map.add(marker);
|
||||||
|
marker.on("click", (e) => {
|
||||||
|
this.showInfoWindow2(sourceData[0], sourceData[1], {
|
||||||
|
type: "#304156",
|
||||||
|
...info,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 显示信息窗体
|
||||||
|
showInfoWindow(lng, lat, sourceInfo) {
|
||||||
|
let content = `
|
||||||
|
<div style="padding: 6px;background-color: #32b9ef;">
|
||||||
|
<div>
|
||||||
|
<div style="padding: 4px;fontweigth:500"><b>${sourceInfo.device}</b></div>
|
||||||
|
<div style="padding: 4px;margin:5px 0">${sourceInfo.name}</div>
|
||||||
|
<div style="padding: 4px;">正常运行</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
const infoWindow = new AMap.InfoWindow({
|
||||||
|
content,
|
||||||
|
anchor: "middle-left",
|
||||||
|
isCustom: true,
|
||||||
|
});
|
||||||
|
infoWindow.open(this.map, [lng, lat]);
|
||||||
|
},
|
||||||
|
// 显示信息窗体
|
||||||
|
showInfoWindow2(lng, lat, sourceInfo) {
|
||||||
|
let content = `
|
||||||
|
<div style="padding: 6px;background-color: #cce0f1;">
|
||||||
|
<div>
|
||||||
|
<div style="padding: 4px;margin:5px 0;color:red;"><b>${sourceInfo.address}</b></div>
|
||||||
|
<div style="padding: 4px;fontweigth:500"><b>${sourceInfo.device}</b></div>
|
||||||
|
<div style="padding: 4px;"><b>${sourceInfo.name}</b></div>
|
||||||
|
<video src="./assets/20240325144727.mp4" style="width:100%;height:100px;"></video>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
const infoWindow = new AMap.InfoWindow({
|
||||||
|
content,
|
||||||
|
anchor: "middle-left",
|
||||||
|
isCustom: true,
|
||||||
|
});
|
||||||
|
infoWindow.open(this.map, [lng, lat]);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
#middleMap {
|
||||||
|
width: 100vw;
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
}
|
||||||
|
.box{
|
||||||
|
position: relative;
|
||||||
|
.sl{
|
||||||
|
width: 250px;
|
||||||
|
height: 70px;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 3%;
|
||||||
|
right:3%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
.left{
|
||||||
|
width: 49%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-around;
|
||||||
|
.sxt{
|
||||||
|
width: 2.5rem;
|
||||||
|
height: 2.5rem;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-image: url(./assets/jk.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.right{
|
||||||
|
width: 49%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-around;
|
||||||
|
.warn{
|
||||||
|
width: 2.5rem;
|
||||||
|
height: 2.5rem;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-image: url(./assets/warn.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
BIN
god-ui/src/views/rescue/fixedVideo/assets/img1.png
Normal file
After Width: | Height: | Size: 349 KiB |
BIN
god-ui/src/views/rescue/fixedVideo/assets/img2.jpeg
Normal file
After Width: | Height: | Size: 105 KiB |
BIN
god-ui/src/views/rescue/fixedVideo/assets/jk.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
god-ui/src/views/rescue/fixedVideo/assets/warn.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
208
god-ui/src/views/rescue/fixedVideo/index.vue
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
<template>
|
||||||
|
<div class="box">
|
||||||
|
<div id="middleMap"></div>
|
||||||
|
<div class="sl">
|
||||||
|
<div class="left">
|
||||||
|
<div class="sxt"></div>
|
||||||
|
<div>监控</div>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="warn"></div>
|
||||||
|
<div>预警</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import AMapLoader from "@amap/amap-jsapi-loader";
|
||||||
|
window._AMapSecurityConfig = {
|
||||||
|
securityJsCode: "b6314ade5a42c3f3ac2284b6d4d89b1f",
|
||||||
|
};
|
||||||
|
import img1 from './assets/img1.png'
|
||||||
|
import img2 from './assets/img2.jpeg'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
map: null,
|
||||||
|
img1,img2
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.initMap()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
initMap() {
|
||||||
|
AMapLoader.load({
|
||||||
|
key: "e49669059fa36494531a82ed982f395c", // 申请好的Web端开发者Key,首次调用 load 时必填
|
||||||
|
version: "1.4.15", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
|
||||||
|
// plugins: ["AMap.AutoComplete", "AMap.PlaceSearch"], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
|
||||||
|
})
|
||||||
|
.then((AMap) => {
|
||||||
|
this.map = new AMap.Map("middleMap", {
|
||||||
|
zoom: 13, //级别
|
||||||
|
center: [106.45773,29.54098], //中心点坐标
|
||||||
|
mapStyle: "",
|
||||||
|
});
|
||||||
|
this.map.on("click", (e) => {
|
||||||
|
navigator.clipboard.writeText(
|
||||||
|
`[${e.lnglat.R.toString()}, ${e.lnglat.Q.toString()}],`
|
||||||
|
);
|
||||||
|
});
|
||||||
|
const marks = [
|
||||||
|
{
|
||||||
|
locaton: [106.46174288158418,29.53138123556404],
|
||||||
|
name: "重庆亿利宝汽车配件有限公司",
|
||||||
|
device: "AI摄像头-CAM90802",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
locaton: [106.45773188158418,29.54092123556404],
|
||||||
|
name: "重庆市沙坪坝区人民政府",
|
||||||
|
device: "AI摄像头-CAM90804",
|
||||||
|
src:this.sp2
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const marks2 = [
|
||||||
|
{
|
||||||
|
locaton: [106.45413980158418,29.55100123556404],
|
||||||
|
name: "沙坪公园",
|
||||||
|
device: "AI摄像头-CAM90801",
|
||||||
|
address: "游客溺水",
|
||||||
|
src:'./assets/img1.png'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
locaton: [106.48074381158418,29.54188923556404],
|
||||||
|
name: "森林实验小学",
|
||||||
|
device: "AI摄像头-CAM90801",
|
||||||
|
address: "校门口出现车不礼让行人现象",
|
||||||
|
src:'./assets/img2.jpeg'
|
||||||
|
},
|
||||||
|
];
|
||||||
|
marks.forEach((item, index) => {
|
||||||
|
this.addMapMarker(item.locaton, 'sxt2', { name: item.name, device: item.device })
|
||||||
|
});
|
||||||
|
marks2.forEach((item, index) => {
|
||||||
|
this.addMapMarker2(item.locaton, 'jb', { name: item.name, device: item.device,address: item.address})
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
console.log(e);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 添加图形点标记
|
||||||
|
addMapMarker(sourceData = [], type = "sxt", info = {}) {
|
||||||
|
const marker = new AMap.Marker({
|
||||||
|
position: new AMap.LngLat(sourceData[0], sourceData[1]),
|
||||||
|
offset: new AMap.Pixel(-50, -52),
|
||||||
|
icon: `/images/${type}.png`, // 添加 Icon 图标 URL
|
||||||
|
title: "",
|
||||||
|
});
|
||||||
|
this.map.add(marker);
|
||||||
|
marker.on("click", (e) => {
|
||||||
|
this.showInfoWindow(sourceData[0], sourceData[1], {
|
||||||
|
type: "#304156",
|
||||||
|
...info,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
addMapMarker2(sourceData = [], type = "jb", info = {}) {
|
||||||
|
const marker = new AMap.Marker({
|
||||||
|
position: new AMap.LngLat(sourceData[0], sourceData[1]),
|
||||||
|
offset: new AMap.Pixel(-40, -62),
|
||||||
|
icon: `/images/${type}.png`, // 添加 Icon 图标 URL
|
||||||
|
title: "",
|
||||||
|
});
|
||||||
|
this.map.add(marker);
|
||||||
|
marker.on("click", (e) => {
|
||||||
|
this.showInfoWindow2(sourceData[0], sourceData[1], {
|
||||||
|
type: "#304156",
|
||||||
|
...info,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 显示信息窗体
|
||||||
|
showInfoWindow(lng, lat, sourceInfo) {
|
||||||
|
let content = `
|
||||||
|
<div style="padding: 6px;background-color: #32b9ef;">
|
||||||
|
<div>
|
||||||
|
<div style="padding: 4px;fontweigth:500"><b>${sourceInfo.device}</b></div>
|
||||||
|
<div style="padding: 4px;margin:5px 0">${sourceInfo.name}</div>
|
||||||
|
<div style="padding: 4px;">正常运行</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
const infoWindow = new AMap.InfoWindow({
|
||||||
|
content,
|
||||||
|
anchor: "middle-left",
|
||||||
|
isCustom: true,
|
||||||
|
});
|
||||||
|
infoWindow.open(this.map, [lng, lat]);
|
||||||
|
},
|
||||||
|
// 显示信息窗体
|
||||||
|
showInfoWindow2(lng, lat, sourceInfo) {
|
||||||
|
let content = `
|
||||||
|
<div style="padding: 6px;background-color: #cce0f1;">
|
||||||
|
<div>
|
||||||
|
<div style="padding: 4px;margin:5px 0;color:red;"><b>${sourceInfo.address}</b></div>
|
||||||
|
<div style="padding: 4px;fontweigth:500"><b>${sourceInfo.device}</b></div>
|
||||||
|
<div style="padding: 4px;"><b>${sourceInfo.name}</b></div>
|
||||||
|
<img src="${sourceInfo.src}" style="width:100%;height:100px;" alt="">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
const infoWindow = new AMap.InfoWindow({
|
||||||
|
content,
|
||||||
|
anchor: "middle-left",
|
||||||
|
isCustom: true,
|
||||||
|
});
|
||||||
|
infoWindow.open(this.map, [lng, lat]);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
#middleMap {
|
||||||
|
width: 100vw;
|
||||||
|
height: calc(100vh - 84px);
|
||||||
|
}
|
||||||
|
.box{
|
||||||
|
position: relative;
|
||||||
|
.sl{
|
||||||
|
width: 250px;
|
||||||
|
height: 70px;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 3%;
|
||||||
|
right:3%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
.left{
|
||||||
|
width: 49%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-around;
|
||||||
|
.sxt{
|
||||||
|
width: 2.5rem;
|
||||||
|
height: 2.5rem;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-image: url(./assets/jk.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.right{
|
||||||
|
width: 49%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-around;
|
||||||
|
.warn{
|
||||||
|
width: 2.5rem;
|
||||||
|
height: 2.5rem;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-image: url(./assets/warn.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|