一段javascript告警回放代码

/**
 * 描述 :
 * 这里是实现播放,快进等功能的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");
};


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值