main.js 3.89 KB
!function(){
	
	$('#exitBtn').on('click', function(){
		layer.confirm('确定要退出系统?', {
			btn : [ '退出', '取消' ],
			icon : 3,
			skin : 'layui-layer-cfm-delete'
		}, function(){
			//清除标记
			storage.removeItem('real_control_flag');
			//解绑事件
			$(document).unbind('ajaxSend', interceptPOST);
			layer.closeAll();
			window.location.href = '/pages/control/lineallot/allot.html';
		});
	});
	
	var gpsOff = 1000 * 60 * 5;
	
	var homeObject = {
		init:function(){
			//初始化主页
			var lineArray = _data.getLines();
			
			//3条线路1 tab 拆分
			var tabData = [], len = lineArray.length;
			
			var ids,names,subArray;
			for(var i = 0; i < len;){
				subArray = lineArray.slice(i, i += 3);
				ids = '';
				names = '';
				$.each(subArray, function(j, op){
					ids += op.id + '_';
					names += op.name + ',';
				});
				tabData.push({id: ids, name: names, array: subArray});
			}
			
			var homeHtmlStr = template('line_control_home_temp', {tabList: tabData});
			
			$('#tab_home').html(homeHtmlStr);
			//计算高度 40 页脚
			var ah = $('#top-tabs-wrap .tab-content').height() - 40 - 5;
			$('.card_wrap').css('height', ah / 3);
			
			//滚动条
			$('.card_wrap .table_wrap').slimscroll({
				height: '187px',
				alwaysVisible: true,
				opacity: .8
			});
			
			//SVG线路图
			$.each(lineArray, function(i, obj){
				_data.queryStationRoute( obj.lineCode, 'line_chart_' + obj.lineCode , drawSvg.initHomeSvg);
			});
			
		 	$('.line_chart .top .top-remark').slimscroll({
		 		height: '47px'
		 	});
		 	
		 	//模拟图GPS刷新事件
		 	$('#tab_home').on('gps_refresh', function(e, add, up){
		 		//现在先每次全量画
		 		var list = _data.findAllGps();
		 		_data.attachSchedulInfo(list);
		 		
		 		//drawSvg.drawVehicle(list);
		 		//按线路分组
		 		var listMap = groupByLine(list);
		 		
		 		for(var key in listMap){
					var htmlStr = template('home_table_temp', {list: listMap[key]});
					$('#tab_' + key).find('tbody').html(htmlStr);
					//更新badge
					$('#'+key+'_badge').text('( ' + listMap[key].length + ' )');
					
					drawSvg.clear();
					drawSvg.drawVehicle(listMap[key]);
				}
		 	});
		 	
		 	setTimeout(function(){
		 		//打开GPS定时刷新
		 		_data.startRefreshGpsTimer();
		 		//去掉loading
		 		$('.load-anim').fadeOut();
		 		$('menu.menu').show();
		 	}, 400);
		 	
		}
	}
	
setTimeout(function(){
	//生成头部选项卡
	var topTabs = '', tabPanels = '';
	$.each(_data.getLines(), function(i, line){
		topTabs += '<li ><a data-id="'+line.lineCode+'" href="#tab_line_'+line.lineCode+'" data-toggle="tab" '+
					'aria-expanded="false"> '+line.name+'<span>(<zz>0</zz>,<zz>0</zz> <zz>托管</zz>)</span> </a></li>';
		
		tabPanels += '<div class="tab-pane fade tab_line" data-id="'+line.lineCode+'" id="tab_line_'+line.lineCode+'"></div>';
		
	});
	$('#top-tabs-wrap .nav-tabs').append(topTabs);
	$('#top-tabs-wrap .tab-content').append(tabPanels);
	
	//加载地图页数据
	$('#tab_map').load('/pages/mapmonitor/real/real.html');
	
	//初始化单线路调度页面
	_alone.init(function(){
		//初始化主页
		homeObject.init();
	});
	
	//监控模式下,拦截post请求
	if(operationMode == 0){
		$(document).on('ajaxSend', interceptPOST);
	}
}, 200)

	function interceptPOST(e, xhr, t){
		if(t && (t.method == 'POST' || t.type == 'POST')){
			console.log(e, xhr, t);
			xhr.abort();
			layer.msg('监控模式!',{offset: 'ct', shift : 6});
		}
	}

	function gpslistToMap(gpslist){
		var map = {}
		for(var i = 0, gps; gps = gpslist[i++];){
			map[gps.deviceId] = gps;
		}
		return map;
	}
	
	function groupByLine(gpsArray){
		var rs = {}, gps;
		$.each(gpsArray, function(){
			key = this.lineId + '_' + this.upDown;
			if(!rs[key])
				rs[key] = [];
		
			rs[key].push(this);
		});
		return rs;
	}
}();