您的位置:首页 > Web前端 > JavaScript

一段javascript告警回放代码

2016-07-27 14:14 579 查看
/**
* 描述 :
* 这里是实现播放,快进等功能的js文件
*
* */

var replaySpeed = 1000 * 5;//播放速度 50秒
var alarmReplayTimer = null; // 定义播放定期器
var alarmBackUpTimer = null; // 定义回退播放器
var flag = false; // 播放开关

//向前播放的action地址
var alarmForwardUrl = getRootPath() + "/web/alarm/alarmReplayController/alarmForward.do";

//向后播放的action地址
var alarmBackupUrl = getRootPath() + "/web/alarm/alarmReplayController/alarmBackup.do";

var startOrPause = function() { // (开始/暂停 ) 播放
//修改 开始/暂停 播放 按钮的值
var startOrPauseButton = document.getElementById("startOrPause");
var startOrPauseButtonValue = startOrPauseButton.innerHTML;
if (startOrPauseButtonValue == "开始") {
updateTime();
startOrPauseButton.innerHTML = "暂停";
} else {
startOrPauseButton.innerHTML = "开始";
}
//开始播放或暂停播放
if (!flag) { // 未启动
flag = true;
alarmReplayTimer = setInterval("forward()", replaySpeed); //定时器定时刷新
} else { // 已启动
flag = false;
clearTimer();//停止播放
}
}
var forward = function() { // 向前
var currentTime = document.getElementById("currentTime").value;
var currentEndTime = document.getElementById("currentEndTime").value;
var compareDate = isBigger(currentTime,currentEndTime);
if(compareDate==0){
$.ajax( {
url:alarmForwardUrl,
data:{
currentTime:currentTime,
currentEndTime:currentEndTime
},
type:'post',
cache:false,
dataType:'json',
success:function(data) {
var time = data[0];
var alarmList = data[1]; //告警对象集合
initTableHtml(alarmList);
// console.info(alarmList);
if(time!=null){
document.getElementById("currentTime").value = time;
}else{
document.getElementById("currentTime").value = document.getElementById("currentEndTime").value;
}

//			 $("#alarmRelay").html(tableContent);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("播放异常");
},

})
}else if(compareDate==1){
alert("播放完成");
clearTimer();
}else if(compareDate == null){
alert("播放异常");
}

}

var stop = function(){ // 停止
clearTimer();
}

var backward = function() { // 向后
var currentTime = document.getElementById("currentTime").value;
var currentStartTime = document.getElementById("currentStartTime").value;
var compareDate = isBigger(currentStartTime,currentTime);
if(compareDate==0){
$.ajax( {
url:alarmBackupUrl,
data:{
currentTime:currentTime,
currentStartTime:currentStartTime
},
type:'post',
cache:false,
dataType:'json',
success:function(data) {
var time = data[0];
var alarmList = data[1]; //告警对象集合
initTableHtml(alarmList);
if(time!=null){
document.getElementById("currentTime").value = time;
}else{
document.getElementById("currentTime").value = document.getElementById("currentStartTime").value;
}
//			 document.getElementById("currentTime").value = time;
//			 $("#alarmRelay").html(tableContent);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("播放异常");
},

})
}else if(compareDate==1){
alert("播放完成");
clearTimer();
}else if(compareDate == null){
alert("播放异常");
}

}

var lastTime = function() { // 上一次
clearTimer();
backward();
}

var nextTime = function() { // 下一次
clearTimer();
forward();
}

var clearAlarmReplayTimer = function(){ // 清除向前定时器
if(alarmReplayTimer!=null){
clearTimeout(alarmReplayTimer); //清除下一次播放定时器
alarmReplayTimer = null;
}
}

var clearAlarmBackUpTimer = function(){ // 清除向后定时器
if(alarmBackUpTimer!=null){
clearTimeout(alarmBackUpTimer); //清除上一次播放定时器
alarmBackUpTimer = null;
}

}

var backSpace = function() { // 回退
// speedUp();
clearTimer();
alarmBackUpTimer = setInterval("backward()", replaySpeed); //定时器定时刷新
}

var fastForward = function() { // 快进
// speedUp();
clearTimer();
alarmReplayTimer = setInterval("forward()", replaySpeed); //定时器定时刷新

}

var clearTimer = function() { // 清除定时器
clearAlarmReplayTimer();
clearAlarmBackUpTimer();
document.getElementById("startOrPause").innerHTML = "开始";

}

var speedUp = function(){
//加速
if(replaySpeed == 1000 * 5){
replaySpeed = 1000 * 3;
}else  if(replaySpeed == 1000 * 3){
replaySpeed = 1000 * 1;
}else  if(replaySpeed == 1000 * 1){
replaySpeed = 100 * 5;
}else  if(replaySpeed == 100 * 5){
replaySpeed = 100 * 3;
}else  if(replaySpeed == 100 * 3){
replaySpeed = 100 * 1;
}
}
var assignSpeed = function(){ //指定速度倍数
//指定倍数
var assignSpeedSelect = document.getElementById("assignSpeedSelect").value;
if(assignSpeedSelect == "1"){
replaySpeed = 1000 * 5;
}else if(assignSpeedSelect == "2"){
replaySpeed = 1000 * 3;
}else if(assignSpeedSelect == "5"){
replaySpeed = 1000 * 1;
}else if(assignSpeedSelect == "10"){
replaySpeed = 100 * 5;
}else if(assignSpeedSelect == "20"){
replaySpeed = 100 * 3;
}else if(assignSpeedSelect == "50"){
replaySpeed = 100 * 1;
}
//重启定时器
if(alarmReplayTimer!=null){
clearAlarmReplayTimer();
alarmReplayTimer = setInterval("forward()", replaySpeed); //定时器定时刷新

}
if(alarmBackUpTimer!=null){
clearAlarmBackUpTimer();
alarmBackUpTimer = setInterval("backward()", replaySpeed); //定时器定时刷新
}

}

function getRootPath() { //得到项目路径
var strFullPath = window.document.location.href;
var strPath = window.document.location.pathname;
var pos = strFullPath.indexOf(strPath);
var prePath = strFullPath.substring(0, pos);
var postPath = strPath.substring(0, strPath.substr(1).indexOf('/') + 1);
var rootPath = prePath + postPath;
return (rootPath);
}
$(window).load(function() {
(function($){
$(document).ready(function(){
jeDate({
dateCell:'#currentStartTime',
format:'YYYY-MM-DD hh:mm:ss',
isTime:true,
minDate:'2014-09-19 00:00:00'
}),
jeDate({
dateCell:'#currentEndTime',
format:'YYYY-MM-DD hh:mm:ss',
isTime:true,
minDate:'2014-09-19 00:00:00'
})
});

})(jQuery);

})
var updateTime = function(){
var currentStartTime = document.getElementById("currentStartTime");
var currentTime = document.getElementById("currentTime");
currentTime.value = currentStartTime.value;
}

/*表格内容*/
function initTableHtml(arr){
if(arr==null) return ;
console.info(arr);
var str = '',strNull = '<td><div></div></td>';
var getRowHtml = function(alarmList){
var subs = '';
subs += '<td player="first"><div><input type="checkbox" class="select" value="'+ alarmList.deviceId +'"</div></td>';
if(alarmList.alarmLevel) subs += '<td><div>' + alarmList.alarmLevel + '</div></td>';else subs += strNull;
if(alarmList.alarmType) subs += '<td><div>' + alarmList.alarmType + '</div></td>';else subs += strNull;
if(alarmList.deviceName) subs += '<td><div>' + alarmList.deviceName + '</div></td>';else subs += strNull;
if(alarmList.ip) subs += '<td><div>' + alarmList.ip + '</div></td>';else subs += strNull;
if(alarmList.area) subs += '<td><div>' + alarmList.area + '</div></td>';else subs += strNull;
if(alarmList.ceateTime) subs += '<td><div>' + getLocalTime(alarmList.ceateTime)+ '</div></td>';else subs += strNull;
if(alarmList.lastUpdateTime) subs += '<td><div>' + getLocalTime(alarmList.lastUpdateTime) + '</div></td>';else subs += strNull;
if(alarmList.alarmNumber) subs += '<td><div>' + alarmList.alarmNumber + '</div></td>';else subs += strNull;
if(alarmList.status) subs += '<td><div>' + alarmList.status + '</div></td>';else subs += strNull;
return subs;
};
var len = arr.length;
for(var i=0;i<len;i++){
str += '<tr class="id'+ arr[i].deviceId +'">';
str += getRowHtml(arr[i]);
str += '</tr>';
}
var stationContent = document.querySelector(".stationContent");
stationContent.innerHTML = str;
document.querySelector(".selectAll").checked = false; //取消表头的多
}

function getLocalTime(nS) {
return new Date(nS).Format("yyyy-MM-dd HH:mm:ss");
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: