Commit 62716b49bcfee761b1887ab9c10ef8d60d4017bd
1 parent
bb7d840d
update
Showing
15 changed files
with
371 additions
and
110 deletions
src/main/java/com/bsth/entity/realcontrol/SvgAttribute.java
0 → 100644
| 1 | +package com.bsth.entity.realcontrol; | ||
| 2 | + | ||
| 3 | +import javax.persistence.Id; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * 主页SVG模拟图属性设置 | ||
| 7 | + * Created by panzhao on 2017/1/6. | ||
| 8 | + */ | ||
| 9 | +public class SvgAttribute { | ||
| 10 | + | ||
| 11 | + @Id | ||
| 12 | + private String lineCode; | ||
| 13 | + | ||
| 14 | + /** 要隐藏的站点编码 , 号分割多个 */ | ||
| 15 | + private String hideStations; | ||
| 16 | + | ||
| 17 | + /** 站点别名 json对象字符串 */ | ||
| 18 | + private String nicknames; | ||
| 19 | +} |
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
| @@ -36,6 +36,7 @@ import com.bsth.util.*; | @@ -36,6 +36,7 @@ import com.bsth.util.*; | ||
| 36 | import com.bsth.websocket.handler.SendUtils; | 36 | import com.bsth.websocket.handler.SendUtils; |
| 37 | import com.google.common.base.Splitter; | 37 | import com.google.common.base.Splitter; |
| 38 | import com.google.common.collect.ArrayListMultimap; | 38 | import com.google.common.collect.ArrayListMultimap; |
| 39 | +import com.google.common.collect.BiMap; | ||
| 39 | import com.google.common.collect.Lists; | 40 | import com.google.common.collect.Lists; |
| 40 | import com.google.common.collect.Multimap; | 41 | import com.google.common.collect.Multimap; |
| 41 | import org.apache.commons.lang3.StringUtils; | 42 | import org.apache.commons.lang3.StringUtils; |
| @@ -265,6 +266,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -265,6 +266,12 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 265 | public Map<String, Object> save(ScheduleRealInfo t) { | 266 | public Map<String, Object> save(ScheduleRealInfo t) { |
| 266 | Map<String, Object> rs = new HashMap<>(); | 267 | Map<String, Object> rs = new HashMap<>(); |
| 267 | try{ | 268 | try{ |
| 269 | + if(BasicData.deviceId2NbbmMap.inverse().get(t.getClZbh()) == null){ | ||
| 270 | + rs.put("msg", "车辆 " + t.getClZbh() + " <a href=\"/#/busInfoManage\" target=_blank>车辆基础信息</a> 里找不到!"); | ||
| 271 | + rs.put("status", ResponseCode.ERROR); | ||
| 272 | + return rs; | ||
| 273 | + } | ||
| 274 | + | ||
| 268 | SysUser user = SecurityUtils.getCurrentUser(); | 275 | SysUser user = SecurityUtils.getCurrentUser(); |
| 269 | String schDate = DayOfSchedule.currSchDateMap.get(t.getXlBm()); | 276 | String schDate = DayOfSchedule.currSchDateMap.get(t.getXlBm()); |
| 270 | 277 | ||
| @@ -1725,9 +1732,16 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -1725,9 +1732,16 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 1725 | Set<ScheduleRealInfo> set = new HashSet<>(); | 1732 | Set<ScheduleRealInfo> set = new HashSet<>(); |
| 1726 | 1733 | ||
| 1727 | ScheduleRealInfo sch; | 1734 | ScheduleRealInfo sch; |
| 1735 | + BiMap<String, String> map = BasicData.deviceId2NbbmMap.inverse(); | ||
| 1728 | 1736 | ||
| 1729 | for(ChangePersonCar cpc : cpcs){ | 1737 | for(ChangePersonCar cpc : cpcs){ |
| 1730 | - | 1738 | + |
| 1739 | + if(map.get(cpc.getClZbh()) == null){ | ||
| 1740 | + rs.put("msg", "车辆 " + cpc.getClZbh() + " <a href=\"/#/busInfoManage\" target=_blank>车辆基础信息</a> 里找不到!"); | ||
| 1741 | + rs.put("status", ResponseCode.ERROR); | ||
| 1742 | + return rs; | ||
| 1743 | + } | ||
| 1744 | + | ||
| 1731 | sch = dayOfSchedule.get(cpc.getSchId()); | 1745 | sch = dayOfSchedule.get(cpc.getSchId()); |
| 1732 | if(sch==null) | 1746 | if(sch==null) |
| 1733 | continue; | 1747 | continue; |
| @@ -1741,13 +1755,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -1741,13 +1755,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 1741 | if(StringUtils.isNotEmpty(cpc.getSpy())){ | 1755 | if(StringUtils.isNotEmpty(cpc.getSpy())){ |
| 1742 | persoChangeSPY(sch, cpc.getSpy().split("/")[0]); | 1756 | persoChangeSPY(sch, cpc.getSpy().split("/")[0]); |
| 1743 | } | 1757 | } |
| 1744 | - | 1758 | + |
| 1745 | //换车 | 1759 | //换车 |
| 1746 | if(StringUtils.isNotEmpty(cpc.getClZbh())){ | 1760 | if(StringUtils.isNotEmpty(cpc.getClZbh())){ |
| 1747 | set.add(sch); | 1761 | set.add(sch); |
| 1748 | set.addAll(dayOfSchedule.changeCar(sch, cpc.getClZbh())); | 1762 | set.addAll(dayOfSchedule.changeCar(sch, cpc.getClZbh())); |
| 1749 | } | 1763 | } |
| 1750 | - | 1764 | + |
| 1751 | } | 1765 | } |
| 1752 | rs.put("ts", set); | 1766 | rs.put("ts", set); |
| 1753 | rs.put("status", ResponseCode.SUCCESS); | 1767 | rs.put("status", ResponseCode.SUCCESS); |
src/main/resources/static/real_control_v2/css/home.css
| @@ -39,7 +39,7 @@ | @@ -39,7 +39,7 @@ | ||
| 39 | border: 1px solid #e6e6e6; | 39 | border: 1px solid #e6e6e6; |
| 40 | border-radius: 4px; | 40 | border-radius: 4px; |
| 41 | margin: 0 1px 4px 1px; | 41 | margin: 0 1px 4px 1px; |
| 42 | - min-height: 230px; | 42 | + min-height: 240px; |
| 43 | height: calc(100% / 3 - 12px); | 43 | height: calc(100% / 3 - 12px); |
| 44 | padding: 3px; | 44 | padding: 3px; |
| 45 | } | 45 | } |
| @@ -75,30 +75,35 @@ | @@ -75,30 +75,35 @@ | ||
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | .home-gps-table dl dt:nth-of-type(3), .home-gps-table dl dd:nth-of-type(3) { | 77 | .home-gps-table dl dt:nth-of-type(3), .home-gps-table dl dd:nth-of-type(3) { |
| 78 | - width: 11% | 78 | + width: 10% |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | .home-gps-table dl dt:nth-of-type(4), .home-gps-table dl dd:nth-of-type(4) { | 81 | .home-gps-table dl dt:nth-of-type(4), .home-gps-table dl dd:nth-of-type(4) { |
| 82 | - width: 19% | 82 | + width: 10% |
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | .home-gps-table dl dt:nth-of-type(5), .home-gps-table dl dd:nth-of-type(5) { | 85 | .home-gps-table dl dt:nth-of-type(5), .home-gps-table dl dd:nth-of-type(5) { |
| 86 | - width: 18% | 86 | + width: 19% |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | .home-gps-table dl dt:nth-of-type(6), .home-gps-table dl dd:nth-of-type(6) { | 89 | .home-gps-table dl dt:nth-of-type(6), .home-gps-table dl dd:nth-of-type(6) { |
| 90 | - width: 10% | 90 | + width: 18% |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | .home-gps-table dl dt:nth-of-type(7), .home-gps-table dl dd:nth-of-type(7) { | 93 | .home-gps-table dl dt:nth-of-type(7), .home-gps-table dl dd:nth-of-type(7) { |
| 94 | - width: 9% | 94 | + width: 10% |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | .home-gps-table dl dt:nth-of-type(8), .home-gps-table dl dd:nth-of-type(8) { | 97 | .home-gps-table dl dt:nth-of-type(8), .home-gps-table dl dd:nth-of-type(8) { |
| 98 | - width: 8%; | 98 | + width: 9%; |
| 99 | border-right: 0; | 99 | border-right: 0; |
| 100 | } | 100 | } |
| 101 | 101 | ||
| 102 | +/*.home-gps-table dl dt:nth-of-type(9), .home-gps-table dl dd:nth-of-type(9) { | ||
| 103 | + width: 8%; | ||
| 104 | + border-right: 0; | ||
| 105 | +}*/ | ||
| 106 | + | ||
| 102 | .data-wrap.up { | 107 | .data-wrap.up { |
| 103 | /*border-left: 1px solid #dadada;*/ | 108 | /*border-left: 1px solid #dadada;*/ |
| 104 | } | 109 | } |
| @@ -234,3 +239,30 @@ | @@ -234,3 +239,30 @@ | ||
| 234 | .data-wrap.down::-webkit-scrollbar-thumb{ | 239 | .data-wrap.down::-webkit-scrollbar-thumb{ |
| 235 | box-shadow: 0 0 0 5px rgba(210, 103, 103, 0.44) inset; | 240 | box-shadow: 0 0 0 5px rgba(210, 103, 103, 0.44) inset; |
| 236 | }*/ | 241 | }*/ |
| 242 | + | ||
| 243 | +span.signal-state-outbounds{ | ||
| 244 | + background: #f3ff00; | ||
| 245 | + color: #d42727; | ||
| 246 | + padding: 2px 3px; | ||
| 247 | + border-radius: 3px; | ||
| 248 | + font-size: 11px; | ||
| 249 | +} | ||
| 250 | + | ||
| 251 | +.home-svg-edit-icon{ | ||
| 252 | + position: absolute; | ||
| 253 | + right: 10px; | ||
| 254 | + top: 5px; | ||
| 255 | + cursor: pointer; | ||
| 256 | + z-index: 3; | ||
| 257 | + opacity: 0; | ||
| 258 | + transition: all .3s ease; | ||
| 259 | +} | ||
| 260 | + | ||
| 261 | +.home-svg-edit-icon:hover{ | ||
| 262 | + opacity: 1; | ||
| 263 | +} | ||
| 264 | + | ||
| 265 | +.home-svg-edit-icon:before{ | ||
| 266 | + font-family: FontAwesome; | ||
| 267 | + content: "\f040"; | ||
| 268 | +} | ||
| 237 | \ No newline at end of file | 269 | \ No newline at end of file |
src/main/resources/static/real_control_v2/css/line_schedule.css
| @@ -151,13 +151,13 @@ | @@ -151,13 +151,13 @@ | ||
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | .ct_table .uk-badge { | 153 | .ct_table .uk-badge { |
| 154 | - padding: 0 1px 0 1px; | ||
| 155 | - text-indent: 0; | ||
| 156 | - font-family: 华文细黑; | 154 | + padding: 0 1px 0 1px; |
| 155 | + text-indent: 0; | ||
| 156 | + font-family: 华文细黑; | ||
| 157 | } | 157 | } |
| 158 | 158 | ||
| 159 | .ct_table .uk-badge.uk-badge-notification{ | 159 | .ct_table .uk-badge.uk-badge-notification{ |
| 160 | - text-indent: -1px; | 160 | + text-indent: -1px; |
| 161 | } | 161 | } |
| 162 | 162 | ||
| 163 | .schedule-body .ct_table dl._active, .schedule-body .ct_table>.ct_table_body dl._active:hover { | 163 | .schedule-body .ct_table dl._active, .schedule-body .ct_table>.ct_table_body dl._active:hover { |
| @@ -200,7 +200,7 @@ | @@ -200,7 +200,7 @@ | ||
| 200 | } | 200 | } |
| 201 | 201 | ||
| 202 | .schedule-body .ct_table dl._search_hide{ | 202 | .schedule-body .ct_table dl._search_hide{ |
| 203 | - display: none !important; | 203 | + display: none !important; |
| 204 | } | 204 | } |
| 205 | 205 | ||
| 206 | .context-menu-list.schedule-ct-menu { | 206 | .context-menu-list.schedule-ct-menu { |
| @@ -246,34 +246,34 @@ span.fcsj-diff { | @@ -246,34 +246,34 @@ span.fcsj-diff { | ||
| 246 | /** 图例 */ | 246 | /** 图例 */ |
| 247 | 247 | ||
| 248 | .tl-yzx { | 248 | .tl-yzx { |
| 249 | - background: #c1ddf0; | 249 | + background: rgb( 192,192,255); |
| 250 | border-top: 1px solid #ebebeb !important; | 250 | border-top: 1px solid #ebebeb !important; |
| 251 | color: #444; | 251 | color: #444; |
| 252 | } | 252 | } |
| 253 | 253 | ||
| 254 | .tl-xxfc{ | 254 | .tl-xxfc{ |
| 255 | - background: #ff7878; | ||
| 256 | - color: #f1f1f1; | 255 | + background: rgb(0,255,255); |
| 256 | + color: #484747; | ||
| 257 | } | 257 | } |
| 258 | 258 | ||
| 259 | .tl-wd{ | 259 | .tl-wd{ |
| 260 | - background: #dede57; | 260 | + background: rgb(255,255,0); |
| 261 | color: #444; | 261 | color: #444; |
| 262 | } | 262 | } |
| 263 | 263 | ||
| 264 | .tl-xxsd{ | 264 | .tl-xxsd{ |
| 265 | - background: #e2de94; | ||
| 266 | - color: #444; | 265 | + background: rgb(205,133,63); |
| 266 | + color: #f5f4f4; | ||
| 267 | } | 267 | } |
| 268 | 268 | ||
| 269 | .tl-xxrd{ | 269 | .tl-xxrd{ |
| 270 | - background: #c1ddf0; | 270 | + background: rgb(255,99,71); |
| 271 | border-top: 1px solid #ebebeb !important; | 271 | border-top: 1px solid #ebebeb !important; |
| 272 | - color: #444; | 272 | + color: #fff; |
| 273 | } | 273 | } |
| 274 | 274 | ||
| 275 | .tl-qrlb { | 275 | .tl-qrlb { |
| 276 | - background: #7B6B24; | 276 | + background: rgb( 128,128,0); |
| 277 | color: #EAEBEC; | 277 | color: #EAEBEC; |
| 278 | font-size: 13px; | 278 | font-size: 13px; |
| 279 | } | 279 | } |
| @@ -283,7 +283,7 @@ span.fcsj-diff { | @@ -283,7 +283,7 @@ span.fcsj-diff { | ||
| 283 | } | 283 | } |
| 284 | 284 | ||
| 285 | .tl-zzzx { | 285 | .tl-zzzx { |
| 286 | - background: #96F396; | 286 | + background: rgb(173,255,47); |
| 287 | color: #444; | 287 | color: #444; |
| 288 | } | 288 | } |
| 289 | 289 | ||
| @@ -370,8 +370,8 @@ span.fcsj-diff { | @@ -370,8 +370,8 @@ span.fcsj-diff { | ||
| 370 | 370 | ||
| 371 | .ct-form-modal span.uk-form-help-inline, | 371 | .ct-form-modal span.uk-form-help-inline, |
| 372 | .ct-form-modal p.uk-form-help-block{ | 372 | .ct-form-modal p.uk-form-help-block{ |
| 373 | - color: #888888; | ||
| 374 | - font-size: 13px; | 373 | + color: #888888; |
| 374 | + font-size: 13px; | ||
| 375 | } | 375 | } |
| 376 | 376 | ||
| 377 | 377 | ||
| @@ -532,8 +532,8 @@ dl.relevance-active dd:nth-child(n+2) { | @@ -532,8 +532,8 @@ dl.relevance-active dd:nth-child(n+2) { | ||
| 532 | } | 532 | } |
| 533 | 533 | ||
| 534 | dl.relevance-active.intimity dd:nth-child(n+2) { | 534 | dl.relevance-active.intimity dd:nth-child(n+2) { |
| 535 | - background: #76a6c7 !important; | ||
| 536 | - color: white; | 535 | + background: #8baabf !important; |
| 536 | + color: white; | ||
| 537 | } | 537 | } |
| 538 | 538 | ||
| 539 | dl.relevance-active.intimity dd:nth-child(n+2) a { | 539 | dl.relevance-active.intimity dd:nth-child(n+2) a { |
| @@ -542,13 +542,24 @@ dl.relevance-active.intimity dd:nth-child(n+2) a { | @@ -542,13 +542,24 @@ dl.relevance-active.intimity dd:nth-child(n+2) a { | ||
| 542 | 542 | ||
| 543 | dl.relevance-active dd.tl-qrlb, | 543 | dl.relevance-active dd.tl-qrlb, |
| 544 | dl.relevance-active.intimity dd.tl-qrlb{ | 544 | dl.relevance-active.intimity dd.tl-qrlb{ |
| 545 | - background: linear-gradient(to right, #7B6B24, #4992c3) !important; | 545 | + background: linear-gradient(to right, #a9a911, #808000, #8baabf) !important; |
| 546 | color: #f8e9cd; | 546 | color: #f8e9cd; |
| 547 | } | 547 | } |
| 548 | 548 | ||
| 549 | +dl.relevance-active dd.tl-wd, | ||
| 550 | +dl.relevance-active.intimity dd.tl-wd{ | ||
| 551 | + background: linear-gradient(to right, #ffff00, rgb(226, 226, 168), rgb(139, 170, 191)) !important; | ||
| 552 | +} | ||
| 553 | + | ||
| 554 | +dl.relevance-active dd.tl-qrlb, | ||
| 555 | +dl.relevance-active.intimity dd.tl-yzx{ | ||
| 556 | + background: linear-gradient(to right, #dcdcfd, #c0c0ff, #8baabf) !important; | ||
| 557 | + color: #272727; | ||
| 558 | +} | ||
| 559 | + | ||
| 549 | dl.relevance-active dd.tl-zzzx, | 560 | dl.relevance-active dd.tl-zzzx, |
| 550 | dl.relevance-active.intimity dd.tl-zzzx { | 561 | dl.relevance-active.intimity dd.tl-zzzx { |
| 551 | - background: linear-gradient(to right, #96F396, #4992c3) !important; | 562 | + background: linear-gradient(to right, #def5bb, #adff2f, #8baabf) !important; |
| 552 | color: #565252; | 563 | color: #565252; |
| 553 | } | 564 | } |
| 554 | 565 | ||
| @@ -557,8 +568,23 @@ dl.relevance-active.intimity dd.tl-zzzx span.fcsj-diff { | @@ -557,8 +568,23 @@ dl.relevance-active.intimity dd.tl-zzzx span.fcsj-diff { | ||
| 557 | color: #5e5a5a | 568 | color: #5e5a5a |
| 558 | } | 569 | } |
| 559 | 570 | ||
| 571 | +dl.relevance-active dd.tl-xxsd, | ||
| 572 | +dl.relevance-active.intimity dd.tl-xxsd { | ||
| 573 | + background: linear-gradient(to right, #8baabf, #cd853f, #dc9958) !important; | ||
| 574 | +} | ||
| 575 | + | ||
| 576 | +dl.relevance-active dd.tl-xxrd, | ||
| 577 | +dl.relevance-active.intimity dd.tl-xxrd { | ||
| 578 | + background: linear-gradient(to right, #8baabf, #ff6347, #ff8f7b) !important; | ||
| 579 | +} | ||
| 580 | + | ||
| 581 | +dl.relevance-active dd.tl-xxfc, | ||
| 582 | +dl.relevance-active.intimity dd.tl-xxfc { | ||
| 583 | + background: linear-gradient(to right, #8baabf, rgb(43, 185, 185), rgb(0,255,255)) !important; | ||
| 584 | +} | ||
| 585 | + | ||
| 560 | dl.relevance-active.intimity dd span.fcsj-diff { | 586 | dl.relevance-active.intimity dd span.fcsj-diff { |
| 561 | - color: #d7d6d6; | 587 | + color: #616060; |
| 562 | } | 588 | } |
| 563 | 589 | ||
| 564 | dl.relevance-active dd span.fcsj-diff{ | 590 | dl.relevance-active dd span.fcsj-diff{ |
| @@ -604,10 +630,10 @@ div.drop-rail.over { | @@ -604,10 +630,10 @@ div.drop-rail.over { | ||
| 604 | } | 630 | } |
| 605 | 631 | ||
| 606 | label.destroy-sch{ | 632 | label.destroy-sch{ |
| 607 | - color: #928e8e; | 633 | + color: #928e8e; |
| 608 | } | 634 | } |
| 609 | label.destroy-sch small{ | 635 | label.destroy-sch small{ |
| 610 | - color: #e25e5e; | 636 | + color: #e25e5e; |
| 611 | } | 637 | } |
| 612 | 638 | ||
| 613 | .main-schedule-table dl dt:nth-of-type(1), .main-schedule-table dl dd:nth-of-type(1) { | 639 | .main-schedule-table dl dt:nth-of-type(1), .main-schedule-table dl dd:nth-of-type(1) { |
| @@ -639,20 +665,20 @@ label.destroy-sch small{ | @@ -639,20 +665,20 @@ label.destroy-sch small{ | ||
| 639 | .main-schedule-table.ct_table dl.active, | 665 | .main-schedule-table.ct_table dl.active, |
| 640 | .main-schedule-table.ct_table>.ct_table_body dl.active:hover, | 666 | .main-schedule-table.ct_table>.ct_table_body dl.active:hover, |
| 641 | .main-schedule-table.ct_table>.ct_table_body dl.context-menu-active{ | 667 | .main-schedule-table.ct_table>.ct_table_body dl.context-menu-active{ |
| 642 | - background: #9393bf; | ||
| 643 | - box-shadow: 0 0 4px #656c71; | ||
| 644 | - color: white; | 668 | + background: #9393bf; |
| 669 | + box-shadow: 0 0 4px #656c71; | ||
| 670 | + color: white; | ||
| 645 | } | 671 | } |
| 646 | 672 | ||
| 647 | .main-schedule-table span.sjfc-time{ | 673 | .main-schedule-table span.sjfc-time{ |
| 648 | - color:#07d | 674 | + color:#07d |
| 649 | } | 675 | } |
| 650 | 676 | ||
| 651 | .main-schedule-table dl.active span.sjfc-time{ | 677 | .main-schedule-table dl.active span.sjfc-time{ |
| 652 | - background: white; | ||
| 653 | - border-radius: 5px; | ||
| 654 | - padding: 2px 1px; | ||
| 655 | - vertical-align: middle; | 678 | + background: white; |
| 679 | + border-radius: 5px; | ||
| 680 | + padding: 2px 1px; | ||
| 681 | + vertical-align: middle; | ||
| 656 | } | 682 | } |
| 657 | 683 | ||
| 658 | .sub-task-table dl dt:nth-of-type(1), .sub-task-table dl dd:nth-of-type(1) { | 684 | .sub-task-table dl dt:nth-of-type(1), .sub-task-table dl dd:nth-of-type(1) { |
| @@ -682,7 +708,7 @@ label.destroy-sch small{ | @@ -682,7 +708,7 @@ label.destroy-sch small{ | ||
| 682 | } | 708 | } |
| 683 | 709 | ||
| 684 | .sub-task-table>.ct_table_body>dl:last-child dd{ | 710 | .sub-task-table>.ct_table_body>dl:last-child dd{ |
| 685 | - border-bottom: 0; | 711 | + border-bottom: 0; |
| 686 | } | 712 | } |
| 687 | 713 | ||
| 688 | .add-temp-sch-icon{ | 714 | .add-temp-sch-icon{ |
| @@ -700,16 +726,16 @@ label.destroy-sch small{ | @@ -700,16 +726,16 @@ label.destroy-sch small{ | ||
| 700 | 726 | ||
| 701 | 727 | ||
| 702 | input.i-cbox[type=checkbox]{ | 728 | input.i-cbox[type=checkbox]{ |
| 703 | - width: 20px; | ||
| 704 | - height: 18px; | ||
| 705 | - vertical-align: middle; | ||
| 706 | - margin-top: -3px; | 729 | + width: 20px; |
| 730 | + height: 18px; | ||
| 731 | + vertical-align: middle; | ||
| 732 | + margin-top: -3px; | ||
| 707 | } | 733 | } |
| 708 | 734 | ||
| 709 | .sys-note-80, | 735 | .sys-note-80, |
| 710 | .sys-note-42{ | 736 | .sys-note-42{ |
| 711 | - width: calc(100% - 10px) !important; | ||
| 712 | - margin: 5px !important; | 737 | + width: calc(100% - 10px) !important; |
| 738 | + margin: 5px !important; | ||
| 713 | cursor: default; | 739 | cursor: default; |
| 714 | } | 740 | } |
| 715 | 741 | ||
| @@ -720,21 +746,21 @@ input.i-cbox[type=checkbox]{ | @@ -720,21 +746,21 @@ input.i-cbox[type=checkbox]{ | ||
| 720 | 746 | ||
| 721 | .sys-note-80 .uk-panel-box, | 747 | .sys-note-80 .uk-panel-box, |
| 722 | .sys-note-42 .uk-panel-box{ | 748 | .sys-note-42 .uk-panel-box{ |
| 723 | - padding: 10px; | 749 | + padding: 10px; |
| 724 | } | 750 | } |
| 725 | .sys-note-80 .uk-panel-title{ | 751 | .sys-note-80 .uk-panel-title{ |
| 726 | - margin-bottom: 3px; | ||
| 727 | - font-size: 15px; | 752 | + margin-bottom: 3px; |
| 753 | + font-size: 15px; | ||
| 728 | } | 754 | } |
| 729 | 755 | ||
| 730 | .sys-note-42 .title{ | 756 | .sys-note-42 .title{ |
| 731 | - font-family: 微软雅黑; | ||
| 732 | - margin-bottom: 3px; | 757 | + font-family: 微软雅黑; |
| 758 | + margin-bottom: 3px; | ||
| 733 | } | 759 | } |
| 734 | .sys-note-80 .uk-button-group, | 760 | .sys-note-80 .uk-button-group, |
| 735 | .sys-note-42 .uk-button-group{ | 761 | .sys-note-42 .uk-button-group{ |
| 736 | - display: block; | ||
| 737 | - margin-top: 5px; | 762 | + display: block; |
| 763 | + margin-top: 5px; | ||
| 738 | } | 764 | } |
| 739 | 765 | ||
| 740 | 766 | ||
| @@ -759,7 +785,7 @@ input.i-cbox[type=checkbox]{ | @@ -759,7 +785,7 @@ input.i-cbox[type=checkbox]{ | ||
| 759 | .sch-tzrc-table.ct_table dl.active, | 785 | .sch-tzrc-table.ct_table dl.active, |
| 760 | .sch-tzrc-table.ct_table>.ct_table_body dl.active:hover, | 786 | .sch-tzrc-table.ct_table>.ct_table_body dl.active:hover, |
| 761 | .sch-tzrc-table.ct_table>.ct_table_body dl.context-menu-active{ | 787 | .sch-tzrc-table.ct_table>.ct_table_body dl.context-menu-active{ |
| 762 | - background: #e6e6e6; | 788 | + background: #e6e6e6; |
| 763 | } | 789 | } |
| 764 | 790 | ||
| 765 | .search_sch_panel{ | 791 | .search_sch_panel{ |
| @@ -767,17 +793,17 @@ input.i-cbox[type=checkbox]{ | @@ -767,17 +793,17 @@ input.i-cbox[type=checkbox]{ | ||
| 767 | } | 793 | } |
| 768 | 794 | ||
| 769 | .search_sch_panel .uk-form input[type=text]{ | 795 | .search_sch_panel .uk-form input[type=text]{ |
| 770 | - width: 80px; | ||
| 771 | - background: #fafafa; | ||
| 772 | - border: 0; | ||
| 773 | - border-bottom: 1px solid #ddd; | ||
| 774 | - font-size: 14px; | ||
| 775 | - height: 20px; | ||
| 776 | - transition: all .3s ease; | 796 | + width: 80px; |
| 797 | + background: #fafafa; | ||
| 798 | + border: 0; | ||
| 799 | + border-bottom: 1px solid #ddd; | ||
| 800 | + font-size: 14px; | ||
| 801 | + height: 20px; | ||
| 802 | + transition: all .3s ease; | ||
| 777 | } | 803 | } |
| 778 | 804 | ||
| 779 | .search_sch_panel .uk-form div.uk-form-icon.active input[type=text]{ | 805 | .search_sch_panel .uk-form div.uk-form-icon.active input[type=text]{ |
| 780 | - width: 145px; | 806 | + width: 145px; |
| 781 | } | 807 | } |
| 782 | 808 | ||
| 783 | .search_sch_panel .uk-form div.uk-form-icon i.cancel{ | 809 | .search_sch_panel .uk-form div.uk-form-icon i.cancel{ |
| @@ -802,8 +828,8 @@ input.i-cbox[type=checkbox]{ | @@ -802,8 +828,8 @@ input.i-cbox[type=checkbox]{ | ||
| 802 | } | 828 | } |
| 803 | 829 | ||
| 804 | .search_sch_panel .uk-form input[type=text]::-webkit-input-placeholder{ | 830 | .search_sch_panel .uk-form input[type=text]::-webkit-input-placeholder{ |
| 805 | - font-size: 12px; | ||
| 806 | - color: #cecece; | 831 | + font-size: 12px; |
| 832 | + color: #cecece; | ||
| 807 | } | 833 | } |
| 808 | .device_event_str{ | 834 | .device_event_str{ |
| 809 | font-size: 10px; | 835 | font-size: 10px; |
| @@ -1057,7 +1083,7 @@ i.signal_state_icon.uk-icon-reply{ | @@ -1057,7 +1083,7 @@ i.signal_state_icon.uk-icon-reply{ | ||
| 1057 | 1083 | ||
| 1058 | .child-task-status.fail{ | 1084 | .child-task-status.fail{ |
| 1059 | color: red; | 1085 | color: red; |
| 1060 | - text-shadow: red 0px 0px 20px; | 1086 | + /*text-shadow: red 0px 0px 20px;*/ |
| 1061 | } | 1087 | } |
| 1062 | 1088 | ||
| 1063 | .child-task-status.fail span.calc-detail{ | 1089 | .child-task-status.fail span.calc-detail{ |
src/main/resources/static/real_control_v2/css/main.css
| @@ -147,11 +147,11 @@ svg.line-chart text.station_text { | @@ -147,11 +147,11 @@ svg.line-chart text.station_text { | ||
| 147 | } | 147 | } |
| 148 | 148 | ||
| 149 | svg.line-chart text.station_text.up { | 149 | svg.line-chart text.station_text.up { |
| 150 | - fill: #5E96D2; | 150 | + fill: #4556b6; |
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | svg.line-chart text.station_text.down { | 153 | svg.line-chart text.station_text.down { |
| 154 | - fill: #C92121; | 154 | + fill: #c94f21; |
| 155 | } | 155 | } |
| 156 | 156 | ||
| 157 | svg.line-chart g.item:first-child>text { | 157 | svg.line-chart g.item:first-child>text { |
| @@ -166,7 +166,7 @@ svg.line-chart g.item:nth-last-child(3)>text { | @@ -166,7 +166,7 @@ svg.line-chart g.item:nth-last-child(3)>text { | ||
| 166 | 166 | ||
| 167 | svg.line-chart g.gps-wrap>rect { | 167 | svg.line-chart g.gps-wrap>rect { |
| 168 | width: 34px; | 168 | width: 34px; |
| 169 | - height: 18px; | 169 | + height: 15px; |
| 170 | /*fill: #fff;*/ | 170 | /*fill: #fff;*/ |
| 171 | rx: 4px; | 171 | rx: 4px; |
| 172 | cursor: pointer; | 172 | cursor: pointer; |
| @@ -188,7 +188,7 @@ svg.line-chart g.gps-wrap>rect.hover { | @@ -188,7 +188,7 @@ svg.line-chart g.gps-wrap>rect.hover { | ||
| 188 | 188 | ||
| 189 | svg.line-chart g.gps-wrap>text { | 189 | svg.line-chart g.gps-wrap>text { |
| 190 | font-size: 13px; | 190 | font-size: 13px; |
| 191 | - transform: translate(2px, 14px); | 191 | + transform: translate(2px, 12px); |
| 192 | pointer-events: none; | 192 | pointer-events: none; |
| 193 | } | 193 | } |
| 194 | 194 | ||
| @@ -506,3 +506,70 @@ li.map-panel{ | @@ -506,3 +506,70 @@ li.map-panel{ | ||
| 506 | fill: #dd3829; | 506 | fill: #dd3829; |
| 507 | } | 507 | } |
| 508 | 508 | ||
| 509 | + | ||
| 510 | +.svg-edit-panel-wrap{ | ||
| 511 | + width: 48%; | ||
| 512 | + border: 1px solid #e1d3d3; | ||
| 513 | + padding: 12px 0 0 0; | ||
| 514 | + border-radius: 4px; | ||
| 515 | + position: relative; | ||
| 516 | + display: inline-block; | ||
| 517 | + vertical-align: top; | ||
| 518 | +} | ||
| 519 | + | ||
| 520 | +.svg-edit-panel-wrap .title-badge{ | ||
| 521 | + position: absolute; | ||
| 522 | + top: -10px; | ||
| 523 | + left: 7px; | ||
| 524 | + font-size: 13px; | ||
| 525 | + background: #fff; | ||
| 526 | + padding: 0 3px; | ||
| 527 | + color: #888888; | ||
| 528 | +} | ||
| 529 | + | ||
| 530 | +.station-list{ | ||
| 531 | + width: 190px; | ||
| 532 | + padding: 2px 7px; | ||
| 533 | + height: 440px; | ||
| 534 | + overflow: auto; | ||
| 535 | + display: inline-block; | ||
| 536 | +} | ||
| 537 | + | ||
| 538 | +.station-list .station-item{ | ||
| 539 | + padding: 3px 0; | ||
| 540 | + margin: 5px 0; | ||
| 541 | + border-radius: 3px; | ||
| 542 | + font-size: 13px; | ||
| 543 | + text-indent: 7px; | ||
| 544 | + cursor: pointer; | ||
| 545 | + white-space: nowrap; | ||
| 546 | + overflow: hidden; | ||
| 547 | + text-overflow: ellipsis; | ||
| 548 | +} | ||
| 549 | + | ||
| 550 | +.station-list .station-item.disable, | ||
| 551 | +.station-list .station-item.disable:hover{ | ||
| 552 | + background: #d5c9c9 !important; | ||
| 553 | + color: #686565 !important; | ||
| 554 | +} | ||
| 555 | + | ||
| 556 | +.station-list.up .station-item{ | ||
| 557 | + background: #5364c3; | ||
| 558 | + color: white; | ||
| 559 | +} | ||
| 560 | + | ||
| 561 | +.station-list.up .station-item:hover{ | ||
| 562 | + box-shadow: 0px 3px 6px 0 rgba(0, 0, 0, 0.2), 0px 1px 4px 0 rgba(0, 0, 0, 0.19); | ||
| 563 | + background: #4556b6; | ||
| 564 | +} | ||
| 565 | + | ||
| 566 | + | ||
| 567 | +.station-list.down .station-item{ | ||
| 568 | + background: #f95858; | ||
| 569 | + color: white; | ||
| 570 | +} | ||
| 571 | + | ||
| 572 | +.station-list.down .station-item:hover{ | ||
| 573 | + box-shadow: 0px 3px 6px 0 rgba(0, 0, 0, 0.2), 0px 1px 4px 0 rgba(0, 0, 0, 0.19); | ||
| 574 | + background: #e95151; | ||
| 575 | +} | ||
| 509 | \ No newline at end of file | 576 | \ No newline at end of file |
src/main/resources/static/real_control_v2/fragments/home/layout.html
| @@ -22,6 +22,7 @@ | @@ -22,6 +22,7 @@ | ||
| 22 | <div class="uk-grid home-line-card" data-line-code="{{line.lineCode}}"> | 22 | <div class="uk-grid home-line-card" data-line-code="{{line.lineCode}}"> |
| 23 | <div class="uk-width-medium-1-5 data-wrap up" id="home_{{line.lineCode}}_0"></div> | 23 | <div class="uk-width-medium-1-5 data-wrap up" id="home_{{line.lineCode}}_0"></div> |
| 24 | <div class="uk-width-medium-3-5 svg-chart-wrap"> | 24 | <div class="uk-width-medium-3-5 svg-chart-wrap"> |
| 25 | + <div class="home-svg-edit-icon" data-line-code="{{line.lineCode}}"></div> | ||
| 25 | <div class="top-center-big-text"> | 26 | <div class="top-center-big-text"> |
| 26 | {{line.name}} | 27 | {{line.name}} |
| 27 | </div> | 28 | </div> |
src/main/resources/static/real_control_v2/fragments/home/line_panel.html
| @@ -10,12 +10,12 @@ | @@ -10,12 +10,12 @@ | ||
| 10 | <dl> | 10 | <dl> |
| 11 | <dt>车辆编码</dt> | 11 | <dt>车辆编码</dt> |
| 12 | <dt>速度</dt> | 12 | <dt>速度</dt> |
| 13 | - <dt>终点时间</dt> | 13 | + <dt>终点</dt> |
| 14 | + <dt>状态</dt> | ||
| 14 | <dt>当前站点</dt> | 15 | <dt>当前站点</dt> |
| 15 | <dt>终点站</dt> | 16 | <dt>终点站</dt> |
| 16 | <dt>计划到达</dt> | 17 | <dt>计划到达</dt> |
| 17 | <dt>驾驶员</dt> | 18 | <dt>驾驶员</dt> |
| 18 | - <dt>售票员</dt> | ||
| 19 | </dl> | 19 | </dl> |
| 20 | </div> | 20 | </div> |
| 21 | <div class="ct_table_body"></div> | 21 | <div class="ct_table_body"></div> |
| @@ -29,11 +29,29 @@ | @@ -29,11 +29,29 @@ | ||
| 29 | <dd title="{{nbbm}}"><a>{{nbbm}}</a></dd> | 29 | <dd title="{{nbbm}}"><a>{{nbbm}}</a></dd> |
| 30 | <dd>{{speed}}</dd> | 30 | <dd>{{speed}}</dd> |
| 31 | <dd>{{expectStopTime}}</dd> | 31 | <dd>{{expectStopTime}}</dd> |
| 32 | + <dd> | ||
| 33 | + {{if abnormal != null}} | ||
| 34 | + {{if abnormal == 'outBounds'}} | ||
| 35 | + 越界 | ||
| 36 | + {{/if}} | ||
| 37 | + {{else}} | ||
| 38 | + 正常 | ||
| 39 | + {{/if}} | ||
| 40 | + </dd> | ||
| 32 | <dd title="{{stationName}}">{{stationName}}</dd> | 41 | <dd title="{{stationName}}">{{stationName}}</dd> |
| 33 | <dd></dd> | 42 | <dd></dd> |
| 34 | <dd></dd> | 43 | <dd></dd> |
| 35 | <dd></dd> | 44 | <dd></dd> |
| 36 | - <dd></dd> | ||
| 37 | </dl> | 45 | </dl> |
| 38 | -</script> | 46 | + </script> |
| 47 | + | ||
| 48 | + <script id="home-gps-abnormal-temp" type="text/html"> | ||
| 49 | + {{if abnormal != null}} | ||
| 50 | + {{if abnormal == 'outBounds'}} | ||
| 51 | + <span class="signal-state-outbounds">越界</span> | ||
| 52 | + {{/if}} | ||
| 53 | + {{else}} | ||
| 54 | + 正常 | ||
| 55 | + {{/if}} | ||
| 56 | + </script> | ||
| 39 | </div> | 57 | </div> |
src/main/resources/static/real_control_v2/fragments/home/svg_edit.html
0 → 100644
| 1 | +<div class="uk-modal" id="home-svg-edit-modal"> | ||
| 2 | + <div class="uk-modal-dialog" style="width: 930px;"> | ||
| 3 | + <a href="" class="uk-modal-close uk-close"></a> | ||
| 4 | + <div class="uk-modal-header"> | ||
| 5 | + <h2>模拟图数据编辑</h2></div> | ||
| 6 | + | ||
| 7 | + <div class="svg-edit-panel-wrap station-list-wrap" > | ||
| 8 | + <span class="title-badge">站点缩略</span> | ||
| 9 | + </div> | ||
| 10 | + | ||
| 11 | + | ||
| 12 | + <div class="svg-edit-panel-wrap" style="margin-left: 25px;"> | ||
| 13 | + <span class="title-badge">站点重命名</span> | ||
| 14 | + </div> | ||
| 15 | + | ||
| 16 | + </div> | ||
| 17 | + | ||
| 18 | + <script id="svg-edit-station-list-temp" type="text/html"> | ||
| 19 | + <div class="station-list up"> | ||
| 20 | + {{each list[0] as s i}} | ||
| 21 | + <div class="station-item">{{s.stationName}}</div> | ||
| 22 | + {{/each}} | ||
| 23 | + </div> | ||
| 24 | + | ||
| 25 | + <div class="station-list down" style="margin-left: 8px;"> | ||
| 26 | + {{each list[1] as s i}} | ||
| 27 | + <div class="station-item">{{s.stationName}}</div> | ||
| 28 | + {{/each}} | ||
| 29 | + </div> | ||
| 30 | + </script> | ||
| 31 | + | ||
| 32 | + <script> | ||
| 33 | + (function () { | ||
| 34 | + var modal = '#home-svg-edit-modal', | ||
| 35 | + lineCode; | ||
| 36 | + | ||
| 37 | + $(modal).on('init', function (e, data) { | ||
| 38 | + lineCode = data.lineCode; | ||
| 39 | + //站点路由 | ||
| 40 | + var routeArray = gb_common.groupBy(gb_data_basic.stationRoutes(lineCode), 'directions'); | ||
| 41 | + //下行倒序 | ||
| 42 | + routeArray[1].sort(function (a, b) { | ||
| 43 | + return b.stationRouteCode - a.stationRouteCode; | ||
| 44 | + }); | ||
| 45 | + $('.station-list-wrap', modal).append(template('svg-edit-station-list-temp', {list: routeArray})); | ||
| 46 | + | ||
| 47 | + $('.station-item', modal).on('click', function () { | ||
| 48 | + if($(this).hasClass('disable')){ | ||
| 49 | + $(this).removeClass('disable'); | ||
| 50 | + } | ||
| 51 | + else | ||
| 52 | + $(this).addClass('disable'); | ||
| 53 | + }); | ||
| 54 | + }); | ||
| 55 | + })(); | ||
| 56 | + </script> | ||
| 57 | +</div> |
src/main/resources/static/real_control_v2/js/data/data_basic.js
| @@ -98,11 +98,11 @@ var gb_data_basic = (function () { | @@ -98,11 +98,11 @@ var gb_data_basic = (function () { | ||
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | return null; | 100 | return null; |
| 101 | - } | 101 | + }; |
| 102 | 102 | ||
| 103 | var getLineInformation = function (lineCode) { | 103 | var getLineInformation = function (lineCode) { |
| 104 | return lineInformations[lineCode]; | 104 | return lineInformations[lineCode]; |
| 105 | - } | 105 | + }; |
| 106 | //文件载入完毕 | 106 | //文件载入完毕 |
| 107 | res_load_ep.emitLater('load_data_basic'); | 107 | res_load_ep.emitLater('load_data_basic'); |
| 108 | 108 |
src/main/resources/static/real_control_v2/js/data/data_gps.js
| @@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
| 3 | var gb_data_gps = (function() { | 3 | var gb_data_gps = (function() { |
| 4 | 4 | ||
| 5 | //fixed time refresh delay | 5 | //fixed time refresh delay |
| 6 | - var delay = 1000 * 6; | 6 | + var delay = 1000 * 5; |
| 7 | //deviceId ——> gps | 7 | //deviceId ——> gps |
| 8 | var realData = {}; | 8 | var realData = {}; |
| 9 | //refresh after callback | 9 | //refresh after callback |
| @@ -34,6 +34,7 @@ var gb_data_gps = (function() { | @@ -34,6 +34,7 @@ var gb_data_gps = (function() { | ||
| 34 | upArr = [], | 34 | upArr = [], |
| 35 | upDownChange = []; | 35 | upDownChange = []; |
| 36 | 36 | ||
| 37 | + var schArray; | ||
| 37 | $.each(rs, function() { | 38 | $.each(rs, function() { |
| 38 | old = realData[this.deviceId]; | 39 | old = realData[this.deviceId]; |
| 39 | if (old) { | 40 | if (old) { |
| @@ -45,16 +46,26 @@ var gb_data_gps = (function() { | @@ -45,16 +46,26 @@ var gb_data_gps = (function() { | ||
| 45 | } else | 46 | } else |
| 46 | addArr.push(this); | 47 | addArr.push(this); |
| 47 | 48 | ||
| 49 | + //班次信息 | ||
| 50 | + if(this.schId){ | ||
| 51 | + schArray=gb_schedule_table.findScheduleByLine(this.lineId); | ||
| 52 | + if(schArray) | ||
| 53 | + this.sch = schArray[this.schId]; | ||
| 54 | + } | ||
| 55 | + | ||
| 48 | //时间格式化 | 56 | //时间格式化 |
| 49 | this.dateStr = moment(this.timestamp).format('YYYY-MM-DD HH:mm:ss'); | 57 | this.dateStr = moment(this.timestamp).format('YYYY-MM-DD HH:mm:ss'); |
| 58 | + //异常检测 | ||
| 59 | + gb_gps_abnormal.check(this); | ||
| 50 | realData[this.deviceId] = this; | 60 | realData[this.deviceId] = this; |
| 51 | }); | 61 | }); |
| 52 | 62 | ||
| 53 | - console.log('add array size: ' + addArr.length, 'up array size: ' + upArr.length); | 63 | + //console.log('add array size: ' + addArr.length, 'up array size: ' + upArr.length); |
| 54 | //CCCallFuncN | 64 | //CCCallFuncN |
| 55 | $.each(refreshEventCallbacks, function(i, cb) { | 65 | $.each(refreshEventCallbacks, function(i, cb) { |
| 56 | cb(addArr, upArr, upDownChange); | 66 | cb(addArr, upArr, upDownChange); |
| 57 | }); | 67 | }); |
| 68 | + | ||
| 58 | }; | 69 | }; |
| 59 | 70 | ||
| 60 | var startFixedTime; | 71 | var startFixedTime; |
| @@ -81,11 +92,11 @@ var gb_data_gps = (function() { | @@ -81,11 +92,11 @@ var gb_data_gps = (function() { | ||
| 81 | }; | 92 | }; |
| 82 | 93 | ||
| 83 | var findOne = function(deviceId){ | 94 | var findOne = function(deviceId){ |
| 84 | - return realData[deviceId]; | 95 | + return realData[deviceId]; |
| 85 | }; | 96 | }; |
| 86 | 97 | ||
| 87 | var findGpsByNbbm = function(nbbm){ | 98 | var findGpsByNbbm = function(nbbm){ |
| 88 | - return realData[gb_data_basic.nbbm2deviceMap()[nbbm]]; | 99 | + return realData[gb_data_basic.nbbm2deviceMap()[nbbm]]; |
| 89 | }; | 100 | }; |
| 90 | 101 | ||
| 91 | return { | 102 | return { |
src/main/resources/static/real_control_v2/js/data/gps_abnormal.js
| @@ -24,7 +24,16 @@ var gb_gps_abnormal = (function () { | @@ -24,7 +24,16 @@ var gb_gps_abnormal = (function () { | ||
| 24 | min = distance; | 24 | min = distance; |
| 25 | }); | 25 | }); |
| 26 | 26 | ||
| 27 | - //console.log('最短距离', min, gps); | 27 | + //越界阈值 120米 |
| 28 | + var threshold=120; | ||
| 29 | + if(gps.sch && gps.sch.bcType == 'in') | ||
| 30 | + return; | ||
| 31 | + | ||
| 32 | + if(min > threshold){ | ||
| 33 | + gps.abnormal = 'outBounds'; | ||
| 34 | + gps.outBoundsDistance = min; | ||
| 35 | + } | ||
| 36 | + //console.log('最短距离', min, gps.nbbm); | ||
| 28 | }; | 37 | }; |
| 29 | 38 | ||
| 30 | /** | 39 | /** |
src/main/resources/static/real_control_v2/js/home/layout.js
| 1 | /* home js */ | 1 | /* home js */ |
| 2 | 2 | ||
| 3 | -var gb_home_layout = (function() { | 3 | +var gb_home_layout = (function () { |
| 4 | 4 | ||
| 5 | var temps; | 5 | var temps; |
| 6 | 6 | ||
| 7 | - var layout = function(cb) { | 7 | + var layout = function (cb) { |
| 8 | //footer line name tabs | 8 | //footer line name tabs |
| 9 | var codeArray = gb_data_basic.line_idx.split(','), | 9 | var codeArray = gb_data_basic.line_idx.split(','), |
| 10 | tabsArray = [], | 10 | tabsArray = [], |
| 11 | len = codeArray.length; | 11 | len = codeArray.length; |
| 12 | for (var i = 0; i < len;) { | 12 | for (var i = 0; i < len;) { |
| 13 | - tabsArray.push(connectArr(codeArray.slice(i, i += 3), ',', function(item) { | 13 | + tabsArray.push(connectArr(codeArray.slice(i, i += 3), ',', function (item) { |
| 14 | return gb_data_basic.codeToLine[item].name; | 14 | return gb_data_basic.codeToLine[item].name; |
| 15 | })); | 15 | })); |
| 16 | } | 16 | } |
| 17 | //load template | 17 | //load template |
| 18 | - $.get('/real_control_v2/fragments/home/layout.html', function(dom) { | 18 | + $.get('/real_control_v2/fragments/home/layout.html', function (dom) { |
| 19 | temps = gb_common.compileTempByDom(dom); | 19 | temps = gb_common.compileTempByDom(dom); |
| 20 | 20 | ||
| 21 | var htmlStr = temps['home-layout-tab-temp']({ | 21 | var htmlStr = temps['home-layout-tab-temp']({ |
| @@ -26,7 +26,7 @@ var gb_home_layout = (function() { | @@ -26,7 +26,7 @@ var gb_home_layout = (function() { | ||
| 26 | //render line panel | 26 | //render line panel |
| 27 | var i = 0, | 27 | var i = 0, |
| 28 | data, renderFun = temps['home-layout-line-temp']; | 28 | data, renderFun = temps['home-layout-line-temp']; |
| 29 | - $('ul#home-main-content li').each(function() { | 29 | + $('ul#home-main-content li').each(function () { |
| 30 | data = gb_data_basic.findLineByCodes(codeArray.slice(i, i += 3)); | 30 | data = gb_data_basic.findLineByCodes(codeArray.slice(i, i += 3)); |
| 31 | 31 | ||
| 32 | $(this).html(renderFun({list: data})); | 32 | $(this).html(renderFun({list: data})); |
| @@ -36,7 +36,12 @@ var gb_home_layout = (function() { | @@ -36,7 +36,12 @@ var gb_home_layout = (function() { | ||
| 36 | 36 | ||
| 37 | cb && cb(); | 37 | cb && cb(); |
| 38 | }); | 38 | }); |
| 39 | - } | 39 | + }; |
| 40 | + | ||
| 41 | + //click svg edit icon | ||
| 42 | + $(document).on('click', '.home-svg-edit-icon', function () { | ||
| 43 | + open_modal('/real_control_v2/fragments/home/svg_edit.html', {lineCode: $(this).data('line-code')}); | ||
| 44 | + }); | ||
| 40 | 45 | ||
| 41 | //文件载入完毕 | 46 | //文件载入完毕 |
| 42 | res_load_ep.emitLater('load_home_layout'); | 47 | res_load_ep.emitLater('load_home_layout'); |
src/main/resources/static/real_control_v2/js/home/line_panel.js
| @@ -83,21 +83,18 @@ var gb_home_line_panel = (function() { | @@ -83,21 +83,18 @@ var gb_home_line_panel = (function() { | ||
| 83 | $(cells[1]).text(t.speed); | 83 | $(cells[1]).text(t.speed); |
| 84 | $(cells[2]).html(t.expectStopTime == null ? '' : t.expectStopTime); | 84 | $(cells[2]).html(t.expectStopTime == null ? '' : t.expectStopTime); |
| 85 | 85 | ||
| 86 | + //状态 | ||
| 87 | + $(cells[3]).html(temps['home-gps-abnormal-temp'](t)); | ||
| 88 | + | ||
| 86 | if(!t.stationName) | 89 | if(!t.stationName) |
| 87 | t.stationName=''; | 90 | t.stationName=''; |
| 88 | - $(cells[3]).text(t.stationName).attr('title', t.stationName); | 91 | + $(cells[4]).text(t.stationName).attr('title', t.stationName); |
| 89 | 92 | ||
| 90 | //班次信息 | 93 | //班次信息 |
| 91 | - if(t.schId){ | ||
| 92 | - var sch=gb_schedule_table.findScheduleByLine(t.lineId)[t.schId]; | ||
| 93 | - if(!sch) | ||
| 94 | - return; | ||
| 95 | - | ||
| 96 | - $(cells[4]).text(sch.zdzName); | ||
| 97 | - $(cells[5]).text(sch.zdsj); | ||
| 98 | - $(cells[6]).text(sch.jName); | ||
| 99 | - if(sch.sName) | ||
| 100 | - $(cells[7]).text(sch.sName); | 94 | + if(t.sch){ |
| 95 | + $(cells[5]).text(t.sch.zdzName); | ||
| 96 | + $(cells[6]).text(t.sch.zdsj); | ||
| 97 | + $(cells[7]).text(t.sch.jName); | ||
| 101 | } | 98 | } |
| 102 | }; | 99 | }; |
| 103 | 100 |
src/main/resources/static/real_control_v2/js/main.js
| @@ -43,7 +43,7 @@ var gb_main_ep = new EventProxy(), | @@ -43,7 +43,7 @@ var gb_main_ep = new EventProxy(), | ||
| 43 | }); | 43 | }); |
| 44 | 44 | ||
| 45 | //初始化gps异常判定 | 45 | //初始化gps异常判定 |
| 46 | - //gb_gps_abnormal.initData(); | 46 | + gb_gps_abnormal.initData(); |
| 47 | 47 | ||
| 48 | //嵌入地图页面 | 48 | //嵌入地图页面 |
| 49 | $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html'); | 49 | $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html'); |
src/main/resources/static/real_control_v2/js/utils/svg_chart.js
| @@ -3,9 +3,11 @@ | @@ -3,9 +3,11 @@ | ||
| 3 | var gb_svg_chart = (function () { | 3 | var gb_svg_chart = (function () { |
| 4 | 4 | ||
| 5 | //chart height | 5 | //chart height |
| 6 | - var chart_height = 123; | 6 | + var chart_height = 122; |
| 7 | //left right padding | 7 | //left right padding |
| 8 | var x_padd = 30; | 8 | var x_padd = 30; |
| 9 | + //上空白部分 | ||
| 10 | + var y_top_padd = 14; | ||
| 9 | //text max size | 11 | //text max size |
| 10 | var t_max_size = 7; | 12 | var t_max_size = 7; |
| 11 | //svg namespace | 13 | //svg namespace |
| @@ -24,7 +26,7 @@ var gb_svg_chart = (function () { | @@ -24,7 +26,7 @@ var gb_svg_chart = (function () { | ||
| 24 | var h = wrap.actual('outerHeight'); | 26 | var h = wrap.actual('outerHeight'); |
| 25 | //隐藏元素取最外层的高度 | 27 | //隐藏元素取最外层的高度 |
| 26 | return h < 20 ? wrap.parent().actual('outerHeight') - 2 : h; | 28 | return h < 20 ? wrap.parent().actual('outerHeight') - 2 : h; |
| 27 | - } | 29 | + }; |
| 28 | 30 | ||
| 29 | var draw_line = function (lineCode, wrap) { | 31 | var draw_line = function (lineCode, wrap) { |
| 30 | 32 | ||
| @@ -40,7 +42,7 @@ var gb_svg_chart = (function () { | @@ -40,7 +42,7 @@ var gb_svg_chart = (function () { | ||
| 40 | return xScale(i); | 42 | return xScale(i); |
| 41 | }, | 43 | }, |
| 42 | cy = function () { | 44 | cy = function () { |
| 43 | - return (h - chart_height) / 2; | 45 | + return (h - chart_height) / 2 + y_top_padd; |
| 44 | }, | 46 | }, |
| 45 | ty = function (d) { | 47 | ty = function (d) { |
| 46 | return cy() + calc_text_y(cat_text(d.name[0])); | 48 | return cy() + calc_text_y(cat_text(d.name[0])); |
| @@ -62,7 +64,7 @@ var gb_svg_chart = (function () { | @@ -62,7 +64,7 @@ var gb_svg_chart = (function () { | ||
| 62 | 64 | ||
| 63 | $(that).after(dText); | 65 | $(that).after(dText); |
| 64 | return cx(d, i) - 8; | 66 | return cx(d, i) - 8; |
| 65 | - } | 67 | + }; |
| 66 | 68 | ||
| 67 | //add svg dom | 69 | //add svg dom |
| 68 | var svg = d3.select(wrap[0]).append('svg') | 70 | var svg = d3.select(wrap[0]).append('svg') |
| @@ -125,7 +127,10 @@ var gb_svg_chart = (function () { | @@ -125,7 +127,10 @@ var gb_svg_chart = (function () { | ||
| 125 | items.append('text').classed({ | 127 | items.append('text').classed({ |
| 126 | 'station_text': true, | 128 | 'station_text': true, |
| 127 | 'up': function (d) { | 129 | 'up': function (d) { |
| 128 | - return d.type == 3 ? true : false; | 130 | + return d.type == 3 || d.type == 0 ? true : false; |
| 131 | + }, | ||
| 132 | + 'down': function (d) { | ||
| 133 | + return d.type == 1 ? true : false; | ||
| 129 | } | 134 | } |
| 130 | }) | 135 | }) |
| 131 | .text(function (d) { | 136 | .text(function (d) { |
| @@ -168,7 +173,7 @@ var gb_svg_chart = (function () { | @@ -168,7 +173,7 @@ var gb_svg_chart = (function () { | ||
| 168 | var circle = get_circle(gps.stopNo + '_' + gps.upDown, svg); | 173 | var circle = get_circle(gps.stopNo + '_' + gps.upDown, svg); |
| 169 | if (!circle) return -100; | 174 | if (!circle) return -100; |
| 170 | 175 | ||
| 171 | - return circle.attr('cx') - 14; | 176 | + return circle.attr('cx') - 17.5; |
| 172 | }, | 177 | }, |
| 173 | gy = function (gps, svg) { | 178 | gy = function (gps, svg) { |
| 174 | var circle = get_circle(gps.stopNo + '_' + gps.upDown, svg); | 179 | var circle = get_circle(gps.stopNo + '_' + gps.upDown, svg); |
| @@ -177,7 +182,7 @@ var gb_svg_chart = (function () { | @@ -177,7 +182,7 @@ var gb_svg_chart = (function () { | ||
| 177 | var cy = parseInt(circle.attr('cy')), | 182 | var cy = parseInt(circle.attr('cy')), |
| 178 | index = line_gps_index[gps.lineId][gps.stopNo + '_' + gps.upDown][gps.deviceId]; | 183 | index = line_gps_index[gps.lineId][gps.stopNo + '_' + gps.upDown][gps.deviceId]; |
| 179 | 184 | ||
| 180 | - return gps.upDown == 0 ? cy - 25 - (index * 21) : cy + 7 + (index * 21); | 185 | + return gps.upDown == 0 ? cy - 22 - (index * 17) : cy + 6 + (index * 19); |
| 181 | }, | 186 | }, |
| 182 | ups_gps = function (d) { | 187 | ups_gps = function (d) { |
| 183 | return d.gpsUps; | 188 | return d.gpsUps; |
| @@ -209,7 +214,7 @@ var gb_svg_chart = (function () { | @@ -209,7 +214,7 @@ var gb_svg_chart = (function () { | ||
| 209 | return d.deviceId; | 214 | return d.deviceId; |
| 210 | }, | 215 | }, |
| 211 | gps_update_point = function (e, svg) { | 216 | gps_update_point = function (e, svg) { |
| 212 | - e.transition().attr('x', function (d) { | 217 | + e.transition().duration(3000).attr('x', function (d) { |
| 213 | return gx(d, svg); | 218 | return gx(d, svg); |
| 214 | }) | 219 | }) |
| 215 | .attr('y', function (d) { | 220 | .attr('y', function (d) { |
| @@ -226,7 +231,7 @@ var gb_svg_chart = (function () { | @@ -226,7 +231,7 @@ var gb_svg_chart = (function () { | ||
| 226 | }, | 231 | }, |
| 227 | tx_id = function (d) { | 232 | tx_id = function (d) { |
| 228 | return 'tx_' + d.deviceId; | 233 | return 'tx_' + d.deviceId; |
| 229 | - } | 234 | + }; |
| 230 | 235 | ||
| 231 | var setGps = function (lineCode) { | 236 | var setGps = function (lineCode) { |
| 232 | var svgs = $('.line-chart[data-code=' + lineCode + ']'), | 237 | var svgs = $('.line-chart[data-code=' + lineCode + ']'), |