var warnSet; var warnList; var audio = new Audio(); //是否与页面发生交互 var tag = false; $(function(){ if(TEST_TAG){ var set = {"enable": 0, "keepTime": 60, "repeatTime": 1800, "alarm": "0,1,0,0,1,1,1", "period": "0", "snap": "0", "smsText": "无", "phontText": "无", "phoneNo": "180,181,182,183"}; warnSet = set; var list = [ {"sn":"0", "id":"01", "name":"name0", "time":"20200306101122", "msg":"告警内容0,告警内容0,告警内容0,告警内容0,告警内容0,告警内容0,告警内容0,告警内容0,告警内容0", "flag":"0", "processTime":"", "note":""}, {"sn":"1", "id":"1", "name":"name1", "time":"20200306123344", "msg":"告警内容1", "flag":"0", "processTime":"", "note":""}, {"sn":"2", "id":"2", "name":"name2", "time":"20200306140509", "msg":"告警内容2", "flag":"0", "processTime":"", "note":""}, {"sn":"3", "id":"3", "name":"name3", "time":"20200306162536", "msg":"告警内容3", "flag":"0", "processTime":"", "note":""} ]; warnList = list; setTimeout( triggerAlarm,3000); // triggerAlarm(); }else{ //获取告警设置 queryWarnSet(); //查询未处理的告警信息,延迟查询 setTimeout( queryWarnFlag,2000); // queryWarnFlag(); //定时器,每5秒查询一次;查询设备信息并渲染 setInterval(queryWarnFlag,5000); } //弹出框操作 $('.prompt_sure,.prompt_cancel').click(function () { audio.pause(); $('.mask').addClass('hide'); }); }); //获取告警设置 function queryWarnSet() { $.ajaxSettings.async = false; $.get("./cgi-bin/sys-warn/query", function (data, status) { if ("success" == status) { warnSet = data; } else { window.parent.notify("数据查询出错,请重新操作!!"); } }, "json"); }; //查询未处理的告警信息 function queryWarnFlag() { //查看警告设置是否启用:0-启用,1-未启用 if(warnSet.enable=="1"){ return ; } $.ajaxSettings.async = false; $.get("./cgi-bin/warn-list/query-new", function (data, status) { if ("success" == status) { warnList = data; triggerAlarm(); } else { window.parent.notify("数据查询出错,请重新操作!!"); } }, "json"); } //警告处理 function triggerAlarm(){ //查看是否存在警告信息 if(warnList && warnList.length>0){ var list = eval(localStorage.getItem("WARN_LIST")); // console.log(list); // console.log(warnList); if(list && list.length>0){ //遍历警告集合 var tag; var msg = ""; var time; $.each(warnList, function (i, item) { tag = false; $.each(list, function (j, warn) { //查看警告是否属于重复告警,相同tag=true if(item.id==warn.id && item.time==warn.time){ tag = true; return ; } }); //不属于重复告警,tag=false if(!tag){ var date = new Date(); time = item.time.slice(0,4) +"-"+item.time.slice(4,6) +"-"+item.time.slice(6,8) +" "+item.time.slice(8,10) +":"+item.time.slice(10,12) +":"+item.time.slice(12,14); //查看警告是否属于告警时段 if(warnSet.period == "1"){ if(date.getHours()>=8 && date.getHours()<20){ msg += "
" +"

发现一条新的告警,请及时处理:

告警时间:"+time+"

设备名称:"+item.name +"

告警内容:"+item.msg+"


"; } }else if(warnSet.period == "2"){ if(date.getHours()<8 && date.getHours()>=20){ msg += "
" +"

发现一条新的告警,请及时处理:

告警时间:"+time+"

设备名称:"+item.name +"

告警内容:"+item.msg+"


"; } }else { msg += "
" +"

发现一条新的告警,请及时处理:

告警时间:"+time+"

设备名称:"+item.name +"

告警内容:"+item.msg+"


"; } } }); if(msg){ warnNotify(msg); } }else{ warnNotify("您当前有"+warnList.length+"条告警未处理,请您及时处理!"); } //将新的缓存信息存入localStorage localStorage.setItem("WARN_LIST", JSON.stringify(warnList)); } } /** * @param msg 弹窗内容 * @param time 自动关闭时间,预警时间 */ function warnNotify(msg) { $('.prompt_text').html(msg); $('.mask').removeClass('hide'); if(tag){ //与页面发生交互后调用音频,无交互会报错 audioPaly(); } //延迟关闭 // setTimeout(function () { // $('.mask').addClass('hide'); // },time); }; audioPaly = function() { audio.src = "audio/warn-3263.wav"; audio.loop = true; audio.playbackRate = 0.5; audio.play(); } interactTag = function() { tag = true; // console.log(tag); } //解除声光报警 function warnClear() { if (confirm('是否解除声光告警?')){ $.get("./cgi-bin/warn-list/clear", function (data, status) { }, "json"); window.parent.notify("已成功解除声光告警!"); } return false; }