Commit f7946b7bb230f37cb5c90fdbdee27e11c00fb0a4

Authored by 王通
1 parent 857c2d0b

1.去除配车、保养、抽减(这两项是统计在其他当中的)

src/main/resources/static/pages/summary/destory_sch_detail/list.html
... ... @@ -153,8 +153,6 @@
153 153 <label>原因:
154 154 <select class="uk-select" name="reason_eq">
155 155 <option value="">全部</option>
156   - <option value="配车">配车</option>
157   - <option value="保养">保养</option>
158 156 <option value="故障">故障</option>
159 157 <option value="肇事">肇事</option>
160 158 <option value="路阻">路阻</option>
... ... @@ -165,7 +163,6 @@
165 163 <option value="气候">气候</option>
166 164 <option value="援外">援外</option>
167 165 <option value="吊慢">吊慢</option>
168   - <option value="抽减">抽减</option>
169 166 <option value="路救抛锚">路救抛锚</option>
170 167 <option value="其他">其他</option>
171 168 </select>
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/jhlb.html
... ... @@ -106,7 +106,7 @@
106 106  
107 107 <script>
108 108 (function() {
109   - var adjustExps = ['配车', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '路救抛锚', '其他'];
  109 + var adjustExps = ['故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '路救抛锚', '其他'];
110 110 var modal = '#schedule-jhlb-modal',
111 111 sch;fr
112 112 $(modal).on('init', function(e, data) {
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task/add_sub_task_inpark.html
... ... @@ -246,7 +246,7 @@
246 246 emptyForm = $('form[empty_form]', modal),
247 247 destroyForm = $('form[destroy_form]', modal),
248 248 sch, stationRoutes, parks, information, esCode, timeLocStations;
249   - var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '其他'];
  249 + var adjustExps = ['故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '其他'];
250 250 $(modal).on('init', function (e, data) {
251 251 e.stopPropagation();
252 252 sch = data.sch;
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task/add_sub_task_other.html
... ... @@ -128,7 +128,7 @@
128 128 (function () {
129 129 var modal = '#add-sub-task-other-modal',
130 130 sch, stationRoutes, parks, information;
131   - var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '其他'];
  131 + var adjustExps = ['故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '其他'];
132 132 $(modal).on('init', function (e, data) {
133 133 e.stopPropagation();
134 134 sch = data.sch;
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/history_sch/editor.html
1   -<div class="uk-modal ct-form-modal ct_move_modal" id="history-sch-edit-modal">
2   - <div class="uk-modal-dialog" style="width: 900px;">
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 sch_form">
7   - </form>
8   -
9   - <div class="uk-panel uk-panel-box uk-panel-box-secondary" style="padding-bottom: 0;">
10   - <h3 class="uk-panel-title" id="childTaskTitle">
11   - 子任务列表
12   - <a id="addChildTaskBtn" data-uk-tooltip title="添加子任务"><i
13   - class="uk-icon-plus"></i> </a>
14   - </h3>
15   - <div class="ct_table_wrap ct_table_no_border sub_task_table_wrap" style="height: 142px;">
16   - <div class="ct_table sub-task-table">
17   - <div class="ct_table_head">
18   - <dl>
19   - <dt>序号</dt>
20   - <dt>类型</dt>
21   - <dt>起点</dt>
22   - <dt>终点</dt>
23   - <dt>开始时间</dt>
24   - <dt>结束时间</dt>
25   - <dt>里程</dt>
26   - <dt>备注</dt>
27   - </dl>
28   - </div>
29   - <div class="ct_table_body">
30   - </div>
31   - </div>
32   - </div>
33   - </div>
34   - </div>
35   -
36   - <script id="history-sch-edit-form-temp" type="text/html">
37   - <input type="hidden" name="id" value="{{sch.id}}"/>
38   -
39   - <div class="uk-grid">
40   - <div class="uk-width-1-3">
41   - <div class="uk-form-row">
42   - <label class="uk-form-label" >班次类型</label>
43   - <div class="uk-form-controls">
44   - <select class="form-control nt-dictionary" data-code="{{sch.bcType}}" name="bcType" data-group=ScheduleType></select>
45   - </div>
46   - </div>
47   - </div>
48   - <div class="uk-width-1-3">
49   - <div class="uk-form-row">
50   - <label class="uk-form-label" >起点</label>
51   - <div class="uk-form-controls">
52   - <select type="text" name="qdzCode" ></select>
53   - </div>
54   - </div>
55   - </div>
56   - <div class="uk-width-1-3">
57   - <div class="uk-form-row">
58   - <label class="uk-form-label" >终点</label>
59   - <div class="uk-form-controls">
60   - <select type="text" name="zdzCode" ></select>
61   - </div>
62   - </div>
63   - </div>
64   - </div>
65   -
66   - <div class="uk-grid">
67   - <div class="uk-width-1-3">
68   - <div class="uk-form-row">
69   - <label class="uk-form-label" >车辆</label>
70   - <div class="uk-form-controls">
71   - <div class="uk-autocomplete uk-form car-autocom">
72   - <input type="text" value="{{sch.clZbh}}" name="clZbh" required>
73   - </div>
74   - </div>
75   - </div>
76   - </div>
77   - <div class="uk-width-1-3">
78   - <div class="uk-form-row">
79   - <label class="uk-form-label" >驾驶员</label>
80   - <div class="uk-form-controls">
81   - <div class="uk-autocomplete uk-form jsy-autocom">
82   - <input type="text" value="{{sch.jGh}}/{{sch.jName}}" name="jsy" required>
83   - </div>
84   - </div>
85   - </div>
86   - </div>
87   - <div class="uk-width-1-3">
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 spy-autocom">
92   - <input type="text" name="spy" value="{{sch.sGh}}/{{sch.sName}}" name="spy">
93   - </div>
94   - </div>
95   - </div>
96   - </div>
97   - </div>
98   -
99   - <div class="uk-grid">
100   - <div class="uk-width-1-3">
101   - <div class="uk-form-row">
102   - <label class="uk-form-label" >计发</label>
103   - <div class="uk-form-controls">
104   - <input type="time" value="{{sch.fcsj}}" disabled>
105   - </div>
106   - </div>
107   - </div>
108   - <div class="uk-width-1-3">
109   - <div class="uk-form-row">
110   - <label class="uk-form-label" >待发</label>
111   - <div class="uk-form-controls">
112   - <input type="time" name="dfsj" value="{{sch.dfsj}}" required>
113   - </div>
114   - </div>
115   - </div>
116   - <div class="uk-width-1-3">
117   - <div class="uk-form-row">
118   - <label class="uk-form-label" >实发</label>
119   - <div class="uk-form-controls">
120   - <input type="time" name="fcsjActual" value="{{sch.fcsjActual}}" >
121   - </div>
122   - </div>
123   - </div>
124   - </div>
125   -
126   - <div class="uk-grid">
127   - <div class="uk-width-1-3">
128   - <div class="uk-form-row">
129   - <label class="uk-form-label" >里程</label>
130   - <div class="uk-form-controls">
131   - <input type="text" name="jhlc" value="{{sch.jhlc}}" max=400 data-fv-lessthan-inclusive="false"
132   - required>
133   - </div>
134   - </div>
135   - </div>
136   - <div class="uk-width-1-3">
137   - <div class="uk-form-row">
138   - <label class="uk-form-label" >计达</label>
139   - <div class="uk-form-controls">
140   - <input type="time" value="{{sch.zdsj}}" disabled>
141   - </div>
142   - </div>
143   - </div>
144   - <div class="uk-width-1-3">
145   - <div class="uk-form-row">
146   - <label class="uk-form-label" >实达</label>
147   - <div class="uk-form-controls">
148   - <input type="time" name="zdsjActual" value="{{sch.zdsjActual}}" >
149   - </div>
150   - </div>
151   - </div>
152   - </div>
153   - <div class="uk-grid">
154   - <div class="uk-width-1-3">
155   - <div class="uk-form-row">
156   - <label class="uk-form-label" ></label>
157   - <label>
158   - &nbsp;<input class="i-cbox destroy-box" type="checkbox" name="status" value="-1" {{if sch.status==-1}}checked{{/if}}>
159   - 是否烂班
160   - </label>
161   - </div>
162   -
163   - <div class="uk-form-row adjust_exps_select_wrap {{if sch.status!=-1}}display_hide{{/if}}" >
164   - <label class="uk-form-label" >烂班原因</label>
165   - <div class="uk-form-controls">
166   - <select name="adjustExps">
167   - {{each adjustExps as exp i}}
168   - <option value="{{exp}}" {{if sch.adjustExps==exp}}selected{{/if}}>{{exp}}</option>
169   - {{/each}}
170   - </select>
171   - </div>
172   - </div>
173   - </div>
174   -
175   - <div class="uk-width-2-3">
176   - <div class="uk-form-row ct-stacked">
177   - <label class="uk-form-label" >备注</label>
178   - <div class="uk-form-controls" style="margin-top: 5px;">
179   - <textarea id="form-s-t" cols="20" rows="3" name="remarks" data-fv-stringlength="true" data-fv-stringlength-max="100" placeholder="备注">{{sch.remarks}}</textarea>
180   - </div>
181   - </div>
182   - </div>
183   - </div>
184   - <div class="uk-modal-footer uk-text-right" style="margin-bottom: 20px;">
185   - <div class="uk-button-dropdown" data-uk-dropdown>
186   - <a class="uk-button uk-button-success"><i class="uk-icon-pencil-square-o"></i> 添加子任务 <i class="uk-icon-caret-down"></i></a>
187   - <div class="uk-dropdown" style="text-align: left;">
188   - <ul class="uk-nav uk-nav-dropdown child_task_list">
189   - <!--<li data-method="add_oil"><a>空驶进出场</a></li>
190   - <li data-method="in_park"><a>进场</a></li>
191   - <li data-method="out_park"><a>出场</a></li>-->
192   - <li data-method="other"><a>自定义</a></li>
193   - </ul>
194   - </div>
195   - </div>
196   -
197   - <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存主任务信息</button>
198   - </div>
199   - </script>
200   -
201   - <script id="h-sub_task-table-temp" type="text/html">
202   - {{each list as task i}}
203   - <dl data-id="{{task.id}}">
204   - <dd>{{i+1}}</dd>
205   - <dd><span class="nt-dictionary" data-group="ChildTaskType">{{task.type2}}</span></dd>
206   - <dd>{{task.startStationName}}</dd>
207   - <dd>{{task.endStationName}}</dd>
208   - <dd>{{task.startDate}}</dd>
209   - <dd>{{task.endDate}}</dd>
210   - <dd>
211   - {{task.mileage}}
212   - (<span class="nt-dictionary" data-group="MileageType">{{task.mileageType}}</span>
213   - {{if task.destroy}}
214   - <small style="color:red;">烂班</small>
215   - {{/if}}
216   - )
217   - </dd>
218   - <dd title="{{task.remarks}}">{{task.remarks}}</dd>
219   - </dl>
220   - {{/each}}
221   - </script>
222   -
223   - <script>
224   - (function() {
225   - var modal = '#history-sch-edit-modal'
226   - ,gb_sch,parentModal;
227   - var stationRoutes, parks, information;
228   - var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '其他'];
229   - $(modal).on('init', function(e, data) {
230   - e.stopPropagation();
231   - var id = data.id;
232   - parentModal=data.parentModal;
233   -
234   - $.get('/realSchedule/'+id, function (sch) {
235   - gb_sch = sch;
236   -
237   - var htmlStr = template('history-sch-edit-form-temp', {sch: sch, adjustExps: adjustExps});
238   - $('form.sch_form', modal).html(htmlStr);
239   - //子任务列表
240   - sch.cTasks.sort(sub_task_sort);
241   - htmlStr = template('h-sub_task-table-temp', {list: sch.cTasks});
242   - $('.sub-task-table .ct_table_body', modal).html(htmlStr);
243   -
244   - //字典转换
245   - dictionaryUtils.transformDom($('.nt-dictionary', modal));
246   - //渲染表格,自动补全和下拉框等
247   - renderForm();
248   -
249   - //submit
250   - var f = $('form.sch_form', modal).formValidation(gb_form_validation_opts);
251   - //是否烂班
252   - $('[name=status]', f).on('click', function () {
253   - if(this.checked){
254   - $('[name=jhlc]', f).val(0);
255   - $('.adjust_exps_select_wrap', f).show();
256   - }
257   - else{
258   - $('[name=jhlc]', f).val(gb_sch.jhlcOrig);
259   - $('.adjust_exps_select_wrap', f).hide();
260   - }
261   - });
262   - f.on('success.form.fv', function(e) {
263   - e.preventDefault();
264   - var data = $(this).serializeJSON();
265   -
266   - //拆分驾驶员工号和姓名
267   - data.jGh = data.jsy.split('/')[0];
268   - data.jName = data.jsy.split('/')[1];
269   - delete data.jsy;
270   - //拆分售票员工号和姓名
271   - if(data.spy != null){
272   - data.sGh = data.spy.split('/')[0];
273   - data.sName = data.spy.split('/')[1];
274   - delete data.spy;
275   - }
276   -
277   - gb_common.$post('/realSchedule/history', data, function (rs) {
278   - //console.log(rs);
279   - UIkit.modal(modal).hide();
280   - $(parentModal).trigger('refresh');
281   - });
282   - });
283   - });
284   - });
285   -
286   - /**
287   - * 添加子任务
288   - */
289   - $(modal).on('click','.child_task_list>li', function () {
290   - var method = $(this).data('method');
291   - addChildTaskObj[method]();
292   - });
293   - var modal_opts = {center: false, bgclose: false, modal: false}
294   - ,folder = '/real_control_v2/fragments/north/nav/history_sch';
295   - var addChildTaskObj = {
296   - add_oil: function () {
297   - open_modal(folder + '/h_add_sub_task_oil.html', {
298   - sch: gb_sch
299   - }, modal_opts);
300   - },
301   - in_park: function () {
302   - open_modal(folder + '/h_add_sub_task_inpark.html', {
303   - sch: gb_sch
304   - }, modal_opts);
305   - },
306   - out_park: function () {
307   - open_modal(folder + '/h_add_sub_task_outpark.html', {
308   - sch: gb_sch
309   - }, modal_opts);
310   - },
311   - other: function () {
312   - open_modal(folder + '/h_add_sub_task_other.html', {
313   - sch: gb_sch
314   - }, modal_opts);
315   - }
316   - };
317   -
318   - $('#addChildTaskBtn', modal).on('click', addChildTaskObj.other);
319   -
320   -
321   - var callbackHandler = {
322   - remove_sub_task: function () {
323   - var activeDl = $('.sub-task-table .ct_table_body', modal).find('dl.context-menu-active');
324   - if (activeDl.length == 0)
325   - return;
326   - var dds = activeDl.find('dd');
327   - var id = activeDl.data('id')
328   - , str = '<h3>确定要删除子任务<span style="color:red;margin: 0 5px;">' + $(dds[4]).text() + ',' + $(dds[6]).text() + ' </span>?</h3>';
329   - alt_confirm(str, function () {
330   - gb_common.$del('/childTask/history/' + id, function (rs) {
331   - notify_succ('删除子任务成功!');
332   - //刷新界面数据
333   - $(modal).trigger('init', {id: gb_sch.id});
334   - });
335   - }, '确定删除');
336   - }
337   - };
338   - //右键菜单
339   - $.contextMenu({
340   - selector: modal + ' .sub-task-table .ct_table_body dl',
341   - className: 'schedule-ct-menu',
342   - callback: function (key, options) {
343   - callbackHandler[key] && callbackHandler[key]();
344   - },
345   - items: {
346   - "remove_sub_task": {
347   - name: "删除子任务"
348   - , icon: "delete"
349   - }
350   - }
351   - });
352   -
353   - function renderForm() {
354   - //站点路由
355   - stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(gb_sch.xlBm).sort(function (a, b) {
356   - return a.stationRouteCode - b.stationRouteCode;
357   - }), 'directions');
358   - //停车场
359   - parks = gb_data_basic.simpleParksArray();
360   - //线路标准
361   - information = gb_data_basic.getLineInformation(gb_sch.xlBm);
362   -
363   - //----------- Autocomplete --------------
364   - //车辆
365   - gb_common.carAutocomplete($('.car-autocom', modal), gb_data_basic.carsArray());
366   - //驾驶员
367   - gb_common.personAutocomplete($('.jsy-autocom', modal));
368   - //售票员
369   - gb_common.personAutocomplete($('.spy-autocom', modal));
370   -
371   - //班次类型切换
372   - var f = $('form.sch_form', modal);
373   - initScheduleTypeChange(f);
374   - $('[name=bcType]', f).trigger('change');
375   - }
376   -
377   -
378   - function initScheduleTypeChange(f, cb) {
379   - (function (f, cb) {
380   - $('[name=bcType]', f).on('change', function () {
381   - var bcType_e = $('[name=bcType]', f)
382   - , updown = gb_sch.xlDir;
383   -
384   - var routes = stationRoutes[updown]
385   - , lastCode = routes[routes.length - 1].stationCode
386   - , opts = '', park_opts = '';
387   - //station options
388   - $.each(routes, function () {
389   - opts += '<option value="' + this.stationCode + '">' + this.stationName + '</option>'
390   - });
391   - //park options
392   - for (var code in parks)
393   - park_opts += '<option value="' + code + '">' + parks[code] + '</option>';
394   -
395   - var qdz = $('[name=qdzCode]', f), zdz = $('[name=zdzCode]', f);
396   - var time, mileage;
397   - switch (bcType_e.val()) {
398   - case 'out':
399   - if (gb_sch && gb_sch.qdzCode) qdz.html(park_opts).val(gb_sch.qdzCode);
400   - else qdz.html(park_opts).val(information.carPark);
401   - zdz.html(opts);
402   - //出场结束时间
403   - time = updown == 0 ? information.upOutTimer : information.downOutTimer;
404   - mileage = updown == 0 ? information.upOutMileage : information.downOutMileage;
405   - break;
406   - case 'in':
407   - qdz.html(opts);
408   - if (gb_sch && gb_sch.zdzCode) zdz.html(park_opts).val(gb_sch.zdzCode);
409   - else zdz.html(park_opts).val(information.carPark);
410   - //进场结束时间
411   - time = updown == 0 ? information.upInTimer : information.downInTimer;
412   - mileage = updown == 0 ? information.upInMileage : information.downInMileage;
413   - break;
414   - default:
415   - qdz.html(opts);
416   - zdz.html(opts).val(lastCode);
417   - time = updown == 0?information.upTravelTime:information.downTravelTime;
418   - mileage = updown == 0?information.upMileage:information.downMileage;
419   - }
420   -
421   - cb && cb();
422   - }).trigger('change');
423   - })(f, cb);
424   - }
425   -
426   - function sub_task_sort(a, b) {
427   - return a.id - b.id;
428   - }
429   - })();
430   - </script>
431   -</div>
  1 +<div class="uk-modal ct-form-modal ct_move_modal" id="history-sch-edit-modal">
  2 + <div class="uk-modal-dialog" style="width: 900px;">
  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 sch_form">
  7 + </form>
  8 +
  9 + <div class="uk-panel uk-panel-box uk-panel-box-secondary" style="padding-bottom: 0;">
  10 + <h3 class="uk-panel-title" id="childTaskTitle">
  11 + 子任务列表
  12 + <a id="addChildTaskBtn" data-uk-tooltip title="添加子任务"><i
  13 + class="uk-icon-plus"></i> </a>
  14 + </h3>
  15 + <div class="ct_table_wrap ct_table_no_border sub_task_table_wrap" style="height: 142px;">
  16 + <div class="ct_table sub-task-table">
  17 + <div class="ct_table_head">
  18 + <dl>
  19 + <dt>序号</dt>
  20 + <dt>类型</dt>
  21 + <dt>起点</dt>
  22 + <dt>终点</dt>
  23 + <dt>开始时间</dt>
  24 + <dt>结束时间</dt>
  25 + <dt>里程</dt>
  26 + <dt>备注</dt>
  27 + </dl>
  28 + </div>
  29 + <div class="ct_table_body">
  30 + </div>
  31 + </div>
  32 + </div>
  33 + </div>
  34 + </div>
  35 +
  36 + <script id="history-sch-edit-form-temp" type="text/html">
  37 + <input type="hidden" name="id" value="{{sch.id}}"/>
  38 +
  39 + <div class="uk-grid">
  40 + <div class="uk-width-1-3">
  41 + <div class="uk-form-row">
  42 + <label class="uk-form-label" >班次类型</label>
  43 + <div class="uk-form-controls">
  44 + <select class="form-control nt-dictionary" data-code="{{sch.bcType}}" name="bcType" data-group=ScheduleType></select>
  45 + </div>
  46 + </div>
  47 + </div>
  48 + <div class="uk-width-1-3">
  49 + <div class="uk-form-row">
  50 + <label class="uk-form-label" >起点</label>
  51 + <div class="uk-form-controls">
  52 + <select type="text" name="qdzCode" ></select>
  53 + </div>
  54 + </div>
  55 + </div>
  56 + <div class="uk-width-1-3">
  57 + <div class="uk-form-row">
  58 + <label class="uk-form-label" >终点</label>
  59 + <div class="uk-form-controls">
  60 + <select type="text" name="zdzCode" ></select>
  61 + </div>
  62 + </div>
  63 + </div>
  64 + </div>
  65 +
  66 + <div class="uk-grid">
  67 + <div class="uk-width-1-3">
  68 + <div class="uk-form-row">
  69 + <label class="uk-form-label" >车辆</label>
  70 + <div class="uk-form-controls">
  71 + <div class="uk-autocomplete uk-form car-autocom">
  72 + <input type="text" value="{{sch.clZbh}}" name="clZbh" required>
  73 + </div>
  74 + </div>
  75 + </div>
  76 + </div>
  77 + <div class="uk-width-1-3">
  78 + <div class="uk-form-row">
  79 + <label class="uk-form-label" >驾驶员</label>
  80 + <div class="uk-form-controls">
  81 + <div class="uk-autocomplete uk-form jsy-autocom">
  82 + <input type="text" value="{{sch.jGh}}/{{sch.jName}}" name="jsy" required>
  83 + </div>
  84 + </div>
  85 + </div>
  86 + </div>
  87 + <div class="uk-width-1-3">
  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 spy-autocom">
  92 + <input type="text" name="spy" value="{{sch.sGh}}/{{sch.sName}}" name="spy">
  93 + </div>
  94 + </div>
  95 + </div>
  96 + </div>
  97 + </div>
  98 +
  99 + <div class="uk-grid">
  100 + <div class="uk-width-1-3">
  101 + <div class="uk-form-row">
  102 + <label class="uk-form-label" >计发</label>
  103 + <div class="uk-form-controls">
  104 + <input type="time" value="{{sch.fcsj}}" disabled>
  105 + </div>
  106 + </div>
  107 + </div>
  108 + <div class="uk-width-1-3">
  109 + <div class="uk-form-row">
  110 + <label class="uk-form-label" >待发</label>
  111 + <div class="uk-form-controls">
  112 + <input type="time" name="dfsj" value="{{sch.dfsj}}" required>
  113 + </div>
  114 + </div>
  115 + </div>
  116 + <div class="uk-width-1-3">
  117 + <div class="uk-form-row">
  118 + <label class="uk-form-label" >实发</label>
  119 + <div class="uk-form-controls">
  120 + <input type="time" name="fcsjActual" value="{{sch.fcsjActual}}" >
  121 + </div>
  122 + </div>
  123 + </div>
  124 + </div>
  125 +
  126 + <div class="uk-grid">
  127 + <div class="uk-width-1-3">
  128 + <div class="uk-form-row">
  129 + <label class="uk-form-label" >里程</label>
  130 + <div class="uk-form-controls">
  131 + <input type="text" name="jhlc" value="{{sch.jhlc}}" max=400 data-fv-lessthan-inclusive="false"
  132 + required>
  133 + </div>
  134 + </div>
  135 + </div>
  136 + <div class="uk-width-1-3">
  137 + <div class="uk-form-row">
  138 + <label class="uk-form-label" >计达</label>
  139 + <div class="uk-form-controls">
  140 + <input type="time" value="{{sch.zdsj}}" disabled>
  141 + </div>
  142 + </div>
  143 + </div>
  144 + <div class="uk-width-1-3">
  145 + <div class="uk-form-row">
  146 + <label class="uk-form-label" >实达</label>
  147 + <div class="uk-form-controls">
  148 + <input type="time" name="zdsjActual" value="{{sch.zdsjActual}}" >
  149 + </div>
  150 + </div>
  151 + </div>
  152 + </div>
  153 + <div class="uk-grid">
  154 + <div class="uk-width-1-3">
  155 + <div class="uk-form-row">
  156 + <label class="uk-form-label" ></label>
  157 + <label>
  158 + &nbsp;<input class="i-cbox destroy-box" type="checkbox" name="status" value="-1" {{if sch.status==-1}}checked{{/if}}>
  159 + 是否烂班
  160 + </label>
  161 + </div>
  162 +
  163 + <div class="uk-form-row adjust_exps_select_wrap {{if sch.status!=-1}}display_hide{{/if}}" >
  164 + <label class="uk-form-label" >烂班原因</label>
  165 + <div class="uk-form-controls">
  166 + <select name="adjustExps">
  167 + {{each adjustExps as exp i}}
  168 + <option value="{{exp}}" {{if sch.adjustExps==exp}}selected{{/if}}>{{exp}}</option>
  169 + {{/each}}
  170 + </select>
  171 + </div>
  172 + </div>
  173 + </div>
  174 +
  175 + <div class="uk-width-2-3">
  176 + <div class="uk-form-row ct-stacked">
  177 + <label class="uk-form-label" >备注</label>
  178 + <div class="uk-form-controls" style="margin-top: 5px;">
  179 + <textarea id="form-s-t" cols="20" rows="3" name="remarks" data-fv-stringlength="true" data-fv-stringlength-max="100" placeholder="备注">{{sch.remarks}}</textarea>
  180 + </div>
  181 + </div>
  182 + </div>
  183 + </div>
  184 + <div class="uk-modal-footer uk-text-right" style="margin-bottom: 20px;">
  185 + <div class="uk-button-dropdown" data-uk-dropdown>
  186 + <a class="uk-button uk-button-success"><i class="uk-icon-pencil-square-o"></i> 添加子任务 <i class="uk-icon-caret-down"></i></a>
  187 + <div class="uk-dropdown" style="text-align: left;">
  188 + <ul class="uk-nav uk-nav-dropdown child_task_list">
  189 + <!--<li data-method="add_oil"><a>空驶进出场</a></li>
  190 + <li data-method="in_park"><a>进场</a></li>
  191 + <li data-method="out_park"><a>出场</a></li>-->
  192 + <li data-method="other"><a>自定义</a></li>
  193 + </ul>
  194 + </div>
  195 + </div>
  196 +
  197 + <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存主任务信息</button>
  198 + </div>
  199 + </script>
  200 +
  201 + <script id="h-sub_task-table-temp" type="text/html">
  202 + {{each list as task i}}
  203 + <dl data-id="{{task.id}}">
  204 + <dd>{{i+1}}</dd>
  205 + <dd><span class="nt-dictionary" data-group="ChildTaskType">{{task.type2}}</span></dd>
  206 + <dd>{{task.startStationName}}</dd>
  207 + <dd>{{task.endStationName}}</dd>
  208 + <dd>{{task.startDate}}</dd>
  209 + <dd>{{task.endDate}}</dd>
  210 + <dd>
  211 + {{task.mileage}}
  212 + (<span class="nt-dictionary" data-group="MileageType">{{task.mileageType}}</span>
  213 + {{if task.destroy}}
  214 + <small style="color:red;">烂班</small>
  215 + {{/if}}
  216 + )
  217 + </dd>
  218 + <dd title="{{task.remarks}}">{{task.remarks}}</dd>
  219 + </dl>
  220 + {{/each}}
  221 + </script>
  222 +
  223 + <script>
  224 + (function() {
  225 + var modal = '#history-sch-edit-modal'
  226 + ,gb_sch,parentModal;
  227 + var stationRoutes, parks, information;
  228 + var adjustExps = ['故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '其他'];
  229 + $(modal).on('init', function(e, data) {
  230 + e.stopPropagation();
  231 + var id = data.id;
  232 + parentModal=data.parentModal;
  233 +
  234 + $.get('/realSchedule/'+id, function (sch) {
  235 + gb_sch = sch;
  236 +
  237 + var htmlStr = template('history-sch-edit-form-temp', {sch: sch, adjustExps: adjustExps});
  238 + $('form.sch_form', modal).html(htmlStr);
  239 + //子任务列表
  240 + sch.cTasks.sort(sub_task_sort);
  241 + htmlStr = template('h-sub_task-table-temp', {list: sch.cTasks});
  242 + $('.sub-task-table .ct_table_body', modal).html(htmlStr);
  243 +
  244 + //字典转换
  245 + dictionaryUtils.transformDom($('.nt-dictionary', modal));
  246 + //渲染表格,自动补全和下拉框等
  247 + renderForm();
  248 +
  249 + //submit
  250 + var f = $('form.sch_form', modal).formValidation(gb_form_validation_opts);
  251 + //是否烂班
  252 + $('[name=status]', f).on('click', function () {
  253 + if(this.checked){
  254 + $('[name=jhlc]', f).val(0);
  255 + $('.adjust_exps_select_wrap', f).show();
  256 + }
  257 + else{
  258 + $('[name=jhlc]', f).val(gb_sch.jhlcOrig);
  259 + $('.adjust_exps_select_wrap', f).hide();
  260 + }
  261 + });
  262 + f.on('success.form.fv', function(e) {
  263 + e.preventDefault();
  264 + var data = $(this).serializeJSON();
  265 +
  266 + //拆分驾驶员工号和姓名
  267 + data.jGh = data.jsy.split('/')[0];
  268 + data.jName = data.jsy.split('/')[1];
  269 + delete data.jsy;
  270 + //拆分售票员工号和姓名
  271 + if(data.spy != null){
  272 + data.sGh = data.spy.split('/')[0];
  273 + data.sName = data.spy.split('/')[1];
  274 + delete data.spy;
  275 + }
  276 +
  277 + gb_common.$post('/realSchedule/history', data, function (rs) {
  278 + //console.log(rs);
  279 + UIkit.modal(modal).hide();
  280 + $(parentModal).trigger('refresh');
  281 + });
  282 + });
  283 + });
  284 + });
  285 +
  286 + /**
  287 + * 添加子任务
  288 + */
  289 + $(modal).on('click','.child_task_list>li', function () {
  290 + var method = $(this).data('method');
  291 + addChildTaskObj[method]();
  292 + });
  293 + var modal_opts = {center: false, bgclose: false, modal: false}
  294 + ,folder = '/real_control_v2/fragments/north/nav/history_sch';
  295 + var addChildTaskObj = {
  296 + add_oil: function () {
  297 + open_modal(folder + '/h_add_sub_task_oil.html', {
  298 + sch: gb_sch
  299 + }, modal_opts);
  300 + },
  301 + in_park: function () {
  302 + open_modal(folder + '/h_add_sub_task_inpark.html', {
  303 + sch: gb_sch
  304 + }, modal_opts);
  305 + },
  306 + out_park: function () {
  307 + open_modal(folder + '/h_add_sub_task_outpark.html', {
  308 + sch: gb_sch
  309 + }, modal_opts);
  310 + },
  311 + other: function () {
  312 + open_modal(folder + '/h_add_sub_task_other.html', {
  313 + sch: gb_sch
  314 + }, modal_opts);
  315 + }
  316 + };
  317 +
  318 + $('#addChildTaskBtn', modal).on('click', addChildTaskObj.other);
  319 +
  320 +
  321 + var callbackHandler = {
  322 + remove_sub_task: function () {
  323 + var activeDl = $('.sub-task-table .ct_table_body', modal).find('dl.context-menu-active');
  324 + if (activeDl.length == 0)
  325 + return;
  326 + var dds = activeDl.find('dd');
  327 + var id = activeDl.data('id')
  328 + , str = '<h3>确定要删除子任务<span style="color:red;margin: 0 5px;">' + $(dds[4]).text() + ',' + $(dds[6]).text() + ' </span>?</h3>';
  329 + alt_confirm(str, function () {
  330 + gb_common.$del('/childTask/history/' + id, function (rs) {
  331 + notify_succ('删除子任务成功!');
  332 + //刷新界面数据
  333 + $(modal).trigger('init', {id: gb_sch.id});
  334 + });
  335 + }, '确定删除');
  336 + }
  337 + };
  338 + //右键菜单
  339 + $.contextMenu({
  340 + selector: modal + ' .sub-task-table .ct_table_body dl',
  341 + className: 'schedule-ct-menu',
  342 + callback: function (key, options) {
  343 + callbackHandler[key] && callbackHandler[key]();
  344 + },
  345 + items: {
  346 + "remove_sub_task": {
  347 + name: "删除子任务"
  348 + , icon: "delete"
  349 + }
  350 + }
  351 + });
  352 +
  353 + function renderForm() {
  354 + //站点路由
  355 + stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(gb_sch.xlBm).sort(function (a, b) {
  356 + return a.stationRouteCode - b.stationRouteCode;
  357 + }), 'directions');
  358 + //停车场
  359 + parks = gb_data_basic.simpleParksArray();
  360 + //线路标准
  361 + information = gb_data_basic.getLineInformation(gb_sch.xlBm);
  362 +
  363 + //----------- Autocomplete --------------
  364 + //车辆
  365 + gb_common.carAutocomplete($('.car-autocom', modal), gb_data_basic.carsArray());
  366 + //驾驶员
  367 + gb_common.personAutocomplete($('.jsy-autocom', modal));
  368 + //售票员
  369 + gb_common.personAutocomplete($('.spy-autocom', modal));
  370 +
  371 + //班次类型切换
  372 + var f = $('form.sch_form', modal);
  373 + initScheduleTypeChange(f);
  374 + $('[name=bcType]', f).trigger('change');
  375 + }
  376 +
  377 +
  378 + function initScheduleTypeChange(f, cb) {
  379 + (function (f, cb) {
  380 + $('[name=bcType]', f).on('change', function () {
  381 + var bcType_e = $('[name=bcType]', f)
  382 + , updown = gb_sch.xlDir;
  383 +
  384 + var routes = stationRoutes[updown]
  385 + , lastCode = routes[routes.length - 1].stationCode
  386 + , opts = '', park_opts = '';
  387 + //station options
  388 + $.each(routes, function () {
  389 + opts += '<option value="' + this.stationCode + '">' + this.stationName + '</option>'
  390 + });
  391 + //park options
  392 + for (var code in parks)
  393 + park_opts += '<option value="' + code + '">' + parks[code] + '</option>';
  394 +
  395 + var qdz = $('[name=qdzCode]', f), zdz = $('[name=zdzCode]', f);
  396 + var time, mileage;
  397 + switch (bcType_e.val()) {
  398 + case 'out':
  399 + if (gb_sch && gb_sch.qdzCode) qdz.html(park_opts).val(gb_sch.qdzCode);
  400 + else qdz.html(park_opts).val(information.carPark);
  401 + zdz.html(opts);
  402 + //出场结束时间
  403 + time = updown == 0 ? information.upOutTimer : information.downOutTimer;
  404 + mileage = updown == 0 ? information.upOutMileage : information.downOutMileage;
  405 + break;
  406 + case 'in':
  407 + qdz.html(opts);
  408 + if (gb_sch && gb_sch.zdzCode) zdz.html(park_opts).val(gb_sch.zdzCode);
  409 + else zdz.html(park_opts).val(information.carPark);
  410 + //进场结束时间
  411 + time = updown == 0 ? information.upInTimer : information.downInTimer;
  412 + mileage = updown == 0 ? information.upInMileage : information.downInMileage;
  413 + break;
  414 + default:
  415 + qdz.html(opts);
  416 + zdz.html(opts).val(lastCode);
  417 + time = updown == 0?information.upTravelTime:information.downTravelTime;
  418 + mileage = updown == 0?information.upMileage:information.downMileage;
  419 + }
  420 +
  421 + cb && cb();
  422 + }).trigger('change');
  423 + })(f, cb);
  424 + }
  425 +
  426 + function sub_task_sort(a, b) {
  427 + return a.id - b.id;
  428 + }
  429 + })();
  430 + </script>
  431 +</div>
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/history_sch/h_add_sub_task_inpark.html
... ... @@ -246,7 +246,7 @@
246 246 emptyForm = $('form[empty_form]', modal),
247 247 destroyForm = $('form[destroy_form]', modal),
248 248 sch, stationRoutes, parks, information, esCode, timeLocStations;
249   - var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '其他'];
  249 + var adjustExps = ['故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '其他'];
250 250 $(modal).on('init', function (e, data) {
251 251 e.stopPropagation();
252 252 sch = data.sch;
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/history_sch/h_add_sub_task_other.html
... ... @@ -144,7 +144,7 @@
144 144 (function () {
145 145 var modal = '#add-sub-task-other-modal',
146 146 sch, stationRoutes, parks, information;
147   - var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '其他'];
  147 + var adjustExps = ['故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '其他'];
148 148 $(modal).on('init', function (e, data) {
149 149 e.stopPropagation();
150 150 sch = data.sch;
... ...
src/main/resources/static/real_control_v2/js/common.js
... ... @@ -22,7 +22,7 @@ var gb_common = (function () {
22 22 0x10: 'SOS',
23 23 };
24 24  
25   - var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '路救抛锚', '其他'];
  25 + var adjustExps = ['故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '路救抛锚', '其他'];
26 26 var inOutExps = ['故障', '肇事', '纠纷', '路救抛锚', '其他'];
27 27  
28 28 var groupBy = function (list, field) {
... ...