Commit 63abccb23d37c8cd0f3afe9d4b3f188d44deb142

Authored by 潘钊
1 parent 3a8e56b9

update...

src/main/java/com/bsth/data/Station2ParkBuffer.java
@@ -2,6 +2,7 @@ package com.bsth.data; @@ -2,6 +2,7 @@ package com.bsth.data;
2 2
3 import com.bsth.common.ResponseCode; 3 import com.bsth.common.ResponseCode;
4 import com.bsth.entity.realcontrol.ChildTaskPlan; 4 import com.bsth.entity.realcontrol.ChildTaskPlan;
  5 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
5 import com.bsth.entity.realcontrol.StationToPark; 6 import com.bsth.entity.realcontrol.StationToPark;
6 import com.bsth.repository.realcontrol.StationToParkRepository; 7 import com.bsth.repository.realcontrol.StationToParkRepository;
7 import com.bsth.util.Arith; 8 import com.bsth.util.Arith;
@@ -101,6 +102,47 @@ public class Station2ParkBuffer implements CommandLineRunner { @@ -101,6 +102,47 @@ public class Station2ParkBuffer implements CommandLineRunner {
101 } 102 }
102 } 103 }
103 104
  105 + public static void put(ScheduleRealInfo sch){
  106 + try{
  107 + String type = sch.getBcType();
  108 + String lineCode = sch.getXlBm(), sName, eName;
  109 +
  110 + if (type.equals("in")) {
  111 + sName = sch.getQdzName();
  112 + eName = sch.getZdzName();
  113 + } else if (type.equals("out")) {
  114 + eName = sch.getQdzName();
  115 + sName = sch.getZdzName();
  116 + } else
  117 + return;
  118 +
  119 + long dt = sch.getZdsjT() - sch.getDfsjT();
  120 + Float time = Float.parseFloat(String.valueOf(Arith.div(Arith.div(dt, 1000), 60)));
  121 + Float mileage = Float.parseFloat(sch.getJhlc().toString());
  122 +
  123 + StationToPark stp = get(lineCode, sName, eName);
  124 + if (stp == null) {
  125 + stp = new StationToPark();
  126 + stp.setLineCode(lineCode);
  127 + stp.setStationName(sName);
  128 + stp.setParkName(eName);
  129 + listMultimap.put(lineCode, stp);
  130 + }
  131 +
  132 + if (type.equals("in")) {
  133 + stp.setTime1(time);
  134 + stp.setMileage1(mileage);
  135 + } else {
  136 + stp.setTime2(time);
  137 + stp.setMileage2(mileage);
  138 + }
  139 +
  140 + pstBuff.add(stp);
  141 + }catch (Exception e){
  142 + log.error("", e);
  143 + }
  144 + }
  145 +
104 public static Float calcMinute(ChildTaskPlan ctask) { 146 public static Float calcMinute(ChildTaskPlan ctask) {
105 long t = 0; 147 long t = 0;
106 148
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
@@ -944,8 +944,11 @@ public class DayOfSchedule { @@ -944,8 +944,11 @@ public class DayOfSchedule {
944 ScheduleRealInfo sch = schAttrCalculator.calcCurrentExecSch(list); 944 ScheduleRealInfo sch = schAttrCalculator.calcCurrentExecSch(list);
945 carExecutePlanMap.put(nbbm, sch); 945 carExecutePlanMap.put(nbbm, sch);
946 946
947 - if(sch==null) 947 + if(sch==null){
  948 + logger.info("车辆" + nbbm + "无可执行任务,切换至非营运状态");
  949 + DirectivePushQueue.put6003(nbbm, 1, Integer.parseInt(sch.getXlDir()), null, "系统");
948 return; 950 return;
  951 + }
949 try { 952 try {
950 GpsEntity gps = gpsRealData.get(BasicData.deviceId2NbbmMap.inverse().get(nbbm)); 953 GpsEntity gps = gpsRealData.get(BasicData.deviceId2NbbmMap.inverse().get(nbbm));
951 if(gps != null && gps.isOnline()){ 954 if(gps != null && gps.isOnline()){
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -10,6 +10,7 @@ import com.bsth.controller.realcontrol.dto.DfsjChange; @@ -10,6 +10,7 @@ import com.bsth.controller.realcontrol.dto.DfsjChange;
10 import com.bsth.controller.realcontrol.dto.LpData; 10 import com.bsth.controller.realcontrol.dto.LpData;
11 import com.bsth.data.BasicData; 11 import com.bsth.data.BasicData;
12 import com.bsth.data.LineConfigData; 12 import com.bsth.data.LineConfigData;
  13 +import com.bsth.data.Station2ParkBuffer;
13 import com.bsth.data.schedule.DayOfSchedule; 14 import com.bsth.data.schedule.DayOfSchedule;
14 import com.bsth.data.schedule.SchAttrCalculator; 15 import com.bsth.data.schedule.SchAttrCalculator;
15 import com.bsth.data.schedule.ScheduleComparator; 16 import com.bsth.data.schedule.ScheduleComparator;
@@ -590,6 +591,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf @@ -590,6 +591,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf
590 //重新计算车辆当前执行班次 591 //重新计算车辆当前执行班次
591 dayOfSchedule.reCalcExecPlan(t.getClZbh()); 592 dayOfSchedule.reCalcExecPlan(t.getClZbh());
592 593
  594 + //记录站到场历时数据
  595 + Station2ParkBuffer.put(t);
593 596
594 rs.put("ts", ts); 597 rs.put("ts", ts);
595 rs.put("t", t); 598 rs.put("t", t);
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/add_temp_sch.html
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
30 <div class="uk-form-row"> 30 <div class="uk-form-row">
31 <label class="uk-form-label">班次类型</label> 31 <label class="uk-form-label">班次类型</label>
32 <div class="uk-form-controls"> 32 <div class="uk-form-controls">
33 - <select class="form-control nt-dictionary" required name="bcType" data-code="{{bcType}}" 33 + <select class="form-control nt-dictionary" name="bcType" data-code="{{bcType}}"
34 data-group=ScheduleType></select> 34 data-group=ScheduleType></select>
35 </div> 35 </div>
36 </div> 36 </div>
@@ -52,7 +52,7 @@ @@ -52,7 +52,7 @@
52 <div class="uk-form-row"> 52 <div class="uk-form-row">
53 <label class="uk-form-label">起点站</label> 53 <label class="uk-form-label">起点站</label>
54 <div class="uk-form-controls"> 54 <div class="uk-form-controls">
55 - <select name="qdzCode" required> 55 + <select name="qdzCode" >
56 </select> 56 </select>
57 </div> 57 </div>
58 </div> 58 </div>
@@ -61,7 +61,7 @@ @@ -61,7 +61,7 @@
61 <div class="uk-form-row"> 61 <div class="uk-form-row">
62 <label class="uk-form-label">终点站</label> 62 <label class="uk-form-label">终点站</label>
63 <div class="uk-form-controls"> 63 <div class="uk-form-controls">
64 - <select name="zdzCode" required> 64 + <select name="zdzCode" >
65 </select> 65 </select>
66 </div> 66 </div>
67 </div> 67 </div>
@@ -156,7 +156,7 @@ @@ -156,7 +156,7 @@
156 <div class="uk-form-row"> 156 <div class="uk-form-row">
157 <label class="uk-form-label">班次类型</label> 157 <label class="uk-form-label">班次类型</label>
158 <div class="uk-form-controls"> 158 <div class="uk-form-controls">
159 - <select class="form-control nt-dictionary" name="bcType" required data-code="{{bcType}}" 159 + <select class="form-control nt-dictionary" name="bcType" data-code="{{bcType}}"
160 data-group=ScheduleType></select> 160 data-group=ScheduleType></select>
161 </div> 161 </div>
162 </div> 162 </div>
@@ -178,7 +178,7 @@ @@ -178,7 +178,7 @@
178 <div class="uk-form-row"> 178 <div class="uk-form-row">
179 <label class="uk-form-label">起点站</label> 179 <label class="uk-form-label">起点站</label>
180 <div class="uk-form-controls"> 180 <div class="uk-form-controls">
181 - <select name="qdzCode" required> 181 + <select name="qdzCode" >
182 </select> 182 </select>
183 </div> 183 </div>
184 </div> 184 </div>
@@ -187,7 +187,7 @@ @@ -187,7 +187,7 @@
187 <div class="uk-form-row"> 187 <div class="uk-form-row">
188 <label class="uk-form-label">终点站</label> 188 <label class="uk-form-label">终点站</label>
189 <div class="uk-form-controls"> 189 <div class="uk-form-controls">
190 - <select name="zdzCode" required> 190 + <select name="zdzCode" >
191 </select> 191 </select>
192 </div> 192 </div>
193 </div> 193 </div>
@@ -274,7 +274,7 @@ @@ -274,7 +274,7 @@
274 <div class="uk-form-row"> 274 <div class="uk-form-row">
275 <label class="uk-form-label">班次类型</label> 275 <label class="uk-form-label">班次类型</label>
276 <div class="uk-form-controls"> 276 <div class="uk-form-controls">
277 - <select class="form-control nt-dictionary" name="bcType" required data-code="{{bcType}}" 277 + <select class="form-control nt-dictionary" name="bcType" data-code="{{bcType}}"
278 data-group=ScheduleType></select> 278 data-group=ScheduleType></select>
279 </div> 279 </div>
280 </div> 280 </div>
@@ -296,7 +296,7 @@ @@ -296,7 +296,7 @@
296 <div class="uk-form-row"> 296 <div class="uk-form-row">
297 <label class="uk-form-label">起点站</label> 297 <label class="uk-form-label">起点站</label>
298 <div class="uk-form-controls"> 298 <div class="uk-form-controls">
299 - <select name="qdzCode" required> 299 + <select name="qdzCode" >
300 </select> 300 </select>
301 </div> 301 </div>
302 </div> 302 </div>
@@ -305,7 +305,7 @@ @@ -305,7 +305,7 @@
305 <div class="uk-form-row"> 305 <div class="uk-form-row">
306 <label class="uk-form-label">终点站</label> 306 <label class="uk-form-label">终点站</label>
307 <div class="uk-form-controls"> 307 <div class="uk-form-controls">
308 - <select name="zdzCode" required> 308 + <select name="zdzCode" >
309 </select> 309 </select>
310 </div> 310 </div>
311 </div> 311 </div>
@@ -425,7 +425,7 @@ @@ -425,7 +425,7 @@
425 <div class="uk-form-row"> 425 <div class="uk-form-row">
426 <label class="uk-form-label">起点站</label> 426 <label class="uk-form-label">起点站</label>
427 <div class="uk-form-controls"> 427 <div class="uk-form-controls">
428 - <select name="qdzCode" required> 428 + <select name="qdzCode" >
429 </select> 429 </select>
430 </div> 430 </div>
431 </div> 431 </div>
@@ -434,7 +434,7 @@ @@ -434,7 +434,7 @@
434 <div class="uk-form-row"> 434 <div class="uk-form-row">
435 <label class="uk-form-label">终点站</label> 435 <label class="uk-form-label">终点站</label>
436 <div class="uk-form-controls"> 436 <div class="uk-form-controls">
437 - <select name="zdzCode" required> 437 + <select name="zdzCode" >
438 </select> 438 </select>
439 </div> 439 </div>
440 </div> 440 </div>
@@ -524,11 +524,14 @@ @@ -524,11 +524,14 @@
524 <script> 524 <script>
525 (function () { 525 (function () {
526 var modal = '#schedule-addsch-modal', 526 var modal = '#schedule-addsch-modal',
527 - sch, stationRoutes, parks, information,carsArray; 527 + sch, stationRoutes, parks, information,carsArray, st_park_data;
528 528
529 $(modal).on('init', function (e, data) { 529 $(modal).on('init', function (e, data) {
530 e.stopPropagation(); 530 e.stopPropagation();
531 sch = data.sch; 531 sch = data.sch;
  532 +
  533 + //站到场数据
  534 + st_park_data = gb_data_basic.get_stat_park_data()[sch.xlBm];
532 //站点路由 535 //站点路由
533 stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) { 536 stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) {
534 return a.stationRouteCode - b.stationRouteCode; 537 return a.stationRouteCode - b.stationRouteCode;
@@ -537,6 +540,8 @@ @@ -537,6 +540,8 @@
537 parks = gb_data_basic.simpleParksArray(); 540 parks = gb_data_basic.simpleParksArray();
538 //线路标准 541 //线路标准
539 information = gb_data_basic.getLineInformation(sch.xlBm); 542 information = gb_data_basic.getLineInformation(sch.xlBm);
  543 + //停车场排序,常用的放前面
  544 + parks = sort_parks(parks, information, st_park_data);
540 //车辆信息 545 //车辆信息
541 carsArray = gb_data_basic.carsArray(); 546 carsArray = gb_data_basic.carsArray();
542 547
@@ -579,8 +584,10 @@ @@ -579,8 +584,10 @@
579 opts += '<option value="' + this.stationCode + '">' + this.stationName + '</option>' 584 opts += '<option value="' + this.stationCode + '">' + this.stationName + '</option>'
580 }); 585 });
581 //park options 586 //park options
582 - for (var code in parks)  
583 - park_opts += '<option value="' + code + '">' + parks[code] + '</option>'; 587 + for(var i=0,p;p=parks[i++];)
  588 + park_opts += '<option value="' + p.code + '">' + p.name + '</option>';
  589 + /*for (var code in parks)
  590 + park_opts += '<option value="' + code + '">' + parks[code] + '</option>';*/
584 591
585 var qdz = $('[name=qdzCode]', f), zdz = $('[name=zdzCode]', f); 592 var qdz = $('[name=qdzCode]', f), zdz = $('[name=zdzCode]', f);
586 var time, mileage; 593 var time, mileage;
@@ -922,8 +929,10 @@ @@ -922,8 +929,10 @@
922 929
923 //park options 930 //park options
924 var park_opts; 931 var park_opts;
925 - for (var code in parks)  
926 - park_opts += '<option value="' + code + '">' + parks[code] + '</option>'; 932 + for(var i=0,p;p=parks[i++];)
  933 + park_opts += '<option value="' + p.code + '">' + p.name + '</option>';
  934 + /*for (var code in parks)
  935 + park_opts += '<option value="' + code + '">' + parks[code] + '</option>';*/
927 $('[name=qdzCode]', f).html(park_opts); 936 $('[name=qdzCode]', f).html(park_opts);
928 $('[name=zdzCode]', f).html(park_opts); 937 $('[name=zdzCode]', f).html(park_opts);
929 if(sch.bcType=='in'){ 938 if(sch.bcType=='in'){
@@ -981,6 +990,44 @@ @@ -981,6 +990,44 @@
981 } 990 }
982 } 991 }
983 992
  993 +
  994 + /**
  995 + * 停车场排序
  996 + * @param parks 停车场 code 2 name
  997 + * @param information 线路标准
  998 + * @param st_park_data 站到场
  999 + */
  1000 + function sort_parks(parks, information, st_park_data) {
  1001 + var array = [], names=[];
  1002 + for(var code in parks){
  1003 + array.push({code: code, name: parks[code]});
  1004 + }
  1005 +
  1006 + if(st_park_data && st_park_data.length > 0){
  1007 + $.each(st_park_data, function () {
  1008 + names.push(this.parkName);
  1009 + });
  1010 + }
  1011 +
  1012 + //debugger
  1013 + array.sort(function (a, b) {
  1014 + if(a.code==information.carPark)
  1015 + return -1;
  1016 + if(b.code==information.carPark)
  1017 + return 1;
  1018 +
  1019 + var ai = names.indexOf(a.name),
  1020 + bi = names.indexOf(b.name);
  1021 +
  1022 + if(ai!=-1 && bi==-1)
  1023 + return -1;
  1024 + else if(ai==-1 && bi!=-1)
  1025 + return 1;
  1026 + else
  1027 + return a.name.localeCompare(b.name);
  1028 + });
  1029 + return array;
  1030 + }
984 })(); 1031 })();
985 </script> 1032 </script>
986 </div> 1033 </div>
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/lj_zrw.html
@@ -303,10 +303,10 @@ @@ -303,10 +303,10 @@
303 var xlBm = $('[name=lineSelect]', f).val(); 303 var xlBm = $('[name=lineSelect]', f).val();
304 var xlName = $('[name=lineSelect]', f).find("option:selected").text(); 304 var xlName = $('[name=lineSelect]', f).find("option:selected").text();
305 var lpName = $('[name=lpName]', f).val(); 305 var lpName = $('[name=lpName]', f).val();
306 - sch = {xlBm: xlBm,xlName: xlName, lpName: lpName}; 306 + sch = {xlBm: xlBm,xlName: xlName, lpName: lpName, zdsj: moment().format('HH:mm')};
307 } 307 }
308 308
309 - open_modal(folder + '/add_temp_sch.html', { 309 + open_modal(folder + '/temp_sch/main.html', {
310 sch: sch 310 sch: sch
311 }, modal_opts); 311 }, modal_opts);
312 }; 312 };
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/add_temp_sch_old.html renamed to src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/temp_sch/add_normal.html
1 -<div class="uk-modal ct-form-modal ct_move_modal" id="schedule-addsch-modal">  
2 - <div class="uk-modal-dialog">  
3 - <a href="" class="uk-modal-close uk-close"></a>  
4 - <div class="uk-modal-header">  
5 - <h2>新增临加班次</h2></div>  
6 - <form class="uk-form uk-form-horizontal">  
7 - </form>  
8 - </div>  
9 -  
10 - <script id="schedule-addsch-form-temp" type="text/html">  
11 - <div class="uk-grid">  
12 - <div class="uk-width-1-2">  
13 - <div class="uk-form-row">  
14 - <label class="uk-form-label">班次类型</label>  
15 - <div class="uk-form-controls">  
16 - <select class="form-control nt-dictionary" name="bcType" data-code="{{bcType}}"  
17 - data-group=ScheduleType></select>  
18 - </div>  
19 - </div>  
20 - </div>  
21 - <div class="uk-width-1-2">  
22 - <div class="uk-form-row">  
23 - <label class="uk-form-label">上下行</label>  
24 - <div class="uk-form-controls">  
25 - <select name="xlDir">  
26 - <option value="0">上行</option>  
27 - <option value="1">下行</option>  
28 - </select>  
29 - </div>  
30 - </div>  
31 - </div>  
32 - </div>  
33 - <div class="uk-grid">  
34 - <div class="uk-width-1-2">  
35 - <div class="uk-form-row">  
36 - <label class="uk-form-label">起点站</label>  
37 - <div class="uk-form-controls">  
38 - <select name="qdzCode" required>  
39 - </select>  
40 - </div>  
41 - </div>  
42 - </div>  
43 - <div class="uk-width-1-2">  
44 - <div class="uk-form-row">  
45 - <label class="uk-form-label">终点站</label>  
46 - <div class="uk-form-controls">  
47 - <select name="zdzCode" required>  
48 - </select>  
49 - </div>  
50 - </div>  
51 - </div>  
52 - </div>  
53 - <div class="uk-grid">  
54 - <div class="uk-width-1-2">  
55 - <div class="uk-form-row">  
56 - <label class="uk-form-label">开始时间</label>  
57 - <div class="uk-form-controls">  
58 - <input type="time" value="{{zdsj}}" name="fcsj" required>  
59 - </div>  
60 - </div>  
61 - </div>  
62 - <div class="uk-width-1-2">  
63 - <div class="uk-form-row">  
64 - <label class="uk-form-label">结束时间</label>  
65 - <div class="uk-form-controls">  
66 - <input type="time" name="zdsj" required>  
67 - </div>  
68 - </div>  
69 - </div>  
70 - </div>  
71 - <div class="uk-grid">  
72 - <div class="uk-width-1-2">  
73 - <div class="uk-form-row">  
74 - <label class="uk-form-label">车辆</label>  
75 - <div class="uk-form-controls">  
76 - <div class="uk-autocomplete uk-form car-autocom">  
77 - <input type="text" value="{{clZbh}}" name="clZbh" required>  
78 - </div>  
79 - </div>  
80 - </div>  
81 - </div>  
82 - <div class="uk-width-1-2">  
83 - <div class="uk-form-row">  
84 - <label class="uk-form-label">里程</label>  
85 - <div class="uk-form-controls">  
86 - <input type="text" name="jhlc" value="{{jhlc}}" max=222 data-fv-lessthan-inclusive="false"  
87 - required>  
88 - </div>  
89 - </div>  
90 - </div>  
91 - </div>  
92 - <div class="uk-grid">  
93 - <div class="uk-width-1-2">  
94 - <div class="uk-form-row">  
95 - <label class="uk-form-label">驾驶员  
96 - <!--<i class="uk-icon-question-circle" data-uk-tooltip title="如果有驾驶员未提示,请至后台“基础信息 -人员信息”里纠正该员工的“工种”类别 "></i>--></label>  
97 - <div class="uk-form-controls">  
98 - <div class="uk-autocomplete uk-form jsy-autocom">  
99 - <input type="text" value="{{jGh}}/{{jName}}" name="jsy" required>  
100 - </div>  
101 - </div>  
102 - </div>  
103 - </div>  
104 - <div class="uk-width-1-2">  
105 - <div class="uk-form-row">  
106 - <label class="uk-form-label">售票员</label>  
107 - <div class="uk-form-controls">  
108 - <div class="uk-autocomplete uk-form spy-autocom">  
109 - <input type="text" name="spy" value="{{sGh}}/{{sName}}">  
110 - </div>  
111 - </div>  
112 - </div>  
113 - </div>  
114 - </div>  
115 - <div class="uk-modal-footer uk-text-right" style="margin-bottom: -20px;">  
116 - <button type="button" class="uk-button uk-modal-close">取消</button>  
117 - <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button>  
118 - </div>  
119 - </script>  
120 -  
121 - <script>  
122 - (function () {  
123 - var modal = '#schedule-addsch-modal',  
124 - sch, stationRoutes, parks, information;  
125 -  
126 - var normalInfo = [];  
127 - $(modal).on('init', function (e, data) {  
128 - e.stopPropagation();  
129 - sch = data.sch;  
130 - //normal 班次里程和耗时  
131 - var list = gb_common.get_vals(gb_schedule_table.findScheduleByLine(sch.xlBm));  
132 - var upPlan = getNormalSch(list, 0)  
133 - , downPlan = getNormalSch(list, 1);  
134 - normalInfo[0] = {time: upPlan.bcsj, mileage: upPlan.jhlc};  
135 - normalInfo[1] = {time: downPlan.bcsj, mileage: downPlan.jhlc};  
136 -  
137 -  
138 - var formHtml = template('schedule-addsch-form-temp', sch);  
139 - $('form', modal).html(formHtml);  
140 - //字典转换  
141 - dictionaryUtils.transformDom($('.nt-dictionary', modal));  
142 -  
143 - //----------- Autocomplete --------------  
144 - $.get('/basic/cars', function (rs) {  
145 - //车辆  
146 - gb_common.carAutocomplete($('.car-autocom', modal), rs);  
147 - });  
148 - //驾驶员  
149 - gb_common.personAutocomplete($('.jsy-autocom', modal));  
150 -  
151 - //售票员  
152 - gb_common.personAutocomplete($('.spy-autocom', modal));  
153 -  
154 - //站点路由  
155 - stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) {  
156 - return a.stationRouteCode - b.stationRouteCode;  
157 - }), 'directions');  
158 - //停车场  
159 - $.get('/basic/parks', function (rs) {  
160 - parks = rs;  
161 - });  
162 - //线路标准  
163 - information = gb_data_basic.getLineInformation(sch.xlBm);  
164 -  
165 - //submit  
166 - var f = $('form', modal).formValidation(gb_form_validation_opts);  
167 - f.on('success.form.fv', function (e) {  
168 - disabled_submit_btn(this);  
169 - e.preventDefault();  
170 - var data = $(this).serializeJSON();  
171 - data.xlBm = sch.xlBm;  
172 - data.xlName = sch.xlName;  
173 - data.lpName = sch.lpName;  
174 - //拆分驾驶员工号和姓名  
175 - data.jGh = data.jsy.split('/')[0];  
176 - data.jName = data.jsy.split('/')[1];  
177 - delete data.jsy;  
178 - //拆分售票员工号和姓名  
179 - if (data.sGh != null) {  
180 - data.sGh = data.spy.split('/')[0];  
181 - data.sName = data.spy.split('/')[1];  
182 - delete data.spy;  
183 - }  
184 -  
185 - //公司信息  
186 - var line = gb_data_basic.findLineByCodes([data.xlBm]);  
187 - if(line && line.length > 0){  
188 - line = line[0];  
189 - data.gsBm = line.company;  
190 - data.fgsBm = line.brancheCompany;  
191 - }  
192 -  
193 - gb_common.$post('/realSchedule', data, function (rs) {  
194 - //插入  
195 - gb_schedule_table.insertSchedule(rs.t, rs.ts);  
196 - $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: rs.t});  
197 - UIkit.modal(modal).hide();  
198 - notify_succ('新增临加班次成功');  
199 - });  
200 - });  
201 -  
202 - //班次类型 和 上下行切换  
203 - $('[name=bcType],[name=xlDir]', f).on('change', function () {  
204 - var bcType_e = $('[name=bcType]', f)  
205 - , xlDir_e = $('[name=xlDir]', f);  
206 -  
207 - var routes = stationRoutes[xlDir_e.val()]  
208 - , lastCode = routes[routes.length - 1].stationCode  
209 - , opts = '', park_opts = '';  
210 - //station options  
211 - $.each(routes, function () {  
212 - opts += '<option value="' + this.stationCode + '">' + this.stationName + '</option>'  
213 - });  
214 - //park options  
215 - for (var code in parks)  
216 - park_opts += '<option value="' + code + '">' + parks[code] + '</option>';  
217 -  
218 - var qdz = $('[name=qdzCode]', f), zdz = $('[name=zdzCode]', f);  
219 - var time, mileage;  
220 - switch (bcType_e.val()) {  
221 - case 'out':  
222 - qdz.html(park_opts).val(information.carPark);  
223 - zdz.html(opts);  
224 - //出场结束时间  
225 - time = xlDir_e.val() == 0 ? information.upOutTimer : information.downOutTimer;  
226 - mileage = xlDir_e.val() == 0 ? information.upOutMileage : information.downOutMileage;  
227 - break;  
228 - case 'in':  
229 - qdz.html(opts);  
230 - zdz.html(park_opts).val(information.carPark);  
231 - //进场结束时间  
232 - time = xlDir_e.val() == 0 ? information.upInTimer : information.downInTimer;  
233 - mileage = xlDir_e.val() == 0 ? information.upInMileage : information.downInMileage;  
234 - break;  
235 - default:  
236 - qdz.html(opts);  
237 - zdz.html(opts).val(lastCode);  
238 - time = xlDir_e.val() == 0?normalInfo[0].time:normalInfo[1].time;  
239 - mileage = xlDir_e.val() == 0?normalInfo[0].mileage:normalInfo[1].mileage;  
240 - }  
241 -  
242 - setEndTime(time);  
243 - $('[name=jhlc]', f).val(mileage);  
244 - }).trigger('change');  
245 -  
246 -  
247 - function setEndTime(diff) {  
248 - var et = moment($('[name=fcsj]', f).val(), 'HH:mm').add(diff, 'minutes').format('HH:mm');  
249 - $('[name=zdsj]', f).val(et);  
250 - }  
251 - });  
252 -  
253 - function getNormalSch(list, updown) {  
254 - var sch;  
255 - $.each(list, function () {  
256 - if (this.bcType == 'normal' && this.xlDir == updown) {  
257 - sch = this;  
258 - return false;  
259 - }  
260 - });  
261 -  
262 - return sch;  
263 - }  
264 - })();  
265 - </script>  
266 -</div> 1 +<!-- 临加班次form -->
  2 +<script id="add_normal_sch-form-temp" type="text/html">
  3 + <form class="uk-form uk-form-horizontal add-sch-form">
  4 + <div class="uk-grid">
  5 + <div class="uk-width-1-2">
  6 + <div class="uk-form-row">
  7 + <label class="uk-form-label">班次类型</label>
  8 + <div class="uk-form-controls">
  9 + <select class="form-control nt-dictionary" name="bcType" data-code="{{bcType}}"
  10 + data-group=ScheduleType></select>
  11 + </div>
  12 + </div>
  13 + </div>
  14 + <div class="uk-width-1-2">
  15 + <div class="uk-form-row">
  16 + <label class="uk-form-label">上下行</label>
  17 + <div class="uk-form-controls">
  18 + <select name="xlDir">
  19 + <option value="0">上行</option>
  20 + <option value="1">下行</option>
  21 + </select>
  22 + </div>
  23 + </div>
  24 + </div>
  25 + </div>
  26 + <div class="uk-grid">
  27 + <div class="uk-width-1-2">
  28 + <div class="uk-form-row">
  29 + <label class="uk-form-label">起点站</label>
  30 + <div class="uk-form-controls">
  31 + <select name="qdzCode">
  32 + </select>
  33 + </div>
  34 + </div>
  35 + </div>
  36 + <div class="uk-width-1-2">
  37 + <div class="uk-form-row">
  38 + <label class="uk-form-label">终点站</label>
  39 + <div class="uk-form-controls">
  40 + <select name="zdzCode">
  41 + </select>
  42 + </div>
  43 + </div>
  44 + </div>
  45 + </div>
  46 + <div class="uk-grid">
  47 + <div class="uk-width-1-2">
  48 + <div class="uk-form-row">
  49 + <label class="uk-form-label">开始时间</label>
  50 + <div class="uk-form-controls">
  51 + <input type="time" value="{{zdsjActual==null?zdsj:zdsjActual}}" name="fcsj" required>
  52 + </div>
  53 + </div>
  54 + </div>
  55 + <div class="uk-width-1-2">
  56 + <div class="uk-form-row">
  57 + <label class="uk-form-label">结束时间</label>
  58 + <div class="uk-form-controls">
  59 + <input type="time" name="zdsj" required>
  60 + </div>
  61 + </div>
  62 + </div>
  63 + </div>
  64 + <div class="uk-grid">
  65 + <div class="uk-width-1-2">
  66 + <div class="uk-form-row">
  67 + <label class="uk-form-label">车辆</label>
  68 + <div class="uk-form-controls">
  69 + <div class="uk-autocomplete uk-form car-autocom">
  70 + <input type="text" value="{{clZbh}}" name="clZbh" required>
  71 + </div>
  72 + </div>
  73 + </div>
  74 + </div>
  75 + <div class="uk-width-1-2">
  76 + <div class="uk-form-row">
  77 + <label class="uk-form-label">里程</label>
  78 + <div class="uk-form-controls">
  79 + <input type="text" name="jhlc" value="{{jhlc}}" max=222 data-fv-lessthan-inclusive="false"
  80 + required>
  81 + </div>
  82 + </div>
  83 + </div>
  84 + </div>
  85 + <div class="uk-grid">
  86 + <div class="uk-width-1-2">
  87 + <div class="uk-form-row">
  88 + <label class="uk-form-label">驾驶员</label>
  89 + <div class="uk-form-controls">
  90 + <div class="uk-autocomplete uk-form jsy-autocom">
  91 + <input type="text" value="{{jGh}}/{{jName}}" name="jsy" required>
  92 + </div>
  93 + </div>
  94 + </div>
  95 + </div>
  96 + <div class="uk-width-1-2">
  97 + <div class="uk-form-row">
  98 + <label class="uk-form-label">售票员</label>
  99 + <div class="uk-form-controls">
  100 + <div class="uk-autocomplete uk-form spy-autocom">
  101 + <input type="text" name="spy" value="{{sGh}}/{{sName}}">
  102 + </div>
  103 + </div>
  104 + </div>
  105 + </div>
  106 + </div>
  107 + <div class="uk-grid">
  108 + <div class="uk-width-1-1">
  109 + <div class="uk-form-row">
  110 + <label class="uk-form-label">备注</label>
  111 + <div class="uk-form-controls">
  112 + <div class="uk-autocomplete uk-form remarks-autocom">
  113 + <input type="text" name="remarks">
  114 + </div>
  115 + </div>
  116 + </div>
  117 + </div>
  118 + </div>
  119 + <div class="uk-modal-footer uk-text-right" style="margin-bottom: -20px;">
  120 + <span class="ct_line_lp_badge"></span>
  121 + <button type="button" class="uk-button uk-modal-close">取消</button>
  122 + <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存
  123 + </button>
  124 + </div>
  125 + </form>
  126 +</script>
  127 +<script>
  128 + (function () {
  129 + var wrap = '#schedule-addsch-modal .normalCont', sch, nf, submitFun;
  130 +
  131 + $(wrap).on('init', function (e, data) {
  132 + e.stopPropagation();
  133 + sch = data.sch;
  134 + submitFun = data.submitFun;
  135 +
  136 + nf = addForm();
  137 + //提交
  138 + nf.on('success.form.fv', function (e) {
  139 + e.preventDefault();
  140 +
  141 + disabled_submit_btn(nf);
  142 + var data = nf.serializeJSON();
  143 + submitFun(data, function (rs) {
  144 + //前端数据更新
  145 + gb_schedule_table.insertSchedule(rs.t, rs.ts);
  146 + $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: rs.t});
  147 + try {
  148 + if(rs.t.bcType=='in' || rs.t.bcType=='out')
  149 + gb_data_basic.reload_stat_park_data();
  150 + }catch (e){
  151 + console.log(e);}
  152 + UIkit.modal('#schedule-addsch-modal').hide();
  153 + });
  154 + });
  155 + $('.ct_line_lp_badge', nf).html(sch.xlName + ',&nbsp;'+sch.lpName);
  156 + });
  157 +
  158 + function addForm() {
  159 + var htmlStr = template('add_normal_sch-form-temp', sch);
  160 + var f = $(htmlStr);
  161 + $(wrap).append(f);
  162 + //字典转换
  163 + dictionaryUtils.transformDom($('.nt-dictionary', f));
  164 + //validation
  165 + f.formValidation({framework: 'uikit', locale: 'zh_CN'});
  166 + //autocomp
  167 + f.trigger('init-autoCom');
  168 +
  169 + $f('bcType', f).trigger('change');
  170 + return f;
  171 + }
  172 +
  173 + function $f(name, f) {
  174 + return $('[name=' + name + ']', f);
  175 + }
  176 + })();
  177 +</script>
267 \ No newline at end of file 178 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/temp_sch/add_park_to_park.html 0 → 100644
  1 +<!-- 临加场到场班次form -->
  2 +<script id="add_park_to_park_sch-form-temp" type="text/html">
  3 + <form class="uk-form uk-form-horizontal">
  4 + <div class="uk-grid">
  5 + <div class="uk-width-1-2">
  6 + <div class="uk-form-row">
  7 + <label class="uk-form-label">班次类型</label>
  8 + <div class="uk-form-controls">
  9 + <select class="form-control" name="bcType">
  10 + <option value="in">进场</option>
  11 + </select>
  12 + </div>
  13 + </div>
  14 + </div>
  15 + <div class="uk-width-1-2">
  16 + <div class="uk-form-row">
  17 + <label class="uk-form-label">上下行</label>
  18 + <div class="uk-form-controls">
  19 + <select name="xlDir">
  20 + <option value="0">上行</option>
  21 + <option value="1">下行</option>
  22 + </select>
  23 + </div>
  24 + </div>
  25 + </div>
  26 + </div>
  27 + <div class="uk-grid">
  28 + <div class="uk-width-1-2">
  29 + <div class="uk-form-row">
  30 + <label class="uk-form-label">起点站</label>
  31 + <div class="uk-form-controls">
  32 + <select name="qdzCode">
  33 + </select>
  34 + </div>
  35 + </div>
  36 + </div>
  37 + <div class="uk-width-1-2">
  38 + <div class="uk-form-row">
  39 + <label class="uk-form-label">终点站</label>
  40 + <div class="uk-form-controls">
  41 + <select name="zdzCode">
  42 + </select>
  43 + </div>
  44 + </div>
  45 + </div>
  46 + </div>
  47 + <div class="uk-grid">
  48 + <div class="uk-width-1-2">
  49 + <div class="uk-form-row">
  50 + <label class="uk-form-label">开始时间</label>
  51 + <div class="uk-form-controls">
  52 + <input type="time" value="{{zdsjActual==null?zdsj:zdsjActual}}" name="fcsj" required>
  53 + </div>
  54 + </div>
  55 + </div>
  56 + <div class="uk-width-1-2">
  57 + <div class="uk-form-row">
  58 + <label class="uk-form-label">结束时间</label>
  59 + <div class="uk-form-controls">
  60 + <input type="time" name="zdsj" required>
  61 + </div>
  62 + </div>
  63 + </div>
  64 + </div>
  65 + <div class="uk-grid">
  66 + <div class="uk-width-1-2">
  67 + <div class="uk-form-row">
  68 + <label class="uk-form-label">车辆</label>
  69 + <div class="uk-form-controls">
  70 + <div class="uk-autocomplete uk-form car-autocom">
  71 + <input type="text" value="{{clZbh}}" name="clZbh" required>
  72 + </div>
  73 + </div>
  74 + </div>
  75 + </div>
  76 + <div class="uk-width-1-2">
  77 + <div class="uk-form-row">
  78 + <label class="uk-form-label">里程</label>
  79 + <div class="uk-form-controls">
  80 + <input type="text" name="jhlc" value="{{jhlc}}" max=222 data-fv-lessthan-inclusive="false"
  81 + required>
  82 + </div>
  83 + </div>
  84 + </div>
  85 + </div>
  86 + <div class="uk-grid">
  87 + <div class="uk-width-1-2">
  88 + <div class="uk-form-row">
  89 + <label class="uk-form-label">驾驶员</label>
  90 + <div class="uk-form-controls">
  91 + <div class="uk-autocomplete uk-form jsy-autocom">
  92 + <input type="text" value="{{jGh}}/{{jName}}" name="jsy" required>
  93 + </div>
  94 + </div>
  95 + </div>
  96 + </div>
  97 + <div class="uk-width-1-2">
  98 + <div class="uk-form-row">
  99 + <label class="uk-form-label">售票员</label>
  100 + <div class="uk-form-controls">
  101 + <div class="uk-autocomplete uk-form spy-autocom">
  102 + <input type="text" name="spy" value="{{sGh}}/{{sName}}">
  103 + </div>
  104 + </div>
  105 + </div>
  106 + </div>
  107 + </div>
  108 + <div class="uk-grid">
  109 + <div class="uk-width-1-1">
  110 + <div class="uk-form-row">
  111 + <label class="uk-form-label">备注</label>
  112 + <div class="uk-form-controls">
  113 + <div class="uk-autocomplete uk-form remarks-autocom">
  114 + <input type="text" name="remarks">
  115 + </div>
  116 + </div>
  117 + </div>
  118 + </div>
  119 + </div>
  120 + <div class="uk-modal-footer uk-text-right" style="margin-bottom: -20px;">
  121 + <span class="ct_line_lp_badge"></span>
  122 + <button type="button" class="uk-button uk-modal-close">取消</button>
  123 + <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存
  124 + </button>
  125 + </div>
  126 + </form>
  127 +</script>
  128 +
  129 +<script>
  130 + (function () {
  131 + var wrap = '#schedule-addsch-modal .parkToParkCont', sch, nf, submitFun,parks,carsArray;
  132 +
  133 + $(wrap).on('init', function (e, data) {
  134 + e.stopPropagation();
  135 + sch = data.sch;
  136 + submitFun = data.submitFun;
  137 + parks = data.parks;
  138 + carsArray = data.carsArray;
  139 +
  140 + nf = addForm();
  141 + //提交
  142 + nf.on('success.form.fv', function (e) {
  143 + e.preventDefault();
  144 +
  145 + disabled_submit_btn(nf);
  146 + var data = nf.serializeJSON();
  147 + submitFun(data, function (rs) {
  148 + //前端数据更新
  149 + gb_schedule_table.insertSchedule(rs.t, rs.ts);
  150 + $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: rs.t});
  151 + try {
  152 + if(rs.t.bcType=='in' || rs.t.bcType=='out')
  153 + gb_data_basic.reload_stat_park_data();
  154 + }catch (e){
  155 + console.log(e);}
  156 + UIkit.modal('#schedule-addsch-modal').hide();
  157 + });
  158 + });
  159 + $('.ct_line_lp_badge', nf).html(sch.xlName + ',&nbsp;'+sch.lpName);
  160 + $f('zdzCode',nf).trigger('change');
  161 + });
  162 +
  163 + function addForm() {
  164 + var htmlStr = template('add_park_to_park_sch-form-temp', sch);
  165 + var f = $(htmlStr);
  166 + $(wrap).append(f);
  167 + //字典转换
  168 + dictionaryUtils.transformDom($('.nt-dictionary', f));
  169 + //validation
  170 + f.formValidation({framework: 'uikit', locale: 'zh_CN'});
  171 + //autocomp
  172 + initAutoComp(f);
  173 +
  174 + //起终点都是停车场
  175 + var park_opts;
  176 + for(var i=0,p;p=parks[i++];)
  177 + park_opts += '<option value="' + p.code + '">' + p.name + '</option>';
  178 + $f('qdzCode', f).html(park_opts);
  179 + $f('zdzCode', f).html(park_opts);
  180 +
  181 + if(sch.bcType=='in'){
  182 + $f('qdzCode', f).val(sch.zdzCode);
  183 + //选中的也是场到场班次
  184 + if(gb_data_basic.getCarparkByCode(sch.qdzCode) != null){
  185 + //默认做返程
  186 + $f('zdzCode', f).val(sch.qdzCode);
  187 + $f('remarks', f).val(sch.remarks);
  188 + $f('jhlc', f).val(sch.jhlc);
  189 + //时间
  190 + var zdsj = moment(sch.zdsj, 'HH:mm').add('minutes', sch.bcsj).format('HH:mm');
  191 + $f('zdsj', f).val(zdsj);
  192 + }
  193 + }
  194 + return f;
  195 + }
  196 +
  197 + function $f(name, f) {
  198 + return $('[name=' + name + ']', f);
  199 + }
  200 +
  201 + function initAutoComp(f) {
  202 + //车辆
  203 + if(carsArray)
  204 + gb_common.carAutocomplete($('.car-autocom', f), carsArray);
  205 + //驾驶员
  206 + gb_common.personAutocomplete($('.jsy-autocom', f));
  207 + //售票员
  208 + gb_common.personAutocomplete($('.spy-autocom', f));
  209 + //备注补全
  210 + gb_common.remarksAutocomplete($('.remarks-autocom', f));
  211 + }
  212 +
  213 + })();
  214 +</script>
0 \ No newline at end of file 215 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/temp_sch/add_two_way.html 0 → 100644
  1 +<!-- 线路上往返临加班次 -->
  2 +<script id="add_toAndFro_sch-form-temp" type="text/html">
  3 + <form class="uk-form uk-form-horizontal add-sch-form one_form">
  4 + <div class="uk-grid">
  5 + <div class="uk-width-1-2">
  6 + <div class="uk-form-row">
  7 + <label class="uk-form-label">班次类型</label>
  8 + <div class="uk-form-controls">
  9 + <select class="form-control nt-dictionary" name="bcType" data-code="{{bcType}}"
  10 + data-group=ScheduleType></select>
  11 + </div>
  12 + </div>
  13 + </div>
  14 + <div class="uk-width-1-2">
  15 + <div class="uk-form-row">
  16 + <label class="uk-form-label">上下行</label>
  17 + <div class="uk-form-controls">
  18 + <select name="xlDir">
  19 + <option value="0">上行</option>
  20 + <option value="1">下行</option>
  21 + </select>
  22 + </div>
  23 + </div>
  24 + </div>
  25 + </div>
  26 + <div class="uk-grid">
  27 + <div class="uk-width-1-2">
  28 + <div class="uk-form-row">
  29 + <label class="uk-form-label">起点站</label>
  30 + <div class="uk-form-controls">
  31 + <select name="qdzCode" >
  32 + </select>
  33 + </div>
  34 + </div>
  35 + </div>
  36 + <div class="uk-width-1-2">
  37 + <div class="uk-form-row">
  38 + <label class="uk-form-label">终点站</label>
  39 + <div class="uk-form-controls">
  40 + <select name="zdzCode" >
  41 + </select>
  42 + </div>
  43 + </div>
  44 + </div>
  45 + </div>
  46 + <div class="uk-grid">
  47 + <div class="uk-width-1-2">
  48 + <div class="uk-form-row">
  49 + <label class="uk-form-label">开始时间</label>
  50 + <div class="uk-form-controls">
  51 + <input type="time" value="{{zdsj}}" name="fcsj" required>
  52 + </div>
  53 + </div>
  54 + </div>
  55 + <div class="uk-width-1-2">
  56 + <div class="uk-form-row">
  57 + <label class="uk-form-label">结束时间</label>
  58 + <div class="uk-form-controls">
  59 + <input type="time" name="zdsj" required>
  60 + </div>
  61 + </div>
  62 + </div>
  63 + </div>
  64 + <div class="uk-grid">
  65 + <div class="uk-width-1-2">
  66 + <div class="uk-form-row">
  67 + <label class="uk-form-label">车辆</label>
  68 + <div class="uk-form-controls">
  69 + <div class="uk-autocomplete uk-form car-autocom">
  70 + <input type="text" value="{{clZbh}}" name="clZbh" required>
  71 + </div>
  72 + </div>
  73 + </div>
  74 + </div>
  75 + <div class="uk-width-1-2">
  76 + <div class="uk-form-row">
  77 + <label class="uk-form-label">里程</label>
  78 + <div class="uk-form-controls">
  79 + <input type="text" name="jhlc" value="{{jhlc}}" max=222 data-fv-lessthan-inclusive="false"
  80 + required>
  81 + </div>
  82 + </div>
  83 + </div>
  84 + </div>
  85 + <div class="uk-grid">
  86 + <div class="uk-width-1-2">
  87 + <div class="uk-form-row">
  88 + <label class="uk-form-label">驾驶员</label>
  89 + <div class="uk-form-controls">
  90 + <div class="uk-autocomplete uk-form jsy-autocom">
  91 + <input type="text" value="{{jGh}}/{{jName}}" name="jsy" required>
  92 + </div>
  93 + </div>
  94 + </div>
  95 + </div>
  96 + <div class="uk-width-1-2">
  97 + <div class="uk-form-row">
  98 + <label class="uk-form-label">售票员</label>
  99 + <div class="uk-form-controls">
  100 + <div class="uk-autocomplete uk-form spy-autocom">
  101 + <input type="text" name="spy" value="{{sGh}}/{{sName}}">
  102 + </div>
  103 + </div>
  104 + </div>
  105 + </div>
  106 + </div>
  107 + <div class="uk-grid">
  108 + <div class="uk-width-1-1">
  109 + <div class="uk-form-row">
  110 + <label class="uk-form-label">备注</label>
  111 + <div class="uk-form-controls">
  112 + <div class="uk-autocomplete uk-form remarks-autocom">
  113 + <input type="text" name="remarks">
  114 + </div>
  115 + </div>
  116 + </div>
  117 + </div>
  118 + </div>
  119 + </form>
  120 + <hr style="margin-top: 35px;">
  121 + <form class="uk-form uk-form-horizontal add-sch-form two_form">
  122 + <div class="uk-grid">
  123 + <div class="uk-width-1-2">
  124 + <div class="uk-form-row">
  125 + <label class="uk-form-label">班次类型</label>
  126 + <div class="uk-form-controls">
  127 + <select class="form-control nt-dictionary" name="bcType" data-code="{{bcType}}"
  128 + data-group=ScheduleType></select>
  129 + </div>
  130 + </div>
  131 + </div>
  132 + <div class="uk-width-1-2">
  133 + <div class="uk-form-row">
  134 + <label class="uk-form-label">上下行</label>
  135 + <div class="uk-form-controls">
  136 + <select name="xlDir">
  137 + <option value="0">上行</option>
  138 + <option value="1">下行</option>
  139 + </select>
  140 + </div>
  141 + </div>
  142 + </div>
  143 + </div>
  144 + <div class="uk-grid">
  145 + <div class="uk-width-1-2">
  146 + <div class="uk-form-row">
  147 + <label class="uk-form-label">起点站</label>
  148 + <div class="uk-form-controls">
  149 + <select name="qdzCode" >
  150 + </select>
  151 + </div>
  152 + </div>
  153 + </div>
  154 + <div class="uk-width-1-2">
  155 + <div class="uk-form-row">
  156 + <label class="uk-form-label">终点站</label>
  157 + <div class="uk-form-controls">
  158 + <select name="zdzCode" >
  159 + </select>
  160 + </div>
  161 + </div>
  162 + </div>
  163 + </div>
  164 + <div class="uk-grid">
  165 + <div class="uk-width-1-2">
  166 + <div class="uk-form-row">
  167 + <label class="uk-form-label">开始时间</label>
  168 + <div class="uk-form-controls">
  169 + <input type="time" value="{{zdsj}}" name="fcsj" required>
  170 + </div>
  171 + </div>
  172 + </div>
  173 + <div class="uk-width-1-2">
  174 + <div class="uk-form-row">
  175 + <label class="uk-form-label">结束时间</label>
  176 + <div class="uk-form-controls">
  177 + <input type="time" name="zdsj" required>
  178 + </div>
  179 + </div>
  180 + </div>
  181 + </div>
  182 + <div class="uk-grid">
  183 + <div class="uk-width-1-2">
  184 + <div class="uk-form-row">
  185 + <label class="uk-form-label">车辆</label>
  186 + <div class="uk-form-controls">
  187 + <div class="uk-autocomplete uk-form car-autocom">
  188 + <input type="text" value="{{clZbh}}" name="clZbh" required>
  189 + </div>
  190 + </div>
  191 + </div>
  192 + </div>
  193 + <div class="uk-width-1-2">
  194 + <div class="uk-form-row">
  195 + <label class="uk-form-label">里程</label>
  196 + <div class="uk-form-controls">
  197 + <input type="text" name="jhlc" value="{{jhlc}}" max=222 data-fv-lessthan-inclusive="false"
  198 + required>
  199 + </div>
  200 + </div>
  201 + </div>
  202 + </div>
  203 + <div class="uk-grid">
  204 + <div class="uk-width-1-2">
  205 + <div class="uk-form-row">
  206 + <label class="uk-form-label">驾驶员</label>
  207 + <div class="uk-form-controls">
  208 + <div class="uk-autocomplete uk-form jsy-autocom">
  209 + <input type="text" value="{{jGh}}/{{jName}}" name="jsy" required>
  210 + </div>
  211 + </div>
  212 + </div>
  213 + </div>
  214 + <div class="uk-width-1-2">
  215 + <div class="uk-form-row">
  216 + <label class="uk-form-label">售票员</label>
  217 + <div class="uk-form-controls">
  218 + <div class="uk-autocomplete uk-form spy-autocom">
  219 + <input type="text" name="spy" value="{{sGh}}/{{sName}}">
  220 + </div>
  221 + </div>
  222 + </div>
  223 + </div>
  224 + </div>
  225 + <div class="uk-grid">
  226 + <div class="uk-width-1-1">
  227 + <div class="uk-form-row">
  228 + <label class="uk-form-label">备注</label>
  229 + <div class="uk-form-controls">
  230 + <div class="uk-autocomplete uk-form remarks-autocom">
  231 + <input type="text" name="remarks">
  232 + </div>
  233 + </div>
  234 + </div>
  235 + </div>
  236 + </div>
  237 + </form>
  238 +
  239 + <div class="uk-modal-footer uk-text-right" style="margin-bottom: -20px;">
  240 + <span class="ct_line_lp_badge" ></span>
  241 + <button type="button" class="uk-button uk-modal-close">取消</button>
  242 + <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button>
  243 + </div>
  244 +</script>
  245 +
  246 +<script>
  247 + (function () {
  248 + var wrap = '#schedule-addsch-modal .toAndFroCont', sch, f1, f2, submitFun, stationRoutes;
  249 +
  250 + $(wrap).on('init', function (e, data) {
  251 + e.stopPropagation();
  252 + sch = data.sch;
  253 + submitFun = data.submitFun;
  254 + stationRoutes = data.stationRoutes;
  255 +
  256 + var htmlStr = template('add_toAndFro_sch-form-temp', sch);
  257 + $(wrap).append(htmlStr);
  258 + //字典转换
  259 + dictionaryUtils.transformDom($('.nt-dictionary', wrap));
  260 + //validation
  261 + $('.add-sch-form', wrap).formValidation({framework: 'uikit', locale: 'zh_CN'}).trigger('init-autoCom');
  262 + $('.add-sch-form [name=bcType]', wrap).trigger('change');
  263 +
  264 + f1 = $('.add-sch-form.one_form', wrap);
  265 + f2 = $('.add-sch-form.two_form', wrap);
  266 +
  267 + //默认1备注同步到2
  268 + $f('remarks', f1).on('input', function () {
  269 + $f('remarks', f2).val($(this).val());
  270 + });
  271 + //默认1备注同步到2
  272 + $('.remarks-autocom', f1).on('selectitem.uk.autocomplete', function (e, data, acobject) {
  273 + $f('remarks', f2).val(data.value);
  274 + });
  275 + //表单同步
  276 + $(f1).on('ct_callback', synchroFormData).trigger('ct_callback');
  277 + //修改1结束时间
  278 + $f('zdsj',f1).on('input', synchroFormData);
  279 + $('.ct_line_lp_badge', wrap).html(sch.xlName + ',&nbsp;'+sch.lpName);
  280 +
  281 + //表单校验提交相关
  282 + var dataArray;
  283 + var fs = $('.add-sch-form', wrap);
  284 + fs.on('success.form.fv', function (e) {
  285 + e.preventDefault();
  286 + dataArray.push($(this).serializeJSON());
  287 + $(this).data('valid', true);
  288 + if (allValidSuccess()) {
  289 + //开始post
  290 + var i = 0;
  291 + var inArr = [];
  292 + var upArr = [];
  293 + (function () {
  294 + var f = arguments.callee;
  295 + if (i >= dataArray.length) {
  296 + //前端数据更新
  297 + var last = inArr.pop();
  298 + gb_schedule_table.insertSchedule(last, upArr);
  299 + $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: last});
  300 +
  301 + try {
  302 + if(last.bcType=='in' || last.bcType=='out')
  303 + gb_data_basic.reload_stat_park_data();
  304 + }catch (e){
  305 + console.log(e);}
  306 + UIkit.modal('#schedule-addsch-modal').hide();
  307 + return;
  308 + }
  309 + submitFun(dataArray[i], function (rs) {
  310 + inArr.push(rs.t);
  311 + upArr = upArr.concat(rs.ts);
  312 + upArr.push(rs.t);
  313 + i++;
  314 + f();
  315 + });
  316 + })();
  317 + }
  318 + });
  319 + //提交
  320 + $('[type=submit]', wrap).on('click', function () {
  321 + $(this).addClass('disabled').attr('disabled', 'disabled');
  322 + dataArray = [];
  323 + fs.data('valid', false);
  324 + fs.formValidation('validate');
  325 + });
  326 + });
  327 +
  328 + function $f(name, f) {
  329 + return $('[name=' + name + ']', f);
  330 + }
  331 +
  332 + function allValidSuccess() {
  333 + var flag = true;
  334 + $('form.add-sch-form:visible', wrap).each(function (i, f) {
  335 + if (!$(f).data('valid')) {
  336 + flag = false;
  337 + return false;
  338 + }
  339 + });
  340 + return flag;
  341 + }
  342 +
  343 + /**
  344 + * 同步2个表单的数据
  345 + */
  346 + var bcTypes = {'normal': 'normal', 'region': 'region', 'out': 'in', 'in': 'out'};
  347 + var synchroFormData = function () {
  348 + //同步班次类型
  349 + var type = $f('bcType', f1).val();
  350 + if (bcTypes[type])
  351 + $f('bcType', f2).val(bcTypes[type]).trigger('change');
  352 + var updown = $f('xlDir', f1).val();
  353 +
  354 + //1 结束时间 = 2 开始时间
  355 + $f('fcsj', f2).val($f('zdsj', f1).val());
  356 + if (type != 'out' && type != 'in') {
  357 + //走向
  358 + $f('xlDir', f2).val(updown == 0 ? 1 : 0).trigger('change');
  359 +
  360 + //第一个表单终点 = 第二个起点
  361 + var oneZdName = $('[name=zdzCode] option:selected', f1).text();
  362 + $f('qdzCode', f2).val(searchParallelStation(oneZdName, updown == 0 ? 1 : 0));
  363 + //第一个表单起点 = 第二个终点
  364 + var oneQdName = $('[name=qdzCode] option:selected', f1).text();
  365 + $f('zdzCode', f2).val(searchParallelStation(oneQdName, updown == 0 ? 1 : 0)).trigger('change');
  366 + }
  367 + else {
  368 + //进出场走向相同
  369 + $f('xlDir', f2).val(updown).trigger('change');
  370 + //第一个表单终点 = 第二个起点
  371 + $f('qdzCode', f2).val($f('zdzCode', f1).val());
  372 + //第一个表单起点 = 第二个终点
  373 + $f('zdzCode', f2).val($f('qdzCode', f1).val()).trigger('change');
  374 + }
  375 + };
  376 +
  377 +
  378 + //返回另一个走向对应的站点
  379 + function searchParallelStation(stationName, updown) {
  380 + var routes = stationRoutes[updown]
  381 + , len = routes.length;
  382 +
  383 + for (var i = 0; i < len; i++) {
  384 + if (routes[i].stationName == stationName)
  385 + return routes[i].stationCode;
  386 + }
  387 + }
  388 + })();
  389 +</script>
0 \ No newline at end of file 390 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/temp_sch/main.html 0 → 100644
  1 +<div class="uk-modal ct-form-modal ct_move_modal" id="schedule-addsch-modal">
  2 + <div class="uk-modal-dialog" style="width: 800px;">
  3 + <a href="" class="uk-modal-close uk-close"></a>
  4 + <div class="uk-modal-header">
  5 + <h2>新增临加班次</h2></div>
  6 +
  7 + <div class="uk-grid">
  8 + <div class="uk-width-1-4">
  9 + <ul data-uk-switcher="{connect:'#tempScheduleContent'}" class="uk-nav uk-nav-side left_tabs_lg">
  10 + <li data-handle="normal"><a>1、临加班次</a></li>
  11 + <li data-handle="toAndFro"><a>2、往返</a></li>
  12 + <li data-handle="parkToPark"><a>3、场到场</a></li>
  13 + </ul>
  14 + </div>
  15 + <div class="uk-width-3-4">
  16 + <ul id="tempScheduleContent" class="uk-switcher">
  17 + <li class="normalCont"></li>
  18 + <li class="toAndFroCont"></li>
  19 + <li class="parkToParkCont"></li>
  20 + </ul>
  21 + </div>
  22 + </div>
  23 + </div>
  24 +
  25 + <script>
  26 + (function () {
  27 + var modal = '#schedule-addsch-modal',
  28 + sch, stationRoutes, parks, information, carsArray, st_park_data;
  29 +
  30 + $(modal).on('init', function (e, data) {
  31 + e.stopPropagation();
  32 + sch = data.sch;
  33 + //站到场数据
  34 + st_park_data = gb_data_basic.get_stat_park_data()[sch.xlBm];
  35 + //站点路由
  36 + stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) {
  37 + return a.stationRouteCode - b.stationRouteCode;
  38 + }), 'directions');
  39 + //停车场
  40 + parks = gb_data_basic.simpleParksArray();
  41 + //线路标准
  42 + information = gb_data_basic.getLineInformation(sch.xlBm);
  43 + //停车场排序,常用的放前面
  44 + parks = sort_parks(parks, information, st_park_data);
  45 + //车辆信息
  46 + carsArray = gb_data_basic.carsArray();
  47 +
  48 + var st_doms = gb_schedule_context_menu.get_add_sch_doms();
  49 + //normal
  50 + $('.normalCont', modal).html(st_doms.normal_dom)
  51 + .trigger('init', {sch: sch, submitFun: submit_temp_schedule_form});
  52 +
  53 + //to and fro
  54 + $('.toAndFroCont', modal).html(st_doms.two_way_dom)
  55 + .trigger('init', {sch: sch, submitFun: submit_temp_schedule_form, stationRoutes: stationRoutes});
  56 +
  57 + //park to park
  58 + $('.parkToParkCont', modal).html(st_doms.park_to_park_dom)
  59 + .trigger('init', {sch: sch, submitFun: submit_temp_schedule_form, parks: parks, carsArray: carsArray});
  60 + });
  61 +
  62 + //init-autoCom
  63 + $(modal).on('init-autoCom', '.add-sch-form', function () {
  64 + //车辆
  65 + if(carsArray)
  66 + gb_common.carAutocomplete($('.car-autocom', this), carsArray);
  67 + //驾驶员
  68 + gb_common.personAutocomplete($('.jsy-autocom', this));
  69 + //售票员
  70 + gb_common.personAutocomplete($('.spy-autocom', this));
  71 + //备注补全
  72 + gb_common.remarksAutocomplete($('.remarks-autocom', this));
  73 + });
  74 +
  75 + //班次类型 和 上下行 切换事件
  76 + $(modal).on('change', '.add-sch-form [name=bcType],.add-sch-form [name=xlDir]', reCalcInputs_type);
  77 + //起终点站改变事件
  78 + $(modal).on('change', '[name=qdzCode],[name=zdzCode]', reCalcInputs_station);
  79 + //开始时间和公里改变
  80 + $(modal).on('input', '.add-sch-form [name=fcsj],.add-sch-form [name=jhlc]', reCalcEndTime);
  81 +
  82 +
  83 + function reCalcInputs_type() {
  84 + var f = $(this).parents('.add-sch-form');
  85 + var bcType_e = $('[name=bcType]', f)
  86 + , xlDir_e = $('[name=xlDir]', f);
  87 +
  88 + var routes = stationRoutes[xlDir_e.val()]
  89 + , lastCode = routes[routes.length - 1].stationCode
  90 + , opts = '', park_opts = '';
  91 + //station options
  92 + $.each(routes, function () {
  93 + opts += '<option value="' + this.stationCode + '">' + this.stationName + '</option>'
  94 + });
  95 + //park options
  96 + for(var i=0,p;p=parks[i++];)
  97 + park_opts += '<option value="' + p.code + '">' + p.name + '</option>';
  98 +
  99 + var qdz = $('[name=qdzCode]', f), zdz = $('[name=zdzCode]', f);
  100 + //var time, mileage;
  101 + switch (bcType_e.val()) {
  102 + case 'out':
  103 + qdz.html(park_opts).val(information.carPark);
  104 + zdz.html(opts);
  105 + break;
  106 + case 'in':
  107 + qdz.html(opts);
  108 + zdz.html(park_opts).val(information.carPark);
  109 + break;
  110 + default:
  111 + qdz.html(opts);
  112 + zdz.html(opts).val(lastCode);
  113 + }
  114 +
  115 + zdz.trigger('change');
  116 + f.trigger('ct_callback');
  117 + }
  118 +
  119 + function reCalcInputs_station() {
  120 + var f = $(this).parents('form'),
  121 + bcType = $('[name=bcType]', f).val(),
  122 + qdzCode = $('[name=qdzCode]', f).val(),
  123 + zdzCode =$('[name=zdzCode]', f).val(),
  124 + startDate = $('[name=fcsj]', f).val(),
  125 + upDown = $('[name=xlDir]', f).val(), mileage, time;
  126 +
  127 + //从站到场里获取数据
  128 + var stp = search_st_park(f);
  129 + if(stp){
  130 + mileage=bcType=='in'?stp['mileage1']:stp['mileage2'];
  131 + time=bcType=='in'?stp['time1']:stp['time2'];
  132 + }
  133 + else{
  134 + switch (upDown + '_' + bcType) {
  135 + case '0_out'://上行出场
  136 + mileage = information.upOutMileage;
  137 + time = information.upOutTimer;
  138 + break;
  139 + case '1_out'://下行出场
  140 + mileage = information.downOutMileage;
  141 + time = information.downOutTimer;
  142 + break;
  143 + case '0_in'://上行进场
  144 + mileage = information.upInMileage;
  145 + time = information.upInTimer;
  146 + break;
  147 + case '1_in'://下行进场
  148 + mileage = information.downInMileage;
  149 + time = information.downInTimer;
  150 + break;
  151 + default:
  152 +
  153 + var qc_time=upDown==0?information.upTravelTime:information.downTravelTime,
  154 + qc_mileage=upDown==0?information.upMileage:information.downMileage;
  155 + if(is_normal_sch(f)){
  156 + bcType='normal';
  157 + mileage=qc_mileage;
  158 + }
  159 + else{
  160 + bcType='region';
  161 + mileage = calcMileage(stationRoutes[upDown], qdzCode, zdzCode);
  162 + }
  163 +
  164 + time = gb_common.mul(gb_common.accDiv(qc_time, qc_mileage), mileage);
  165 + $('[name=bcType]', f).val(bcType);
  166 + }
  167 + }
  168 +
  169 + $('[name=jhlc]', f).val(mileage);
  170 + var et = moment(startDate, 'HH:mm').add(time, 'minutes');
  171 + $f('zdsj', f).val(et.format('HH:mm'));
  172 + f.trigger('ct_callback');
  173 + }
  174 +
  175 +
  176 + function reCalcEndTime() {
  177 + var f = $(this).parents('.add-sch-form')
  178 + , startDate = $f('fcsj', f).val()//开始时间
  179 + , mileage = $f('jhlc', f).val()//公里
  180 + , type2 = $f('bcType', f).val(),//班次类型
  181 + upDown = $('[name=xlDir]', f).val();
  182 + if (!startDate || !mileage)
  183 + return;
  184 +
  185 + var time;
  186 + //从站到场里获取数据
  187 + var stp = search_st_park(f);
  188 + if(stp){
  189 + time=type2=='in'?stp['time1']:stp['time2'];
  190 + }
  191 + else{
  192 + if (type2 == 'in')
  193 + time = upDown == 0 ? information.upInTimer : information.downInTimer;
  194 + else if (type2 == 'out')
  195 + time = upDown == 0 ? information.upOutTimer : information.downOutTimer;
  196 + else{
  197 + var qc_time=upDown==0?information.upTravelTime:information.downTravelTime,
  198 + qc_mileage=upDown==0?information.upMileage:information.downMileage;
  199 +
  200 + time = gb_common.mul(gb_common.accDiv(qc_time, qc_mileage), mileage);
  201 + }
  202 + }
  203 +
  204 + var et = moment(startDate, 'HH:mm').add(time, 'minutes');
  205 + $f('zdsj', f).val(et.format('HH:mm'));
  206 + f.trigger('ct_callback');
  207 + }
  208 +
  209 + function is_normal_sch(f) {
  210 + var qdzCode = $('[name=qdzCode]', f).val(),
  211 + zdzCode =$('[name=zdzCode]', f).val(),
  212 + upDown = $('[name=xlDir]', f).val(),
  213 + rts = stationRoutes[upDown];
  214 +
  215 + if(rts[0].stationCode == qdzCode
  216 + && rts[rts.length - 1].stationCode == zdzCode)
  217 + return true;
  218 + else
  219 + return false;
  220 + }
  221 +
  222 + function isInOut(bcType) {
  223 + return bcType=='in' || bcType=='out';
  224 + }
  225 +
  226 + /**
  227 + * 计算线路上站点间公里
  228 + */
  229 + function calcMileage(rts, s, e) {
  230 + var mileage = 0, flag, code;
  231 + $.each(rts, function () {
  232 + code = this['stationCode'];
  233 + if (flag)
  234 + mileage = gb_common.accAdd(mileage, this.distances);
  235 + if (code == s)
  236 + flag = true;
  237 + if (code == e)
  238 + return false;
  239 + });
  240 + return mileage;
  241 + }
  242 +
  243 + function search_st_park(f) {
  244 + if(!st_park_data)
  245 + return;
  246 + var stp;
  247 + var qdSelect=$f('qdzCode', f)[0],zdSelect=$f('zdzCode', f)[0];
  248 +
  249 + var qdzName=qdSelect.options[qdSelect.options.selectedIndex].text,
  250 + zdzName=zdSelect.options[zdSelect.options.selectedIndex].text,
  251 + type2 = $f('bcType', f).val();
  252 +
  253 + if(!isInOut(type2))
  254 + return;
  255 +
  256 + $.each(st_park_data, function () {
  257 + if((type2=='in' && this.stationName==qdzName && this.parkName==zdzName)
  258 + || (type2=='out' && this.stationName==zdzName && this.parkName==qdzName)){
  259 + stp = this;
  260 + return false;
  261 + }
  262 + });
  263 +
  264 + return stp;
  265 + }
  266 +
  267 + /**
  268 + * 停车场排序
  269 + * @param parks 停车场 code 2 name
  270 + * @param information 线路标准
  271 + * @param st_park_data 站到场
  272 + */
  273 + function sort_parks(parks, information, st_park_data) {
  274 + var array = [], names=[];
  275 + for(var code in parks){
  276 + array.push({code: code, name: parks[code]});
  277 + }
  278 +
  279 + if(st_park_data && st_park_data.length > 0){
  280 + $.each(st_park_data, function () {
  281 + names.push(this.parkName);
  282 + });
  283 + }
  284 +
  285 + //debugger
  286 + array.sort(function (a, b) {
  287 + if(a.code==information.carPark)
  288 + return -1;
  289 + if(b.code==information.carPark)
  290 + return 1;
  291 +
  292 + var ai = names.indexOf(a.name),
  293 + bi = names.indexOf(b.name);
  294 +
  295 + if(ai!=-1 && bi==-1)
  296 + return -1;
  297 + else if(ai==-1 && bi!=-1)
  298 + return 1;
  299 + else
  300 + return a.name.localeCompare(b.name);
  301 + });
  302 + return array;
  303 + }
  304 +
  305 + function $f(name, f) {
  306 + return $('[name=' + name + ']', f);
  307 + }
  308 +
  309 + /**
  310 + * 提交表单
  311 + */
  312 + function submit_temp_schedule_form(data, cb) {
  313 + data.xlBm = sch.xlBm;
  314 + data.xlName = sch.xlName;
  315 + data.lpName = sch.lpName;
  316 + //拆分驾驶员工号和姓名
  317 + data.jGh = data.jsy.split('/')[0];
  318 + data.jName = data.jsy.split('/')[1];
  319 + delete data.jsy;
  320 + //拆分售票员工号和姓名
  321 + if (data.spy != '') {
  322 + data.sGh = data.spy.split('/')[0];
  323 + data.sName = data.spy.split('/')[1];
  324 + delete data.spy;
  325 + }
  326 +
  327 + //公司信息
  328 + var line = gb_data_basic.findLineByCodes([data.xlBm]);
  329 + if(line && line.length > 0){
  330 + line = line[0];
  331 + data.gsBm = line.company;
  332 + data.fgsBm = line.brancheCompany;
  333 + }
  334 +
  335 + gb_common.$post('/realSchedule', data, function (rs) {
  336 + notify_succ('新增临加班次成功');
  337 + cb && cb(rs);
  338 + });
  339 + }
  340 + })();
  341 + </script>
  342 +</div>
src/main/resources/static/real_control_v2/js/line_schedule/context_menu.js
@@ -19,10 +19,25 @@ var gb_schedule_context_menu = (function () { @@ -19,10 +19,25 @@ var gb_schedule_context_menu = (function () {
19 $.get(folder + '/sub_task_v2/add_range_turn.html', function (dom) { 19 $.get(folder + '/sub_task_v2/add_range_turn.html', function (dom) {
20 st_doms.range_dom=dom; 20 st_doms.range_dom=dom;
21 }); 21 });
  22 + //提前缓存临加的片段页面
  23 + var add_sch_doms={};
  24 + $.get(folder + '/temp_sch/add_normal.html', function (dom) {
  25 + add_sch_doms.normal_dom=dom;
  26 + });
  27 + $.get(folder + '/temp_sch/add_two_way.html', function (dom) {
  28 + add_sch_doms.two_way_dom=dom;
  29 + });
  30 + $.get(folder + '/temp_sch/add_park_to_park.html', function (dom) {
  31 + add_sch_doms.park_to_park_dom=dom;
  32 + });
  33 +
22 34
23 var callbackHandler = { 35 var callbackHandler = {
24 get_st_doms: function () { 36 get_st_doms: function () {
25 - return st_doms; 37 + return st_doms;
  38 + },
  39 + get_add_sch_doms: function () {
  40 + return add_sch_doms;
26 }, 41 },
27 dftz: function (sch) { 42 dftz: function (sch) {
28 open_modal(folder + '/dftz.html', { 43 open_modal(folder + '/dftz.html', {
@@ -247,7 +262,7 @@ var gb_schedule_context_menu = (function () { @@ -247,7 +262,7 @@ var gb_schedule_context_menu = (function () {
247 }); 262 });
248 }, 263 },
249 add_temp_sch: function (sch) { 264 add_temp_sch: function (sch) {
250 - open_modal(folder + '/add_temp_sch.html', { 265 + open_modal(folder + '/temp_sch/main.html', {
251 sch: sch 266 sch: sch
252 }, modal_opts); 267 }, modal_opts);
253 }, 268 },