Commit 92391cdecb0091e49f3be2533832195f94ccb15a

Authored by 徐烜
2 parents 7413d94f 9b4ac9aa

Merge branch 'minhang' of http://222.66.0.204:8090//panzhaov5/bsth_control into minhang

Showing 26 changed files with 355 additions and 168 deletions
src/main/java/com/bsth/common/Constants.java
... ... @@ -29,7 +29,7 @@ public class Constants {
29 29 //public static final String XD_TEMPS = "/pages/control/line/temps/**";
30 30  
31 31 //车载网关上行接口
32   - public static final String UPSTREAM_URL = "/control/upstream/";
  32 + public static final String UPSTREAM_URL = "/control/upstream";
33 33  
34 34 public static final String SESSION_USERNAME = "sessionUserName";
35 35 public static final String COMPANY_AUTHORITYS = "cmyAuths";
... ...
src/main/java/com/bsth/data/gpsdata/arrival/GeoCacheData.java
... ... @@ -242,7 +242,11 @@ public class GeoCacheData {
242 242 List<Map<String, Object>> speedMap = jdbcTemplate.queryForList(sql);
243 243 Map<String, Double> speedTempMap = new HashMap<>();
244 244 for (Map<String, Object> tMap : speedMap) {
245   - speedTempMap.put(tMap.get("LINE_CODE").toString(), Double.parseDouble(tMap.get("SPEEDING").toString()));
  245 + try {
  246 + speedTempMap.put(tMap.get("LINE_CODE").toString(), Double.parseDouble(tMap.get("SPEEDING").toString()));
  247 + } catch (NumberFormatException e) {
  248 + logger.error("speeding is null...");
  249 + }
246 250 }
247 251 speedLimitMap = speedTempMap;
248 252 }
... ...
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
... ... @@ -135,7 +135,7 @@ public class InOutStationSignalHandle extends SignalHandle{
135 135 }
136 136 else if(sch.getBcType().equals("out")){
137 137 ScheduleRealInfo next = dayOfSchedule.nextSame(sch);
138   - if(prev.getStopNo().equals(next.getQdzCode())){
  138 + if(next != null && prev.getStopNo().equals(next.getQdzCode())){
139 139 //发下一个班次
140 140 dayOfSchedule.addExecPlan(next);
141 141 outStation(gps, prev);
... ...
src/main/java/com/bsth/entity/oil/Ylxxb.java
... ... @@ -35,11 +35,11 @@ public class Ylxxb {
35 35 private Date xgrq;
36 36 private String xgr;
37 37 private String fromgsdm;
38   - private int nylx;
  38 + private Integer nylx;
39 39 @Transient
40 40 private String ldgh;
41 41 //0为接口数据,1为手工输入
42   - private int jylx=0;
  42 + private Integer jylx=0;
43 43 @Transient
44 44 private String gsname;
45 45 @Transient
... ...
src/main/java/com/bsth/repository/oil/YlxxbRepository.java
... ... @@ -27,4 +27,12 @@ public interface YlxxbRepository extends BaseRepository&lt;Ylxxb, Integer&gt;{
27 27 @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and nbbm =?2 and jylx=1",nativeQuery=true)
28 28 List<Ylxxb> obtainYlxx2(String rq,String nbbm);
29 29  
  30 + @Transactional
  31 + @Modifying
  32 + @Query(value="select * from bsth_c_ylxxb s where s.nbbm = ?1 and "
  33 + + "to_days(s.yyrq) = to_days(?2)",nativeQuery=true)
  34 + List<Ylxxb> queryListYlxxb(String clZbh,String date);
  35 +
  36 +
  37 +
30 38 }
... ...
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
... ... @@ -39,12 +39,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
39 39 + " s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 group by clZbh,jGh,jName")
40 40 List<Map<String, Object>> dailyInfo(String line,String date);
41 41  
42   - @Query(value="select t.car_code,d.sender,d.txt_content,d.timestamp,0 as xlbm from ("
43   - + " select equipment_code,car_code from bsth_c_cars where id in("
  42 + @Query(value="select t.inside_code,d.sender,d.txt_content,d.timestamp,0 as xlbm from ("
  43 + + " select equipment_code,inside_code from bsth_c_cars where id in("
44 44 + " select cl from bsth_c_s_ccinfo where xl in ( "
45 45 + " select id from bsth_c_line where line_code=?1 ))) t"
46 46 + " left join bsth_v_directive_60 d on t.equipment_code=d.device_id "
47   - + " where d.timestamp >=?2 and d.timestamp <=?3 and t.car_code like %?4% ",nativeQuery=true)
  47 + + " where d.timestamp >=?2 and d.timestamp <=?3 and t.inside_code like %?4% ",nativeQuery=true)
48 48 List<Object[]> historyMessage(String line,long d,long t,String code);
49 49  
50 50 @Query(value="SELECT r.xl_name,r.lp_name,r.cl_zbh,count(*) as cs "
... ... @@ -74,7 +74,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
74 74 @Query(value="select count(jName) from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 and sflj != 0")
75 75 int findLjbc(String jName,String clZbh,String lpName);
76 76  
77   - @Query(value="SELECT c.company,r.request_code,FROM_UNIXTIME(r.timestamp/1000,'%Y-%m-%d %T'),c.inside_code FROM bsth_v_report_80 r LEFT JOIN bsth_c_cars c ON c.equipment_code = r.device_id where FROM_UNIXTIME(r.timestamp/1000,'%Y-%m-%d') = ?2 and r.line_id = ?1 and c.inside_code = ?3",nativeQuery=true)
  77 + @Query(value="SELECT c.company,r.request_code,FROM_UNIXTIME(r.timestamp/1000,'%Y-%m-%d %T'),c.inside_code FROM bsth_v_report_80 r LEFT JOIN bsth_c_cars c ON c.equipment_code = r.device_id where FROM_UNIXTIME(r.timestamp/1000,'%Y-%m-%d') = ?2 and r.line_id = ?1 and c.inside_code like %?3%",nativeQuery=true)
78 78 List<Object[]> account(String line,String date,String code);
79 79  
80 80 @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and s.scheduleDate >= str_to_date(?2,'%Y-%m-%d') "
... ...
src/main/java/com/bsth/security/filter/LoginInterceptor.java
... ... @@ -8,10 +8,7 @@ import com.bsth.util.RequestUtils;
8 8 import org.springframework.security.core.Authentication;
9 9 import org.springframework.security.core.context.SecurityContextHolder;
10 10  
11   -import javax.servlet.FilterChain;
12   -import javax.servlet.ServletException;
13   -import javax.servlet.ServletRequest;
14   -import javax.servlet.ServletResponse;
  11 +import javax.servlet.*;
15 12 import javax.servlet.http.HttpServletRequest;
16 13 import javax.servlet.http.HttpServletResponse;
17 14 import java.io.IOException;
... ... @@ -26,7 +23,7 @@ import java.util.Map;
26 23 * @date 2016年3月24日 上午11:49:20
27 24 *
28 25 */
29   -public class LoginInterceptor extends BaseFilter{
  26 +public class LoginInterceptor extends BaseFilter {
30 27  
31 28 @Override
32 29 public void destroy() {
... ... @@ -34,16 +31,19 @@ public class LoginInterceptor extends BaseFilter{
34 31 }
35 32  
36 33 @Override
37   - public void doFilter(ServletRequest arg0, ServletResponse arg1,
38   - FilterChain arg2) throws IOException, ServletException {
39   -
  34 + public void init(FilterConfig filterConfig) throws ServletException {
  35 +
  36 + }
  37 +
  38 + @Override
  39 + public void doFilter(HttpServletRequest request,
  40 + HttpServletResponse response, FilterChain chain)
  41 + throws IOException, ServletException {
40 42 Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
41   -
  43 +
42 44 if(null == authentication){
43 45 //没有登录
44   - HttpServletRequest request = (HttpServletRequest)arg0;
45   - HttpServletResponse response = ((HttpServletResponse)arg1);
46   -
  46 +
47 47 if(RequestUtils.isAjaxRequest(request)){
48 48 Map<String, Object> map = new HashMap<>();
49 49 map.put("status",
... ... @@ -52,10 +52,11 @@ public class LoginInterceptor extends BaseFilter{
52 52 }
53 53 else
54 54 response.sendRedirect(Constants.LOGIN_PAGE);
55   -
  55 +
56 56 return;
57 57 }
58   -
59   - arg2.doFilter(arg0, arg1);
  58 +
  59 + chain.doFilter(request, response);
60 60 }
  61 +
61 62 }
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -15,6 +15,7 @@ import com.bsth.data.schedule.ScheduleComparator;
15 15 import com.bsth.entity.Cars;
16 16 import com.bsth.entity.Line;
17 17 import com.bsth.entity.Personnel;
  18 +import com.bsth.entity.oil.Ylxxb;
18 19 import com.bsth.entity.realcontrol.ChildTaskPlan;
19 20 import com.bsth.entity.realcontrol.LineConfig;
20 21 import com.bsth.entity.realcontrol.ScheduleRealInfo;
... ... @@ -25,6 +26,7 @@ import com.bsth.entity.schedule.GuideboardInfo;
25 26 import com.bsth.entity.sys.DutyEmployee;
26 27 import com.bsth.entity.sys.SysUser;
27 28 import com.bsth.repository.LineRepository;
  29 +import com.bsth.repository.oil.YlxxbRepository;
28 30 import com.bsth.repository.realcontrol.ChildTaskPlanRepository;
29 31 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
30 32 import com.bsth.repository.realcontrol.SvgAttributeRepository;
... ... @@ -99,6 +101,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
99 101  
100 102 @Autowired
101 103 DutyEmployeeService dutyEmployeeService;
  104 +
  105 + @Autowired
  106 + YlxxbRepository ylxxbRepository;
102 107  
103 108 Logger logger = LoggerFactory.getLogger(this.getClass());
104 109  
... ... @@ -502,6 +507,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
502 507  
503 508 map = new HashMap<String, Object>();
504 509 try {
  510 + scheduleRealInfo.setjName(scheduleRealInfo.getjGh()+scheduleRealInfo.getjName());
  511 + scheduleRealInfo.setsName(scheduleRealInfo.getsGh()+scheduleRealInfo.getsName());
505 512 map = rru.getMapValue(scheduleRealInfo);
506 513 String zdsj = scheduleRealInfo.getZdsj();
507 514 String zdsjActual = scheduleRealInfo.getZdsjActual();
... ... @@ -2433,6 +2440,25 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2433 2440 try {
2434 2441 scheduleRealInfo.setBcs(xyz);
2435 2442 xyz++;
  2443 + Set<ChildTaskPlan> cs = scheduleRealInfo.getcTasks();
  2444 + Double sjlc=0.0;
  2445 + if(!cs.isEmpty()){
  2446 + Iterator<ChildTaskPlan> it = cs.iterator();
  2447 + while(it.hasNext()){
  2448 + ChildTaskPlan c = it.next();
  2449 + if(!c.isDestroy()){
  2450 + sjlc += c.getMileage()==null?0:c.getMileage();
  2451 + }
  2452 +
  2453 + }
  2454 + }else{
  2455 + if(scheduleRealInfo.getStatus() != -1){
  2456 + sjlc =scheduleRealInfo.getJhlc();
  2457 + }
  2458 + }
  2459 + scheduleRealInfo.setjName(scheduleRealInfo.getjGh()+scheduleRealInfo.getjName());
  2460 + scheduleRealInfo.setsName(scheduleRealInfo.getsGh()+scheduleRealInfo.getsName());
  2461 + scheduleRealInfo.setSjlc(format.format(sjlc));
2436 2462 map = rru.getMapValue(scheduleRealInfo);
2437 2463 String zdsj = scheduleRealInfo.getZdsj();
2438 2464 String zdsjActual = scheduleRealInfo.getZdsjActual();
... ... @@ -2457,8 +2483,17 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2457 2483 }
2458 2484 }
2459 2485  
  2486 +
  2487 + List<Ylxxb> listYlxxb=ylxxbRepository.queryListYlxxb( clZbh, date);
  2488 + Double jzl=0.0;
  2489 + for(int t=0;t<listYlxxb.size();t++){
  2490 + Ylxxb y=listYlxxb.get(t);
  2491 + jzl += y.getJzl();
  2492 + }
  2493 +
2460 2494 //计算里程和班次数,并放入Map里
2461 2495 map = new HashMap<String, Object>();
  2496 + map.put("jzl", jzl);
2462 2497 map.put("jhlc", format.format(jhlc+jcclc));
2463 2498 map.put("yygljh", format.format(jhlc));
2464 2499 map.put("ssgl", format.format(remMileage));
... ... @@ -2632,7 +2667,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2632 2667 while(it.hasNext()){
2633 2668 ChildTaskPlan c = it.next();
2634 2669 if(c.getRemarks()!=null && c.getRemarks().length()>0){
2635   - remarks += c.getRemarks();
  2670 + if(remarks.indexOf(c.getRemarks())==-1){
  2671 + remarks += c.getRemarks();
  2672 + }
2636 2673 }
2637 2674  
2638 2675 if(!c.isDestroy()){
... ... @@ -2664,7 +2701,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2664 2701 String xlbm=s.getXlBm();
2665 2702 String fcrq=s.getScheduleDateStr();
2666 2703  
2667   -
  2704 + List<Ylxxb> listYlxxb=ylxxbRepository.queryListYlxxb( s.getClZbh(), fcrq);
  2705 + Double jzl=0.0;
  2706 + for(int t=0;t<listYlxxb.size();t++){
  2707 + Ylxxb y=listYlxxb.get(t);
  2708 + jzl += y.getJzl();
  2709 + }
  2710 + map.put("jzl", jzl);
2668 2711 map.put("xlName", s.getXlName());
2669 2712 map.put("clZbh", s.getClZbh());
2670 2713 map.put("fcsjActual", s.getFcsjActual());
... ...
src/main/resources/ms-jdbc.properties
... ... @@ -4,6 +4,6 @@
4 4 #ms.mysql.password= 123456
5 5  
6 6 ms.mysql.driver= com.mysql.jdbc.Driver
7   -ms.mysql.url= jdbc:mysql://192.168.168.117:3306/ms?useUnicode=true&characterEncoding=utf-8
  7 +ms.mysql.url= jdbc:mysql://192.168.168.171:3306/ms?useUnicode=true&characterEncoding=utf-8
8 8 ms.mysql.username= root
9   -ms.mysql.password= root
10 9 \ No newline at end of file
  10 +ms.mysql.password= root2jsp
11 11 \ No newline at end of file
... ...
src/main/resources/static/pages/forms/mould/waybill_qingpu.xls
No preview for this file type
src/main/resources/static/pages/forms/statement/scheduleDaily.html
... ... @@ -158,31 +158,31 @@
158 158 <td colspan="40">&nbsp;</td>
159 159 </tr> -->
160 160 <tr>
161   - <td colspan="2">班序</td>
  161 + <td colspan="2">路牌</td>
162 162 <td colspan="2">车号</td>
163 163 <td>司早</td>
164 164 <td>售早</td>
165 165 <td>司晚</td>
166 166 <td>售晚</td>
167   - <td colspan="2">班序</td>
  167 + <td colspan="2">路牌</td>
168 168 <td colspan="2">车号</td>
169 169 <td>司早</td>
170 170 <td>售早</td>
171 171 <td>司晚</td>
172 172 <td>售晚</td>
173   - <td colspan="2">班序</td>
  173 + <td colspan="2">路牌</td>
174 174 <td colspan="2">车号</td>
175 175 <td>司早</td>
176 176 <td>售早</td>
177 177 <td>司晚</td>
178 178 <td>售晚</td>
179   - <td colspan="2">班序</td>
  179 + <td colspan="2">路牌</td>
180 180 <td colspan="2">车号</td>
181 181 <td>司早</td>
182 182 <td>售早</td>
183 183 <td>司晚</td>
184 184 <td>售晚</td>
185   - <td colspan="2">班序</td>
  185 + <td colspan="2">路牌</td>
186 186 <td colspan="2">车号</td>
187 187 <td>司早</td>
188 188 <td>售早</td>
... ...
src/main/resources/static/pages/forms/statement/waybill.html
... ... @@ -307,8 +307,8 @@
307 307 {{each list as obj i}}
308 308 <tr>
309 309 <td>{{i+1}}</td>
310   - <td>{{obj.jName}}</td>
311   - <td>{{obj.sName}}</td>
  310 + <td>{{obj.jGh}}{{obj.jName}}</td>
  311 + <td>{{obj.sGh}}{{obj.sName}}</td>
312 312 <td>&nbsp;</td>
313 313 <td>{{obj.qdzName}}</td>
314 314 <td>{{obj.zdzName}}</td>
... ...
src/main/resources/static/pages/forms/statement/waybillQp.html
... ... @@ -252,7 +252,7 @@
252 252 </tr>
253 253 <tr>
254 254 <td colspan="2">出场存油 &nbsp;升</td>
255   - <td colspan="3">加注油量 &nbsp;升</td>
  255 + <td colspan="3">加注油量 {{map.jzl}}升</td>
256 256 <td colspan="2">进场存油 &nbsp;升</td>
257 257 <td colspan="4">加注机油 &nbsp;升</td>
258 258 <td colspan="5">本日耗油 &nbsp;升</td>
... ... @@ -298,8 +298,8 @@
298 298 <tr>
299 299 <td>{{i+1}}</td>
300 300 <td>{{obj.lpName}}</td>
301   - <td>{{obj.jName}}</td>
302   - <td>{{obj.sName}}</td>
  301 + <td>{{obj.jGh}}{{obj.jName}}</td>
  302 + <td>{{obj.sGh}}{{obj.sName}}</td>
303 303 <td>&nbsp;</td>
304 304 <td>{{obj.qdzName}}</td>
305 305 <td>{{obj.zdzName}}</td>
... ... @@ -350,8 +350,8 @@
350 350 <td>{{map.ljgl}}</td>
351 351 <td colspan="2">损失班次</td>
352 352 <td colspan="1">{{map.ssbc}}</td>
353   - <td colspan="3">运送公里</td>
354   - <td colspan="2">{{map.ysgl}}</td>
  353 + <td colspan="3"></td>
  354 + <td colspan="2"></td>
355 355 </tr>
356 356 <tr>
357 357  
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/lj_zrw.html
... ... @@ -396,7 +396,7 @@
396 396 name: '出场'
397 397 },
398 398 'add_sub_task_range_turn': {
399   - name: '区间头'
  399 + name: '区间头'
400 400 },
401 401 'add_sub_task_other': {
402 402 name: '自定义'
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task/add_sub_task_range_turn.html
... ... @@ -2,14 +2,14 @@
2 2 <div class="uk-modal-dialog" style="width: 1200px;">
3 3 <a href="" class="uk-modal-close uk-close"></a>
4 4 <div class="uk-modal-header">
5   - <h2>区间头子任务</h2></div>
  5 + <h2>区间头子任务</h2></div>
6 6  
7 7 <div style="width: 100%;padding-left: 1%;">
8 8 <form class="uk-form uk-form-horizontal">
9 9 <div class="uk-grid">
10 10 <div class="uk-width-1-4">
11 11 <div class="uk-form-row" style="margin-top: 20px;">
12   - <label class="uk-form-label">头站点</label>
  12 + <label class="uk-form-label">头站点</label>
13 13 <div class="uk-form-controls">
14 14 <select id="turnStationSelect">
15 15 <option value="">请选择...</option>
... ... @@ -19,7 +19,7 @@
19 19 </div>
20 20 <div class="uk-width-1-4">
21 21 <div class="uk-form-row" style="margin-top: 20px;">
22   - <label class="uk-form-label">头原因</label>
  22 + <label class="uk-form-label">头原因</label>
23 23 <div class="uk-form-controls">
24 24 <select id="turnReason" style="width: calc(100% - 9px);">
25 25 <option value="">请选择...</option>
... ... @@ -29,7 +29,7 @@
29 29 </div>
30 30 <div class="uk-width-2-4" style="padding-left: 28px;">
31 31 <h6 style="color: #a7a5a5;margin-top: 35px;"><i class="uk-icon-question-circle"> </i>
32   - 如果“头站点”在另一个走向不存在,你需要手动选择第二个营运起点</h6>
  32 + 如果“头站点”在另一个走向不存在,你需要手动选择第二个营运起点</h6>
33 33 </div>
34 34 </div>
35 35 </form>
... ... @@ -343,7 +343,7 @@
343 343 /**
344 344 * 为班次添加备注
345 345 */
346   - var remarks = '掉头' + $('[name=endDate]', csf).val() + ' 因 ' + $('#turnReason', modal).val() + '在' + $('[name=endStation] option:selected', csf).text() + '掉头';
  346 + var remarks = '调头' + $('[name=endDate]', csf).val() + ' 因 ' + $('#turnReason', modal).val() + '在' + $('[name=endStation] option:selected', csf).text() + '调头';
347 347 gb_schedule_table.addRemarks([sch, nextSch], remarks);
348 348 UIkit.modal(modal).hide();
349 349 $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch});
... ... @@ -368,7 +368,7 @@
368 368 //submit
369 369 $('#submitChildTaskBtn', modal).on('click', function () {
370 370 if ($('#turnReason', modal).val() == '') {
371   - return notify_err('你必须选择头原因!');
  371 + return notify_err('你必须选择头原因!');
372 372 }
373 373  
374 374 $(this).addClass('disabled').attr('disabled', 'disabled');
... ... @@ -377,7 +377,7 @@
377 377 fs.formValidation('validate');
378 378 });
379 379  
380   - //头站切换
  380 + //头站切换
381 381 $('#turnStationSelect', modal).on('change', function () {
382 382 turnStation = $(this).val();
383 383 turnStationName = $('option:selected', this).text();
... ...
src/main/resources/static/real_control_v2/js/home/line_panel.js
... ... @@ -122,7 +122,7 @@ var gb_home_line_panel = (function() {
122 122  
123 123 var $t = function(e) {
124 124 return $(e).text();
125   - }
  125 + };
126 126  
127 127 function groupByLineAndUpDown(list) {
128 128 var rs = {},
... ...
src/main/resources/static/real_control_v2/js/main.js
... ... @@ -45,8 +45,10 @@ var gb_main_ep = new EventProxy(),
45 45 //初始化gps异常判定
46 46 gb_gps_abnormal.initData();
47 47  
48   - //嵌入地图页面
49   - $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html');
  48 + setTimeout(function () {
  49 + //嵌入地图页面
  50 + $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html');
  51 + }, 1000);
50 52 //弹出更新说明
51 53 //showUpdateDescription();
52 54 });
... ...
src/main/resources/static/real_control_v2/js/signal_state/signal_state.js
... ... @@ -10,7 +10,7 @@ var gb_signal_state = (function () {
10 10 });
11 11  
12 12 var signal_state_data = {};
13   - var enable = true;
  13 + var enable = false;//true;
14 14 //读取本地状态
15 15 var locStatus = storage.getItem("signal_state_enable");
16 16 if (locStatus && locStatus=='0')
... ...
src/main/resources/static/real_control_v2/mapmonitor/css/real.css
... ... @@ -28,10 +28,10 @@ input[type=checkbox].disabled{
28 28 overflow: hidden;
29 29 left: auto;
30 30 top: 3px;
31   - box-shadow: none;
32   - border-radius: 5px 0 0 5px;
  31 + border-radius: 9px 0 0 9px;
33 32 border: 1px solid #dedede;
34 33 border-right: none;
  34 + box-shadow: none;
35 35 }
36 36  
37 37 .map-system-msg.flex-left a:before{
... ... @@ -119,14 +119,16 @@ input[type=checkbox].disabled{
119 119 .real_right_gps_panel>form{
120 120 text-align: center;
121 121 margin-top: 20px;
  122 + position: relative;
122 123 }
123 124  
124   -.real_right_gps_panel>form>div.uk-form-icon{
125   - width: 88%;
  125 +.real_right_gps_panel>form div.uk-form-icon{
  126 + width: 100%;
126 127 }
127 128  
128   -.real_right_gps_panel>form>div.uk-form-icon input{
129   - width: 100%;
  129 +.real_right_gps_panel>form div.uk-form-icon input{
  130 + width: calc(100% - 30px);
  131 + font-size: 12px;
130 132 }
131 133  
132 134 .real_right_gps_panel>form>div.uk-form-icon input::-webkit-input-placeholder{
... ... @@ -134,22 +136,12 @@ input[type=checkbox].disabled{
134 136 }
135 137  
136 138 .real_right_gps_panel .gps_tree_list{
137   - height: calc(100% - 80px);
  139 + height: calc(100% - 70px);
138 140 overflow: auto;
139   - padding: 20px 0 0 32px;
  141 + padding: 15px 0 0 32px;
140 142 }
141 143  
142   -/*.real_bottom_panel{
143   - width: 100%;
144   - background: red;
145   - height: 100px;
146   - position: fixed !important;
147   - top: auto !important;
148   - bottom: 0 !important;
149   - left: 0;
150   - right: 0;
151   -}
152   -*/
  144 +
153 145 .real_bottom_panel #handle{
154 146 width: 100%;
155 147 height: 4px;
... ... @@ -562,13 +554,47 @@ input[type=checkbox].disabled{
562 554 margin-left: -5px;
563 555 }
564 556  
565   -/*
566   -.pb_log_item>div{
567   - display: inline-block;
568   -}*/
  557 +.gps_tree_abnormal{
  558 + font-size: 11px;
  559 + padding: 0 1px 0 2px;
  560 + border-radius: 3px;
  561 + margin-left: 2px;
  562 +}
569 563  
570   -/*
571   -.pb_tools_icon i:hover{
572   - color: #787676;
573   - box-shadow: 1px 0px 5px 0 rgba(0,0,0,0.16), -1px 0px 10px 0 rgba(0,0,0,0.12);
574   -}*/
  564 +.gps_tree_abnormal.overspeed{
  565 + background: #ff3232;
  566 + color: white;
  567 +}
  568 +
  569 +.gps_tree_abnormal.outBounds{
  570 + background: #ffff00;
  571 + color: #787777;
  572 +}
  573 +
  574 +.gps_tree_abnormal.overspeed:hover{
  575 + background: #e37878;
  576 + color: white;
  577 +}
  578 +
  579 +.gps_tree_abnormal.outBounds:hover{
  580 + background:#fdfd00;
  581 + color: #595959;
  582 +}
  583 +
  584 +.real_right_gps_panel .ral-gps-autocom .uk-dropdown{
  585 + margin-left: 15px;
  586 + width: 240px;
  587 + text-align: left;
  588 +}
  589 +
  590 +.uk-autocomplete-results.ral-gps-autocom-results{
  591 +
  592 +}
  593 +
  594 +.uk-autocomplete-results.ral-gps-autocom-results .desc{
  595 + color: #8e8e8e;
  596 +}
  597 +
  598 +.uk-nav-autocomplete>li.uk-active>a .desc{
  599 + color: #fff;
  600 +}
575 601 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/mapmonitor/js/config.js
... ... @@ -142,7 +142,7 @@ var gb_map_config = (function () {
142 142 //标识角度
143 143 function carIcon_angle(val) {
144 144 defaultConfig.carIcon.angle=this.checked;
145   - gb_map_overlay_mge.reDraw();
  145 + gb_map_overlay_mge.reDrawGps();
146 146 }
147 147  
148 148 function recursion_get_attr(data, attr) {
... ...
src/main/resources/static/real_control_v2/mapmonitor/js/gps_tree.js
... ... @@ -7,7 +7,9 @@ var gb_map_gps_tree = (function () {
7 7 var jstreeChanged = function (e, node, event) {
8 8 gb_map_overlay_mge.refresh();
9 9 };
10   -
  10 +
  11 + var readyStatus;
  12 +
11 13 var init = function (cb) {
12 14 var allGps = gb_data_gps.allGps;
13 15 _devices = gb_common.get_keys(allGps);
... ... @@ -16,7 +18,7 @@ var gb_map_gps_tree = (function () {
16 18 treeObj = $('.real_right_gps_panel .gps_tree_list')
17 19 //节点初始化完成
18 20 .on('ready.jstree', function () {
19   - treeObj.jstree(true).open_all();
  21 + //treeObj.jstree(true).open_all();
20 22 //删掉tree node a标签的 href值(避免鼠标悬停浏览器出现状态条)
21 23 $('.gps_tree_list .jstree-container-ul a.jstree-anchor').removeAttr('href');
22 24 })
... ... @@ -24,6 +26,7 @@ var gb_map_gps_tree = (function () {
24 26 .on('state_ready.jstree', function () {
25 27 //绑定checkbox状态切换事件
26 28 treeObj.on('check_node.jstree uncheck_node.jstree', jstreeChanged);
  29 + readyStatus = true;
27 30 cb && cb();
28 31 })
29 32 .on('activate_node.jstree', function (e, n) {
... ... @@ -43,28 +46,12 @@ var gb_map_gps_tree = (function () {
43 46 'keep_selected_style': false,
44 47 'whole_node': false,
45 48 'tie_selection': false
46   - }/*,
47   - 'contextmenu': {
48   - 'items': {
49   - '轨迹回放': {
50   - 'label': '轨迹回放',
51   - 'action': function (data) {
52   - console.log('action', data);
53   - }
54   - },
55   - '发送指令': {
56   - 'label': '发送指令',
57   - 'action': function (data) {
58   - console.log('action', data);
59   - }
60   - }
61   - }
62   - }*/,
  49 + },
63 50 //local storage里的key
64 51 'state': {
65 52 'key': 'jstree_map_devices'
66 53 },
67   - 'plugins': ['checkbox'/*, 'contextmenu'*/, 'state']
  54 + 'plugins': ['checkbox', 'state']
68 55 });
69 56 };
70 57  
... ... @@ -106,7 +93,7 @@ var gb_map_gps_tree = (function () {
106 93 });
107 94 }
108 95 })();
109   - }
  96 + };
110 97  
111 98 //创建线路和上下行节点
112 99 var create_route_node = function (lineCode, cb) {
... ... @@ -133,7 +120,7 @@ var gb_map_gps_tree = (function () {
133 120 }
134 121 }]
135 122 }, 'last', cb);
136   - }
  123 + };
137 124  
138 125 var appendDeviceNode = function (routeNode, gps, cb) {
139 126 if (!routeNode) {
... ... @@ -150,16 +137,124 @@ var gb_map_gps_tree = (function () {
150 137 'data': {lineId: gps.lineId, upDown: gps.upDown},
151 138 'icon': 'uk-icon-bus'
152 139 }, 'last', cb);
153   - }
  140 + };
  141 +
  142 + /**
  143 + * 上下行改变
  144 + * @param changeArray
  145 + */
  146 + var changeUpDown = function (changeArray) {
  147 + console.log('changeUpDown', changeArray);
  148 + };
  149 +
  150 + /**
  151 + * 更新节点
  152 + */
  153 + var abnormalsMapp = {
  154 + 'outBounds': '越界',
  155 + 'overspeed': '超速'
  156 + };
  157 + var update_node = function (ups) {
  158 + var tree = treeObj.jstree(true)
  159 + ,node,suffix;
  160 + $.each(ups, function () {
  161 + node = tree.get_node('map_tree_device_' + this.nbbm);
  162 + suffix=abnormalsMapp[this['abnormalStatus']];
  163 + suffix = suffix?'<a class="gps_tree_abnormal '+this['abnormalStatus']+'">'+suffix+'</a>':'';
  164 + tree.set_text(node, this.nbbm + suffix);
  165 + });
  166 + };
  167 +
  168 +
  169 + /**
  170 + * 搜索
  171 + */
  172 + var autocom = '.real_right_gps_panel .ral-gps-autocom'
  173 + ,_input = $('input', autocom);
  174 +
  175 + var autocomplete_source = function(release) {
  176 + var rs = [],
  177 + v = _input.val().toUpperCase(), count=0;
  178 +
  179 + $.each(gb_common.get_vals(gb_data_gps.allGps), function () {
  180 + if(this.nbbm.indexOf(v) != -1){
  181 + rs.push({
  182 + value: this.nbbm,
  183 + lineName: '青浦1路',
  184 + stationName: this.stationName?this.stationName:'',
  185 + dateStr: this.dateStr
  186 + });
  187 + count++;
  188 + }
  189 + if(count > 11)
  190 + return false;
  191 + });
  192 + release && release(rs);
  193 + };
  194 +
  195 + var selectitem = function (event, data, acobject) {
  196 + //var deviceId = gb_data_basic.nbbm2deviceMap()[data.value];
  197 + //gb_map_imap.call('drawRealGpsMarker', {gpsList: [gb_data_gps.findOne(deviceId)]});
  198 + //地图定位
  199 + //gb_map_overlay_mge._focus(gb_data_basic.nbbm2deviceMap()[data.value]);
  200 +
  201 + var tree = treeObj.jstree(true)
  202 + var deviceId = gb_data_basic.nbbm2deviceMap()[data.value]
  203 + ,gps = gb_data_gps.findOne(deviceId);
  204 +
  205 + //展开线路节点
  206 + tree.open_node(tree.get_node('map_tree_line_' + gps.lineId), function () {
  207 + //展开走向节点
  208 + tree.open_node(tree.get_node('map_tree_route_' + gps.lineId + '_' + gps.upDown), function () {
  209 + //选中车辆
  210 + var id = 'map_tree_device_' + data.value;
  211 + var node = tree.get_node(id);
  212 + tree.check_node(node);
  213 +
  214 + var $e = $('#'+id);
  215 + treeObj.animate({
  216 + scrollTop: $e.offset().top - treeObj.offset().top + treeObj.scrollTop()
  217 + }, 500);
  218 + //地图定位
  219 + gb_map_overlay_mge._focus(gb_data_basic.nbbm2deviceMap()[data.value]);
  220 + }, false);
  221 + });
  222 + };
  223 + var result_template = '<script type="text/autocomplete">' +
  224 + ' <ul class="uk-nav uk-nav-autocomplete uk-autocomplete-results ral-gps-autocom-results">' +
  225 + ' {{~items}}' +
  226 + ' <li data-value="{{ $item.value }}">' +
  227 + ' <a>' +
  228 + ' {{ $item.value }} <small class="desc"> {{ $item.stationName }}</small>' +
  229 + ' <div class="desc"><span>{{$item.dateStr}}</span></div>' +
  230 + ' </a>' +
  231 + ' </li>' +
  232 + ' {{/items}}' +
  233 + ' </ul>' +
  234 + '</script>';
  235 +
  236 + $(autocom).append(result_template);
  237 + UIkit.autocomplete(autocom, {
  238 + minLength: 1,
  239 + delay: 10,
  240 + source: autocomplete_source
  241 + }).on('selectitem.uk.autocomplete', selectitem);
  242 +
  243 +
154 244  
155 245 return {
156 246 init: init,
  247 + readyStatus: function () {
  248 + return readyStatus;
  249 + },
157 250 getChecked: function () {
158 251 return treeObj.jstree(true).get_checked(true);
159 252 },
160 253 all_devices: function () {
161 254 return _devices;
162 255 },
163   - create_node: create_node
  256 + create_node: create_node,
  257 + changeUpDown: changeUpDown,
  258 + update_node: update_node
164 259 };
165 260 })();
166 261 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/mapmonitor/js/map/iMap.js
... ... @@ -92,7 +92,7 @@ var gb_map_imap = (function () {
92 92  
93 93 var canvas = $('<canvas></canvas>')[0];
94 94 canvas.width = w;
95   - canvas.height = 75;
  95 + canvas.height = 64;
96 96 var ctx = canvas.getContext('2d');
97 97  
98 98 var colours = color(gps);
... ... @@ -101,13 +101,13 @@ var gb_map_imap = (function () {
101 101 //ctx.shadowBlur = 1; // 模糊尺寸
102 102 //ctx.shadowColor = colours.shadow; // 颜色
103 103  
104   - ctx.roundRect(0, 0, w, 24, 5).stroke();
  104 + ctx.roundRect(0, 0, w, 19, 4).stroke();
105 105 ctx.fillStyle = colours.bgColor;
106 106 ctx.fill();
107 107 //文字
108 108 ctx.font = "14px arial";
109 109 ctx.fillStyle = "#fff";
110   - ctx.fillText(gps.nbbm, 2, 17);
  110 + ctx.fillText(gps.nbbm, 2, 14);
111 111  
112 112 //角度图标
113 113 var img = new Image();
... ...
src/main/resources/static/real_control_v2/mapmonitor/js/map/platform/baidu.js
... ... @@ -179,6 +179,12 @@ var gb_map_baidu = (function(){
179 179 carparks = {};
180 180 map.clearOverlays();
181 181 },
  182 + clearAllGps: function () {
  183 + $.each(gb_common.get_vals(realMarkers), function () {
  184 + map.removeOverlay(this);
  185 + });
  186 + realMarkers = {};
  187 + },
182 188 showGpsMarker:function (opt) {
183 189 var chs = opt.chs;
184 190 for(var device in realMarkers){
... ... @@ -203,6 +209,8 @@ var gb_map_baidu = (function(){
203 209 var deviceId = opts.deviceId
204 210 ,m = realMarkers[deviceId];
205 211 if(m){
  212 + if(!m.isVisible())
  213 + m.show();
206 214 map.panTo(m.point, {noAnimation: true});
207 215 //setTop(m);
208 216 }
... ... @@ -336,9 +344,9 @@ var gb_map_baidu = (function(){
336 344  
337 345 //如果需要标识角度
338 346 if(config.carIcon.angle)
339   - marker.setIcon(new BMap.Icon(gb_map_imap.createCarIconRotation(gpsData, w), new BMap.Size(w,75)));
  347 + marker.setIcon(new BMap.Icon(gb_map_imap.createCarIconRotation(gpsData, w), new BMap.Size(w,70)));
340 348 else
341   - marker.setIcon(new BMap.Icon(gb_map_imap.createCarIcon(gpsData, w), new BMap.Size(w,25)));
  349 + marker.setIcon(new BMap.Icon(gb_map_imap.createCarIcon(gpsData, w), new BMap.Size(w,20)));
342 350 }
343 351  
344 352 function createStationMark(statio) {
... ... @@ -348,7 +356,7 @@ var gb_map_baidu = (function(){
348 356 //根据站点名称 计算marker 宽度
349 357 var w = statio.stationName.length * 12 + 4
350 358 ,iw=w-2;
351   - var icon = new BMap.Icon(gb_map_imap.createStationIcon(statio, w), new BMap.Size(iw,20), {anchor: new BMap.Size(iw/2,20)})
  359 + var icon = new BMap.Icon(gb_map_imap.createStationIcon(statio, w), new BMap.Size(iw,24), {anchor: new BMap.Size(iw/2,24)})
352 360 marker.setIcon(icon);
353 361  
354 362 //信息窗口
... ...
src/main/resources/static/real_control_v2/mapmonitor/js/map/platform/gaode.js
... ... @@ -63,6 +63,10 @@ var gb_map_gaode = (function() {
63 63 carparks={};
64 64 map.clearMap();
65 65 },
  66 + clearAllGps: function () {
  67 + map.remove(gb_common.get_vals(realMarkers));
  68 + realMarkers = {};
  69 + },
66 70 drawLine: function(opt){
67 71 if(polylines[opt.id])
68 72 return;
... ... @@ -331,17 +335,17 @@ var gb_map_gaode = (function() {
331 335 //如果需要标识角度
332 336 if(config.carIcon.angle) {
333 337 marker.setIcon(new AMap.Icon({
334   - size: new AMap.Size(w, 75), //图标大小
  338 + size: new AMap.Size(w, 70), //图标大小
335 339 image: gb_map_imap.createCarIconRotation(gps, w)
336 340 }));
337 341 marker.setOffset(new AMap.Pixel(-(w / 2), -35));
338 342 }
339 343 else{
340 344 marker.setIcon(new AMap.Icon({
341   - size: new AMap.Size(w, 25), //图标大小
  345 + size: new AMap.Size(w, 20), //图标大小
342 346 image: gb_map_imap.createCarIcon(gps, w)
343 347 }));
344   - marker.setOffset(new AMap.Pixel(-(w / 2), -12.5));
  348 + marker.setOffset(new AMap.Pixel(-(w / 2), -10.5));
345 349 }
346 350 }
347 351  
... ... @@ -354,10 +358,10 @@ var gb_map_gaode = (function() {
354 358 map: map,
355 359 position: [statio.gcj_lon, statio.gcj_lat],
356 360 icon: new AMap.Icon({
357   - size: new AMap.Size(w, 20), //图标大小
  361 + size: new AMap.Size(w, 24), //图标大小
358 362 image: gb_map_imap.createStationIcon(statio, w)
359 363 }),
360   - offset: new AMap.Pixel(-(w/2), -20)
  364 + offset: new AMap.Pixel(-(w/2), -24)
361 365 });
362 366  
363 367 //信息窗口
... ...
src/main/resources/static/real_control_v2/mapmonitor/js/map_overlay_manager.js
... ... @@ -11,25 +11,22 @@ var gb_map_overlay_mge = (function () {
11 11 //如果地图正在重绘,暂时不刷新GPS
12 12 if(reDrawing)
13 13 return;
14   - var all = addArr.concat(upArr).concat(upDownChange);
15   - gpsRefreshAll(all);
  14 + //var all = addArr.concat(upArr).concat(upDownChange);
  15 + gpsRefreshAll(addArr, upArr, upDownChange);
16 16  
17 17 };
18 18  
19   - var gpsRefreshAll = function (allList) {
20   - //是否需要添加樹節點
21   - var newTreeNodes=[], currArray=gb_map_gps_tree.all_devices();
22   - $.each(allList, function () {
23   - if(currArray.indexOf(this.deviceId) == -1)
24   - newTreeNodes.push(this);
25   - });
26   -
27   - gb_map_imap.call('drawRealGpsMarker', {gpsList: allList});
28   -
29   - //有新设备上线
30   - if(newTreeNodes.length > 0){
31   - gb_map_gps_tree.create_node(newTreeNodes, showOverlayByChecks);
  19 + var gpsRefreshAll = function (addArr, upArr, upDownChange) {
  20 + //更新设备树菜单
  21 + if(gb_map_gps_tree.readyStatus()){
  22 + gb_map_gps_tree.create_node(addArr);
  23 + gb_map_gps_tree.update_node(upArr);
  24 + gb_map_gps_tree.changeUpDown(upDownChange);
32 25 }
  26 +
  27 + //更新地图
  28 + var all = addArr.concat(upArr).concat(upDownChange);
  29 + gb_map_imap.call('drawRealGpsMarker', {gpsList: all});
33 30 };
34 31  
35 32 var deviceFilter = function (node) {
... ... @@ -83,15 +80,26 @@ var gb_map_overlay_mge = (function () {
83 80 gb_map_imap.call('clearAll');
84 81  
85 82 drawAllSection();
86   - //初始绘制
87   - gpsRefreshAll(gb_common.get_vals(gb_data_gps.allGps));
  83 + //重绘GPS
  84 + gb_map_imap.call('drawRealGpsMarker', {gpsList: gb_common.get_vals(gb_data_gps.allGps)});
88 85  
89 86 showOverlayByChecks();
90 87 //显示路段
91 88 showSection(getCheckedDevice());
92 89  
93 90 reDrawing = false;
94   - }
  91 + };
  92 +
  93 + //重绘GPS
  94 + var reDrawGps = function () {
  95 + reDrawing = true;
  96 + gb_map_imap.call('clearAllGps');
  97 + //重绘GPS
  98 + gb_map_imap.call('drawRealGpsMarker', {gpsList: gb_common.get_vals(gb_data_gps.allGps)});
  99 +
  100 + showOverlayByChecks();
  101 + reDrawing = false;
  102 + };
95 103  
96 104 var init = function () {
97 105 reDraw();
... ... @@ -102,7 +110,7 @@ var gb_map_overlay_mge = (function () {
102 110 centerToRational();
103 111 };
104 112  
105   -
  113 +
106 114 var showOverlayByChecks = function () {
107 115 var chs = getCheckedDevice(),chsMap={};
108 116 $.each(chs, function () {
... ... @@ -115,7 +123,7 @@ var gb_map_overlay_mge = (function () {
115 123 showSection(chs);
116 124  
117 125 };
118   -
  126 +
119 127 var _focus = function (deviceId) {
120 128 gb_map_imap.call('goToMarker', {deviceId: deviceId});
121 129 //打开信息窗口
... ... @@ -125,14 +133,14 @@ var gb_map_overlay_mge = (function () {
125 133 //站点获得焦点
126 134 var _focus_station = function (station) {
127 135 gb_map_imap.call('goToStation', station.stationCode);
128   - }
  136 + };
129 137  
130 138 //停车场获得焦点
131 139 var _focus_carpark = function (carpark) {
132 140 //console.log('_focus_carpark', carpark);
133 141 gb_map_imap.call('goToCarpark', carpark.parkCode);
134   - }
135   -
  142 + };
  143 +
136 144 function getCheckedDevice() {
137 145 return gb_map_gps_tree.getChecked().filter(deviceFilter);
138 146 }
... ... @@ -144,7 +152,7 @@ var gb_map_overlay_mge = (function () {
144 152 gb_map_imap.call('drawStationMarker', {list: list});
145 153 //绘制电子围栏
146 154 drawElectronicFence(list);
147   - }
  155 + };
148 156  
149 157 //绘制电子围栏
150 158 var drawElectronicFence = function (list) {
... ... @@ -162,13 +170,13 @@ var gb_map_overlay_mge = (function () {
162 170 fun=this.shapesType=='r'?drawCircle:drawPolygon;
163 171 fun(this);
164 172 });
165   - }
  173 + };
166 174  
167 175 //绘制停车场
168 176 var drawCarpark = function () {
169 177 var list = gb_map_spatial_data.gteCheckedCarpark();
170 178 gb_map_imap.call('drawCarpark', {list: list});
171   - }
  179 + };
172 180  
173 181 var drawCircle=function (data) {
174 182 var config = gb_map_config.getConfig().section.color;
... ... @@ -185,7 +193,7 @@ var gb_map_overlay_mge = (function () {
185 193 };
186 194  
187 195 gb_map_imap.call('drawCircle', opt);
188   - }
  196 + };
189 197  
190 198 var drawPolygon=function (data) {
191 199 var config = gb_map_config.getConfig().section.color;
... ... @@ -199,7 +207,7 @@ var gb_map_overlay_mge = (function () {
199 207 };
200 208  
201 209 gb_map_imap.call('drawPolygon', opt);
202   - }
  210 + };
203 211  
204 212 //地图居中至合理的位置
205 213 var centerToRational=function () {
... ... @@ -208,8 +216,8 @@ var gb_map_overlay_mge = (function () {
208 216 var id=chs[0].data.lineId+'_'+chs[0].data.upDown;
209 217 gb_map_imap.call('centerToLine', {id: id});
210 218 }
211   - }
212   -
  219 + };
  220 +
213 221 return {
214 222 init: init,
215 223 refresh: showOverlayByChecks,
... ... @@ -226,6 +234,7 @@ var gb_map_overlay_mge = (function () {
226 234 return temps['map-win-carpark-detail-temp'](data);
227 235 },
228 236 reDraw: reDraw,
  237 + reDrawGps: reDrawGps,
229 238 getCheckedDevice: getCheckedDevice,
230 239 drawStation: drawStation,
231 240 drawElectronicFence: drawElectronicFence,
... ...
src/main/resources/static/real_control_v2/mapmonitor/real.html
... ... @@ -5,31 +5,18 @@
5 5 <link rel="stylesheet" href="/real_control_v2/mapmonitor/css/real.css"/>
6 6 <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/progress.gradient.min.css">
7 7  
8   -<div class="map-system-msg">
9   - <a class="z-depth-2" href="/pages/mapmonitor/alone/wrap.html" target="_blank">
10   - 当前地图模块正在维护升级中,请点这里打开原版地图
11   -
12   - <i class="uk-icon-close map-system-msg-close"></i>
13   - </a>
  8 +<div class="map-system-msg flex-left">
  9 + <a class="z-depth-2" href="/pages/mapmonitor/alone/wrap.html" target="_blank"></a>
14 10 </div>
15   -<script>
16   - $('.map-system-msg-close').on('click', function (e) {
17   - e.stopPropagation();
18   - $('.map-system-msg').addClass('flex-left');
19   - return false;
20   - });
21   -
22   - setTimeout(function () {
23   - $('.map-system-msg-close').trigger('click');
24   - }, 2000);
25   -</script>
26 11  
27 12 <div id="real_map_container"></div>
28 13 <div class="real_right_gps_panel">
29   - <form class="uk-form" data-uk-margin="">
30   - <div class="uk-form-icon">
31   - <i class="uk-icon-search"></i>
32   - <input type="text" placeholder="搜索..." disabled>
  14 + <form class="uk-form" >
  15 + <div class="uk-autocomplete uk-form ral-gps-autocom" style="width: 100%;">
  16 + <div class="uk-form-icon">
  17 + <i class="uk-icon-search"></i>
  18 + <input type="text" placeholder="搜索...">
  19 + </div>
33 20 </div>
34 21 </form>
35 22  
... ... @@ -40,7 +27,7 @@
40 27 <!--<div id="handle" class="ui-resizable-handle ui-resizable-n"></div>-->
41 28 <div class="real_br_cont map_config_wrap"></div>
42 29 <div class="telescopic">
43   - <i class="uk-icon-angle-double-up" ></i>
  30 + <i class="uk-icon-angle-double-up"></i>
44 31 </div>
45 32 </div>
46 33  
... ...