187 lines
5.9 KiB
JavaScript
187 lines
5.9 KiB
JavaScript
|
import { stationurl,brigade } from "../../../../public/js/url.js";
|
|||
|
import { getCurrData } from "../../../../public/js/timestamp.js";
|
|||
|
import { layuiObj } from "../index.js";
|
|||
|
import {openEventHandle} from "../popEventHandle.js";
|
|||
|
import { alarmManageInfo } from "../popEventHandle.js";
|
|||
|
import { openMoveDeviceVideo } from "../openMoveDeviceVideo.js";
|
|||
|
import { deviceHash } from "../../api/moveDeviceWebsocket.js";
|
|||
|
var alarmEventList=[];
|
|||
|
function getAlarmEventList(){
|
|||
|
var data={
|
|||
|
"brigade":brigade,
|
|||
|
"pagesize":2000,
|
|||
|
"pageindex":0,
|
|||
|
"start":getCurrData()+" 00:00:00",
|
|||
|
"end":getCurrData()+" 23:59:59",
|
|||
|
"state":"close"
|
|||
|
}
|
|||
|
var loginurl=stationurl+"/firectrl/client/sensor/alarm_event/getlist_diff";
|
|||
|
return axios({
|
|||
|
method: 'post',
|
|||
|
url:loginurl,
|
|||
|
data: data
|
|||
|
})
|
|||
|
}
|
|||
|
function showAlarmEventList(){
|
|||
|
alarmEventList=[];
|
|||
|
getAlarmEventList().then(res=>{
|
|||
|
var code=res.data.code;
|
|||
|
if(code==0){
|
|||
|
var data=res.data.data;
|
|||
|
for(var i=0;i<data.length;i++){
|
|||
|
alarmEventList.unshift(data[i])
|
|||
|
}
|
|||
|
}
|
|||
|
alarmEventListTable();
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
function alarmEventListTable(){
|
|||
|
layuiObj.layuitable.render({
|
|||
|
elem:'#eventUpload',
|
|||
|
data:alarmEventList,
|
|||
|
cols: [[
|
|||
|
{field:'station', width:"15%", title: '预警点'},
|
|||
|
{field:'alarmType', width:"15%", title: '预警类型'},
|
|||
|
{field:'timestamp', width:"25%", title: '预警时间'},
|
|||
|
{field:'state', width:"25%", title: '状态',templet : function(data) {// 替换数据
|
|||
|
var state=data["state"];
|
|||
|
switch(state){
|
|||
|
case "new"://新事件
|
|||
|
var src=`./pages/cmddispatch/image/alarmEventNew.png`;
|
|||
|
break;
|
|||
|
case "processing"://处置中
|
|||
|
var src=`./pages/cmddispatch/image/alarmEventProcessing.png`;
|
|||
|
break;
|
|||
|
case "processed"://已关闭
|
|||
|
var src=`./pages/cmddispatch/image/alarmEventProcessed.png`;
|
|||
|
break;
|
|||
|
default:
|
|||
|
var src=`./pages/cmddispatch/image/alarmEventNew.png`;
|
|||
|
break;
|
|||
|
}
|
|||
|
return `<img src=${src}>`
|
|||
|
}},
|
|||
|
{field:'opear', width:"20%", title: '操作',toolbar: '#eventUploadScript'},
|
|||
|
]],
|
|||
|
limit:Number.MAX_VALUE // 数据表格默认全部显示
|
|||
|
});
|
|||
|
|
|||
|
//监听行工具事件
|
|||
|
layuiObj.layuitable.on('tool(eventUpload)',function(obj){
|
|||
|
var data=obj["data"];
|
|||
|
showAlarmEventImg(data)
|
|||
|
})
|
|||
|
}
|
|||
|
var alarmEventIndex=null;
|
|||
|
var currentEventData=null;
|
|||
|
function showAlarmEventImg(data){
|
|||
|
currentEventData=data;
|
|||
|
var eventDataJson=data.eventData;
|
|||
|
var eventData=JSON.parse(eventDataJson);
|
|||
|
var pic=eventData["pic"];
|
|||
|
alarmEventIndex=layuiObj.layer.open({
|
|||
|
type: 1,
|
|||
|
title: '事件照片', //不显示标题栏
|
|||
|
offset: '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:220px;overflow-y:auto;">
|
|||
|
<img src='${pic}'>
|
|||
|
<div class="alarmEventInfoImg">
|
|||
|
<p>报警信息</p>
|
|||
|
<p><span>预警点:</span><span>${data["station"]}</span></p>
|
|||
|
<p><span>预警类型:</span><span>${data["alarmType"]}</span></p>
|
|||
|
<p><span>预警时间:</span><span>${data["timestamp"]}</span></p>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="alarmHandleBtnBox">
|
|||
|
<button class="layui-btn layui-btn-normal alarmHandleBtn">处置</button>
|
|||
|
<button class="layui-btn layui-btn-normal alarmHandleEndBtn">结束</button>
|
|||
|
<button class="layui-btn layui-btn-normal alarmHandleCloseBtn">关闭</button>
|
|||
|
</div>
|
|||
|
|
|||
|
</div>`,
|
|||
|
success: function(layero){
|
|||
|
eventHandlePage();
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
function closeAlarmEvent(){
|
|||
|
layuiObj.layer.close(alarmEventIndex);
|
|||
|
alarmEventIndex=null;
|
|||
|
}
|
|||
|
|
|||
|
function eventHandlePage(){
|
|||
|
$(".alarmHandleBtn").on('click',function(){
|
|||
|
handleIotHandle();
|
|||
|
//打开视频
|
|||
|
createMoveDeviceVideoData();
|
|||
|
//更新任务状态
|
|||
|
crateUpdateEventAlarmData("processing");
|
|||
|
})
|
|||
|
$(".alarmHandleEndBtn").on('click',function(){
|
|||
|
crateUpdateEventAlarmData("processed")
|
|||
|
})
|
|||
|
$(".alarmHandleCloseBtn").on('click',function(){
|
|||
|
crateUpdateEventAlarmData("close")
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
function crateUpdateEventAlarmData(state){
|
|||
|
updateEventAlarmState(state).then(res=>{
|
|||
|
var code=res.data.code;
|
|||
|
if(code==0){//再去刷新table
|
|||
|
showAlarmEventList();
|
|||
|
}
|
|||
|
})
|
|||
|
closeAlarmEvent();
|
|||
|
}
|
|||
|
|
|||
|
function updateEventAlarmState(state){
|
|||
|
var data={
|
|||
|
"eventId":currentEventData["eventId"],
|
|||
|
"newState":state
|
|||
|
}
|
|||
|
var loginurl=stationurl+"/firectrl/client/sensor/alarm_event/update";
|
|||
|
return axios({
|
|||
|
method: 'post',
|
|||
|
url:loginurl,
|
|||
|
data: data
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
function createMoveDeviceVideoData(){
|
|||
|
var station=currentEventData["station"];
|
|||
|
var temp=[];
|
|||
|
for(var d in deviceHash){
|
|||
|
if(deviceHash[d]["station"]==station){
|
|||
|
temp.push(deviceHash[d]);
|
|||
|
}
|
|||
|
}
|
|||
|
openMoveDeviceVideo(temp);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
function handleIotHandle(){
|
|||
|
alarmManageInfo["longitude"]=currentEventData["longitude"];
|
|||
|
alarmManageInfo["latitude"]=currentEventData["latitude"];
|
|||
|
alarmManageInfo["deviceid"]=currentEventData["deviceid"];
|
|||
|
alarmManageInfo["showname"]=currentEventData["address"];
|
|||
|
alarmManageInfo["alarminfo"]=currentEventData
|
|||
|
openEventHandle();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
export {
|
|||
|
showAlarmEventList,
|
|||
|
alarmEventListTable,
|
|||
|
alarmEventList,
|
|||
|
currentEventData
|
|||
|
}
|