312 lines
9.9 KiB
JavaScript
312 lines
9.9 KiB
JavaScript
|
import { getPoliceAlarm } from "../api/getPoliceAlarm.js"
|
|||
|
import { layuiObj,eventMap} from "./index.js";
|
|||
|
import {drawAlarmEventMarker,drawPersonEventMarker} from "./marker/schoolMarker.js";
|
|||
|
import { timestampFormatTime } from "../../../public/js/timestamp.js";
|
|||
|
import { getskynetfence } from "../api/getSkyNetfence.js";
|
|||
|
import { getTime } from "./time.js";
|
|||
|
import { brigade } from "../../../public/js/url.js";
|
|||
|
import { sendFacealarmBroadcast } from "../api/sendFacealarmBroadcast.js";
|
|||
|
let policeAlarmList=[];
|
|||
|
var currentStation="";
|
|||
|
var currnetAlarmTarget="";
|
|||
|
var skynetfenceObj={}
|
|||
|
var polygonArr=[];
|
|||
|
function showPoliceAlarm(){
|
|||
|
var time=getTime();
|
|||
|
var reqdata={
|
|||
|
brigade,
|
|||
|
pageindex: 0,
|
|||
|
pagesize: 2000,
|
|||
|
readState:"unread",
|
|||
|
start:time["startTime"],
|
|||
|
end:time["endTime"]
|
|||
|
}
|
|||
|
getPoliceAlarm(reqdata).then(res=>{
|
|||
|
var code=res["data"]["code"];
|
|||
|
if(code==0){
|
|||
|
var data=res["data"]["data"];
|
|||
|
if(data!=null){
|
|||
|
policeAlarmList=data;
|
|||
|
policeAlarmList.reverse();
|
|||
|
}
|
|||
|
}
|
|||
|
showPoliceAlarmDiv();
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
function showPoliceAlarmDiv(){
|
|||
|
var div="";
|
|||
|
for(var i=0;i<policeAlarmList.length;i++){
|
|||
|
div+=getAlarmPersonInfoDiv(policeAlarmList[i],"broadCast")
|
|||
|
}
|
|||
|
$(".warnInfoListall").html(div);
|
|||
|
addAlarmEventClick();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
function addAlarmEventClick(){
|
|||
|
$(".warnInfoListall>div").on('click',function(){
|
|||
|
var eventId=$(this).attr("eventId");
|
|||
|
$(".currentSchoolAlarmListAllBox").html("");
|
|||
|
$(".schoolAlarmInfo>p:nth-child(1)").html("预警信息");
|
|||
|
for(var i=0;i<policeAlarmList.length;i++){
|
|||
|
if(eventId==policeAlarmList[i]["alarmId"]){
|
|||
|
currnetAlarmTarget=policeAlarmList[i]["personName"];
|
|||
|
currentStation=policeAlarmList[i]["station"];
|
|||
|
drawAlarmEventMarker([policeAlarmList[i]]);
|
|||
|
showSchoolInfoBox(policeAlarmList[i])
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
$(".warnInfoListall>div>div .broadCastMsgBtn").on('click',function(){
|
|||
|
var alarmId=$(this).parent().parent().parent().attr("eventId");
|
|||
|
layer.confirm('确定需要广播吗?', {icon: 3, title:'提示'}, function(index){
|
|||
|
sendFacealarmBroadcast(alarmId).then(res=>{
|
|||
|
var code=res["data"]["code"];
|
|||
|
if(code==0){
|
|||
|
layer.msg("推送成功")
|
|||
|
}else{
|
|||
|
layer.msg("推送失败")
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
layer.close(index);
|
|||
|
});
|
|||
|
})
|
|||
|
|
|||
|
|
|||
|
$(".warnInfoListall>div>div .policeDetailBtn").on('click',function(){
|
|||
|
var alarmId=$(this).parent().parent().parent().attr("eventId");
|
|||
|
for(var i=0;i<policeAlarmList.length;i++){
|
|||
|
if(alarmId==policeAlarmList[i]["alarmId"]){
|
|||
|
openPoliceAlarm(policeAlarmList[i]);
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
function openPoliceAlarm(item){
|
|||
|
layuiObj.layer.open({
|
|||
|
type: 1,
|
|||
|
title: "天网预警", //不显示标题栏
|
|||
|
area: ['auto','auto'],
|
|||
|
shade: 0.6,
|
|||
|
id:new Date().getTime(), //设定一个id,防止重复弹出
|
|||
|
btnAlign: 'c',
|
|||
|
moveType: 1, //拖拽模式,0或者1
|
|||
|
content: `<div style="padding:10px;color:#fff;background:#032357;height:calc(100% - 20px);overflow-y:auto;" class="aIBehavioralPop">
|
|||
|
${getAlarmPersonInfoDiv(item,"noBroadCast")}
|
|||
|
</div>`,
|
|||
|
success: function(layero){
|
|||
|
console.log(item);
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
function showSchoolInfoBox(item,type){
|
|||
|
var div=`
|
|||
|
<div>
|
|||
|
<p>
|
|||
|
<span>学校名称:</span>
|
|||
|
<span>${item["station"]}</span>
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<p>
|
|||
|
<span>派出所:</span>
|
|||
|
<span>${item["borough"]}</span>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<span>警务区:</span>
|
|||
|
<span>${item["detachment"]}</span>
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<p>
|
|||
|
<span>校长:</span>
|
|||
|
<span>王娟(15211120788)</span>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<span>校区民警:</span>
|
|||
|
<span>王娟(15211120788)</span>
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
<button type="button" class="layui-btn currentSchoolInfo">学校预警信息</button>
|
|||
|
<button type="button" class="layui-btn currentPersonInfo">人员预警信息</button>
|
|||
|
</p>`;
|
|||
|
|
|||
|
|
|||
|
$(".schoolInfoBox").html(div)
|
|||
|
addSchoolInfoBoxEvent();
|
|||
|
}
|
|||
|
|
|||
|
function addSchoolInfoBoxEvent(){
|
|||
|
$(".currentSchoolInfo").on('click',function(){
|
|||
|
var tempArr=[];
|
|||
|
for(var i=0;i<policeAlarmList.length;i++){
|
|||
|
if(currentStation==policeAlarmList[i]["station"]){
|
|||
|
tempArr.push(policeAlarmList[i])
|
|||
|
}
|
|||
|
}
|
|||
|
drawAlarmEventMarker(tempArr);
|
|||
|
showSchoolWarnAlarmInfo(tempArr);
|
|||
|
$(".schoolAlarmInfo>p:nth-child(1)").html(currentStation+" 预警信息");
|
|||
|
showSkynetFence();
|
|||
|
})
|
|||
|
$(".currentPersonInfo").on('click',function(){
|
|||
|
var tempArr=[];
|
|||
|
for(var i=0;i<policeAlarmList.length;i++){
|
|||
|
if(currnetAlarmTarget==policeAlarmList[i]["personName"]){
|
|||
|
tempArr.push(policeAlarmList[i])
|
|||
|
}
|
|||
|
}
|
|||
|
drawPersonEventMarker(tempArr);
|
|||
|
showSchoolWarnAlarmInfo(tempArr);
|
|||
|
$(".schoolAlarmInfo>p:nth-child(1)").html(currnetAlarmTarget+" 预警信息");
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
function showSkynetFence(){
|
|||
|
if(!(currentStation in skynetfenceObj)){
|
|||
|
getskynetfence(currentStation).then(res=>{
|
|||
|
var code=res["data"]["code"];
|
|||
|
if(code==0){
|
|||
|
var data=res["data"]["data"];
|
|||
|
var station=data["station"]
|
|||
|
skynetfenceObj[station]=data;
|
|||
|
}else{
|
|||
|
layuiObj.layer.msg("无围栏信息");
|
|||
|
}
|
|||
|
drawPolygon();
|
|||
|
})
|
|||
|
}else{
|
|||
|
drawPolygon();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function getAlarmPersonInfoDiv(item,type){
|
|||
|
var personLibName=item["personLibName"];
|
|||
|
var station=item["station"];
|
|||
|
var alarmTime=timestampFormatTime(new Date(item["alarmTime"]).getTime());
|
|||
|
var address=item["cameraName"];
|
|||
|
var eventId=item["alarmId"];
|
|||
|
var pic=item["snappedPicUrl"]
|
|||
|
var blackType=item["certificateTypeName"]
|
|||
|
var idNumber=item["certificateNumber"];
|
|||
|
var blackName=item["personName"];
|
|||
|
var groupType=item["groupType"];
|
|||
|
var div=`
|
|||
|
<div eventId='${eventId}'>
|
|||
|
<p>
|
|||
|
<img src="${pic}" alt="">
|
|||
|
</p>
|
|||
|
<div>
|
|||
|
<p>
|
|||
|
<span>[${personLibName}]</span>
|
|||
|
<span>【${groupType == null?" ":groupType}】</span>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<span>告警时间:</span>
|
|||
|
<span>${alarmTime}</span>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<span>学校名称:</span>
|
|||
|
<span>${station}</span>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<span>${blackType}:</span>
|
|||
|
<span>${blackName}/${idNumber}</span>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<span>位置:</span>
|
|||
|
<span>${address}</span>
|
|||
|
</p>
|
|||
|
`
|
|||
|
if(type!="noBroadCast"){
|
|||
|
div+=`<p>
|
|||
|
<button class="layui-btn layui-btn-normal broadCastMsgBtn">广播</button>
|
|||
|
<button class="layui-btn layui-btn-normal policeDetailBtn">详情</button>
|
|||
|
</p>`;
|
|||
|
}
|
|||
|
div+=`</div></div>`;
|
|||
|
return div;
|
|||
|
}
|
|||
|
|
|||
|
function showSchoolWarnAlarmInfo(arr){
|
|||
|
var div="";
|
|||
|
for(var i=0;i<arr.length;i++){
|
|||
|
div+=getAlarmPersonInfoDiv(arr[i],"noBroadCast")
|
|||
|
}
|
|||
|
$(".currentSchoolAlarmListAllBox").html(div);
|
|||
|
}
|
|||
|
|
|||
|
function emptyPoygon(){
|
|||
|
for(var i=0;i<polygonArr.length;i++){
|
|||
|
eventMap.removeLayer(polygonArr[i])
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function drawPolygon(){
|
|||
|
emptyPoygon();
|
|||
|
if(currentStation in skynetfenceObj){
|
|||
|
var redData=JSON.parse(skynetfenceObj[currentStation]["redData"]);//最里层
|
|||
|
var orangeData=JSON.parse(skynetfenceObj[currentStation]["orangeData"]);//中间成
|
|||
|
var yellowData=JSON.parse(skynetfenceObj[currentStation]["yellowData"]);//最外层
|
|||
|
var stationFence=JSON.parse(skynetfenceObj[currentStation]["stationFence"]);//学校
|
|||
|
|
|||
|
var oneArr=[];
|
|||
|
var twoArr=[];
|
|||
|
var threeArr=[];
|
|||
|
var fourArr=[];
|
|||
|
|
|||
|
for(var i=0;i<redData.length;i++){
|
|||
|
oneArr.push([redData[i]["latitude"],redData[i]["longitude"]]);
|
|||
|
}
|
|||
|
|
|||
|
for(var j=0;j<orangeData.length;j++){
|
|||
|
twoArr.push([orangeData[j]["latitude"],orangeData[j]["longitude"]]);
|
|||
|
}
|
|||
|
|
|||
|
for(var k=0;k<yellowData.length;k++){
|
|||
|
threeArr.push([yellowData[k]["latitude"],yellowData[k]["longitude"]]);
|
|||
|
}
|
|||
|
|
|||
|
for(var z=0;z<stationFence.length;z++){
|
|||
|
fourArr.push([stationFence[z]["latitude"],stationFence[z]["longitude"]]);
|
|||
|
}
|
|||
|
|
|||
|
var yellowArr=[[threeArr],[twoArr]];
|
|||
|
var orangeArr=[[twoArr],[oneArr]];
|
|||
|
var redArr=[[oneArr],[fourArr]];
|
|||
|
var stationArr=[[fourArr]];
|
|||
|
|
|||
|
var polygon_yellow = L.polygon(yellowArr, {weight:4,color: '#f4d81b',fillOpacity:"0.8"});
|
|||
|
var polygon_orange = L.polygon(orangeArr, {weight:4,color: '#ff9c00',fillOpacity:"0.7"});
|
|||
|
var polygon_red = L.polygon(redArr, {weight:4,color: '#ed4040',fillOpacity:"0.6"});
|
|||
|
var polygon_station = L.polygon(stationArr, {weight:4,color: '#21ecc8',fillOpacity:"0.3"});
|
|||
|
|
|||
|
eventMap.addLayer(polygon_yellow);
|
|||
|
eventMap.addLayer(polygon_orange);
|
|||
|
eventMap.addLayer(polygon_red);
|
|||
|
eventMap.addLayer(polygon_station);
|
|||
|
|
|||
|
polygonArr.push(polygon_yellow);
|
|||
|
polygonArr.push(polygon_orange);
|
|||
|
polygonArr.push(polygon_red);
|
|||
|
polygonArr.push(polygon_station);
|
|||
|
|
|||
|
// 将地图放大到多边形的位置
|
|||
|
eventMap.fitBounds(polygon_yellow.getBounds());
|
|||
|
//eventMap.fitBounds(polygon.getBounds());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
export {
|
|||
|
showPoliceAlarm,
|
|||
|
policeAlarmList,
|
|||
|
emptyPoygon
|
|||
|
}
|