Commit 586eab26b215b7d9d2ffdc0bddfea336085ea565

Authored by lizhuojun
1 parent ed3c4970

线调更新

src/main/resources/static/pages/permission/user/edit.html
... ... @@ -67,9 +67,13 @@
67 67 </div>
68 68 </div>
69 69 </div>
  70 + <div>
  71 + <!--<iframe src="authorize.html?origin=real_control_iframe" frameborder="0" style="height: 600px;width: 100%;"></iframe>-->
  72 + </div>
70 73 <div class="form-actions">
71 74 <div class="row">
72 75 <div class="col-md-offset-3 col-md-4">
  76 + <!--<a href="main.html" class="btn green" id="nextStep" ><i class="fa fa-check"></i> 下一步</a>-->
73 77 <button type="submit" class="btn green" ><i class="fa fa-check"></i> 提交</button>
74 78 <a type="button" class="btn default" href="list.html" data-pjax><i class="fa fa-times"></i> 取消</a>
75 79 </div>
... ... @@ -79,6 +83,21 @@
79 83 <!-- END FORM-->
80 84 </div>
81 85 </div>
  86 +
  87 +<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;left: 50%;
  88 + top: 50%;transform: translate(-50%,-50%);min-width:50%;overflow: visible;bottom: inherit; right: inherit;">
  89 + <div class="modal-dialog">
  90 + <div class="modal-content">
  91 + <div class="modal-body" style="text-align: center;"></div>
  92 + <div class="modal-footer" style="margin: 0 auto;">
  93 + <center>
  94 + <button type="button" class="btn btn-primary" data-dismiss="modal" id="noNext" style="margin-right: 20%;padding:5px 35px;background-color: #337AB7;color: white;">&nbsp;完&nbsp;成&nbsp;</button>
  95 + <button type="button" class="btn btn-primary" id="yesNext">继续配置授权</button>
  96 + </center>
  97 + </div>
  98 + </div><!-- /.modal-content -->
  99 + </div><!-- /.modal -->
  100 +</div>
82 101 <script>
83 102 $(function(){
84 103 var id = $.url().param('no');
... ... @@ -169,10 +188,24 @@
169 188 data: params,
170 189 success: function(res){
171 190 layer.msg('修改用户信息成功.');
172   - loadPage('list.html');
  191 + $('#myModal').modal();
  192 + //loadPage('list.html');
173 193 }
174 194 });
175 195 }
176 196 });
  197 +
  198 + $('#noNext').click(function () {
  199 + $('#myModal').modal('hide');
  200 + $('.modal-backdrop').remove();
  201 +
  202 + loadPage('list.html');
  203 + })
  204 + $('#yesNext').click(function () {
  205 + var storage = window.localStorage;
  206 + storage.setItem("editUser",$('#id').val());
  207 + $('#myModal').modal('hide');
  208 + window.location.href='main.html'
  209 + })
177 210 });
178 211 </script>
179 212 \ No newline at end of file
... ...
src/main/resources/static/pages/permission/user/list.html
... ... @@ -60,6 +60,7 @@
60 60 </select>
61 61 </td>
62 62 <td></td>
  63 +
63 64 <td>
64 65 <button class="btn btn-sm green btn-outline filter-submit margin-bottom" >
65 66 <i class="fa fa-search"></i> 搜索</button>
... ... @@ -110,6 +111,8 @@
110 111 <td>
111 112 {{obj.lastLoginDate}}
112 113 </td>
  114 +
  115 +
113 116 <td>
114 117 <a class="btn btn-sm blue btn-outline" href="edit.html?no={{obj.id}}" data-pjax><i class="fa fa-edit"></i> 编辑</a>
115 118 <!--<button type="button" class="btn btn-sm line_allot_btn" data-id="{{obj.id}}">线调线路分配</button>-->
... ...
src/main/resources/static/real_control_v2/css/line_schedule.css
... ... @@ -265,6 +265,12 @@ span.fcsj-diff {
265 265 color: #444;
266 266 }
267 267  
  268 +.tl-wfyd {
  269 + background: rgb( 246,193,10);
  270 + border-top: 1px solid #d9d9d9 !important;
  271 + color: #444;
  272 +}
  273 +
268 274 .tl-xxfc{
269 275 background: rgb(0,255,255);
270 276 color: #484747;
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/lp_change.html
... ... @@ -391,6 +391,7 @@
391 391 var type = $(this).data('type');
392 392 gb_common.$post('/realSchedule/lpChangeMulti', {leftIdx: leftIdx, rightIdx: rightIdx, type: type}, function (rs) {
393 393 console.log('rs', rs);
  394 + debugger
394 395 notify_succ("操作成功!!");
395 396 if(rs.ts)
396 397 gb_schedule_table.updateSchedule(rs.ts);
... ... @@ -402,6 +403,7 @@
402 403  
403 404  
404 405 function reLoadCurrPageData(){
  406 + debugger
405 407 $('[name=lineSelect]', modal).each(function () {
406 408 var array = gb_common.get_vals(gb_schedule_table.findScheduleByLine($(this).val())).sort(gb_schedule_table.schedule_sort);
407 409 //按路牌分组
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/add_custom.html
... ... @@ -21,6 +21,7 @@
21 21 </div>
22 22  
23 23 <script>
  24 + var schselect='';
24 25 (function () {
25 26 var wrap = '#add-sub-task-main-modal .add_custom_wrap',
26 27 sch, fs=[];
... ... @@ -28,23 +29,23 @@
28 29 $(wrap).on('init', function (e, data) {
29 30 e.stopPropagation();
30 31 sch = data.sch;
  32 + schselect=sch;
31 33 $('.plus_icon_span', wrap).trigger('click');
32 34 });
33   -
34 35 //plsu icon
35 36 $('.plus_icon_span', wrap).on('click', addTaskForm);
36 37  
37 38 var bcTypeMap = {'in': 2, 'out': 3, 'normal': 1};
38 39 function addTaskForm() {
39   - var htmlStr = template('sub-task-v2-form-temp', {sch: sch})
  40 + var htmlStr = template('sub-task-v2-form-temp', {sch: schselect})
40 41 var f = $(htmlStr);
41 42 $('.forms', wrap).append(f);
42 43 //字典转换
43 44 dictionaryUtils.transformDom($('.nt-dictionary', f));
44 45  
45 46 //班次类型切换
46   - if(bcTypeMap[sch.bcType])
47   - $('[name=type2]', f).val(bcTypeMap[sch.bcType]);
  47 + if(bcTypeMap[schselect.bcType])
  48 + $('[name=type2]', f).val(bcTypeMap[schselect.bcType]);
48 49 $('[name=type2]', f).trigger('change');
49 50  
50 51 //滚动条到底
... ... @@ -76,7 +77,7 @@
76 77 e.preventDefault();
77 78  
78 79 dataArray.push($.extend($(this).serializeJSON(), gb_common.getDisabledVal(this)
79   - , {/*remarks: $('#form-s-t',wrap).val(), */'schedule.id': sch.id}));
  80 + , {/*remarks: $('#form-s-t',wrap).val(), */'schedule.id': schselect.id}));
80 81 $(this).data('valid', true);
81 82  
82 83 if(allValidSuccess()){
... ... @@ -87,11 +88,11 @@
87 88 //完成后更新前端数据
88 89 gb_schedule_table.updateSchedule(rst);
89 90 UIkit.modal('#add-sub-task-main-modal').hide();
90   - $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch});
  91 + $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: schselect});
91 92 gb_data_basic.reload_stat_park_data();
92 93  
93 94 //更新路牌公里统计面板
94   - gb_schedule_table.showLpMileageTipBySch(sch);
  95 + gb_schedule_table.showLpMileageTipBySch(schselect);
95 96 return;
96 97 }
97 98 var data = dataArray[i];
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/main.html
1 1 <div class="uk-modal ct_move_modal" id="add-sub-task-main-modal">
2 2 <div class="uk-modal-dialog" style="width: 1100px;">
3   - <a href="" class="uk-modal-close uk-close"></a>
  3 + <a href="" class="uk-modal-close uk-close" style="position: relative;"></a>
  4 + <a style="position: absolute; right: 40px;top: 8px;text-decoration-line: none;" id="min_a" >—</a>
4 5 <div class="uk-modal-header">
5 6 <h2>添加子任务</h2></div>
6 7  
... ... @@ -106,7 +107,7 @@
106 107 </div>
107 108 </div>
108 109  
109   - <div class="uk-grid">
  110 + <div class="uk-grid zirenwu">
110 111 <div class="uk-width-2-3 domains"></div>
111 112 <div class="uk-width-1-3">
112 113 <div class="uk-form-row">
... ... @@ -215,6 +216,7 @@
215 216 $(modal).on('init', function (e, data) {
216 217 e.stopPropagation();
217 218 sch = data.sch;
  219 + schData=[].concat(sch)
218 220  
219 221 //站到场数据
220 222 st_park_data = gb_data_basic.get_stat_park_data()[sch.xlBm];
... ... @@ -231,6 +233,7 @@
231 233  
232 234 var st_doms = gb_schedule_context_menu.get_st_doms();
233 235 //普通
  236 + debugger
234 237 $('.normalCont', modal).html(st_doms.custom_dom);
235 238 $('.add_custom_wrap', modal).trigger('init', data);
236 239  
... ... @@ -504,17 +507,18 @@
504 507 var nf = gb_common.next_elem('sub_task_form_v2', f),
505 508 nInput = $f('reason', nf);
506 509  
507   - if (nf.length > 0 && nInput.length > 0) {
508   - nInput.val(reason).trigger('change');
509   - }
510   - else {
511   - var cont = f.parents('li.tab_cont'),
  510 + // if (nf.length > 0 && nInput.length > 0) {
  511 + // nInput.val(reason).trigger('change');
  512 + // }
  513 + // else {
  514 + //var cont = f.parents('li.tab_cont'),
  515 + var cont = $(this).parents('.zirenwu'),
512 516 remInput = $('[name=remarks]', cont);
513 517  
514 518 if(remInput.val()==reason + ',')
515 519 return;
516 520 remInput.val(remInput.val() + reason + ',');
517   - }
  521 + //}
518 522 }
519 523  
520 524 function calcMileageByRoutes(routes, s, e) {
... ... @@ -672,6 +676,33 @@
672 676  
673 677 return array;
674 678 }
  679 + var schData={};
  680 + var addChildModel='';
  681 + $('#min_a').click(function () {
  682 + $('#add-sub-task-main-modal').hide();
  683 +
  684 + if (!$("#minChildDiv").length>0){
  685 + var minChildDiv='<div id="minChildDiv" style="width: 300px;height: 25px;z-index: 9999;position: fixed;background-color: #009dd8;bottom: 0;color: #fffbfd;border-radius: 5px;"><span style="margin-left:20px;">添加子任务</span> <a style="margin-left:160px; text-decoration:none;color: white;font-size: 24px;" id="maxChild">□</a><a style="margin-left:10px;text-decoration: none;color: white;" onclick="closeAddChild()">X</a></div>';
  686 + $('body').append(minChildDiv);
  687 + }
  688 + });
  689 +
  690 + $('body').on('click','#maxChild',function () {
  691 + $('#add-sub-task-main-modal').show();
  692 + $('#minChildDiv').remove();
  693 + })
  694 +
  695 +
675 696 })();
  697 +
  698 + function closeAddChild(){
  699 + $('#add-sub-task-main-modal').remove();
  700 + $('#minChildDiv').remove();
  701 + }
  702 +
676 703 </script>
677   -</div>
678 704 \ No newline at end of file
  705 +</div>
  706 +<script>
  707 +
  708 +
  709 +</script>
679 710 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/sch_table.html
... ... @@ -24,6 +24,8 @@
24 24 </div>
25 25 </div>
26 26 <i class="uk-icon-eye uk-icon-hover ct_eye_icon"></i>
  27 + <i class="uk-icon-qrcode uk-icon-hover ct_calu_icon" data-toggle="tooltip" data-placement="bottom" title="计算应到实到时间对比"></i>
  28 +
27 29 <!--<i class="uk-icon-share-alt uk-icon-hover tp_info_icon" ></i>-->
28 30  
29 31 <span class="warn_multi_station" data-updown="{{dir}}" data-code="{{line.lineCode}}"></span>
... ... @@ -65,7 +67,7 @@
65 67 {{sch.clZbh}}
66 68 </dd>
67 69 <dd>{{sch.qdzArrDatejh}}</dd>
68   - <dd>{{sch.qdzArrDatesj}}</dd>
  70 + <dd class="qdzArrDatesjDD"><span class="qdzArrDatesjSPAN">{{sch.qdzArrDatesj}}</span><span class="arrsj-diff">{{sch.arrsj_diff}}</span></dd>
69 71 <dd data-sort-val={{sch.fcsjT}}>
70 72 {{sch.fcsj}}
71 73 {{if sch.bcType == "out"}}
... ... @@ -87,6 +89,9 @@
87 89 {{if sch.cTasks.length > 0}}
88 90 <span class="uk-badge uk-badge-notification c_task {{if sch.c_t_mileage_status==-1}}c_task_mileage_error{{/if}}">{{sch.cTasks.length}}</span>
89 91 {{/if}}
  92 + {{if sch.lpChange==1}}
  93 + <span class="uk-badge uk-badge-success out">换</span>
  94 + {{/if}}
90 95 </dd>
91 96 <dd data-sort-val={{sch.dfsjT}} dbclick dbclick-type="dfsj" dbclick-val="{{sch.dfsj}}">
92 97 {{sch.dfsj}}
... ... @@ -101,12 +106,15 @@
101 106 tl-yzx
102 107 {{else if sch.status==1}}
103 108 tl-zzzx
  109 + {{else if sch.status ==4}}
  110 + tl-wfyd
104 111 {{else if sch.status == 0 && sch.late}}
105 112 tl-wd
106 113 {{/if}} fcsjActualCell">
107 114 {{sch.fcsjActual}}<span class="fcsj-diff">{{sch.fcsj_diff}}</span>
108 115 </dd>
109 116 <dd data-uk-observe>
  117 +
110 118 <span title="{{sch.remarks}}"
111 119 data-uk-tooltip="{pos:'top-left'}">{{sch.remarks}}</span>
112 120 </dd>
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/line_config/line_config.html
... ... @@ -19,8 +19,8 @@
19 19 <h3 class="uk-accordion-title" data-id="{{line.lineCode}}">{{line.name}}</h3>
20 20 <div class="uk-accordion-content">
21 21 <ul class="uk-list uk-list-line" id="smooth_scroll_list">
22   - <li><a data-href="#schedule_reload_time_panel" >班次更新时间</a></li>
23   - <li><a data-href="#schedule_auto_exec_panel" >班次自动执行</a></li>
  22 + <!--<li><a data-href="#schedule_reload_time_panel" >班次更新时间</a></li>-->
  23 + <!--<li><a data-href="#schedule_auto_exec_panel" >班次自动执行</a></li>-->
24 24 <li><a data-href="#out_time_type_panel" >出场时间类型</a></li>
25 25 <li><a data-href="#in_park_source_panel" >原线路回场</a></li>
26 26 <li><a data-href="#buffer_inOut_diff_panel">到站缓冲区设置</a></li>
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/line_config/line_config_entity.html
... ... @@ -3,58 +3,58 @@
3 3 <form class="uk-form"></form>
4 4  
5 5 <script id="line_config_entity_form-temp" type="text/html">
6   - <div id="schedule_reload_time_panel">
7   - <h2 class="btn_title_line">
8   - <a class="uk-link-reset">班次更新时间</a>
9   - </h2>
10   - <div>
11   - <div>
12   - <span class="line_name"></span>每天
13   - <div class="uk-form-icon" style="margin: 0 5px;">
14   - <i class="uk-icon-clock-o"></i>
15   - <input name="startOptInput" readonly type="text" class="z-depth-input" value="{{startOpt}}"
16   - style="width: 151px;"
17   - data-uk-timepicker>
18   - </div>
19   - 更新到当日排班
20   - </div>
21   - <ul class="uk-list">
22   - <li>
23   - <small><i class="uk-icon-question-circle"></i> 所有发车时间小于该时间的班次都默认跨过24点,手动调整的实发实达均应用此规则。</small>
24   - </li>
25   - </ul>
26   - <button class="uk-button uk-button-mini" id="clearRealScheduleBtn">删除实际排班</button>
27   - <button class="uk-button uk-button-mini" id="reLoadRealScheduleBtn">重新加载实际排班</button>
28   - <button class="uk-button uk-button-mini" disabled>加载历史GPS恢复到离站</button>
29   - </div>
30   - </div>
31   -
32   - <div id="schedule_auto_exec_panel">
33   - <h2 class="btn_title_line">
34   - <a class="uk-link-reset">班次自动执行</a>
35   - </h2>
36   - <div>
37   - <div>
38   - <label>
39   - <input type="checkbox" id="enableAutoExec" {{autoExec?"checked":""}}> 启用自动班次执行
40   - </label>
41   - </div>
42   - <ul class="uk-list">
43   - <li>
44   - <small style="color: red;font-size: 14px;">1、 你必须只应该对【无固定走向且无人监管的线路】启用此项。</small>
45   - </li>
46   - <li>
47   - <small>2、启用该选项后,系统将不再依赖相关定位信号来执行班次。</small>
48   - </li>
49   - <li>
50   - <small>3、系统将在合适的时候自动填入实发实达时间,以完善报表。</small>
51   - </li>
52   - <li>
53   - <small>4、系统不会下发班次调度指令。</small>
54   - </li>
55   - </ul>
56   - </div>
57   - </div>
  6 + <!--<div id="schedule_reload_time_panel">-->
  7 + <!--<h2 class="btn_title_line">-->
  8 + <!--<a class="uk-link-reset">班次更新时间</a>-->
  9 + <!--</h2>-->
  10 + <!--<div>-->
  11 + <!--<div>-->
  12 + <!--<span class="line_name"></span>每天-->
  13 + <!--<div class="uk-form-icon" style="margin: 0 5px;">-->
  14 + <!--<i class="uk-icon-clock-o"></i>-->
  15 + <!--<input name="startOptInput" readonly type="text" class="z-depth-input" value="{{startOpt}}"-->
  16 + <!--style="width: 151px;"-->
  17 + <!--data-uk-timepicker>-->
  18 + <!--</div>-->
  19 + <!--更新到当日排班-->
  20 + <!--</div>-->
  21 + <!--<ul class="uk-list">-->
  22 + <!--<li>-->
  23 + <!--<small><i class="uk-icon-question-circle"></i> 所有发车时间小于该时间的班次都默认跨过24点,手动调整的实发实达均应用此规则。</small>-->
  24 + <!--</li>-->
  25 + <!--</ul>-->
  26 + <!--<button class="uk-button uk-button-mini" id="clearRealScheduleBtn">删除实际排班</button>-->
  27 + <!--<button class="uk-button uk-button-mini" id="reLoadRealScheduleBtn">重新加载实际排班</button>-->
  28 + <!--<button class="uk-button uk-button-mini" disabled>加载历史GPS恢复到离站</button>-->
  29 + <!--</div>-->
  30 + <!--</div>-->
  31 +
  32 + <!--<div id="schedule_auto_exec_panel">-->
  33 + <!--<h2 class="btn_title_line">-->
  34 + <!--<a class="uk-link-reset">班次自动执行</a>-->
  35 + <!--</h2>-->
  36 + <!--<div>-->
  37 + <!--<div>-->
  38 + <!--<label>-->
  39 + <!--<input type="checkbox" id="enableAutoExec" {{autoExec?"checked":""}}> 启用自动班次执行-->
  40 + <!--</label>-->
  41 + <!--</div>-->
  42 + <!--<ul class="uk-list">-->
  43 + <!--<li>-->
  44 + <!--<small style="color: red;font-size: 14px;">1、 你必须只应该对【无固定走向且无人监管的线路】启用此项。</small>-->
  45 + <!--</li>-->
  46 + <!--<li>-->
  47 + <!--<small>2、启用该选项后,系统将不再依赖相关定位信号来执行班次。</small>-->
  48 + <!--</li>-->
  49 + <!--<li>-->
  50 + <!--<small>3、系统将在合适的时候自动填入实发实达时间,以完善报表。</small>-->
  51 + <!--</li>-->
  52 + <!--<li>-->
  53 + <!--<small>4、系统不会下发班次调度指令。</small>-->
  54 + <!--</li>-->
  55 + <!--</ul>-->
  56 + <!--</div>-->
  57 + <!--</div>-->
58 58  
59 59 <div id="out_time_type_panel">
60 60 <h2 class="btn_title_line">
... ...
src/main/resources/static/real_control_v2/js/data/json/north_toolbar.json
... ... @@ -174,7 +174,13 @@
174 174 "id": 4.3,
175 175 "text": "信号标记",
176 176 "event": "signal_state"
  177 + },
  178 + {
  179 + "id": 4.4,
  180 + "text": "翻班与自动执行",
  181 + "event": "fbzdzx_config"
177 182 }
  183 +
178 184 ]
179 185 }
180 186 ]
181 187 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/js/line_schedule/context_menu.js
... ... @@ -278,6 +278,10 @@ var gb_schedule_context_menu = (function () {
278 278 }, modal_opts);
279 279 },
280 280 add_sub_task: function (sch) {
  281 + if ($('#add-sub-task-main-modal').length>0) {
  282 + layer.msg('已存在正在添加的子任务.');
  283 + return;
  284 + }
281 285 open_modal(folder + '/sub_task_v2/main.html', {
282 286 sch: sch
283 287 }, modal_opts);
... ...
src/main/resources/static/real_control_v2/js/line_schedule/legend.js
... ... @@ -39,27 +39,90 @@ var gb_sch_legend = (function () {
39 39  
40 40 //eye init
41 41 var eyeState = storage.getItem('eye_state');
42   - if(eyeState && eyeState==1)
  42 + if (eyeState && eyeState == 1)
43 43 $(eye_dom).eq(0).trigger('click');
44 44 };
45 45  
46 46 var eye_dom = '.schedule-wrap i.ct_eye_icon';
47 47 $(document).on('click', eye_dom, changeHandicappedStyle);
  48 +
48 49 function changeHandicappedStyle() {
49   - if($(this).hasClass('active')){
  50 + if ($(this).hasClass('active')) {
50 51 $(eye_dom).removeClass('active');
51 52 $('#handicappedStyleLink', 'head').remove();
52 53 storage.setItem('eye_state', 0);
53 54 }
54   - else{
  55 + else {
55 56 $(eye_dom).addClass('active');
56   - $("<link>").attr({rel: "stylesheet", type: "text/css", href: "/real_control_v2/css/handicapped_style.css",
57   - id: 'handicappedStyleLink'
58   - }).appendTo("head");
  57 + $("<link>").attr({
  58 + rel: "stylesheet", type: "text/css", href: "/real_control_v2/css/handicapped_style.css",
  59 + id: 'handicappedStyleLink'
  60 + }).appendTo("head");
59 61 storage.setItem('eye_state', 1);
60 62 }
61 63 }
62 64  
  65 + var calu_dom = '.schedule-wrap i.ct_calu_icon';
  66 + $(document).on('click', calu_dom, changeHandicau);
  67 + var storage = window.localStorage;
  68 + var ydsddb = storage.getItem('ydsddb');
  69 +
  70 + function changeHandicau() {
  71 + if (ydsddb) {
  72 + ydsddb = false;
  73 + storage.setItem('ydsddb', '');
  74 + } else {
  75 + ydsddb = 'true';
  76 + storage.setItem('ydsddb', ydsddb);
  77 + }
  78 + showYdSdDb();
  79 + }
  80 +
  81 + function showYdSdDb() {
  82 + if (ydsddb) {
  83 + var sdsjs = $('.schedule-wrap').find('.qdzArrDatesjDD');
  84 + if (sdsjs && sdsjs.length > 0) {
  85 + for (var i = 0; i < sdsjs.length; i++) {
  86 + var qdzArrDatesjSPAN = $(sdsjs[i]).find('.qdzArrDatesjSPAN');
  87 + var ydsj = $(sdsjs[i]).prev().text();
  88 + if (qdzArrDatesjSPAN && qdzArrDatesjSPAN.length > 0) {
  89 + var sdsjTexts = $(qdzArrDatesjSPAN).text();
  90 + if (ydsj && sdsjTexts && ydsj != sdsjTexts) {
  91 + var ydsja = ydsj.split(':');
  92 + var sdsja = sdsjTexts.split(':');
  93 + var ydsdDiffTime = 0;
  94 + if (parseInt(sdsja[0]) < 1 && parseInt(ydsja[0]) >= 23) {
  95 + ydsdDiffTime = (24 + parseInt(sdsja[0]) - parseInt(ydsja[0])) * 60 + (parseInt(sdsja[1]) - parseInt(ydsja[1]));
  96 + } else {
  97 + ydsdDiffTime = (parseInt(sdsja[0]) - parseInt(ydsja[0])) * 60 + (parseInt(sdsja[1]) - parseInt(ydsja[1]));
  98 + }
  99 + ydsdDiffTime = ydsdDiffTime < 0 ? ydsdDiffTime : '+' + ydsdDiffTime;
  100 + $(qdzArrDatesjSPAN).next().text(' (' + ydsdDiffTime + ')');
  101 + }
  102 + } else {
  103 + var sdsjTexts = $(sdsjs[i]).text();
  104 + if (ydsj && sdsjTexts && ydsj != sdsjTexts) {
  105 + var ydsja = ydsj.split(':');
  106 + var sdsja = sdsjTexts.split(':');
  107 + var ydsdDiffTime = 0;
  108 + if (parseInt(sdsja[0]) <= 1 && parseInt(ydsja[0]) >= 23) {
  109 + ydsdDiffTime = (24 + parseInt(sdsja[0]) - parseInt(ydsja[0])) * 60 + (parseInt(sdsja[1]) - parseInt(ydsja[1]));
  110 + } else {
  111 + ydsdDiffTime = (parseInt(sdsja[0]) - parseInt(ydsja[0])) * 60 + (parseInt(sdsja[1]) - parseInt(ydsja[1]));
  112 + }
  113 + ydsdDiffTime = ydsdDiffTime < 0 ? ydsdDiffTime : '+' + ydsdDiffTime;
  114 + $(sdsjs[i]).append('<span class=".arrsj-diff"> (' + ydsdDiffTime + ')</span>');
  115 + }
  116 + }
  117 + }
  118 + }
  119 +
  120 + }
  121 + else {
  122 + $('.arrsj-diff').text('');
  123 + }
  124 + }
  125 +
63 126 //展开图例
64 127 var openLegend = function () {
65 128 /*$('.qtip.sch-tl-tip').qtip('destroy', true);
... ... @@ -81,8 +144,12 @@ var gb_sch_legend = (function () {
81 144 //记录状态
82 145 storage.setItem(locaKey, 1);*/
83 146 };
  147 + var showYdSdtime = function () {
  148 + showYdSdDb();
  149 + }
84 150  
85 151 return {
86   - init: initLegend
  152 + init: initLegend,
  153 + showYdSdDb: showYdSdtime
87 154 };
88 155 })();
89 156 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/js/line_schedule/sch_table.js
... ... @@ -29,6 +29,7 @@ var gb_schedule_table = (function () {
29 29  
30 30 var show = function (cb) {
31 31 //从服务器获取班次数据
  32 + debugger
32 33 $.get('/realSchedule/lines', {
33 34 lines: gb_data_basic.line_idx
34 35 }, function (rs) {
... ... @@ -42,6 +43,7 @@ var gb_schedule_table = (function () {
42 43 if(this.status==-1)
43 44 clearActualTime(this);
44 45 calc_sch_real_shift(this);
  46 + wfydcolor(this);
45 47 line2Schedule[lineCode][this.id] = this;
46 48 //子任务公里是否与计划平
47 49 this.c_t_mileage_status = calcCTaskMileageStatus(this);
... ... @@ -103,8 +105,11 @@ var gb_schedule_table = (function () {
103 105  
104 106 //监听gps车辆信息
105 107 gb_data_gps.registerCallback(renderCarRemark);
  108 + gb_sch_legend.showYdSdDb();
  109 + gb_schedule_context_menu.ydsd_init()
106 110 cb && cb();
107 111 });
  112 +
108 113 };
109 114  
110 115 var renderCarRemark = function () {
... ... @@ -168,7 +173,8 @@ var gb_schedule_table = (function () {
168 173 var fs = 'YYYY-MM-DD HH:mm'
169 174 ,m1 = moment(sch['fcsjActualTime']).format(fs)
170 175 ,m2 = moment(sch['dfsjT']).format(fs);//去掉秒
171   -
  176 + console.log(moment(m1, fs).format('X'))
  177 + console.log(moment(m2, fs).format('X'))
172 178 var diff = moment(m1, fs).format('X') - moment(m2, fs).format('X')
173 179 ,fcsj_diff = parseInt(diff / 60, 10);;
174 180  
... ... @@ -180,6 +186,14 @@ var gb_schedule_table = (function () {
180 186 sch.fcsj_diff = '';
181 187 }
182 188 };
  189 + //无发有到时间
  190 + var wfydcolor=function (sch) {
  191 + if (sch.qdzArrDatesj!=''&&sch.qdzArrDatesj!=null&&sch.fcsjActual==null) {
  192 + sch.status=4;
  193 + }
  194 + }
  195 +
  196 +
183 197  
184 198 function arrayIsNull(array) {
185 199 return !array || array.length == 0;
... ... @@ -262,6 +276,7 @@ var gb_schedule_table = (function () {
262 276 * @param lineCode
263 277 */
264 278 var reLoadAndRefresh = function (lineCode) {
  279 + debugger
265 280 $.get('/realSchedule/lines', {
266 281 lines: lineCode + ','
267 282 }, function (rs) {
... ... @@ -373,6 +388,10 @@ var gb_schedule_table = (function () {
373 388 $(dds[8]).html('<span title="' + sch.remarks + '" data-uk-tooltip="{pos:\'top-left\'}">' + sch.remarks + '</span>');
374 389 else
375 390 $(dds[8]).html('');
  391 + if (sch.lpChange==1) {
  392 + var d8html=$(dds[8]).html();
  393 + $(dds[8]).html(d8html+'<span class="uk-badge uk-badge-success out">换</span>');
  394 + }
376 395  
377 396 //信号状态标记
378 397 gb_signal_state.marker_sch(sch);
... ... @@ -863,7 +882,7 @@ var gb_schedule_table = (function () {
863 882 var findSCodeErrorInfo = function (lineCode, upDown) {
864 883 return errorCodeData[lineCode+'_'+upDown];
865 884 };
866   -
  885 +
867 886 return {
868 887 show: show,
869 888 findScheduleByLine: findScheduleByLine,
... ...
src/main/resources/static/real_control_v2/js/north/toolbar.js
... ... @@ -122,6 +122,15 @@ var gb_northToolbar = (function () {
122 122 line_config: function () {
123 123 open_modal('/real_control_v2/fragments/north/nav/line_config/line_config.html', {}, modal_opts);
124 124 },
  125 + // bcgxsj_config: function () {
  126 + // open_modal('/real_control_v2/fragments/north/nav/line_config/bcgxsj_config.html', {}, modal_opts);
  127 + // },
  128 + // bczdzx_config: function () {
  129 + // open_modal('/real_control_v2/fragments/north/nav/line_config/bczdzx_config.html', {}, modal_opts);
  130 + // },
  131 + fbzdzx_config: function () {
  132 + open_modal('/real_control_v2/fragments/north/nav/line_config/fbzdzx_config.html', {}, modal_opts);
  133 + },
125 134 cache_data_manage: function () {
126 135 open_modal('/real_control_v2/fragments/north/nav/cache_data/list.html', {}, modal_opts);
127 136 },
... ...
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/left.html
... ... @@ -388,7 +388,6 @@
388 388 if (gps['section_code'])
389 389 array.push(gps);
390 390 }
391   -
392 391 var htmlStr = template('pbv3_trail_tbody-temp', {array: array});
393 392 $('.trail-info-table .ct_table_body', leftWrap).html(htmlStr);
394 393 }
... ... @@ -474,7 +473,6 @@
474 473 array.sort(function (a, b) {
475 474 return a.st - b.st;
476 475 });
477   -
478 476 var htmlStr = template('pbv3_abnormal_table_temp', {array: array});
479 477 $('.abnormal_table .ct_table_body', leftWrap).html(htmlStr);
480 478 }
... ...
src/main/resources/static/real_control_v2/mapmonitor/fragments/playback_v3/right.html
... ... @@ -8,6 +8,8 @@
8 8 <label><input type="radio" name="playSpeed" value="5" checked disabled> x5</label>
9 9 <label><input type="radio" name="playSpeed" value="10" disabled> x10</label>
10 10 <label><input type="radio" name="playSpeed" value="20" disabled> x20</label>
  11 + <label><input type="radio" name="playSpeed" value="40" disabled> x40</label>
  12 + <label><input type="radio" name="playSpeed" value="80" disabled> x80</label>
11 13 </form>
12 14 </div>
13 15 <div class="multi-items">
... ... @@ -185,7 +187,7 @@
185 187 $('.top-btn-list .play', rightWrap).on('click', function () {
186 188 if(toolsDisabled())
187 189 return;
188   -
  190 +debugger
189 191 if(!$(this).hasClass('pause')){
190 192 //第一次点击播放,清除一下
191 193 if(play_before_flag){
... ... @@ -272,6 +274,8 @@
272 274 */
273 275 var gpsMarker;
274 276 var xlPolyline = {};
  277 + var circleFirstStop=0;
  278 + var circlePrevStop=0;
275 279 var drawCarMarker = function (gps) {
276 280 if(!gpsMarker){
277 281 gpsMarker = new BMap.Marker(new BMap.Point(gps.bd_lon, gps.bd_lat));
... ... @@ -287,8 +291,12 @@
287 291 var width = gb_map_imap.calcGpsMarkerWidth(gps.nbbm);
288 292 gpsMarker.setIcon(new BMap.Icon(gb_map_imap.createCarIconRotation(gps, width), new BMap.Size(width, 75)));
289 293 }
290   -
291   - if(autoChange && (gps.lineId!=xlPolyline.lineId || gps.upDown!=xlPolyline.upDown)){
  294 + var circleLine=queryIsCircle(gps.lineId,gps.nbbm,gps.timestamp,gps.stopNo);
  295 + if (circleLine)
  296 + circleFirstStop=gps.stopNo;
  297 + circleLine=circleLine&&circlePrevStop!=circleFirstStop?true:false;
  298 + circlePrevStop=gps.stopNo;
  299 + if(autoChange && (gps.lineId!=xlPolyline.lineId || gps.upDown!=xlPolyline.upDown||circleLine)){
292 300 drawXlPolyline(gps.lineId, gps.upDown);
293 301 }
294 302 }
... ... @@ -435,6 +443,11 @@
435 443 //清除站点名称
436 444 clearOverlayArray(xlPolyline.tMarkers);
437 445 xlPolyline.tMarkers = [];
  446 + //清除轨迹线
  447 + clearOverlayArray(trailPolylineArray);
  448 + trailPolylineArray=[];
  449 + trailPolyline=null;
  450 + trailArray=[];
438 451 }
439 452  
440 453 function clearOverlayArray(array) {
... ... @@ -446,7 +459,7 @@
446 459 }
447 460  
448 461 //更新轨迹线条
449   - var trailArray=[], trailPolyline;
  462 + var trailArray=[], trailPolyline,trailPolylineArray=[];
450 463 function updateTrailLine(gps, i) {
451 464 trailArray.push(gpsMarker.getPosition());
452 465 if(!trailPolyline){
... ... @@ -456,7 +469,7 @@
456 469 else{
457 470 trailPolyline.setPath(trailArray);
458 471 }
459   -
  472 + trailPolylineArray.push(trailPolyline);
460 473 //最多记录4000个点位轨迹线条
461 474 if(trailArray.length > 4000)
462 475 trailArray = trailArray.slice(trailArray.length - 4000);
... ... @@ -595,6 +608,7 @@
595 608 updateProgress(gps, ei);
596 609 //更新gps marker
597 610 drawCarMarker(gps);
  611 +
598 612 //更新轨迹线条
599 613 trailArray = [];
600 614 var i = 0;
... ... @@ -638,9 +652,9 @@
638 652 var i = 0;
639 653 if(ei > 1000)
640 654 i = ei - 1000;
641   - for (; i < ei; i++)
642   - trailArray.push(new BMap.Point(gpsArray[i].bd_lon, gpsArray[i].bd_lat));
643   - updateTrailLine(gpsArray[ei], ei);
  655 + // for (; i < ei; i++)
  656 + // trailArray.push(new BMap.Point(gpsArray[i].bd_lon, gpsArray[i].bd_lat));
  657 + // updateTrailLine(gpsArray[ei], ei);
644 658  
645 659 //居中
646 660 map.panTo(gpsMarker.getPosition());
... ... @@ -766,5 +780,42 @@
766 780 var d = formData();
767 781 window.open('/gps/history_v3/excel_arrival/' + d.nbbm + "?st="+d.st+"&et="+d.et);
768 782 });
  783 + function queryIsCircle(line,nbbm,ts,qdzCode){
  784 + var lineInfo=0;
  785 + $.ajax({
  786 + url: "/line/findById", //请求地址
  787 + type: "Get",
  788 + async:false,
  789 + //请求方式
  790 + data: { id : line}, //请求参数
  791 + success: function (result) {
  792 + lineInfo = result.linePlayType;
  793 + }
  794 + });
  795 + if (lineInfo!=1)
  796 + return false;
  797 + var stops=0;
  798 + if (lineInfo==1) {
  799 + $.ajax({
  800 + url: "/realSchedule/isCircleQdz", //请求地址
  801 + type: "POST",
  802 + async:false,
  803 + //请求方式
  804 + data: { line : line,nbbm:nbbm,ts:ts,qdzCode:qdzCode}, //请求参数
  805 +
  806 + success: function (result) {
  807 + stops = result.isExist;
  808 + }
  809 + });
  810 + // $.ajaxSettings.async = false;
  811 + // gb_common.$get('/gps/isCircleQdz',{line : line,nbbm:nbbm,ts:ts,qdzCode:qdzCode},function(result){
  812 + // stops = result.isCircleQdz;
  813 + // })
  814 + // $.ajaxSettings.async = true;
  815 + }
  816 + if (stops>0)
  817 + return true;
  818 + return false;
  819 + }
769 820 })();
770 821 </script>
771 822 \ No newline at end of file
... ...