Commit abb9a320e9e4d895f3d688c1d70fd39ca828cf1c

Authored by 廖磊
2 parents 98365b36 478adfaf

Merge branch 'pudong' of http://222.66.0.204:8090/panzhaov5/bsth_control

into pudong
Showing 23 changed files with 332 additions and 60 deletions
src/main/java/com/bsth/controller/gps/GpsController.java
@@ -84,7 +84,7 @@ public class GpsController { @@ -84,7 +84,7 @@ public class GpsController {
84 @RequestMapping(value = "/gpsHistory/multiple") 84 @RequestMapping(value = "/gpsHistory/multiple")
85 public List<Map<String, Object>> gpsHistory(@RequestParam String[] nbbmArray, @RequestParam Long st, 85 public List<Map<String, Object>> gpsHistory(@RequestParam String[] nbbmArray, @RequestParam Long st,
86 @RequestParam Long et) { 86 @RequestParam Long et) {
87 - return gpsService.history(nbbmArray, st, et); 87 + return (List<Map<String, Object>>) gpsService.history(nbbmArray, st, et).get("list");
88 } 88 }
89 89
90 /*@RequestMapping(value = "/analyse/ram") 90 /*@RequestMapping(value = "/analyse/ram")
src/main/java/com/bsth/controller/realcontrol/calc/ReCalcDataController.java 0 → 100644
  1 +package com.bsth.controller.realcontrol.calc;
  2 +
  3 +import com.bsth.common.ResponseCode;
  4 +import com.bsth.util.HttpClientUtils;
  5 +import org.slf4j.Logger;
  6 +import org.slf4j.LoggerFactory;
  7 +import org.springframework.web.bind.annotation.RequestMapping;
  8 +import org.springframework.web.bind.annotation.RequestMethod;
  9 +import org.springframework.web.bind.annotation.RequestParam;
  10 +import org.springframework.web.bind.annotation.RestController;
  11 +
  12 +import java.util.HashMap;
  13 +import java.util.Map;
  14 +
  15 +/**
  16 + * 重新统计(数据汇总)
  17 + * Created by panzhao on 2018/1/25.
  18 + */
  19 +@RestController
  20 +@RequestMapping("/sch/reCalc")
  21 +public class ReCalcDataController {
  22 +
  23 + private static String reCalcUrl = "http://10.10.150.24:30571/reCalc/scheduleDetail";
  24 +
  25 + Logger logger = LoggerFactory.getLogger(this.getClass());
  26 +
  27 + /**
  28 + * 重新统计班次明细
  29 + * @param date
  30 + * @param line
  31 + * @return
  32 + */
  33 + @RequestMapping(value = "/scheduleDetail", method = RequestMethod.POST)
  34 + public Map<String, Object> reCalcScheduleDetail(@RequestParam String date, @RequestParam String line){
  35 + Map<String, Object> rs = new HashMap();
  36 + try{
  37 + HttpClientUtils.post(reCalcUrl + "?rq=" + date + "&lineCode=" + line, "");
  38 + }catch (Exception e){
  39 + logger.error("", e);
  40 + rs.put("status", ResponseCode.ERROR);
  41 + rs.put("msg", e.getMessage());
  42 + }
  43 + return rs;
  44 + }
  45 +}
src/main/java/com/bsth/data/safe_driv/SafeDrivDataLoadThread.java
@@ -21,7 +21,7 @@ import java.util.List; @@ -21,7 +21,7 @@ import java.util.List;
21 @Component 21 @Component
22 public class SafeDrivDataLoadThread extends Thread{ 22 public class SafeDrivDataLoadThread extends Thread{
23 23
24 - private final static String url = "http://180.166.5.82:9005/bsth-safedriving/Crlcxb/realtimeInterface.do"; 24 + private final static String url = "http://180.166.5.82:9007/bsth-safedriving/Crlcxb/realtimeInterface.do";
25 25
26 Logger logger = LoggerFactory.getLogger(this.getClass()); 26 Logger logger = LoggerFactory.getLogger(this.getClass());
27 27
src/main/java/com/bsth/entity/Line.java
@@ -164,7 +164,7 @@ public class Line implements Serializable { @@ -164,7 +164,7 @@ public class Line implements Serializable {
164 /** 164 /**
165 * 逻辑删除标记 为 1:标识已删除 165 * 逻辑删除标记 为 1:标识已删除
166 */ 166 */
167 - private Integer remove; 167 + private Integer remove = 0;
168 168
169 public Integer getSpacGrade() { 169 public Integer getSpacGrade() {
170 return spacGrade; 170 return spacGrade;
src/main/java/com/bsth/service/gps/GpsService.java
@@ -13,7 +13,7 @@ public interface GpsService { @@ -13,7 +13,7 @@ public interface GpsService {
13 13
14 List<Map<String, Object>> history(String device, Long startTime, Long endTime, int directions); 14 List<Map<String, Object>> history(String device, Long startTime, Long endTime, int directions);
15 15
16 - List<Map<String, Object>> history(String[] nbbmArray, Long st, Long et); 16 + Map<String, Object> history(String[] nbbmArray, Long st, Long et);
17 17
18 Map<String, Object> findBuffAeraByCode(String code, String type); 18 Map<String, Object> findBuffAeraByCode(String code, String type);
19 19
src/main/java/com/bsth/service/gps/GpsServiceImpl.java
@@ -168,10 +168,12 @@ public class GpsServiceImpl implements GpsService { @@ -168,10 +168,12 @@ public class GpsServiceImpl implements GpsService {
168 168
169 private static DateTimeFormatter fmtyyyy = DateTimeFormat.forPattern("yyyy"); 169 private static DateTimeFormatter fmtyyyy = DateTimeFormat.forPattern("yyyy");
170 @Override 170 @Override
171 - public List<Map<String, Object>> history(String[] nbbmArray, Long st, Long et) { 171 + public Map<String, Object> history(String[] nbbmArray, Long st, Long et) {
  172 + Map<String, Object> rsMap = new HashMap<>();
172 List<Map<String, Object>> list = new ArrayList<>(); 173 List<Map<String, Object>> list = new ArrayList<>();
  174 + rsMap.put("list", list);
173 if (et - st > GPS_RANGE) 175 if (et - st > GPS_RANGE)
174 - return list; 176 + return rsMap;
175 177
176 st = st * 1000; 178 st = st * 1000;
177 et = et * 1000; 179 et = et * 1000;
@@ -193,6 +195,7 @@ public class GpsServiceImpl implements GpsService { @@ -193,6 +195,7 @@ public class GpsServiceImpl implements GpsService {
193 dc.setDevice(BasicData.deviceId2NbbmMap.inverse().get(nbbm)); 195 dc.setDevice(BasicData.deviceId2NbbmMap.inverse().get(nbbm));
194 dc.setSt(st); 196 dc.setSt(st);
195 dc.setEt(et); 197 dc.setEt(et);
  198 + dc.setType(1);
196 199
197 dcs.add(dc); 200 dcs.add(dc);
198 } 201 }
@@ -223,7 +226,7 @@ public class GpsServiceImpl implements GpsService { @@ -223,7 +226,7 @@ public class GpsServiceImpl implements GpsService {
223 if(i == len - 1) 226 if(i == len - 1)
224 sql.append(" ORDER BY device_id,ts,stop_no"); 227 sql.append(" ORDER BY device_id,ts,stop_no");
225 else 228 else
226 - sql.append(" UNION"); 229 + sql.append(" UNION ");
227 } 230 }
228 231
229 logger.info("轨迹回放 nbbm: " + nbbm + " -st: " + st + " -et: " + et + " -sql: " + sql.toString()); 232 logger.info("轨迹回放 nbbm: " + nbbm + " -st: " + st + " -et: " + et + " -sql: " + sql.toString());
@@ -302,7 +305,10 @@ public class GpsServiceImpl implements GpsService { @@ -302,7 +305,10 @@ public class GpsServiceImpl implements GpsService {
302 return (int) (Long.parseLong(o1.get("ts").toString()) - Long.parseLong(o2.get("ts").toString())); 305 return (int) (Long.parseLong(o1.get("ts").toString()) - Long.parseLong(o2.get("ts").toString()));
303 } 306 }
304 }); 307 });
305 - return list; 308 +
  309 + rsMap.put("list", list);
  310 + rsMap.put("dcs", dcs);
  311 + return rsMap;
306 } 312 }
307 313
308 private String map_get_str(Map<String, Object> map, String key){ 314 private String map_get_str(Map<String, Object> map, String key){
@@ -339,7 +345,7 @@ public class GpsServiceImpl implements GpsService { @@ -339,7 +345,7 @@ public class GpsServiceImpl implements GpsService {
339 } 345 }
340 346
341 for(DeviceChange dc : dcs){ 347 for(DeviceChange dc : dcs){
342 - if(dc.getEt() > st) 348 + if(dc.getEt() > st || dc.getEt()==0)
343 rs.add(dc); 349 rs.add(dc);
344 } 350 }
345 }catch (Exception e){ 351 }catch (Exception e){
@@ -379,9 +385,9 @@ public class GpsServiceImpl implements GpsService { @@ -379,9 +385,9 @@ public class GpsServiceImpl implements GpsService {
379 " where weeks_year in ("+sWeekOfYear+", "+eWeekOfYear+") and device_id='"+dc.getDevice()+"' and ts > "+t1+" and ts < " + t2); 385 " where weeks_year in ("+sWeekOfYear+", "+eWeekOfYear+") and device_id='"+dc.getDevice()+"' and ts > "+t1+" and ts < " + t2);
380 386
381 if(i == len - 1) 387 if(i == len - 1)
382 - sql.append(" ORDER BY device_id,ts,stop_no"); 388 + sql.append(" ORDER BY device_id,ts,stop_no ");
383 else 389 else
384 - sql.append(" UNION"); 390 + sql.append(" UNION ");
385 } 391 }
386 392
387 JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource()); 393 JdbcTemplate jdbcTemplate_ms = new JdbcTemplate(DBUtils_MS.getDataSource());
@@ -606,7 +612,7 @@ public class GpsServiceImpl implements GpsService { @@ -606,7 +612,7 @@ public class GpsServiceImpl implements GpsService {
606 612
607 try { 613 try {
608 //获取历史gps 数据 614 //获取历史gps 数据
609 - List<HistoryGps_DTO> list = HistoryGps_DTO.craete(history(new String[]{nbbm}, st, et)); 615 + List<HistoryGps_DTO> list = HistoryGps_DTO.craete((List<Map<String, Object>>) history(new String[]{nbbm}, st, et).get("list"));
610 if (list != null && list.size() > 0) { 616 if (list != null && list.size() > 0) {
611 //获取路段信息 617 //获取路段信息
612 String sql = "select ID, ST_AsText(GROAD_VECTOR) as GROAD_VECTOR,ROAD_CODE,ROAD_NAME,SPEED from bsth_c_road where road_code in(select section_code from bsth_c_sectionroute where line_code=? and destroy=0)"; 618 String sql = "select ID, ST_AsText(GROAD_VECTOR) as GROAD_VECTOR,ROAD_CODE,ROAD_NAME,SPEED from bsth_c_road where road_code in(select section_code from bsth_c_sectionroute where line_code=? and destroy=0)";
@@ -655,7 +661,8 @@ public class GpsServiceImpl implements GpsService { @@ -655,7 +661,8 @@ public class GpsServiceImpl implements GpsService {
655 661
656 try { 662 try {
657 //获取历史gps 数据 663 //获取历史gps 数据
658 - List<HistoryGps_DTOV3> list = HistoryGps_DTOV3.craete(history(new String[]{nbbm}, st, et)); 664 + Map<String, Object> gpsMap = history(new String[]{nbbm}, st, et);
  665 + List<HistoryGps_DTOV3> list = HistoryGps_DTOV3.craete((List<Map<String, Object>>) gpsMap.get("list"));
659 if (list != null && list.size() > 0) { 666 if (list != null && list.size() > 0) {
660 //关联路段名称 667 //关联路段名称
661 Map<String, String> sectionCode2Name = GeoCacheData.sectionCode2NameMap(); 668 Map<String, String> sectionCode2Name = GeoCacheData.sectionCode2NameMap();
@@ -696,6 +703,7 @@ public class GpsServiceImpl implements GpsService { @@ -696,6 +703,7 @@ public class GpsServiceImpl implements GpsService {
696 rs.put("speedList", speedList); 703 rs.put("speedList", speedList);
697 rs.put("outboundList", outboundList); 704 rs.put("outboundList", outboundList);
698 rs.put("sumMileage", new DecimalFormat(".##").format(sum / 1000)); 705 rs.put("sumMileage", new DecimalFormat(".##").format(sum / 1000));
  706 + rs.put("dcs", gpsMap.get("dcs"));
699 } catch (Exception e) { 707 } catch (Exception e) {
700 logger.error("", e); 708 logger.error("", e);
701 rs.put("status", ResponseCode.ERROR); 709 rs.put("status", ResponseCode.ERROR);
@@ -707,7 +715,7 @@ public class GpsServiceImpl implements GpsService { @@ -707,7 +715,7 @@ public class GpsServiceImpl implements GpsService {
707 @Override 715 @Override
708 public void trailExcel(String nbbm, long st, long et, HttpServletResponse resp) { 716 public void trailExcel(String nbbm, long st, long et, HttpServletResponse resp) {
709 //获取历史gps 数据 717 //获取历史gps 数据
710 - List<HistoryGps_DTOV3> list = HistoryGps_DTOV3.craete(history(new String[]{nbbm}, st, et)); 718 + List<HistoryGps_DTOV3> list = HistoryGps_DTOV3.craete((List<Map<String, Object>>) history(new String[]{nbbm}, st, et).get("list"));
711 if (list != null && list.size() > 0) { 719 if (list != null && list.size() > 0) {
712 //关联路段名称 720 //关联路段名称
713 Map<String, String> sectionCode2Name = GeoCacheData.sectionCode2NameMap(); 721 Map<String, String> sectionCode2Name = GeoCacheData.sectionCode2NameMap();
src/main/java/com/bsth/service/gps/entity/DeviceChange.java
@@ -11,6 +11,9 @@ public class DeviceChange { @@ -11,6 +11,9 @@ public class DeviceChange {
11 private long st; 11 private long st;
12 private long et; 12 private long et;
13 13
  14 + //为1 表示没有设备变更记录,直接从车辆信息上关联的设备号
  15 + private int type=0;
  16 +
14 public String getNbbm() { 17 public String getNbbm() {
15 return nbbm; 18 return nbbm;
16 } 19 }
@@ -42,4 +45,12 @@ public class DeviceChange { @@ -42,4 +45,12 @@ public class DeviceChange {
42 public void setEt(long et) { 45 public void setEt(long et) {
43 this.et = et; 46 this.et = et;
44 } 47 }
  48 +
  49 + public int getType() {
  50 + return type;
  51 + }
  52 +
  53 + public void setType(int type) {
  54 + this.type = type;
  55 + }
45 } 56 }
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -1234,7 +1234,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1234,7 +1234,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1234 ScheduleModifyLogger.sftz(sch, fcsjActual, remarks); 1234 ScheduleModifyLogger.sftz(sch, fcsjActual, remarks);
1235 1235
1236 sch.setFcsjActualAll(fcsjActual); 1236 sch.setFcsjActualAll(fcsjActual);
1237 - sch.setRemark(remarks); 1237 + sch.setRemarks(remarks);
1238 sch.calcStatus(); 1238 sch.calcStatus();
1239 //if(sch.isLate2()){ 1239 //if(sch.isLate2()){
1240 //取消应发未到标记 1240 //取消应发未到标记
src/main/resources/fatso/start.js
@@ -16,7 +16,7 @@ var platform = process.platform; @@ -16,7 +16,7 @@ var platform = process.platform;
16 var iswin = platform=='win32'; 16 var iswin = platform=='win32';
17 var sp = platform=='win32'?'\\':'/'; 17 var sp = platform=='win32'?'\\':'/';
18 //不参与的目录 18 //不参与的目录
19 -var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission'+sp+'authorize_all', 'summary', 'history_sch' ,'report'+sp+'oil','base'+sp+'geo_data_edit'] 19 +var excludes = ['scheduleApp', 'trafficManage', 'control', 'permission'+sp+'authorize_all', 'summary', 'history_sch' ,'report'+sp+'oil','base'+sp+'geo_data_edit', 'forms', 'report']
20 ,ep = new EventProxy() 20 ,ep = new EventProxy()
21 ,pName = 'bsth_control' 21 ,pName = 'bsth_control'
22 ,path = process.cwd() 22 ,path = process.cwd()
src/main/resources/static/pages/control/lineallot_v2/main.html
@@ -123,6 +123,14 @@ @@ -123,6 +123,14 @@
123 .uk-button-default{ 123 .uk-button-default{
124 background: #e0e0e0 !important; 124 background: #e0e0e0 !important;
125 } 125 }
  126 +
  127 + .line_list_all_wrap > .item.destroy{
  128 + color: #f64242;
  129 + }
  130 +
  131 + .checked_list > .item.destroy{
  132 + background: #ff5c5c;
  133 + }
126 </style> 134 </style>
127 </head> 135 </head>
128 136
@@ -169,7 +177,7 @@ @@ -169,7 +177,7 @@
169 177
170 <script id="line_list_items_temp" type="text/html"> 178 <script id="line_list_items_temp" type="text/html">
171 {{each list as obj i}} 179 {{each list as obj i}}
172 - <span class="item" data-id="{{obj.lineCode}}" data-gsbm="{{obj.company}}_{{obj.brancheCompany}}">{{obj.name}}</span> 180 + <span class="item {{obj.destroy==1?'destroy':''}}" data-id="{{obj.lineCode}}" data-gsbm="{{obj.company}}_{{obj.brancheCompany}}">{{obj.name}}</span>
173 {{/each}} 181 {{/each}}
174 </script> 182 </script>
175 183
@@ -258,7 +266,7 @@ @@ -258,7 +266,7 @@
258 /** 266 /**
259 * 查询所有线路 267 * 查询所有线路
260 */ 268 */
261 - $.get('/line/all', {destroy_eq: 0}, function (list) { 269 + $.get('/line/all', {remove_ne: 1}, function (list) {
262 ep.emit('all_lines', list); 270 ep.emit('all_lines', list);
263 }); 271 });
264 272
@@ -283,7 +291,7 @@ @@ -283,7 +291,7 @@
283 } 291 }
284 else { 292 else {
285 $(this).addClass('active'); 293 $(this).addClass('active');
286 - var span = $('<span data-id="'+lineCode+'" class="item uk-card uk-card-default uk-animation-slide-bottom">'+name+'</span>') 294 + var span = $('<span data-id="'+lineCode+'" class="item uk-card uk-card-default uk-animation-slide-bottom '+($(this).hasClass('destroy')?"destroy":"")+'">'+name+'</span>')
287 .one('webkitAnimationEnd', function () { 295 .one('webkitAnimationEnd', function () {
288 $(this).removeClass('uk-animation-slide-bottom'); 296 $(this).removeClass('uk-animation-slide-bottom');
289 }); 297 });
src/main/resources/static/pages/home.html
@@ -63,31 +63,29 @@ @@ -63,31 +63,29 @@
63 <li><span class="label s_c_add">新增</span>1、新增站点间双路段生成功能。</li> 63 <li><span class="label s_c_add">新增</span>1、新增站点间双路段生成功能。</li>
64 <li><span class="label s_c_change">修复</span>2、修复一个bug,在线路编辑页面初始化线路的系统规划功能,百度地图上缺少的线路会显示一直加载。</li> 64 <li><span class="label s_c_change">修复</span>2、修复一个bug,在线路编辑页面初始化线路的系统规划功能,百度地图上缺少的线路会显示一直加载。</li>
65 <li><span class="label s_c_change">修复</span>3、修复一个bug,在修改站点时选择取消,不点击站点树状图,直接选择上/下行操作里的修改站点,会出现没有可修改站点的bug。</li> 65 <li><span class="label s_c_change">修复</span>3、修复一个bug,在修改站点时选择取消,不点击站点树状图,直接选择上/下行操作里的修改站点,会出现没有可修改站点的bug。</li>
66 - <li><span class="label s_c_change">修复</span>4、线路跨版本更新修复。</li>  
67 - <li><span class="label s_c_change">修复</span>5、线路、线路版本、停车场查询列表显示公司。</li>  
68 - <li><span class="label s_c_add">新增</span>6、新增线路删除功能,可以删除已撤销的线路,仅用于剔除录入错误的数据,如出现误操作,请联系管理员恢复数据。</li> 66 + <li><span class="label s_c_add">新增</span>4、新增线路删除功能,可以删除已撤销的线路,仅用于剔除录入错误的数据,如出现误操作,请联系管理员恢复数据。</li>
69 <li class="sub_title"><h6>用油和报表</h6></li> 67 <li class="sub_title"><h6>用油和报表</h6></li>
70 - <li><span class="label s_c_add">新增</span>7、油量,电量记录操作日志。</li>  
71 - <li><span class="label s_c_change">修复</span>8、修正获取加存油信息特殊情况下获取不到前一天的进场值。</li>  
72 - <li><span class="label s_c_change">修复</span>9、行车路单批量导出,由之前导出成多个压缩文件改为导出成一个文件</li>  
73 - <li><span class="label s_c_add">新增</span>10、新增班次准点率统计导出。</li>  
74 - <li><span class="label s_c_change">修复</span>11、修复一个bug,这个bug导致在更换设备号后,驾驶员请求台账出现车辆字段为空的情况。</li> 68 + <li><span class="label s_c_add">新增</span>5、油量,电量记录操作日志。</li>
  69 + <li><span class="label s_c_change">修复</span>6、修正获取加存油信息特殊情况下获取不到前一天的进场值。</li>
  70 + <li><span class="label s_c_change">修复</span>7、行车路单批量导出,由之前导出成多个压缩文件改为导出成一个文件</li>
  71 + <li><span class="label s_c_add">新增</span>8、新增班次准点率统计导出。</li>
  72 + <li><span class="label s_c_change">修复</span>9、修复一个bug,这个bug导致在更换设备号后,驾驶员请求台账出现车辆字段为空的情况。</li>
75 <li class="sub_title"><h6>计划调度</h6></li> 73 <li class="sub_title"><h6>计划调度</h6></li>
76 - <li><span class="label s_c_add">新增</span>12、时刻表自动生成,根据时间间隔自动时刻表生成,导出生成的时刻表数据。</li>  
77 - <li><span class="label s_c_add">新增</span>13、时刻表版本导入,导入时刻表可选版本,编辑时间表带版本。</li>  
78 - <li><span class="label s_c_add">新增</span>14、添加车辆报废功能,释放报废的车辆所持有的设备编号。</li>  
79 - <li><span class="label s_c_change">修复</span>15、车辆设备管理,启用日期精确到时间分钟。</li> 74 + <li><span class="label s_c_add">新增</span>10、时刻表自动生成,根据时间间隔自动时刻表生成,导出生成的时刻表数据。</li>
  75 + <li><span class="label s_c_add">新增</span>11、时刻表版本导入,导入时刻表可选版本,编辑时间表带版本。</li>
  76 + <li><span class="label s_c_add">新增</span>12、添加车辆报废功能,释放报废的车辆所持有的设备编号。</li>
  77 + <li><span class="label s_c_change">修复</span>13、车辆设备管理,启用日期精确到时间分钟。</li>
80 <li class="sub_title"><h6>线调</h6></li> 78 <li class="sub_title"><h6>线调</h6></li>
81 - <li><span class="label s_c_change">修复</span>16、修复一个轨迹回放的bug,这个bug导致在车辆更换设备号之后,无法回放更换设备之前的数据。</li>  
82 - <li><span class="label s_c_change">修复</span>17、修复驾驶员请求信使,无法点击不同意的问题。</li>  
83 - <li><span class="label s_c_add">新增</span>18、新增异常提示,当子任务公里与计划不等时,子任务 badge 将会显示为红色,相等则为绿色。</li>  
84 - <li><span class="label s_c_add">新增</span>19、新增子任务修改功能。</li>  
85 - <li><span class="label s_c_add">新增</span>20、新增点击路牌单元格时,信使框下方弹出tip,显示路牌公里。</li>  
86 - <li><span class="label s_c_add">新增</span>21、新增车辆状态标记,如果车辆在套跑其他线路班次,在车辆单元格右上角会出现一个 icon 显示车辆当前执行的线路。</li>  
87 - <li><span class="label s_c_add">新增</span>22、新增双击车辆单元格展开全部车辆面板,显示所有的计划用车和实际的车载信号。</li>  
88 - <li><span class="label s_c_add">新增</span>23、新增超速提醒,地图模块左下角。</li>  
89 - <li><span class="label s_c_remove">删除</span>24、移除了表格渐变色。</li>  
90 - <li><span class="label s_c_add">新增</span>25、模拟图车辆展开的tip上,显示司售信息。</li>  
91 - <li><span class="label s_c_add">新增</span>26、轨迹回放窗口打开时,点击班次,会自动将班次车辆时间写入轨迹搜索表单。</li> 79 + <li><span class="label s_c_change">修复</span>14、修复一个轨迹回放的bug,这个bug导致在车辆更换设备号之后,无法回放更换设备之前的数据。</li>
  80 + <li><span class="label s_c_change">修复</span>15、修复驾驶员请求信使,无法点击不同意的问题。</li>
  81 + <li><span class="label s_c_add">新增</span>16、新增异常提示,当子任务公里与计划不等时,子任务 badge 将会显示为红色,相等则为绿色。</li>
  82 + <li><span class="label s_c_add">新增</span>17、新增子任务修改功能。</li>
  83 + <li><span class="label s_c_add">新增</span>18、新增点击路牌单元格时,信使框下方弹出tip,显示路牌公里。</li>
  84 + <li><span class="label s_c_add">新增</span>19、新增车辆状态标记,如果车辆在套跑其他线路班次,在车辆单元格右上角会出现一个 icon 显示车辆当前执行的线路。</li>
  85 + <li><span class="label s_c_add">新增</span>20、新增双击车辆单元格展开全部车辆面板,显示所有的计划用车和实际的车载信号。</li>
  86 + <li><span class="label s_c_add">新增</span>21、新增超速提醒,地图模块左下角。</li>
  87 + <li><span class="label s_c_remove">删除</span>22、移除了表格渐变色。</li>
  88 + <li><span class="label s_c_add">新增</span>23、模拟图车辆展开的tip上,显示司售信息。</li>
  89 + <li><span class="label s_c_add">新增</span>24、轨迹回放窗口打开时,点击班次,会自动将班次车辆时间写入轨迹搜索表单。</li>
92 </ul> 90 </ul>
93 </div> 91 </div>
src/main/resources/static/pages/permission/authorize_all/authorize.html
@@ -181,6 +181,15 @@ @@ -181,6 +181,15 @@
181 font-size: 14px; 181 font-size: 14px;
182 font-family: 微软雅黑; 182 font-family: 微软雅黑;
183 } 183 }
  184 +
  185 + .sub_lines>span.line_btn.destroy{
  186 + background: #ff5c5c;
  187 + }
  188 +
  189 + .sub_lines>span.line_btn.destroy:hover{
  190 + background: #ff7373;
  191 + }
  192 +
184 .sub_lines>span.line_btn:hover{ 193 .sub_lines>span.line_btn:hover{
185 background: #2dd7ed; 194 background: #2dd7ed;
186 } 195 }
@@ -251,6 +260,23 @@ @@ -251,6 +260,23 @@
251 background: #1e87f0; 260 background: #1e87f0;
252 color: #fff; 261 color: #fff;
253 } 262 }
  263 +
  264 + .line_checkbox_list>.btn.destroy,
  265 + .line_checkbox_list>.btn.destroy>input{
  266 + border-color: #ff9595;
  267 + color: #ff5c5c;
  268 + }
  269 +
  270 + .line_checkbox_list>.btn.destroy.active{
  271 + background: #ff5c5c;
  272 + color: #fff;
  273 + }
  274 +
  275 + .line_checkbox_list>.btn.destroy.active>input{
  276 + background-color: #ff5c5c !important;
  277 + border-color: #ff5c5c !important;
  278 + }
  279 +
254 #role_authorize_wrap .ztree *{ 280 #role_authorize_wrap .ztree *{
255 font-size: 14px; 281 font-size: 14px;
256 } 282 }
@@ -267,6 +293,10 @@ @@ -267,6 +293,10 @@
267 .loading circle{ 293 .loading circle{
268 stroke: red; 294 stroke: red;
269 } 295 }
  296 +
  297 + #select_line_modal .uk-checkbox:checked {
  298 + background-color: #1e87f0;
  299 + }
270 </style> 300 </style>
271 </head> 301 </head>
272 302
@@ -455,7 +485,7 @@ @@ -455,7 +485,7 @@
455 }); 485 });
456 486
457 //query all line 487 //query all line
458 - $.get('/line/all', {'destroy_eq': 0}, function (rs) { 488 + $.get('/line/all', {'remove_ne': 1}, function (rs) {
459 ep.emit('query_line', rs); 489 ep.emit('query_line', rs);
460 }); 490 });
461 491
src/main/resources/static/pages/permission/authorize_all/user_auth.html
@@ -86,6 +86,14 @@ @@ -86,6 +86,14 @@
86 <h2 class="uk-modal-title">添加线路权限</h2> 86 <h2 class="uk-modal-title">添加线路权限</h2>
87 <div> 87 <div>
88 <form> 88 <form>
  89 + <div class="ct_field" style="width: 140px;">
  90 + <label>状态</label>
  91 + <select class="uk-select" id="modal_type_select" style="width: 94px;">
  92 + <option value="-1">全部</option>
  93 + <option value="0">营运</option>
  94 + <option value="1">撤销</option>
  95 + </select>
  96 + </div>
89 <div class="ct_field"> 97 <div class="ct_field">
90 <label>公司</label> 98 <label>公司</label>
91 <select class="uk-select" id="modal_company_select"></select> 99 <select class="uk-select" id="modal_company_select"></select>
@@ -115,7 +123,7 @@ @@ -115,7 +123,7 @@
115 <h5>{{t.fgsName}}</h5> 123 <h5>{{t.fgsName}}</h5>
116 <div class="sub_lines"> 124 <div class="sub_lines">
117 {{each t.list as obj j}} 125 {{each t.list as obj j}}
118 - <span class="line_btn">{{obj.name}}</span> 126 + <span title="{{obj.lineCode}}" class="line_btn {{obj.destroy==1?'destroy':''}}">{{obj.name}}</span>
119 {{/each}} 127 {{/each}}
120 </div> 128 </div>
121 {{/each}} 129 {{/each}}
@@ -128,7 +136,7 @@ @@ -128,7 +136,7 @@
128 136
129 <script id="authorize-modal-lines-temp" type="text/html"> 137 <script id="authorize-modal-lines-temp" type="text/html">
130 {{each list as obj i}} 138 {{each list as obj i}}
131 - <label class="btn" data-gs="{{obj.company}}" data-fgs="{{obj.brancheCompany}}" title="{{obj.name}}" data-code="{{obj.lineCode}}"> 139 + <label class="btn {{obj.destroy==1?'destroy':''}}" data-gs="{{obj.company}}" data-fgs="{{obj.brancheCompany}}" title="{{obj.name}}" data-code="{{obj.lineCode}}">
132 <input class="uk-checkbox" type="checkbox" >{{obj.name}} 140 <input class="uk-checkbox" type="checkbox" >{{obj.name}}
133 </label> 141 </label>
134 {{/each}} 142 {{/each}}
@@ -240,7 +248,7 @@ @@ -240,7 +248,7 @@
240 $('#modal_line_input', modal).focus(); 248 $('#modal_line_input', modal).focus();
241 }); 249 });
242 function render_line_select_modal() { 250 function render_line_select_modal() {
243 - var htmlStr = template('authorize-modal-lines-temp', {list: all_lines}); 251 + var htmlStr = template('authorize-modal-lines-temp', {list: all_lines, destroy: $('.modal_type_select',modal).val()});
244 $('.line_checkbox_list').html(htmlStr); 252 $('.line_checkbox_list').html(htmlStr);
245 //选中线路 253 //选中线路
246 var codeArray=[]; 254 var codeArray=[];
@@ -274,6 +282,7 @@ @@ -274,6 +282,7 @@
274 filter_modal_lines(); 282 filter_modal_lines();
275 }); 283 });
276 $('#modal_sub_company_select', modal).on('change', filter_modal_lines); 284 $('#modal_sub_company_select', modal).on('change', filter_modal_lines);
  285 + $('#modal_type_select', modal).on('change', filter_modal_lines);
277 } 286 }
278 287
279 $('#modal_line_input', modal).on('input', function () { 288 $('#modal_line_input', modal).on('input', function () {
@@ -296,22 +305,29 @@ @@ -296,22 +305,29 @@
296 }); 305 });
297 306
298 function filter_modal_lines() { 307 function filter_modal_lines() {
  308 + console.log('filter_modal_lines');
299 var company=$('#modal_company_select', modal).val(),//公司代码 309 var company=$('#modal_company_select', modal).val(),//公司代码
300 - sub_company=$('#modal_sub_company_select', modal).val();//分公司代码 310 + sub_company=$('#modal_sub_company_select', modal).val(),//分公司代码
  311 + type = $('#modal_type_select', modal).val();//线路状态
301 312
302 var array = $('.line_checkbox_list>label.btn').css('display', 'none'),s_dom=[]; 313 var array = $('.line_checkbox_list>label.btn').css('display', 'none'),s_dom=[];
303 314
304 - if(!company && !sub_company){ 315 + if(!company && !sub_company && type==-1){
305 array.css('display', 'inline-block'); 316 array.css('display', 'inline-block');
306 return; 317 return;
307 } 318 }
308 319
  320 + var status;
309 array.each(function () { 321 array.each(function () {
310 if(company && $(this).data('gs')!=company) 322 if(company && $(this).data('gs')!=company)
311 return true; 323 return true;
312 if(sub_company && $(this).data('fgs')!=sub_company) 324 if(sub_company && $(this).data('fgs')!=sub_company)
313 return true; 325 return true;
314 326
  327 + status = $(this).hasClass('destroy')?1:0;
  328 + if(type!=-1 && type!=status)
  329 + return true;
  330 +
315 s_dom.push(this); 331 s_dom.push(this);
316 }); 332 });
317 for(var i=0,dom;dom=s_dom[i++];) 333 for(var i=0,dom;dom=s_dom[i++];)
src/main/resources/static/real_control_v2/css/main.css
@@ -1806,7 +1806,7 @@ dl.active &gt; dd.disabled { @@ -1806,7 +1806,7 @@ dl.active &gt; dd.disabled {
1806 padding: 7px; 1806 padding: 7px;
1807 background: #ffffff; 1807 background: #ffffff;
1808 box-shadow: 5px 5px 15px rgba(90, 90, 90, 0.48); 1808 box-shadow: 5px 5px 15px rgba(90, 90, 90, 0.48);
1809 - max-height: 290px; 1809 + max-height: 125px;
1810 overflow-y: auto; 1810 overflow-y: auto;
1811 min-height: 40px; 1811 min-height: 40px;
1812 } 1812 }
@@ -2035,4 +2035,23 @@ dl.active &gt; dd.disabled { @@ -2035,4 +2035,23 @@ dl.active &gt; dd.disabled {
2035 overflow: hidden; 2035 overflow: hidden;
2036 text-overflow: ellipsis; 2036 text-overflow: ellipsis;
2037 white-space: nowrap; 2037 white-space: nowrap;
  2038 +}
  2039 +
  2040 +.tab-line.destroy>a{
  2041 + background: #ff5c5c;
  2042 + color: #fff !important;
  2043 + border-radius: 0;
  2044 +}
  2045 +
  2046 +.tab-line.destroy>a:hover{
  2047 + background: #ff3333 !important;
  2048 + border-color: #ff3333 !important;
  2049 +}
  2050 +
  2051 +.uk-tab>li.uk-active.destroy>a{
  2052 + color: red !important;
  2053 +}
  2054 +
  2055 +.uk-tab>li.uk-active.destroy>a:hover{
  2056 + background: #fff !important;
2038 } 2057 }
2039 \ No newline at end of file 2058 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/line_schedule/car_info_all.html
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 <a href="" class="uk-modal-close uk-close"></a> 3 <a href="" class="uk-modal-close uk-close"></a>
4 4
5 <div class="uk-modal-header"> 5 <div class="uk-modal-header">
6 - <h2>1006路 -全部车辆</h2></div> 6 + <h2><span class="line_name_span"></span> -全部车辆</h2></div>
7 7
8 <table class="uk-table uk-table-hover" style="table-layout: fixed;"> 8 <table class="uk-table uk-table-hover" style="table-layout: fixed;">
9 <thead> 9 <thead>
@@ -52,6 +52,7 @@ @@ -52,6 +52,7 @@
52 lineCode = data.lineCode; 52 lineCode = data.lineCode;
53 nbbm = data.nbbm; 53 nbbm = data.nbbm;
54 54
  55 + $('.line_name_span', modal).html(gb_data_basic.lineCode2NameAll()[lineCode]);
55 jsDoQuery(function () { 56 jsDoQuery(function () {
56 var $cell = $('tr[data-nbbm='+nbbm+']', modal); 57 var $cell = $('tr[data-nbbm='+nbbm+']', modal);
57 //定位到行 58 //定位到行
src/main/resources/static/real_control_v2/fragments/north/nav/history_sch_maintain.html
@@ -431,7 +431,7 @@ @@ -431,7 +431,7 @@
431 $(that).prepend('<i class="uk-icon-spinner uk-icon-spin"></i>'); 431 $(that).prepend('<i class="uk-icon-spinner uk-icon-spin"></i>');
432 432
433 433
434 - var reCountEp = EventProxy.create('ylbUpdate', function () { 434 + var reCountEp = EventProxy.create('ylbUpdate', 'calcWaybill', 'scheduleDetail', function () {
435 $('i.uk-icon-spin', that).remove(); 435 $('i.uk-icon-spin', that).remove();
436 $(that).removeAttr('disabled'); 436 $(that).removeAttr('disabled');
437 notify_succ('重新统计成功!'); 437 notify_succ('重新统计成功!');
@@ -447,6 +447,11 @@ @@ -447,6 +447,11 @@
447 reCountEp.emitLater('ylbUpdate'); 447 reCountEp.emitLater('ylbUpdate');
448 }); 448 });
449 449
  450 + //重新统计班次明细
  451 + gb_common.$post('/sch/reCalc/scheduleDetail', {date:rq, line: lineCode}, function () {
  452 + reCountEp.emitLater('scheduleDetail');
  453 + });
  454 +
450 }, '我确定'); 455 }, '我确定');
451 }); 456 });
452 })(); 457 })();
src/main/resources/static/real_control_v2/fragments/north/tabs.html
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 <li class="uk-active" ><a>主页</a></li> 4 <li class="uk-active" ><a>主页</a></li>
5 <li id="north_tabs_map_btn"><a>地图</a></li> 5 <li id="north_tabs_map_btn"><a>地图</a></li>
6 {{each list as line i}} 6 {{each list as line i}}
7 - <li class="tab-line" data-code="{{line.lineCode}}"><a>{{line.name}}(<span id="badge_untreated_num_{{line.lineCode}}">0</span>, <span id="badge_yfwf_num_{{line.lineCode}}">0</span>)</a></li> 7 + <li class="tab-line {{line.destroy==1?'destroy':''}}" data-code="{{line.lineCode}}"><a>{{line.name}}(<span id="badge_untreated_num_{{line.lineCode}}">0</span>, <span id="badge_yfwf_num_{{line.lineCode}}">0</span>)</a></li>
8 {{/each}} 8 {{/each}}
9 </ul> 9 </ul>
10 </script> 10 </script>
src/main/resources/static/real_control_v2/js/data/data_basic.js
@@ -208,6 +208,8 @@ var gb_data_basic = (function () { @@ -208,6 +208,8 @@ var gb_data_basic = (function () {
208 }, 208 },
209 //是否是环线 209 //是否是环线
210 isLoopLine: function (lineCode) { 210 isLoopLine: function (lineCode) {
  211 + if(!stationRoutes[lineCode])
  212 + return false;
211 var data = gb_common.groupBy(stationRoutes[lineCode], 'directions'); 213 var data = gb_common.groupBy(stationRoutes[lineCode], 'directions');
212 //下行只有2个站点 214 //下行只有2个站点
213 var len = data[0].length; 215 var len = data[0].length;
src/main/resources/static/real_control_v2/js/utils/svg_chart.js
@@ -55,6 +55,8 @@ var gb_svg_chart = (function () { @@ -55,6 +55,8 @@ var gb_svg_chart = (function () {
55 var loopLine = gb_data_basic.isLoopLine(lineCode); 55 var loopLine = gb_data_basic.isLoopLine(lineCode);
56 56
57 var routes = gb_data_basic.stationRoutes(lineCode); 57 var routes = gb_data_basic.stationRoutes(lineCode);
  58 + if(!routes)
  59 + return;
58 var data = gb_svg_data_convert.mergeRoute(JSON.parse(JSON.stringify(routes)), enableAttr, lineCode, loopLine), 60 var data = gb_svg_data_convert.mergeRoute(JSON.parse(JSON.stringify(routes)), enableAttr, lineCode, loopLine),
59 len = data.length; 61 len = data.length;
60 62
src/main/resources/static/real_control_v2/mapmonitor/css/real.css
@@ -1342,7 +1342,7 @@ span.flatpickr-weekday{ @@ -1342,7 +1342,7 @@ span.flatpickr-weekday{
1342 width: 100% !important; 1342 width: 100% !important;
1343 font-size: 12px; 1343 font-size: 12px;
1344 color: #747474 !important; 1344 color: #747474 !important;
1345 - border-bottom: 1px dashed #ededed; 1345 + /*border-bottom: 1px dashed #ededed;*/
1346 } 1346 }
1347 1347
1348 .gps-play-back-panel-v3 .play-back-tools-wrap .top-btn-list{ 1348 .gps-play-back-panel-v3 .play-back-tools-wrap .top-btn-list{
@@ -1448,4 +1448,68 @@ ul.base_line_list&gt;li:nth-child(even)&gt;a { @@ -1448,4 +1448,68 @@ ul.base_line_list&gt;li:nth-child(even)&gt;a {
1448 ul.base_line_list>li>a:hover{ 1448 ul.base_line_list>li>a:hover{
1449 color: #fff !important; 1449 color: #fff !important;
1450 background: #848686 !important; 1450 background: #848686 !important;
  1451 +}
  1452 +.play-back-form>.dynamic_devices{
  1453 + position: absolute;
  1454 + top: 15px;
  1455 + z-index: 9;
  1456 + right: 83px;
  1457 + font-size: 12px;
  1458 + background: #ffd863;
  1459 + padding: 0 5px;
  1460 + border-radius: 2px;
  1461 + box-shadow: 0px 3px 11px rgba(0,0,0,.08);
  1462 + max-width: 120px;
  1463 + overflow: hidden;
  1464 + text-overflow: ellipsis;
  1465 + white-space: nowrap;
  1466 + min-width: 60px;
  1467 + text-align: center;
  1468 + cursor: default;
  1469 +}
  1470 +
  1471 +.dynamic_devices_dropdown{
  1472 + position: absolute;
  1473 + z-index: 10;
  1474 + background: #ffd863;
  1475 + top: 40px;
  1476 + left: 160px;
  1477 + box-shadow: -1px 8px 11px rgba(0,0,0,.08);
  1478 + width: 280px;
  1479 + padding: 7px;
  1480 + display: none;
  1481 + font-size: 12px;
  1482 +}
  1483 +
  1484 +
  1485 +.dynamic_devices_dropdown>ul{
  1486 + margin-bottom: 0;
  1487 +}
  1488 +
  1489 +.dynamic_devices_dropdown>ul>li:first-child{
  1490 + margin-bottom: 7px;
  1491 +}
  1492 +
  1493 +.dynamic_devices_dropdown>ul>li{
  1494 + border-bottom: 1px solid #ffeaa9;
  1495 +}
  1496 +
  1497 +.dynamic_devices_dropdown>ul>li:last-child{
  1498 + border-bottom: none;
  1499 +}
  1500 +
  1501 +.dynamic_devices_dropdown.style1{
  1502 + width: 170px;
  1503 + left: 185px;
  1504 + padding: 2px;
  1505 +}
  1506 +
  1507 +.dynamic_devices_dropdown>ul>li>div{
  1508 + display: inline-block;
  1509 + width: 90px;
  1510 + vertical-align: top;
  1511 +}
  1512 +
  1513 +.gps-play-back-panel-v3 .parks_list .uk-form-icon{
  1514 + width: 86%;
1451 } 1515 }
1452 \ No newline at end of file 1516 \ No newline at end of file
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/layout.html
@@ -118,13 +118,50 @@ @@ -118,13 +118,50 @@
118 {{/if}} 118 {{/if}}
119 </script> 119 </script>
120 <script id="pbv3_park_dropdown-temp" type="text/html"> 120 <script id="pbv3_park_dropdown-temp" type="text/html">
  121 + <li style="text-align: center;">
  122 + <form class="uk-form" data-uk-margin>
  123 + <div class="uk-form-icon">
  124 + <i class="uk-icon-search"></i>
  125 + <input type="text" placeholder="搜索" >
  126 + </div>
  127 + </form>
  128 + </li>
  129 + <li class="uk-nav-divider"></li>
121 {{each list as p i}} 130 {{each list as p i}}
122 <li data-code="{{p.parkCode}}" ><a>{{p.parkName}}</a></li> 131 <li data-code="{{p.parkCode}}" ><a>{{p.parkName}}</a></li>
123 - {{if i == 0}}  
124 - <li class="uk-nav-divider"></li>  
125 - {{/if}}  
126 {{/each}} 132 {{/each}}
127 </script> 133 </script>
  134 +
  135 + <script id="pbv3_park_form_devices-temp" type="text/html">
  136 + <div class="uk-animation-slide-top dynamic_devices" >
  137 + <span>{{deviceStr}}</span>
  138 + </div>
  139 + </script>
  140 +
  141 + <script id="pbv3_park_devices_dropdown-temp" type="text/html">
  142 + {{if dcs.length==1 && dcs[0].type==1}}
  143 + <div class="dynamic_devices_dropdown style1">
  144 + <div style="text-align: center;">从车辆基础信息关联设备号</div>
  145 + </div>
  146 + {{else}}
  147 + <div class="dynamic_devices_dropdown">
  148 + <ul class="uk-list">
  149 + <li>
  150 + <div>设备号</div>
  151 + <div>启用时间</div>
  152 + <div>停用时间</div>
  153 + </li>
  154 + {{each dcs as dc i}}
  155 + <li>
  156 + <div>{{dc.device}}</div>
  157 + <div>{{dc.stStr}}</div>
  158 + <div>{{dc.etStr}}</div>
  159 + </li>
  160 + {{/each}}
  161 + </ul>
  162 + </div>
  163 + {{/if}}
  164 + </script>
128 <script> 165 <script>
129 (function () { 166 (function () {
130 var wrap = '.gps-play-back-panel-v3'; 167 var wrap = '.gps-play-back-panel-v3';
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/left.html
@@ -141,9 +141,9 @@ @@ -141,9 +141,9 @@
141 createScrollbar(); 141 createScrollbar();
142 142
143 //show title 143 //show title
144 - UIkit.notify("设备端自身标识为无效的GPS点位,将不会再进入回放通路", { 144 + /*UIkit.notify("设备端自身标识为无效的GPS点位,将不会再进入回放通路", {
145 status: 'info' 145 status: 'info'
146 - }); 146 + });*/
147 }); 147 });
148 148
149 /** 149 /**
@@ -224,6 +224,23 @@ @@ -224,6 +224,23 @@
224 224
225 //更新滚动条 225 //更新滚动条
226 resetScrollbar(); 226 resetScrollbar();
  227 +
  228 + /**
  229 + * 显示设备更换信息
  230 + */
  231 + var deviceStr='', fs='YYYY-MM-DD HH:mm';
  232 + for(var i=0,dc;dc=rs.dcs[i++];){
  233 + deviceStr+=dc.device + ',';
  234 + dc.stStr = moment(dc.st).format(fs);
  235 + dc.etStr = dc.et>0?moment(dc.et).format(fs):'';
  236 + }
  237 + deviceStr=deviceStr.substr(0, deviceStr.length-1);
  238 +
  239 + $('.play-back-form>.dynamic_devices', leftWrap).remove();
  240 + $('.play-back-form>.dynamic_devices_dropdown', leftWrap).remove();
  241 + var htmlStr = template('pbv3_park_form_devices-temp', {deviceStr:deviceStr}),
  242 + htmlStr2 = template('pbv3_park_devices_dropdown-temp', {dcs:rs.dcs});
  243 + $('.play-back-form', leftWrap).append(htmlStr).append(htmlStr2);
227 }); 244 });
228 } 245 }
229 } catch (e) { 246 } catch (e) {
@@ -270,6 +287,9 @@ @@ -270,6 +287,9 @@
270 287
271 //车辆 autocomplete 288 //车辆 autocomplete
272 gb_common.carAutocomplete($('.autocomplete-nbbm', leftWrap), gb_data_basic.carsArray()); 289 gb_common.carAutocomplete($('.autocomplete-nbbm', leftWrap), gb_data_basic.carsArray());
  290 + $('.autocomplete-nbbm', leftWrap).on('input', function () {
  291 + $('.play-back-form>.dynamic_devices', leftWrap).remove();
  292 + });
273 293
274 /** 294 /**
275 * 车辆选择抽屉显示 295 * 车辆选择抽屉显示
@@ -458,6 +478,12 @@ @@ -458,6 +478,12 @@
458 $('.abnormal_table .ct_table_body', leftWrap).html(htmlStr); 478 $('.abnormal_table .ct_table_body', leftWrap).html(htmlStr);
459 } 479 }
460 480
  481 + $(leftWrap).on('mouseover', '.dynamic_devices', function () {
  482 + $('.dynamic_devices_dropdown', leftWrap).show();
  483 + }).on('mouseout', function () {
  484 + $('.dynamic_devices_dropdown', leftWrap).hide();
  485 + });
  486 +
461 return { 487 return {
462 fillTrailTable: fillTrailTable, 488 fillTrailTable: fillTrailTable,
463 fillArivalStationTable: fillArivalStationTable, 489 fillArivalStationTable: fillArivalStationTable,
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/right.html
@@ -649,7 +649,7 @@ @@ -649,7 +649,7 @@
649 (function (lineCode) { 649 (function (lineCode) {
650 //从地图模块获取停车场数据 650 //从地图模块获取停车场数据
651 var parks = gb_map_spatial_data.carparkArray(); 651 var parks = gb_map_spatial_data.carparkArray();
652 - //将线路标准停车场排在第一个 652 + /* //将线路标准停车场排在第一个
653 var information = gb_data_basic.getLineInformation(lineCode); 653 var information = gb_data_basic.getLineInformation(lineCode);
654 if(information){ 654 if(information){
655 var index; 655 var index;
@@ -660,7 +660,7 @@ @@ -660,7 +660,7 @@
660 } 660 }
661 } 661 }
662 parks[index] = parks.splice(0, 1 , parks[index])[0]; 662 parks[index] = parks.splice(0, 1 , parks[index])[0];
663 - } 663 + }*/
664 //渲染 664 //渲染
665 var htmlStr = template('pbv3_park_dropdown-temp', {list: parks}); 665 var htmlStr = template('pbv3_park_dropdown-temp', {list: parks});
666 $('.buffer_area_form .parks_list', rightWrap).html(htmlStr); 666 $('.buffer_area_form .parks_list', rightWrap).html(htmlStr);