forked from dyf/dyf-vue-ui
控制中心添加670的控制,大屏页面问题
This commit is contained in:
@ -26,6 +26,14 @@ function SosSetting (data: any) {
|
||||
data: data
|
||||
});
|
||||
};
|
||||
//批量强制报警
|
||||
function SosSettingBatch(data:any){
|
||||
return request({
|
||||
url: `/api/xinghan/device/SOSGradeSettingsBatch`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
//静电探测档位控制
|
||||
function staticPowerSetting (data: any) {
|
||||
@ -62,5 +70,6 @@ export default {
|
||||
SosSetting:SosSetting,
|
||||
staticPowerSetting:staticPowerSetting,
|
||||
deviceRealTimeStatus:deviceRealTimeStatus,
|
||||
SendMessage:SendMessage
|
||||
SendMessage:SendMessage,
|
||||
SosSettingBatch:SosSettingBatch
|
||||
};
|
||||
@ -7,11 +7,11 @@ function initMap(click) {
|
||||
map = new AMap.Map("map", {
|
||||
viewMode: '2D', //默认使用 2D 模式
|
||||
zoom: 11, //地图级别
|
||||
center: [116.396477 , 39.909278], //地图中心点
|
||||
center: [116.396477, 39.909278], //地图中心点
|
||||
mapStyle: "amap://styles/darkblue"
|
||||
});
|
||||
|
||||
map.on('click', function (evt) {
|
||||
map.on('click', function (evt) {
|
||||
// alert('您点击的位置:'+evt.lnglat.lng+' , '+ evt.lnglat.lat);
|
||||
if (click) {
|
||||
click(evt.lnglat);
|
||||
@ -35,7 +35,7 @@ function initMap(click) {
|
||||
|
||||
//添加一个点
|
||||
function AddPoint(point, index, dragEnd, click, iconImg) {
|
||||
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
try {
|
||||
if (!point) {
|
||||
@ -65,7 +65,8 @@ function AddPoint(point, index, dragEnd, click, iconImg) {
|
||||
title: point.isAlarming ? '正在报警:' + point.deviceName : point.deviceName,
|
||||
text: index,
|
||||
class: 'point',
|
||||
extData: point
|
||||
extData: point,
|
||||
anchor:'bottom-center'
|
||||
});
|
||||
marker.setMap(map);
|
||||
|
||||
@ -101,30 +102,12 @@ function setCenter(lon, latitude) {
|
||||
}
|
||||
|
||||
function calcCenter() {
|
||||
|
||||
|
||||
if (!layPoints || layPoints.length === 0) {
|
||||
throw new Error("坐标数组不能为空");
|
||||
}
|
||||
|
||||
// 计算所有经度和纬度的总和
|
||||
const total = layPoints.reduce((sum, point) => {
|
||||
return {
|
||||
lng: sum.lng + parseFloat(point.lng),
|
||||
lat: sum.lat + parseFloat(point.lat)
|
||||
};
|
||||
}, { lng: 0, lat: 0 });
|
||||
|
||||
// 计算平均值得到中心点
|
||||
const center = {
|
||||
lng: total.lng / layPoints.length,
|
||||
lat: total.lat / layPoints.length
|
||||
};
|
||||
|
||||
return center;
|
||||
}
|
||||
//画多边形
|
||||
function DrawPoy(points) {
|
||||
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!map) {
|
||||
reject("map未初始化");
|
||||
@ -179,6 +162,7 @@ function DrawPoy(points) {
|
||||
}
|
||||
//画圆形
|
||||
function DrawCicle(points, raduis, dragEnd) {
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!map) {
|
||||
reject("map未初始化");
|
||||
@ -201,7 +185,7 @@ function DrawCicle(points, raduis, dragEnd) {
|
||||
reject("圆的中心点不正确")
|
||||
return;
|
||||
}
|
||||
layPoints.push({ lng: coordinates[0].lng, lat: points.coordinates[0].lat });
|
||||
|
||||
let circle = new AMap.Circle({
|
||||
center: [points.coordinates[0].lng, points.coordinates[0].lat],
|
||||
radius: raduis ? raduis : 1000, //半径
|
||||
@ -217,6 +201,7 @@ function DrawCicle(points, raduis, dragEnd) {
|
||||
zIndex: 50,
|
||||
})
|
||||
map.add(circle);
|
||||
layPoints.push({ lng: points.coordinates[0].lng, lat: points.coordinates[0].lat });
|
||||
resolve("添加圆成功");
|
||||
});
|
||||
|
||||
|
||||
@ -472,6 +472,16 @@ const getList = () => {
|
||||
Status.sosMode = res.data.staSOSGrade;
|
||||
Status.staticPower = res.data.staDetectGrade;
|
||||
Status.lightMode = res.data.staLightGrade;
|
||||
if(!deviceDetail.value.personnelInfo){
|
||||
deviceDetail.value.personnelInfo={
|
||||
'id': null,
|
||||
'deviceId': null,
|
||||
'name': null,
|
||||
'position': null,
|
||||
'unitName': null,
|
||||
'code': null
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
@ -538,6 +548,8 @@ const sendTextMessage = async () => {
|
||||
batchId: ''
|
||||
};
|
||||
|
||||
|
||||
|
||||
api.SendMessage(json).then((res) => {
|
||||
if (res.code === 200) {
|
||||
ElMessage.closeAll();
|
||||
|
||||
@ -165,6 +165,8 @@ import apiTypeAll from '@/api/equipmentManagement/device/index';
|
||||
import { deviceQuery, deviceVO } from '@/api/controlCenter/controlPanel/types';
|
||||
import Amap from "./components/map.vue";
|
||||
import { generateShortId, getDeviceStatus } from '@/utils/function';
|
||||
import eqControl from '@/api/controlCenter/controlPanel/eqControl';
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute(); // 新增:用于获取URL中的query参数
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
@ -380,6 +382,7 @@ const submitForm = async () => {
|
||||
return
|
||||
}
|
||||
try {
|
||||
|
||||
sendTextLoading.value = true;
|
||||
// 2. 准备请求数据
|
||||
const deviceIds = ids.value.map(item => item.id);
|
||||
@ -392,10 +395,11 @@ const submitForm = async () => {
|
||||
typeName: typeName,
|
||||
batchId: batchId,
|
||||
deviceImeiList: deviceImeiList,
|
||||
sendMsg: form.value.messageToSend
|
||||
sendMsg: form.value.messageToSend,
|
||||
instructValue:""
|
||||
};
|
||||
// 3.人员信息
|
||||
const registerRes = await api.deviceSendMessage(data);
|
||||
const registerRes = await eqControl.deviceSendMessage(data);
|
||||
if (registerRes.code !== 200) {
|
||||
proxy?.$modal.msgWarning(registerRes.msg)
|
||||
return
|
||||
@ -454,9 +458,10 @@ const forceAlarm = async () => {
|
||||
typeName: typeName,
|
||||
batchId: batchId,
|
||||
deviceImeiList: deviceImeiList,
|
||||
instructValue: '1', //强制报警1,解除报警0
|
||||
instructValue: '1' //强制报警1,解除报警0
|
||||
|
||||
}
|
||||
const registerRes = await api.sendAlarmMessage(data);
|
||||
const registerRes = await eqControl.sendAlarmMessage(data);
|
||||
if (registerRes.code !== 200) {
|
||||
proxy?.$modal.msgWarning(registerRes.msg)
|
||||
return
|
||||
|
||||
@ -12,8 +12,8 @@
|
||||
<el-icon v-show="!Status.showCheckGroup"><CaretBottom /></el-icon>
|
||||
<el-icon v-show="Status.showCheckGroup"><CaretTop /></el-icon>
|
||||
</div>
|
||||
<div class="clear" @click.stop="search.groupId=''">
|
||||
<el-icon ><CloseBold /></el-icon>
|
||||
<div class="clear" @click.stop="search.groupId = ''">
|
||||
<el-icon><CloseBold /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -34,19 +34,16 @@
|
||||
<div class="vertiLine"></div>
|
||||
<div class="input" @click.stop="showCheck('showCheckType')">
|
||||
<div>{{ devType }}</div>
|
||||
|
||||
|
||||
|
||||
<div class="iconContent">
|
||||
<div class="iconContent">
|
||||
<div class="arrow">
|
||||
<el-icon v-show="!Status.showCheckType"><CaretBottom /></el-icon>
|
||||
<el-icon v-show="Status.showCheckType"><CaretTop /></el-icon>
|
||||
</div>
|
||||
<div class="clear" @click.stop="search.deviceType=''">
|
||||
<el-icon ><CloseBold /></el-icon>
|
||||
<div class="clear" @click.stop="search.deviceType = ''">
|
||||
<el-icon><CloseBold /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="ul" :class="Status.showCheckType ? '' : 'displayNone'">
|
||||
<div
|
||||
@ -323,7 +320,7 @@ function getPoints() {
|
||||
var array = res.data;
|
||||
// if (!array.length) {
|
||||
// // ElMessage.error('未查询到任何数据,以下展示假数据,仅供查看效果,正式上线时取消');
|
||||
// // array = fakeData;
|
||||
// // array = fakeData;
|
||||
// // return;
|
||||
// }
|
||||
let promise = [];
|
||||
@ -361,10 +358,8 @@ function getPoints() {
|
||||
}
|
||||
}
|
||||
}
|
||||
Promise.allSettled(promise).then((res) => {
|
||||
// map.setFitView();
|
||||
let center=map.calcCenter();
|
||||
map.setCenter(center.lng,center.lat);
|
||||
Promise.allSettled(promise).then((res) => {
|
||||
map.setFitView();
|
||||
});
|
||||
} else {
|
||||
console.error('接口getDeviceLocationInfo出现了未知的异常', res);
|
||||
@ -390,7 +385,7 @@ function getTypes() {
|
||||
if (res.data.length) {
|
||||
types.value = res.data.map((v) => {
|
||||
return {
|
||||
value: v.id,
|
||||
value: v.deviceTypeId,
|
||||
label: v.typeName
|
||||
};
|
||||
});
|
||||
@ -520,7 +515,8 @@ function showCheck(type) {
|
||||
|
||||
onMounted(() => {
|
||||
map.initMap(hideCheck).then((res) => {
|
||||
setInterval(getPoints,300000);
|
||||
getPoints();
|
||||
setInterval(getPoints, 300000);
|
||||
});
|
||||
|
||||
getTypes();
|
||||
@ -691,15 +687,15 @@ onMounted(() => {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.iconContent:hover .arrow{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.iconContent .clear{
|
||||
.iconContent:hover .arrow {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.iconContent:hover .clear{
|
||||
.iconContent .clear {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.iconContent:hover .clear {
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user