Commit a0b466f3a720a816b2024b490cd2494ae13443d2

Authored by 潘钊
2 parents 79c8f581 d407ae71

Merge branch 'minhang' into pudong

src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
@@ -358,6 +358,8 @@ public class InOutStationSignalHandle extends SignalHandle{ @@ -358,6 +358,8 @@ public class InOutStationSignalHandle extends SignalHandle{
358 //通知客户端 358 //通知客户端
359 sendUtils.sendZdsj(sch, lpNext, doneSum); 359 sendUtils.sendZdsj(sch, lpNext, doneSum);
360 logger.info("车辆:" + sch.getClZbh() + " 班次:" + sch.getDfsj() + "到终点, 时间:" + sch.getZdsjActual()); 360 logger.info("车辆:" + sch.getClZbh() + " 班次:" + sch.getDfsj() + "到终点, 时间:" + sch.getZdsjActual());
  361 + //清除车辆误点调整监听
  362 + LateAdjustHandle.remove(sch.getClZbh());
361 //准备执行下一个班次 363 //准备执行下一个班次
362 if (next != null) { 364 if (next != null) {
363 //将gps转换为下一个班次走向的站内信号 365 //将gps转换为下一个班次走向的站内信号
src/main/java/com/bsth/data/schedule/late_adjust/LateAdjustHandle.java
@@ -117,6 +117,7 @@ public class LateAdjustHandle implements ApplicationContextAware{ @@ -117,6 +117,7 @@ public class LateAdjustHandle implements ApplicationContextAware{
117 sch.setLateMinute(0); 117 sch.setLateMinute(0);
118 sch.setDfAuto(false); 118 sch.setDfAuto(false);
119 119
  120 + lateSchMap.remove(nbbm);
120 logger.info("移除误点调整 nbbm -" + nbbm); 121 logger.info("移除误点调整 nbbm -" + nbbm);
121 } 122 }
122 } 123 }
@@ -141,7 +142,7 @@ public class LateAdjustHandle implements ApplicationContextAware{ @@ -141,7 +142,7 @@ public class LateAdjustHandle implements ApplicationContextAware{
141 //自动调整待发 到达时间 + 停靠时间 142 //自动调整待发 到达时间 + 停靠时间
142 long dt = Arith.addLong(gps.getTimestamp(), (sch.getLateMinute() * 60 * 1000)); 143 long dt = Arith.addLong(gps.getTimestamp(), (sch.getLateMinute() * 60 * 1000));
143 144
144 - //超过2小时最大阈值,放弃 145 + //超过2小时最大阈值,放弃 -临时代码,待删除
145 if(Math.abs(dt - sch.getDfsjT()) > 1000 * 60 * 60 * 2){ 146 if(Math.abs(dt - sch.getDfsjT()) > 1000 * 60 * 60 * 2){
146 logger.info(sch.getClZbh() + " 超过误点调整阈值,放弃"); 147 logger.info(sch.getClZbh() + " 超过误点调整阈值,放弃");
147 } 148 }
src/main/resources/static/pages/oil/list_ph.html
@@ -5,9 +5,6 @@ @@ -5,9 +5,6 @@
5 text-overflow: ellipsis; 5 text-overflow: ellipsis;
6 } 6 }
7 7
8 - #ylbtable .ps-scrollbar-y{  
9 - min-height:100px;  
10 - }  
11 </style> 8 </style>
12 <div class="page-head"> 9 <div class="page-head">
13 <div class="page-title"> 10 <div class="page-title">
@@ -168,7 +165,7 @@ @@ -168,7 +165,7 @@
168 </div> 165 </div>
169 </div> 166 </div>
170 167
171 - <div id="ylbtable" class="portlet-body table-container " style="height: calc(100% - 200px);overflow: hidden;position: absolute;background: #fff;"> 168 + <div id="ylbtable" class="portlet-body table-container " style="height: calc(100% + 100px);overflow: hidden;position: absolute;background: #fff;">
172 169
173 <table 170 <table
174 class="table table-striped table-bordered table-hover table-checkable" 171 class="table table-striped table-bordered table-hover table-checkable"
src/main/resources/static/pages/report/inoutstation/inoutstation.html
@@ -70,7 +70,7 @@ @@ -70,7 +70,7 @@
70 </div> 70 </div>
71 <div style="display: inline-block; margin-left: 5px;"> 71 <div style="display: inline-block; margin-left: 5px;">
72 <input class="btn btn-default" type="button" id="query" value="查询" /> 72 <input class="btn btn-default" type="button" id="query" value="查询" />
73 -<!-- <input class="btn btn-default" type="button" id="export" value="导出" /> --> 73 + <input class="btn btn-default" type="button" id="export" value="导出" />
74 </div> 74 </div>
75 </div> 75 </div>
76 76
@@ -127,9 +127,7 @@ @@ -127,9 +127,7 @@
127 layer.msg("请选择方向"); 127 layer.msg("请选择方向");
128 }else{ 128 }else{
129 $get('/report/queryStrinon',{line:line,zd:zdlx},function(result){ 129 $get('/report/queryStrinon',{line:line,zd:zdlx},function(result){
130 - console.log(result);  
131 $get('/report/queryInOutStrtions',{line:line,date:date,zd:zdlx,lzsj:lzsj},function(result2){ 130 $get('/report/queryInOutStrtions',{line:line,date:date,zd:zdlx,lzsj:lzsj},function(result2){
132 - console.log(result2);  
133 // /* getTime(result); */ 131 // /* getTime(result); */
134 var ludan_ll_1 = template('ludan_ll_1',{lists:result,list:result2}); 132 var ludan_ll_1 = template('ludan_ll_1',{lists:result,list:result2});
135 // // 把渲染好的模版html文本追加到表格中 133 // // 把渲染好的模版html文本追加到表格中
@@ -172,19 +170,16 @@ @@ -172,19 +170,16 @@
172 170
173 171
174 $("#export").on("click",function(){ 172 $("#export").on("click",function(){
175 - var rq=$("#date").val();  
176 - var line=$("#line").val();  
177 - var nbbm=$("#nbbm").val();  
178 - var fcsj=$("#fcsj_xx").val();  
179 - var ddsj=$("#ddsj_xx").val();  
180 - if(fcsj==""){  
181 - layer.msg("没数据");  
182 - }else{  
183 - $get('/report/exportQueryListZdxx',{clzbh:nbbm,date:rq,line:line,fcsj:fcsj,ddsj:ddsj},function(result){  
184 - window.open("/downloadFile/download?fileName=班次到离站");  
185 - });  
186 - }  
187 - 173 + var curTbl = document.getElementById("forms");
  174 + var oXL = new ActiveXObject("Excel.Application");
  175 + var oWB = oXL.Workbooks.Add();
  176 + var oSheet = oWB.ActiveSheet;
  177 + var sel = document.body.createTextRange();
  178 + sel.moveToElementText(curTbl);
  179 + sel.select();
  180 + sel.execCommand("Copy");
  181 + oSheet.Paste();
  182 + oXL.Visible = true;
188 }); 183 });
189 184
190 }); 185 });
@@ -193,8 +188,13 @@ @@ -193,8 +188,13 @@
193 <script type="text/html" id="ludan_ll_1"> 188 <script type="text/html" id="ludan_ll_1">
194 {{each list as obj i}} 189 {{each list as obj i}}
195 <tr> 190 <tr>
196 - <td>{{obj.bc}}</td>  
197 - <td><label>{{obj.nbbm}}</label></td> 191 + {{if i==0}}
  192 + <td>序号</td>
  193 + <td>内部编码</label></td>
  194 + {{else}}
  195 + <td>{{i}}</td>
  196 + <td><label>{{obj.nbbm}}</label></td>
  197 + {{/if}}
198 {{each lists as o j}} 198 {{each lists as o j}}
199 {{if i==0}} 199 {{if i==0}}
200 <td> 200 <td>
@@ -206,8 +206,7 @@ @@ -206,8 +206,7 @@
206 <td {{if obj[o.stationCode] =='y'}}style="color: red"{{/if}}> 206 <td {{if obj[o.stationCode] =='y'}}style="color: red"{{/if}}>
207 {{if obj[(o.stationCode)+'in']!=''}} 207 {{if obj[(o.stationCode)+'in']!=''}}
208 <label> I {{obj[(o.stationCode)+'in']}}</label> 208 <label> I {{obj[(o.stationCode)+'in']}}</label>
209 - {{/if}}  
210 - <br/> 209 + {{/if}}<br/>
211 {{if obj[(o.stationCode)+'out']!=''}} 210 {{if obj[(o.stationCode)+'out']!=''}}
212 <label> O{{obj[(o.stationCode)+'out']}}</label> 211 <label> O{{obj[(o.stationCode)+'out']}}</label>
213 {{/if}} 212 {{/if}}
src/main/resources/static/pages/summary/fast_and_slow/data.html 0 → 100644
  1 +<div class="ct_data_body_wrap">
  2 + <div class="uk-card uk-card-default uk-card-body ct_rq_left">
  3 + <ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100"
  4 + class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
  5 + <li class="uk-active"><a href="#table_20171010">2017-10-10</a></li>
  6 + <li><a href="#table_20171011">2017-10-11</a></li>
  7 + <li><a href="#table_20171012">2017-10-12</a></li>
  8 + <li><a href="#table_20171013">2017-10-13</a></li>
  9 + <li><a href="#table_20171014">2017-10-14</a></li>
  10 + <li><a href="#table_20171015">2017-10-15</a></li>
  11 + <li><a href="#table_20171016">2017-10-16</a></li>
  12 + </ul>
  13 + </div>
  14 +
  15 + <div class="uk-card uk-card-default uk-card-body ct_right_tables">
  16 + <div id="table_20171010">
  17 + <table>
  18 +
  19 + </table>
  20 + </div>
  21 + </div>
  22 +
  23 + <script>
  24 + (function () {
  25 + var wrap = '.ct_data_body_wrap';
  26 +
  27 + $(wrap).on('init', function (e, data) {
  28 + e.stopPropagation();
  29 + console.log('data init');
  30 +
  31 + });
  32 + })();
  33 + </script>
  34 +</div>
0 \ No newline at end of file 35 \ No newline at end of file
src/main/resources/static/pages/summary/fast_and_slow/f_a_s_wrap.html 0 → 100644
  1 +<!-- 快慢误点统计 -->
  2 +<iframe src="/pages/summary/fast_and_slow/main.html?origin=real_control_iframe" frameborder="0" style="height: 100%;width: 100%;"></iframe>
0 \ No newline at end of file 3 \ No newline at end of file
src/main/resources/static/pages/summary/fast_and_slow/main.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh-cn">
  3 +
  4 +<head>
  5 + <meta charset="UTF-8">
  6 + <link rel="stylesheet" href="/assets/plugins/uk3.0/uikit.min.css"/>
  7 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.css" />
  8 + <!-- flatpickr -->
  9 + <link rel="stylesheet" href="/real_control_v2/assets/plugins/flatpickr/flatpickr.min.css">
  10 + <style>
  11 + html,body{
  12 + height: 100%;
  13 + }
  14 + .ct_page{
  15 + padding: 25px 15px;
  16 + height: 100%;
  17 + height: calc(100% - 50px);
  18 + }
  19 +
  20 + .ct_cont{
  21 + height: calc(100% - 35px);
  22 + }
  23 +
  24 + .ct_cont>div>div.uk-card{
  25 + height: 99%;
  26 + }
  27 +
  28 + .loading{
  29 + height: 100%;
  30 + text-align: center;
  31 + }
  32 + .loading .uk-spinner{
  33 + margin-top: 200px;
  34 + }
  35 + .loading circle{
  36 + stroke: red;
  37 + }
  38 +
  39 + .ps-container > .ps-scrollbar-x-rail, .ps-container > .ps-scrollbar-y-rail{
  40 + opacity: 0.6 !important;
  41 + padding: 0 !important;
  42 + }
  43 +
  44 + .ct_search_form_wrap{
  45 + border-bottom: 1px solid #e5e5e5;
  46 + padding: 10px 0 25px 10px;
  47 + }
  48 + .ct_search_form_wrap .ct_field{
  49 + display: inline-block;
  50 + margin: 0 5px;
  51 + }
  52 +
  53 + .ct_search_form_wrap .ct_field label{
  54 + font-size: 14px;
  55 + }
  56 +
  57 + .ct_search_form_wrap .ct_field input[type=text]{
  58 + width: 110px;
  59 + }
  60 +
  61 + .ct_search_form_wrap .ct_field select{
  62 + width: auto;
  63 + min-width: 100px;
  64 + }
  65 +
  66 + .ct_search_form_wrap .uk-button{
  67 + padding: 0 14px;
  68 + }
  69 +
  70 + .ct_search_form_wrap .uk-button i{
  71 + vertical-align: middle;
  72 + margin-top: -2px;
  73 + margin-right: 7px;
  74 + }
  75 +
  76 + .ct_field.ct_field_bottom{
  77 + vertical-align: bottom;
  78 + font-size: 12px;
  79 + margin-left: 0;
  80 + }
  81 +
  82 + .ct_cont_body{
  83 + height: calc(100% - 88px);
  84 + width: 100%;
  85 + padding-top: 12px;
  86 + }
  87 +
  88 + .ct_data_body_wrap{
  89 + height: 100%;
  90 + width: 100%;
  91 + }
  92 +
  93 + .ct_rq_left{
  94 + width: 200px;
  95 + display: inline-block;
  96 + vertical-align: top;
  97 + height: 99%;
  98 + height: calc(100% - 5px);
  99 + }
  100 +
  101 + .ct_right_tables{
  102 + width: calc(100% - 220px);
  103 + display: inline-block;
  104 + margin-left: 12px;
  105 + height: 99%;
  106 + height: calc(100% - 5px);
  107 + }
  108 +
  109 + .tm-nav>li a{
  110 + position: relative;
  111 + font-size: 15px;
  112 + }
  113 + .tm-nav>li.uk-active>a:before {
  114 + content: "";
  115 + position: absolute;
  116 + width: 15px;
  117 + border-top: 1px solid #1e87f0;
  118 + z-index: 9;
  119 + right: 60px;
  120 + top: 15px;
  121 + }
  122 + .uk-nav-default>li.uk-active>a {
  123 + color: #222;
  124 + }
  125 + </style>
  126 +</head>
  127 +
  128 +<body>
  129 +<div class="loading">
  130 + <div uk-spinner></div>
  131 +</div>
  132 +<div class="ct_page" style="display: none;">
  133 + <h3 class="uk-heading-line uk-heading-bullet"><span>快慢误点统计</span></h3>
  134 + <div class="ct_cont" >
  135 + <div class="ct_search_form_wrap">
  136 + <form>
  137 + <div class="ct_field">
  138 + <label>公司:
  139 + <select class="uk-select" name="companyId_eq">
  140 + </select>
  141 + </label>
  142 + </div>
  143 + <div class="ct_field">
  144 + <label>分公司:
  145 + <select class="uk-select" name="subCompanyId_eq">
  146 + </select>
  147 + </label>
  148 + </div>
  149 + <div class="ct_field">
  150 + <label>线路:
  151 + <select class="uk-select" name="lineCode_eq">
  152 + </select>
  153 + </label>
  154 + </div>
  155 + <div class="ct_field">
  156 + <label>日期范围:
  157 + <input class="uk-input" name="rq" style="width: 200px;">
  158 + </label>
  159 + </div>
  160 + <div class="ct_field">
  161 + <label><input class="uk-radio" type="radio" name="type" checked> 全部</label>&nbsp;
  162 + <label><input class="uk-radio" type="radio" name="type"> 快误</label>&nbsp;
  163 + <label><input class="uk-radio" type="radio" name="type"> 慢误</label>
  164 + </div>
  165 + <div class="ct_field">
  166 + <button class="uk-button uk-button-primary search"><i uk-icon="icon: search"></i>搜索</button>
  167 + </div>
  168 + <div class="ct_field ct_field_bottom">
  169 + <button class="uk-button uk-button-text" style="padding: 0 5px;">导出数据</button>
  170 + </div>
  171 + <div class="ct_field ct_field_bottom">
  172 + <span uk-icon="icon: question" title="统计 “正常”、“区间”、“放站” 班次" uk-tooltip="pos: bottom"></span>
  173 + </div>
  174 + </form>
  175 + </div>
  176 +
  177 + <div class="ct_cont_body">
  178 + </div>
  179 + </div>
  180 +</div>
  181 +
  182 +<script src="/metronic_v4.5.4/plugins/jquery.min.js"></script>
  183 +<script src="/assets/plugins/uk3.0/uikit.min.js"></script>
  184 +<script src="/assets/plugins/uk3.0/uikit-icons.min.js"></script>
  185 +<script src="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.jquery.js" ></script>
  186 +<!-- EventProxy -->
  187 +<script src="/assets/js/eventproxy.js"></script>
  188 +<!-- art-template 模版引擎 -->
  189 +<script src="/assets/plugins/template.js"></script>
  190 +<script src="/real_control_v2/assets/plugins/moment/moment.min.js"></script>
  191 +<!-- jquery.serializejson JSON序列化插件 -->
  192 +<script src="/assets/plugins/jquery.serializejson.js" merge="plugins"></script>
  193 +<!-- flatpickr -->
  194 +<script src="/real_control_v2/assets/plugins/flatpickr/flatpickr.min.js" ></script>
  195 +<script src="/real_control_v2/assets/plugins/flatpickr/l10n/zh.js" ></script>
  196 +<script>
  197 +
  198 +(function () {
  199 + //var data_dom;
  200 + var f = $('form', '');
  201 + var ep = EventProxy.create('query_comps', 'query_lines', function () {
  202 + $('[name=companyId_eq]', f).trigger('change');//公司change
  203 + //query();
  204 +
  205 + $('.loading').remove();
  206 + $('.ct_page').show();
  207 + });
  208 +
  209 + $.get('/pages/summary/fast_and_slow/data.html', function (rs) {
  210 + $('.ct_cont_body').html(rs);
  211 + });
  212 +
  213 + //点击搜索按钮
  214 + $('.search', f).on('click', function () {
  215 + $('.ct_data_body_wrap').trigger('init');
  216 + });
  217 +
  218 + //日期选择框
  219 + var fs='YYYY-MM-DD'
  220 + , ets=moment().format(fs)
  221 + , sts=moment().subtract(7, 'days').format(fs);
  222 + flatpickr('.ct_search_form_wrap [name=rq]', {
  223 + mode: "range", dateFormat: "Y-m-d","locale": "zh", defaultDate: [sts, ets]
  224 + });
  225 + var comps;
  226 + //构建公司级联下拉框
  227 + $.get('/user/companyData', function (rs) {
  228 + comps = rs;
  229 + var opts = '';
  230 + for(var i=0,obj;obj=comps[i++];){
  231 + opts += '<option value="'+obj.companyCode+'">'+obj.companyName+'</option>';
  232 + }
  233 + $('[name=companyId_eq]', f).html(opts);
  234 + ep.emit('query_comps');
  235 + });
  236 + var lineMapps;
  237 + //加载线路信息
  238 + $.get('/line/all', {'destroy_eq': 0}, function (rs) {
  239 + rs.sort(function (a, b) {
  240 + return a.name.localeCompare(b.name);
  241 + });
  242 + lineMapps={};
  243 + var k;
  244 + $.each(rs, function () {
  245 + k = this.company+'_'+this.brancheCompany;
  246 + if(!lineMapps[k])
  247 + lineMapps[k]=[];
  248 + lineMapps[k].push(this);
  249 + });
  250 +
  251 + ep.emit('query_lines');
  252 + });
  253 +
  254 + $('[name=companyId_eq]', f).on('change', function () {
  255 + var code = $(this).val(), subs=[];
  256 + $.each(comps, function () {
  257 + if(this.companyCode==code)
  258 + subs=this.children;
  259 + });
  260 +
  261 + var opts='';
  262 + $.each(subs, function () {
  263 + opts += '<option value="'+this.code+'">'+this.name+'</option>';
  264 + });
  265 + $('[name=subCompanyId_eq]', f).html(opts).trigger('change');
  266 + });
  267 +
  268 + $('[name=subCompanyId_eq]', f).on('change', function () {
  269 + var k = $('[name=companyId_eq]', f).val() + '_' + $(this).val();
  270 + var array = lineMapps[k];
  271 + var opts = '';
  272 + if(array){
  273 + $.each(array, function () {
  274 + opts += '<option value="'+this.lineCode+'">'+this.name+'</option>';
  275 + });
  276 + }
  277 + $('[name=lineCode_eq]', f).html(opts);
  278 + });
  279 +})();
  280 +</script>
  281 +</body>
  282 +</html>
0 \ No newline at end of file 283 \ No newline at end of file
src/main/resources/static/pages/summary/work_hours/list.html
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
18 } 18 }
19 19
20 .ct_cont{ 20 .ct_cont{
21 - height: calc(100% - 41px); 21 + height: calc(100% - 35px);
22 } 22 }
23 23
24 .ct_cont>div>div.uk-card{ 24 .ct_cont>div>div.uk-card{
@@ -122,7 +122,7 @@ @@ -122,7 +122,7 @@
122 <div uk-spinner></div> 122 <div uk-spinner></div>
123 </div> 123 </div>
124 <div class="ct_page" style="display: none;"> 124 <div class="ct_page" style="display: none;">
125 - <h2 class="uk-heading-line uk-heading-bullet"><span>工时统计</span></h2> 125 + <h3 class="uk-heading-line uk-heading-bullet"><span>工时统计</span></h3>
126 <div class="ct_cont" > 126 <div class="ct_cont" >
127 <div class="ct_search_form_wrap"> 127 <div class="ct_search_form_wrap">
128 <form> 128 <form>
@@ -141,7 +141,6 @@ @@ -141,7 +141,6 @@
141 <div class="ct_field"> 141 <div class="ct_field">
142 <label>线路: 142 <label>线路:
143 <select class="uk-select" name="lineCode_eq"> 143 <select class="uk-select" name="lineCode_eq">
144 - <option value="81101">航头4路</option>  
145 </select> 144 </select>
146 </label> 145 </label>
147 </div> 146 </div>
@@ -264,7 +263,7 @@ @@ -264,7 +263,7 @@
264 263
265 //日期选择器 264 //日期选择器
266 $('[name=rq_eq]', f).val('2017-10-10'); 265 $('[name=rq_eq]', f).val('2017-10-10');
267 - flatpickr('.ct_search_form_wrap [name=rq_eq]', {"locale": "zh", maxDate: '2017-10-10', minDate: '2017-07-01'}); 266 + flatpickr('.ct_search_form_wrap [name=rq_eq]', {"locale": "zh", maxDate: '2017-10-16', minDate: '2017-07-01'});
268 267
269 var comps; 268 var comps;
270 //构建公司级联下拉框 269 //构建公司级联下拉框
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/add_range_normal.html
1 -<!-- 区间变全程 -->  
2 -<div class="add_range_2_normal">  
3 - <div class="forms"></div>  
4 -  
5 - <div class="uk-modal-footer uk-text-right" style="margin-top: 5px;">  
6 - <button type="button" class="uk-button uk-modal-close">取消</button>  
7 - <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button>  
8 - </div>  
9 - <script>  
10 - (function () {  
11 - var wrap = '#add-sub-task-main-modal .add_range_2_normal',  
12 - sch,nextSch,f1,tf1,f2,tf2;  
13 -  
14 - $(wrap).on('init', function (e, data) {  
15 - e.stopPropagation();  
16 - sch = data.sch;  
17 - nextSch = gb_schedule_table.getNextSch(sch);  
18 -  
19 - if(sch.bcType!='region'){  
20 - $(wrap).html('<div class="err_panel">该模板只能应用区间班次!</div>');  
21 - return;  
22 - }  
23 - f1 = addTaskForm();  
24 - tf1 = addTaskForm().addClass('temp_service');  
25 - changeField(f1, tf1);  
26 -  
27 - //返程也是区间  
28 - if(nextSch.bcType=='region'){  
29 - var u_d_input = '<input name="upDown" type="hidden" value="'+nextSch.xlDir+'">';  
30 - tf1.after('<div class="range_2_normal_tt">返程</div>');  
31 - tf2 = addTaskForm(u_d_input).addClass('temp_service');  
32 - f2 = addTaskForm(u_d_input);  
33 -  
34 - changeField(f2, tf2);  
35 - }  
36 -  
37 - //设置默认值  
38 - setDefaultVal();  
39 - });  
40 -  
41 - function addTaskForm(upDownInput) {  
42 - var htmlStr = template('sub-task-v2-form-temp', {sch: sch});  
43 - var f = $(htmlStr);  
44 - $('.forms', wrap).append(f);  
45 -  
46 - if(upDownInput)  
47 - f.append(upDownInput);  
48 - //字典转换  
49 - dictionaryUtils.transformDom($('.nt-dictionary', f));  
50 -  
51 - //班次类型切换  
52 - $('select[name=type2]', f).trigger('change');  
53 -  
54 - f.formValidation({  
55 - framework: 'uikit',  
56 - locale: 'zh_CN'  
57 - }).on('add_reason_field', function () {  
58 - $(this).formValidation('addField', 'reason');  
59 - });  
60 -  
61 - $f('type2', f).attr('disabled', 'disabled');  
62 - return f;  
63 - }  
64 -  
65 - function $f(name, f) {  
66 - return $('[name=' + name + ']', f);  
67 - }  
68 -  
69 - function changeField(f, tf) {  
70 - $f('type1', tf).val('临加');  
71 - $f('mileageType', tf).html('<option value="service">临加</option>');  
72 - $f('destroy', f).parents('.uk-form-controls').hide();  
73 - $f('destroy', tf).parents('.uk-form-controls').hide();  
74 - }  
75 -  
76 - /**  
77 - * 设置默认值  
78 - */  
79 - function setDefaultVal() {  
80 - $f('startStation', f1).attr('disabled', 'disabled');  
81 - $f('endStation', f1).val(sch.zdzCode).trigger('change').attr('disabled', 'disabled');  
82 - $f('startStation', tf1).val(sch.zdzCode).trigger('change');  
83 -  
84 - //tf1 startDate  
85 - $f('startDate', tf1).val($f('endDate', f1).val()).trigger('input');  
86 - if(tf2){  
87 - $('[sch_id_inp]', tf2).val(nextSch.id);  
88 - $f('endStation', tf2).val(nextSch.qdzCode).trigger('change');  
89 - }  
90 - if(f2){  
91 - $('[sch_id_inp]', f2).val(nextSch.id);  
92 - $f('endStation', f2).val(nextSch.zdzCode).attr('disabled', 'disabled');  
93 - $f('startStation', f2).val(nextSch.qdzCode).trigger('change').attr('disabled', 'disabled');  
94 - $f('mileage', f2).val(nextSch.jhlc);  
95 - $f('startDate', f2).val($f('endDate', tf2).val()).trigger('change');  
96 - }  
97 - }  
98 -  
99 - /**  
100 - * 备注级联  
101 - */  
102 - $(wrap).on('input', '[name=remarks]', function () {  
103 - var nfs = $(this).parents('.sub_task_form_v2').nextAll('.sub_task_form_v2');  
104 - $('[name=remarks]', nfs).val($(this).val());  
105 - });  
106 -  
107 -  
108 - //提交  
109 - $('button[type=submit]', wrap).on('click', function () {  
110 - $(this).addClass('disabled').attr('disabled','disabled');  
111 - dataArray = [];  
112 - $('form.sub_task_form_v2', wrap).data('valid', false)  
113 - .formValidation('validate');  
114 - });  
115 -  
116 - var dataArray = [];  
117 - $(wrap).on('success.form.fv', 'form.sub_task_form_v2', function (e) {  
118 - e.preventDefault();  
119 -  
120 - dataArray.push($.extend($(this).serializeJSON(), gb_common.getDisabledVal(this)));  
121 - $(this).data('valid', true);  
122 -  
123 - if (allValidSuccess()) {  
124 - var i = 0;  
125 - (function () {  
126 - var f = arguments.callee;  
127 - if (i >= dataArray.length) {  
128 - UIkit.modal('#add-sub-task-main-modal').hide();  
129 - $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch});  
130 - return;  
131 - }  
132 - var data = dataArray[i];  
133 - gb_common.$post('/childTask', data, function (rs) {  
134 - notify_succ('子任务添加成功');  
135 - gb_schedule_table.updateSchedule(rs.t);  
136 - i++;  
137 - f();  
138 - });  
139 - })();  
140 - }  
141 - });  
142 - //校验不过  
143 - $(wrap).on('err.field.fv','form.sub_task_form_v2', function () {  
144 - $('button[type=submit]', wrap).removeClass('disabled').removeAttr('disabled');  
145 - });  
146 -  
147 - function allValidSuccess() {  
148 - var flag = true;  
149 - $('form.sub_task_form_v2', wrap).each(function (i, f) {  
150 - if(!$(f).data('valid')){  
151 - flag = false;  
152 - return false;  
153 - }  
154 - });  
155 - return flag;  
156 - }  
157 -  
158 - })();  
159 - </script> 1 +<!-- 区间变全程 -->
  2 +<div class="add_range_2_normal">
  3 + <div class="forms"></div>
  4 +
  5 + <div class="uk-modal-footer uk-text-right" style="margin-top: 5px;">
  6 + <button type="button" class="uk-button uk-modal-close">取消</button>
  7 + <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button>
  8 + </div>
  9 + <script>
  10 + (function () {
  11 + var wrap = '#add-sub-task-main-modal .add_range_2_normal',
  12 + sch,nextSch,f1,tf1,f2,tf2;
  13 +
  14 + $(wrap).on('init', function (e, data) {
  15 + e.stopPropagation();
  16 + sch = data.sch;
  17 + nextSch = gb_schedule_table.getNextSch(sch);
  18 +
  19 + if(sch.bcType!='region'){
  20 + $(wrap).html('<div class="err_panel">该模板只能应用区间班次!</div>');
  21 + return;
  22 + }
  23 + f1 = addTaskForm();
  24 + tf1 = addTaskForm().addClass('temp_service');
  25 + changeField(f1, tf1);
  26 +
  27 + //返程也是区间
  28 + if(nextSch.bcType=='region'){
  29 + var u_d_input = '<input name="upDown" type="hidden" value="'+nextSch.xlDir+'">';
  30 + tf1.after('<div class="range_2_normal_tt">返程</div>');
  31 + tf2 = addTaskForm(u_d_input).addClass('temp_service');
  32 + f2 = addTaskForm(u_d_input);
  33 +
  34 + changeField(f2, tf2);
  35 + }
  36 +
  37 + //设置默认值
  38 + setDefaultVal();
  39 + });
  40 +
  41 + function addTaskForm(upDownInput) {
  42 + var htmlStr = template('sub-task-v2-form-temp', {sch: sch});
  43 + var f = $(htmlStr);
  44 + $('.forms', wrap).append(f);
  45 +
  46 + if(upDownInput)
  47 + f.append(upDownInput);
  48 + //字典转换
  49 + dictionaryUtils.transformDom($('.nt-dictionary', f));
  50 +
  51 + //班次类型切换
  52 + $('select[name=type2]', f).trigger('change');
  53 +
  54 + f.formValidation({
  55 + framework: 'uikit',
  56 + locale: 'zh_CN'
  57 + }).on('add_reason_field', function () {
  58 + $(this).formValidation('addField', 'reason');
  59 + });
  60 +
  61 + $f('type2', f).attr('disabled', 'disabled');
  62 + return f;
  63 + }
  64 +
  65 + function $f(name, f) {
  66 + return $('[name=' + name + ']', f);
  67 + }
  68 +
  69 + function changeField(f, tf) {
  70 + $f('type1', tf).val('临加');
  71 + $f('mileageType', tf).html('<option value="service">临加</option>');
  72 + $f('destroy', f).parents('.uk-form-controls').hide();
  73 + $f('destroy', tf).parents('.uk-form-controls').hide();
  74 + }
  75 +
  76 + /**
  77 + * 设置默认值
  78 + */
  79 + function setDefaultVal() {
  80 + $f('startStation', f1).attr('disabled', 'disabled');
  81 + $f('endStation', f1).val(sch.zdzCode).trigger('change').attr('disabled', 'disabled');
  82 + $f('startStation', tf1).val(sch.zdzCode).trigger('change');
  83 +
  84 + //tf1 startDate
  85 + $f('startDate', tf1).val($f('endDate', f1).val()).trigger('input');
  86 + if(tf2){
  87 + $('[sch_id_inp]', tf2).val(nextSch.id);
  88 + $f('endStation', tf2).val(nextSch.qdzCode).trigger('change');
  89 + }
  90 + if(f2){
  91 + $('[sch_id_inp]', f2).val(nextSch.id);
  92 + $f('endStation', f2).val(nextSch.zdzCode).attr('disabled', 'disabled');
  93 + $f('startStation', f2).val(nextSch.qdzCode).trigger('change').attr('disabled', 'disabled');
  94 + $f('mileage', f2).val(nextSch.jhlc);
  95 + $f('startDate', f2).val($f('endDate', tf2).val()).trigger('change');
  96 + }
  97 + }
  98 +
  99 + /**
  100 + * 备注级联
  101 + */
  102 + $(wrap).on('input', '[name=remarks]', function () {
  103 + var nfs = $(this).parents('.sub_task_form_v2').nextAll('.sub_task_form_v2');
  104 + $('[name=remarks]', nfs).val($(this).val());
  105 + });
  106 +
  107 +
  108 + //提交
  109 + $('button[type=submit]', wrap).on('click', function () {
  110 + $(this).addClass('disabled').attr('disabled','disabled');
  111 + dataArray = [];
  112 + $('form.sub_task_form_v2', wrap).data('valid', false)
  113 + .formValidation('validate');
  114 + });
  115 +
  116 + var dataArray = [];
  117 + $(wrap).on('success.form.fv', 'form.sub_task_form_v2', function (e) {
  118 + e.preventDefault();
  119 +
  120 + dataArray.push($.extend($(this).serializeJSON(), gb_common.getDisabledVal(this)));
  121 + $(this).data('valid', true);
  122 +
  123 + if (allValidSuccess()) {
  124 + var i = 0;
  125 + (function () {
  126 + var f = arguments.callee;
  127 + if (i >= dataArray.length) {
  128 + UIkit.modal('#add-sub-task-main-modal').hide();
  129 + $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch});
  130 + return;
  131 + }
  132 + var data = dataArray[i];
  133 + gb_common.$post('/childTask', data, function (rs) {
  134 + notify_succ('子任务添加成功');
  135 + gb_schedule_table.updateSchedule(rs.t);
  136 + i++;
  137 + f();
  138 + });
  139 + })();
  140 + }
  141 + });
  142 + //校验不过
  143 + $(wrap).on('err.field.fv','form.sub_task_form_v2', function () {
  144 + $('button[type=submit]', wrap).removeClass('disabled').removeAttr('disabled');
  145 + });
  146 +
  147 + function allValidSuccess() {
  148 + var flag = true;
  149 + $('form.sub_task_form_v2', wrap).each(function (i, f) {
  150 + if(!$(f).data('valid')){
  151 + flag = false;
  152 + return false;
  153 + }
  154 + });
  155 + return flag;
  156 + }
  157 +
  158 + })();
  159 + </script>
160 </div> 160 </div>
161 \ No newline at end of file 161 \ No newline at end of file
src/main/resources/static/real_control_v2/js/utils/dispatch_pattern.js
1 /** 调度模式 */ 1 /** 调度模式 */
2 2
  3 +//主调和监控模式
  4 +var operationMode = window.localStorage.getItem('operationMode');
3 var gb_dp_initHttpIntercept = function () { 5 var gb_dp_initHttpIntercept = function () {
4 - //主调和监控模式  
5 - var operationMode = window.localStorage.getItem('operationMode');  
6 $(document).off('ajaxSend', interceptPOST); 6 $(document).off('ajaxSend', interceptPOST);
7 $('body>.north').removeClass('monitor main'); 7 $('body>.north').removeClass('monitor main');
8 if (operationMode == 0) { 8 if (operationMode == 0) {