home.js
2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
var _home = (function() {
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(800);
$('menu.menu').show();
}, 400);
setTimeout(function() {
// 提示文本
var promptFlag = storage.getItem('promptFlag_0810');
if (!promptFlag) {
layer.alert('1、取消的下发调度指令的时间限制<br>2、驾驶员收到的指令显示为待发时间', {
title: '更新信息',
shift : 5
});
storage.setItem('promptFlag_0810', 1);
}
}, 1500);
}
}
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;
}
countDown('home.js');
return homeObject;
})();