Commit 586eab26b215b7d9d2ffdc0bddfea336085ea565
1 parent
ed3c4970
线调更新
Showing
16 changed files
with
329 additions
and
91 deletions
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;"> 完 成 </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
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 | ... | ... |