Commit f2c1f512643c85f479abb2347b36906ef34d705b

Authored by 潘钊
1 parent 45b6d31f

调人调车

src/main/java/com/bsth/entity/realcontrol/ChildTaskPlan.java
1 package com.bsth.entity.realcontrol; 1 package com.bsth.entity.realcontrol;
2 2
3 import javax.persistence.Entity; 3 import javax.persistence.Entity;
  4 +import javax.persistence.FetchType;
4 import javax.persistence.GeneratedValue; 5 import javax.persistence.GeneratedValue;
5 import javax.persistence.Id; 6 import javax.persistence.Id;
6 import javax.persistence.ManyToOne; 7 import javax.persistence.ManyToOne;
  8 +import javax.persistence.NamedAttributeNode;
  9 +import javax.persistence.NamedEntityGraph;
  10 +import javax.persistence.NamedEntityGraphs;
7 import javax.persistence.Table; 11 import javax.persistence.Table;
8 12
9 /** 13 /**
@@ -16,6 +20,11 @@ import javax.persistence.Table; @@ -16,6 +20,11 @@ import javax.persistence.Table;
16 */ 20 */
17 @Entity 21 @Entity
18 @Table(name = "bsth_c_s_child_task") 22 @Table(name = "bsth_c_s_child_task")
  23 +@NamedEntityGraphs({
  24 + @NamedEntityGraph(name = "childTaskPlan_schedule", attributeNodes = {
  25 + @NamedAttributeNode("schedule")
  26 + })
  27 +})
19 public class ChildTaskPlan { 28 public class ChildTaskPlan {
20 29
21 @Id 30 @Id
@@ -37,11 +46,21 @@ public class ChildTaskPlan { @@ -37,11 +46,21 @@ public class ChildTaskPlan {
37 * 起点 46 * 起点
38 */ 47 */
39 private String startStation; 48 private String startStation;
40 - 49 +
  50 + /**
  51 + * 起点站名称
  52 + */
  53 + private String startStationName;
  54 +
41 /** 55 /**
42 * 终点 56 * 终点
43 */ 57 */
44 private String endStation; 58 private String endStation;
  59 +
  60 + /**
  61 + * 终点站名称
  62 + */
  63 + private String endStationName;
45 64
46 /** 65 /**
47 * 里程类型 66 * 里程类型
@@ -76,7 +95,7 @@ public class ChildTaskPlan { @@ -76,7 +95,7 @@ public class ChildTaskPlan {
76 /** 95 /**
77 * 主排班计划 96 * 主排班计划
78 */ 97 */
79 - @ManyToOne 98 + @ManyToOne(fetch = FetchType.LAZY)
80 private ScheduleRealInfo schedule; 99 private ScheduleRealInfo schedule;
81 100
82 private String remarks; 101 private String remarks;
@@ -184,4 +203,21 @@ public class ChildTaskPlan { @@ -184,4 +203,21 @@ public class ChildTaskPlan {
184 public void setRemarks(String remarks) { 203 public void setRemarks(String remarks) {
185 this.remarks = remarks; 204 this.remarks = remarks;
186 } 205 }
  206 +
  207 + public String getStartStationName() {
  208 + return startStationName;
  209 + }
  210 +
  211 + public void setStartStationName(String startStationName) {
  212 + this.startStationName = startStationName;
  213 + }
  214 +
  215 + public String getEndStationName() {
  216 + return endStationName;
  217 + }
  218 +
  219 + public void setEndStationName(String endStationName) {
  220 + this.endStationName = endStationName;
  221 + }
  222 +
187 } 223 }
src/main/java/com/bsth/repository/realcontrol/ChildTaskPlanRepository.java
1 package com.bsth.repository.realcontrol; 1 package com.bsth.repository.realcontrol;
2 2
  3 +import java.util.List;
  4 +
  5 +import org.springframework.data.jpa.domain.Specification;
  6 +import org.springframework.data.jpa.repository.EntityGraph;
3 import org.springframework.stereotype.Repository; 7 import org.springframework.stereotype.Repository;
4 8
5 import com.bsth.entity.realcontrol.ChildTaskPlan; 9 import com.bsth.entity.realcontrol.ChildTaskPlan;
@@ -8,4 +12,7 @@ import com.bsth.repository.BaseRepository; @@ -8,4 +12,7 @@ import com.bsth.repository.BaseRepository;
8 @Repository 12 @Repository
9 public interface ChildTaskPlanRepository extends BaseRepository<ChildTaskPlan, Long>{ 13 public interface ChildTaskPlanRepository extends BaseRepository<ChildTaskPlan, Long>{
10 14
  15 + @EntityGraph(value = "childTaskPlan_schedule", type = EntityGraph.EntityGraphType.FETCH)
  16 + @Override
  17 + List<ChildTaskPlan> findAll(Specification<ChildTaskPlan> spec);
11 } 18 }
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
@@ -2,6 +2,10 @@ package com.bsth.repository.realcontrol; @@ -2,6 +2,10 @@ package com.bsth.repository.realcontrol;
2 2
3 import java.util.List; 3 import java.util.List;
4 4
  5 +import org.springframework.data.domain.Page;
  6 +import org.springframework.data.domain.Pageable;
  7 +import org.springframework.data.jpa.domain.Specification;
  8 +import org.springframework.data.jpa.repository.EntityGraph;
5 import org.springframework.data.jpa.repository.Query; 9 import org.springframework.data.jpa.repository.Query;
6 import org.springframework.stereotype.Repository; 10 import org.springframework.stereotype.Repository;
7 11
@@ -14,5 +18,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -14,5 +18,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
14 @Query("select s from ScheduleRealInfo s where s.xlBm in ?1") 18 @Query("select s from ScheduleRealInfo s where s.xlBm in ?1")
15 List<ScheduleRealInfo> findByLines(List<String> lines); 19 List<ScheduleRealInfo> findByLines(List<String> lines);
16 20
17 - 21 + @EntityGraph(value = "scheduleRealInfo_childTasks", type = EntityGraph.EntityGraphType.FETCH)
  22 + @Override
  23 + Page<ScheduleRealInfo> findAll(Specification<ScheduleRealInfo> spec, Pageable pageable);
18 } 24 }
src/main/java/com/bsth/service/realcontrol/impl/ChildTaskPlanServiceImpl.java
1 package com.bsth.service.realcontrol.impl; 1 package com.bsth.service.realcontrol.impl;
2 2
  3 +import java.util.Map;
  4 +
3 import org.springframework.stereotype.Service; 5 import org.springframework.stereotype.Service;
4 6
5 import com.bsth.entity.realcontrol.ChildTaskPlan; 7 import com.bsth.entity.realcontrol.ChildTaskPlan;
6 import com.bsth.service.impl.BaseServiceImpl; 8 import com.bsth.service.impl.BaseServiceImpl;
7 import com.bsth.service.realcontrol.ChildTaskPlanService; 9 import com.bsth.service.realcontrol.ChildTaskPlanService;
  10 +import com.bsth.vehicle.common.CommonMapped;
8 11
9 @Service 12 @Service
10 public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Long> implements ChildTaskPlanService{ 13 public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Long> implements ChildTaskPlanService{
11 14
  15 + @Override
  16 + public Map<String, Object> save(ChildTaskPlan t) {
  17 + //保存起终点名称
  18 + Map<String, String> map = CommonMapped.stationCodeMap;
  19 +
  20 + t.setStartStationName(map.get(t.getStartStation()));
  21 + t.setEndStationName(map.get(t.getEndStation()));
  22 + return super.save(t);
  23 + }
  24 +
12 } 25 }
src/main/java/com/bsth/vehicle/common/CommonMapped.java
@@ -35,7 +35,7 @@ public class CommonMapped { @@ -35,7 +35,7 @@ public class CommonMapped {
35 public static Map<String , String> vehicCompanyMap; 35 public static Map<String , String> vehicCompanyMap;
36 36
37 /** 37 /**
38 - * 站点和编码对照 38 + * 站点编码和名称对照,包括停车场
39 *(K: 站点编码 ,V:站点名称) 39 *(K: 站点编码 ,V:站点名称)
40 */ 40 */
41 public static Map<String, String> stationCodeMap; 41 public static Map<String, String> stationCodeMap;
src/main/java/com/bsth/vehicle/common/CommonRefreshThread.java
@@ -9,8 +9,10 @@ import org.slf4j.LoggerFactory; @@ -9,8 +9,10 @@ import org.slf4j.LoggerFactory;
9 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.stereotype.Component; 10 import org.springframework.stereotype.Component;
11 11
  12 +import com.bsth.entity.CarPark;
12 import com.bsth.entity.Cars; 13 import com.bsth.entity.Cars;
13 import com.bsth.entity.Station; 14 import com.bsth.entity.Station;
  15 +import com.bsth.repository.CarParkRepository;
14 import com.bsth.repository.CarsRepository; 16 import com.bsth.repository.CarsRepository;
15 import com.bsth.repository.StationRepository; 17 import com.bsth.repository.StationRepository;
16 import com.google.common.collect.BiMap; 18 import com.google.common.collect.BiMap;
@@ -33,6 +35,9 @@ public class CommonRefreshThread extends Thread{ @@ -33,6 +35,9 @@ public class CommonRefreshThread extends Thread{
33 @Autowired 35 @Autowired
34 StationRepository stationRepository; 36 StationRepository stationRepository;
35 37
  38 + @Autowired
  39 + CarParkRepository carParkRepository;
  40 +
36 Logger logger = LoggerFactory.getLogger(this.getClass()); 41 Logger logger = LoggerFactory.getLogger(this.getClass());
37 42
38 @Override 43 @Override
@@ -74,12 +79,19 @@ public class CommonRefreshThread extends Thread{ @@ -74,12 +79,19 @@ public class CommonRefreshThread extends Thread{
74 public void initStationCodeMap(){ 79 public void initStationCodeMap(){
75 Map<String, String> newMap = new HashMap<>(); 80 Map<String, String> newMap = new HashMap<>();
76 Iterator<Station> iterator = stationRepository.findAll().iterator(); 81 Iterator<Station> iterator = stationRepository.findAll().iterator();
77 - 82 + //站点
78 Station station; 83 Station station;
79 while(iterator.hasNext()){ 84 while(iterator.hasNext()){
80 station = iterator.next(); 85 station = iterator.next();
81 newMap.put(station.getStationCod(), station.getStationName()); 86 newMap.put(station.getStationCod(), station.getStationName());
82 } 87 }
  88 + //停车场
  89 + Iterator<CarPark> iterator2 = carParkRepository.findAll().iterator();
  90 + CarPark carPark;
  91 + while(iterator2.hasNext()){
  92 + carPark = iterator2.next();
  93 + newMap.put(carPark.getParkCode(), carPark.getParkName());
  94 + }
83 95
84 CommonMapped.stationCodeMap = newMap; 96 CommonMapped.stationCodeMap = newMap;
85 } 97 }
src/main/resources/static/pages/control/line/child_pages/child_task.html
@@ -77,78 +77,8 @@ @@ -77,78 +77,8 @@
77 </div> 77 </div>
78 </div> 78 </div>
79 <div class="custom-table-body" style="min-width: 800px;"> 79 <div class="custom-table-body" style="min-width: 800px;">
80 - <table class="table table-bordered table-advance" > 80 + <table class="table table-bordered table-advance subTable table-striped" >
81 <tbody> 81 <tbody>
82 - <tr>  
83 - <td width="6%">1</td>  
84 - <td width="11%"></td>  
85 - <td width="16%"></td>  
86 - <td width="16%"></td>  
87 - <td width="10%"></td>  
88 - <td width="10%"></td>  
89 - <td width="7%"></td>  
90 - <td width="11%"></td>  
91 - </tr>  
92 - <tr>  
93 - <td width="6%">2</td>  
94 - <td width="11%"></td>  
95 - <td width="16%"></td>  
96 - <td width="16%"></td>  
97 - <td width="10%"></td>  
98 - <td width="10%"></td>  
99 - <td width="7%"></td>  
100 - <td width="11%"></td>  
101 - </tr>  
102 - <tr>  
103 - <td width="6%">3</td>  
104 - <td width="11%"></td>  
105 - <td width="16%"></td>  
106 - <td width="16%"></td>  
107 - <td width="10%"></td>  
108 - <td width="10%"></td>  
109 - <td width="7%"></td>  
110 - <td width="11%"></td>  
111 - </tr>  
112 - <tr>  
113 - <td width="6%">4</td>  
114 - <td width="11%"></td>  
115 - <td width="16%"></td>  
116 - <td width="16%"></td>  
117 - <td width="10%"></td>  
118 - <td width="10%"></td>  
119 - <td width="7%"></td>  
120 - <td width="11%"></td>  
121 - </tr>  
122 - <tr>  
123 - <td width="6%">5</td>  
124 - <td width="11%"></td>  
125 - <td width="16%"></td>  
126 - <td width="16%"></td>  
127 - <td width="10%"></td>  
128 - <td width="10%"></td>  
129 - <td width="7%"></td>  
130 - <td width="11%"></td>  
131 - </tr>  
132 - <tr>  
133 - <td width="6%">6</td>  
134 - <td width="11%"></td>  
135 - <td width="16%"></td>  
136 - <td width="16%"></td>  
137 - <td width="10%"></td>  
138 - <td width="10%"></td>  
139 - <td width="7%"></td>  
140 - <td width="11%"></td>  
141 - </tr>  
142 - <tr>  
143 - <td width="6%">7</td>  
144 - <td width="11%"></td>  
145 - <td width="16%"></td>  
146 - <td width="16%"></td>  
147 - <td width="10%"></td>  
148 - <td width="10%"></td>  
149 - <td width="7%"></td>  
150 - <td width="11%"></td>  
151 - </tr>  
152 </tbody> 82 </tbody>
153 </table> 83 </table>
154 </div> 84 </div>
@@ -228,6 +158,10 @@ var parkSelect2Data = createParkSelect2Data(), @@ -228,6 +158,10 @@ var parkSelect2Data = createParkSelect2Data(),
228 var stationRoute; 158 var stationRoute;
229 //标准信息 159 //标准信息
230 var lineInformation; 160 var lineInformation;
  161 +
  162 +var $mainTab = $('.custom-table-body table.mainTable');
  163 +
  164 +var $subTab = $('.custom-table-body table.subTable');
231 $(function(){ 165 $(function(){
232 //var storage = window.localStorage; 166 //var storage = window.localStorage;
233 var lineCodeMaps; 167 var lineCodeMaps;
@@ -249,11 +183,9 @@ $(function(){ @@ -249,11 +183,9 @@ $(function(){
249 $header.css('top', top); 183 $header.css('top', top);
250 }); 184 });
251 185
252 - var $table = $('.custom-table-body table');  
253 -  
254 //主任务点击事件 186 //主任务点击事件
255 $('#childTaskDiv').on('click', '.mainTable tr', function(){ 187 $('#childTaskDiv').on('click', '.mainTable tr', function(){
256 - $table.find('tr._active').removeClass('_active'); 188 + $mainTab.find('tr._active').removeClass('_active');
257 $(this).addClass('_active'); 189 $(this).addClass('_active');
258 190
259 //显示班次详细 191 //显示班次详细
@@ -265,6 +197,8 @@ $(function(){ @@ -265,6 +197,8 @@ $(function(){
265 197
266 var id = $(this).data('id'); 198 var id = $(this).data('id');
267 childTaskBtn(scheduleIdMap[id].bcType); 199 childTaskBtn(scheduleIdMap[id].bcType);
  200 +
  201 + refreshChildTasks();
268 }); 202 });
269 203
270 //子任务按钮 204 //子任务按钮
@@ -394,8 +328,21 @@ $(function(){ @@ -394,8 +328,21 @@ $(function(){
394 328
395 var htmlStr = template('child_task_main_table_temp', {list: schArray}); 329 var htmlStr = template('child_task_main_table_temp', {list: schArray});
396 $('#childTaskDiv .mainTable tbody').html(htmlStr); 330 $('#childTaskDiv .mainTable tbody').html(htmlStr);
  331 +
  332 + //清空子任务列表
  333 + resetSubTanle();
  334 + }
  335 +
  336 + function resetSubTanle(){
  337 + $subTab.find('tbody').html('<tr><td class="no_check_main_task" colspan=8></td></tr>');
397 } 338 }
398 339
  340 + //删除子任务
  341 + $('#childTaskDiv').on('click','.child_task_delete', function(){
  342 + var id = $(this).data('id');
  343 + removeConfirm('确定删除子任务?', '/childTask/' + id, refreshChildTasks);
  344 + });
  345 +
399 346
400 $('.childTaskBtns .custom-btn').on('click', function(){ 347 $('.childTaskBtns .custom-btn').on('click', function(){
401 var schedul = scheduleIdMap[$('.mainTable tr._active').data('id')]; 348 var schedul = scheduleIdMap[$('.mainTable tr._active').data('id')];
@@ -523,4 +470,18 @@ $(function(){ @@ -523,4 +470,18 @@ $(function(){
523 } 470 }
524 } 471 }
525 }); 472 });
  473 +
  474 +//刷新子任务表格
  475 +function refreshChildTasks(){
  476 + //主任务id
  477 + var id = $mainTab.find('tr._active').data('id');
  478 +
  479 + $.get('/childTask/all', {'schedule.id_eq': id}, function(rs){
  480 + var htmlStr = template('child_task_sub_table_temp', {list: rs});
  481 +
  482 + dictionaryUtils.transformDom(
  483 + $subTab.find('tbody').html(htmlStr).find('.nt-dictionary')
  484 + );
  485 + });
  486 +}
526 </script> 487 </script>
src/main/resources/static/pages/control/line/child_pages/js/child_task.js
@@ -184,6 +184,9 @@ var childTaskCase = { @@ -184,6 +184,9 @@ var childTaskCase = {
184 } 184 }
185 //相关选项事件绑定 185 //相关选项事件绑定
186 function bindEvent(taskItem){ 186 function bindEvent(taskItem){
  187 + //字典下拉框
  188 + dictionaryUtils.transformDom($('.nt-dictionary', taskItem));
  189 +
187 var $reason = taskItem.find('.destroy-reason-wrap'); 190 var $reason = taskItem.find('.destroy-reason-wrap');
188 //里程类型下拉框 191 //里程类型下拉框
189 var mileageTypeSel = $('select[name=mileageType]', taskItem); 192 var mileageTypeSel = $('select[name=mileageType]', taskItem);
@@ -194,10 +197,10 @@ var childTaskCase = { @@ -194,10 +197,10 @@ var childTaskCase = {
194 }).on('ifChanged', function(){ 197 }).on('ifChanged', function(){
195 if(this.checked){ 198 if(this.checked){
196 $reason.show(); 199 $reason.show();
197 - mileageTypeSel.val('营运').attr('readonly', 'readonly'); 200 + mileageTypeSel.val('service').attr('readonly', 'readonly');
198 //隐藏结束时间 201 //隐藏结束时间
199 hideInput($('input[name=endDate]', taskItem)); 202 hideInput($('input[name=endDate]', taskItem));
200 - changeBadge('烂班', taskItem); 203 + changeBadge('destory', taskItem);
201 } 204 }
202 else{ 205 else{
203 mileageTypeSel.removeAttr('readonly').change(); 206 mileageTypeSel.removeAttr('readonly').change();
@@ -211,17 +214,16 @@ var childTaskCase = { @@ -211,17 +214,16 @@ var childTaskCase = {
211 $reason.find('select').on('change', function(){ 214 $reason.find('select').on('change', function(){
212 globalRem.val(globalRem.val() + $(this).val() + ','); 215 globalRem.val(globalRem.val() + $(this).val() + ',');
213 }); 216 });
  217 +
214 //里程类型 218 //里程类型
215 mileageTypeSel.on('change', function(){ 219 mileageTypeSel.on('change', function(){
216 //如果已烂班 220 //如果已烂班
217 if($('.icheck', taskItem)[0].checked) 221 if($('.icheck', taskItem)[0].checked)
218 return; 222 return;
  223 +
219 changeBadge($(this).val(), taskItem); 224 changeBadge($(this).val(), taskItem);
220 }); 225 });
221 226
222 - //任务类型字典下拉框  
223 - dictionaryUtils.transformDom($('.nt-dictionary', taskItem));  
224 -  
225 $('select[name=type2]', taskItem).on('change', function(){ 227 $('select[name=type2]', taskItem).on('change', function(){
226 var t = $(this).val(); 228 var t = $(this).val();
227 229
@@ -280,13 +282,18 @@ var childTaskCase = { @@ -280,13 +282,18 @@ var childTaskCase = {
280 ,no = $('.no', badge) 282 ,no = $('.no', badge)
281 ,remClaszz = 'yinyun kongshi destroy', clazz; 283 ,remClaszz = 'yinyun kongshi destroy', clazz;
282 284
283 - if(t == '营运') 285 + if(t == 'service'){
  286 + t = '营运'
284 clazz = 'yinyun'; 287 clazz = 'yinyun';
285 - else if(t == '空驶') 288 + }
  289 + else if(t == 'empty'){
  290 + t = '空驶'
286 clazz = 'kongshi'; 291 clazz = 'kongshi';
287 - else if(t == '烂班') 292 + }
  293 + else if(t == 'destory'){
  294 + t = '烂班';
288 clazz = 'destroy'; 295 clazz = 'destroy';
289 - 296 + }
290 $(badge).find('.text').remove(); 297 $(badge).find('.text').remove();
291 if(!t){ 298 if(!t){
292 clazz = 'yinyun'; 299 clazz = 'yinyun';
@@ -332,6 +339,8 @@ function childTaskSubmit(fs, layerIndex){ @@ -332,6 +339,8 @@ function childTaskSubmit(fs, layerIndex){
332 layer.msg('子任务添加成功'); 339 layer.msg('子任务添加成功');
333 setTimeout(function(){ 340 setTimeout(function(){
334 layer.close(layerIndex); 341 layer.close(layerIndex);
  342 + //刷新子任务列表
  343 + refreshChildTasks();
335 }, 700); 344 }, 700);
336 }); 345 });
337 } 346 }
src/main/resources/static/pages/control/line/child_pages/temporary_add.html deleted 100644 → 0
1 -<!-- 临加班次 -->  
2 -<div id="temporaryAddDiv">  
3 - <form action="#" class="form-horizontal form-custom">  
4 - <div class="form-body">  
5 - <div class="form-custom-row">  
6 - <div class="item" style="margin-top: 0">  
7 - <span class="item-label" style="width: 40px;">线路: </span>  
8 - <select name="line" class="form-control lineSelect"></select>  
9 - </div>  
10 - &nbsp;&nbsp;  
11 - <div class="item" style="margin-top: 0">  
12 - <span class="item-label" style="width: 40px;">路牌: </span>  
13 - <select name="foo" class="form-control LPSelect">  
14 - </select>  
15 - <i class="fa fa-plus add-icon" title="新增路牌"></i>  
16 - </div>  
17 - </div>  
18 - </div>  
19 - </form>  
20 -  
21 - <div class="row" style="margin: 0">  
22 - <div class="col-md-12 ">  
23 - <div class="custom-table-title">班次</div>  
24 - <div class="custom-table-panel">  
25 - <div style="height: 36px; position: relative;">  
26 - <div class="custom-table-header">  
27 - <table class="table table-bordered table-advance">  
28 - <thead>  
29 - <tr>  
30 - <th width="7%">序号</th>  
31 - <th width="9%">开始时间</th>  
32 - <th width="9%">结束时间</th>  
33 - <th width="13%">起点</th>  
34 - <th width="13%">终点</th>  
35 - <th width="7%">里程</th>  
36 - <th width="10%">车辆</th>  
37 - <th width="9%">驾驶员</th>  
38 - <th width="9%">售票员</th>  
39 - </tr>  
40 - </thead>  
41 - </table>  
42 - </div>  
43 - </div>  
44 -  
45 - <div class="custom-table-body">  
46 - <table class="table table-bordered table-advance">  
47 - <tbody>  
48 - <tr>  
49 - <td width="7%">1</td>  
50 - <td width="9%">05:00</td>  
51 - <td width="9%">05:00</td>  
52 - <td width="13%">长岛路东陆路</td>  
53 - <td width="13%">陆家嘴地铁站</td>  
54 - <td width="7%">22</td>  
55 - <td width="10%">W2B-091</td>  
56 - <td width="9%">张全强</td>  
57 - <td width="9%"></td>  
58 - </tr>  
59 - <tr>  
60 - <td>2</td>  
61 - <td>06:00</td>  
62 - <td>07:00</td>  
63 - <td>长岛路东陆路</td>  
64 - <td>陆家嘴地铁站</td>  
65 - <td>22</td>  
66 - <td>W2B-091</td>  
67 - <td>张全强</td>  
68 - <td></td>  
69 - </tr>  
70 - <tr>  
71 - <td>3</td>  
72 - <td>05:00</td>  
73 - <td>05:00</td>  
74 - <td>长岛路东陆路</td>  
75 - <td>陆家嘴地铁站</td>  
76 - <td>22</td>  
77 - <td>W2B-091</td>  
78 - <td>张全强</td>  
79 - <td></td>  
80 - </tr>  
81 - <tr>  
82 - <td>4</td>  
83 - <td>05:00</td>  
84 - <td>05:00</td>  
85 - <td>长岛路东陆路</td>  
86 - <td>陆家嘴地铁站</td>  
87 - <td>22</td>  
88 - <td>W2B-091</td>  
89 - <td>张全强</td>  
90 - <td></td>  
91 - </tr>  
92 - <tr>  
93 - <td>5</td>  
94 - <td>05:00</td>  
95 - <td>05:00</td>  
96 - <td>长岛路东陆路</td>  
97 - <td>陆家嘴地铁站</td>  
98 - <td>22</td>  
99 - <td>W2B-091</td>  
100 - <td>张全强</td>  
101 - <td></td>  
102 - </tr>  
103 - <tr>  
104 - <td>6</td>  
105 - <td>05:00</td>  
106 - <td>05:00</td>  
107 - <td>长岛路东陆路</td>  
108 - <td>陆家嘴地铁站</td>  
109 - <td>22</td>  
110 - <td>W2B-091</td>  
111 - <td>张全强</td>  
112 - <td></td>  
113 - </tr>  
114 - <tr>  
115 - <td>7</td>  
116 - <td>05:00</td>  
117 - <td>05:00</td>  
118 - <td>长岛路东陆路</td>  
119 - <td>陆家嘴地铁站</td>  
120 - <td>22</td>  
121 - <td>W2B-091</td>  
122 - <td>张全强</td>  
123 - <td></td>  
124 - </tr>  
125 - <tr>  
126 - <td>8</td>  
127 - <td>05:00</td>  
128 - <td>05:00</td>  
129 - <td>长岛路东陆路</td>  
130 - <td>陆家嘴地铁站</td>  
131 - <td>22</td>  
132 - <td>W2B-091</td>  
133 - <td>张全强</td>  
134 - <td></td>  
135 - </tr>  
136 - <tr>  
137 - <td>9</td>  
138 - <td>05:00</td>  
139 - <td>05:00</td>  
140 - <td>长岛路东陆路</td>  
141 - <td>陆家嘴地铁站</td>  
142 - <td>22</td>  
143 - <td>W2B-091</td>  
144 - <td>张全强</td>  
145 - <td></td>  
146 - </tr>  
147 - <tr>  
148 - <td>10</td>  
149 - <td>05:00</td>  
150 - <td>05:00</td>  
151 - <td>长岛路东陆路</td>  
152 - <td>陆家嘴地铁站</td>  
153 - <td>22</td>  
154 - <td>W2B-091</td>  
155 - <td>张全强</td>  
156 - <td></td>  
157 - </tr>  
158 - <tr>  
159 - <td>11</td>  
160 - <td>05:00</td>  
161 - <td>05:00</td>  
162 - <td>长岛路东陆路</td>  
163 - <td>陆家嘴地铁站</td>  
164 - <td>22</td>  
165 - <td>W2B-091</td>  
166 - <td>张全强</td>  
167 - <td></td>  
168 - </tr>  
169 - <tr>  
170 - <td>12</td>  
171 - <td>05:00</td>  
172 - <td>05:00</td>  
173 - <td>长岛路东陆路</td>  
174 - <td>陆家嘴地铁站</td>  
175 - <td>22</td>  
176 - <td>W2B-091</td>  
177 - <td>张全强</td>  
178 - <td></td>  
179 - </tr>  
180 - <tr>  
181 - <td>13</td>  
182 - <td>05:00</td>  
183 - <td>05:00</td>  
184 - <td>长岛路东陆路</td>  
185 - <td>陆家嘴地铁站</td>  
186 - <td>22</td>  
187 - <td>W2B-091</td>  
188 - <td>张全强</td>  
189 - <td></td>  
190 - </tr>  
191 - <tr>  
192 - <td>14</td>  
193 - <td>05:00</td>  
194 - <td>05:00</td>  
195 - <td>长岛路东陆路</td>  
196 - <td>陆家嘴地铁站</td>  
197 - <td>22</td>  
198 - <td>W2B-091</td>  
199 - <td>张全强</td>  
200 - <td></td>  
201 - </tr>  
202 - <tr>  
203 - <td>15</td>  
204 - <td>05:00</td>  
205 - <td>05:00</td>  
206 - <td>长岛路东陆路</td>  
207 - <td>陆家嘴地铁站</td>  
208 - <td>22</td>  
209 - <td>W2B-091</td>  
210 - <td>张全强</td>  
211 - <td></td>  
212 - </tr>  
213 - </tbody>  
214 - </table>  
215 - </div>  
216 - </div>  
217 - </div>  
218 - </div>  
219 -  
220 -  
221 - <div class="temporary-box">  
222 - <hr>  
223 - <div class="row">  
224 - <div class="col-md-4">  
225 - <span class="custom-label">班次类型: </span> <select  
226 - class="form-control">  
227 - <option class="正常">正常</option>  
228 - <option class="进场">进场</option>  
229 - <option class="出场">出场</option>  
230 - </select>  
231 - </div>  
232 - <div class="col-md-4"></div>  
233 - <div class="col-md-4">  
234 - <span class="custom-label">上下行:</span> <select class="form-control">  
235 - <option class="上行">上行</option>  
236 - <option class="下行">下行</option>  
237 - </select>  
238 - </div>  
239 - </div>  
240 -  
241 - <div class="row">  
242 - <div class="col-md-4">  
243 - <span class="custom-label">序号: </span> <input value="4"  
244 - class="form-control">  
245 - </div>  
246 - <div class="col-md-4">  
247 - <span class="custom-label">开始时间: </span> <input value="09:16"  
248 - class="form-control">  
249 - </div>  
250 - <div class="col-md-4">  
251 - <span class="custom-label">结束时间:</span> <input value="09:54"  
252 - class="form-control">  
253 - </div>  
254 - </div>  
255 -  
256 - <div class="row">  
257 - <div class="col-md-4">  
258 - <span class="custom-label">起点: </span> <select class="form-control">  
259 - <option class="陆家嘴地铁站">陆家嘴地铁站</option>  
260 - </select>  
261 - </div>  
262 - <div class="col-md-4">  
263 - <span class="custom-label">终点: </span> <select class="form-control">  
264 - <option class="陆家嘴地铁站">陆家嘴地铁站</option>  
265 - </select>  
266 - </div>  
267 - <div class="col-md-4">  
268 - <span class="custom-label">里程:</span> <input value="13.66"  
269 - class="form-control">  
270 - </div>  
271 - </div>  
272 - <hr>  
273 - <div class="row" style="margin-top: 0;">  
274 - <div class="col-md-4">  
275 - <span class="custom-label">车辆: </span> <input value="W2B-098"  
276 - class="form-control">  
277 - </div>  
278 - <div class="col-md-4">  
279 - <span class="custom-label">驾驶员: </span> <input value="015583/凌羽雄"  
280 - class="form-control">  
281 - </div>  
282 - <div class="col-md-4">  
283 - <span class="custom-label">售票员: </span> <input value=""  
284 - class="form-control">  
285 - </div>  
286 - </div>  
287 - </div>  
288 -  
289 -</div>  
290 -  
291 -<hr>  
292 -<div class="form-custom-footer" style="margin-top: 15px;">  
293 - <button type="button" class="btn blue-madison confirm">  
294 - <i class="fa fa-check"></i> &nbsp;&nbsp;确&nbsp;&nbsp;定  
295 - </button>  
296 - <button type="button" class="btn layui-layer-close">取消</button>  
297 -</div>  
298 -  
299 -<script>  
300 -(function() {  
301 - //停靠表头  
302 - var width = $('.custom-table-body').width();  
303 - $('.custom-table-header').css('position', 'fixed').css('width', width);  
304 -  
305 - var storage = window.localStorage;  
306 - var lineItems = JSON.parse(storage.getItem('lineControlItems'));  
307 -  
308 - //线路下拉框  
309 - var lineData = [];  
310 - $.each(lineItems, function(){  
311 - lineData.push({id: this.lineCode, text: this.name});  
312 - });  
313 -  
314 - var lineSelect = $('#temporaryAddDiv .lineSelect');  
315 - var lpSelect = $('#temporaryAddDiv .LPSelect');  
316 - initPinYinSelect2(lineSelect, lineData);  
317 -  
318 - $('#temporaryAddDiv').on('init', function(e, ops){  
319 - var data = ops.data  
320 - , lineData = [], lineName;  
321 -  
322 - for(var lineCode in data ){  
323 - lineName = lineMap[lineCode];  
324 - lineData.push({id: lineCode, text: lineName});  
325 - }  
326 - });  
327 -})();  
328 -</script>  
329 \ No newline at end of file 0 \ No newline at end of file
src/main/resources/static/pages/control/line/child_pages/vehicAndper_adjust.html
@@ -4,10 +4,14 @@ @@ -4,10 +4,14 @@
4 <div class="form-body"> 4 <div class="form-body">
5 <div class="form-custom-row"> 5 <div class="form-custom-row">
6 <div class="item full" > 6 <div class="item full" >
7 - <span class="item-label" style="width: 80px;">执行路牌: </span>  
8 - <select class="form-control" style="width: calc(100% - 90px);">  
9 - <option value="青9">青9</option>  
10 - </select> 7 + <div style="display: inline-block;">
  8 + <span class="item-label" style="width: 80px;">线路: </span>
  9 + <select class="form-control lineSelect" style="width: 180px;"></select>
  10 + </div>
  11 + <div style="display: inline-block;margin-left: 15px;">
  12 + <span class="item-label" style="width: 80px;">执行路牌: </span>
  13 + <select class="form-control lpSelect" style="width: 140px;"></select>
  14 + </div>
11 </div> 15 </div>
12 </div> 16 </div>
13 17
@@ -31,89 +35,9 @@ @@ -31,89 +35,9 @@
31 </div> 35 </div>
32 </div> 36 </div>
33 37
34 - <div class="custom-table-body">  
35 - <table class="table table-bordered table-advance"> 38 + <div class="custom-table-body" >
  39 + <table class="table table-bordered table-advance" >
36 <tbody> 40 <tbody>
37 - <tr>  
38 - <td width="20%">  
39 - <input type="checkbox"> 15:54  
40 - </td>  
41 - <td width="20%">Q4A-006</td>  
42 - <td width="30%">011434/周明</td>  
43 - <td width="30%">903383/潘扣来</td>  
44 - </tr>  
45 - <tr>  
46 - <td>  
47 - <input type="checkbox"> 15:54  
48 - </td>  
49 - <td>Q4A-006</td>  
50 - <td>011434/周明</td>  
51 - <td>903383/潘扣来</td>  
52 - </tr>  
53 - <tr>  
54 - <td>  
55 - <input type="checkbox"> 15:54  
56 - </td>  
57 - <td>Q4A-006</td>  
58 - <td>011434/周明</td>  
59 - <td>903383/潘扣来</td>  
60 - </tr>  
61 - <tr>  
62 - <td>  
63 - <input type="checkbox"> 15:54  
64 - </td>  
65 - <td>Q4A-006</td>  
66 - <td>011434/周明</td>  
67 - <td>903383/潘扣来</td>  
68 - </tr>  
69 - <tr>  
70 - <td>  
71 - <input type="checkbox"> 15:54  
72 - </td>  
73 - <td>Q4A-006</td>  
74 - <td>011434/周明</td>  
75 - <td>903383/潘扣来</td>  
76 - </tr>  
77 - <tr>  
78 - <td>  
79 - <input type="checkbox"> 15:54  
80 - </td>  
81 - <td>Q4A-006</td>  
82 - <td>011434/周明</td>  
83 - <td>903383/潘扣来</td>  
84 - </tr>  
85 - <tr>  
86 - <td>  
87 - <input type="checkbox"> 15:54  
88 - </td>  
89 - <td>Q4A-006</td>  
90 - <td>011434/周明</td>  
91 - <td>903383/潘扣来</td>  
92 - </tr>  
93 - <tr>  
94 - <td>  
95 - <input type="checkbox"> 15:54  
96 - </td>  
97 - <td>Q4A-006</td>  
98 - <td>011434/周明</td>  
99 - <td>903383/潘扣来</td>  
100 - </tr>  
101 - <tr>  
102 - <td>  
103 - <input type="checkbox"> 15:54  
104 - </td>  
105 - <td>Q4A-006</td>  
106 - <td>011434/周明</td>  
107 - <td>903383/潘扣来</td>  
108 - </tr>  
109 - <tr>  
110 - <td>  
111 - <input type="checkbox"> 15:54  
112 - </td>  
113 - <td>Q4A-006</td>  
114 - <td>011434/周明</td>  
115 - <td>903383/潘扣来</td>  
116 - </tr>  
117 </tbody> 41 </tbody>
118 </table> 42 </table>
119 </div> 43 </div>
@@ -170,11 +94,128 @@ @@ -170,11 +94,128 @@
170 </div> 94 </div>
171 </form> 95 </form>
172 </div> 96 </div>
  97 +<script id="pers_adjust_table_temp" type="text/html">
  98 +{{each list as item i}}
  99 +{{if item != null}}
  100 +<tr data-id={{item.id}}>
  101 + <td width="20%">
  102 + <input type="checkbox" class="icheck"> {{item.fcsj}}
  103 + </td>
  104 + <td width="20%">{{item.clZbh}}</td>
  105 + <td width="30%">{{item.jGh}}/{{item.jName}}</td>
  106 + <td width="30%">{{item.sGh}}/{{item.sName}}</td>
  107 +</tr>
  108 +{{/if}}
  109 +{{/each}}
  110 +</script>
173 <script> 111 <script>
174 (function() { 112 (function() {
  113 + var _data, _alone, scheduleLineMap, scheduleIdMap;
  114 +
175 //停靠表头 115 //停靠表头
176 - var width = $('.custom-table-body').width();  
177 - $('.custom-table-header').css('position', 'fixed').css('width', width);  
178 - 116 + /* var width = $('.custom-table-body').width();
  117 + $('.custom-table-header').css('position', 'fixed').css('width', width); */
  118 + //滚动时固定表头
  119 + $('.custom-table-panel').on('scroll', function(){
  120 + var top = $(this).scrollTop()
  121 + ,$header = $(this).find('.custom-table-header');
  122 + $header.css('top', top);
  123 + });
  124 +
  125 + var wrap = '#vehicleAndPersionAdjustDiv';
  126 + var lineSelect = $('.lineSelect', wrap);
  127 + var lpSelect = $('.lpSelect', wrap);
  128 +
  129 + //班次选中事件
  130 + $(wrap).on('ifChanged', '.icheck', function(){
  131 + var $tr = $(this).parents('tr');
  132 + if(this.checked)
  133 + $tr.addClass('adjust_tr_active');
  134 + else
  135 + $tr.removeClass('adjust_tr_active');
  136 + });
  137 +
  138 + //初始化
  139 + $(wrap).on('init', function(e, ops ){
  140 + _data = ops._data;
  141 + _alone = ops._alone;
  142 + var schedul = ops.selected;
  143 + //线路 ——> 路牌 ——> 班次映射
  144 + scheduleLineMap = _data.getLineLpMap();
  145 + //线路下拉框数据
  146 + lineCodeMaps = _data.getLineIds();
  147 + var lineData = [], lineName;
  148 + for(var lineCode in scheduleLineMap){
  149 + lineName = lineCodeMaps[lineCode];
  150 + lineData.push({id: lineCode, text: lineName});
  151 + }
  152 +
  153 + initPinYinSelect2(lineSelect, lineData, function(){
  154 + //绑定change事件
  155 + lineSelect.on('change', changeLine);
  156 + //初始选中的线路
  157 + lineSelect.val(schedul.xlBm).trigger("change");
  158 +
  159 + setTimeout(function(){
  160 + //选中路牌
  161 + lpSelect.val(schedul.lpName).trigger("change");
  162 +
  163 + //选中班次
  164 + var $tr = $('table tr[data-id='+schedul.id+']', wrap);
  165 + $tr.find('input').iCheck('check');
  166 + //滚动条
  167 + var cont = $('.custom-table-panel');
  168 + cont.animate({
  169 + scrollTop: $tr.offset().top - cont.offset().top + $tr.scrollTop() - 36 * 4
  170 + }, 500);
  171 +
  172 + }, 100);
  173 + });
  174 +
  175 + lpSelect.on('change', refreshMainList);
  176 +
  177 + function changeLine(){
  178 + var lineCode = lineSelect.val();
  179 + //设置路牌数据
  180 + var data = [];
  181 + for(var lp in scheduleLineMap[lineCode]){
  182 + data.push({id: lp, text: lp});
  183 + }
  184 + if(data.length > 0){
  185 + initPinYinSelect2(lpSelect.html(''), data, function(){
  186 + refreshMainList();
  187 + });
  188 + }
  189 + //人员下拉框
  190 + //carAndPersInit(lineCode);
  191 + }
  192 +
  193 + /**
  194 + * 刷新主任务列表
  195 + */
  196 + function refreshMainList(){
  197 + var lineCode = lineSelect.val()
  198 + ,lp = lpSelect.val()
  199 + ,scheduls = scheduleLineMap[lineCode][lp];
  200 + //保留当前列表班次的映射
  201 + scheduleIdMap = {};
  202 + $.each(scheduls, function(){
  203 + scheduleIdMap[this.id] = this;
  204 + });
  205 +
  206 + var schArray = [];
  207 + $.each(scheduls, function(){
  208 + schArray[this.fcno - 1] = this;
  209 + });
  210 +
  211 + var htmlStr = template('pers_adjust_table_temp', {list: schArray});
  212 + $('table tbody', wrap).html(htmlStr);
  213 +
  214 + $('.icheck', wrap).iCheck({
  215 + checkboxClass: 'icheckbox_flat-blue',
  216 + increaseArea: '20%'
  217 + });
  218 + }
  219 + });
179 })(); 220 })();
180 </script> 221 </script>
src/main/resources/static/pages/control/line/css/lineControl.css
@@ -1355,10 +1355,12 @@ height: 400px; @@ -1355,10 +1355,12 @@ height: 400px;
1355 height: 36px; 1355 height: 36px;
1356 width: 100%; 1356 width: 100%;
1357 position: absolute; 1357 position: absolute;
  1358 + z-index: 99;
1358 } 1359 }
1359 1360
1360 .custom-table-panel table{ 1361 .custom-table-panel table{
1361 margin-bottom: 0 !important; 1362 margin-bottom: 0 !important;
  1363 + table-layout: fixed;
1362 } 1364 }
1363 1365
1364 .custom-table-header table tr th, 1366 .custom-table-header table tr th,
@@ -1747,4 +1749,99 @@ tr.empty._active { @@ -1747,4 +1749,99 @@ tr.empty._active {
1747 1749
1748 .custom-box-body .select2-container--bootstrap{ 1750 .custom-box-body .select2-container--bootstrap{
1749 display: inline-block; 1751 display: inline-block;
1750 -}  
1751 \ No newline at end of file 1752 \ No newline at end of file
  1753 +}
  1754 +
  1755 +.child_task_badge:BEFORE{
  1756 + padding: 2px 5px;
  1757 + font-size: 12px;
  1758 + float: right;
  1759 +}
  1760 +
  1761 +.child_task_badge.service_0:BEFORE{
  1762 + content: '营';
  1763 + background: #4796cc;
  1764 + color: white;
  1765 +}
  1766 +
  1767 +.child_task_badge.empty_0:BEFORE{
  1768 + content: '空';
  1769 + background: #9f9f9f;
  1770 + color: white;
  1771 +}
  1772 +
  1773 +.child_task_badge.service_1:BEFORE,
  1774 +.child_task_badge.empty_1:BEFORE{
  1775 + content: '烂';
  1776 + background: red;
  1777 + color: white;
  1778 +}
  1779 +
  1780 +.no_check_main_task:BEFORE{
  1781 + content: '请先选择主任务...';
  1782 + font-size: 12px;
  1783 + margin-left: 200px;
  1784 +}
  1785 +
  1786 +td.empty_text{
  1787 + font-size: 12px;
  1788 + text-indent: 160px;
  1789 +}
  1790 +
  1791 +.popover{
  1792 + z-index: 99999999;
  1793 +}
  1794 +
  1795 +a.no_and_removeLink {
  1796 + color: #4a4aff;
  1797 + text-decoration: underline;
  1798 +}
  1799 +
  1800 +.subTable .dropdown{
  1801 + display: inline-block;
  1802 +}
  1803 +
  1804 +.subTable .dropdown-menu > li > a{
  1805 + padding: 6px 9px;
  1806 +}
  1807 +
  1808 +.subTable .dropdown-menu{
  1809 + left: -7px !important;
  1810 + width: 65px;
  1811 + box-shadow: 0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
  1812 + min-width: 65px;
  1813 + border: none;
  1814 +}
  1815 +
  1816 +.subTable .dropdown .dropdown-menu:before
  1817 +{
  1818 + border-bottom: 8px solid #ff8686;
  1819 + left: 4px;
  1820 +}
  1821 +
  1822 +.subTable .dropdown .dropdown-menu:after{
  1823 + border-bottom: 8px solid #ff8686;
  1824 + left: 5px;
  1825 +}
  1826 +
  1827 +.subTable .dropdown li.child_task_delete{
  1828 + background: #ff8686;
  1829 + font-size: 12px;
  1830 +}
  1831 +
  1832 +.subTable .dropdown-menu > li.child_task_delete > a,
  1833 +.subTable .dropdown-menu > li.child_task_delete > a > i{
  1834 + color: white;
  1835 +}
  1836 +
  1837 +.subTable .dropdown-menu > li.child_task_delete:hover > a{
  1838 + background: linear-gradient(to bottom, #ff8585 0%, #ee4646 100px);
  1839 + color: white;
  1840 +}
  1841 +
  1842 +#vehicleAndPersionAdjustDiv table tr td{
  1843 + transition: all .3s ease;
  1844 +}
  1845 +
  1846 +tr.adjust_tr_active td{
  1847 + border-bottom: 1px solid #3598dc !important;
  1848 +}
src/main/resources/static/pages/control/line/js/alone.js
@@ -65,23 +65,21 @@ var _alone = (function(){ @@ -65,23 +65,21 @@ var _alone = (function(){
65 //添加一个班次到表格 65 //添加一个班次到表格
66 addScheduleToTable: function(schedule){ 66 addScheduleToTable: function(schedule){
67 var upDown = schedule.xlDir==0?'up':'down'; 67 var upDown = schedule.xlDir==0?'up':'down';
  68 + var tab = $('#tab_line_' + schedule.xlBm);
68 //重新渲染表格 69 //重新渲染表格
69 - var table = $('#tab_line_' + schedule.xlBm).find('.pb-table[data-type='+upDown+']'); 70 + var table = tab.find('.pb-table[data-type='+upDown+']');
70 //获取班次信息 71 //获取班次信息
71 var schArray = _data.findSchByLine(schedule.xlBm, schedule.xlDir); 72 var schArray = _data.findSchByLine(schedule.xlBm, schedule.xlDir);
72 calculateLineNo( 73 calculateLineNo(
73 table.find('tbody').html(template('alone_plan_table_temp', {list: schArray}))[0] 74 table.find('tbody').html(template('alone_plan_table_temp', {list: schArray}))[0]
74 ); 75 );
75 76
76 - var currTr = table.find('tr[data-id='+schedule.id+']');  
77 - console.log(currTr);  
78 - //重新设置滚动条,  
79 - table.find('._body').slimscroll({  
80 - height: 'calc(100% - 80px)',  
81 - alwaysVisible: true,  
82 - start: currTr  
83 - }); 77 + //定位到新添加的班次
  78 + var currTr = table.find('tr[data-id='+schedule.id+']')
  79 + ,top = parseInt(currTr.find('td[name=lineNo]').text()) * 37;
84 80
  81 + currTr.addClass('animated flash');
  82 + currTr.parents('._body').slimScroll({ scrollTo: top + 'px' });
85 }, 83 },
86 //重新计算行号 84 //重新计算行号
87 calculateLineNo: calculateLineNo 85 calculateLineNo: calculateLineNo
src/main/resources/static/pages/control/line/js/rightMenu.js
@@ -48,7 +48,6 @@ var _menu = (function() { @@ -48,7 +48,6 @@ var _menu = (function() {
48 type: 1, 48 type: 1,
49 area: ['630px', '545px'], 49 area: ['630px', '545px'],
50 maxmin: true, 50 maxmin: true,
51 - skin:'layui-layer-molv',  
52 content: template('outgo_adjust_body_temp', schedul), 51 content: template('outgo_adjust_body_temp', schedul),
53 shift: 5, 52 shift: 5,
54 title: '待发调整', 53 title: '待发调整',
@@ -74,7 +73,6 @@ var _menu = (function() { @@ -74,7 +73,6 @@ var _menu = (function() {
74 type: 1, 73 type: 1,
75 area: ['370px', '645px'], 74 area: ['370px', '645px'],
76 maxmin: true, 75 maxmin: true,
77 - skin:'layui-layer-molv',  
78 content: template('plan_destroy_body_temp', data), 76 content: template('plan_destroy_body_temp', data),
79 shift: 5, 77 shift: 5,
80 title: '计划烂班设置', 78 title: '计划烂班设置',
@@ -154,7 +152,6 @@ var _menu = (function() { @@ -154,7 +152,6 @@ var _menu = (function() {
154 type: 1, 152 type: 1,
155 area: ['350px', '455px'], 153 area: ['350px', '455px'],
156 maxmin: true, 154 maxmin: true,
157 - skin:'layui-layer-molv',  
158 content: template('real_outgo_adjust_body_temp', {}), 155 content: template('real_outgo_adjust_body_temp', {}),
159 shift: 5, 156 shift: 5,
160 title: '实发调整', 157 title: '实发调整',
@@ -185,35 +182,22 @@ var _menu = (function() { @@ -185,35 +182,22 @@ var _menu = (function() {
185 }); 182 });
186 }); 183 });
187 }, 184 },
188 - //临加班次  
189 - temporaryAdd: function(schedul){  
190 - $.get('/pages/control/line/child_pages/temporary_add.html', function(content){  
191 - layer.open({  
192 - type: 1,  
193 - area: ['930px', '785px'],  
194 - maxmin: true,  
195 - skin:'layui-layer-molv',  
196 - content: content,  
197 - shift: 5,  
198 - title: '临加/抽增',  
199 - success: function(){  
200 - $('#temporaryAddDiv').trigger('init', {data: _data.getLineLpMap(), selected: schedul});  
201 - }  
202 - });  
203 - });  
204 - },  
205 //调整人车 185 //调整人车
206 - vehicAndPerAdjust: function(){ 186 + vehicAndPerAdjust: function(schedul){
207 $.get('/pages/control/line/child_pages/vehicAndper_adjust.html', function(content){ 187 $.get('/pages/control/line/child_pages/vehicAndper_adjust.html', function(content){
208 layer.open({ 188 layer.open({
209 type: 1, 189 type: 1,
210 area: ['730px', '655px'], 190 area: ['730px', '655px'],
211 maxmin: true, 191 maxmin: true,
212 - skin:'layui-layer-molv',  
213 content: content, 192 content: content,
214 shift: 5, 193 shift: 5,
215 - title: '调整85路车辆/人员', 194 + title: '调整车辆/人员',
216 success: function(){ 195 success: function(){
  196 + $('#vehicleAndPersionAdjustDiv').trigger('init', {
  197 + selected: schedul,
  198 + _data: _data,
  199 + _alone: _alone
  200 + });
217 } 201 }
218 }); 202 });
219 }); 203 });
src/main/resources/static/pages/control/line/temps/child_task_case_tp.html
1 <!-- 子任务,临加班次模板文件 --> 1 <!-- 子任务,临加班次模板文件 -->
  2 +<!-- 主任务表格模板 -->
2 <script id="child_task_main_table_temp" type="text/html"> 3 <script id="child_task_main_table_temp" type="text/html">
3 {{each list as item i}} 4 {{each list as item i}}
4 {{if item == null}} 5 {{if item == null}}
@@ -29,6 +30,42 @@ @@ -29,6 +30,42 @@
29 {{/each}} 30 {{/each}}
30 </script> 31 </script>
31 32
  33 +<!-- 子任务表格模板 -->
  34 +<script id="child_task_sub_table_temp" type="text/html">
  35 +{{each list as item i}}
  36 +<tr>
  37 + <td width="6%">
  38 + <div class="dropdown">
  39 + <a class="no_and_removeLink" href="javascript:;" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  40 + {{i + 1}}
  41 + </a>
  42 + <ul class="dropdown-menu" aria-labelledby="dLabel">
  43 + <li class="child_task_delete" data-id="{{item.id}}">
  44 + <a href="javascript:;"><i class="fa fa-remove"></i> 删除</a>
  45 + </li>
  46 + </ul>
  47 + </div>
  48 + <span class="child_task_badge {{item.mileageType}}_{{item.destroy?1:0}}"></span>
  49 + </td>
  50 + <td width="11%"><span class="nt-dictionary" data-group="ChildTaskType">{{item.type2}}</span></td>
  51 + <td width="16%">{{item.startStationName}}</td>
  52 + <td width="16%">{{item.endStationName}}</td>
  53 + <td width="10%">{{item.startDate}}</td>
  54 + <td width="10%">{{item.endDate}}</td>
  55 + <td width="7%">{{item.mileage}}</td>
  56 + <td width="11%">
  57 + {{item.remarks}}
  58 + </td>
  59 +</tr>
  60 +{{/each}}
  61 +
  62 +{{if list.length == 0}}
  63 +<tr>
  64 + <td colspan=8 class="empty_text">该班次没有子任务信息...</td>
  65 +</tr>
  66 +{{/if}}
  67 +</script>
  68 +
32 <!-- 进场子任务 --> 69 <!-- 进场子任务 -->
33 <script id="child_task_inpark_process_temp" type="text/html"> 70 <script id="child_task_inpark_process_temp" type="text/html">
34 <div class="custom-anim-modal wrap" id="inParkProcess"> 71 <div class="custom-anim-modal wrap" id="inParkProcess">
@@ -40,6 +77,7 @@ @@ -40,6 +77,7 @@
40 <form> 77 <form>
41 <input type="hidden" value="{{schedul.id}}" name="schedule.id"> 78 <input type="hidden" value="{{schedul.id}}" name="schedule.id">
42 <input type="hidden" value="正常" name="type1"> 79 <input type="hidden" value="正常" name="type1">
  80 + <input type="hidden" value="service" name="mileageType">
43 <a class="task-item-close"></a> 81 <a class="task-item-close"></a>
44 <div class="child-task-title">正常营运</div> 82 <div class="child-task-title">正常营运</div>
45 <div class="row"> 83 <div class="row">
@@ -81,6 +119,7 @@ @@ -81,6 +119,7 @@
81 <form> 119 <form>
82 <input type="hidden" value="{{schedul.id}}" name="schedule.id"> 120 <input type="hidden" value="{{schedul.id}}" name="schedule.id">
83 <input type="hidden" value="正常" name="type1"> 121 <input type="hidden" value="正常" name="type1">
  122 + <input type="hidden" value="empty" name="mileageType">
84 <a class="task-item-close"></a> 123 <a class="task-item-close"></a>
85 124
86 <div class="child-task-title">空驶进场</div> 125 <div class="child-task-title">空驶进场</div>
@@ -122,6 +161,7 @@ @@ -122,6 +161,7 @@
122 <input type="hidden" value="{{schedul.id}}" name="schedule.id"> 161 <input type="hidden" value="{{schedul.id}}" name="schedule.id">
123 <input type="hidden" value="正常" name="type1"> 162 <input type="hidden" value="正常" name="type1">
124 <input type="hidden" value="1" name="destroy"> 163 <input type="hidden" value="1" name="destroy">
  164 + <input type="hidden" value="service" name="mileageType">
125 165
126 <a class="task-item-close"></a> 166 <a class="task-item-close"></a>
127 <div class="child-task-title">烂班公里</div> 167 <div class="child-task-title">烂班公里</div>
@@ -144,7 +184,7 @@ @@ -144,7 +184,7 @@
144 <div class="row"> 184 <div class="row">
145 <div class="col-md-4"> 185 <div class="col-md-4">
146 <span class="custom-label">烂班里程:</span> 186 <span class="custom-label">烂班里程:</span>
147 - <input class="form-control" name="mileage" value="" type="number" disabled> 187 + <input class="form-control" name="mileage" value="" type="number" readonly>
148 </div> 188 </div>
149 <div class="col-md-4"> 189 <div class="col-md-4">
150 <span class="custom-label">开始时间: </span> 190 <span class="custom-label">开始时间: </span>
@@ -204,6 +244,7 @@ @@ -204,6 +244,7 @@
204 <form> 244 <form>
205 <input type="hidden" value="{{schedul.id}}" name="schedule.id"> 245 <input type="hidden" value="{{schedul.id}}" name="schedule.id">
206 <input type="hidden" value="正常" name="type1"> 246 <input type="hidden" value="正常" name="type1">
  247 + <input type="hidden" value="service" name="mileageType">
207 248
208 <a class="task-item-close"></a> 249 <a class="task-item-close"></a>
209 <div class="child-task-title">正常营运</div> 250 <div class="child-task-title">正常营运</div>
@@ -230,11 +271,11 @@ @@ -230,11 +271,11 @@
230 <div class="row"> 271 <div class="row">
231 <div class="col-md-4"> 272 <div class="col-md-4">
232 <span class="custom-label">营运里程:</span> 273 <span class="custom-label">营运里程:</span>
233 - <input class="form-control" name="mileage" value="{{schedul.jhlc}}" disabled> 274 + <input class="form-control" name="mileage" value="{{schedul.jhlc}}" readonly>
234 </div> 275 </div>
235 <div class="col-md-4"> 276 <div class="col-md-4">
236 <span class="custom-label">开始时间: </span> 277 <span class="custom-label">开始时间: </span>
237 - <input class="form-control" value="{{schedul.fcsj}}" name="startDate" type="time" disabled> 278 + <input class="form-control" value="{{schedul.fcsj}}" name="startDate" type="time" readonly>
238 </div> 279 </div>
239 <div class="col-md-4"> 280 <div class="col-md-4">
240 <span class="custom-label">结束时间: </span> 281 <span class="custom-label">结束时间: </span>
@@ -248,6 +289,7 @@ @@ -248,6 +289,7 @@
248 <form> 289 <form>
249 <input type="hidden" value="{{schedul.id}}" name="schedule.id"> 290 <input type="hidden" value="{{schedul.id}}" name="schedule.id">
250 <input type="hidden" value="正常" name="type1"> 291 <input type="hidden" value="正常" name="type1">
  292 + <input type="hidden" value="empty" name="mileageType">
251 293
252 <a class="task-item-close"></a> 294 <a class="task-item-close"></a>
253 <div class="child-task-title">空驶出场</div> 295 <div class="child-task-title">空驶出场</div>
@@ -359,11 +401,7 @@ @@ -359,11 +401,7 @@
359 <div class="row"> 401 <div class="row">
360 <div class="col-md-4"> 402 <div class="col-md-4">
361 <span class="custom-label">里程类型:</span> 403 <span class="custom-label">里程类型:</span>
362 - <select class="form-control" name="mileageType" required=1>  
363 - <option value="">请选择...</option>  
364 - <option value="营运">营运</option>  
365 - <option value="空驶">空驶</option>  
366 - </select> 404 + <select class="form-control nt-dictionary" required=1 name="mileageType" data-group="MileageType" ></select>
367 </div> 405 </div>
368 <div class="col-md-4"> 406 <div class="col-md-4">
369 <span class="custom-label">里程:</span> 407 <span class="custom-label">里程:</span>