369 lines
13 KiB
JavaScript
369 lines
13 KiB
JavaScript
import { layuiObj,loginInfo } from "./index.js";
|
||
import { getCurrData } from "../../../public/js/timestamp.js";
|
||
import { getSchoolOptions } from "./schoolSearch.js";
|
||
import { stationurl,movedeviceurl,brigade } from "../../../public/js/url.js";
|
||
import { deviceHash } from "../api/moveDeviceWebsocket.js";
|
||
import { notifyDetailList } from "./popNotifyDetail.js";
|
||
let notifyListMore=[];
|
||
let earlyWarningHistoryList=[];
|
||
let imgUrlArr=[];
|
||
function openAlarmHistory(){
|
||
layuiObj["layer"].open({
|
||
type: 1,
|
||
title: "事件查询", //不显示标题栏
|
||
// closeBtn: false,
|
||
area: ['1260px', '560px'],
|
||
id: new Date().getTime(), //设定一个id,防止重复弹出
|
||
btnAlign: 'c',
|
||
resize:false,
|
||
// moveType: 0, //拖拽模式,0或者1
|
||
content:`<div class="popintellEarlyWarningInfo">
|
||
<div class="intellEarlyWarningInfo">
|
||
<div class="intellEarlyWarningInfoContent">
|
||
<form class="layui-form" action="" id="intellEarlyWarningHistoryForm" lay-filter="intellEarlyWarningHistoryForm" >
|
||
<div class="layui-input-inline">
|
||
<select name="interest" lay-filter="intellEarlyWarningTypeSelect" id="intellEarlyWarningTypeSelect" lay-search>
|
||
<option value=1>报警事件</option>
|
||
<option value=2>通知事件</option>
|
||
<option value=3>拍照事件</option>
|
||
</select>
|
||
</div>
|
||
<div class="layui-input-inline">
|
||
<select name="interest" lay-filter="intellEarlyWarningSchoolSelect" id="intellEarlyWarningSchoolSelect" lay-search></select>
|
||
</div>
|
||
<div class="layui-input-inline">
|
||
<input type="text" class="layui-input" id="intellEarlyWarningHistoryStart" placeholder="请输入开始时间" value='${getCurrData()} 00:00:00'>
|
||
</div>
|
||
<div class="layui-input-inline">
|
||
<input type="text" class="layui-input" id="intellEarlyWarningHistoryEnd" placeholder="请输入结束时间" value='${getCurrData()} 23:59:59'>
|
||
</div>
|
||
<div class="layui-input-inline">
|
||
<button class="layui-btn" id="intellEarlyWarningHistoryBtn" style="height:38px !important;line-height:38px !important;">查询</button>
|
||
</div>
|
||
</form>
|
||
<div class="intellEarlyWarningList">
|
||
<table class="layui-hide" id="intellEarlyWarningTable" lay-filter="intellEarlyWarningTable"></table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>`,
|
||
success:function(){
|
||
renderClockFrom();
|
||
intellEarlyWarningSelectEvent();
|
||
}
|
||
})
|
||
}
|
||
|
||
function renderClockFrom(){
|
||
$("#intellEarlyWarningSchoolSelect").html(getSchoolOptions());
|
||
layuiObj.layuiForm.render("select","intellEarlyWarningHistoryForm");
|
||
$("#intellEarlyWarningSchoolSelect").siblings("div.layui-form-select").find("div.layui-select-title").find("input").attr("onfocus","this.select()");
|
||
layuiObj.laydate.render({
|
||
elem: '#intellEarlyWarningHistoryStart',
|
||
type: 'datetime',
|
||
});
|
||
layuiObj.laydate.render({
|
||
elem: '#intellEarlyWarningHistoryEnd',
|
||
type: 'datetime',
|
||
});
|
||
}
|
||
|
||
function intellEarlyWarningSelectEvent(){
|
||
$("#intellEarlyWarningHistoryBtn").off('')
|
||
$("#intellEarlyWarningHistoryBtn").on('click',(e)=>{
|
||
var start=$("#intellEarlyWarningHistoryStart").val();
|
||
var end=$("#intellEarlyWarningHistoryEnd").val();
|
||
var station=$("#intellEarlyWarningSchoolSelect").find("option:selected").val();
|
||
var type=$("#intellEarlyWarningTypeSelect").find("option:selected").val();
|
||
var data={
|
||
"brigade":brigade,
|
||
"start":start,
|
||
"end":end
|
||
}
|
||
if(station!="000"){
|
||
data["station"]=station
|
||
}
|
||
$(".intellEarlyWarningList").removeClass("commonfile");
|
||
switch(type){
|
||
case "1":
|
||
selectAlarmByOrg(data);
|
||
break;
|
||
case "2":
|
||
getNotifyCountMore(data);
|
||
break;
|
||
case "3":
|
||
$(".intellEarlyWarningList").addClass("commonfile")
|
||
selectCommonfile(data);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
return false;
|
||
})
|
||
}
|
||
|
||
function selectAlarmByOrg(data){
|
||
alarmByorgGetlist(data).then(res=>{
|
||
earlyWarningHistoryList=[];
|
||
var code=res["data"]["code"];
|
||
if(code==0){
|
||
var data=res["data"]["data"];
|
||
earlyWarningHistoryList=data;
|
||
if(earlyWarningHistoryList.length>0){
|
||
earlyWarningHistoryList.reverse();
|
||
}
|
||
}
|
||
showAlarmByorgTable();
|
||
})
|
||
}
|
||
|
||
function alarmByorgGetlist(data){
|
||
var alarmOrgUrl=movedeviceurl+"/mdev/alarm/byorg/getlist";
|
||
return axios({
|
||
method: 'post',
|
||
url:alarmOrgUrl,
|
||
data:data
|
||
})
|
||
}
|
||
|
||
//获取通知列表
|
||
function getNotifyCountMore(reqData){
|
||
reqData["sender"]=loginInfo["user_name"];
|
||
notifyListMore=[];
|
||
let nurlCount=movedeviceurl+"/mdev/notice/getcount";
|
||
axios({
|
||
method: 'post',
|
||
url:nurlCount,
|
||
data:reqData
|
||
}).then(res => {
|
||
var code=res["data"]["code"];
|
||
if(code==0){
|
||
var data=res["data"]["data"];
|
||
var count=data["count"];
|
||
if(count!=0){
|
||
var reqList=getPageReq(reqData,count);
|
||
//获取列表
|
||
var pArr=reqList.map((item)=>{
|
||
reqData=item;
|
||
let nurlList=movedeviceurl+"/mdev/notice/getlist";
|
||
return axios({
|
||
method: 'post',
|
||
url:nurlList,
|
||
data:reqData
|
||
})
|
||
})
|
||
Promise.all(pArr).then((result) => {
|
||
console.log(result);
|
||
for(var i=0;i<result.length;i++){
|
||
var code=result[i]["data"]["code"];
|
||
if(code==0){
|
||
var data=result[i]["data"]["data"];
|
||
for(var j=0;j<data.length;j++){
|
||
var receiver=data[j]["receiver"];
|
||
if(receiver in deviceHash){
|
||
data[j]["showname"]=deviceHash[receiver]["showname"]
|
||
|
||
}else{
|
||
data[j]["showname"]="/";
|
||
}
|
||
data[j]["readtime"]="/";
|
||
notifyListMore.unshift(data[j]);
|
||
}
|
||
}
|
||
}
|
||
selectNotifyMoreStatus();
|
||
})
|
||
}else{
|
||
alarmEventListTable([])
|
||
}
|
||
}
|
||
})
|
||
}
|
||
|
||
|
||
function selectNotifyMoreStatus(){
|
||
let notifyStatus=[];
|
||
notifyListMore.map((item)=>{
|
||
var reqData={
|
||
"noticeid":item.noticeid
|
||
}
|
||
let nsurl=movedeviceurl+"/mdev/notice/getstatus";
|
||
notifyStatus.push( axios({
|
||
method: 'post',
|
||
url:nsurl,
|
||
data:reqData
|
||
}));
|
||
})
|
||
Promise.all(notifyStatus).then(res=>{
|
||
for(var i =0;i<res.length;i++){
|
||
var data=res[i]["data"]["data"];
|
||
if(data!=null){
|
||
for(var j=0;j<data.length;j++){
|
||
var deviceid=data[j]["deviceid"];
|
||
var noticeid=data[j]["noticeid"];
|
||
for(var k=0;k<notifyListMore.length;k++){
|
||
if((noticeid==notifyListMore[k]["noticeid"])&&(deviceid==notifyListMore[k]["receiver"])){
|
||
notifyListMore[k]={...notifyListMore[k],...data[j]}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var readImg="<img src='./pages/cmddispatch/image/notifyRead.png' class='notifyImg'>";
|
||
var unreadImg="<img src='./pages/cmddispatch/image/notifyUnRead.png' class='notifyImg'>";
|
||
for(var i=0;i<notifyListMore.length;i++){
|
||
if("state" in notifyListMore[i]){
|
||
var status=notifyListMore[i]["state"];
|
||
}else{
|
||
var status="unread";
|
||
}
|
||
if(status!="read"){
|
||
notifyListMore[i]["img"]=unreadImg;
|
||
notifyListMore[i]["statusText"]="未读";
|
||
}else{
|
||
notifyListMore[i]["img"]=readImg;
|
||
notifyListMore[i]["statusText"]="已读";
|
||
}
|
||
}
|
||
alarmEventListTable(notifyListMore);
|
||
})
|
||
}
|
||
|
||
function showAlarmByorgTable(){
|
||
layuiObj.layuitable.render({
|
||
elem:'#intellEarlyWarningTable',
|
||
data:earlyWarningHistoryList,
|
||
toolbar: '#toolbarDemo', // 重点,可默认,也可自己设置按钮
|
||
defaultToolbar: ['filter', 'exports'], // exports为导出按钮
|
||
cols: [[
|
||
{field:'station', width:"20%", title: '学校',templet : function(data) {// 替换数据
|
||
var deviceid=data["deviceid"];
|
||
if(deviceid in deviceHash){
|
||
return `${deviceHash[deviceid]["station"]}`;
|
||
}
|
||
}},
|
||
{field:'address', width:"20%", title: '地址'},
|
||
{field:'timestamp', width:"20%", title: '时间'},
|
||
{field:'deviceid', width:"20%", title: '名称',templet : function(data) {// 替换数据
|
||
var deviceid=data["deviceid"];
|
||
if(deviceid in deviceHash){
|
||
return `${deviceHash[deviceid]["showname"]}`;
|
||
}
|
||
}},
|
||
{field:'deviceid', width:"20%", title: '设备号'},
|
||
]],
|
||
limit:Number.MAX_VALUE // 数据表格默认全部显示
|
||
});
|
||
}
|
||
|
||
function alarmEventListTable(eventTemp){
|
||
|
||
layuiObj.layuitable.render({
|
||
elem:'#intellEarlyWarningTable',
|
||
data:eventTemp,
|
||
toolbar: '#toolbarDemo', // 重点,可默认,也可自己设置按钮
|
||
defaultToolbar: ['filter', 'exports'], // exports为导出按钮
|
||
cols: [[
|
||
{field:'title', width:"12%", title: '标题',event:"showNotifyDetail"},
|
||
{field:'content', width:"22%", title: '内容'},
|
||
{field:'timestamp', width:"18%", title: '下发时间',sort:true},
|
||
{field:'showname', width:"14%", title: '接受者'},
|
||
{field:'statusText', width:"10%", title: '消息状态'},
|
||
{field:'sender', width:"14%", title: '发送者'},
|
||
{field:'edit', width:"10%", title: '操作',event:'handle',templet:function(data) {
|
||
return `<a class="layui-btn">详情</a>`
|
||
}
|
||
},
|
||
]],
|
||
limit:Number.MAX_VALUE // 数据表格默认全部显示
|
||
});
|
||
listenEarlyWarningTable();
|
||
}
|
||
|
||
|
||
function listenEarlyWarningTable(){
|
||
|
||
layuiObj.layuitable.on('tool(intellEarlyWarningTable)', function(obj){
|
||
var event=obj["event"];
|
||
var data = obj.data;
|
||
switch(event){
|
||
case "handle":
|
||
notifyDetailList(data)
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
})
|
||
}
|
||
//分页请求
|
||
function getPageReq(reqOrgData,count){
|
||
let number=1000;
|
||
let page=Math.ceil(count/number);
|
||
let reqList=[];
|
||
for(let i=0;i<page;i++){
|
||
let reqData=JSON.parse(JSON.stringify(reqOrgData));
|
||
reqData["pagesize"]=number;
|
||
reqData["pageindex"]=i;
|
||
reqList.push(reqData);
|
||
}
|
||
return reqList;
|
||
}
|
||
|
||
|
||
function selectCommonfile(data){
|
||
selectCommonfileGetlist(data).then(res=>{
|
||
var code=res["data"]["code"];
|
||
if(code==0){
|
||
var data=res["data"]["data"];
|
||
showCommonfileTable(data)
|
||
}
|
||
})
|
||
}
|
||
|
||
function selectCommonfileGetlist(data){
|
||
var commonfileUrl=stationurl+"/firectrl/school/commonfile/getlist";
|
||
return axios({
|
||
method: 'post',
|
||
url:commonfileUrl,
|
||
data:data
|
||
})
|
||
}
|
||
|
||
|
||
function showCommonfileTable(data){
|
||
console.log(data);
|
||
imgUrlArr=[];
|
||
layuiObj.layuitable.render({
|
||
elem:'#intellEarlyWarningTable',
|
||
data:data,
|
||
cols: [[
|
||
{field:'comment', width:"20%", title: '标题'},
|
||
{field:'station', width:"20%", title: '学校'},
|
||
{field:'creator', width:"20%", title: '使用者'},
|
||
{field:'timestamp', width:"20%", title: '上传时间'},
|
||
{field:'imageUrls', width:"20%", title: '文件',templet:function(data) {
|
||
return `${getImageUrl(data)}`
|
||
}
|
||
},
|
||
]],
|
||
limit:Number.MAX_VALUE // 数据表格默认全部显示
|
||
});
|
||
for(var i=0;i<imgUrlArr.length;i++){
|
||
new Viewer(document.getElementById(`hiddenDangerImg${imgUrlArr[i]}`),{
|
||
url: 'data-original'
|
||
});
|
||
}
|
||
}
|
||
|
||
function getImageUrl(item){
|
||
var imgUrl=JSON.parse(item["imageUrls"]);
|
||
var imgs="";
|
||
for(var i=0;i<imgUrl.length;i++){
|
||
var url=stationurl+imgUrl[i];
|
||
imgUrlArr.push(url)
|
||
imgs+=`<div class="schoolStyle_pop_img commonFile"><img src="${url}" id='hiddenDangerImg${url}'></div>`
|
||
}
|
||
return imgs;
|
||
}
|
||
|
||
export {openAlarmHistory} |