Commit dc1e9b54662239e8d6b8da50b6e065b67667fa0c

Authored by 王通
1 parent 2a00bd01

1.成都版本修正

src/main/java/com/bsth/XDApplication.java
@@ -152,7 +152,7 @@ public class XDApplication implements CommandLineRunner { @@ -152,7 +152,7 @@ public class XDApplication implements CommandLineRunner {
152 sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程 152 sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程
153 sexec.scheduleWithFixedDelay(scheduleLateThread, 140, 20, TimeUnit.SECONDS);//检查班次误点 153 sexec.scheduleWithFixedDelay(scheduleLateThread, 140, 20, TimeUnit.SECONDS);//检查班次误点
154 sexec.scheduleWithFixedDelay(gpsDataLoader, 100, 2, TimeUnit.SECONDS);//抓取GPS数据 154 sexec.scheduleWithFixedDelay(gpsDataLoader, 100, 2, TimeUnit.SECONDS);//抓取GPS数据
155 - sexec.scheduleWithFixedDelay(rfidDataLoader, 5, 5, TimeUnit.SECONDS);//抓取RFID数据 155 + //sexec.scheduleWithFixedDelay(rfidDataLoader, 5, 5, TimeUnit.SECONDS);//抓取RFID数据
156 sexec.scheduleWithFixedDelay(fixedCheckStationCodeThread, 60, 60 * 5, TimeUnit.SECONDS);//检查班次站点编码 156 sexec.scheduleWithFixedDelay(fixedCheckStationCodeThread, 60, 60 * 5, TimeUnit.SECONDS);//检查班次站点编码
157 157
158 sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);//GPS设备掉离线 158 sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);//GPS设备掉离线
@@ -170,7 +170,7 @@ public class XDApplication implements CommandLineRunner { @@ -170,7 +170,7 @@ public class XDApplication implements CommandLineRunner {
170 sexec.scheduleWithFixedDelay(fcxxUpdateThread, 160, 30, TimeUnit.SECONDS);//发车信息(发车屏、信息发布) 170 sexec.scheduleWithFixedDelay(fcxxUpdateThread, 160, 30, TimeUnit.SECONDS);//发车信息(发车屏、信息发布)
171 //线路首末班数据(网关用,班次更新时写入) 171 //线路首末班数据(网关用,班次更新时写入)
172 //com.bsth.data.schedule.f_a_l.FirstAndLastHandler 172 //com.bsth.data.schedule.f_a_l.FirstAndLastHandler
173 - sexec.scheduleWithFixedDelay(schSiginUpdateDBThread, 160, 60 * 30, TimeUnit.SECONDS);//无法自动完成的班次信息(网关用,补信号) 173 + //sexec.scheduleWithFixedDelay(schSiginUpdateDBThread, 160, 60 * 30, TimeUnit.SECONDS);//无法自动完成的班次信息(网关用,补信号)
174 174
175 //运管处静态数据提交 175 //运管处静态数据提交
176 //log.info(timeDiff / 1000 / 60 + "分钟之后提交到运管处"); 176 //log.info(timeDiff / 1000 / 60 + "分钟之后提交到运管处");
@@ -190,14 +190,14 @@ public class XDApplication implements CommandLineRunner { @@ -190,14 +190,14 @@ public class XDApplication implements CommandLineRunner {
190 ScheduledExecutorService sexec = Application.mainServices; 190 ScheduledExecutorService sexec = Application.mainServices;
191 //安全驾驶 191 //安全驾驶
192 sexec.scheduleWithFixedDelay(safeDrivDataLoadThread, 180, 10, TimeUnit.SECONDS); 192 sexec.scheduleWithFixedDelay(safeDrivDataLoadThread, 180, 10, TimeUnit.SECONDS);
193 - sexec.scheduleWithFixedDelay(mtPlanDataLoadThread, 180, 10, TimeUnit.SECONDS); 193 + //sexec.scheduleWithFixedDelay(mtPlanDataLoadThread, 180, 10, TimeUnit.SECONDS);
194 194
195 GpsDataLoaderThread.setFlag(-1); 195 GpsDataLoaderThread.setFlag(-1);
196 /** 线调业务 */ 196 /** 线调业务 */
197 sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程 197 sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程
198 sexec.scheduleWithFixedDelay(scheduleLateThread, 140, 20, TimeUnit.SECONDS);//检查班次误点 198 sexec.scheduleWithFixedDelay(scheduleLateThread, 140, 20, TimeUnit.SECONDS);//检查班次误点
199 sexec.scheduleWithFixedDelay(gpsDataLoader, 0, 2, TimeUnit.SECONDS);//抓取GPS数据 199 sexec.scheduleWithFixedDelay(gpsDataLoader, 0, 2, TimeUnit.SECONDS);//抓取GPS数据
200 - sexec.scheduleWithFixedDelay(rfidDataLoader, 5, 5, TimeUnit.SECONDS);//抓取RFID数据 200 + //sexec.scheduleWithFixedDelay(rfidDataLoader, 5, 5, TimeUnit.SECONDS);//抓取RFID数据
201 sexec.scheduleWithFixedDelay(fixedCheckStationCodeThread, 60, 60 * 5, TimeUnit.SECONDS);//检查班次站点编码 201 sexec.scheduleWithFixedDelay(fixedCheckStationCodeThread, 60, 60 * 5, TimeUnit.SECONDS);//检查班次站点编码
202 202
203 sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);//GPS设备掉离线 203 sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);//GPS设备掉离线
@@ -215,11 +215,11 @@ public class XDApplication implements CommandLineRunner { @@ -215,11 +215,11 @@ public class XDApplication implements CommandLineRunner {
215 sexec.scheduleWithFixedDelay(fcxxUpdateThread, 160, 30, TimeUnit.SECONDS);//发车信息(发车屏、信息发布) 215 sexec.scheduleWithFixedDelay(fcxxUpdateThread, 160, 30, TimeUnit.SECONDS);//发车信息(发车屏、信息发布)
216 //线路首末班数据(网关用,班次更新时写入) 216 //线路首末班数据(网关用,班次更新时写入)
217 //com.bsth.data.schedule.f_a_l.FirstAndLastHandler 217 //com.bsth.data.schedule.f_a_l.FirstAndLastHandler
218 - sexec.scheduleWithFixedDelay(schSiginUpdateDBThread, 160, 60 * 30, TimeUnit.SECONDS);//无法自动完成的班次信息(网关用,补信号) 218 + //sexec.scheduleWithFixedDelay(schSiginUpdateDBThread, 160, 60 * 30, TimeUnit.SECONDS);//无法自动完成的班次信息(网关用,补信号)
219 219
220 //运管处静态数据提交 220 //运管处静态数据提交
221 - log.info(timeDiff / 1000 / 60 + "分钟之后提交到运管处");  
222 - sexec.scheduleAtFixedRate(submitToTrafficManage, timeDiffTraffic / 1000, 60 * 60 * 24, TimeUnit.SECONDS); 221 + //log.info(timeDiff / 1000 / 60 + "分钟之后提交到运管处");
  222 + //sexec.scheduleAtFixedRate(submitToTrafficManage, timeDiffTraffic / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
223 //计算油、公里加注 223 //计算油、公里加注
224 sexec.scheduleAtFixedRate(calcOilThread, timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS); 224 sexec.scheduleAtFixedRate(calcOilThread, timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
225 225
@@ -235,7 +235,7 @@ public class XDApplication implements CommandLineRunner { @@ -235,7 +235,7 @@ public class XDApplication implements CommandLineRunner {
235 ScheduledExecutorService sexec = Application.mainServices; 235 ScheduledExecutorService sexec = Application.mainServices;
236 //安全驾驶 236 //安全驾驶
237 sexec.scheduleWithFixedDelay(safeDrivDataLoadThread, 180, 10, TimeUnit.SECONDS); 237 sexec.scheduleWithFixedDelay(safeDrivDataLoadThread, 180, 10, TimeUnit.SECONDS);
238 - sexec.scheduleWithFixedDelay(mtPlanDataLoadThread, 180, 10, TimeUnit.SECONDS); 238 + //sexec.scheduleWithFixedDelay(mtPlanDataLoadThread, 180, 10, TimeUnit.SECONDS);
239 239
240 GpsDataLoaderThread.setFlag(-1); 240 GpsDataLoaderThread.setFlag(-1);
241 //dayOfSchedule.dataRecovery(); 241 //dayOfSchedule.dataRecovery();
@@ -243,7 +243,7 @@ public class XDApplication implements CommandLineRunner { @@ -243,7 +243,7 @@ public class XDApplication implements CommandLineRunner {
243 sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程 243 sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程
244 sexec.scheduleWithFixedDelay(scheduleLateThread, 140, 20, TimeUnit.SECONDS);//检查班次误点 244 sexec.scheduleWithFixedDelay(scheduleLateThread, 140, 20, TimeUnit.SECONDS);//检查班次误点
245 sexec.scheduleWithFixedDelay(gpsDataLoader, 0, 2, TimeUnit.SECONDS);//抓取GPS数据 245 sexec.scheduleWithFixedDelay(gpsDataLoader, 0, 2, TimeUnit.SECONDS);//抓取GPS数据
246 - sexec.scheduleWithFixedDelay(rfidDataLoader, 5, 5, TimeUnit.SECONDS);//抓取RFID数据 246 + //sexec.scheduleWithFixedDelay(rfidDataLoader, 5, 5, TimeUnit.SECONDS);//抓取RFID数据
247 sexec.scheduleWithFixedDelay(fixedCheckStationCodeThread, 60, 60 * 5, TimeUnit.SECONDS);//检查班次站点编码 247 sexec.scheduleWithFixedDelay(fixedCheckStationCodeThread, 60, 60 * 5, TimeUnit.SECONDS);//检查班次站点编码
248 248
249 sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);//GPS设备掉离线 249 sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);//GPS设备掉离线
@@ -261,7 +261,7 @@ public class XDApplication implements CommandLineRunner { @@ -261,7 +261,7 @@ public class XDApplication implements CommandLineRunner {
261 sexec.scheduleWithFixedDelay(fcxxUpdateThread, 160, 30, TimeUnit.SECONDS);//发车信息(发车屏、信息发布) 261 sexec.scheduleWithFixedDelay(fcxxUpdateThread, 160, 30, TimeUnit.SECONDS);//发车信息(发车屏、信息发布)
262 //线路首末班数据(网关用,班次更新时写入) 262 //线路首末班数据(网关用,班次更新时写入)
263 //com.bsth.data.schedule.f_a_l.FirstAndLastHandler 263 //com.bsth.data.schedule.f_a_l.FirstAndLastHandler
264 - sexec.scheduleWithFixedDelay(schSiginUpdateDBThread, 160, 60 * 30, TimeUnit.SECONDS);//无法自动完成的班次信息(网关用,补信号) 264 + //sexec.scheduleWithFixedDelay(schSiginUpdateDBThread, 160, 60 * 30, TimeUnit.SECONDS);//无法自动完成的班次信息(网关用,补信号)
265 265
266 //运管处静态数据提交 266 //运管处静态数据提交
267 //log.info(timeDiff / 1000 / 60 + "分钟之后提交到运管处"); 267 //log.info(timeDiff / 1000 / 60 + "分钟之后提交到运管处");
@@ -281,14 +281,14 @@ public class XDApplication implements CommandLineRunner { @@ -281,14 +281,14 @@ public class XDApplication implements CommandLineRunner {
281 ScheduledExecutorService sexec = Application.mainServices; 281 ScheduledExecutorService sexec = Application.mainServices;
282 //安全驾驶 282 //安全驾驶
283 sexec.scheduleWithFixedDelay(safeDrivDataLoadThread, 180, 10, TimeUnit.SECONDS); 283 sexec.scheduleWithFixedDelay(safeDrivDataLoadThread, 180, 10, TimeUnit.SECONDS);
284 - sexec.scheduleWithFixedDelay(mtPlanDataLoadThread, 180, 10, TimeUnit.SECONDS); 284 + //sexec.scheduleWithFixedDelay(mtPlanDataLoadThread, 180, 10, TimeUnit.SECONDS);
285 285
286 GpsDataLoaderThread.setFlag(-1); 286 GpsDataLoaderThread.setFlag(-1);
287 /** 线调业务 */ 287 /** 线调业务 */
288 sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程 288 sexec.scheduleWithFixedDelay(scheduleRefreshThread, 10, 120, TimeUnit.SECONDS);//班次更新线程
289 sexec.scheduleWithFixedDelay(scheduleLateThread, 140, 20, TimeUnit.SECONDS);//检查班次误点 289 sexec.scheduleWithFixedDelay(scheduleLateThread, 140, 20, TimeUnit.SECONDS);//检查班次误点
290 sexec.scheduleWithFixedDelay(gpsDataLoader, 0, 2, TimeUnit.SECONDS);//抓取GPS数据 290 sexec.scheduleWithFixedDelay(gpsDataLoader, 0, 2, TimeUnit.SECONDS);//抓取GPS数据
291 - sexec.scheduleWithFixedDelay(rfidDataLoader, 5, 5, TimeUnit.SECONDS);//抓取RFID数据 291 + //sexec.scheduleWithFixedDelay(rfidDataLoader, 5, 5, TimeUnit.SECONDS);//抓取RFID数据
292 sexec.scheduleWithFixedDelay(fixedCheckStationCodeThread, 60, 60 * 5, TimeUnit.SECONDS);//检查班次站点编码 292 sexec.scheduleWithFixedDelay(fixedCheckStationCodeThread, 60, 60 * 5, TimeUnit.SECONDS);//检查班次站点编码
293 293
294 sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);//GPS设备掉离线 294 sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);//GPS设备掉离线
@@ -306,11 +306,11 @@ public class XDApplication implements CommandLineRunner { @@ -306,11 +306,11 @@ public class XDApplication implements CommandLineRunner {
306 sexec.scheduleWithFixedDelay(fcxxUpdateThread, 160, 30, TimeUnit.SECONDS);//发车信息(发车屏、信息发布) 306 sexec.scheduleWithFixedDelay(fcxxUpdateThread, 160, 30, TimeUnit.SECONDS);//发车信息(发车屏、信息发布)
307 //线路首末班数据(网关用,班次更新时写入) 307 //线路首末班数据(网关用,班次更新时写入)
308 //com.bsth.data.schedule.f_a_l.FirstAndLastHandler 308 //com.bsth.data.schedule.f_a_l.FirstAndLastHandler
309 - sexec.scheduleWithFixedDelay(schSiginUpdateDBThread, 160, 60 * 30, TimeUnit.SECONDS);//无法自动完成的班次信息(网关用,补信号) 309 + //sexec.scheduleWithFixedDelay(schSiginUpdateDBThread, 160, 60 * 30, TimeUnit.SECONDS);//无法自动完成的班次信息(网关用,补信号)
310 310
311 //运管处静态数据提交 311 //运管处静态数据提交
312 - log.info(timeDiff / 1000 / 60 + "分钟之后提交到运管处");  
313 - sexec.scheduleAtFixedRate(submitToTrafficManage, timeDiffTraffic / 1000, 60 * 60 * 24, TimeUnit.SECONDS); 312 + //log.info(timeDiff / 1000 / 60 + "分钟之后提交到运管处");
  313 + //sexec.scheduleAtFixedRate(submitToTrafficManage, timeDiffTraffic / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
314 //计算油、公里加注 314 //计算油、公里加注
315 sexec.scheduleAtFixedRate(calcOilThread, timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS); 315 sexec.scheduleAtFixedRate(calcOilThread, timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
316 316
src/main/java/com/bsth/repository/LsStationRouteRepository.java
@@ -160,7 +160,7 @@ public interface LsStationRouteRepository extends BaseRepository<LsStationRoute, @@ -160,7 +160,7 @@ public interface LsStationRouteRepository extends BaseRepository<LsStationRoute,
160 * @param newVersion 160 * @param newVersion
161 */ 161 */
162 @Modifying 162 @Modifying
163 - @Query(value="insert into bsth_c_ls_stationroute (line,station,station_name,station_route_code,line_code,station_code,station_mark,out_station_nmber,directions,distances,to_time,first_time,end_time,descriptions,destroy,versions,industry_code,station_name_en,shaped_type,radius,buffer_polygon,buffer_polygon_wgs) select line,station,station_name,station_route_code,line_code,station_code,station_mark,out_station_nmber,directions,distances,to_time,first_time,end_time,descriptions,destroy,?3 as versions,industry_code,station_name_en,shaped_type,radius,buffer_polygon,buffer_polygon_wgs from bsth_c_ls_stationroute where line = ?1 and versions = ?2 and destroy = 0", nativeQuery = true) 163 + @Query(value="insert into bsth_c_ls_stationroute (line,station,station_name,station_route_code,line_code,station_code,station_mark,out_station_nmber,directions,distances,to_time,first_time,end_time,descriptions,destroy,versions,industry_code,station_name_en,shaped_type,radius,buffer_polygon,buffer_polygon_wgs,center_point,center_point_wgs) select line,station,station_name,station_route_code,line_code,station_code,station_mark,out_station_nmber,directions,distances,to_time,first_time,end_time,descriptions,destroy,?3 as versions,industry_code,station_name_en,shaped_type,radius,buffer_polygon,buffer_polygon_wgs,center_point,center_point_wgs from bsth_c_ls_stationroute where line = ?1 and versions = ?2 and destroy = 0", nativeQuery = true)
164 void cloneFromHistoryVersion(Integer lineId, Integer oldVersion, Integer newVersion); 164 void cloneFromHistoryVersion(Integer lineId, Integer oldVersion, Integer newVersion);
165 165
166 /** 166 /**
src/main/resources/application-test.properties
@@ -14,7 +14,7 @@ spring.jpa.properties.hibernate.dialect= org.hibernate.spatial.dialect.mysql.MyS @@ -14,7 +14,7 @@ spring.jpa.properties.hibernate.dialect= org.hibernate.spatial.dialect.mysql.MyS
14 14
15 #DATABASE 15 #DATABASE
16 spring.datasource.driver-class-name= com.mysql.jdbc.Driver 16 spring.datasource.driver-class-name= com.mysql.jdbc.Driver
17 -spring.datasource.url= jdbc:mysql://192.168.168.152/control?useUnicode=true&characterEncoding=utf-8&useSSL=false 17 +spring.datasource.url= jdbc:mysql://192.168.168.152/control_dy?useUnicode=true&characterEncoding=utf-8&useSSL=false
18 spring.datasource.username= root 18 spring.datasource.username= root
19 spring.datasource.password= root2jsp 19 spring.datasource.password= root2jsp
20 spring.datasource.type= com.zaxxer.hikari.HikariDataSource 20 spring.datasource.type= com.zaxxer.hikari.HikariDataSource
src/main/resources/static/index.html
@@ -220,7 +220,7 @@ @@ -220,7 +220,7 @@
220 <!-- LOGO --> 220 <!-- LOGO -->
221 <div class="page-logo"> 221 <div class="page-logo">
222 <a href="index.html" class="logo-default logo-default-text"> 222 <a href="index.html" class="logo-default logo-default-text">
223 - 浦东公交调度系统 </a> 223 + 新城市调度系统 </a>
224 <div class="menu-toggler sidebar-toggler"></div> 224 <div class="menu-toggler sidebar-toggler"></div>
225 </div> 225 </div>
226 <!-- END LOGO --> 226 <!-- END LOGO -->
@@ -454,28 +454,6 @@ @@ -454,28 +454,6 @@
454 } 454 }
455 }); 455 });
456 456
457 - $.ajax({  
458 - url: '/user/isRealName',  
459 - type: 'POST',  
460 - async: false,  
461 - success: function (result,status,xhr) {  
462 - if (result.data == 0) {  
463 - $.get('/pages/permission/user/jobCode.html', function (content) {  
464 - layer.open({  
465 - type: 1,  
466 - area: ['600px', '360px'],  
467 - content: content,  
468 - title: '设置工号(后期统一登录平台接入)',  
469 - shift: 5,  
470 - scrollbar: false,  
471 - success: function () {  
472 - }  
473 - });  
474 - });  
475 - }  
476 - }  
477 - });  
478 -  
479 $.get('/user/currentUser', function (user) { 457 $.get('/user/currentUser', function (user) {
480 $('#indexTopUName').text(user.userName); 458 $('#indexTopUName').text(user.userName);
481 }); 459 });
src/main/resources/static/login.html
@@ -181,7 +181,7 @@ @@ -181,7 +181,7 @@
181 <div class="wrapper ng-scope"> 181 <div class="wrapper ng-scope">
182 <div id="loginPanel" class="dialog dialog-shadow"> 182 <div id="loginPanel" class="dialog dialog-shadow">
183 <br> 183 <br>
184 - <h3 class="logo-text">浦东公交调度系统</h3> 184 + <h3 class="logo-text">新城市调度系统</h3>
185 <hr> 185 <hr>
186 <form style="padding: 0px 35px;"> 186 <form style="padding: 0px 35px;">
187 <div class="form-group" style="margin-bottom: 0"> 187 <div class="form-group" style="margin-bottom: 0">
src/main/resources/static/pages/control/line/index.html
1 -<link href="/pages/control/line/css/lineControl.css" rel="stylesheet" type="text/css" />  
2 -<link href="/metronic_v4.5.4/css/animate.min.css" rel="stylesheet" type="text/css" />  
3 -  
4 -<!-- 初始load界面 -->  
5 -<div class="load-anim" >  
6 - <div class="load-anim-list">  
7 - <div class="spinner"></div>  
8 - <!-- <div class="item load_resource">加载资源文件...</div> -->  
9 -<!-- <div class="item">校准客户端时间...</div>  
10 - <div class="item">加载GPS模块...</div>  
11 - <div class="item">加载班次信息...</div>  
12 - <div class="item">webSocket 连接...</div> -->  
13 - </div>  
14 -</div>  
15 -  
16 -<div class="portlet light portlet-fullscreen" style="transition: all .5s ease;padding: 0;" oncontextmenu=self.event.returnValue=false>  
17 -  
18 - <div class="portlet-title banner" >  
19 - <div class="caption col_hide_1280" style="color: #FFF;">  
20 - <i class="fa fa-life-ring" style="font-size: 22px;color: #FFF;"></i> <span  
21 - class="caption-subject bold" style="font-size: 24px;">浦东公交线路调度系统</span>  
22 - </div>  
23 - <div class="col_hide_1440" style="color: white;font-size: 18px;position: absolute;right: 25px;top: 75px;">  
24 - <span class="top_username"></span> <span class="operation_mode_text animated" ></span>  
25 - </div>  
26 - <div class="actions col_hide_1280" >  
27 - <div class="btn-group">  
28 -  
29 - <div class="btn-group">  
30 - <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" >  
31 - <i class="fa fa-database"></i> &nbsp;基础数据  
32 - <i class="fa fa-angle-down"></i>  
33 - </button>  
34 - <ul class="dropdown-menu">  
35 - <li>  
36 - <a href="javascript:;" id=""> 车辆配置 </a>  
37 - </li>  
38 - <li>  
39 - <a href="javascript:;" id=""> 人员配置 </a>  
40 - </li>  
41 - </ul>  
42 - </div>  
43 -  
44 - <div class="btn-group">  
45 - <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" >  
46 - <i class="fa fa-bus"></i> &nbsp;车载设备  
47 - <i class="fa fa-angle-down"></i>  
48 - </button>  
49 - <ul class="dropdown-menu">  
50 - <li>  
51 - <a href="javascript:;" id="deviceConfig"> 设备管理 </a>  
52 - </li>  
53 - <li>  
54 - <a href="javascript:;" id="deviceReport"> 设备上报记录 </a>  
55 - </li>  
56 - <li>  
57 - <a href="javascript:;" id="msgAndDirect"> 指令下发记录 </a>  
58 - </li>  
59 - </ul>  
60 - </div>  
61 -  
62 - <div class="btn-group">  
63 - <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" >  
64 - <i class="fa fa-gavel"></i> 系统设置  
65 - <i class="fa fa-angle-down"></i>  
66 - </button>  
67 - <ul class="dropdown-menu">  
68 - <li>  
69 - <a href="javascript:;" id="ttsConfigure"> TTS 语音设置 </a>  
70 - </li>  
71 - <li>  
72 - <a href="javascript:;" id="updateLogLink"> 更新日志 </a>  
73 - </li>  
74 - </ul>  
75 - </div>  
76 -  
77 - <button id="exitBtn" type="button" class="btn btn-danger" style="margin-left: 8px;padding: 6.5px 9px !important;" >  
78 - <!-- <i class="fa fa-close" ></i> -->退出线路调度</button>  
79 - </div>  
80 - </div>  
81 - </div>  
82 - <div class="portlet-body" id="top-tabs-wrap" >  
83 - <ul class="nav nav-tabs top-nav" >  
84 - <li class="active">  
85 - <a href="#tab_home" data-toggle="tab" aria-expanded="false" style="padding: 10px 15px;">  
86 - <i class="fa fa-home"></i> 主页  
87 - </a>  
88 - </li>  
89 - <li class=""><a href="#tab_map" data-toggle="tab" style="padding: 10px 15px;"  
90 - aria-expanded="false"><i class="fa fa-map"></i> 地图 </a></li>  
91 - </ul>  
92 -  
93 - <div class="tab-content" >  
94 - <div class="tab-pane fade active in" id="tab_home" ></div>  
95 - <div class="tab-pane fade" id="tab_map" style="position: relative;"></div>  
96 -  
97 - <!-- <div class="tab-pane fade tab_line active in" id="tab_line" >  
98 -  
99 - </div> -->  
100 - </div>  
101 - </div>  
102 -<div id="tooltipShade" class="animated fadeIn"></div>  
103 -  
104 -<div id="menuWrap"></div>  
105 -<!-- 线路调度右键菜单 -->  
106 -<menu class="menu" id="rightMenu" style="display: none;">  
107 - <li class="menu-item submenu">  
108 - <button type="button" class="menu-btn" data-method="outgoAdjust">  
109 - <span class="menu-text">待发调整</span>  
110 - </button>  
111 - <menu class="menu">  
112 - <li class="menu-item">  
113 - <button type="button" class="menu-btn" data-method="outgoAdjust">  
114 - <span class="menu-text">基于班次</span>  
115 - </button>  
116 - </li>  
117 - <li class="menu-item">  
118 - <button type="button" class="menu-btn" data-method="outgoAdjustAll">  
119 - <span class="menu-text">基于车辆</span>  
120 - </button>  
121 - </li>  
122 - </menu>  
123 - </li>  
124 -  
125 -  
126 - <li class="menu-separator"></li>  
127 - <li class="menu-item" >  
128 - <button type="button" class="menu-btn" data-method="planDestroy">  
129 - <span class="menu-text">计划烂班</span>  
130 - </button>  
131 - </li>  
132 - <li class="menu-item" >  
133 - <button type="button" class="menu-btn" data-method="revokeDestroy">  
134 - <span class="menu-text">撤销烂班</span>  
135 - </button>  
136 - </li>  
137 - <li class="menu-item" >  
138 - <button type="button" class="menu-btn" data-method="realOutgoAdjust">  
139 - <span class="menu-text">实发调整</span>  
140 - </button>  
141 - </li>  
142 - <li class="menu-item" >  
143 - <button type="button" class="menu-btn" data-method="revokeRealOutgo">  
144 - <span class="menu-text">撤销实发</span>  
145 - </button>  
146 - </li>  
147 - <li class="menu-separator"></li>  
148 - <li class="menu-item" >  
149 - <button type="button" class="menu-btn" data-multi=1 data-method="spaceAdjust">  
150 - <span class="menu-text">间隔调整</span>  
151 - </button>  
152 - </li>  
153 - <!-- <li class="menu-item disabled" >  
154 - <button type="button" class="menu-btn">  
155 - <span class="menu-text">误点调整</span>  
156 - </button>  
157 - </li> -->  
158 - <li class="menu-item" >  
159 - <button type="button" class="menu-btn" data-method="schInfoFineTune">  
160 - <span class="menu-text">发车信息微调</span>  
161 - </button>  
162 - </li>  
163 - <li class="menu-separator"></li>  
164 - <li class="menu-item" >  
165 - <button type="button" class="menu-btn" data-method="childTask">  
166 - <i class="fa fa-plus"></i>  
167 - <span class="menu-text">临加/子任务</span>  
168 - </button>  
169 - </li>  
170 - <li class="menu-separator"></li>  
171 - <li class="menu-item" >  
172 - <button type="button" class="menu-btn" data-method="vehicAndPerAdjust">  
173 - <i class="fa fa-retweet"></i>  
174 - <span class="menu-text">调整车/人</span>  
175 - </button>  
176 - </li>  
177 - <li class="menu-separator"></li>  
178 - <li class="menu-item" >  
179 - <button type="button" class="menu-btn" data-method="directiveRepeat">  
180 - <i class="fa fa-bell-o"></i>  
181 - <span class="menu-text">指令重发</span>  
182 - </button>  
183 - </li>  
184 -</menu>  
185 -<!-- 主页右键菜单 -->  
186 -<menu class="menu" id="homeMenu" style="display: none;">  
187 - <li class="menu-item disabled" id="menu-linename">  
188 - <button type="button" class="menu-btn">  
189 - <span class="menu-text">--- <span class="menu-title-nbbm"></span> ---</span>  
190 - </button>  
191 - </li>  
192 - <li class="menu-item" >  
193 - <button type="button" class="menu-btn" data-method="sendPhrase">  
194 - <span class="menu-text">发送消息短语</span>  
195 - </button>  
196 - </li>  
197 - <li class="menu-separator"></li>  
198 - <li class="menu-item" >  
199 - <button type="button" class="menu-btn" data-method="showState">  
200 - <span class="menu-text">车辆状态查看</span>  
201 - </button>  
202 - </li>  
203 - <li class="menu-item submenu">  
204 - <button type="button" class="menu-btn">  
205 - <span class="menu-text">车辆状态切换</span>  
206 - </button>  
207 - <menu class="menu">  
208 - <li class="menu-item">  
209 - <button type="button" class="menu-btn" data-method="changeUp">  
210 - <span class="menu-text">上行营运</span>  
211 - </button>  
212 - </li>  
213 - <li class="menu-item">  
214 - <button type="button" class="menu-btn" data-method="changeDown">  
215 - <span class="menu-text">下行营运</span>  
216 - </button>  
217 - </li>  
218 - </menu>  
219 - </li>  
220 -</menu>  
221 -  
222 -<div class="ctm-note animated bounceInDown">  
223 - <div class="content"></div>  
224 -</div>  
225 -</div>  
226 -<div id="temps"></div>  
227 -  
228 -<div id="tooltip" style="display: none;">  
229 -</div>  
230 -  
231 -<script>  
232 -//JS文件加载计数,countDownLatch为0 时则加载完成  
233 -var countDownLatch = 13;  
234 -function countDown(name){  
235 - countDownLatch --;  
236 - if(!countDownLatch)  
237 - _main.start();  
238 -  
239 - console.log('countDown: ' + countDownLatch, 'file: ' + name);  
240 -}  
241 -</script>  
242 -<script src="/assets/js/eventproxy.js"></script>  
243 -  
244 -<script src="/pages/control/line/js/main.js"></script>  
245 -<script src="/pages/control/line/js/tooltip.js"></script>  
246 -<script src="/pages/control/line/js/drawSvg.js"></script>  
247 -<script src="/pages/control/line/js/data.js"></script>  
248 -<script src="/pages/control/line/js/rightMenu.js"></script>  
249 -<script src="/pages/control/line/js/homeMenu.js"></script>  
250 -<script src="/pages/control/line/js/alone.js"></script>  
251 -<script src="/pages/control/line/js/messenger.js"></script>  
252 -<script src="/pages/control/line/js/keyboardListen.js"></script>  
253 -<script src="/pages/control/line/js/toolbarEvent.js"></script>  
254 -<script src="/pages/control/line/js/speech.js" data-exclude=1></script>  
255 -<script src="/pages/control/line/js/home.js"></script>  
256 -  
257 -<script>  
258 -var updateLog = {  
259 - text: '<div class="updete_log"><p>1、过滤掉未加入调度配置的GPS信号。</p></div>'  
260 - ,title: '2016年9月13号更新日志'  
261 -}  
262 -  
263 -var lineCodes = '' //全部线路编码字符串,由data.js初始化  
264 - , lineMap = {} //编码和线路详细对照,由data.js初始化;  
265 - ,animationend = 'webkitAnimationEnd animationend';  
266 -moment.locale('zh-cn');  
267 -  
268 -var cUser  
269 - , storage = window.localStorage  
270 - , operationMode = storage.getItem('operationMode');  
271 -  
272 -//当前用户  
273 -$.get('/user/currentUser', function(user){  
274 - cUser = user;  
275 - $('.portlet-fullscreen .top_username').text(cUser.userName)  
276 - var t = operationMode == 0?',<abbr title="系统将对当前的提交请求进行拦截">监控模式</abbr> 在线'  
277 - :',主调模式 在线';  
278 - $('.portlet-fullscreen .operation_mode_text').html(t);  
279 -});  
280 -  
281 -//打个标记  
282 -storage.setItem('real_control_flag', 1);  
283 -  
284 -var reqCodeMap = {0xA1: '请求恢复运营', 0xA2: '申请调档', 0xA3: '出场请求', 0xA5: '进场请求', 0xA7: '加油请求', 0x50: '车辆故障', 0x70: '路阻报告', 0x60: '事故报告', 0x11: '扣证纠纷', 0x12 : '报警'};  
285 -  
286 -function _fadeOut($that){  
287 - $that.fadeOut('normal', function(){  
288 - $that.remove();  
289 - });  
290 -}  
291 -$(function() {  
292 - //主调和监控模式横幅颜色  
293 - if(operationMode == 0)  
294 - $('.portlet-fullscreen').addClass('monitor');  
295 - else  
296 - $('.portlet-fullscreen').addClass('main');  
297 -  
298 - //加载模板文件  
299 - getTemp('temps/home_tp.html');  
300 - getTemp('temps/tooltip_tp.html');  
301 - getTemp('temps/alone_tp.html');  
302 - getTemp('temps/child_task_case_tp.html');  
303 - getTemp('temps/messenger.html');  
304 -  
305 - function getTemp(url){  
306 - $.get(url, function(template){  
307 - $('#temps').append(template);  
308 - });  
309 - }  
310 -});  
311 -  
312 -//监控模式下拦截POST请求  
313 -function interceptPOST(e, xhr, t){  
314 - if(t && (t.method == 'POST' || t.type == 'POST')){  
315 - console.log(e, xhr, t);  
316 - xhr.abort();  
317 - layer.msg('监控模式!',{offset: 'ct', shift : 6});  
318 - }  
319 -}  
320 -  
321 -</script> 1 +<link href="/pages/control/line/css/lineControl.css" rel="stylesheet" type="text/css" />
  2 +<link href="/metronic_v4.5.4/css/animate.min.css" rel="stylesheet" type="text/css" />
  3 +
  4 +<!-- 初始load界面 -->
  5 +<div class="load-anim" >
  6 + <div class="load-anim-list">
  7 + <div class="spinner"></div>
  8 + <!-- <div class="item load_resource">加载资源文件...</div> -->
  9 +<!-- <div class="item">校准客户端时间...</div>
  10 + <div class="item">加载GPS模块...</div>
  11 + <div class="item">加载班次信息...</div>
  12 + <div class="item">webSocket 连接...</div> -->
  13 + </div>
  14 +</div>
  15 +
  16 +<div class="portlet light portlet-fullscreen" style="transition: all .5s ease;padding: 0;" oncontextmenu=self.event.returnValue=false>
  17 +
  18 + <div class="portlet-title banner" >
  19 + <div class="caption col_hide_1280" style="color: #FFF;">
  20 + <i class="fa fa-life-ring" style="font-size: 22px;color: #FFF;"></i> <span
  21 + class="caption-subject bold" style="font-size: 24px;">新城市线路调度系统</span>
  22 + </div>
  23 + <div class="col_hide_1440" style="color: white;font-size: 18px;position: absolute;right: 25px;top: 75px;">
  24 + <span class="top_username"></span> <span class="operation_mode_text animated" ></span>
  25 + </div>
  26 + <div class="actions col_hide_1280" >
  27 + <div class="btn-group">
  28 +
  29 + <div class="btn-group">
  30 + <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" >
  31 + <i class="fa fa-database"></i> &nbsp;基础数据
  32 + <i class="fa fa-angle-down"></i>
  33 + </button>
  34 + <ul class="dropdown-menu">
  35 + <li>
  36 + <a href="javascript:;" id=""> 车辆配置 </a>
  37 + </li>
  38 + <li>
  39 + <a href="javascript:;" id=""> 人员配置 </a>
  40 + </li>
  41 + </ul>
  42 + </div>
  43 +
  44 + <div class="btn-group">
  45 + <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" >
  46 + <i class="fa fa-bus"></i> &nbsp;车载设备
  47 + <i class="fa fa-angle-down"></i>
  48 + </button>
  49 + <ul class="dropdown-menu">
  50 + <li>
  51 + <a href="javascript:;" id="deviceConfig"> 设备管理 </a>
  52 + </li>
  53 + <li>
  54 + <a href="javascript:;" id="deviceReport"> 设备上报记录 </a>
  55 + </li>
  56 + <li>
  57 + <a href="javascript:;" id="msgAndDirect"> 指令下发记录 </a>
  58 + </li>
  59 + </ul>
  60 + </div>
  61 +
  62 + <div class="btn-group">
  63 + <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" >
  64 + <i class="fa fa-gavel"></i> 系统设置
  65 + <i class="fa fa-angle-down"></i>
  66 + </button>
  67 + <ul class="dropdown-menu">
  68 + <li>
  69 + <a href="javascript:;" id="ttsConfigure"> TTS 语音设置 </a>
  70 + </li>
  71 + <li>
  72 + <a href="javascript:;" id="updateLogLink"> 更新日志 </a>
  73 + </li>
  74 + </ul>
  75 + </div>
  76 +
  77 + <button id="exitBtn" type="button" class="btn btn-danger" style="margin-left: 8px;padding: 6.5px 9px !important;" >
  78 + <!-- <i class="fa fa-close" ></i> -->退出线路调度</button>
  79 + </div>
  80 + </div>
  81 + </div>
  82 + <div class="portlet-body" id="top-tabs-wrap" >
  83 + <ul class="nav nav-tabs top-nav" >
  84 + <li class="active">
  85 + <a href="#tab_home" data-toggle="tab" aria-expanded="false" style="padding: 10px 15px;">
  86 + <i class="fa fa-home"></i> 主页
  87 + </a>
  88 + </li>
  89 + <li class=""><a href="#tab_map" data-toggle="tab" style="padding: 10px 15px;"
  90 + aria-expanded="false"><i class="fa fa-map"></i> 地图 </a></li>
  91 + </ul>
  92 +
  93 + <div class="tab-content" >
  94 + <div class="tab-pane fade active in" id="tab_home" ></div>
  95 + <div class="tab-pane fade" id="tab_map" style="position: relative;"></div>
  96 +
  97 + <!-- <div class="tab-pane fade tab_line active in" id="tab_line" >
  98 +
  99 + </div> -->
  100 + </div>
  101 + </div>
  102 +<div id="tooltipShade" class="animated fadeIn"></div>
  103 +
  104 +<div id="menuWrap"></div>
  105 +<!-- 线路调度右键菜单 -->
  106 +<menu class="menu" id="rightMenu" style="display: none;">
  107 + <li class="menu-item submenu">
  108 + <button type="button" class="menu-btn" data-method="outgoAdjust">
  109 + <span class="menu-text">待发调整</span>
  110 + </button>
  111 + <menu class="menu">
  112 + <li class="menu-item">
  113 + <button type="button" class="menu-btn" data-method="outgoAdjust">
  114 + <span class="menu-text">基于班次</span>
  115 + </button>
  116 + </li>
  117 + <li class="menu-item">
  118 + <button type="button" class="menu-btn" data-method="outgoAdjustAll">
  119 + <span class="menu-text">基于车辆</span>
  120 + </button>
  121 + </li>
  122 + </menu>
  123 + </li>
  124 +
  125 +
  126 + <li class="menu-separator"></li>
  127 + <li class="menu-item" >
  128 + <button type="button" class="menu-btn" data-method="planDestroy">
  129 + <span class="menu-text">计划烂班</span>
  130 + </button>
  131 + </li>
  132 + <li class="menu-item" >
  133 + <button type="button" class="menu-btn" data-method="revokeDestroy">
  134 + <span class="menu-text">撤销烂班</span>
  135 + </button>
  136 + </li>
  137 + <li class="menu-item" >
  138 + <button type="button" class="menu-btn" data-method="realOutgoAdjust">
  139 + <span class="menu-text">实发调整</span>
  140 + </button>
  141 + </li>
  142 + <li class="menu-item" >
  143 + <button type="button" class="menu-btn" data-method="revokeRealOutgo">
  144 + <span class="menu-text">撤销实发</span>
  145 + </button>
  146 + </li>
  147 + <li class="menu-separator"></li>
  148 + <li class="menu-item" >
  149 + <button type="button" class="menu-btn" data-multi=1 data-method="spaceAdjust">
  150 + <span class="menu-text">间隔调整</span>
  151 + </button>
  152 + </li>
  153 + <!-- <li class="menu-item disabled" >
  154 + <button type="button" class="menu-btn">
  155 + <span class="menu-text">误点调整</span>
  156 + </button>
  157 + </li> -->
  158 + <li class="menu-item" >
  159 + <button type="button" class="menu-btn" data-method="schInfoFineTune">
  160 + <span class="menu-text">发车信息微调</span>
  161 + </button>
  162 + </li>
  163 + <li class="menu-separator"></li>
  164 + <li class="menu-item" >
  165 + <button type="button" class="menu-btn" data-method="childTask">
  166 + <i class="fa fa-plus"></i>
  167 + <span class="menu-text">临加/子任务</span>
  168 + </button>
  169 + </li>
  170 + <li class="menu-separator"></li>
  171 + <li class="menu-item" >
  172 + <button type="button" class="menu-btn" data-method="vehicAndPerAdjust">
  173 + <i class="fa fa-retweet"></i>
  174 + <span class="menu-text">调整车/人</span>
  175 + </button>
  176 + </li>
  177 + <li class="menu-separator"></li>
  178 + <li class="menu-item" >
  179 + <button type="button" class="menu-btn" data-method="directiveRepeat">
  180 + <i class="fa fa-bell-o"></i>
  181 + <span class="menu-text">指令重发</span>
  182 + </button>
  183 + </li>
  184 +</menu>
  185 +<!-- 主页右键菜单 -->
  186 +<menu class="menu" id="homeMenu" style="display: none;">
  187 + <li class="menu-item disabled" id="menu-linename">
  188 + <button type="button" class="menu-btn">
  189 + <span class="menu-text">--- <span class="menu-title-nbbm"></span> ---</span>
  190 + </button>
  191 + </li>
  192 + <li class="menu-item" >
  193 + <button type="button" class="menu-btn" data-method="sendPhrase">
  194 + <span class="menu-text">发送消息短语</span>
  195 + </button>
  196 + </li>
  197 + <li class="menu-separator"></li>
  198 + <li class="menu-item" >
  199 + <button type="button" class="menu-btn" data-method="showState">
  200 + <span class="menu-text">车辆状态查看</span>
  201 + </button>
  202 + </li>
  203 + <li class="menu-item submenu">
  204 + <button type="button" class="menu-btn">
  205 + <span class="menu-text">车辆状态切换</span>
  206 + </button>
  207 + <menu class="menu">
  208 + <li class="menu-item">
  209 + <button type="button" class="menu-btn" data-method="changeUp">
  210 + <span class="menu-text">上行营运</span>
  211 + </button>
  212 + </li>
  213 + <li class="menu-item">
  214 + <button type="button" class="menu-btn" data-method="changeDown">
  215 + <span class="menu-text">下行营运</span>
  216 + </button>
  217 + </li>
  218 + </menu>
  219 + </li>
  220 +</menu>
  221 +
  222 +<div class="ctm-note animated bounceInDown">
  223 + <div class="content"></div>
  224 +</div>
  225 +</div>
  226 +<div id="temps"></div>
  227 +
  228 +<div id="tooltip" style="display: none;">
  229 +</div>
  230 +
  231 +<script>
  232 +//JS文件加载计数,countDownLatch为0 时则加载完成
  233 +var countDownLatch = 13;
  234 +function countDown(name){
  235 + countDownLatch --;
  236 + if(!countDownLatch)
  237 + _main.start();
  238 +
  239 + console.log('countDown: ' + countDownLatch, 'file: ' + name);
  240 +}
  241 +</script>
  242 +<script src="/assets/js/eventproxy.js"></script>
  243 +
  244 +<script src="/pages/control/line/js/main.js"></script>
  245 +<script src="/pages/control/line/js/tooltip.js"></script>
  246 +<script src="/pages/control/line/js/drawSvg.js"></script>
  247 +<script src="/pages/control/line/js/data.js"></script>
  248 +<script src="/pages/control/line/js/rightMenu.js"></script>
  249 +<script src="/pages/control/line/js/homeMenu.js"></script>
  250 +<script src="/pages/control/line/js/alone.js"></script>
  251 +<script src="/pages/control/line/js/messenger.js"></script>
  252 +<script src="/pages/control/line/js/keyboardListen.js"></script>
  253 +<script src="/pages/control/line/js/toolbarEvent.js"></script>
  254 +<script src="/pages/control/line/js/speech.js" data-exclude=1></script>
  255 +<script src="/pages/control/line/js/home.js"></script>
  256 +
  257 +<script>
  258 +var updateLog = {
  259 + text: '<div class="updete_log"><p>1、过滤掉未加入调度配置的GPS信号。</p></div>'
  260 + ,title: '2016年9月13号更新日志'
  261 +}
  262 +
  263 +var lineCodes = '' //全部线路编码字符串,由data.js初始化
  264 + , lineMap = {} //编码和线路详细对照,由data.js初始化;
  265 + ,animationend = 'webkitAnimationEnd animationend';
  266 +moment.locale('zh-cn');
  267 +
  268 +var cUser
  269 + , storage = window.localStorage
  270 + , operationMode = storage.getItem('operationMode');
  271 +
  272 +//当前用户
  273 +$.get('/user/currentUser', function(user){
  274 + cUser = user;
  275 + $('.portlet-fullscreen .top_username').text(cUser.userName)
  276 + var t = operationMode == 0?',<abbr title="系统将对当前的提交请求进行拦截">监控模式</abbr> 在线'
  277 + :',主调模式 在线';
  278 + $('.portlet-fullscreen .operation_mode_text').html(t);
  279 +});
  280 +
  281 +//打个标记
  282 +storage.setItem('real_control_flag', 1);
  283 +
  284 +var reqCodeMap = {0xA1: '请求恢复运营', 0xA2: '申请调档', 0xA3: '出场请求', 0xA5: '进场请求', 0xA7: '加油请求', 0x50: '车辆故障', 0x70: '路阻报告', 0x60: '事故报告', 0x11: '扣证纠纷', 0x12 : '报警'};
  285 +
  286 +function _fadeOut($that){
  287 + $that.fadeOut('normal', function(){
  288 + $that.remove();
  289 + });
  290 +}
  291 +$(function() {
  292 + //主调和监控模式横幅颜色
  293 + if(operationMode == 0)
  294 + $('.portlet-fullscreen').addClass('monitor');
  295 + else
  296 + $('.portlet-fullscreen').addClass('main');
  297 +
  298 + //加载模板文件
  299 + getTemp('temps/home_tp.html');
  300 + getTemp('temps/tooltip_tp.html');
  301 + getTemp('temps/alone_tp.html');
  302 + getTemp('temps/child_task_case_tp.html');
  303 + getTemp('temps/messenger.html');
  304 +
  305 + function getTemp(url){
  306 + $.get(url, function(template){
  307 + $('#temps').append(template);
  308 + });
  309 + }
  310 +});
  311 +
  312 +//监控模式下拦截POST请求
  313 +function interceptPOST(e, xhr, t){
  314 + if(t && (t.method == 'POST' || t.type == 'POST')){
  315 + console.log(e, xhr, t);
  316 + xhr.abort();
  317 + layer.msg('监控模式!',{offset: 'ct', shift : 6});
  318 + }
  319 +}
  320 +
  321 +</script>
322 <script src="/pages/control/line/js/webSocketHandle.js"></script> 322 <script src="/pages/control/line/js/webSocketHandle.js"></script>
323 \ No newline at end of file 323 \ No newline at end of file
src/main/resources/static/pages/permission/authorize_all/user_auth.html
@@ -79,13 +79,13 @@ @@ -79,13 +79,13 @@
79 <li><label><input class="uk-checkbox" type="checkbox" data-event="signal_state"> 信号标记</label></li> 79 <li><label><input class="uk-checkbox" type="checkbox" data-event="signal_state"> 信号标记</label></li>
80 </ul> 80 </ul>
81 </div> 81 </div>
82 - <div> 82 + <!--<div>
83 <h4>服务热线系统</h4> 83 <h4>服务热线系统</h4>
84 <ul class="uk-list uk-list-large uk-list-divider"> 84 <ul class="uk-list uk-list-large uk-list-divider">
85 <li><label><input class="uk-checkbox" type="checkbox" data-event="report_register"> 报备登记</label></li> 85 <li><label><input class="uk-checkbox" type="checkbox" data-event="report_register"> 报备登记</label></li>
86 <li><label><input class="uk-checkbox" type="checkbox" data-event="form_report_register"> 报备登记报表</label></li> 86 <li><label><input class="uk-checkbox" type="checkbox" data-event="form_report_register"> 报备登记报表</label></li>
87 </ul> 87 </ul>
88 - </div> 88 + </div>-->
89 89
90 </div> 90 </div>
91 91
src/main/resources/static/real_control_v2/js/data/json/north_toolbar.json
1 -[  
2 - {  
3 - "id": 1,  
4 - "text": "数据&统计",  
5 - "children": [  
6 - {  
7 - "id": 1.1,  
8 - "text": "数据管理",  
9 - "header": 1  
10 - },  
11 - {  
12 - "id": 1.2,  
13 - "text": "当日计划排班",  
14 - "event": "curr_date_schedule"  
15 - },  
16 - {  
17 - "id": 1.3,  
18 - "text": "缓存数据管理",  
19 - "event": "cache_data_manage"  
20 - },  
21 - {  
22 - "id": 1.4,  
23 - "text": "历史路单维护",  
24 - "event": "history_sch_maintain"  
25 - },  
26 - {  
27 - "id": 1.41,  
28 - "text": "班次修正日志",  
29 - "event": "sch_edit_info"  
30 - }  
31 - ]  
32 - },  
33 - {  
34 - "id": 2,  
35 - "text": "报表管理",  
36 - "children": [  
37 - {  
38 - "id": 2.6,  
39 - "text": "报表管理",  
40 - "header": 1  
41 - },  
42 - {  
43 - "id": 2.7,  
44 - "text": "行车路单",  
45 - "event": "form_waybill",  
46 - "icon": "uk-icon-table"  
47 - },  
48 - {  
49 - "id": 2.8,  
50 - "text": "调度历史消息",  
51 - "event": "form_history_message",  
52 - "icon": "uk-icon-table"  
53 - },  
54 - {  
55 - "id": 2.9,  
56 - "text": "驾驶员请求台账",  
57 - "event": "form_account",  
58 - "icon": "uk-icon-table"  
59 - },  
60 - {  
61 - "id": 2.91,  
62 - "text": "修正报表",  
63 - "event": "form_correctForm",  
64 - "icon": "uk-icon-table"  
65 - },  
66 - {  
67 - "id": 2.92,  
68 - "text": "统计日报",  
69 - "event": "form_statisticsDaily",  
70 - "icon": "uk-icon-table"  
71 - },  
72 - {  
73 - "id": 2.93,  
74 - "text": "调度日报",  
75 - "event": "form_scheduleDaily",  
76 - "icon": "uk-icon-table"  
77 - },  
78 - {  
79 - "id": 2.94,  
80 - "text": "工作汇总",  
81 - "event": "form_jobSummary",  
82 - "icon": "uk-icon-table"  
83 - },  
84 - {  
85 - "id": 2.941,  
86 - "text": "班次日报表",  
87 - "event": "form_daily",  
88 - "icon": "uk-icon-table"  
89 - },  
90 - {  
91 - "id": 2.95,  
92 - "text": "班次到离站",  
93 - "event": "form_inoutstation",  
94 - "icon": "uk-icon-table"  
95 - },  
96 - {  
97 - "id": 2.2,  
98 - "text": "月存油报表",  
99 - "event": "form_oilListMonth",  
100 - "icon": "uk-icon-table"  
101 - },  
102 - {  
103 - "id": 2.3,  
104 - "text": "时刻表分析",  
105 - "event": "form_scheduleAnaly",  
106 - "icon": "uk-icon-table"  
107 - },  
108 - {  
109 - "id": 2.4,  
110 - "text": "调度消息分析",  
111 - "event": "form_message",  
112 - "icon": "uk-icon-table"  
113 - },  
114 - {  
115 - "id": 2.5,  
116 - "text": "换人换车情况统计表",  
117 - "event": "form_changetochange",  
118 - "icon": "uk-icon-table"  
119 - },  
120 - {  
121 - "id": 2.6,  
122 - "text": "班次车辆人员日统计",  
123 - "event": "form_shifday",  
124 - "icon": "uk-icon-table"  
125 - },  
126 - {  
127 - "id": 2.96,  
128 - "text": "维修上报记录",  
129 - "event": "form_repairReport",  
130 - "icon": "uk-icon-table"  
131 - }  
132 - ]  
133 - },  
134 - {  
135 - "id": 3,  
136 - "text": "车载设备",  
137 - "children": [  
138 - {  
139 - "id": 3.1,  
140 - "text": "设备管理",  
141 - "event": "all_devices"  
142 - },  
143 - {  
144 - "id": 3.2,  
145 - "text": "指令下发记录",  
146 - "event": "directive_history"  
147 - },  
148 - {  
149 - "id": 3.3,  
150 - "text": "设备上报记录",  
151 - "event": "device_report"  
152 - },  
153 - {  
154 - "id": 3.4,  
155 - "text": "轨迹回放",  
156 - "event": "gps_play_back"  
157 - },  
158 - {  
159 - "id": 3.5,  
160 - "text": "安全驾驶(图像)",  
161 - "event": "safe_driving"  
162 - }  
163 - ]  
164 - },  
165 - {  
166 - "id": 4,  
167 - "text": "系统设置",  
168 - "children": [  
169 - {  
170 - "id": 4.1,  
171 - "text": "线路配置",  
172 - "event": "line_config"  
173 - },  
174 - {  
175 - "id": 4.2,  
176 - "text": "TTS",  
177 - "event": "tts_config"  
178 - },  
179 - {  
180 - "id": 4.3,  
181 - "text": "信号标记",  
182 - "event": "signal_state"  
183 - },  
184 - {  
185 - "id": 4.4,  
186 - "text": "翻班与自动执行",  
187 - "event": "fbzdzx_config"  
188 - }  
189 -  
190 - ]  
191 - },  
192 - {  
193 - "id": 5,  
194 - "text": "服务热线系统",  
195 - "children": [  
196 - {  
197 - "id": 5.1,  
198 - "text": "报备登记",  
199 - "event": "report_register"  
200 - },  
201 - {  
202 - "id": 5.2,  
203 - "text": "报备登记报表",  
204 - "event": "form_report_register",  
205 - "icon": "uk-icon-table"  
206 - }  
207 - ]  
208 - } 1 +[
  2 + {
  3 + "id": 1,
  4 + "text": "数据&统计",
  5 + "children": [
  6 + {
  7 + "id": 1.1,
  8 + "text": "数据管理",
  9 + "header": 1
  10 + },
  11 + {
  12 + "id": 1.2,
  13 + "text": "当日计划排班",
  14 + "event": "curr_date_schedule"
  15 + },
  16 + {
  17 + "id": 1.3,
  18 + "text": "缓存数据管理",
  19 + "event": "cache_data_manage"
  20 + },
  21 + {
  22 + "id": 1.4,
  23 + "text": "历史路单维护",
  24 + "event": "history_sch_maintain"
  25 + },
  26 + {
  27 + "id": 1.41,
  28 + "text": "班次修正日志",
  29 + "event": "sch_edit_info"
  30 + }
  31 + ]
  32 + },
  33 + {
  34 + "id": 2,
  35 + "text": "报表管理",
  36 + "children": [
  37 + {
  38 + "id": 2.6,
  39 + "text": "报表管理",
  40 + "header": 1
  41 + },
  42 + {
  43 + "id": 2.7,
  44 + "text": "行车路单",
  45 + "event": "form_waybill",
  46 + "icon": "uk-icon-table"
  47 + },
  48 + {
  49 + "id": 2.8,
  50 + "text": "调度历史消息",
  51 + "event": "form_history_message",
  52 + "icon": "uk-icon-table"
  53 + },
  54 + {
  55 + "id": 2.9,
  56 + "text": "驾驶员请求台账",
  57 + "event": "form_account",
  58 + "icon": "uk-icon-table"
  59 + },
  60 + {
  61 + "id": 2.91,
  62 + "text": "修正报表",
  63 + "event": "form_correctForm",
  64 + "icon": "uk-icon-table"
  65 + },
  66 + {
  67 + "id": 2.92,
  68 + "text": "统计日报",
  69 + "event": "form_statisticsDaily",
  70 + "icon": "uk-icon-table"
  71 + },
  72 + {
  73 + "id": 2.93,
  74 + "text": "调度日报",
  75 + "event": "form_scheduleDaily",
  76 + "icon": "uk-icon-table"
  77 + },
  78 + {
  79 + "id": 2.94,
  80 + "text": "工作汇总",
  81 + "event": "form_jobSummary",
  82 + "icon": "uk-icon-table"
  83 + },
  84 + {
  85 + "id": 2.941,
  86 + "text": "班次日报表",
  87 + "event": "form_daily",
  88 + "icon": "uk-icon-table"
  89 + },
  90 + {
  91 + "id": 2.95,
  92 + "text": "班次到离站",
  93 + "event": "form_inoutstation",
  94 + "icon": "uk-icon-table"
  95 + },
  96 + {
  97 + "id": 2.2,
  98 + "text": "月存油报表",
  99 + "event": "form_oilListMonth",
  100 + "icon": "uk-icon-table"
  101 + },
  102 + {
  103 + "id": 2.3,
  104 + "text": "时刻表分析",
  105 + "event": "form_scheduleAnaly",
  106 + "icon": "uk-icon-table"
  107 + },
  108 + {
  109 + "id": 2.4,
  110 + "text": "调度消息分析",
  111 + "event": "form_message",
  112 + "icon": "uk-icon-table"
  113 + },
  114 + {
  115 + "id": 2.5,
  116 + "text": "换人换车情况统计表",
  117 + "event": "form_changetochange",
  118 + "icon": "uk-icon-table"
  119 + },
  120 + {
  121 + "id": 2.6,
  122 + "text": "班次车辆人员日统计",
  123 + "event": "form_shifday",
  124 + "icon": "uk-icon-table"
  125 + },
  126 + {
  127 + "id": 2.96,
  128 + "text": "维修上报记录",
  129 + "event": "form_repairReport",
  130 + "icon": "uk-icon-table"
  131 + }
  132 + ]
  133 + },
  134 + {
  135 + "id": 3,
  136 + "text": "车载设备",
  137 + "children": [
  138 + {
  139 + "id": 3.1,
  140 + "text": "设备管理",
  141 + "event": "all_devices"
  142 + },
  143 + {
  144 + "id": 3.2,
  145 + "text": "指令下发记录",
  146 + "event": "directive_history"
  147 + },
  148 + {
  149 + "id": 3.3,
  150 + "text": "设备上报记录",
  151 + "event": "device_report"
  152 + },
  153 + {
  154 + "id": 3.4,
  155 + "text": "轨迹回放",
  156 + "event": "gps_play_back"
  157 + },
  158 + {
  159 + "id": 3.5,
  160 + "text": "安全驾驶(图像)",
  161 + "event": "safe_driving"
  162 + }
  163 + ]
  164 + },
  165 + {
  166 + "id": 4,
  167 + "text": "系统设置",
  168 + "children": [
  169 + {
  170 + "id": 4.1,
  171 + "text": "线路配置",
  172 + "event": "line_config"
  173 + },
  174 + {
  175 + "id": 4.2,
  176 + "text": "TTS",
  177 + "event": "tts_config"
  178 + },
  179 + {
  180 + "id": 4.3,
  181 + "text": "信号标记",
  182 + "event": "signal_state"
  183 + },
  184 + {
  185 + "id": 4.4,
  186 + "text": "翻班与自动执行",
  187 + "event": "fbzdzx_config"
  188 + }
  189 +
  190 + ]
  191 + }
209 ] 192 ]
210 \ No newline at end of file 193 \ No newline at end of file
src/main/resources/static/real_control_v2/js/main.js
1 -/* main js */  
2 -var gb_main_ep = new EventProxy(),  
3 - res_load_ep = EventProxy.create('load_data_basic', 'load_tab', 'load_home_layout', 'load_home_line_panel', function () {  
4 - var eq = gb_main_ep;  
5 - // basic data end  
6 - eq.once('data-basic', g_emit('tab'));  
7 - // tabs  
8 - eq.once('tab', function () {  
9 - gb_tabs.init(  
10 - g_emit('home-layout')  
11 - );  
12 - });  
13 - //home layout  
14 - eq.once('home-layout', function () {  
15 - gb_home_layout.layout(  
16 - g_emit('home-line-panel')  
17 - );  
18 - });  
19 - //home line panel  
20 - eq.once('home-line-panel', function () {  
21 - gb_home_line_panel.init(g_emit('gps-time-refresh'));  
22 - });  
23 -  
24 - //start fixed time refresh gps  
25 - eq.once('gps-time-refresh', function () {  
26 - gb_data_gps.fixedTimeRefresh();  
27 - g_emit('line-schedule-layout')();  
28 - });  
29 -  
30 - //line schedule layout  
31 - eq.once('line-schedule-layout', function () {  
32 - gb_line_layout.layout(g_emit('render-sch-table'));  
33 - });  
34 -  
35 - //render schedule table  
36 - eq.once('render-sch-table', function () {  
37 - gb_schedule_table.show(function () {  
38 - //加载信号状态  
39 - gb_signal_state.init();  
40 - });  
41 -  
42 - //初始化gps异常判定  
43 - gb_gps_abnormal.initData();  
44 -  
45 - setTimeout(function () {  
46 - //嵌入地图页面  
47 - $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html');  
48 - }, 1000);  
49 - //弹出更新说明  
50 - showUpdateDescription();  
51 - });  
52 -  
53 - function g_emit(id) {  
54 - console.log('g_emit [' + id + ']');  
55 - return function () {  
56 - console.log('eq.emitLater(' + id + ')');  
57 - return eq.emitLater(id);  
58 - };  
59 - }  
60 - });  
61 -  
62 -$(document).on('click', '.ct-bottom-drawer-close', function () {  
63 - $(this).parents('.ct-bottom-drawer').removeClass('open');  
64 -});  
65 -  
66 -function connectArr(arr, separator, transFun) {  
67 - var rs = '';  
68 - $.each(arr, function (i, item) {  
69 - if (transFun)  
70 - item = transFun(item);  
71 - rs += (separator + item);  
72 - });  
73 - return rs.substr(separator.length);  
74 -}  
75 -  
76 -var gb_form_validation_opts = {  
77 - framework: 'uikit',  
78 - locale: 'zh_CN',  
79 - icon: {  
80 - valid: 'uk-icon-check',  
81 - invalid: 'uk-icon-times',  
82 - validating: 'uk-icon-refresh'  
83 - }  
84 -};  
85 -  
86 -  
87 -var notify_wait = function (t) {  
88 - UIkit.notify("<i class='uk-icon-spinner uk-icon-spin'></i> " + t, {  
89 - status: 'info'  
90 - });  
91 -};  
92 -  
93 -var notify_succ = function (t) {  
94 - UIkit.notify("<i class='uk-icon-check'></i> " + t, {  
95 - status: 'success'  
96 - });  
97 -};  
98 -  
99 -var notify_err = function (t) {  
100 - UIkit.notify("<i class='uk-icon-times'></i> " + t, {  
101 - status: 'danger'  
102 - });  
103 -};  
104 -  
105 -var alt_confirm = function (content, succ, okBtn, noCenter) {  
106 - var modalEl = UIkit.modal.confirm(content, function () {  
107 - succ && succ();  
108 - modalEl.hide();  
109 - }, {  
110 - labels: {  
111 - Ok: okBtn,  
112 - Cancel: '取消'  
113 - }  
114 - , center: !noCenter  
115 - });  
116 -};  
117 -  
118 -var show_wait_modal = function (text) {  
119 - var modalHtml =  
120 - '<div class="uk-modal" id="gb_wait_modal">' +  
121 - ' <div class="uk-modal-dialog">' +  
122 - ' <div class="uk-modal-spinner"></div>' +  
123 - ' <div class="wait-modal-text">' + text + '</div>' +  
124 - ' </div>' +  
125 - '</div>';  
126 -  
127 - $(document.body).append(modalHtml);  
128 - return UIkit.modal('#gb_wait_modal', {  
129 - bgclose: false,  
130 - modal: false  
131 - }).show();  
132 -};  
133 -  
134 -var hide_wait_modal = function () {  
135 - UIkit.modal('#gb_wait_modal').hide();  
136 -};  
137 -  
138 -  
139 -var isArray = function (obj) {  
140 - return Object.prototype.toString.call(obj) === '[object Array]';  
141 -};  
142 -  
143 -var notify_err_form = function (t, form) {  
144 - $('.uk-alert-danger', form).remove();  
145 - $('.uk-modal-footer', form).before('<div class="uk-alert uk-alert-danger" data-uk-alert="">' +  
146 - '<a href="" class="uk-alert-close uk-close"></a>' +  
147 - '<p>' + t + '</p>' +  
148 - '</div>');  
149 -  
150 - enable_submit_btn(form);  
151 -};  
152 -  
153 -var enable_submit_btn = function (form) {  
154 - var subBtn = $('button[type=submit]', form);  
155 - if (subBtn) {  
156 - subBtn.removeClass('disabled').removeAttr('disabled');  
157 - }  
158 -};  
159 -  
160 -var disabled_submit_btn = function (form) {  
161 - var subBtn = $('button[type=submit]', form);  
162 - if (subBtn) {  
163 - subBtn.addClass('disabled').attr('disabled', 'disabled');  
164 - }  
165 -};  
166 -  
167 -  
168 -function showUpdateDescription() {  
169 - //更新说明  
170 - var updateDescription = {  
171 - date: '...',  
172 - text: '<h5 style="line-height: 25px;letter-spacing: 1px;font-family: 微软雅黑;"> <span style="font-weight: 600;color: #ff0505;">修复了一个bug。</span><br><hr>该bug导致“调整人车”时,提交按钮可快速的重复点击(<small style="color: #6a6a6a;">提交按钮被误解锁</small>)。<br>有一定几率引起查询故障,导致线调页面看不到班次信息。</h5>'  
173 - };  
174 -  
175 - var storage = window.localStorage  
176 - , key = 'update_' + updateDescription.date;  
177 - var text = storage.getItem(key);  
178 - if (!text) {  
179 - var modal = '<div class="uk-modal" id="update-description-modal">' +  
180 - ' <div class="uk-modal-dialog" >' +  
181 - ' <a class="uk-modal-close uk-close"></a>' +  
182 - ' <div class="uk-modal-header">' +  
183 - ' <h2>' + updateDescription.date + '</h2></div>' + updateDescription.text +  
184 - ' </div>';  
185 -  
186 - show_modal('#update-description-modal', modal);  
187 - storage.setItem(key, updateDescription.text);  
188 - } 1 +/* main js */
  2 +var gb_main_ep = new EventProxy(),
  3 + res_load_ep = EventProxy.create('load_data_basic', 'load_tab', 'load_home_layout', 'load_home_line_panel', function () {
  4 + var eq = gb_main_ep;
  5 + // basic data end
  6 + eq.once('data-basic', g_emit('tab'));
  7 + // tabs
  8 + eq.once('tab', function () {
  9 + gb_tabs.init(
  10 + g_emit('home-layout')
  11 + );
  12 + });
  13 + //home layout
  14 + eq.once('home-layout', function () {
  15 + gb_home_layout.layout(
  16 + g_emit('home-line-panel')
  17 + );
  18 + });
  19 + //home line panel
  20 + eq.once('home-line-panel', function () {
  21 + gb_home_line_panel.init(g_emit('gps-time-refresh'));
  22 + });
  23 +
  24 + //start fixed time refresh gps
  25 + eq.once('gps-time-refresh', function () {
  26 + gb_data_gps.fixedTimeRefresh();
  27 + g_emit('line-schedule-layout')();
  28 + });
  29 +
  30 + //line schedule layout
  31 + eq.once('line-schedule-layout', function () {
  32 + gb_line_layout.layout(g_emit('render-sch-table'));
  33 + });
  34 +
  35 + //render schedule table
  36 + eq.once('render-sch-table', function () {
  37 + gb_schedule_table.show(function () {
  38 + //加载信号状态
  39 + gb_signal_state.init();
  40 + });
  41 +
  42 + //初始化gps异常判定
  43 + gb_gps_abnormal.initData();
  44 +
  45 + setTimeout(function () {
  46 + //嵌入地图页面
  47 + $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html');
  48 + }, 1000);
  49 + });
  50 +
  51 + function g_emit(id) {
  52 + console.log('g_emit [' + id + ']');
  53 + return function () {
  54 + console.log('eq.emitLater(' + id + ')');
  55 + return eq.emitLater(id);
  56 + };
  57 + }
  58 + });
  59 +
  60 +$(document).on('click', '.ct-bottom-drawer-close', function () {
  61 + $(this).parents('.ct-bottom-drawer').removeClass('open');
  62 +});
  63 +
  64 +function connectArr(arr, separator, transFun) {
  65 + var rs = '';
  66 + $.each(arr, function (i, item) {
  67 + if (transFun)
  68 + item = transFun(item);
  69 + rs += (separator + item);
  70 + });
  71 + return rs.substr(separator.length);
  72 +}
  73 +
  74 +var gb_form_validation_opts = {
  75 + framework: 'uikit',
  76 + locale: 'zh_CN',
  77 + icon: {
  78 + valid: 'uk-icon-check',
  79 + invalid: 'uk-icon-times',
  80 + validating: 'uk-icon-refresh'
  81 + }
  82 +};
  83 +
  84 +
  85 +var notify_wait = function (t) {
  86 + UIkit.notify("<i class='uk-icon-spinner uk-icon-spin'></i> " + t, {
  87 + status: 'info'
  88 + });
  89 +};
  90 +
  91 +var notify_succ = function (t) {
  92 + UIkit.notify("<i class='uk-icon-check'></i> " + t, {
  93 + status: 'success'
  94 + });
  95 +};
  96 +
  97 +var notify_err = function (t) {
  98 + UIkit.notify("<i class='uk-icon-times'></i> " + t, {
  99 + status: 'danger'
  100 + });
  101 +};
  102 +
  103 +var alt_confirm = function (content, succ, okBtn, noCenter) {
  104 + var modalEl = UIkit.modal.confirm(content, function () {
  105 + succ && succ();
  106 + modalEl.hide();
  107 + }, {
  108 + labels: {
  109 + Ok: okBtn,
  110 + Cancel: '取消'
  111 + }
  112 + , center: !noCenter
  113 + });
  114 +};
  115 +
  116 +var show_wait_modal = function (text) {
  117 + var modalHtml =
  118 + '<div class="uk-modal" id="gb_wait_modal">' +
  119 + ' <div class="uk-modal-dialog">' +
  120 + ' <div class="uk-modal-spinner"></div>' +
  121 + ' <div class="wait-modal-text">' + text + '</div>' +
  122 + ' </div>' +
  123 + '</div>';
  124 +
  125 + $(document.body).append(modalHtml);
  126 + return UIkit.modal('#gb_wait_modal', {
  127 + bgclose: false,
  128 + modal: false
  129 + }).show();
  130 +};
  131 +
  132 +var hide_wait_modal = function () {
  133 + UIkit.modal('#gb_wait_modal').hide();
  134 +};
  135 +
  136 +
  137 +var isArray = function (obj) {
  138 + return Object.prototype.toString.call(obj) === '[object Array]';
  139 +};
  140 +
  141 +var notify_err_form = function (t, form) {
  142 + $('.uk-alert-danger', form).remove();
  143 + $('.uk-modal-footer', form).before('<div class="uk-alert uk-alert-danger" data-uk-alert="">' +
  144 + '<a href="" class="uk-alert-close uk-close"></a>' +
  145 + '<p>' + t + '</p>' +
  146 + '</div>');
  147 +
  148 + enable_submit_btn(form);
  149 +};
  150 +
  151 +var enable_submit_btn = function (form) {
  152 + var subBtn = $('button[type=submit]', form);
  153 + if (subBtn) {
  154 + subBtn.removeClass('disabled').removeAttr('disabled');
  155 + }
  156 +};
  157 +
  158 +var disabled_submit_btn = function (form) {
  159 + var subBtn = $('button[type=submit]', form);
  160 + if (subBtn) {
  161 + subBtn.addClass('disabled').attr('disabled', 'disabled');
  162 + }
  163 +};
  164 +
  165 +
  166 +function showUpdateDescription() {
  167 + //更新说明
  168 + var updateDescription = {
  169 + date: '...',
  170 + text: '<h5 style="line-height: 25px;letter-spacing: 1px;font-family: 微软雅黑;"> <span style="font-weight: 600;color: #ff0505;">修复了一个bug。</span><br><hr>该bug导致“调整人车”时,提交按钮可快速的重复点击(<small style="color: #6a6a6a;">提交按钮被误解锁</small>)。<br>有一定几率引起查询故障,导致线调页面看不到班次信息。</h5>'
  171 + };
  172 +
  173 + var storage = window.localStorage
  174 + , key = 'update_' + updateDescription.date;
  175 + var text = storage.getItem(key);
  176 + if (!text) {
  177 + var modal = '<div class="uk-modal" id="update-description-modal">' +
  178 + ' <div class="uk-modal-dialog" >' +
  179 + ' <a class="uk-modal-close uk-close"></a>' +
  180 + ' <div class="uk-modal-header">' +
  181 + ' <h2>' + updateDescription.date + '</h2></div>' + updateDescription.text +
  182 + ' </div>';
  183 +
  184 + show_modal('#update-description-modal', modal);
  185 + storage.setItem(key, updateDescription.text);
  186 + }
189 } 187 }
190 \ No newline at end of file 188 \ No newline at end of file
src/main/resources/static/real_control_v2/main.html
@@ -55,7 +55,7 @@ @@ -55,7 +55,7 @@
55 <div class="uk-width-4-10"> 55 <div class="uk-width-4-10">
56 <div class="uk-panel"> 56 <div class="uk-panel">
57 <h2 class="north-logo"> 57 <h2 class="north-logo">
58 - <!--<i class="uk-icon-life-ring"></i>--> 浦东公交线路调度 58 + <!--<i class="uk-icon-life-ring"></i>--> 新城市线路调度
59 </h2> 59 </h2>
60 </div> 60 </div>
61 </div> 61 </div>
src/main/resources/static/real_control_v2/mapmonitor/fragments/map_infowindow.html
@@ -70,8 +70,8 @@ @@ -70,8 +70,8 @@
70 {{if expectStopTime!=null}} 70 {{if expectStopTime!=null}}
71 <a href="javascript:;" style="color: #07D;margin-right: 7px;">预计 {{expectStopTime}} 分钟到达终点</a> 71 <a href="javascript:;" style="color: #07D;margin-right: 7px;">预计 {{expectStopTime}} 分钟到达终点</a>
72 {{/if}} 72 {{/if}}
73 - <a href="javascript:;" style="float: left;" onclick="javascript:window.open('http://211.95.61.66:9020/transport_server/dvr_monitor2.html?userid=4&zbh={{nbbm}}');">DVR</a>  
74 - {{if dvrcode != null}}<a href="W9:1@139.196.29.203@?method=call&1111:{{dvrcode}}" style="margin-left: 50px;" >拨打电话</a>{{/if}} 73 + <a href="javascript:;" style="float: left;">DVR</a>
  74 + {{if dvrcode != null}}<a href="javascript:void(0)" style="margin-left: 50px;" >拨打电话</a>{{/if}}
75 <a href="javascript:;" style="float: right;" onclick="javascript:gb_map_play_back.initParams({deviceId: '{{deviceId}}', nbbm: '{{nbbm}}'});">轨迹回放</a> 75 <a href="javascript:;" style="float: right;" onclick="javascript:gb_map_play_back.initParams({deviceId: '{{deviceId}}', nbbm: '{{nbbm}}'});">轨迹回放</a>
76 </div> 76 </div>
77 </script> 77 </script>
src/main/resources/static/real_control_v2/mapmonitor/real.html
1 -<link href="/assets/css/TrafficControl.css" rel="stylesheet" merge="map_plugins"/>  
2 -<link rel="stylesheet" href="/real_control_v2/assets/plugins/jquery.ui/themes/base/all.css" merge="map_plugins"/>  
3 -<link rel="stylesheet" href="/real_control_v2/assets/plugins/spectrum/spectrum.css" merge="map_plugins"/>  
4 -<link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/form-advanced.gradient.min.css" merge="map_plugins"/>  
5 -<link rel="stylesheet" href="/real_control_v2/mapmonitor/css/real.css" />  
6 -<link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/progress.gradient.min.css" merge="map_plugins">  
7 -  
8 -<div class="map-system-msg flex-left">  
9 - <a class="z-depth-2 old_map" href="/pages/mapmonitor/alone/wrap.html" target="_blank"></a>  
10 - <a class="z-depth-2 now_map" href="/real_control_v2/alone_page/map/alone_wrap.html" target="_blank">  
11 - <i class="uk-icon-send-o"></i>  
12 - </a>  
13 -</div>  
14 -  
15 -<div id="real_map_container"></div>  
16 -<div class="real_right_gps_panel">  
17 - <form class="uk-form" onsubmit="return false;">  
18 - <div class="uk-autocomplete uk-form ral-gps-autocom" style="width: 100%;">  
19 - <div class="uk-form-icon">  
20 - <i class="uk-icon-search"></i>  
21 - <input type="text" placeholder="搜索...">  
22 - </div>  
23 - </div>  
24 - </form>  
25 -  
26 - <div class="gps_tree_list"></div>  
27 -</div>  
28 -  
29 -<div class="real_bottom_panel">  
30 - <!--<div id="handle" class="ui-resizable-handle ui-resizable-n"></div>-->  
31 - <div class="real_br_cont map_config_wrap"></div>  
32 - <div class="telescopic">  
33 - <i class="uk-icon-angle-double-up"></i>  
34 - </div>  
35 -</div>  
36 -  
37 -<div class="real_spatial_panel">  
38 - <div class="top-right-toggle">  
39 - <ul class="uk-subnav uk-subnav-pill" data-uk-switcher="{connect:'#spatial-tree-content'}">  
40 - <li class="sr-tab-btn"><a>站点</a></li>  
41 - <li class="cp-tab-btn"><a>停车场</a></li>  
42 - </ul>  
43 - </div>  
44 - <div class="real_spatial_body">  
45 - <ul id="spatial-tree-content" class="uk-switcher">  
46 - <li class="station-route-item">  
47 - <div class="station-route-tree"></div>  
48 - </li>  
49 - <li class="car-park-item">  
50 - <div class="carpark-panel"></div>  
51 - </li>  
52 - </ul>  
53 - </div>  
54 -</div>  
55 -  
56 -  
57 -<div class="c_b_abnorm_notice"></div>  
58 -  
59 -<script id="map_abnorm_overspeed_list-temp" type="text/html">  
60 - {{each list as obj i}}  
61 - <div class="c_b_item {{obj.ets!=null?'over':''}}" data-nbbm="{{obj.nbbm}}">  
62 - {{obj.sts}} - {{obj.nbbm}} 开始超速({{obj.speed}})  
63 -  
64 - {{if obj.ets!=null}}  
65 - <span class="c_b_over"> {{obj.ets}} 结束</span>  
66 - {{/if}}  
67 - </div>  
68 - {{/each}}  
69 -</script>  
70 -  
71 -<script src="/real_control_v2/assets/js/GeoUtils_min.js" merge="map_plugins"></script>  
72 -<script src="/real_control_v2/mapmonitor/js/config.js" merge="map_custom_js"></script>  
73 -<script src="/real_control_v2/mapmonitor/js/gps_tree.js" merge="map_custom_js"></script>  
74 -<script src="/real_control_v2/mapmonitor/js/spatial_data.js" merge="map_custom_js"></script>  
75 -<script src="/real_control_v2/mapmonitor/js/map_overlay_manager.js" merge="map_custom_js"></script>  
76 -<script src="/real_control_v2/mapmonitor/js/real.js" ></script>  
77 -<script src="/real_control_v2/mapmonitor/js/map/iMap.js" merge="map_custom_js"></script>  
78 -<script src="/real_control_v2/mapmonitor/js/map/platform/baidu.js" merge="map_custom_js"></script>  
79 -<script src="/real_control_v2/mapmonitor/js/map/platform/gaode.js" merge="map_custom_js"></script>  
80 -<!-- jquery ui -->  
81 -<script src="/real_control_v2/assets/plugins/jquery.ui/core.js" merge="map_plugins"></script>  
82 -<script src="/real_control_v2/assets/plugins/jquery.ui/widget.js" merge="map_plugins"></script>  
83 -<script src="/real_control_v2/assets/plugins/jquery.ui/mouse.js" merge="map_plugins"></script>  
84 -<script src="/real_control_v2/assets/plugins/jquery.ui/resizable.js" merge="map_plugins"></script>  
85 -<!-- 颜色选择器 -->  
86 -<script src="/real_control_v2/assets/plugins/spectrum/spectrum.js" merge="map_plugins"></script>  
87 -<!-- play back --> 1 +<link href="/assets/css/TrafficControl.css" rel="stylesheet" merge="map_plugins"/>
  2 +<link rel="stylesheet" href="/real_control_v2/assets/plugins/jquery.ui/themes/base/all.css" merge="map_plugins"/>
  3 +<link rel="stylesheet" href="/real_control_v2/assets/plugins/spectrum/spectrum.css" merge="map_plugins"/>
  4 +<link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/form-advanced.gradient.min.css" merge="map_plugins"/>
  5 +<link rel="stylesheet" href="/real_control_v2/mapmonitor/css/real.css" />
  6 +<link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/progress.gradient.min.css" merge="map_plugins">
  7 +
  8 +<div class="map-system-msg flex-left">
  9 + <!--<a class="z-depth-2 old_map" href="/pages/mapmonitor/alone/wrap.html" target="_blank"></a>-->
  10 + <a class="z-depth-2 now_map" href="/real_control_v2/alone_page/map/alone_wrap.html" target="_blank">
  11 + <i class="uk-icon-send-o"></i>
  12 + </a>
  13 +</div>
  14 +
  15 +<div id="real_map_container"></div>
  16 +<div class="real_right_gps_panel">
  17 + <form class="uk-form" onsubmit="return false;">
  18 + <div class="uk-autocomplete uk-form ral-gps-autocom" style="width: 100%;">
  19 + <div class="uk-form-icon">
  20 + <i class="uk-icon-search"></i>
  21 + <input type="text" placeholder="搜索...">
  22 + </div>
  23 + </div>
  24 + </form>
  25 +
  26 + <div class="gps_tree_list"></div>
  27 +</div>
  28 +
  29 +<div class="real_bottom_panel">
  30 + <!--<div id="handle" class="ui-resizable-handle ui-resizable-n"></div>-->
  31 + <div class="real_br_cont map_config_wrap"></div>
  32 + <div class="telescopic">
  33 + <i class="uk-icon-angle-double-up"></i>
  34 + </div>
  35 +</div>
  36 +
  37 +<div class="real_spatial_panel">
  38 + <div class="top-right-toggle">
  39 + <ul class="uk-subnav uk-subnav-pill" data-uk-switcher="{connect:'#spatial-tree-content'}">
  40 + <li class="sr-tab-btn"><a>站点</a></li>
  41 + <li class="cp-tab-btn"><a>停车场</a></li>
  42 + </ul>
  43 + </div>
  44 + <div class="real_spatial_body">
  45 + <ul id="spatial-tree-content" class="uk-switcher">
  46 + <li class="station-route-item">
  47 + <div class="station-route-tree"></div>
  48 + </li>
  49 + <li class="car-park-item">
  50 + <div class="carpark-panel"></div>
  51 + </li>
  52 + </ul>
  53 + </div>
  54 +</div>
  55 +
  56 +
  57 +<div class="c_b_abnorm_notice"></div>
  58 +
  59 +<script id="map_abnorm_overspeed_list-temp" type="text/html">
  60 + {{each list as obj i}}
  61 + <div class="c_b_item {{obj.ets!=null?'over':''}}" data-nbbm="{{obj.nbbm}}">
  62 + {{obj.sts}} - {{obj.nbbm}} 开始超速({{obj.speed}})
  63 +
  64 + {{if obj.ets!=null}}
  65 + <span class="c_b_over"> {{obj.ets}} 结束</span>
  66 + {{/if}}
  67 + </div>
  68 + {{/each}}
  69 +</script>
  70 +
  71 +<script src="/real_control_v2/assets/js/GeoUtils_min.js" merge="map_plugins"></script>
  72 +<script src="/real_control_v2/mapmonitor/js/config.js" merge="map_custom_js"></script>
  73 +<script src="/real_control_v2/mapmonitor/js/gps_tree.js" merge="map_custom_js"></script>
  74 +<script src="/real_control_v2/mapmonitor/js/spatial_data.js" merge="map_custom_js"></script>
  75 +<script src="/real_control_v2/mapmonitor/js/map_overlay_manager.js" merge="map_custom_js"></script>
  76 +<script src="/real_control_v2/mapmonitor/js/real.js" ></script>
  77 +<script src="/real_control_v2/mapmonitor/js/map/iMap.js" merge="map_custom_js"></script>
  78 +<script src="/real_control_v2/mapmonitor/js/map/platform/baidu.js" merge="map_custom_js"></script>
  79 +<script src="/real_control_v2/mapmonitor/js/map/platform/gaode.js" merge="map_custom_js"></script>
  80 +<!-- jquery ui -->
  81 +<script src="/real_control_v2/assets/plugins/jquery.ui/core.js" merge="map_plugins"></script>
  82 +<script src="/real_control_v2/assets/plugins/jquery.ui/widget.js" merge="map_plugins"></script>
  83 +<script src="/real_control_v2/assets/plugins/jquery.ui/mouse.js" merge="map_plugins"></script>
  84 +<script src="/real_control_v2/assets/plugins/jquery.ui/resizable.js" merge="map_plugins"></script>
  85 +<!-- 颜色选择器 -->
  86 +<script src="/real_control_v2/assets/plugins/spectrum/spectrum.js" merge="map_plugins"></script>
  87 +<!-- play back -->
88 <script src="/real_control_v2/mapmonitor/js/playback.js" merge="map_custom_js"></script> 88 <script src="/real_control_v2/mapmonitor/js/playback.js" merge="map_custom_js"></script>
89 \ No newline at end of file 89 \ No newline at end of file