Commit ff7647636035050778327ded7aed880ae3a132c2

Authored by 徐烜
2 parents 38ca936f af3890cb

Merge branch 'minhang' of http://192.168.168.201:8888/panzhaov5/bsth_control into minhang

Showing 35 changed files with 1842 additions and 1597 deletions
src/main/java/com/bsth/data/forecast/ForecastRealServer.java
1 package com.bsth.data.forecast; 1 package com.bsth.data.forecast;
2 2
3 -import java.text.DecimalFormat;  
4 -import java.util.ArrayList;  
5 -import java.util.HashMap;  
6 -import java.util.List;  
7 -import java.util.Map;  
8 -import java.util.concurrent.TimeUnit;  
9 -  
10 -import org.slf4j.Logger;  
11 -import org.slf4j.LoggerFactory;  
12 -import org.springframework.beans.factory.annotation.Autowired;  
13 -import org.springframework.boot.CommandLineRunner;  
14 -import org.springframework.stereotype.Component;  
15 -  
16 -import com.bsth.Application;  
17 import com.bsth.data.forecast.entity.ForecastResult; 3 import com.bsth.data.forecast.entity.ForecastResult;
18 import com.bsth.data.forecast.entity.ForecastResult.ForecastResultItem; 4 import com.bsth.data.forecast.entity.ForecastResult.ForecastResultItem;
19 import com.bsth.data.forecast.entity.SimpleRoute; 5 import com.bsth.data.forecast.entity.SimpleRoute;
@@ -23,6 +9,17 @@ import com.bsth.data.gpsdata.GpsRealData; @@ -23,6 +9,17 @@ import com.bsth.data.gpsdata.GpsRealData;
23 import com.bsth.data.schedule.DayOfSchedule; 9 import com.bsth.data.schedule.DayOfSchedule;
24 import com.bsth.entity.realcontrol.ScheduleRealInfo; 10 import com.bsth.entity.realcontrol.ScheduleRealInfo;
25 import com.google.common.collect.ArrayListMultimap; 11 import com.google.common.collect.ArrayListMultimap;
  12 +import org.slf4j.Logger;
  13 +import org.slf4j.LoggerFactory;
  14 +import org.springframework.beans.factory.annotation.Autowired;
  15 +import org.springframework.boot.CommandLineRunner;
  16 +import org.springframework.stereotype.Component;
  17 +
  18 +import java.text.DecimalFormat;
  19 +import java.util.ArrayList;
  20 +import java.util.HashMap;
  21 +import java.util.List;
  22 +import java.util.Map;
26 23
27 /** 24 /**
28 * 25 *
@@ -61,7 +58,7 @@ public class ForecastRealServer implements CommandLineRunner { @@ -61,7 +58,7 @@ public class ForecastRealServer implements CommandLineRunner {
61 @Override 58 @Override
62 public void run(String... arg0) throws Exception { 59 public void run(String... arg0) throws Exception {
63 //2小时更新一次站点间耗时数据 60 //2小时更新一次站点间耗时数据
64 -// Application.mainServices.scheduleWithFixedDelay(dataLoader, 12, 120 * 60, TimeUnit.SECONDS); 61 + //Application.mainServices.scheduleWithFixedDelay(dataLoader, 12, 120 * 60, TimeUnit.SECONDS);
65 } 62 }
66 63
67 /** 64 /**
src/main/java/com/bsth/data/schedule/SchAttrCalculator.java
@@ -3,6 +3,7 @@ package com.bsth.data.schedule; @@ -3,6 +3,7 @@ package com.bsth.data.schedule;
3 import com.bsth.data.LineConfigData; 3 import com.bsth.data.LineConfigData;
4 import com.bsth.entity.realcontrol.LineConfig; 4 import com.bsth.entity.realcontrol.LineConfig;
5 import com.bsth.entity.realcontrol.ScheduleRealInfo; 5 import com.bsth.entity.realcontrol.ScheduleRealInfo;
  6 +import org.apache.commons.lang3.StringUtils;
6 import org.joda.time.format.DateTimeFormat; 7 import org.joda.time.format.DateTimeFormat;
7 import org.joda.time.format.DateTimeFormatter; 8 import org.joda.time.format.DateTimeFormatter;
8 import org.slf4j.Logger; 9 import org.slf4j.Logger;
@@ -115,8 +116,11 @@ public class SchAttrCalculator { @@ -115,8 +116,11 @@ public class SchAttrCalculator {
115 ScheduleRealInfo prve = list.get(0), curr; 116 ScheduleRealInfo prve = list.get(0), curr;
116 for(int i = 1; i < len; i ++){ 117 for(int i = 1; i < len; i ++){
117 curr = list.get(i); 118 curr = list.get(i);
118 - if(prve.getZdzName().equals(curr.getQdzName())) 119 + if(prve.getZdzName().equals(curr.getQdzName())){
119 curr.setQdzArrDateJH(prve.getZdsj()); 120 curr.setQdzArrDateJH(prve.getZdsj());
  121 + if(StringUtils.isNotEmpty(prve.getZdsjActual()) && StringUtils.isEmpty(curr.getQdzArrDatesj()))
  122 + curr.setQdzArrDatesj(prve.getZdsjActual());
  123 + }
120 124
121 prve = curr; 125 prve = curr;
122 } 126 }
src/main/java/com/bsth/entity/mcy_forms/Operationservice.java
@@ -13,6 +13,26 @@ public class Operationservice { @@ -13,6 +13,26 @@ public class Operationservice {
13 private String emptMileage;//空驶里程 13 private String emptMileage;//空驶里程
14 14
15 private String sjbc;//实际班次 15 private String sjbc;//实际班次
  16 +
  17 + private String jname;
  18 +
  19 + private String clzbh;
  20 +
  21 + public String getJname() {
  22 + return jname;
  23 + }
  24 +
  25 + public void setJname(String jname) {
  26 + this.jname = jname;
  27 + }
  28 +
  29 + public String getClzbh() {
  30 + return clzbh;
  31 + }
  32 +
  33 + public void setClzbh(String clzbh) {
  34 + this.clzbh = clzbh;
  35 + }
16 36
17 public String getXlName() { 37 public String getXlName() {
18 return xlName; 38 return xlName;
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
@@ -300,13 +300,13 @@ public class FormsServiceImpl implements FormsService { @@ -300,13 +300,13 @@ public class FormsServiceImpl implements FormsService {
300 public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException { 300 public Singledata mapRow(ResultSet arg0, int arg1) throws SQLException {
301 Singledata sin = new Singledata(); 301 Singledata sin = new Singledata();
302 sin.setrQ(rq); 302 sin.setrQ(rq);
303 - sin.setgS(arg0.getString("gs_name").toString());  
304 - sin.setxL(arg0.getString("xl_bm").toString());  
305 - sin.setClzbh(arg0.getString("cl_zbh").toString());  
306 - sin.setJsy(arg0.getString("j_gh").toString());  
307 - sin.setjName(arg0.getString("j_name").toString());  
308 - sin.setHyl(arg0.getString("YH").toString());  
309 - sin.setJzl(arg0.getString("JZL").toString()); 303 + sin.setgS(arg0.getString("gs_name"));
  304 + sin.setxL(arg0.getString("xl_bm"));
  305 + sin.setClzbh(arg0.getString("cl_zbh"));
  306 + sin.setJsy(arg0.getString("j_gh"));
  307 + sin.setjName(arg0.getString("j_name"));
  308 + sin.setHyl(arg0.getString("YH"));
  309 + sin.setJzl(arg0.getString("JZL"));
310 // sin.setJzl(arg0.getString(""));//非营业性用油 310 // sin.setJzl(arg0.getString(""));//非营业性用油
311 sin.setJhjl(arg0.getString("JZL")); 311 sin.setJhjl(arg0.getString("JZL"));
312 Map<String, Object> maps = new HashMap<>(); 312 Map<String, Object> maps = new HashMap<>();
@@ -351,18 +351,25 @@ public class FormsServiceImpl implements FormsService { @@ -351,18 +351,25 @@ public class FormsServiceImpl implements FormsService {
351 @Override 351 @Override
352 public Operationservice mapRow(ResultSet arg0, int arg1) throws SQLException { 352 public Operationservice mapRow(ResultSet arg0, int arg1) throws SQLException {
353 Operationservice op = new Operationservice(); 353 Operationservice op = new Operationservice();
354 - op.setXlName(arg0.getString("xl_name").toString());  
355 - op.setJzl(arg0.getString("JZL").toString());  
356 - op.setXhl(arg0.getString("YH").toString());  
357 - Map<String, Object> maps = new HashMap<>();  
358 - maps = scheduleRealInfoService.findKMBC1(arg0.getString("j_name"), arg0.getString("cl_zbh"), startDate,  
359 - endDate);  
360 - op.setXsgl(maps.get("yygl").toString() == null ? "" : maps.get("yygl").toString());  
361 - op.setEmptMileage(maps.get("ksgl").toString() == null ? "" : maps.get("ksgl").toString());  
362 - op.setSjbc(maps.get("sjbc").toString() == null ? "" : maps.get("sjbc").toString()); 354 + op.setXlName(arg0.getString("xl_name"));
  355 + op.setJzl(arg0.getString("JZL"));
  356 + op.setXhl(arg0.getString("YH"));
  357 + op.setClzbh(arg0.getString("cl_zbh"));
  358 + op.setJname(arg0.getString("j_name"));
  359 +
363 return op; 360 return op;
364 } 361 }
365 }); 362 });
  363 +
  364 + for(int i=0;i<list.size();i++){
  365 + Operationservice o=list.get(i);
  366 + Map<String, Object> maps = new HashMap<>();
  367 + maps = scheduleRealInfoService.findKMBC1(o.getJname(), o.getClzbh(), startDate,
  368 + endDate);
  369 + o.setXsgl(maps.get("yygl").toString() == null ? "" : maps.get("yygl").toString());
  370 + o.setEmptMileage(maps.get("ksgl").toString() == null ? "" : maps.get("ksgl").toString());
  371 + o.setSjbc(maps.get("sjbc").toString() == null ? "" : maps.get("sjbc").toString());
  372 + }
366 return list; 373 return list;
367 } 374 }
368 375
@@ -388,12 +395,12 @@ public class FormsServiceImpl implements FormsService { @@ -388,12 +395,12 @@ public class FormsServiceImpl implements FormsService {
388 @Override 395 @Override
389 public Vehicleloading mapRow(ResultSet arg0, int arg1) throws SQLException { 396 public Vehicleloading mapRow(ResultSet arg0, int arg1) throws SQLException {
390 Vehicleloading ve = new Vehicleloading(); 397 Vehicleloading ve = new Vehicleloading();
391 - ve.setrQ(arg0.getString("schedule_date_str").toString());  
392 - ve.setgS(arg0.getString("gs_name").toString());  
393 - ve.setxL(arg0.getString("xl_name").toString());  
394 - ve.setClzbh(arg0.getString("cl_zbh").toString());  
395 - ve.setHyl(arg0.getString("YH").toString());  
396 - ve.setJzl(arg0.getString("JZL").toString()); 398 + ve.setrQ(arg0.getString("schedule_date_str"));
  399 + ve.setgS(arg0.getString("gs_name"));
  400 + ve.setxL(arg0.getString("xl_name"));
  401 + ve.setClzbh(arg0.getString("cl_zbh"));
  402 + ve.setHyl(arg0.getString("YH"));
  403 + ve.setJzl(arg0.getString("JZL"));
397 // ve.setLs(arg0.getString("").toString());//尿素 404 // ve.setLs(arg0.getString("").toString());//尿素
398 Map<String, Object> maps = new HashMap<>(); 405 Map<String, Object> maps = new HashMap<>();
399 maps = scheduleRealInfoService.findKMBC2(arg0.getString("j_gh"), arg0.getString("cl_zbh"), 406 maps = scheduleRealInfoService.findKMBC2(arg0.getString("j_gh"), arg0.getString("cl_zbh"),
@@ -613,4 +620,4 @@ public class FormsServiceImpl implements FormsService { @@ -613,4 +620,4 @@ public class FormsServiceImpl implements FormsService {
613 620
614 return list; 621 return list;
615 } 622 }
616 -} 623 +}
617 \ No newline at end of file 624 \ No newline at end of file
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
@@ -37,6 +37,8 @@ import java.sql.ResultSet; @@ -37,6 +37,8 @@ import java.sql.ResultSet;
37 import java.text.DecimalFormat; 37 import java.text.DecimalFormat;
38 import java.text.SimpleDateFormat; 38 import java.text.SimpleDateFormat;
39 import java.util.*; 39 import java.util.*;
  40 +import java.util.regex.Pattern;
  41 +
40 /** 42 /**
41 * 43 *
42 * @ClassName: TrafficManageServiceImpl(运管处接口service业务层实现类) 44 * @ClassName: TrafficManageServiceImpl(运管处接口service业务层实现类)
@@ -299,6 +301,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -299,6 +301,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
299 */ 301 */
300 public String setLD(){ 302 public String setLD(){
301 String result = "failure"; 303 String result = "failure";
  304 + Line line;
302 // 取昨天 的日期 305 // 取昨天 的日期
303 String date = sdfnyr.format(DateUtils.addDays(new Date(), -1)); 306 String date = sdfnyr.format(DateUtils.addDays(new Date(), -1));
304 StringBuffer sf = new StringBuffer(); 307 StringBuffer sf = new StringBuffer();
@@ -312,6 +315,11 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -312,6 +315,11 @@ public class TrafficManageServiceImpl implements TrafficManageService{
312 //根据车辆自编号查询车牌号 315 //根据车辆自编号查询车牌号
313 map.put("insideCode_eq", schRealInfo.getClZbh()); 316 map.put("insideCode_eq", schRealInfo.getClZbh());
314 Cars car = carsRepository.findOne(new CustomerSpecs<Cars>(map)); 317 Cars car = carsRepository.findOne(new CustomerSpecs<Cars>(map));
  318 + // 获取线路是否使用标识,如果未使用,则不查该线路数据
  319 + line = lineRepository.findByLineCode(schRealInfo.getXlBm());
  320 + if(line.getInUse() == null || line.getInUse() == 0){
  321 + continue;
  322 + }
315 sf.append("<DLD>"); 323 sf.append("<DLD>");
316 sf.append("<RQ>"+schRealInfo.getScheduleDateStr()+"</RQ>"); 324 sf.append("<RQ>"+schRealInfo.getScheduleDateStr()+"</RQ>");
317 sf.append("<XLBM>"+BasicData.lineCode2ShangHaiCodeMap.get(schRealInfo.getXlBm())+"</XLBM>"); 325 sf.append("<XLBM>"+BasicData.lineCode2ShangHaiCodeMap.get(schRealInfo.getXlBm())+"</XLBM>");
@@ -557,14 +565,14 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -557,14 +565,14 @@ public class TrafficManageServiceImpl implements TrafficManageService{
557 @Override 565 @Override
558 public String setJHBC() { 566 public String setJHBC() {
559 String result = "failure"; 567 String result = "failure";
  568 + Line line;
560 StringBuffer sBuffer =new StringBuffer(); 569 StringBuffer sBuffer =new StringBuffer();
561 try { 570 try {
562 sBuffer.append("<JHBCs>"); 571 sBuffer.append("<JHBCs>");
563 // 声明变量 572 // 声明变量
564 - SchedulePlanInfo schedulePlanInfo = null;  
565 - String xlbm = "",zbh = ""; 573 + SchedulePlanInfo schedulePlanInfo;
  574 + String xlbm,zbh = "";
566 Long lp = 0L; 575 Long lp = 0L;
567 - int startSerialNum = 0,endSerialNum = 0;;  
568 // 取明天的日期 576 // 取明天的日期
569 String tomorrow = sdfnyr.format(DateUtils.addDays(new Date(), +1)); 577 String tomorrow = sdfnyr.format(DateUtils.addDays(new Date(), +1));
570 // 查询所有班次 578 // 查询所有班次
@@ -573,8 +581,13 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -573,8 +581,13 @@ public class TrafficManageServiceImpl implements TrafficManageService{
573 int size = schedulePlanList.size(); 581 int size = schedulePlanList.size();
574 for (int i = 0; i < size; i++) { 582 for (int i = 0; i < size; i++) {
575 schedulePlanInfo = schedulePlanList.get(i); 583 schedulePlanInfo = schedulePlanList.get(i);
  584 + xlbm = schedulePlanInfo.getXlBm();
  585 + // 获取线路是否使用标识,如果未使用,则不查该线路数据
  586 + line = lineRepository.findByLineCode(xlbm);
  587 + if(line.getInUse() == null || line.getInUse() == 0){
  588 + continue;
  589 + }
576 if(i == 0){// 第一次,则初始化值 590 if(i == 0){// 第一次,则初始化值
577 - xlbm = schedulePlanInfo.getXlBm();  
578 zbh = schedulePlanInfo.getClZbh(); 591 zbh = schedulePlanInfo.getClZbh();
579 lp = schedulePlanInfo.getLp(); 592 lp = schedulePlanInfo.getLp();
580 // 拼装XML 593 // 拼装XML
@@ -605,18 +618,28 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -605,18 +618,28 @@ public class TrafficManageServiceImpl implements TrafficManageService{
605 sBuffer.append("</JHBC>"); 618 sBuffer.append("</JHBC>");
606 } 619 }
607 }else{ 620 }else{
608 - xlbm = schedulePlanInfo.getXlBm();  
609 zbh = schedulePlanInfo.getClZbh(); 621 zbh = schedulePlanInfo.getClZbh();
610 lp = schedulePlanInfo.getLp(); 622 lp = schedulePlanInfo.getLp();
611 sBuffer.append("</BCList>"); 623 sBuffer.append("</BCList>");
612 sBuffer.append("</JHBC>"); 624 sBuffer.append("</JHBC>");
613 - startSerialNum = 0;  
614 - endSerialNum = 0;  
615 // 拼装XML 625 // 拼装XML
616 assembleJHBC(sBuffer, schedulePlanInfo, xlbm, zbh, lp); 626 assembleJHBC(sBuffer, schedulePlanInfo, xlbm, zbh, lp);
617 } 627 }
618 } 628 }
619 } 629 }
  630 + // 判断XML是否以</BCList>结尾,如果不是,则加上
  631 + String regex = "^*</JHBC>$";
  632 + Pattern p = Pattern.compile(regex);
  633 + java.util.regex.Matcher m = p.matcher(sBuffer);
  634 + boolean isEndWithTrueFlag = false;
  635 + while (m.find()) {
  636 + isEndWithTrueFlag = true;
  637 + }
  638 + // 加上缺失的标签
  639 + if(!isEndWithTrueFlag){
  640 + sBuffer.append("</BCList>");
  641 + sBuffer.append("</JHBC>");
  642 + }
620 sBuffer.append("</JHBCs>"); 643 sBuffer.append("</JHBCs>");
621 if(ssop.setJHBC(userNameOther, passwordOther, sBuffer.toString()).isSuccess()){ 644 if(ssop.setJHBC(userNameOther, passwordOther, sBuffer.toString()).isSuccess()){
622 result = "success"; 645 result = "success";
@@ -643,7 +666,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -643,7 +666,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
643 StringBuffer sBufferA; 666 StringBuffer sBufferA;
644 StringBuffer sBufferB; 667 StringBuffer sBufferB;
645 TTInfo ttInfo; 668 TTInfo ttInfo;
646 - TTInfoDetail ttInfoDetail = null; 669 + TTInfoDetail ttInfoDetail;
647 Iterator<TTInfoDetail> ttInfoDetailIterator; 670 Iterator<TTInfoDetail> ttInfoDetailIterator;
648 HashMap<String,Object> param = new HashMap<String, Object>(); 671 HashMap<String,Object> param = new HashMap<String, Object>();
649 String lineCode ; 672 String lineCode ;
@@ -1027,6 +1050,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -1027,6 +1050,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{
1027 company = "浦东金高公交公司"; 1050 company = "浦东金高公交公司";
1028 }else if(company.equals("南汇公司")){ 1051 }else if(company.equals("南汇公司")){
1029 company = "浦东南汇公交公司"; 1052 company = "浦东南汇公交公司";
  1053 + }else if(company.equals("青浦公交")){
  1054 + company = "浦东青浦公交公司";
1030 } 1055 }
1031 } 1056 }
1032 /** 1057 /**
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -1115,7 +1115,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1115,7 +1115,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1115 // int cjbc = scheduleRealInfoRepository.findCjbc(jName, clZbh, lpName); 1115 // int cjbc = scheduleRealInfoRepository.findCjbc(jName, clZbh, lpName);
1116 // int ljbc = scheduleRealInfoRepository.findLjbc(jName, clZbh, lpName); 1116 // int ljbc = scheduleRealInfoRepository.findLjbc(jName, clZbh, lpName);
1117 int jhbc = 0,cjbc = 0,ljbc = 0; 1117 int jhbc = 0,cjbc = 0,ljbc = 0;
1118 - double jhlc = 0, yygl = 0, ksgl = 0,tempJhlc = 0; 1118 + double jhlc = 0, yygl = 0, ksgl = 0,tempJhlc = 0,jcclc=0;
1119 float addMileage = 0l,remMileage = 0l; 1119 float addMileage = 0l,remMileage = 0l;
1120 Map<String,Object> map = new HashMap<String, Object>(); 1120 Map<String,Object> map = new HashMap<String, Object>();
1121 for(ScheduleRealInfo scheduleRealInfo : list){ 1121 for(ScheduleRealInfo scheduleRealInfo : list){
@@ -1141,8 +1141,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1141,8 +1141,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1141 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks(); 1141 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
1142 //计算营运里程,空驶里程 1142 //计算营运里程,空驶里程
1143 if(childTaskPlans.isEmpty()){ 1143 if(childTaskPlans.isEmpty()){
1144 - if(scheduleRealInfo.getBcType().equals("in") || scheduleRealInfo.getBcType().equals("out")  
1145 - || scheduleRealInfo.getBcType().equals("venting")){ 1144 + if(scheduleRealInfo.getBcType().equals("in") ||
  1145 + scheduleRealInfo.getBcType().equals("out")){
  1146 + ksgl += tempJhlc;
  1147 + jcclc +=tempJhlc;
  1148 + }else if(scheduleRealInfo.getBcType().equals("venting")){
1146 ksgl += tempJhlc; 1149 ksgl += tempJhlc;
1147 }else{ 1150 }else{
1148 if(scheduleRealInfo.getStatus() != -1){ 1151 if(scheduleRealInfo.getStatus() != -1){
@@ -1177,6 +1180,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1177,6 +1180,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1177 map.put("cjbc", cjbc); 1180 map.put("cjbc", cjbc);
1178 map.put("ljbc", ljbc); 1181 map.put("ljbc", ljbc);
1179 map.put("sjbc", jhbc-cjbc+ljbc); 1182 map.put("sjbc", jhbc-cjbc+ljbc);
  1183 + map.put("jcclc", jcclc);
1180 return map; 1184 return map;
1181 } 1185 }
1182 1186
src/main/java/com/bsth/service/schedule/PeopleCarPlanServiceImpl.java
@@ -46,7 +46,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -46,7 +46,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
46 if(company.length() != 0) 46 if(company.length() != 0)
47 sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'"; 47 sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'";
48 48
49 - list =jdbcTemplate.query(sql, 49 + list = jdbcTemplate.query(sql,
50 new RowMapper<ScheduleRealInfo>(){ 50 new RowMapper<ScheduleRealInfo>(){
51 @Override 51 @Override
52 public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException { 52 public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
@@ -117,7 +117,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -117,7 +117,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
117 sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'"; 117 sql += " and gs_bm = '"+company+"' and fgs_bm = '"+subCompany+"'";
118 } 118 }
119 119
120 - list =jdbcTemplate.query(sql, 120 + list = jdbcTemplate.query(sql,
121 new RowMapper<SchedulePlanInfo>(){ 121 new RowMapper<SchedulePlanInfo>(){
122 @Override 122 @Override
123 public SchedulePlanInfo mapRow(ResultSet rs, int rowNum) throws SQLException { 123 public SchedulePlanInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
@@ -362,13 +362,15 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -362,13 +362,15 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
362 } 362 }
363 ScheduleRealInfo shouban = tempList.get(0); 363 ScheduleRealInfo shouban = tempList.get(0);
364 ScheduleRealInfo moban = tempList.get(tempList.size() - 1); 364 ScheduleRealInfo moban = tempList.get(tempList.size() - 1);
  365 +// System.out.println(shouban.getFcsjActual() + "-首班-" + shouban.getFcsj());
  366 +// System.out.println(moban.getFcsjActual() + "-末班-" + moban.getFcsj());
  367 + jhsb++;
365 if(shouban.getFcsjActual() != null){ 368 if(shouban.getFcsjActual() != null){
366 - jhsb++;  
367 if(shouban.getFcsjActualTime() - shouban.getFcsjT() >= -60000 && shouban.getFcsjActualTime() - shouban.getFcsjT() <= 180000) 369 if(shouban.getFcsjActualTime() - shouban.getFcsjT() >= -60000 && shouban.getFcsjActualTime() - shouban.getFcsjT() <= 180000)
368 sjsb++; 370 sjsb++;
369 } 371 }
  372 + jhmb++;
370 if(moban.getFcsjActual() != null){ 373 if(moban.getFcsjActual() != null){
371 - jhmb++;  
372 if(moban.getFcsjActualTime() - moban.getFcsjT() >= -60000 && moban.getFcsjActualTime() - moban.getFcsjT() <= 180000) 374 if(moban.getFcsjActualTime() - moban.getFcsjT() >= -60000 && moban.getFcsjActualTime() - moban.getFcsjT() <= 180000)
373 sjmb++; 375 sjmb++;
374 } 376 }
@@ -452,7 +454,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService { @@ -452,7 +454,7 @@ public class PeopleCarPlanServiceImpl implements PeopleCarPlanService {
452 } 454 }
453 sql += " and bc_type = 'normal'"; 455 sql += " and bc_type = 'normal'";
454 456
455 - list =jdbcTemplate.query(sql, 457 + list = jdbcTemplate.query(sql,
456 new RowMapper<ScheduleRealInfo>(){ 458 new RowMapper<ScheduleRealInfo>(){
457 @Override 459 @Override
458 public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException { 460 public ScheduleRealInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
src/main/resources/application-dev.properties
@@ -6,7 +6,7 @@ spring.jpa.hibernate.ddl-auto= update @@ -6,7 +6,7 @@ spring.jpa.hibernate.ddl-auto= update
6 spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy 6 spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy
7 #DATABASE 7 #DATABASE
8 spring.jpa.database= MYSQL 8 spring.jpa.database= MYSQL
9 -spring.jpa.show-sql= false 9 +spring.jpa.show-sql= true
10 spring.datasource.driver-class-name= com.mysql.jdbc.Driver 10 spring.datasource.driver-class-name= com.mysql.jdbc.Driver
11 spring.datasource.url= jdbc:mysql://192.168.168.201/mh_control?useUnicode=true&characterEncoding=utf-8&useSSL=false 11 spring.datasource.url= jdbc:mysql://192.168.168.201/mh_control?useUnicode=true&characterEncoding=utf-8&useSSL=false
12 spring.datasource.username= root 12 spring.datasource.username= root
src/main/resources/static/pages/base/line/js/line-add-form.js
@@ -94,7 +94,7 @@ $(function(){ @@ -94,7 +94,7 @@ $(function(){
94 $('#endStationEndTimeInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'}); 94 $('#endStationEndTimeInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});
95 95
96 /** get请求获取公司表数据并填充公司下拉框选择值 */ 96 /** get请求获取公司表数据并填充公司下拉框选择值 */
97 - $get('/business/all', {upCode_eq: '77'}, function(array){ 97 + $get('/business/all', {upCode_eq: '88'}, function(array){
98 98
99 /** 公司下拉options属性值 */ 99 /** 公司下拉options属性值 */
100 var options = '<option value="">-- 请选择公司 --</option>'; 100 var options = '<option value="">-- 请选择公司 --</option>';
src/main/resources/static/pages/base/line/js/line-details-info.js
@@ -47,7 +47,7 @@ $(function(){ @@ -47,7 +47,7 @@ $(function(){
47 function selectTemp(callback) { 47 function selectTemp(callback) {
48 48
49 // 填充公司下拉框选择值 49 // 填充公司下拉框选择值
50 - $.get('/business/all', {upCode_eq: '77'}, function(array){ 50 + $.get('/business/all', {upCode_eq: '88'}, function(array){
51 51
52 // 公司下拉options属性值 52 // 公司下拉options属性值
53 var options = '<option value="">-- 请选择公司 --</option>'; 53 var options = '<option value="">-- 请选择公司 --</option>';
src/main/resources/static/pages/base/line/js/line-edit-form.js
@@ -42,7 +42,7 @@ @@ -42,7 +42,7 @@
42 function selectTemp(callback) { 42 function selectTemp(callback) {
43 43
44 // 填充公司下拉框选择值 44 // 填充公司下拉框选择值
45 - $.get('/business/all', {upCode_eq: '77'}, function(array){ 45 + $.get('/business/all', {upCode_eq: '88'}, function(array){
46 46
47 // 公司下拉options属性值 47 // 公司下拉options属性值
48 var options = '<option value="">-- 请选择公司 --</option>'; 48 var options = '<option value="">-- 请选择公司 --</option>';
src/main/resources/static/pages/base/line/js/line-list-table.js
@@ -202,7 +202,7 @@ @@ -202,7 +202,7 @@
202 } 202 }
203 203
204 /** 填充公司下拉框选择值 */ 204 /** 填充公司下拉框选择值 */
205 - $get('/business/all', {upCode_eq: '77'}, function(array){ 205 + $get('/business/all', {upCode_eq: '88'}, function(array){
206 206
207 // 公司下拉options属性值 207 // 公司下拉options属性值
208 var options = '<option value="">请选择...</option>'; 208 var options = '<option value="">请选择...</option>';
src/main/resources/static/pages/forecast/sample/js/svg.js
@@ -218,6 +218,8 @@ var sampleSvg = (function(){ @@ -218,6 +218,8 @@ var sampleSvg = (function(){
218 218
219 //分析path d 路径中间点 219 //分析path d 路径中间点
220 function analysePath(d){ 220 function analysePath(d){
  221 + if(!d)
  222 + return [-100, -100];
221 d = d.replace('M', ''); 223 d = d.replace('M', '');
222 var sp = d.split('L')[0].split(',') 224 var sp = d.split('L')[0].split(',')
223 ,ep = d.split('L')[1].split(',') 225 ,ep = d.split('L')[1].split(',')
src/main/resources/static/pages/forms/statement/operationservice.html
@@ -112,7 +112,6 @@ @@ -112,7 +112,6 @@
112 text : result[code] 112 text : result[code]
113 }); 113 });
114 } 114 }
115 - console.log(data);  
116 initPinYinSelect2('#line', data, ''); 115 initPinYinSelect2('#line', data, '');
117 116
118 }) 117 })
@@ -199,7 +198,6 @@ @@ -199,7 +198,6 @@
199 obj.updateDate = moment(obj.startDate).format( 198 obj.updateDate = moment(obj.startDate).format(
200 "YYYY-MM-DD HH:mm:ss"); 199 "YYYY-MM-DD HH:mm:ss");
201 }); 200 });
202 - console.log(result);  
203 var operationservice = template('operationservice', { 201 var operationservice = template('operationservice', {
204 list : result 202 list : result
205 }); 203 });
src/main/resources/static/pages/forms/statement/waybill.html
@@ -338,8 +338,8 @@ @@ -338,8 +338,8 @@
338 <td>{{remMileage}}</td> 338 <td>{{remMileage}}</td>
339 <td colspan="2">临加公里</td> 339 <td colspan="2">临加公里</td>
340 <td>{{addMileage}}</td> 340 <td>{{addMileage}}</td>
341 - <td colspan="2">营运公里</td>  
342 - <td colspan="3">{{yygl}}</td> 341 + <td colspan="3">营运公里</td>
  342 + <td colspan="2">{{yygl}}</td>
343 </tr> 343 </tr>
344 <tr> 344 <tr>
345 <td colspan="2">空驶公里</td> 345 <td colspan="2">空驶公里</td>
@@ -348,8 +348,8 @@ @@ -348,8 +348,8 @@
348 <td>{{realMileage}}</td> 348 <td>{{realMileage}}</td>
349 <td colspan="2">计划班次</td> 349 <td colspan="2">计划班次</td>
350 <td>{{jhbc}}</td> 350 <td>{{jhbc}}</td>
351 - <td colspan="2">烂班班次</td>  
352 - <td colspan="3">{{cjbc}}</td> 351 + <td colspan="3">烂班班次</td>
  352 + <td colspan="2">{{cjbc}}</td>
353 </tr> 353 </tr>
354 <tr> 354 <tr>
355 <td colspan="2">增加班次</td> 355 <td colspan="2">增加班次</td>
@@ -358,8 +358,8 @@ @@ -358,8 +358,8 @@
358 <td>{{sjbc}}</td> 358 <td>{{sjbc}}</td>
359 <td colspan="2"></td> 359 <td colspan="2"></td>
360 <td></td> 360 <td></td>
361 - <td colspan="2"></td>  
362 <td colspan="3"></td> 361 <td colspan="3"></td>
  362 + <td colspan="2"></td>
363 </tr> 363 </tr>
364 </script> 364 </script>
365 <script type="text/html" id="ludan_4"> 365 <script type="text/html" id="ludan_4">
src/main/resources/static/pages/forms/statement/waybillQp.html
@@ -334,32 +334,38 @@ @@ -334,32 +334,38 @@
334 <tr> 334 <tr>
335 <td colspan="2">计划公里</td> 335 <td colspan="2">计划公里</td>
336 <td>{{jhlc}}</td> 336 <td>{{jhlc}}</td>
  337 + <td colspan="2">营运公里</td>
  338 + <td >{{yygl}}</td>
337 <td colspan="2">烂班公里</td> 339 <td colspan="2">烂班公里</td>
338 <td>{{remMileage}}</td> 340 <td>{{remMileage}}</td>
339 - <td colspan="2">临加公里</td>  
340 - <td>{{addMileage}}</td>  
341 - <td colspan="2">营运公里</td>  
342 - <td colspan="3">{{yygl}}</td> 341 + <td colspan="3">空驶公里</td>
  342 + <td colspan="2">{{ksgl}}</td>
  343 +
  344 +
343 </tr> 345 </tr>
344 <tr> 346 <tr>
345 - <td colspan="2">空驶公里</td>  
346 - <td>{{ksgl}}</td>  
347 - <td colspan="2">总公里</td>  
348 - <td>{{realMileage}}</td>  
349 <td colspan="2">计划班次</td> 347 <td colspan="2">计划班次</td>
350 <td>{{jhbc}}</td> 348 <td>{{jhbc}}</td>
351 - <td colspan="2">烂班班次</td>  
352 - <td colspan="3">{{cjbc}}</td> 349 +
  350 + <td colspan="2">进出场公里</td>
  351 + <td>{{jcclc}}</td>
  352 + <td colspan="2">临加公里</td>
  353 + <td>{{addMileage}}</td>
  354 + <td colspan="3">烂班班次</td>
  355 + <td colspan="2">{{cjbc}}</td>
  356 +
353 </tr> 357 </tr>
354 <tr> 358 <tr>
355 - <td colspan="2">增加班次</td>  
356 - <td>{{ljbc}}</td> 359 +
357 <td colspan="2">实际班次</td> 360 <td colspan="2">实际班次</td>
358 <td>{{sjbc}}</td> 361 <td>{{sjbc}}</td>
359 - <td colspan="2"></td>  
360 - <td></td>  
361 - <td colspan="2"></td> 362 + <td colspan="2">总公里</td>
  363 + <td>{{realMileage}}</td>
  364 + <td colspan="2">临加班次</td>
  365 + <td>{{ljbc}}</td>
  366 +
362 <td colspan="3"></td> 367 <td colspan="3"></td>
  368 + <td colspan="2"></td>
363 </tr> 369 </tr>
364 </script> 370 </script>
365 <script type="text/html" id="ludan_4"> 371 <script type="text/html" id="ludan_4">
src/main/resources/static/pages/oil/checkJyryList.html
@@ -75,10 +75,10 @@ @@ -75,10 +75,10 @@
75 <input type="text" id="yyrq" class="form-control form-filter input-sm" name="yyrq"> 75 <input type="text" id="yyrq" class="form-control form-filter input-sm" name="yyrq">
76 </td> 76 </td>
77 <td> 77 <td>
78 -<!-- <select class="form-control" name="gsdm_like" id="jyryListGsdmId" ></select> --> 78 + <select class="form-control" name="gsdm_like" id="jyryListGsdmId" ></select>
79 </td> 79 </td>
80 <td> 80 <td>
81 -<!-- <select class="form-control" name="fgsdm_like" id="jyryListFgsdmId" ></select> --> 81 + <select class="form-control" name="fgsdm_like" id="jyryListFgsdmId" ></select>
82 </td> 82 </td>
83 <td> 83 <td>
84 </td> 84 </td>
@@ -166,7 +166,19 @@ $(function(){ @@ -166,7 +166,19 @@ $(function(){
166 params['jsy']=jsy; 166 params['jsy']=jsy;
167 params['id']=id; 167 params['id']=id;
168 $get('/ylxxb/check', params, function(){ 168 $get('/ylxxb/check', params, function(){
169 - jsDoQuery(null,true); 169 + var cells = $('tr.filter')[0].cells
  170 + ,params1 = {}
  171 + ,name;
  172 + $.each(cells, function(i, cell){
  173 + var items = $('input,select', cell);
  174 + for(var j = 0, item; item = items[j++];){
  175 + name = $(item).attr('name');
  176 + if(name){
  177 + params1[name] = $(item).val();
  178 + }
  179 + }
  180 + });
  181 + jsDoQuery(params1,true);
170 }); 182 });
171 } 183 }
172 }) 184 })
@@ -186,21 +198,22 @@ $(function(){ @@ -186,21 +198,22 @@ $(function(){
186 // jsDoQuery(null, true); 198 // jsDoQuery(null, true);
187 }); 199 });
188 200
189 - var gsqx="";  
190 - var fgsqx=""; 201 +// var gsqx="";
  202 +// var fgsqx="";
191 203
192 $.get('/user/companyData', function(result){ 204 $.get('/user/companyData', function(result){
193 obj = result; 205 obj = result;
194 - var options = '<option value="">请选择</option>'; 206 + var options = '';
  207 +// '<option value="">请选择</option>';
195 for(var i = 0; i < obj.length; i++){ 208 for(var i = 0; i < obj.length; i++){
196 options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>'; 209 options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
197 - setFgsqx(obj[i].companyCode);  
198 - gsqx +=obj[i].companyCode+","; 210 +// setFgsqx(obj[i].companyCode);
  211 +// gsqx +=obj[i].companyCode+",";
199 } 212 }
200 $('#jyryListGsdmId').html(options); 213 $('#jyryListGsdmId').html(options);
201 updateCompany(); 214 updateCompany();
202 }); 215 });
203 - function setFgsqx(gs){ 216 + /* function setFgsqx(gs){
204 var company =gs 217 var company =gs
205 var options = ''; 218 var options = '';
206 for(var i = 0; i < obj.length; i++){ 219 for(var i = 0; i < obj.length; i++){
@@ -211,11 +224,12 @@ $(function(){ @@ -211,11 +224,12 @@ $(function(){
211 } 224 }
212 } 225 }
213 } 226 }
214 - } 227 + } */
215 $("#jyryListGsdmId").on("change",updateCompany); 228 $("#jyryListGsdmId").on("change",updateCompany);
216 function updateCompany(){ 229 function updateCompany(){
217 var company = $('#jyryListGsdmId').val(); 230 var company = $('#jyryListGsdmId').val();
218 - var options = '<option value="">请选择</option>'; 231 + var options = '';
  232 +// '<option value="">请选择</option>';
219 for(var i = 0; i < obj.length; i++){ 233 for(var i = 0; i < obj.length; i++){
220 if(obj[i].companyCode == company){ 234 if(obj[i].companyCode == company){
221 var children = obj[i].children; 235 var children = obj[i].children;
@@ -230,7 +244,13 @@ $(function(){ @@ -230,7 +244,13 @@ $(function(){
230 244
231 //提交 245 //提交
232 $('tr.filter .filter-submit').on('click', function(){ 246 $('tr.filter .filter-submit').on('click', function(){
233 - if($("#yyrq").val()!=""){ 247 + var jyryGsdm=$("#jyryListGsdmId").val();
  248 + var jyryFgsdm=$("#jyryListFgsdmId").val();
  249 + if($("#yyrq").val()==""||$("#yyrq").val()==null ){
  250 + layer.msg('请选择日期.');
  251 + }else if(jyryGsdm=="" || jyryGsdm==null ||jyryFgsdm==""||jyryFgsdm==null){
  252 + layer.msg('请选择公司和分公司.');
  253 + }else{
234 var cells = $('tr.filter')[0].cells 254 var cells = $('tr.filter')[0].cells
235 ,params = {} 255 ,params = {}
236 ,name; 256 ,name;
@@ -245,8 +265,6 @@ $(function(){ @@ -245,8 +265,6 @@ $(function(){
245 }); 265 });
246 page = 0; 266 page = 0;
247 jsDoQuery(params, true); 267 jsDoQuery(params, true);
248 - }else{  
249 - layer.msg('请选择日期.');  
250 } 268 }
251 }); 269 });
252 270
@@ -283,7 +301,7 @@ $(function(){ @@ -283,7 +301,7 @@ $(function(){
283 } 301 }
284 params['fgsdm_in']=fgsqx1; 302 params['fgsdm_in']=fgsqx1;
285 } 303 }
286 - } */ 304 + } */
287 305
288 $get('/ylxxb/pagequery' ,params, function(data){ 306 $get('/ylxxb/pagequery' ,params, function(data){
289 $.each(data.dataList, function(i, obj) { 307 $.each(data.dataList, function(i, obj) {
@@ -296,7 +314,7 @@ $(function(){ @@ -296,7 +314,7 @@ $(function(){
296 if(pagination && data.dataList.length > 0){ 314 if(pagination && data.dataList.length > 0){
297 //重新分页 315 //重新分页
298 initPagination = true; 316 initPagination = true;
299 - showPagination(data); 317 + //showPagination(data);
300 } 318 }
301 layer.close(i); 319 layer.close(i);
302 }); 320 });
@@ -355,54 +373,49 @@ $(function(){ @@ -355,54 +373,49 @@ $(function(){
355 }); 373 });
356 374
357 375
358 -});  
359 -//改变状态  
360 -function changeEnabled(id,enabled){  
361 - debugger  
362 - $get('/user/changeEnabled',{id:id,enabled:enabled},function(result){  
363 - jsDoQuery(null, true);  
364 - })  
365 -}  
366 376
367 -//改变状态  
368 -function startOptJsy(id){  
369 - $('#jsy'+id).select2({  
370 - placeholder: '搜索驾驶员...',  
371 - ajax: {  
372 - url: '/personnel/sreachPersonnel',  
373 - dataType: 'json',  
374 - delay: 150,  
375 - data: function(params){  
376 - return{jobCode: params.term}; 377 + //改变状态
  378 + function startOptJsy(id){
  379 + $('#jsy'+id).select2({
  380 + placeholder: '搜索驾驶员...',
  381 + ajax: {
  382 + url: '/personnel/sreachPersonnel',
  383 + dataType: 'json',
  384 + delay: 150,
  385 + data: function(params){
  386 + return{jobCode: params.term};
  387 + },
  388 + processResults: function (data) {
  389 + return {
  390 + results: data
  391 + };
  392 + },
  393 + cache: true
377 }, 394 },
378 - processResults: function (data) {  
379 - return {  
380 - results: data  
381 - };  
382 - },  
383 - cache: true  
384 - },  
385 - templateResult: function(repo){  
386 - if (repo.loading) return repo.text;  
387 - var h = '<span>'+repo.text+'</span>';  
388 - return h;  
389 - },  
390 - escapeMarkup: function (markup) { return markup; },  
391 - minimumInputLength: 1,  
392 - templateSelection: function(repo){  
393 - return repo.text;  
394 - },  
395 - language: {  
396 - noResults: function(){  
397 - return '<span style="color:red;font-size: 12px;">没有搜索到驾驶员!</span>';  
398 - },  
399 - inputTooShort : function(e) {  
400 - return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入工号搜索驾驶员</span>';  
401 - },  
402 - searching : function() {  
403 - return '<span style="color:gray;font-size: 12px;"> 正在搜索驾驶员...</span>';  
404 - }  
405 - }  
406 - })  
407 -} 395 + templateResult: function(repo){
  396 + if (repo.loading) return repo.text;
  397 + var h = '<span>'+repo.text+'</span>';
  398 + return h;
  399 + },
  400 + escapeMarkup: function (markup) { return markup; },
  401 + minimumInputLength: 1,
  402 + templateSelection: function(repo){
  403 + return repo.text;
  404 + },
  405 + language: {
  406 + noResults: function(){
  407 + return '<span style="color:red;font-size: 12px;">没有搜索到驾驶员!</span>';
  408 + },
  409 + inputTooShort : function(e) {
  410 + return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入工号搜索驾驶员</span>';
  411 + },
  412 + searching : function() {
  413 + return '<span style="color:gray;font-size: 12px;"> 正在搜索驾驶员...</span>';
  414 + }
  415 + }
  416 + })
  417 + }
  418 +
  419 +});
  420 +
408 </script> 421 </script>
409 \ No newline at end of file 422 \ No newline at end of file
src/main/resources/static/pages/oil/cylList.html
@@ -141,23 +141,24 @@ $(function(){ @@ -141,23 +141,24 @@ $(function(){
141 increaseArea: '20%' 141 increaseArea: '20%'
142 } 142 }
143 143
144 - var gsqx="";  
145 - var fgsqx=""; 144 +// var gsqx="";
  145 +// var fgsqx="";
146 146
147 $.get('/user/companyData', function(result){ 147 $.get('/user/companyData', function(result){
148 obj = result; 148 obj = result;
149 - var options = '<option value="">请选择</option>'; 149 + var options = '';
  150 +// '<option value="">请选择</option>';
150 for(var i = 0; i < obj.length; i++){ 151 for(var i = 0; i < obj.length; i++){
151 options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>'; 152 options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
152 - setFgsqx(obj[i].companyCode);  
153 - gsqx +=obj[i].companyCode+","; 153 +// setFgsqx(obj[i].companyCode);
  154 +// gsqx +=obj[i].companyCode+",";
154 } 155 }
155 $('#cylListGsdmId').html(options); 156 $('#cylListGsdmId').html(options);
156 updateCompany(); 157 updateCompany();
157 - jsDoQuery(null,true); 158 +// jsDoQuery(null,true);
158 }); 159 });
159 160
160 - function setFgsqx(gs){ 161 + /* function setFgsqx(gs){
161 var company =gs 162 var company =gs
162 var options = ''; 163 var options = '';
163 for(var i = 0; i < obj.length; i++){ 164 for(var i = 0; i < obj.length; i++){
@@ -168,12 +169,13 @@ $(function(){ @@ -168,12 +169,13 @@ $(function(){
168 } 169 }
169 } 170 }
170 } 171 }
171 - } 172 + } */
172 173
173 $("#cylListGsdmId").on("change",updateCompany); 174 $("#cylListGsdmId").on("change",updateCompany);
174 function updateCompany(){ 175 function updateCompany(){
175 var company = $('#cylListGsdmId').val(); 176 var company = $('#cylListGsdmId').val();
176 - var options = '<option value="">请选择</option>'; 177 + var options = '';
  178 +// '<option value="">请选择</option>';
177 for(var i = 0; i < obj.length; i++){ 179 for(var i = 0; i < obj.length; i++){
178 if(obj[i].companyCode == company){ 180 if(obj[i].companyCode == company){
179 var children = obj[i].children; 181 var children = obj[i].children;
@@ -188,25 +190,31 @@ $(function(){ @@ -188,25 +190,31 @@ $(function(){
188 //重置 190 //重置
189 $('tr.filter .filter-cancel').on('click', function(){ 191 $('tr.filter .filter-cancel').on('click', function(){
190 $('tr.filter input, select').val('').change(); 192 $('tr.filter input, select').val('').change();
191 - jsDoQuery(null, true); 193 +// jsDoQuery(null, true);
192 }); 194 });
193 195
194 //提交 196 //提交
195 $('tr.filter .filter-submit').on('click', function(){ 197 $('tr.filter .filter-submit').on('click', function(){
196 - var cells = $('tr.filter')[0].cells  
197 - ,params = {}  
198 - ,name;  
199 - $.each(cells, function(i, cell){  
200 - var items = $('input,select', cell);  
201 - for(var j = 0, item; item = items[j++];){  
202 - name = $(item).attr('name');  
203 - if(name){  
204 - params[name] = $(item).val(); 198 + var cylGsdm=$("#cylListGsdmId").val();
  199 + var cylFgsdm=$("#cylListFgsdmId").val();
  200 + if(cylGsdm=="" ||cylGsdm ==null ||cylFgsdm=="" ||cylFgsdm ==null){
  201 + layer.msg("请选择公司和分公司");
  202 + }else{
  203 + var cells = $('tr.filter')[0].cells
  204 + ,params = {}
  205 + ,name;
  206 + $.each(cells, function(i, cell){
  207 + var items = $('input,select', cell);
  208 + for(var j = 0, item; item = items[j++];){
  209 + name = $(item).attr('name');
  210 + if(name){
  211 + params[name] = $(item).val();
  212 + }
205 } 213 }
206 - }  
207 - });  
208 - page = 0;  
209 - jsDoQuery(params, true); 214 + });
  215 + page = 0;
  216 + jsDoQuery(params, true);
  217 + }
210 }); 218 });
211 219
212 220
@@ -222,7 +230,7 @@ $(function(){ @@ -222,7 +230,7 @@ $(function(){
222 params['order'] = 'nbbm'; 230 params['order'] = 'nbbm';
223 params['page'] = page; 231 params['page'] = page;
224 var i = 2; 232 var i = 2;
225 - var cylGsdm=$("#cylListGsdmId").val(); 233 + /* var cylGsdm=$("#cylListGsdmId").val();
226 var cylFgsdm=$("#cylListFgsdmId").val(); 234 var cylFgsdm=$("#cylListFgsdmId").val();
227 if(cylGsdm==''|| cylGsdm==null){ 235 if(cylGsdm==''|| cylGsdm==null){
228 params['gsdm_in']=gsqx; 236 params['gsdm_in']=gsqx;
@@ -240,8 +248,7 @@ $(function(){ @@ -240,8 +248,7 @@ $(function(){
240 } 248 }
241 params['fgsdm_in']=fgsqx1; 249 params['fgsdm_in']=fgsqx1;
242 } 250 }
243 - }  
244 - console.log(params); 251 + } */
245 $get('/cyl' ,params, function(data){ 252 $get('/cyl' ,params, function(data){
246 $.each(data.content, function(i, obj) { 253 $.each(data.content, function(i, obj) {
247 obj.updatetime = moment(obj.updatetime).format("YYYY-MM-DD"); 254 obj.updatetime = moment(obj.updatetime).format("YYYY-MM-DD");
src/main/resources/static/pages/oil/jyglList.html
@@ -202,39 +202,25 @@ $(function(){ @@ -202,39 +202,25 @@ $(function(){
202 //重置 202 //重置
203 $('tr.filter .filter-cancel').on('click', function(){ 203 $('tr.filter .filter-cancel').on('click', function(){
204 $('tr.filter input, select').val('').change(); 204 $('tr.filter input, select').val('').change();
205 - if($("#rq").val()!=""){  
206 - var cells = $('tr.filter')[0].cells  
207 - ,params = {}  
208 - ,name;  
209 - $.each(cells, function(i, cell){  
210 - var items = $('input,select', cell);  
211 - for(var j = 0, item; item = items[j++];){  
212 - name = $(item).attr('name');  
213 - if(name){  
214 - params[name] = $(item).val();  
215 - }  
216 - }  
217 - });  
218 - jsDoQuery(params, true);  
219 - }  
220 }); 205 });
221 206
222 207
223 - var gsqx="";  
224 - var fgsqx=""; 208 +// var gsqx="";
  209 +// var fgsqx="";
225 210
226 $.get('/user/companyData', function(result){ 211 $.get('/user/companyData', function(result){
227 obj = result; 212 obj = result;
228 - var options = '<option value="">请选择</option>'; 213 + var options = '';
  214 +// '<option value="">请选择</option>';
229 for(var i = 0; i < obj.length; i++){ 215 for(var i = 0; i < obj.length; i++){
230 options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>'; 216 options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
231 - setFgsqx(obj[i].companyCode);  
232 - gsqx +=obj[i].companyCode+","; 217 +// setFgsqx(obj[i].companyCode);
  218 +// gsqx +=obj[i].companyCode+",";
233 } 219 }
234 $('#jyglListGsdmId').html(options); 220 $('#jyglListGsdmId').html(options);
235 updateCompany(); 221 updateCompany();
236 }); 222 });
237 - function setFgsqx(gs){ 223 + /* function setFgsqx(gs){
238 var company =gs 224 var company =gs
239 var options = ''; 225 var options = '';
240 for(var i = 0; i < obj.length; i++){ 226 for(var i = 0; i < obj.length; i++){
@@ -245,11 +231,12 @@ $(function(){ @@ -245,11 +231,12 @@ $(function(){
245 } 231 }
246 } 232 }
247 } 233 }
248 - } 234 + } */
249 $("#jyglListGsdmId").on("change",updateCompany); 235 $("#jyglListGsdmId").on("change",updateCompany);
250 function updateCompany(){ 236 function updateCompany(){
251 var company = $('#jyglListGsdmId').val(); 237 var company = $('#jyglListGsdmId').val();
252 - var options = '<option value="">请选择</option>'; 238 + var options = '';
  239 +// '<option value="">请选择</option>';
253 for(var i = 0; i < obj.length; i++){ 240 for(var i = 0; i < obj.length; i++){
254 if(obj[i].companyCode == company){ 241 if(obj[i].companyCode == company){
255 var children = obj[i].children; 242 var children = obj[i].children;
@@ -262,7 +249,13 @@ $(function(){ @@ -262,7 +249,13 @@ $(function(){
262 } 249 }
263 //提交 250 //提交
264 $('tr.filter .filter-submit').on('click', function(){ 251 $('tr.filter .filter-submit').on('click', function(){
265 - if($("#rq").val()!=""){ 252 + var jyglGsdm=$("#jyglListGsdmId").val();
  253 + var jyglFgsdm=$("#jyglListFgsdmId").val();
  254 + if($("#rq").val()==""||$("#rq").val()==null){
  255 + layer.msg('请选择日期.');
  256 + }else if(jyglGsdm=="" || jyglGsdm==null || jyglFgsdm=="" || jyglFgsdm==null){
  257 + layer.msg('请选择公司和分公司.');
  258 + }else{
266 var cells = $('tr.filter')[0].cells 259 var cells = $('tr.filter')[0].cells
267 ,params = {} 260 ,params = {}
268 ,name; 261 ,name;
@@ -277,8 +270,6 @@ $(function(){ @@ -277,8 +270,6 @@ $(function(){
277 }); 270 });
278 page = 0; 271 page = 0;
279 jsDoQuery(params, true); 272 jsDoQuery(params, true);
280 - }else{  
281 - layer.msg('请选择日期.');  
282 } 273 }
283 }); 274 });
284 275
@@ -296,7 +287,7 @@ $(function(){ @@ -296,7 +287,7 @@ $(function(){
296 params['rq']=$("#rq").val(); 287 params['rq']=$("#rq").val();
297 288
298 var i = 2; 289 var i = 2;
299 - var jyglGsdm=$("#jyglListGsdmId").val(); 290 + /* var jyglGsdm=$("#jyglListGsdmId").val();
300 var jyglFgsdm=$("#jyglListFgsdmId").val(); 291 var jyglFgsdm=$("#jyglListFgsdmId").val();
301 if(jyglGsdm=="" || jyglGsdm==null){ 292 if(jyglGsdm=="" || jyglGsdm==null){
302 params['gsdm_in']=gsqx; 293 params['gsdm_in']=gsqx;
@@ -314,7 +305,7 @@ $(function(){ @@ -314,7 +305,7 @@ $(function(){
314 } 305 }
315 params['fgsdm_in']=fgsqx1; 306 params['fgsdm_in']=fgsqx1;
316 } 307 }
317 - } 308 + } */
318 $get('/cwjy/pagequery' ,params, function(data){ 309 $get('/cwjy/pagequery' ,params, function(data){
319 $.each(data.dataList, function(i, obj) { 310 $.each(data.dataList, function(i, obj) {
320 obj.yyrq = $("#rq").val(); 311 obj.yyrq = $("#rq").val();
src/main/resources/static/pages/oil/jyszList.html
@@ -127,22 +127,23 @@ $(function(){ @@ -127,22 +127,23 @@ $(function(){
127 checkboxClass: 'icheckbox_flat-blue', 127 checkboxClass: 'icheckbox_flat-blue',
128 increaseArea: '20%' 128 increaseArea: '20%'
129 } 129 }
130 - var gsqx="";  
131 - var fgsqx=""; 130 +// var gsqx="";
  131 +// var fgsqx="";
132 $.get('/user/companyData', function(result){ 132 $.get('/user/companyData', function(result){
133 obj = result; 133 obj = result;
134 - var options = '<option value="">请选择</option>'; 134 + var options = '';
  135 +// '<option value="">请选择</option>';
135 for(var i = 0; i < obj.length; i++){ 136 for(var i = 0; i < obj.length; i++){
136 options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>'; 137 options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
137 - setFgsqx(obj[i].companyCode);  
138 - gsqx +=obj[i].companyCode+","; 138 +// setFgsqx(obj[i].companyCode);
  139 +// gsqx +=obj[i].companyCode+",";
139 } 140 }
140 $('#jyszListGsdmId').html(options); 141 $('#jyszListGsdmId').html(options);
141 updateCompany(); 142 updateCompany();
142 - jsDoQuery(null,true); 143 +// jsDoQuery(null,true);
143 }); 144 });
144 145
145 - function setFgsqx(gs){ 146 + /* function setFgsqx(gs){
146 var company =gs 147 var company =gs
147 for(var i = 0; i < obj.length; i++){ 148 for(var i = 0; i < obj.length; i++){
148 if(obj[i].companyCode == company){ 149 if(obj[i].companyCode == company){
@@ -152,7 +153,7 @@ $(function(){ @@ -152,7 +153,7 @@ $(function(){
152 } 153 }
153 } 154 }
154 } 155 }
155 - } 156 + } */
156 $("#jyszListGsdmId").on("change",updateCompany); 157 $("#jyszListGsdmId").on("change",updateCompany);
157 function updateCompany(){ 158 function updateCompany(){
158 var company = $('#jyszListGsdmId').val(); 159 var company = $('#jyszListGsdmId').val();
@@ -160,7 +161,7 @@ $(function(){ @@ -160,7 +161,7 @@ $(function(){
160 for(var i = 0; i < obj.length; i++){ 161 for(var i = 0; i < obj.length; i++){
161 if(obj[i].companyCode == company){ 162 if(obj[i].companyCode == company){
162 var children = obj[i].children; 163 var children = obj[i].children;
163 - options += '<option value="">请选择</option>'; 164 +// options += '<option value="">请选择</option>';
164 for(var j = 0; j < children.length; j++){ 165 for(var j = 0; j < children.length; j++){
165 options += '<option value="'+children[j].code+'">'+children[j].name+'</option>'; 166 options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
166 } 167 }
@@ -173,25 +174,31 @@ $(function(){ @@ -173,25 +174,31 @@ $(function(){
173 //重置 174 //重置
174 $('tr.filter .filter-cancel').on('click', function(){ 175 $('tr.filter .filter-cancel').on('click', function(){
175 $('tr.filter input, select').val('').change(); 176 $('tr.filter input, select').val('').change();
176 - jsDoQuery(null, true); 177 + //jsDoQuery(null, true);
177 }); 178 });
178 179
179 //提交 180 //提交
180 $('tr.filter .filter-submit').on('click', function(){ 181 $('tr.filter .filter-submit').on('click', function(){
181 - var cells = $('tr.filter')[0].cells  
182 - ,params = {}  
183 - ,name;  
184 - $.each(cells, function(i, cell){  
185 - var items = $('input,select', cell);  
186 - for(var j = 0, item; item = items[j++];){  
187 - name = $(item).attr('name');  
188 - if(name){  
189 - params[name] = $(item).val(); 182 + var jyszGsdm=$("#jyszListGsdmId").val();
  183 + var jyszFgsdm=$("#jyszListFgsdmId").val();
  184 + if(jyszGsdm=="" || jyszGsdm==null ||jyszFgsdm==""||jyszFgsdm==null){
  185 + layer.msg('请选择公司和分公司.');
  186 + }else{
  187 + var cells = $('tr.filter')[0].cells
  188 + ,params = {}
  189 + ,name;
  190 + $.each(cells, function(i, cell){
  191 + var items = $('input,select', cell);
  192 + for(var j = 0, item; item = items[j++];){
  193 + name = $(item).attr('name');
  194 + if(name){
  195 + params[name] = $(item).val();
  196 + }
190 } 197 }
191 - }  
192 - });  
193 - page = 0;  
194 - jsDoQuery(params, true); 198 + });
  199 + page = 0;
  200 + jsDoQuery(params, true);
  201 + }
195 }); 202 });
196 203
197 /* 204 /*
@@ -205,8 +212,8 @@ $(function(){ @@ -205,8 +212,8 @@ $(function(){
205 //更新时间排序 212 //更新时间排序
206 params['order'] = 'nbbm'; 213 params['order'] = 'nbbm';
207 params['page'] = page; 214 params['page'] = page;
208 - var i = layer.load(2);  
209 - var jyszGsdm=$("#jyszListGsdmId").val(); 215 + var i = 2;
  216 + /* var jyszGsdm=$("#jyszListGsdmId").val();
210 var jyszFgsdm=$("#jyszListFgsdmId").val(); 217 var jyszFgsdm=$("#jyszListFgsdmId").val();
211 if(jyszGsdm==''|| jyszGsdm==null){ 218 if(jyszGsdm==''|| jyszGsdm==null){
212 params['gsdm_in']=gsqx; 219 params['gsdm_in']=gsqx;
@@ -224,7 +231,7 @@ $(function(){ @@ -224,7 +231,7 @@ $(function(){
224 } 231 }
225 params['fgsdm_in']=fgsqx1; 232 params['fgsdm_in']=fgsqx1;
226 } 233 }
227 - } 234 + } */
228 $get('/cwjy' ,params, function(data){ 235 $get('/cwjy' ,params, function(data){
229 $.each(data.content, function(i, obj) { 236 $.each(data.content, function(i, obj) {
230 obj.createDate = moment(obj.createDate).format("YYYY-MM-DD"); 237 obj.createDate = moment(obj.createDate).format("YYYY-MM-DD");
src/main/resources/static/pages/oil/list.html
@@ -58,45 +58,45 @@ @@ -58,45 +58,45 @@
58 id="datatable_ylb"> 58 id="datatable_ylb">
59 <thead> 59 <thead>
60 <tr role="row" class="filter"> 60 <tr role="row" class="filter">
61 - <td colspan="3">  
62 - <!-- 公司:  
63 - <select name="ssgsdm" id="ssgsdm">  
64 - <option value="">请选择...</option>  
65 - <option value="1">可用</option>  
66 - <option value="0">禁用</option>  
67 - </select> --> 61 + <td> 公司:</td>
  62 + <td colspan="2">
  63 +
  64 + <select class="form-control" name="ssgsdm_like" id="ylbListGsdmId" ></select>
  65 +
68 </td> 66 </td>
69 <td> 67 <td>
70 - <!-- <select name="fgsdm"> -->  
71 - <!-- <option value="">请选择...</option> -->  
72 - <!-- <option value="1">可用</option> -->  
73 - <!-- <option value="0">禁用</option> -->  
74 - <!-- </select> -->  
75 -  
76 - 日期: 68 + 分公司:
77 </td> 69 </td>
78 <td colspan="2"> 70 <td colspan="2">
  71 +
  72 + <select class="form-control" name="fgsdm_like" id="ylbListFgsdmId" ></select>
  73 + </td>
  74 +
  75 + <td>
  76 + 日期:
  77 + </td>
  78 + <td>
79 <input type="text" style="width: 80px" name="rq" id="rq"/> 79 <input type="text" style="width: 80px" name="rq" id="rq"/>
80 </td> 80 </td>
81 - <td colspan="2">  
82 - 线路: 81 + <td >
  82 + 线路:
83 </td> 83 </td>
84 <td colspan="3"> 84 <td colspan="3">
85 <select class="form-control" name="xlbm_eq" id="xlbm" style="width: 120px;"></select> 85 <select class="form-control" name="xlbm_eq" id="xlbm" style="width: 120px;"></select>
86 &nbsp; 86 &nbsp;
87 </td> 87 </td>
88 - <td colspan="2">  
89 - 内部编码: 88 + <td >
  89 + 内部编码:
90 </td> 90 </td>
91 <td colspan="3"> 91 <td colspan="3">
92 <select class="form-control" name="nbbm_eq" id="nbbm" style="width: 120px;"></select> 92 <select class="form-control" name="nbbm_eq" id="nbbm" style="width: 120px;"></select>
93 </td> 93 </td>
94 <td colspan="4"> 94 <td colspan="4">
95 - <button class="btn btn-sm green btn-outline filter-submit margin-bottom"> 95 + <button class="btn btn-sm green btn-outline filter-submit margin-bottom" style="margin-right:0px">
96 <i class="fa fa-search"></i> 搜索 96 <i class="fa fa-search"></i> 搜索
97 </button> 97 </button>
98 98
99 - <button class="btn btn-sm red btn-outline filter-cancel"> 99 + <button class="btn btn-sm red btn-outline filter-cancel" style="margin-right:0px">
100 <i class="fa fa-times"></i> 重置 100 <i class="fa fa-times"></i> 重置
101 </button> 101 </button>
102 102
@@ -315,9 +315,6 @@ @@ -315,9 +315,6 @@
315 locale: 'zh-cn' 315 locale: 'zh-cn'
316 }); 316 });
317 317
318 - if ($("#rq").val() != "") {  
319 - jsDoQuery(null, true);  
320 - }  
321 var page = 0, initPagination; 318 var page = 0, initPagination;
322 var icheckOptions = { 319 var icheckOptions = {
323 radioClass: 'iradio_square-blue icheck', 320 radioClass: 'iradio_square-blue icheck',
@@ -331,7 +328,14 @@ @@ -331,7 +328,14 @@
331 328
332 //提交 329 //提交
333 $('tr.filter .filter-submit').on('click', function () { 330 $('tr.filter .filter-submit').on('click', function () {
334 - if ($("#rq").val() != "") { 331 + var ylbGsdm=$("#ylbListGsdmId").val();
  332 + var ylbFgsdm=$("#ylbListFgsdmId").val();
  333 + console.log();
  334 + if ($("#rq").val() == "" || $("#rq").val() ==null){
  335 + layer.msg('请选择日期.');
  336 + }else if(ylbGsdm=="" || ylbGsdm==null || ylbFgsdm=="" ||ylbFgsdm==null){
  337 + layer.msg('请选择公司和分公司.');
  338 + }else {
335 var cells = $('tr.filter')[0].cells 339 var cells = $('tr.filter')[0].cells
336 , params = {} 340 , params = {}
337 , name; 341 , name;
@@ -346,11 +350,51 @@ @@ -346,11 +350,51 @@
346 }); 350 });
347 page = 0; 351 page = 0;
348 jsDoQuery(params, true); 352 jsDoQuery(params, true);
349 - } else {  
350 - layer.msg('请选择日期.');  
351 - } 353 + }
352 }); 354 });
353 355
  356 +
  357 +// var gsqxdm="";
  358 +
  359 +
  360 + $.get('/user/companyData', function(result){
  361 + obj = result;
  362 + var options="";
  363 +// = '<option value="">请选择</option>';
  364 + for(var i = 0; i < obj.length; i++){
  365 + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>';
  366 +// setFgsqx(obj[i].companyCode);
  367 + }
  368 + $('#ylbListGsdmId').html(options);
  369 + updateCompany();
  370 + });
  371 + /* function setFgsqx(gs){
  372 + var company =gs
  373 + var options = '';
  374 + for(var i = 0; i < obj.length; i++){
  375 + if(obj[i].companyCode == company){
  376 + var children = obj[i].children;
  377 + for(var j = 0; j < children.length; j++){
  378 + gsqxdm +=company+""+children[j].code+",";
  379 + }
  380 + }
  381 + }
  382 + } */
  383 + $("#ylbListGsdmId").on("change",updateCompany);
  384 + function updateCompany(){
  385 + var company = $('#ylbListGsdmId').val();
  386 + var options ="";
  387 +// = '<option value="">请选择</option>';
  388 + for(var i = 0; i < obj.length; i++){
  389 + if(obj[i].companyCode == company){
  390 + var children = obj[i].children;
  391 + for(var j = 0; j < children.length; j++){
  392 + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>';
  393 + }
  394 + }
  395 + }
  396 + $('#ylbListFgsdmId').html(options);
  397 + }
354 /* 398 /*
355 * 获取数据 p: 要提交的参数, pagination: 是否重新分页 399 * 获取数据 p: 要提交的参数, pagination: 是否重新分页
356 */ 400 */
@@ -362,6 +406,25 @@ @@ -362,6 +406,25 @@
362 params['order'] = 'nbbm'; 406 params['order'] = 'nbbm';
363 params['page'] = page; 407 params['page'] = page;
364 params['rq'] = $("#rq").val(); 408 params['rq'] = $("#rq").val();
  409 +
  410 + /* var ylbGsdm=$("#ylbListGsdmId").val();
  411 + var ylbFgsdm=$("#ylbListFgsdmId").val();
  412 + if(ylbGsdm==''|| ylbGsdm==null){
  413 + params['concat(ssgsdm,fgsdm)_in']=gsqxdm;
  414 + }else{
  415 + if(ylbFgsdm==''||ylbFgsdm==null){
  416 + var fgsqx1='';
  417 + for(var i = 0; i < obj.length; i++){
  418 + if(obj[i].companyCode == ylbGsdm){
  419 + var children = obj[i].children;
  420 + for(var j = 0; j < children.length; j++){
  421 + fgsqx1 +=children[j].code+",";
  422 + }
  423 + }
  424 + }
  425 + params['fgsdm_in']=fgsqx1;
  426 + }
  427 + } */
365 var i = layer.load(2); 428 var i = layer.load(2);
366 $get('/ylb', params, function (data) { 429 $get('/ylb', params, function (data) {
367 $.each(data.content, function (i, obj) { 430 $.each(data.content, function (i, obj) {
src/main/resources/static/pages/report/inoutstation.html
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
36 </div> 36 </div>
37 <div style="display: inline-block;margin-left: 15px;"> 37 <div style="display: inline-block;margin-left: 15px;">
38 <span class="item-label" style="width: 80px;">线路: </span> 38 <span class="item-label" style="width: 80px;">线路: </span>
39 - <select class="form-control" name="line" id="line" onchange="sreachZd()" style="width: 180px;"></select> 39 + <select class="form-control sreach-zd" name="line" id="line" style="width: 180px;"></select>
40 </div> 40 </div>
41 </div> 41 </div>
42 <br/> 42 <br/>
@@ -58,7 +58,7 @@ @@ -58,7 +58,7 @@
58 <span class="item-label" style="width: 60px;">至: </span> 58 <span class="item-label" style="width: 60px;">至: </span>
59 <input class="form-control" type="text" id="date2" style="width: 180px;"/> 59 <input class="form-control" type="text" id="date2" style="width: 180px;"/>
60 <span class="item-label" style="width: 80px;">站点: </span> 60 <span class="item-label" style="width: 80px;">站点: </span>
61 - <select id="zdlx" onchange="sreachZd()"> 61 + <select id="zdlx" class="sreach-zd" >
62 <option value="">请选择</option> 62 <option value="">请选择</option>
63 <option value="0">上行</option> 63 <option value="0">上行</option>
64 <option value="1">下行</option> 64 <option value="1">下行</option>
@@ -68,7 +68,7 @@ @@ -68,7 +68,7 @@
68 </div> 68 </div>
69 <div class="form-group" style="display: inline-block;margin-left: 15px;"> 69 <div class="form-group" style="display: inline-block;margin-left: 15px;">
70 <input class="btn btn-default" type="button" id="query" value="查询"/> 70 <input class="btn btn-default" type="button" id="query" value="查询"/>
71 - <input class="btn btn-default" type="button" style="display: none;" onclick="clzd()" id="query2" value="查询"/> 71 + <input class="btn btn-default" type="button" style="display: none;" id="query2" value="查询"/>
72 <input class="btn btn-default" type="button" id="export" value="导出"/> 72 <input class="btn btn-default" type="button" id="export" value="导出"/>
73 <input class="btn btn-default" type="button" id="print" value="打印"/> 73 <input class="btn btn-default" type="button" id="print" value="打印"/>
74 <input class="btn btn-default" type="button" id="exportMore" value="批量导出"/> 74 <input class="btn btn-default" type="button" id="exportMore" value="批量导出"/>
@@ -176,7 +176,6 @@ @@ -176,7 +176,6 @@
176 for(var code in result){ 176 for(var code in result){
177 data.push({id: code, text: result[code]}); 177 data.push({id: code, text: result[code]});
178 } 178 }
179 - console.log(data);  
180 initPinYinSelect2('#line',data,''); 179 initPinYinSelect2('#line',data,'');
181 180
182 }) 181 })
@@ -195,7 +194,6 @@ @@ -195,7 +194,6 @@
195 }else{ 194 }else{
196 $post('/report/queryListBczx',{clzbh:clzbh,date:date,line:line},function(result){ 195 $post('/report/queryListBczx',{clzbh:clzbh,date:date,line:line},function(result){
197 getTime(result); 196 getTime(result);
198 - console.log(result);  
199 var ludan_ll_2 = template('ludan_ll_2',{list:result}); 197 var ludan_ll_2 = template('ludan_ll_2',{list:result});
200 // 把渲染好的模版html文本追加到表格中 198 // 把渲染好的模版html文本追加到表格中
201 $('#forms .ludan_ll_2').html(ludan_ll_2); 199 $('#forms .ludan_ll_2').html(ludan_ll_2);
@@ -279,111 +277,119 @@ @@ -279,111 +277,119 @@
279 return '<span style="color:gray;font-size: 12px;"> 正在搜索车辆...</span>'; 277 return '<span style="color:gray;font-size: 12px;"> 正在搜索车辆...</span>';
280 } 278 }
281 } 279 }
282 - })  
283 -  
284 - });  
285 -  
286 -  
287 - function zdxx(fcsj,ddsj){  
288 - var rq=$("#date").val();  
289 - var line=$("#line").val();  
290 - var nbbm=$("#nbbm").val(); 280 + });
291 281
292 - $post('/report/queryListZdxx',{clzbh:nbbm,date:rq,line:line,fcsj:fcsj,ddsj:ddsj},function(result){  
293 - var xlmc="线路: "+$("#select2-line-container").html();  
294 - var clmc="车辆: "+nbbm;  
295 - var rqmc="日期: "+rq;  
296 - var bcmc="班次: "+fcsj+"-"+ddsj;  
297 - $("#dlzmx").html("到离站详细 "+xlmc+" "+clmc+" "+rqmc+" "+bcmc);  
298 - console.log(result);  
299 - var ludan_ll_1 = template('ludan_ll_1',{list:result});  
300 - // 把渲染好的模版html文本追加到表格中  
301 - $('#forms1 .ludan_ll_1').html(ludan_ll_1); 282 + $("#forms tbody").on("click","tr",function(){
  283 + var rq=$("#date").val();
  284 + var line=$("#line").val();
  285 + var nbbm=$("#nbbm").val();
  286 + var params = new Array();
  287 + if($(this).children().size() < 2){
  288 + return;
  289 + }
  290 +
  291 + $(this).children().each(function(index){
  292 + params[index] = $(this).text();
302 }); 293 });
  294 + var id=params[0].split("\\")[0];
  295 + var fcsj = $('.in_carpark_fcsj[data-id='+id+']', '#forms').html();
  296 + var ddsj= $('.in_carpark_zdsj[data-id='+id+']', '#forms').html();
  297 +
  298 + $post('/report/queryListZdxx',{clzbh:nbbm,date:rq,line:line,fcsj:fcsj,ddsj:ddsj},function(result){
  299 + var xlmc="线路: "+$("#select2-line-container").html();
  300 + var clmc="车辆: "+nbbm;
  301 + var rqmc="日期: "+rq;
  302 + var bcmc="班次: "+fcsj+"-"+ddsj;
  303 + $("#dlzmx").html("到离站详细 "+xlmc+" "+clmc+" "+rqmc+" "+bcmc);
  304 + var ludan_ll_1 = template('ludan_ll_1',{list:result});
  305 + // 把渲染好的模版html文本追加到表格中
  306 + $('#forms1 .ludan_ll_1').html(ludan_ll_1);
  307 + });
  308 + })
303 309
304 - }  
305 -  
306 - function clzd(){  
307 - var date1=$("#date1").val();  
308 - var date2=$("#date2").val();  
309 - var line=$("#line").val();  
310 - var zdlx=$("#zdlx").val();  
311 - var zd=$("#zd").val();  
312 - console.log(nbbm);  
313 - if(date1=="" || date1==null){  
314 - layer.msg("请选择时间");  
315 - }else if( line=="" || line==null){  
316 - layer.msg("请选择线路");  
317 - }else if(date2 ==null || date2==""){  
318 - layer.msg("请选择时间");  
319 - }else if(zdlx=="" || zdlx==null){  
320 - layer.msg("请选择方向");  
321 - }else{  
322 - var xlmc="线路: "+$("#select2-line-container").html();  
323 - var rqmc="日期: "+date1+"-"+date2;  
324 - var sxmc="上下行: "+ zdlx;  
325 - var zdmc="";  
326 - if(zd==null || zd==""){  
327 - zdmc="站点: "  
328 - }else{  
329 - zdmc="站点: "+$("#select2-zd-container").html();  
330 - }  
331 - $("#dlzmx").html("到离站详细 "+xlmc+" "+rqmc+" "+sxmc+" "+zdmc);  
332 - $post('/report/queryListClzd',{zd:zd,zdlx:zdlx,line:line,fcsj:date1,ddsj:date2},function(result){  
333 - console.log(result);  
334 - var ludan_ll_1 = template('ludan_ll_1',{list:result});  
335 - // 把渲染好的模版html文本追加到表格中  
336 - $('#forms1 .ludan_ll_1').html(ludan_ll_1);  
337 - });  
338 - }  
339 - }  
340 -  
341 - function sreachZd(){  
342 - var line = $("#line").val();  
343 - var zdlx = $("#zdlx").val();  
344 - if(line==null|| line =="" || zdlx ==null || zdlx==""){  
345 -  
346 - }else{  
347 - $('#zd').select2({  
348 - placeholder: '搜索站点...',  
349 - ajax: {  
350 - url: '/report/sreachZd',  
351 - dataType: 'json',  
352 - delay: 150,  
353 - data: function(params){  
354 - return{line: line,zdlx:zdlx,zd:params.term}; 310 + $("#query2").click(function(){
  311 + var date1=$("#date1").val();
  312 + var date2=$("#date2").val();
  313 + var line=$("#line").val();
  314 + var zdlx=$("#zdlx").val();
  315 + var zd=$("#zd").val();
  316 + if(date1=="" || date1==null){
  317 + layer.msg("请选择时间");
  318 + }else if( line=="" || line==null){
  319 + layer.msg("请选择线路");
  320 + }else if(date2 ==null || date2==""){
  321 + layer.msg("请选择时间");
  322 + }else if(zdlx=="" || zdlx==null){
  323 + layer.msg("请选择方向");
  324 + }else{
  325 + var xlmc="线路: "+$("#select2-line-container").html();
  326 + var rqmc="日期: "+date1+"-"+date2;
  327 + var sxmc="上下行: "+ zdlx;
  328 + var zdmc="";
  329 + if(zd==null || zd==""){
  330 + zdmc="站点: "
  331 + }else{
  332 + zdmc="站点: "+$("#select2-zd-container").html();
  333 + }
  334 + $("#dlzmx").html("到离站详细 "+xlmc+" "+rqmc+" "+sxmc+" "+zdmc);
  335 + $post('/report/queryListClzd',{zd:zd,zdlx:zdlx,line:line,fcsj:date1,ddsj:date2},function(result){
  336 + var ludan_ll_1 = template('ludan_ll_1',{list:result});
  337 + // 把渲染好的模版html文本追加到表格中
  338 + $('#forms1 .ludan_ll_1').html(ludan_ll_1);
  339 + });
  340 + }
  341 + })
  342 +
  343 + $(".sreach-zd").click(function(){
  344 + var line = $("#line").val();
  345 + var zdlx = $("#zdlx").val();
  346 + if(line==null|| line =="" || zdlx ==null || zdlx==""){
  347 +
  348 + }else{
  349 + $('#zd').select2({
  350 + placeholder: '搜索站点...',
  351 + ajax: {
  352 + url: '/report/sreachZd',
  353 + dataType: 'json',
  354 + delay: 150,
  355 + data: function(params){
  356 + return{line: line,zdlx:zdlx,zd:params.term};
  357 + },
  358 + processResults: function (data) {
  359 + return {
  360 + results: data
  361 + };
  362 + },
  363 + cache: true
355 }, 364 },
356 - processResults: function (data) {  
357 - return {  
358 - results: data  
359 - };  
360 - },  
361 - cache: true  
362 - },  
363 - templateResult: function(repo){  
364 - if (repo.loading) return repo.text;  
365 - var h = '<span>'+repo.text+'</span>';  
366 - return h;  
367 - },  
368 - escapeMarkup: function (markup) { return markup; },  
369 - minimumInputLength: 1,  
370 - templateSelection: function(repo){  
371 - return repo.text;  
372 - },  
373 - language: {  
374 - noResults: function(){  
375 - return '<span style="color:red;font-size: 12px;">没有搜索到站点!</span>';  
376 - },  
377 - inputTooShort : function(e) {  
378 - return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入站点名称</span>';  
379 - },  
380 - searching : function() {  
381 - return '<span style="color:gray;font-size: 12px;"> 正在搜索站点...</span>';  
382 - }  
383 - }  
384 - });  
385 - }  
386 - } 365 + templateResult: function(repo){
  366 + if (repo.loading) return repo.text;
  367 + var h = '<span>'+repo.text+'</span>';
  368 + return h;
  369 + },
  370 + escapeMarkup: function (markup) { return markup; },
  371 + minimumInputLength: 1,
  372 + templateSelection: function(repo){
  373 + return repo.text;
  374 + },
  375 + language: {
  376 + noResults: function(){
  377 + return '<span style="color:red;font-size: 12px;">没有搜索到站点!</span>';
  378 + },
  379 + inputTooShort : function(e) {
  380 + return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入站点名称</span>';
  381 + },
  382 + searching : function() {
  383 + return '<span style="color:gray;font-size: 12px;"> 正在搜索站点...</span>';
  384 + }
  385 + }
  386 + });
  387 + }
  388 + })
  389 +
  390 +
  391 + });
  392 +
387 </script> 393 </script>
388 <script type="text/html" id="ludan_ll_1"> 394 <script type="text/html" id="ludan_ll_1">
389 {{each list as obj i}} 395 {{each list as obj i}}
@@ -426,7 +432,7 @@ @@ -426,7 +432,7 @@
426 {{else if obj.status==-1}} 432 {{else if obj.status==-1}}
427 (已烂班 ) 433 (已烂班 )
428 {{else}} 434 {{else}}
429 - <a onclick='zdxx("{{obj.fcsjActual}}","{{obj.zdsjActual}}")'> 435 + <a >
430 ({{obj.fcsjActual}} 436 ({{obj.fcsjActual}}
431 {{if obj.fast>0}} 437 {{if obj.fast>0}}
432 早点 {{obj.fast}}分钟 438 早点 {{obj.fast}}分钟
@@ -436,6 +442,8 @@ @@ -436,6 +442,8 @@
436 整点 442 整点
437 {{/if}} 443 {{/if}}
438 ) 444 )
  445 + <span class="in_carpark_fcsj" data-id="{{i+1}}" style="display:none">{{obj.fcsjActual}}</span>
  446 + <span class="in_carpark_zdsj" data-id="{{i+1}}" style="display:none">{{obj.zdsjActual}}</span>
439 </a> 447 </a>
440 {{/if}} 448 {{/if}}
441 449
src/main/resources/static/pages/scheduleApp/module/common/prj-common-globalservice-legacy.js
1 -// 项目通用的全局service服务,供不同的controller使用,自定义指令不使用  
2 -  
3 -// 文件下载服务  
4 -angular.module('ScheduleApp').factory('FileDownload_g', function() {  
5 - return {  
6 - downloadFile: function (data, mimeType, fileName) {  
7 - var success = false;  
8 - var blob = new Blob([data], { type: mimeType });  
9 - try {  
10 - if (navigator.msSaveBlob)  
11 - navigator.msSaveBlob(blob, fileName);  
12 - else {  
13 - // Try using other saveBlob implementations, if available  
14 - var saveBlob = navigator.webkitSaveBlob || navigator.mozSaveBlob || navigator.saveBlob;  
15 - if (saveBlob === undefined) throw "Not supported";  
16 - saveBlob(blob, fileName);  
17 - }  
18 - success = true;  
19 - } catch (ex) {  
20 - console.log("saveBlob method failed with the following exception:");  
21 - console.log(ex);  
22 - }  
23 -  
24 - if (!success) {  
25 - // Get the blob url creator  
26 - var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;  
27 - if (urlCreator) {  
28 - // Try to use a download link  
29 - var link = document.createElement('a');  
30 - if ('download' in link) {  
31 - // Try to simulate a click  
32 - try {  
33 - // Prepare a blob URL  
34 - var url = urlCreator.createObjectURL(blob);  
35 - link.setAttribute('href', url);  
36 -  
37 - // Set the download attribute (Supported in Chrome 14+ / Firefox 20+)  
38 - link.setAttribute("download", fileName);  
39 -  
40 - // Simulate clicking the download link  
41 - var event = document.createEvent('MouseEvents');  
42 - event.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);  
43 - link.dispatchEvent(event);  
44 - success = true;  
45 -  
46 - } catch (ex) {  
47 - console.log("Download link method with simulated click failed with the following exception:");  
48 - console.log(ex);  
49 - }  
50 - }  
51 -  
52 - if (!success) {  
53 - // Fallback to window.location method  
54 - try {  
55 - // Prepare a blob URL  
56 - // Use application/octet-stream when using window.location to force download  
57 - var url = urlCreator.createObjectURL(blob);  
58 - window.location = url;  
59 - console.log("Download link method with window.location succeeded");  
60 - success = true;  
61 - } catch (ex) {  
62 - console.log("Download link method with window.location failed with the following exception:");  
63 - console.log(ex);  
64 - }  
65 - }  
66 - }  
67 - }  
68 -  
69 - if (!success) {  
70 - // Fallback to window.open method  
71 - console.log("No methods worked for saving the arraybuffer, using last resort window.open");  
72 - window.open("", '_blank', '');  
73 - }  
74 - }  
75 - };  
76 -});  
77 -  
78 -  
79 -/**  
80 - * saSelect2指令,根据属性值,动态载入数据,然后支持拼音搜索,点击右边的按钮清除选择并重新载入数据。  
81 - * 1、compile阶段使用的属性如下:  
82 - * required:用于和表单验证连接,指定成required="true"才有效。  
83 - * 2、link阶段使用的属性如下  
84 - * model:关联的模型对象  
85 - * name:表单验证时需要的名字  
86 - * type:关联的那种数据值(xl/cl/ry)-> 对应线路信息/车辆信息/人员信息,后面有的继续加  
87 - * modelcolname1:关联的模型字段名字1(一般应该是编码字段)  
88 - * modelcolname2:关联的模型字段名字2(一般应该是名字字段)  
89 - * datacolname1;内部数据对应的字段名字1(与模型字段1对应)  
90 - * datacolname2:内部数据对应的字段名字2(与模型字段2对应)  
91 - * showcolname:下拉框显示的内部数据字段名(注意:不是模型数据字段名),TODO:以后考虑放动态表达式,并在compile阶段使用  
92 - * placeholder:select placeholder字符串描述  
93 - *  
94 - * $$pyFilter,内部的filter指令,结合简拼音进行拼音过滤。  
95 - * $$SearchInfoService_g,内部使用的数据服务  
96 - */  
97 -// saSelect2指令使用的内部信service  
98 -angular.module('ScheduleApp').factory('$$SearchInfoService_g', ['$resource', function($resource) {  
99 - return {  
100 - xl: $resource(  
101 - '/line/:type',  
102 - {order: 'name', direction: 'ASC'},  
103 - {  
104 - list: {  
105 - method: 'GET',  
106 - isArray: true  
107 - }  
108 - }  
109 - ),  
110 - xlinfo: $resource(  
111 - '/lineInformation/:type',  
112 - {order: 'line.name', direction: 'ASC'},  
113 - {  
114 - list: {  
115 - method: 'GET',  
116 - isArray: true  
117 - }  
118 - }  
119 - ),  
120 - zd: $resource(  
121 - '/stationroute/stations',  
122 - {order: 'stationCode', direction: 'ASC'},  
123 - {  
124 - list: {  
125 - method: 'GET',  
126 - isArray: true  
127 - }  
128 - }  
129 - ),  
130 - tcc: $resource(  
131 - '/carpark/:type',  
132 - {order: 'parkCode', direction: 'ASC'},  
133 - {  
134 - list: {  
135 - method: 'GET',  
136 - isArray: true  
137 - }  
138 - }  
139 - ),  
140 - ry: $resource(  
141 - '/personnel/:type',  
142 - {order: 'personnelName', direction: 'ASC'},  
143 - {  
144 - list: {  
145 - method: 'GET',  
146 - isArray: true  
147 - }  
148 - }  
149 - ),  
150 - cl: $resource(  
151 - '/cars/:type',  
152 - {order: "insideCode", direction: 'ASC'},  
153 - {  
154 - list: {  
155 - method: 'GET',  
156 - isArray: true  
157 - }  
158 - }  
159 - ),  
160 - ttInfo: $resource(  
161 - '/tic/:type',  
162 - {order: "name", direction: 'ASC'},  
163 - {  
164 - list: {  
165 - method: 'GET',  
166 - isArray: true  
167 - }  
168 - }  
169 - ),  
170 - lpInfo: $resource(  
171 - '/gic/ttlpnames',  
172 - {order: "lpName", direction: 'ASC'},  
173 - {  
174 - list: {  
175 - method: 'GET',  
176 - isArray: true  
177 - }  
178 - }  
179 - ),  
180 - lpInfo2: $resource(  
181 - '/gic/:type',  
182 - {order: "lpName", direction: 'ASC'},  
183 - {  
184 - list: {  
185 - method: 'GET',  
186 - isArray: true  
187 - }  
188 - }  
189 - ),  
190 - cci: $resource(  
191 - '/cci/cars',  
192 - {},  
193 - {  
194 - list: {  
195 - method: 'GET',  
196 - isArray: true  
197 - }  
198 - }  
199 -  
200 - ),  
201 - cci2: $resource(  
202 - '/cci/:type',  
203 - {},  
204 - {  
205 - list: {  
206 - method: 'GET',  
207 - isArray: true,  
208 - transformResponse: function(rs) {  
209 - var dst = angular.fromJson(rs);  
210 - if (dst.status == 'SUCCESS') {  
211 - return dst.data;  
212 - } else {  
213 - return dst; // 业务错误留给控制器处理  
214 - }  
215 - }  
216 - }  
217 - }  
218 - ),  
219 - cci3: $resource(  
220 - '/cci/cars2',  
221 - {},  
222 - {  
223 - list: {  
224 - method: 'GET',  
225 - isArray: true  
226 - }  
227 - }  
228 -  
229 - ),  
230 - eci: $resource(  
231 - '/eci/jsy',  
232 - {},  
233 - {  
234 - list: {  
235 - method: 'GET',  
236 - isArray: true  
237 - }  
238 - }  
239 - ),  
240 - eci2: $resource(  
241 - '/eci/spy',  
242 - {},  
243 - {  
244 - list: {  
245 - method: 'GET',  
246 - isArray: true  
247 - }  
248 - }  
249 - ),  
250 - eci3: $resource(  
251 - '/eci/:type',  
252 - {},  
253 - {  
254 - list: {  
255 - method: 'GET',  
256 - isArray: true  
257 - }  
258 - }  
259 - ),  
260 -  
261 -  
262 - validate: { // remoteValidation指令用到的resource  
263 - gbv1: { // 路牌序号验证  
264 - template: {'xl.id_eq': -1, 'lpNo_eq': 'ddd'},  
265 - remote: $resource(  
266 - '/gic/validate1',  
267 - {},  
268 - {  
269 - do: {  
270 - method: 'GET'  
271 - }  
272 - }  
273 - )  
274 - },  
275 - gbv2: { // 路牌名称验证  
276 - template: {'xl.id_eq': -1, 'lpName_eq': 'ddd'},  
277 - remote: $resource(  
278 - '/gic/validate2',  
279 - {},  
280 - {  
281 - do: {  
282 - method: 'GET'  
283 - }  
284 - }  
285 - )  
286 - },  
287 -  
288 - cars_zbh: { // 自编号验证  
289 - template: {'insideCode_eq': '-1'}, // 查询参数模版  
290 - remote: $resource( // $resource封装对象  
291 - '/cars_sc/validate_zbh',  
292 - {},  
293 - {  
294 - do: {  
295 - method: 'GET'  
296 - }  
297 - }  
298 - )  
299 - },  
300 -  
301 - cars_sbbh: { // 验证设备编号  
302 - template: {'equipmentCode_eq': '-1'}, // 查询参数模版  
303 - remote: $resource( // $resource封装对象  
304 - '/cars_sc/validate_sbbh',  
305 - {},  
306 - {  
307 - do: {  
308 - method: 'GET'  
309 - }  
310 - }  
311 - )  
312 - },  
313 -  
314 - cars_clbh: { // 车辆编号验证  
315 - template: {'carCode_eq': '-1'}, // 查询参数模版  
316 - remote: $resource( // $resource封装对象  
317 - '/cars_sc/validate_clbh',  
318 - {},  
319 - {  
320 - do: {  
321 - method: 'GET'  
322 - }  
323 - }  
324 - )  
325 - },  
326 -  
327 - cars_cph: { // 车牌号验证  
328 - template: {'carPlate_eq': '-1'}, // 查询参数模版  
329 - remote: $resource( // $resource封装对象  
330 - '/cars_sc/validate_cph',  
331 - {},  
332 - {  
333 - do: {  
334 - method: 'GET'  
335 - }  
336 - }  
337 - )  
338 - },  
339 - cc_cars: { // 车辆不能重复配置  
340 - template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'cl.id_eq': -1}, // 查询参数模版  
341 - remote: $resource( // $resource封装对象  
342 - '/cci/validate_cars',  
343 - {},  
344 - {  
345 - do: {  
346 - method: 'GET'  
347 - }  
348 - }  
349 - )  
350 - },  
351 - ec_jsy: { // 驾驶员不能重复配置  
352 - template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'jsy.id_eq': -1}, // 查询参数模版  
353 - remote: $resource( // $resource封装对象  
354 - '/eci/validate_jsy',  
355 - {},  
356 - {  
357 - do: {  
358 - method: 'GET'  
359 - }  
360 - }  
361 - )  
362 - },  
363 - ec_spy: { // 售票员不能重复配置  
364 - template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'spy.id_eq': -1}, // 查询参数模版  
365 - remote: $resource( // $resource封装对象  
366 - '/eci/validate_spy',  
367 - {},  
368 - {  
369 - do: {  
370 - method: 'GET'  
371 - }  
372 - }  
373 - )  
374 - },  
375 -  
376 - cde1: { // 车辆设备启用日期验证  
377 - template: {'qyrq': 0, 'xl': 1, 'cl': 1}, // 日期毫秒  
378 - remote: $resource( // $resource封装对象  
379 - '/cde//validate/qyrq',  
380 - {},  
381 - {  
382 - do: {  
383 - method: 'GET'  
384 - }  
385 - }  
386 - )  
387 - },  
388 - ttc1: { // 时刻表名字验证  
389 - template: {'xl.id_eq': -1, 'name_eq': 'ddd'},  
390 - remote: $resource( // $resource封装对象  
391 - '/tic/validate/equale',  
392 - {},  
393 - {  
394 - do: {  
395 - method: 'GET'  
396 - }  
397 - }  
398 - )  
399 - },  
400 - sheet: { // 时刻表sheet工作区验证  
401 - template: {'filename': '', 'sheetname': '', 'lineid': -1, 'linename': ''},  
402 - remote: $resource( // $resource封装对象  
403 - '/tidc/validate/sheet',  
404 - {},  
405 - {  
406 - do: {  
407 - method: 'POST',  
408 - headers: {  
409 - 'Content-Type': 'application/x-www-form-urlencoded'  
410 - },  
411 - transformRequest: function(obj) {  
412 - var str = [];  
413 - for (var p in obj) {  
414 - str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));  
415 - }  
416 - return str.join("&");  
417 - }  
418 - }  
419 - }  
420 - )  
421 - },  
422 - sheetli: { // 时刻表线路标准验证  
423 - template: {'lineinfoid': -1},  
424 - remote: $resource( // $resource封装对象  
425 - '/tidc/validate/lineinfo',  
426 - {},  
427 - {  
428 - do: {  
429 - method: 'GET'  
430 - }  
431 - }  
432 - )  
433 - }  
434 - }  
435 -  
436 - //validate: $resource(  
437 - // '/cars/validate/:type',  
438 - // {},  
439 - // {  
440 - // insideCode: {  
441 - // method: 'GET'  
442 - // }  
443 - // }  
444 - //)  
445 -  
446 -  
447 -  
448 - }  
449 -}]);  
450 -  
451 - 1 +// 项目通用的全局service服务,供不同的controller使用,自定义指令不使用
  2 +
  3 +// 文件下载服务
  4 +angular.module('ScheduleApp').factory('FileDownload_g', function() {
  5 + return {
  6 + downloadFile: function (data, mimeType, fileName) {
  7 + var success = false;
  8 + var blob = new Blob([data], { type: mimeType });
  9 + try {
  10 + if (navigator.msSaveBlob)
  11 + navigator.msSaveBlob(blob, fileName);
  12 + else {
  13 + // Try using other saveBlob implementations, if available
  14 + var saveBlob = navigator.webkitSaveBlob || navigator.mozSaveBlob || navigator.saveBlob;
  15 + if (saveBlob === undefined) throw "Not supported";
  16 + saveBlob(blob, fileName);
  17 + }
  18 + success = true;
  19 + } catch (ex) {
  20 + console.log("saveBlob method failed with the following exception:");
  21 + console.log(ex);
  22 + }
  23 +
  24 + if (!success) {
  25 + // Get the blob url creator
  26 + var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;
  27 + if (urlCreator) {
  28 + // Try to use a download link
  29 + var link = document.createElement('a');
  30 + if ('download' in link) {
  31 + // Try to simulate a click
  32 + try {
  33 + // Prepare a blob URL
  34 + var url = urlCreator.createObjectURL(blob);
  35 + link.setAttribute('href', url);
  36 +
  37 + // Set the download attribute (Supported in Chrome 14+ / Firefox 20+)
  38 + link.setAttribute("download", fileName);
  39 +
  40 + // Simulate clicking the download link
  41 + var event = document.createEvent('MouseEvents');
  42 + event.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
  43 + link.dispatchEvent(event);
  44 + success = true;
  45 +
  46 + } catch (ex) {
  47 + console.log("Download link method with simulated click failed with the following exception:");
  48 + console.log(ex);
  49 + }
  50 + }
  51 +
  52 + if (!success) {
  53 + // Fallback to window.location method
  54 + try {
  55 + // Prepare a blob URL
  56 + // Use application/octet-stream when using window.location to force download
  57 + var url = urlCreator.createObjectURL(blob);
  58 + window.location = url;
  59 + console.log("Download link method with window.location succeeded");
  60 + success = true;
  61 + } catch (ex) {
  62 + console.log("Download link method with window.location failed with the following exception:");
  63 + console.log(ex);
  64 + }
  65 + }
  66 + }
  67 + }
  68 +
  69 + if (!success) {
  70 + // Fallback to window.open method
  71 + console.log("No methods worked for saving the arraybuffer, using last resort window.open");
  72 + window.open("", '_blank', '');
  73 + }
  74 + }
  75 + };
  76 +});
  77 +
  78 +
  79 +/**
  80 + * saSelect2指令,根据属性值,动态载入数据,然后支持拼音搜索,点击右边的按钮清除选择并重新载入数据。
  81 + * 1、compile阶段使用的属性如下:
  82 + * required:用于和表单验证连接,指定成required="true"才有效。
  83 + * 2、link阶段使用的属性如下
  84 + * model:关联的模型对象
  85 + * name:表单验证时需要的名字
  86 + * type:关联的那种数据值(xl/cl/ry)-> 对应线路信息/车辆信息/人员信息,后面有的继续加
  87 + * modelcolname1:关联的模型字段名字1(一般应该是编码字段)
  88 + * modelcolname2:关联的模型字段名字2(一般应该是名字字段)
  89 + * datacolname1;内部数据对应的字段名字1(与模型字段1对应)
  90 + * datacolname2:内部数据对应的字段名字2(与模型字段2对应)
  91 + * showcolname:下拉框显示的内部数据字段名(注意:不是模型数据字段名),TODO:以后考虑放动态表达式,并在compile阶段使用
  92 + * placeholder:select placeholder字符串描述
  93 + *
  94 + * $$pyFilter,内部的filter指令,结合简拼音进行拼音过滤。
  95 + * $$SearchInfoService_g,内部使用的数据服务
  96 + */
  97 +// saSelect2指令使用的内部信service
  98 +angular.module('ScheduleApp').factory('$$SearchInfoService_g', ['$resource', function($resource) {
  99 + return {
  100 + xl: $resource(
  101 + '/line/:type',
  102 + {order: 'name', direction: 'ASC'},
  103 + {
  104 + list: {
  105 + method: 'GET',
  106 + isArray: true
  107 + }
  108 + }
  109 + ),
  110 + xlinfo: $resource(
  111 + '/lineInformation/:type',
  112 + {order: 'line.name', direction: 'ASC'},
  113 + {
  114 + list: {
  115 + method: 'GET',
  116 + isArray: true
  117 + }
  118 + }
  119 + ),
  120 + zd: $resource(
  121 + '/stationroute/stations',
  122 + {order: 'stationCode', direction: 'ASC'},
  123 + {
  124 + list: {
  125 + method: 'GET',
  126 + isArray: true
  127 + }
  128 + }
  129 + ),
  130 + tcc: $resource(
  131 + '/carpark/:type',
  132 + {order: 'parkCode', direction: 'ASC'},
  133 + {
  134 + list: {
  135 + method: 'GET',
  136 + isArray: true
  137 + }
  138 + }
  139 + ),
  140 + ry: $resource(
  141 + '/personnel/:type',
  142 + {order: 'personnelName', direction: 'ASC'},
  143 + {
  144 + list: {
  145 + method: 'GET',
  146 + isArray: true
  147 + }
  148 + }
  149 + ),
  150 + cl: $resource(
  151 + '/cars/:type',
  152 + {order: "insideCode", direction: 'ASC'},
  153 + {
  154 + list: {
  155 + method: 'GET',
  156 + isArray: true
  157 + }
  158 + }
  159 + ),
  160 + ttInfo: $resource(
  161 + '/tic/:type',
  162 + {order: "name", direction: 'ASC'},
  163 + {
  164 + list: {
  165 + method: 'GET',
  166 + isArray: true
  167 + }
  168 + }
  169 + ),
  170 + lpInfo: $resource(
  171 + '/gic/ttlpnames',
  172 + {order: "lpName", direction: 'ASC'},
  173 + {
  174 + list: {
  175 + method: 'GET',
  176 + isArray: true
  177 + }
  178 + }
  179 + ),
  180 + lpInfo2: $resource(
  181 + '/gic/:type',
  182 + {order: "lpName", direction: 'ASC'},
  183 + {
  184 + list: {
  185 + method: 'GET',
  186 + isArray: true
  187 + }
  188 + }
  189 + ),
  190 + cci: $resource(
  191 + '/cci/cars',
  192 + {},
  193 + {
  194 + list: {
  195 + method: 'GET',
  196 + isArray: true
  197 + }
  198 + }
  199 +
  200 + ),
  201 + cci2: $resource(
  202 + '/cci/:type',
  203 + {},
  204 + {
  205 + list: {
  206 + method: 'GET',
  207 + isArray: true,
  208 + transformResponse: function(rs) {
  209 + var dst = angular.fromJson(rs);
  210 + if (dst.status == 'SUCCESS') {
  211 + return dst.data;
  212 + } else {
  213 + return dst; // 业务错误留给控制器处理
  214 + }
  215 + }
  216 + }
  217 + }
  218 + ),
  219 + cci3: $resource(
  220 + '/cci/cars2',
  221 + {},
  222 + {
  223 + list: {
  224 + method: 'GET',
  225 + isArray: true
  226 + }
  227 + }
  228 +
  229 + ),
  230 + eci: $resource(
  231 + '/eci/jsy',
  232 + {},
  233 + {
  234 + list: {
  235 + method: 'GET',
  236 + isArray: true
  237 + }
  238 + }
  239 + ),
  240 + eci2: $resource(
  241 + '/eci/spy',
  242 + {},
  243 + {
  244 + list: {
  245 + method: 'GET',
  246 + isArray: true
  247 + }
  248 + }
  249 + ),
  250 + eci3: $resource(
  251 + '/eci/:type',
  252 + {},
  253 + {
  254 + list: {
  255 + method: 'GET',
  256 + isArray: true
  257 + }
  258 + }
  259 + ),
  260 +
  261 +
  262 + validate: { // remoteValidation指令用到的resource
  263 + gbv1: { // 路牌序号验证
  264 + template: {'xl.id_eq': -1, 'lpNo_eq': 'ddd'},
  265 + remote: $resource(
  266 + '/gic/validate1',
  267 + {},
  268 + {
  269 + do: {
  270 + method: 'GET'
  271 + }
  272 + }
  273 + )
  274 + },
  275 + gbv2: { // 路牌名称验证
  276 + template: {'xl.id_eq': -1, 'lpName_eq': 'ddd'},
  277 + remote: $resource(
  278 + '/gic/validate2',
  279 + {},
  280 + {
  281 + do: {
  282 + method: 'GET'
  283 + }
  284 + }
  285 + )
  286 + },
  287 +
  288 + cars_zbh: { // 自编号验证
  289 + template: {'insideCode_eq': '-1'}, // 查询参数模版
  290 + remote: $resource( // $resource封装对象
  291 + '/cars_sc/validate_zbh',
  292 + {},
  293 + {
  294 + do: {
  295 + method: 'GET'
  296 + }
  297 + }
  298 + )
  299 + },
  300 +
  301 + cars_sbbh: { // 验证设备编号
  302 + template: {'equipmentCode_eq': '-1'}, // 查询参数模版
  303 + remote: $resource( // $resource封装对象
  304 + '/cars_sc/validate_sbbh',
  305 + {},
  306 + {
  307 + do: {
  308 + method: 'GET'
  309 + }
  310 + }
  311 + )
  312 + },
  313 +
  314 + cars_clbh: { // 车辆编号验证
  315 + template: {'carCode_eq': '-1'}, // 查询参数模版
  316 + remote: $resource( // $resource封装对象
  317 + '/cars_sc/validate_clbh',
  318 + {},
  319 + {
  320 + do: {
  321 + method: 'GET'
  322 + }
  323 + }
  324 + )
  325 + },
  326 +
  327 + cars_cph: { // 车牌号验证
  328 + template: {'carPlate_eq': '-1'}, // 查询参数模版
  329 + remote: $resource( // $resource封装对象
  330 + '/cars_sc/validate_cph',
  331 + {},
  332 + {
  333 + do: {
  334 + method: 'GET'
  335 + }
  336 + }
  337 + )
  338 + },
  339 + cc_cars: { // 车辆不能重复配置
  340 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'cl.id_eq': -1}, // 查询参数模版
  341 + remote: $resource( // $resource封装对象
  342 + '/cci/validate_cars',
  343 + {},
  344 + {
  345 + do: {
  346 + method: 'GET'
  347 + }
  348 + }
  349 + )
  350 + },
  351 + ec_jsy: { // 驾驶员不能重复配置
  352 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'jsy.id_eq': -1}, // 查询参数模版
  353 + remote: $resource( // $resource封装对象
  354 + '/eci/validate_jsy',
  355 + {},
  356 + {
  357 + do: {
  358 + method: 'GET'
  359 + }
  360 + }
  361 + )
  362 + },
  363 + ec_spy: { // 售票员不能重复配置
  364 + template: {'xl.id_eq': -1, 'xl.name_eq': '-1', 'spy.id_eq': -1}, // 查询参数模版
  365 + remote: $resource( // $resource封装对象
  366 + '/eci/validate_spy',
  367 + {},
  368 + {
  369 + do: {
  370 + method: 'GET'
  371 + }
  372 + }
  373 + )
  374 + },
  375 +
  376 + cde1: { // 车辆设备启用日期验证
  377 + template: {'qyrq': 0, 'xl': 1, 'cl': 1}, // 日期毫秒
  378 + remote: $resource( // $resource封装对象
  379 + '/cde//validate/qyrq',
  380 + {},
  381 + {
  382 + do: {
  383 + method: 'GET'
  384 + }
  385 + }
  386 + )
  387 + },
  388 + ttc1: { // 时刻表名字验证
  389 + template: {'xl.id_eq': -1, 'name_eq': 'ddd'},
  390 + remote: $resource( // $resource封装对象
  391 + '/tic/validate/equale',
  392 + {},
  393 + {
  394 + do: {
  395 + method: 'GET'
  396 + }
  397 + }
  398 + )
  399 + },
  400 + sheet: { // 时刻表sheet工作区验证
  401 + template: {'filename': '', 'sheetname': '', 'lineid': -1, 'linename': ''},
  402 + remote: $resource( // $resource封装对象
  403 + '/tidc/validate/sheet',
  404 + {},
  405 + {
  406 + do: {
  407 + method: 'POST',
  408 + headers: {
  409 + 'Content-Type': 'application/x-www-form-urlencoded'
  410 + },
  411 + transformRequest: function(obj) {
  412 + var str = [];
  413 + for (var p in obj) {
  414 + str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
  415 + }
  416 + return str.join("&");
  417 + }
  418 + }
  419 + }
  420 + )
  421 + },
  422 + sheetli: { // 时刻表线路标准验证
  423 + template: {'lineinfoid': -1},
  424 + remote: $resource( // $resource封装对象
  425 + '/tidc/validate/lineinfo',
  426 + {},
  427 + {
  428 + do: {
  429 + method: 'GET'
  430 + }
  431 + }
  432 + )
  433 + }
  434 + }
  435 +
  436 + //validate: $resource(
  437 + // '/cars/validate/:type',
  438 + // {},
  439 + // {
  440 + // insideCode: {
  441 + // method: 'GET'
  442 + // }
  443 + // }
  444 + //)
  445 +
  446 +
  447 +
  448 + }
  449 +}]);
  450 +
  451 +
src/main/resources/static/pages/scheduleApp/module/core/busConfig/service.js
1 -// 车辆配置service  
2 -angular.module('ScheduleApp').factory('BusConfigService_g', ['$resource', function($resource) {  
3 - return {  
4 - rest : $resource(  
5 - '/cci/:id',  
6 - {order: 'xl.id,cl.insideCode,isCancel', direction: 'ASC', id: '@id_route'},  
7 - {  
8 - list: {  
9 - method: 'GET',  
10 - params: {  
11 - page: 0  
12 - },  
13 - transformResponse: function(rs) {  
14 - var dst = angular.fromJson(rs);  
15 - if (dst.status == 'SUCCESS') {  
16 - return dst.data;  
17 - } else {  
18 - return dst; // 业务错误留给控制器处理  
19 - }  
20 - }  
21 - },  
22 - get: {  
23 - method: 'GET',  
24 - transformResponse: function(rs) {  
25 - var dst = angular.fromJson(rs);  
26 - if (dst.status == 'SUCCESS') {  
27 - return dst.data;  
28 - } else {  
29 - return dst;  
30 - }  
31 - }  
32 - },  
33 - save: {  
34 - method: 'POST'  
35 - }  
36 - }  
37 - )  
38 - }; 1 +// 车辆配置service
  2 +angular.module('ScheduleApp').factory('BusConfigService_g', ['$resource', function($resource) {
  3 + return {
  4 + rest : $resource(
  5 + '/cci/:id',
  6 + {order: 'xl.id,cl.insideCode,isCancel', direction: 'ASC', id: '@id_route'},
  7 + {
  8 + list: {
  9 + method: 'GET',
  10 + params: {
  11 + page: 0
  12 + },
  13 + transformResponse: function(rs) {
  14 + var dst = angular.fromJson(rs);
  15 + if (dst.status == 'SUCCESS') {
  16 + return dst.data;
  17 + } else {
  18 + return dst; // 业务错误留给控制器处理
  19 + }
  20 + }
  21 + },
  22 + get: {
  23 + method: 'GET',
  24 + transformResponse: function(rs) {
  25 + var dst = angular.fromJson(rs);
  26 + if (dst.status == 'SUCCESS') {
  27 + return dst.data;
  28 + } else {
  29 + return dst;
  30 + }
  31 + }
  32 + },
  33 + save: {
  34 + method: 'POST'
  35 + }
  36 + }
  37 + )
  38 + };
39 }]); 39 }]);
40 \ No newline at end of file 40 \ No newline at end of file
src/main/resources/static/pages/scheduleApp/module/core/employeeConfig/service.js
1 -// 人员配置service  
2 -angular.module('ScheduleApp').factory('EmployeeConfigService_g', ['$resource', function($resource) {  
3 - return {  
4 - rest : $resource(  
5 - '/eci/:id',  
6 - {order: 'xl.id,isCancel,dbbmFormula', direction: 'ASC', id: '@id_route'},  
7 - {  
8 - list: {  
9 - method: 'GET',  
10 - params: {  
11 - page: 0  
12 - },  
13 - transformResponse: function(rs) {  
14 - var dst = angular.fromJson(rs);  
15 - if (dst.status == 'SUCCESS') {  
16 - return dst.data;  
17 - } else {  
18 - return dst; // 业务错误留给控制器处理  
19 - }  
20 - }  
21 - },  
22 - get: {  
23 - method: 'GET',  
24 - transformResponse: function(rs) {  
25 - var dst = angular.fromJson(rs);  
26 - if (dst.status == 'SUCCESS') {  
27 - return dst.data;  
28 - } else {  
29 - return dst;  
30 - }  
31 - }  
32 - },  
33 - save: {  
34 - method: 'POST'  
35 - },  
36 - delete: {  
37 - method: 'DELETE'  
38 - }  
39 - }  
40 - ),  
41 - validate: $resource( // TODO:  
42 - '/personnel/validate/:type',  
43 - {},  
44 - {  
45 - jobCode: {  
46 - method: 'GET'  
47 - }  
48 - }  
49 - )  
50 - }; 1 +// 人员配置service
  2 +angular.module('ScheduleApp').factory('EmployeeConfigService_g', ['$resource', function($resource) {
  3 + return {
  4 + rest : $resource(
  5 + '/eci/:id',
  6 + {order: 'xl.id,isCancel,dbbmFormula', direction: 'ASC', id: '@id_route'},
  7 + {
  8 + list: {
  9 + method: 'GET',
  10 + params: {
  11 + page: 0
  12 + },
  13 + transformResponse: function(rs) {
  14 + var dst = angular.fromJson(rs);
  15 + if (dst.status == 'SUCCESS') {
  16 + return dst.data;
  17 + } else {
  18 + return dst; // 业务错误留给控制器处理
  19 + }
  20 + }
  21 + },
  22 + get: {
  23 + method: 'GET',
  24 + transformResponse: function(rs) {
  25 + var dst = angular.fromJson(rs);
  26 + if (dst.status == 'SUCCESS') {
  27 + return dst.data;
  28 + } else {
  29 + return dst;
  30 + }
  31 + }
  32 + },
  33 + save: {
  34 + method: 'POST'
  35 + },
  36 + delete: {
  37 + method: 'DELETE'
  38 + }
  39 + }
  40 + ),
  41 + validate: $resource( // TODO:
  42 + '/personnel/validate/:type',
  43 + {},
  44 + {
  45 + jobCode: {
  46 + method: 'GET'
  47 + }
  48 + }
  49 + )
  50 + };
51 }]); 51 }]);
52 \ No newline at end of file 52 \ No newline at end of file
src/main/resources/static/real_control_v2/css/line_schedule.css
@@ -64,6 +64,9 @@ @@ -64,6 +64,9 @@
64 .line_schedule .schedule-wrap h3 { 64 .line_schedule .schedule-wrap h3 {
65 margin: 7px 0 5px; 65 margin: 7px 0 5px;
66 text-indent: 5px; 66 text-indent: 5px;
  67 + margin: 0;
  68 + height: 31px;
  69 + line-height: 31px;
67 } 70 }
68 71
69 .line_schedule .schedule-wrap.up h3 { 72 .line_schedule .schedule-wrap.up h3 {
@@ -245,6 +248,7 @@ span.fcsj-diff { @@ -245,6 +248,7 @@ span.fcsj-diff {
245 .tl-yzx { 248 .tl-yzx {
246 background: #c1ddf0; 249 background: #c1ddf0;
247 border-top: 1px solid #ebebeb !important; 250 border-top: 1px solid #ebebeb !important;
  251 + color: #444;
248 } 252 }
249 253
250 .tl-xxfc{ 254 .tl-xxfc{
@@ -254,15 +258,18 @@ span.fcsj-diff { @@ -254,15 +258,18 @@ span.fcsj-diff {
254 258
255 .tl-wd{ 259 .tl-wd{
256 background: #caca4f; 260 background: #caca4f;
  261 + color: #444;
257 } 262 }
258 263
259 .tl-xxsd{ 264 .tl-xxsd{
260 background: #e2de94; 265 background: #e2de94;
  266 + color: #444;
261 } 267 }
262 268
263 .tl-xxrd{ 269 .tl-xxrd{
264 background: #c1ddf0; 270 background: #c1ddf0;
265 border-top: 1px solid #ebebeb !important; 271 border-top: 1px solid #ebebeb !important;
  272 + color: #444;
266 } 273 }
267 274
268 .tl-qrlb { 275 .tl-qrlb {
@@ -277,6 +284,7 @@ span.fcsj-diff { @@ -277,6 +284,7 @@ span.fcsj-diff {
277 284
278 .tl-zzzx { 285 .tl-zzzx {
279 background: #96F396; 286 background: #96F396;
  287 + color: #444;
280 } 288 }
281 289
282 .ct_table>.ct_table_body dl:hover dd.tl-yzx, .ct_table>.ct_table_body dl.context-menu-active dd.tl-yzx, .ct_table>.ct_table_body dl:hover dd.tl-zzzx, .ct_table>.ct_table_body dl.context-menu-active dd.tl-zzzx { 290 .ct_table>.ct_table_body dl:hover dd.tl-yzx, .ct_table>.ct_table_body dl.context-menu-active dd.tl-yzx, .ct_table>.ct_table_body dl:hover dd.tl-zzzx, .ct_table>.ct_table_body dl.context-menu-active dd.tl-zzzx {
@@ -901,4 +909,38 @@ input.i-cbox[type=checkbox]{ @@ -901,4 +909,38 @@ input.i-cbox[type=checkbox]{
901 .uk-modal-footer .ct-footer-left a{ 909 .uk-modal-footer .ct-footer-left a{
902 color: #6e6b6b; 910 color: #6e6b6b;
903 margin-right: 5px; 911 margin-right: 5px;
  912 +}
  913 +
  914 +.fixed_legend{
  915 + font-size: 12px;
  916 + display: none;
  917 + height: 28px;
  918 + border-radius: 4px;
  919 + background: #efeeee;
  920 + padding-bottom: .5px;
  921 + margin-left: 10px;
  922 + padding-right: 8px;
  923 +}
  924 +.fixed_legend>div{
  925 + height: 100%;
  926 +}
  927 +.fixed_legend span{
  928 + padding: 4px 4px;
  929 + border-radius: 2px;
  930 + margin-right: 5px;
  931 + font-size: 12px;
  932 +}
  933 +
  934 +.fixed_legend span:last-child{
  935 + margin-right: 0px;
  936 +}
  937 +
  938 +/*.fixed_legend i{
  939 + font-size: 16px;
  940 + vertical-align: middle;
  941 + margin: -3px 3px 0 0;
  942 +}*/
  943 +
  944 +.fixed_legend .tl-qrlb::before{
  945 + font-size: 12px;
904 } 946 }
905 \ No newline at end of file 947 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/geo/calc_station_space.html
1 -<!-- 嵌入下抽屉 -->  
2 -<div id="cal_station_space_drawer" style="width: 100%;height: 100%;">  
3 -  
4 - <div style="text-align: center;padding-top: 30px;" class="calcBeforePanel">  
5 - <p style="margin: 9px 0 9px 0;">当前站点间里程数据取自 <a target="_blank" id="stationRouteLink">基础信息->线路信息->站点详细</a>  
6 - 你可以手动编辑。</p>  
7 - <p style="margin: 9px 0 9px 0;">此外,我们提供另一种选择,根据路段和站点空间坐标计算站间距。计算后的数据将存储在本地。  
8 - </p>  
9 - <p style="margin: 0px 0 9px 0;">  
10 - <span style="color: grey;font-size: 12px;">该操作会借用本地计算能力进行,如果你同意,请点击下方按钮!</span>  
11 - </p>  
12 - <p style="margin: 9px 0 9px 0;">  
13 - <button class="uk-button uk-button-large uk-button-primary" type="button" id="startCalcBtn">开始计算</button>  
14 - </p>  
15 - </div>  
16 -  
17 - <div class="pace pace-active" style="display: none;">  
18 - <div class="pace-progress" data-progress="50" data-progress-text="50%"  
19 - style="-webkit-transform: translate3d(50%, 0px, 0px); -ms-transform: translate3d(50%, 0px, 0px); transform: translate3d(50%, 0px, 0px);">  
20 - <div class="pace-progress-inner"></div>  
21 - </div>  
22 - <div class="pace-activity"></div>  
23 - <span class="text"></span>  
24 - </div>  
25 -  
26 - <script>  
27 -  
28 - (function () {  
29 - var drawer = '#cal_station_space_drawer'  
30 - , sch, line;  
31 -  
32 - $(drawer).on('drawer-init', function (e, data) {  
33 - sch = data.sch;  
34 - line = gb_data_basic.codeToLine[sch.xlBm];  
35 - //线路路由信息调整链接  
36 - $('#stationRouteLink', drawer).attr('href', '/pages/base/stationroute/list.html?no=' + line.id);  
37 -  
38 - $('#startCalcBtn', drawer).on('click', startCalc);  
39 - });  
40 -  
41 -  
42 - function startCalc() {  
43 - $(this).attr('disabled', 'disabled');  
44 -  
45 - gb_common.$get('/realMap/findRouteAndStationByLine', {lineCode: line.lineCode}, function (spatialData) {  
46 - $('.calcBeforePanel', drawer).hide();  
47 - $('.pace', drawer).show();  
48 -  
49 - startGeoCalc(spatialData);  
50 - });  
51 - }  
52 -  
53 - function startGeoCalc(spatialData) {  
54 - setCalcText('初始化数据');  
55 - //console.log('spatialData', spatialData);  
56 - //路段上下行分组排序  
57 - var sections = gb_common.groupBy(spatialData.section, 'DIRECTIONS');  
58 - sections[0].sort(sectionArrSort);  
59 - sections[1].sort(sectionArrSort);  
60 -  
61 - //站点上下行分组排序  
62 - var stations = gb_common.groupBy(spatialData.station, 'DIRECTIONS');  
63 - stations[0].sort(stationArrSort);  
64 - stations[1].sort(stationArrSort);  
65 -  
66 - setCalcText('拼接路段,计算重叠区域');  
67 - var fullSections = [  
68 - connectSections(sections[0]),  
69 - connectSections(sections[1])  
70 - ];  
71 -  
72 - setCalcText('计算上行数据');  
73 - var upCalcRs = calcStationSpace(stations[0], fullSections[0]);  
74 -  
75 - setCalcText('计算下行数据');  
76 - var downCalcRs = calcStationSpace(stations[1], fullSections[1]);  
77 -  
78 - var locData = {  
79 - stations: {up: upCalcRs, down: downCalcRs},  
80 - sections: {up: fullSections[0], down: fullSections[1]}  
81 - };  
82 -  
83 - window.localStorage.setItem('control_route_distance_' + sch.xlBm, JSON.stringify(locData));  
84 - //console.log('结果', locData);  
85 - }  
86 -  
87 - function sectionArrSort(s1, s2) {  
88 - return s1.SECTIONROUTE_CODE - s2.SECTIONROUTE_CODE;  
89 - }  
90 -  
91 - function stationArrSort(s1, s2) {  
92 - return s1.STATION_ROUTE_CODE - s2.STATION_ROUTE_CODE;  
93 - }  
94 -  
95 - function setCalcText(t) {  
96 - $('.pace .text', drawer).text(t);  
97 - }  
98 -  
99 - //连接路段数组  
100 - function connectSections(sectionArray) {  
101 - var coords = [];  
102 -  
103 - var vs, temps;  
104 - for (var i = 0, section; section = sectionArray[i++];) {  
105 - vs = section.GSECTION_VECTOR;  
106 - temps = vs.substr(11, vs.length - 2).split(',');  
107 -  
108 - connectCoords(coords, temps);  
109 - }  
110 - return coords;  
111 - }  
112 -  
113 - function connectCoords(all, subArr) {  
114 -  
115 - var point, ts, len = all.length, inLine, sIndex = 0;  
116 - if (len > 0) {  
117 - $.each(subArr, function (i, p) {  
118 - ts = p.split(' ');  
119 - point = {latitude: parseFloat(ts[1]), longitude: parseFloat(ts[0])};  
120 - //找到起始点  
121 - sIndex = 0;  
122 - for (var j = 1; j < len; j++) {  
123 - inLine = geolib.isPointInLine(point, all[j - 1], all[j]);  
124 -  
125 - if (inLine)  
126 - break;  
127 - else  
128 - sIndex = i;  
129 - }  
130 - });  
131 - }  
132 -  
133 - //拼接  
134 - for (var i = sIndex; i < subArr.length; i++) {  
135 - ts = subArr[i].split(' ');  
136 - all.push({  
137 - latitude: parseFloat(ts[1]), longitude: parseFloat(ts[0])  
138 - });  
139 - }  
140 - }  
141 -  
142 - //计算站点间距  
143 - function calcStationSpace(stations, coords) {  
144 -  
145 - var nearArray = [];  
146 - for (var i = 1; i < stations.length; i++) {  
147 -  
148 - //点到线的最短距离 并计算交点坐标  
149 - var rs = calcPointToLineNearPoint({  
150 - latitude: stations[i].G_LATY,  
151 - longitude: stations[i].G_LONX  
152 - }, coords);  
153 - rs.station = stations[i];  
154 -  
155 - //将交点插入线路中  
156 - coords.splice(rs.index, 0, rs.intersection);  
157 -  
158 - nearArray.push(rs);  
159 - //console.log('站点' + i + '计算结果', rs.intersection, rs);  
160 - }  
161 -  
162 - //根据交点截断line,并计算距离  
163 - var s = 0, e, distance;  
164 - $.each(nearArray, function (i) {  
165 - e = this.index;  
166 - distance = 0;  
167 - for (; s < e; s++) {  
168 - distance += geolib.getDistance(coords[s], coords[s + 1]);  
169 - }  
170 -  
171 - this.toDistance = distance;  
172 - s = e;  
173 - });  
174 -  
175 - //首站  
176 - nearArray.splice(0, 0, {  
177 - distance: 0,  
178 - station: stations[0],  
179 - toDistance: 0  
180 - });  
181 - return nearArray;  
182 - }  
183 -  
184 - function calcPointToLineNearPoint(point, coords) {  
185 - var minRs, rs;  
186 - for (var i = 1; i < coords.length; i++) {  
187 -  
188 - var start = coords[i - 1], end = coords[i];  
189 - var d1 = geolib.getDistance(start, point, 1, 3);  
190 - var d2 = geolib.getDistance(point, end, 1, 3);  
191 - var d3 = geolib.getDistance(start, end, 1, 3);  
192 -  
193 - var alpha = Math.acos((d1 * d1 + d3 * d3 - d2 * d2) / (2 * d1 * d3));  
194 - var beta = Math.acos((d2 * d2 + d3 * d3 - d1 * d1) / (2 * d2 * d3));  
195 -  
196 - if (d3 < 0.5 || isNaN(alpha) || isNaN(beta))  
197 - continue;  
198 -  
199 - rs = {index: i};  
200 - if (alpha > Math.PI / 2) {  
201 - rs.distance = d1;  
202 - rs.intersection = start;  
203 - }  
204 - else if (beta > Math.PI / 2) {  
205 - rs.distance = d2;  
206 - rs.intersection = end;  
207 - }  
208 - else {  
209 - rs.distance = Math.sin(alpha) * d1;  
210 - rs.intersection = perpendularPoint(start, end, point);  
211 - }  
212 -  
213 - if (!minRs || minRs.distance > rs.distance)  
214 - minRs = rs  
215 - }  
216 -  
217 - return minRs;  
218 - }  
219 -  
220 - //获取点 到 线的垂直交点  
221 - function perpendularPoint(lp1, lp2, p) {  
222 - var a = lp1.latitude - lp2.latitude, b = lp2.longitude - lp1.longitude, c = lp1.longitude * lp2.latitude - lp2.longitude * lp1.latitude;  
223 - var lon = (Math.pow(b, 2) * p.longitude - a * b * p.latitude - a * c) / (Math.pow(a, 2) + Math.pow(b, 2));  
224 - var lat = (Math.pow(a, 2) * p.latitude - a * b * p.longitude - b * c) / (Math.pow(a, 2) + Math.pow(b, 2));  
225 - return {longitude: lon, latitude: lat};  
226 - }  
227 -  
228 - })();  
229 - </script> 1 +<!-- 嵌入下抽屉 -->
  2 +<div id="cal_station_space_drawer" style="width: 100%;height: 100%;">
  3 +
  4 + <div style="text-align: center;padding-top: 30px;" class="calcBeforePanel">
  5 + <p style="margin: 9px 0 9px 0;">当前站点间里程数据取自 <a target="_blank" id="stationRouteLink">基础信息->线路信息->站点详细</a>
  6 + 你可以手动编辑。</p>
  7 + <p style="margin: 9px 0 9px 0;">此外,我们提供另一种选择,根据路段和站点空间坐标计算站间距。计算后的数据将存储在本地。
  8 + </p>
  9 + <p style="margin: 0px 0 9px 0;">
  10 + <span style="color: grey;font-size: 12px;">该操作会借用本地计算能力进行,如果你同意,请点击下方按钮!</span>
  11 + </p>
  12 + <p style="margin: 9px 0 9px 0;">
  13 + <button class="uk-button uk-button-large uk-button-primary" type="button" id="startCalcBtn">开始计算</button>
  14 + </p>
  15 + </div>
  16 +
  17 + <div class="pace pace-active" style="display: none;">
  18 + <div class="pace-progress" data-progress="50" data-progress-text="50%"
  19 + style="-webkit-transform: translate3d(50%, 0px, 0px); -ms-transform: translate3d(50%, 0px, 0px); transform: translate3d(50%, 0px, 0px);">
  20 + <div class="pace-progress-inner"></div>
  21 + </div>
  22 + <div class="pace-activity"></div>
  23 + <span class="text"></span>
  24 + </div>
  25 +
  26 + <script>
  27 +
  28 + (function () {
  29 + var drawer = '#cal_station_space_drawer'
  30 + , sch, line;
  31 +
  32 + $(drawer).on('drawer-init', function (e, data) {
  33 + sch = data.sch;
  34 + line = gb_data_basic.codeToLine[sch.xlBm];
  35 + //线路路由信息调整链接
  36 + $('#stationRouteLink', drawer).attr('href', '/pages/base/stationroute/list.html?no=' + line.id);
  37 +
  38 + $('#startCalcBtn', drawer).on('click', startCalc);
  39 + });
  40 +
  41 +
  42 + function startCalc() {
  43 + $(this).attr('disabled', 'disabled');
  44 +
  45 + gb_common.$get('/realMap/findRouteAndStationByLine', {lineCode: line.lineCode}, function (spatialData) {
  46 + $('.calcBeforePanel', drawer).hide();
  47 + $('.pace', drawer).show();
  48 +
  49 + startGeoCalc(spatialData);
  50 + });
  51 + }
  52 +
  53 + function startGeoCalc(spatialData) {
  54 + setCalcText('初始化数据');
  55 + //console.log('spatialData', spatialData);
  56 + //路段上下行分组排序
  57 + var sections = gb_common.groupBy(spatialData.section, 'DIRECTIONS');
  58 + sections[0].sort(sectionArrSort);
  59 + sections[1].sort(sectionArrSort);
  60 +
  61 + //站点上下行分组排序
  62 + var stations = gb_common.groupBy(spatialData.station, 'DIRECTIONS');
  63 + stations[0].sort(stationArrSort);
  64 + stations[1].sort(stationArrSort);
  65 +
  66 + setCalcText('拼接路段,计算重叠区域');
  67 + var fullSections = [
  68 + connectSections(sections[0]),
  69 + connectSections(sections[1])
  70 + ];
  71 +
  72 + setCalcText('计算上行数据');
  73 + var upCalcRs = calcStationSpace(stations[0], fullSections[0]);
  74 +
  75 + setCalcText('计算下行数据');
  76 + var downCalcRs = calcStationSpace(stations[1], fullSections[1]);
  77 +
  78 + var locData = {
  79 + stations: {up: upCalcRs, down: downCalcRs},
  80 + sections: {up: fullSections[0], down: fullSections[1]}
  81 + };
  82 +
  83 + window.localStorage.setItem('control_route_distance_' + sch.xlBm, JSON.stringify(locData));
  84 + //console.log('结果', locData);
  85 + }
  86 +
  87 + function sectionArrSort(s1, s2) {
  88 + return s1.SECTIONROUTE_CODE - s2.SECTIONROUTE_CODE;
  89 + }
  90 +
  91 + function stationArrSort(s1, s2) {
  92 + return s1.STATION_ROUTE_CODE - s2.STATION_ROUTE_CODE;
  93 + }
  94 +
  95 + function setCalcText(t) {
  96 + $('.pace .text', drawer).text(t);
  97 + }
  98 +
  99 + //连接路段数组
  100 + function connectSections(sectionArray) {
  101 + var coords = [];
  102 +
  103 + var vs, temps;
  104 + for (var i = 0, section; section = sectionArray[i++];) {
  105 + vs = section.GSECTION_VECTOR;
  106 + temps = vs.substr(11, vs.length - 2).split(',');
  107 +
  108 + connectCoords(coords, temps);
  109 + }
  110 + return coords;
  111 + }
  112 +
  113 + function connectCoords(all, subArr) {
  114 +
  115 + var point, ts, len = all.length, inLine, sIndex = 0;
  116 + if (len > 0) {
  117 + $.each(subArr, function (i, p) {
  118 + ts = p.split(' ');
  119 + point = {latitude: parseFloat(ts[1]), longitude: parseFloat(ts[0])};
  120 + //找到起始点
  121 + sIndex = 0;
  122 + for (var j = 1; j < len; j++) {
  123 + inLine = geolib.isPointInLine(point, all[j - 1], all[j]);
  124 +
  125 + if (inLine)
  126 + break;
  127 + else
  128 + sIndex = i;
  129 + }
  130 + });
  131 + }
  132 +
  133 + //拼接
  134 + for (var i = sIndex; i < subArr.length; i++) {
  135 + ts = subArr[i].split(' ');
  136 + all.push({
  137 + latitude: parseFloat(ts[1]), longitude: parseFloat(ts[0])
  138 + });
  139 + }
  140 + }
  141 +
  142 + //计算站点间距
  143 + function calcStationSpace(stations, coords) {
  144 +
  145 + var nearArray = [];
  146 + for (var i = 1; i < stations.length; i++) {
  147 +
  148 + //点到线的最短距离 并计算交点坐标
  149 + var rs = calcPointToLineNearPoint({
  150 + latitude: stations[i].G_LATY,
  151 + longitude: stations[i].G_LONX
  152 + }, coords);
  153 + rs.station = stations[i];
  154 +
  155 + //将交点插入线路中
  156 + coords.splice(rs.index, 0, rs.intersection);
  157 +
  158 + nearArray.push(rs);
  159 + //console.log('站点' + i + '计算结果', rs.intersection, rs);
  160 + }
  161 +
  162 + //根据交点截断line,并计算距离
  163 + var s = 0, e, distance;
  164 + $.each(nearArray, function (i) {
  165 + e = this.index;
  166 + distance = 0;
  167 + for (; s < e; s++) {
  168 + distance += geolib.getDistance(coords[s], coords[s + 1]);
  169 + }
  170 +
  171 + this.toDistance = distance;
  172 + s = e;
  173 + });
  174 +
  175 + //首站
  176 + nearArray.splice(0, 0, {
  177 + distance: 0,
  178 + station: stations[0],
  179 + toDistance: 0
  180 + });
  181 + return nearArray;
  182 + }
  183 +
  184 + function calcPointToLineNearPoint(point, coords) {
  185 + var minRs, rs;
  186 + for (var i = 1; i < coords.length; i++) {
  187 +
  188 + var start = coords[i - 1], end = coords[i];
  189 + var d1 = geolib.getDistance(start, point, 1, 3);
  190 + var d2 = geolib.getDistance(point, end, 1, 3);
  191 + var d3 = geolib.getDistance(start, end, 1, 3);
  192 +
  193 + var alpha = Math.acos((d1 * d1 + d3 * d3 - d2 * d2) / (2 * d1 * d3));
  194 + var beta = Math.acos((d2 * d2 + d3 * d3 - d1 * d1) / (2 * d2 * d3));
  195 +
  196 + if (d3 < 0.5 || isNaN(alpha) || isNaN(beta))
  197 + continue;
  198 +
  199 + rs = {index: i};
  200 + if (alpha > Math.PI / 2) {
  201 + rs.distance = d1;
  202 + rs.intersection = start;
  203 + }
  204 + else if (beta > Math.PI / 2) {
  205 + rs.distance = d2;
  206 + rs.intersection = end;
  207 + }
  208 + else {
  209 + rs.distance = Math.sin(alpha) * d1;
  210 + rs.intersection = perpendularPoint(start, end, point);
  211 + }
  212 +
  213 + if (!minRs || minRs.distance > rs.distance)
  214 + minRs = rs
  215 + }
  216 +
  217 + return minRs;
  218 + }
  219 +
  220 + //获取点 到 线的垂直交点
  221 + function perpendularPoint(lp1, lp2, p) {
  222 + var a = lp1.latitude - lp2.latitude, b = lp2.longitude - lp1.longitude, c = lp1.longitude * lp2.latitude - lp2.longitude * lp1.latitude;
  223 + var lon = (Math.pow(b, 2) * p.longitude - a * b * p.latitude - a * c) / (Math.pow(a, 2) + Math.pow(b, 2));
  224 + var lat = (Math.pow(a, 2) * p.latitude - a * b * p.longitude - b * c) / (Math.pow(a, 2) + Math.pow(b, 2));
  225 + return {longitude: lon, latitude: lat};
  226 + }
  227 +
  228 + })();
  229 + </script>
230 </div> 230 </div>
231 \ No newline at end of file 231 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/lj_zrw.html
@@ -322,8 +322,7 @@ @@ -322,8 +322,7 @@
322 name: "添加子任务", 322 name: "添加子任务",
323 items: { 323 items: {
324 'add_sub_task_in': { 324 'add_sub_task_in': {
325 - name: '回场',  
326 - disabled: true 325 + name: '回场'
327 }, 326 },
328 'add_sub_task_out': { 327 'add_sub_task_out': {
329 name: '出场', 328 name: '出场',
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task/add_sub_task_inpark.html
1 -<div class="uk-modal" id="add-sub-task-inpark-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 -  
7 - <div style="width: 100%;padding-left: 1%;">  
8 - <div class="sub-task-card">  
9 - <div class="uk-panel uk-panel-box uk-panel-box-primary">  
10 - <div class="uk-panel-badge uk-badge">营运</div>  
11 - <h3 class="uk-panel-title">线路上站点间</h3>  
12 - <form class="uk-form uk-form-horizontal" service_form>  
13 - <div class="uk-grid">  
14 - <div class="uk-width-3-10">  
15 - <div class="uk-form-row">  
16 - <label class="uk-form-label">起点 </label>  
17 - </div>  
18 - </div>  
19 - <div class="uk-width-7-10 pl5">  
20 - <select name="startStation" disabled></select>  
21 - </div>  
22 - </div>  
23 - <div class="uk-grid">  
24 - <div class="uk-width-3-10">  
25 - <div class="uk-form-row">  
26 - <label class="uk-form-label">终点 </label>  
27 - </div>  
28 - </div>  
29 - <div class="uk-width-7-10 pl5">  
30 - <select name="endStation" class="ct_focus"></select>  
31 - </div>  
32 - </div>  
33 - <div class="uk-grid">  
34 - <div class="uk-width-3-10">  
35 - <div class="uk-form-row">  
36 - <label class="uk-form-label">营运里程</label>  
37 - </div>  
38 - </div>  
39 - <div class="uk-width-7-10 pl5">  
40 - <input type="text" name="mileageType" required>  
41 - </div>  
42 - </div>  
43 - <div class="uk-grid">  
44 - <div class="uk-width-3-10">  
45 - <div class="uk-form-row">  
46 - <label class="uk-form-label">开始时间</label>  
47 - </div>  
48 - </div>  
49 - <div class="uk-width-7-10 pl5">  
50 - <input type="time" name="startDate" required>  
51 - </div>  
52 - </div>  
53 - <div class="uk-grid">  
54 - <div class="uk-width-3-10">  
55 - <div class="uk-form-row">  
56 - <label class="uk-form-label">结束时间</label>  
57 - </div>  
58 - </div>  
59 - <div class="uk-width-7-10 pl5">  
60 - <input type="time" name="endDate" required>  
61 - </div>  
62 - </div>  
63 - </form>  
64 - </div>  
65 - </div>  
66 - <div class="sub-task-card">  
67 - <div class="uk-panel uk-panel-box uk-panel-box-secondary">  
68 - <div class="uk-panel-badge uk-badge uk-badge-default">空驶</div>  
69 - <h3 class="uk-panel-title">进场</h3>  
70 - <form class="uk-form uk-form-horizontal" empty_form>  
71 - <div class="uk-grid">  
72 - <div class="uk-width-3-10">  
73 - <div class="uk-form-row">  
74 - <label class="uk-form-label">起点 </label>  
75 - </div>  
76 - </div>  
77 - <div class="uk-width-7-10 pl5">  
78 - <select name="startStation" disabled></select>  
79 - </div>  
80 - </div>  
81 - <div class="uk-grid">  
82 - <div class="uk-width-3-10">  
83 - <div class="uk-form-row">  
84 - <label class="uk-form-label">终点 </label>  
85 - </div>  
86 - </div>  
87 - <div class="uk-width-7-10 pl5">  
88 - <select name="endStation" class="ct_focus"></select>  
89 - </div>  
90 - </div>  
91 - <div class="uk-grid">  
92 - <div class="uk-width-3-10">  
93 - <div class="uk-form-row">  
94 - <label class="uk-form-label">空驶里程</label>  
95 - </div>  
96 - </div>  
97 - <div class="uk-width-7-10 pl5">  
98 - <input type="text" name="mileageType" required style="width: calc(100% - 62px);">  
99 - <a style="font-size: 12px;">路径(3)</a>  
100 - </div>  
101 - </div>  
102 - <div class="uk-grid">  
103 - <div class="uk-width-3-10">  
104 - <div class="uk-form-row">  
105 - <label class="uk-form-label">开始时间</label>  
106 - </div>  
107 - </div>  
108 - <div class="uk-width-7-10 pl5">  
109 - <input type="time" name="startDate" required>  
110 - </div>  
111 - </div>  
112 - <div class="uk-grid">  
113 - <div class="uk-width-3-10">  
114 - <div class="uk-form-row">  
115 - <label class="uk-form-label">结束时间</label>  
116 - </div>  
117 - </div>  
118 - <div class="uk-width-7-10 pl5">  
119 - <input type="time" name="endDate" required>  
120 - </div>  
121 - </div>  
122 - </form>  
123 - </div>  
124 - </div>  
125 - <div class="sub-task-card destroy-card uk-animation-scale">  
126 - <div class="uk-panel uk-panel-box uk-panel-box-danger">  
127 - <div class="uk-panel-badge uk-badge uk-badge-danger">烂班</div>  
128 - <h3 class="uk-panel-title">线路上站点间</h3>  
129 - <form class="uk-form uk-form-horizontal" destroy_form>  
130 - <div class="uk-grid">  
131 - <div class="uk-width-3-10">  
132 - <div class="uk-form-row">  
133 - <label class="uk-form-label">起点 </label>  
134 - </div>  
135 - </div>  
136 - <div class="uk-width-7-10 pl5">  
137 - <select name="startStation" disabled></select>  
138 - </div>  
139 - </div>  
140 - <div class="uk-grid">  
141 - <div class="uk-width-3-10">  
142 - <div class="uk-form-row">  
143 - <label class="uk-form-label">终点 </label>  
144 - </div>  
145 - </div>  
146 - <div class="uk-width-7-10 pl5">  
147 - <select name="endStation" class="ct_focus" disabled></select>  
148 - </div>  
149 - </div>  
150 - <div class="uk-grid">  
151 - <div class="uk-width-3-10">  
152 - <div class="uk-form-row">  
153 - <label class="uk-form-label">烂班里程</label>  
154 - </div>  
155 - </div>  
156 - <div class="uk-width-7-10 pl5">  
157 - <input type="text" name="mileageType" required>  
158 - </div>  
159 - </div>  
160 - <div class="uk-grid">  
161 - <div class="uk-width-3-10">  
162 - <div class="uk-form-row">  
163 - <label class="uk-form-label">开始时间</label>  
164 - </div>  
165 - </div>  
166 - <div class="uk-width-7-10 pl5">  
167 - <input type="time" name="startDate" required>  
168 - </div>  
169 - </div>  
170 - <div class="uk-grid">  
171 - <div class="uk-width-3-10">  
172 - <div class="uk-form-row">  
173 - <label class="uk-form-label">烂班原因</label>  
174 - </div>  
175 - </div>  
176 - <div class="uk-width-7-10 pl5">  
177 - <select name="destroyReason" required></select>  
178 - </div>  
179 - </div>  
180 - </form>  
181 - </div>  
182 - </div>  
183 -  
184 - <form class="uk-form" style="margin-top: 15px; padding: 0 10px 0 0;">  
185 - <textarea placeholder="备注" style="width: 100%;height: 70px;"></textarea>  
186 - </form>  
187 - </div>  
188 -  
189 - <div class="uk-modal-footer uk-text-right">  
190 - <button type="button" class="uk-button uk-modal-close">取消</button>  
191 - <button type="button" class="uk-button uk-button-primary">提交子任务</button>  
192 -  
193 - <div class="ct-footer-left">  
194 - <a id="betweenStationRangeCalc" data-drawer-id="station_route_spacing_chart_drawer">站点间公里不准?</a>  
195 - </div>  
196 - </div>  
197 - </div>  
198 -  
199 - <div class="ct-bottom-drawer">  
200 - <a class="ct-bottom-drawer-close"></a>  
201 -  
202 - <div class="ct-bottom-drawer-body"></div>  
203 - </div>  
204 -  
205 - <script id="sub-task-inpark-form-temp" type="text/html">  
206 - </script>  
207 -  
208 - <script>  
209 - (function () {  
210 - var modal = '#add-sub-task-inpark-modal',  
211 - serviceForm = $('form[service_form]', modal),  
212 - emptyForm = $('form[empty_form]', modal),  
213 - destroyForm = $('form[destroy_form]', modal),  
214 - sch, stationRoutes, parks, information, esCode, timeLocStations;  
215 - var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '其他'];  
216 - $(modal).on('init', function (e, data) {  
217 - sch = data.sch;  
218 - //var formHtml = template('sub-task-inpark-form-temp', {sch:sch, adjustExps: adjustExps});  
219 - //$('form', modal).html(formHtml);  
220 - //字典转换  
221 - //dictionaryUtils.transformDom($('.nt-dictionary', modal));  
222 -  
223 - //站点路由  
224 - stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) {  
225 - return a.stationRouteCode - b.stationRouteCode;  
226 - }), 'directions')[sch.xlDir];  
227 - //空驶终点(停车场)  
228 - $.get('/basic/parks', function (rs) {  
229 - parks = rs;  
230 - var opts = '';  
231 - for (var code in parks) {  
232 - opts += '<option value="' + code + '">' + parks[code] + '</option>';  
233 - }  
234 - $('select[name=endStation]', emptyForm).html(opts).val(information.carPark);  
235 - });  
236 - //线路标准  
237 - information = gb_data_basic.getLineInformation(sch.xlBm);  
238 - //本地存储的站点耗时  
239 - try {  
240 - timeLocStations = window.localStorage.getItem('control_route_distance_' + sch.xlBm);  
241 - if (timeLocStations)  
242 - timeLocStations = JSON.parse(timeLocStations).stations[sch.xlDir == 0 ? 'up' : 'down'];  
243 - } catch (e) {  
244 - console.log(e);  
245 - }  
246 -  
247 - //设置默认值  
248 - setDefaultVal();  
249 -  
250 - //切换营运终点  
251 - $('select[name=endStation]', serviceForm).val(esCode).on('change', function () {  
252 - var val = $(this).val();  
253 - if (val == esCode) {  
254 - $('.uk-modal-dialog', modal).removeClass('three-children');  
255 - $('.sub-task-card.destroy-card').css("display", "none");  
256 - }  
257 - else {  
258 - $('.uk-modal-dialog', modal).addClass('three-children');  
259 - $('.sub-task-card.destroy-card').css("display", "inline-block");  
260 - }  
261 -  
262 - reClac();  
263 - }).trigger('change');  
264 -  
265 -  
266 - //submit  
267 - /*var f = $('form', modal).formValidation({  
268 - framework: 'uikit',  
269 - locale: 'zh_CN',  
270 - });  
271 - f.on('success.form.fv', function(e) {  
272 - disabled_submit_btn(this);  
273 - e.preventDefault();  
274 - var data = $(this).serializeJSON();  
275 -  
276 - });*/  
277 - });  
278 -  
279 - function setDefaultVal() {  
280 - var routeOpts = '';  
281 - $.each(stationRoutes, function () {  
282 - routeOpts += '<option value="' + this.stationCode + '">' + this.stationName + '</option>';  
283 - });  
284 - esCode = stationRoutes[stationRoutes.length - 1].stationCode;  
285 -  
286 - //营运起终点  
287 - $('select[name=startStation],select[name=endStation]', serviceForm).html(routeOpts);  
288 - //空驶起点  
289 - $('select[name=startStation]', emptyForm).html(routeOpts).val(esCode);  
290 - //烂班起终点  
291 - $('select[name=startStation],select[name=endStation]', destroyForm).html(routeOpts).val(esCode);  
292 -  
293 - //烂班原因  
294 - var adjustExpsOpts = '<option value="">请选择...</option>';  
295 - $.each(adjustExps, function (i, str) {  
296 - adjustExpsOpts += '<option value="' + str + '">' + str + '</option>';  
297 - });  
298 - $('select[name=destroyReason]', destroyForm).html(adjustExpsOpts);  
299 -  
300 - //营运开始时间  
301 - $('input[name=startDate]', serviceForm).val(sch.dfsj);  
302 - }  
303 -  
304 - function reClac() {  
305 - var serviceEnd = $('select[name=endStation]', serviceForm).val();  
306 - //空驶起点 == 营运终点  
307 - $('select[name=startStation]', emptyForm).val(serviceEnd);  
308 -  
309 - //计算营运里程  
310 - var s = $('select[name=startStation]', serviceForm).val(),  
311 - e = $('select[name=endStation]', serviceForm).val();  
312 - var sMileage = calcMileage(s, e);  
313 - if(sMileage >= 0)  
314 - $('input[name=mileageType]', serviceForm).val(sMileage);  
315 -  
316 - if (serviceEnd != esCode) {  
317 - //烂班起点 == 营运终点  
318 - $('select[name=startStation]', destroyForm).val(serviceEnd);  
319 - }  
320 - }  
321 -  
322 - function calcMileage(s, e) {  
323 - var mileage = 0, flag, code;  
324 - if (timeLocStations) {  
325 - $.each(timeLocStations, function () {  
326 - code = this.station.STATION_CODE;  
327 - if (code == s) {  
328 - flag = true;  
329 - }  
330 -  
331 - if (flag)  
332 - mileage += this.toDistance;  
333 -  
334 - if (code == e)  
335 - return false;  
336 - });  
337 - }  
338 - return mileage / 1000;  
339 - }  
340 -  
341 -  
342 - //------ 下抽屉 ------  
343 - $('#betweenStationRangeCalc', modal).on('click', function () {  
344 - var id = $(this).data('drawer-id');  
345 - switchBtmDrawer(id, '/real_control_v2/fragments/line_schedule/context_menu/sub_task/station_route_spacing_chart.html');  
346 - });  
347 -  
348 - var btmDrawer = $('.ct-bottom-drawer', modal);  
349 - //打开事件  
350 - btmDrawer.on('drawer_show', function () {  
351 - var url = $(this).data('url');  
352 - if (!url) {  
353 - alert('无效的地址');  
354 - }  
355 -  
356 - var drawerPanel = $(this).data('name');  
357 - $('.ct-bottom-drawer-body', btmDrawer).load(url, function () {  
358 - $('#' + drawerPanel).trigger('drawer-init', {sch: sch});  
359 - });  
360 - });  
361 -  
362 - function switchBtmDrawer(id, url) {  
363 - if (btmDrawer.hasClass('open') && btmDrawer.data('name') == id) {  
364 - btmDrawer.removeClass('open');  
365 - btmDrawer.removeData('name').removeData('url');  
366 - }  
367 - else {  
368 - btmDrawer.addClass('open');  
369 - btmDrawer.data('name', id).data('url', url).trigger('drawer_show');  
370 - }  
371 - }  
372 - })();  
373 - </script> 1 +<div class="uk-modal" id="add-sub-task-inpark-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 +
  7 + <div style="width: 100%;padding-left: 1%;">
  8 + <div class="sub-task-card">
  9 + <div class="uk-panel uk-panel-box uk-panel-box-primary">
  10 + <div class="uk-panel-badge uk-badge">营运</div>
  11 + <h3 class="uk-panel-title">线路上站点间</h3>
  12 + <form class="uk-form uk-form-horizontal" service_form>
  13 + <div class="uk-grid">
  14 + <div class="uk-width-3-10">
  15 + <div class="uk-form-row">
  16 + <label class="uk-form-label">起点 </label>
  17 + </div>
  18 + </div>
  19 + <div class="uk-width-7-10 pl5">
  20 + <select name="startStation" disabled></select>
  21 + </div>
  22 + </div>
  23 + <div class="uk-grid">
  24 + <div class="uk-width-3-10">
  25 + <div class="uk-form-row">
  26 + <label class="uk-form-label">终点 </label>
  27 + </div>
  28 + </div>
  29 + <div class="uk-width-7-10 pl5">
  30 + <select name="endStation" class="ct_focus"></select>
  31 + </div>
  32 + </div>
  33 + <div class="uk-grid">
  34 + <div class="uk-width-3-10">
  35 + <div class="uk-form-row">
  36 + <label class="uk-form-label">营运里程</label>
  37 + </div>
  38 + </div>
  39 + <div class="uk-width-7-10 pl5">
  40 + <input type="text" name="mileageType" required>
  41 + </div>
  42 + </div>
  43 + <div class="uk-grid">
  44 + <div class="uk-width-3-10">
  45 + <div class="uk-form-row">
  46 + <label class="uk-form-label">开始时间</label>
  47 + </div>
  48 + </div>
  49 + <div class="uk-width-7-10 pl5">
  50 + <input type="time" name="startDate" required>
  51 + </div>
  52 + </div>
  53 + <div class="uk-grid">
  54 + <div class="uk-width-3-10">
  55 + <div class="uk-form-row">
  56 + <label class="uk-form-label">结束时间</label>
  57 + </div>
  58 + </div>
  59 + <div class="uk-width-7-10 pl5">
  60 + <input type="time" name="endDate" required>
  61 + </div>
  62 + </div>
  63 + </form>
  64 + </div>
  65 + </div>
  66 + <div class="sub-task-card">
  67 + <div class="uk-panel uk-panel-box uk-panel-box-secondary">
  68 + <div class="uk-panel-badge uk-badge uk-badge-default">空驶</div>
  69 + <h3 class="uk-panel-title">进场</h3>
  70 + <form class="uk-form uk-form-horizontal" empty_form>
  71 + <div class="uk-grid">
  72 + <div class="uk-width-3-10">
  73 + <div class="uk-form-row">
  74 + <label class="uk-form-label">起点 </label>
  75 + </div>
  76 + </div>
  77 + <div class="uk-width-7-10 pl5">
  78 + <select name="startStation" disabled></select>
  79 + </div>
  80 + </div>
  81 + <div class="uk-grid">
  82 + <div class="uk-width-3-10">
  83 + <div class="uk-form-row">
  84 + <label class="uk-form-label">终点 </label>
  85 + </div>
  86 + </div>
  87 + <div class="uk-width-7-10 pl5">
  88 + <select name="endStation" class="ct_focus"></select>
  89 + </div>
  90 + </div>
  91 + <div class="uk-grid">
  92 + <div class="uk-width-3-10">
  93 + <div class="uk-form-row">
  94 + <label class="uk-form-label">空驶里程</label>
  95 + </div>
  96 + </div>
  97 + <div class="uk-width-7-10 pl5">
  98 + <input type="text" name="mileageType" required style="width: calc(100% - 62px);">
  99 + <a style="font-size: 12px;">路径(3)</a>
  100 + </div>
  101 + </div>
  102 + <div class="uk-grid">
  103 + <div class="uk-width-3-10">
  104 + <div class="uk-form-row">
  105 + <label class="uk-form-label">开始时间</label>
  106 + </div>
  107 + </div>
  108 + <div class="uk-width-7-10 pl5">
  109 + <input type="time" name="startDate" required>
  110 + </div>
  111 + </div>
  112 + <div class="uk-grid">
  113 + <div class="uk-width-3-10">
  114 + <div class="uk-form-row">
  115 + <label class="uk-form-label">结束时间</label>
  116 + </div>
  117 + </div>
  118 + <div class="uk-width-7-10 pl5">
  119 + <input type="time" name="endDate" required>
  120 + </div>
  121 + </div>
  122 + </form>
  123 + </div>
  124 + </div>
  125 + <div class="sub-task-card destroy-card uk-animation-scale">
  126 + <div class="uk-panel uk-panel-box uk-panel-box-danger">
  127 + <div class="uk-panel-badge uk-badge uk-badge-danger">烂班</div>
  128 + <h3 class="uk-panel-title">线路上站点间</h3>
  129 + <form class="uk-form uk-form-horizontal" destroy_form>
  130 + <div class="uk-grid">
  131 + <div class="uk-width-3-10">
  132 + <div class="uk-form-row">
  133 + <label class="uk-form-label">起点 </label>
  134 + </div>
  135 + </div>
  136 + <div class="uk-width-7-10 pl5">
  137 + <select name="startStation" disabled></select>
  138 + </div>
  139 + </div>
  140 + <div class="uk-grid">
  141 + <div class="uk-width-3-10">
  142 + <div class="uk-form-row">
  143 + <label class="uk-form-label">终点 </label>
  144 + </div>
  145 + </div>
  146 + <div class="uk-width-7-10 pl5">
  147 + <select name="endStation" class="ct_focus" disabled></select>
  148 + </div>
  149 + </div>
  150 + <div class="uk-grid">
  151 + <div class="uk-width-3-10">
  152 + <div class="uk-form-row">
  153 + <label class="uk-form-label">烂班里程</label>
  154 + </div>
  155 + </div>
  156 + <div class="uk-width-7-10 pl5">
  157 + <input type="text" name="mileageType" required>
  158 + </div>
  159 + </div>
  160 + <div class="uk-grid">
  161 + <div class="uk-width-3-10">
  162 + <div class="uk-form-row">
  163 + <label class="uk-form-label">开始时间</label>
  164 + </div>
  165 + </div>
  166 + <div class="uk-width-7-10 pl5">
  167 + <input type="time" name="startDate" required>
  168 + </div>
  169 + </div>
  170 + <div class="uk-grid">
  171 + <div class="uk-width-3-10">
  172 + <div class="uk-form-row">
  173 + <label class="uk-form-label">烂班原因</label>
  174 + </div>
  175 + </div>
  176 + <div class="uk-width-7-10 pl5">
  177 + <select name="destroyReason" required></select>
  178 + </div>
  179 + </div>
  180 + </form>
  181 + </div>
  182 + </div>
  183 +
  184 + <form class="uk-form" style="margin-top: 15px; padding: 0 10px 0 0;">
  185 + <textarea placeholder="备注" style="width: 100%;height: 70px;"></textarea>
  186 + </form>
  187 + </div>
  188 +
  189 + <div class="uk-modal-footer uk-text-right">
  190 + <button type="button" class="uk-button uk-modal-close">取消</button>
  191 + <button type="button" class="uk-button uk-button-primary">提交子任务</button>
  192 +
  193 + <div class="ct-footer-left">
  194 + <a id="betweenStationRangeCalc" data-drawer-id="station_route_spacing_chart_drawer">站点间公里不准?</a>
  195 + </div>
  196 + </div>
  197 + </div>
  198 +
  199 + <div class="ct-bottom-drawer">
  200 + <a class="ct-bottom-drawer-close"></a>
  201 +
  202 + <div class="ct-bottom-drawer-body"></div>
  203 + </div>
  204 +
  205 + <script id="sub-task-inpark-form-temp" type="text/html">
  206 + </script>
  207 +
  208 + <script>
  209 + (function () {
  210 + var modal = '#add-sub-task-inpark-modal',
  211 + serviceForm = $('form[service_form]', modal),
  212 + emptyForm = $('form[empty_form]', modal),
  213 + destroyForm = $('form[destroy_form]', modal),
  214 + sch, stationRoutes, parks, information, esCode, timeLocStations;
  215 + var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '其他'];
  216 + $(modal).on('init', function (e, data) {
  217 + sch = data.sch;
  218 + //var formHtml = template('sub-task-inpark-form-temp', {sch:sch, adjustExps: adjustExps});
  219 + //$('form', modal).html(formHtml);
  220 + //字典转换
  221 + //dictionaryUtils.transformDom($('.nt-dictionary', modal));
  222 +
  223 + //站点路由
  224 + stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) {
  225 + return a.stationRouteCode - b.stationRouteCode;
  226 + }), 'directions')[sch.xlDir];
  227 + //空驶终点(停车场)
  228 + $.get('/basic/parks', function (rs) {
  229 + parks = rs;
  230 + var opts = '';
  231 + for (var code in parks) {
  232 + opts += '<option value="' + code + '">' + parks[code] + '</option>';
  233 + }
  234 + $('select[name=endStation]', emptyForm).html(opts).val(information.carPark);
  235 + });
  236 + //线路标准
  237 + information = gb_data_basic.getLineInformation(sch.xlBm);
  238 + //本地存储的站点耗时
  239 + try {
  240 + timeLocStations = window.localStorage.getItem('control_route_distance_' + sch.xlBm);
  241 + if (timeLocStations)
  242 + timeLocStations = JSON.parse(timeLocStations).stations[sch.xlDir == 0 ? 'up' : 'down'];
  243 + } catch (e) {
  244 + console.log(e);
  245 + }
  246 +
  247 + //设置默认值
  248 + setDefaultVal();
  249 +
  250 + //切换营运终点
  251 + $('select[name=endStation]', serviceForm).val(esCode).on('change', function () {
  252 + var val = $(this).val();
  253 + if (val == esCode) {
  254 + $('.uk-modal-dialog', modal).removeClass('three-children');
  255 + $('.sub-task-card.destroy-card').css("display", "none");
  256 + }
  257 + else {
  258 + $('.uk-modal-dialog', modal).addClass('three-children');
  259 + $('.sub-task-card.destroy-card').css("display", "inline-block");
  260 + }
  261 +
  262 + reClac();
  263 + }).trigger('change');
  264 +
  265 +
  266 + //submit
  267 + /*var f = $('form', modal).formValidation({
  268 + framework: 'uikit',
  269 + locale: 'zh_CN',
  270 + });
  271 + f.on('success.form.fv', function(e) {
  272 + disabled_submit_btn(this);
  273 + e.preventDefault();
  274 + var data = $(this).serializeJSON();
  275 +
  276 + });*/
  277 + });
  278 +
  279 + function setDefaultVal() {
  280 + var routeOpts = '';
  281 + $.each(stationRoutes, function () {
  282 + routeOpts += '<option value="' + this.stationCode + '">' + this.stationName + '</option>';
  283 + });
  284 + esCode = stationRoutes[stationRoutes.length - 1].stationCode;
  285 +
  286 + //营运起终点
  287 + $('select[name=startStation],select[name=endStation]', serviceForm).html(routeOpts);
  288 + //空驶起点
  289 + $('select[name=startStation]', emptyForm).html(routeOpts).val(esCode);
  290 + //烂班起终点
  291 + $('select[name=startStation],select[name=endStation]', destroyForm).html(routeOpts).val(esCode);
  292 +
  293 + //烂班原因
  294 + var adjustExpsOpts = '<option value="">请选择...</option>';
  295 + $.each(adjustExps, function (i, str) {
  296 + adjustExpsOpts += '<option value="' + str + '">' + str + '</option>';
  297 + });
  298 + $('select[name=destroyReason]', destroyForm).html(adjustExpsOpts);
  299 +
  300 + //营运开始时间
  301 + $('input[name=startDate]', serviceForm).val(sch.dfsj);
  302 + }
  303 +
  304 + function reClac() {
  305 + var serviceEnd = $('select[name=endStation]', serviceForm).val();
  306 + //空驶起点 == 营运终点
  307 + $('select[name=startStation]', emptyForm).val(serviceEnd);
  308 +
  309 + //计算营运里程
  310 + var s = $('select[name=startStation]', serviceForm).val(),
  311 + e = $('select[name=endStation]', serviceForm).val();
  312 + var sMileage = calcMileage(s, e);
  313 + if(sMileage >= 0)
  314 + $('input[name=mileageType]', serviceForm).val(sMileage);
  315 +
  316 + if (serviceEnd != esCode) {
  317 + //烂班起点 == 营运终点
  318 + $('select[name=startStation]', destroyForm).val(serviceEnd);
  319 + }
  320 + }
  321 +
  322 + function calcMileage(s, e) {
  323 + var mileage = 0, flag, code;
  324 + if (timeLocStations) {
  325 + $.each(timeLocStations, function () {
  326 + code = this.station.STATION_CODE;
  327 + if (code == s) {
  328 + flag = true;
  329 + }
  330 +
  331 + if (flag)
  332 + mileage += this.toDistance;
  333 +
  334 + if (code == e)
  335 + return false;
  336 + });
  337 + }
  338 + return mileage / 1000;
  339 + }
  340 +
  341 +
  342 + //------ 下抽屉 ------
  343 + $('#betweenStationRangeCalc', modal).on('click', function () {
  344 + var id = $(this).data('drawer-id');
  345 + switchBtmDrawer(id, '/real_control_v2/fragments/line_schedule/context_menu/sub_task/station_route_spacing_chart.html');
  346 + });
  347 +
  348 + var btmDrawer = $('.ct-bottom-drawer', modal);
  349 + //打开事件
  350 + btmDrawer.on('drawer_show', function () {
  351 + var url = $(this).data('url');
  352 + if (!url) {
  353 + alert('无效的地址');
  354 + }
  355 +
  356 + var drawerPanel = $(this).data('name');
  357 + $('.ct-bottom-drawer-body', btmDrawer).load(url, function () {
  358 + $('#' + drawerPanel).trigger('drawer-init', {sch: sch});
  359 + });
  360 + });
  361 +
  362 + function switchBtmDrawer(id, url) {
  363 + if (btmDrawer.hasClass('open') && btmDrawer.data('name') == id) {
  364 + btmDrawer.removeClass('open');
  365 + btmDrawer.removeData('name').removeData('url');
  366 + }
  367 + else {
  368 + btmDrawer.addClass('open');
  369 + btmDrawer.data('name', id).data('url', url).trigger('drawer_show');
  370 + }
  371 + }
  372 + })();
  373 + </script>
374 </div> 374 </div>
375 \ No newline at end of file 375 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task/station_route_spacing_chart.html
1 <!-- 站点路由间距图 --> 1 <!-- 站点路由间距图 -->
2 <div id="station_route_spacing_chart_drawer" style="width: 100%;height: 100%;font-size: 0;"> 2 <div id="station_route_spacing_chart_drawer" style="width: 100%;height: 100%;font-size: 0;">
3 - <div style="width: 80%;height: 100%;display: inline-block;font-size: 14px;"> 3 + <div style="width: 80%;height: 100%;display: inline-block;font-size: 14px;" class="svg_wrap">
4 4
5 </div> 5 </div>
6 6
@@ -36,6 +36,7 @@ @@ -36,6 +36,7 @@
36 } 36 }
37 37
38 console.log('stations..', stations); 38 console.log('stations..', stations);
  39 + //$('.svg_wrap', drawer).
39 } 40 }
40 41
41 //页面切换 42 //页面切换
src/main/resources/static/real_control_v2/fragments/line_schedule/sch_table.html
@@ -8,6 +8,22 @@ @@ -8,6 +8,22 @@
8 下行/{{line.endStationName}} 8 下行/{{line.endStationName}}
9 {{/if}} 9 {{/if}}
10 <i class="uk-icon-question-circle" ></i> 10 <i class="uk-icon-question-circle" ></i>
  11 + <div class="fixed_legend">
  12 + <div>
  13 + <!--<i class="uk-icon-angle-right" ></i>-->
  14 + <span class="tl-xxfc">消息发出</span>
  15 + <span class="tl-xxsd">消息收到</span>
  16 + <span class="tl-xxrd">消息阅读</span>
  17 + &nbsp;
  18 + <span class="tl-wd">误点</span>
  19 + <span class="tl-zzzx">正在执行</span>
  20 + <span class="tl-qrlb"></span>
  21 + <span class="tl-yzx">已执行</span>
  22 + <a>
  23 + <i class="uk-icon-angle-double-up fixed_legend_close"></i>
  24 + </a>
  25 + </div>
  26 + </div>
11 <div class="search_sch_panel"> 27 <div class="search_sch_panel">
12 <form class="uk-form" onsubmit="javascript:return false;"> 28 <form class="uk-form" onsubmit="javascript:return false;">
13 <div class="uk-autocomplete sch-search-autocom"> 29 <div class="uk-autocomplete sch-search-autocom">
src/main/resources/static/real_control_v2/js/line_schedule/layout.js
@@ -15,14 +15,13 @@ var gb_line_layout = (function() { @@ -15,14 +15,13 @@ var gb_line_layout = (function() {
15 var lineCode=$(this).data('id') 15 var lineCode=$(this).data('id')
16 ,svgWrap=$('.footer-chart .svg-wrap', this); 16 ,svgWrap=$('.footer-chart .svg-wrap', this);
17 gb_svg_chart.draw_line(lineCode, svgWrap); 17 gb_svg_chart.draw_line(lineCode, svgWrap);
18 - //console.log('gb_line_layout...', this);  
19 - //$('.footer-chart .svg-wrap', this)  
20 }); 18 });
21 19
22 cb && cb(); 20 cb && cb();
23 }); 21 });
24 }; 22 };
25 23
  24 + //图例icon tootip
26 $(document).on('mouseenter', '.schedule-wrap i.uk-icon-question-circle', function() { 25 $(document).on('mouseenter', '.schedule-wrap i.uk-icon-question-circle', function() {
27 $(this).qtip({ 26 $(this).qtip({
28 show: { 27 show: {
@@ -49,7 +48,7 @@ var gb_line_layout = (function() { @@ -49,7 +48,7 @@ var gb_line_layout = (function() {
49 //destroy dom 48 //destroy dom
50 $(this).qtip('destroy', true); 49 $(this).qtip('destroy', true);
51 } 50 }
52 - }// max-width: 335px; 51 + }
53 }); 52 });
54 }); 53 });
55 54
src/main/resources/static/real_control_v2/js/line_schedule/legend.js 0 → 100644
  1 +/* 图例相关 */
  2 +
  3 +var gb_sch_legend = (function () {
  4 +
  5 +
  6 + var animationend = 'webkitAnimationEnd animationend';
  7 + var initLegend = function () {
  8 + //双击展开
  9 + $('.schedule-wrap i.uk-icon-question-circle').dblclick(openLegend);
  10 +
  11 + //关闭事件
  12 + $('.schedule-wrap .fixed_legend_close').on('click', function () {
  13 + //隐藏 fixed_legend
  14 + $('.schedule-wrap .fixed_legend').each(function () {
  15 + var anim = 'uk-animation-slide-top uk-animation-reverse';
  16 + if (!$(this).parents('.header-title').is(':hidden')) {
  17 + $(this).addClass(anim).one(animationend, function () {
  18 + var icon=$(this).removeClass(anim).hide().parents('.header-title').find('.uk-icon-question-circle');
  19 +
  20 + icon.addClass('uk-animation-slide-top').show().one(animationend, function () {
  21 + $(this).removeClass('uk-animation-slide-top');
  22 + });
  23 + });
  24 + }
  25 + else {
  26 + $(this).hide().parents('.header-title').find('.uk-icon-question-circle').show();
  27 + }
  28 + });
  29 + });
  30 + };
  31 +
  32 +
  33 + //展开图例
  34 + var openLegend = function () {
  35 + $('.qtip.sch-tl-tip').qtip('destroy', true);
  36 +
  37 + //隐藏ICON
  38 + $('.schedule-wrap i.uk-icon-question-circle').hide();
  39 +
  40 + var anim = 'uk-animation-slide-top';
  41 + //显示 fixed_legend
  42 + $('.schedule-wrap .fixed_legend').each(function () {
  43 + if (!$(this).parents('.header-title').is(':hidden')) {
  44 + $(this).addClass(anim).one('webkitAnimationEnd animationend', function () {
  45 + $(this).removeClass(anim);
  46 + });
  47 + }
  48 + });
  49 + $('.schedule-wrap .fixed_legend').css('display', 'inline-block');
  50 + };
  51 +
  52 + return {
  53 + init: initLegend
  54 + };
  55 +})();
0 \ No newline at end of file 56 \ No newline at end of file
src/main/resources/static/real_control_v2/js/line_schedule/sch_table.js
1 /** schedule table */ 1 /** schedule table */
2 2
3 -var gb_schedule_table = (function() { 3 +var gb_schedule_table = (function () {
4 4
5 var temps; 5 var temps;
6 //线路分组的班次数据 6 //线路分组的班次数据
7 var line2Schedule = {}; 7 var line2Schedule = {};
8 //车辆应发未发车辆数 8 //车辆应发未发车辆数
9 var car_yfwf_map = {}; 9 var car_yfwf_map = {};
10 - var schedule_sort = function(s1, s2) { 10 + var schedule_sort = function (s1, s2) {
11 return s1.dfsjT - s2.dfsjT; 11 return s1.dfsjT - s2.dfsjT;
12 } 12 }
13 13
14 - var show = function(cb) { 14 + var show = function (cb) {
15 //从服务器获取班次数据 15 //从服务器获取班次数据
16 $.get('/realSchedule/lines', { 16 $.get('/realSchedule/lines', {
17 lines: gb_data_basic.line_idx 17 lines: gb_data_basic.line_idx
18 - }, function(rs) { 18 + }, function (rs) {
19 for (var lineCode in rs) { 19 for (var lineCode in rs) {
20 //排序 20 //排序
21 rs[lineCode].sort(schedule_sort); 21 rs[lineCode].sort(schedule_sort);
22 line2Schedule[lineCode] = {}; 22 line2Schedule[lineCode] = {};
23 //calc shift 23 //calc shift
24 - $.each(rs[lineCode], function() { 24 + $.each(rs[lineCode], function () {
25 calc_sch_real_shift(this); 25 calc_sch_real_shift(this);
26 line2Schedule[lineCode][this.id] = this; 26 line2Schedule[lineCode][this.id] = this;
27 }); 27 });
@@ -32,17 +32,17 @@ var gb_schedule_table = (function() { @@ -32,17 +32,17 @@ var gb_schedule_table = (function() {
32 }); 32 });
33 33
34 //加载班次表格渲染模板 34 //加载班次表格渲染模板
35 - $.get('/real_control_v2/fragments/line_schedule/sch_table.html', function(dom) { 35 + $.get('/real_control_v2/fragments/line_schedule/sch_table.html', function (dom) {
36 ep.emit('temp', gb_common.compileTempByDom(dom, { 36 ep.emit('temp', gb_common.compileTempByDom(dom, {
37 compress: true 37 compress: true
38 })); 38 }));
39 }); 39 });
40 40
41 41
42 - var ep = EventProxy.create("data", "temp", function(data, temp) { 42 + var ep = EventProxy.create("data", "temp", function (data, temp) {
43 temps = temp; 43 temps = temp;
44 var lineCode, dirData, htmlStr; 44 var lineCode, dirData, htmlStr;
45 - $('#main-tab-content .line_schedule').each(function() { 45 + $('#main-tab-content .line_schedule').each(function () {
46 lineCode = $(this).data('id'); 46 lineCode = $(this).data('id');
47 if (arrayIsNull(data[lineCode])) 47 if (arrayIsNull(data[lineCode]))
48 return true; 48 return true;
@@ -64,27 +64,30 @@ var gb_schedule_table = (function() { @@ -64,27 +64,30 @@ var gb_schedule_table = (function() {
64 gb_ct_table.enableSort($('.ct_table', content), reset_seq_no, gb_schedule_table_dbclick.init); 64 gb_ct_table.enableSort($('.ct_table', content), reset_seq_no, gb_schedule_table_dbclick.init);
65 //dbclick event 65 //dbclick event
66 gb_schedule_table_dbclick.init(); 66 gb_schedule_table_dbclick.init();
67 - 67 + //点击实发,show detail
68 fcsjActualCellQtip(); 68 fcsjActualCellQtip();
69 cb && cb(); 69 cb && cb();
  70 +
  71 + //图例相关
  72 + gb_sch_legend.init();
70 }); 73 });
71 }; 74 };
72 75
73 - function fcsjActualCellQtip(){ 76 + function fcsjActualCellQtip() {
74 //单击实发单元格显示详细信息 77 //单击实发单元格显示详细信息
75 $(document).on('click', 'dd.fcsjActualCell', function () { 78 $(document).on('click', 'dd.fcsjActualCell', function () {
76 - var that=this; 79 + var that = this;
77 $(that).qtip({ 80 $(that).qtip({
78 show: true, 81 show: true,
79 content: { 82 content: {
80 - text: function(e) {  
81 - var lineCode=$(that).parents('li.line_schedule').data('id')  
82 - ,id=$(that).parents('dl').data('id')  
83 - ,sch=line2Schedule[lineCode][id]; 83 + text: function (e) {
  84 + var lineCode = $(that).parents('li.line_schedule').data('id')
  85 + , id = $(that).parents('dl').data('id')
  86 + , sch = line2Schedule[lineCode][id];
84 return temps['sfsj_sch-detail-temp'](sch); 87 return temps['sfsj_sch-detail-temp'](sch);
85 } 88 }
86 } 89 }
87 - ,style: { 90 + , style: {
88 classes: 'qtip-dark qtip-rounded qtip-shadow' 91 classes: 'qtip-dark qtip-rounded qtip-shadow'
89 }, 92 },
90 hide: { 93 hide: {
@@ -103,44 +106,17 @@ var gb_schedule_table = (function() { @@ -103,44 +106,17 @@ var gb_schedule_table = (function() {
103 } 106 }
104 }); 107 });
105 }); 108 });
106 -/* $('dd.fcsjActualCell').qtip({  
107 - show: 'click',  
108 - content: {  
109 - text: function(e) {  
110 - var lineCode=$(e.target).parents('li.line_schedule').data('id')  
111 - ,id=$(e.target).parents('dl').data('id')  
112 - ,sch=line2Schedule[lineCode][id];  
113 - return temps['sfsj_sch-detail-temp'](sch);  
114 - }  
115 - }  
116 - ,style: {  
117 - classes: 'qtip-dark qtip-rounded qtip-shadow'  
118 - },  
119 - hide: {  
120 - fixed: true,  
121 - delay: 300  
122 - },  
123 - position: {  
124 - my: 'center left',  
125 - at: 'center right'  
126 - },  
127 - events: {  
128 - hidden: function (event, api) {  
129 - $(this).qtip('destroy', true);  
130 - }  
131 - }  
132 - });*/  
133 } 109 }
134 110
135 //重置序号 111 //重置序号
136 - var reset_seq_no = function(dls) {  
137 - dls.each(function(i, dl) { 112 + var reset_seq_no = function (dls) {
  113 + dls.each(function (i, dl) {
138 $('dd:eq(0)', dl).text(i + 1); 114 $('dd:eq(0)', dl).text(i + 1);
139 }); 115 });
140 - } 116 + };
141 117
142 //计算实发时间差值 118 //计算实发时间差值
143 - var calc_sch_real_shift = function(sch) { 119 + var calc_sch_real_shift = function (sch) {
144 if (sch.fcsjActualTime) { 120 if (sch.fcsjActualTime) {
145 var diff = parseInt((sch.fcsjActualTime - sch.dfsjT) / 1000 / 60); 121 var diff = parseInt((sch.fcsjActualTime - sch.dfsjT) / 1000 / 60);
146 if (diff > 0) 122 if (diff > 0)
@@ -150,22 +126,22 @@ var gb_schedule_table = (function() { @@ -150,22 +126,22 @@ var gb_schedule_table = (function() {
150 else 126 else
151 sch.fcsj_diff = ''; 127 sch.fcsj_diff = '';
152 } 128 }
153 - } 129 + };
154 130
155 function arrayIsNull(array) { 131 function arrayIsNull(array) {
156 return !array || array.length == 0; 132 return !array || array.length == 0;
157 } 133 }
158 134
159 - var findScheduleByLine = function(lineCode) { 135 + var findScheduleByLine = function (lineCode) {
160 return line2Schedule[lineCode]; 136 return line2Schedule[lineCode];
161 - } 137 + };
162 138
163 //新增一个班次,附带更新的班次 139 //新增一个班次,附带更新的班次
164 - var insertSchedule = function(sch, upArr) { 140 + var insertSchedule = function (sch, upArr) {
165 line2Schedule[sch.xlBm][sch.id] = sch; 141 line2Schedule[sch.xlBm][sch.id] = sch;
166 //update 142 //update
167 if (isArray(upArr)) { 143 if (isArray(upArr)) {
168 - $.each(upArr, function() { 144 + $.each(upArr, function () {
169 line2Schedule[this.xlBm][this.id] = this; 145 line2Schedule[this.xlBm][this.id] = this;
170 }); 146 });
171 } 147 }
@@ -188,10 +164,10 @@ var gb_schedule_table = (function() { @@ -188,10 +164,10 @@ var gb_schedule_table = (function() {
188 gb_ct_table.fixedHead($('.line_schedule .ct_table_wrap')); 164 gb_ct_table.fixedHead($('.line_schedule .ct_table_wrap'));
189 //定位到新添加的班次 165 //定位到新添加的班次
190 scroToDl(sch); 166 scroToDl(sch);
191 - } 167 + };
192 168
193 //删除一个班次 169 //删除一个班次
194 - var deheteSchedule = function(sch) { 170 + var deheteSchedule = function (sch) {
195 sch = line2Schedule[sch.xlBm][sch.id]; 171 sch = line2Schedule[sch.xlBm][sch.id];
196 if (sch) { 172 if (sch) {
197 var dl = $('li.line_schedule[data-id=' + sch.xlBm + '] .ct_table_body dl[data-id=' + sch.id + ']'), 173 var dl = $('li.line_schedule[data-id=' + sch.xlBm + '] .ct_table_body dl[data-id=' + sch.id + ']'),
@@ -201,21 +177,21 @@ var gb_schedule_table = (function() { @@ -201,21 +177,21 @@ var gb_schedule_table = (function() {
201 reset_seq_no(dls); 177 reset_seq_no(dls);
202 calc_yfwf_num(sch.xlBm); 178 calc_yfwf_num(sch.xlBm);
203 } 179 }
204 - } 180 + };
205 181
206 //更新班次 182 //更新班次
207 - var updateSchedule = function(schArr) { 183 + var updateSchedule = function (schArr) {
208 if (!isArray(schArr)) 184 if (!isArray(schArr))
209 schArr = [schArr]; 185 schArr = [schArr];
210 186
211 - $.each(schArr, function() { 187 + $.each(schArr, function () {
212 line2Schedule[this.xlBm][this.id] = this; 188 line2Schedule[this.xlBm][this.id] = this;
213 updateDom(this); 189 updateDom(this);
214 }); 190 });
215 - } 191 + };
216 192
217 //update dom 193 //update dom
218 - var updateDom = function(sch) { 194 + var updateDom = function (sch) {
219 if (!sch) return; 195 if (!sch) return;
220 var dl = $('li.line_schedule[data-id=' + sch.xlBm + '] .ct_table_body dl[data-id=' + sch.id + ']'); 196 var dl = $('li.line_schedule[data-id=' + sch.xlBm + '] .ct_table_body dl[data-id=' + sch.id + ']');
221 var dds = $('dd', dl); 197 var dds = $('dd', dl);
@@ -241,12 +217,12 @@ var gb_schedule_table = (function() { @@ -241,12 +217,12 @@ var gb_schedule_table = (function() {
241 $(dds[8]).html('<span title="' + sch.remarks + '" data-uk-tooltip="{pos:\'top-left\'}">' + sch.remarks + '</span>'); 217 $(dds[8]).html('<span title="' + sch.remarks + '" data-uk-tooltip="{pos:\'top-left\'}">' + sch.remarks + '</span>');
242 else 218 else
243 $(dds[8]).html(''); 219 $(dds[8]).html('');
244 - } 220 + };
245 221
246 //拖拽选中... 222 //拖拽选中...
247 var seq_nos = '.line-schedule-table .ct_table_body>dl>dd.seq_no'; 223 var seq_nos = '.line-schedule-table .ct_table_body>dl>dd.seq_no';
248 var drag_strat; 224 var drag_strat;
249 - $(document).on('mousedown', seq_nos, function(e) { 225 + $(document).on('mousedown', seq_nos, function (e) {
250 if (e.button != 0) return; 226 if (e.button != 0) return;
251 var dl = $(this).parent(); 227 var dl = $(this).parent();
252 if (dl.hasClass('drag-active')) 228 if (dl.hasClass('drag-active'))
@@ -255,9 +231,9 @@ var gb_schedule_table = (function() { @@ -255,9 +231,9 @@ var gb_schedule_table = (function() {
255 dl.addClass('drag-active'); 231 dl.addClass('drag-active');
256 232
257 drag_strat = parseInt($(this).text()) - 1; 233 drag_strat = parseInt($(this).text()) - 1;
258 - }).on('mouseup', function() { 234 + }).on('mouseup', function () {
259 drag_strat = null; 235 drag_strat = null;
260 - }).on('mouseover', seq_nos, function() { 236 + }).on('mouseover', seq_nos, function () {
261 if (drag_strat != null) { 237 if (drag_strat != null) {
262 var e = parseInt($(this).text()), 238 var e = parseInt($(this).text()),
263 dls = $(this).parents('.ct_table_body').find('dl'); 239 dls = $(this).parents('.ct_table_body').find('dl');
@@ -274,22 +250,22 @@ var gb_schedule_table = (function() { @@ -274,22 +250,22 @@ var gb_schedule_table = (function() {
274 $(dls[j]).addClass('drag-active'); 250 $(dls[j]).addClass('drag-active');
275 } 251 }
276 } 252 }
277 - }).on('click', seq_nos, function() { 253 + }).on('click', seq_nos, function () {
278 reset_relevance_active(this); 254 reset_relevance_active(this);
279 }); 255 });
280 //非seq_no 单元格点击 256 //非seq_no 单元格点击
281 - $(document).on('click', '.line-schedule-table .ct_table_body dl dd[class!=seq_no][class!=lpName]', function() { 257 + $(document).on('click', '.line-schedule-table .ct_table_body dl dd[class!=seq_no][class!=lpName]', function () {
282 reset_drag_active_all(this); 258 reset_drag_active_all(this);
283 //选中相关班次 259 //选中相关班次
284 var id = $(this).parent().data('id'), 260 var id = $(this).parent().data('id'),
285 contWrap = $(this).parents('li.line_schedule'), 261 contWrap = $(this).parents('li.line_schedule'),
286 lineCode = contWrap.data('id'), 262 lineCode = contWrap.data('id'),
287 sch = line2Schedule[lineCode][id], 263 sch = line2Schedule[lineCode][id],
288 - schArr = gb_common.get_vals(line2Schedule[lineCode]).filter(function(item) { 264 + schArr = gb_common.get_vals(line2Schedule[lineCode]).filter(function (item) {
289 return item.clZbh == sch.clZbh; 265 return item.clZbh == sch.clZbh;
290 }).sort(schedule_sort), 266 }).sort(schedule_sort),
291 nextSch, tempDL; 267 nextSch, tempDL;
292 - $.each(schArr, function(i) { 268 + $.each(schArr, function (i) {
293 tempDL = $('dl[data-id=' + this.id + ']', contWrap); 269 tempDL = $('dl[data-id=' + this.id + ']', contWrap);
294 tempDL.addClass('relevance-active'); 270 tempDL.addClass('relevance-active');
295 if (i < schArr.length - 1 && this.id == id) { 271 if (i < schArr.length - 1 && this.id == id) {
@@ -308,17 +284,17 @@ var gb_schedule_table = (function() { @@ -308,17 +284,17 @@ var gb_schedule_table = (function() {
308 }); 284 });
309 285
310 //路牌点击 286 //路牌点击
311 - $(document).on('click', '.line-schedule-table .ct_table_body dl dd[class=lpName]', function() { 287 + $(document).on('click', '.line-schedule-table .ct_table_body dl dd[class=lpName]', function () {
312 reset_drag_active_all(this); 288 reset_drag_active_all(this);
313 //选中路牌下相关班次 289 //选中路牌下相关班次
314 var id = $(this).parent().data('id'), 290 var id = $(this).parent().data('id'),
315 contWrap = $(this).parents('li.line_schedule'), 291 contWrap = $(this).parents('li.line_schedule'),
316 lineCode = contWrap.data('id'), 292 lineCode = contWrap.data('id'),
317 sch = line2Schedule[lineCode][id], 293 sch = line2Schedule[lineCode][id],
318 - schArr = gb_common.get_vals(line2Schedule[lineCode]).filter(function(item) { 294 + schArr = gb_common.get_vals(line2Schedule[lineCode]).filter(function (item) {
319 return item.lpName == sch.lpName; 295 return item.lpName == sch.lpName;
320 }).sort(schedule_sort); 296 }).sort(schedule_sort);
321 - $.each(schArr, function(i) { 297 + $.each(schArr, function (i) {
322 $('dl[data-id=' + this.id + ']', contWrap).addClass('relevance-active intimity'); 298 $('dl[data-id=' + this.id + ']', contWrap).addClass('relevance-active intimity');
323 }); 299 });
324 300
@@ -326,13 +302,13 @@ var gb_schedule_table = (function() { @@ -326,13 +302,13 @@ var gb_schedule_table = (function() {
326 }); 302 });
327 303
328 //头部点击去掉选中光标 304 //头部点击去掉选中光标
329 - $(document).on('click', '.header-title', function() { 305 + $(document).on('click', '.header-title', function () {
330 // $(this).parents('.schedule-wrap').find('.relevance-active') 306 // $(this).parents('.schedule-wrap').find('.relevance-active')
331 // .removeClass('relevance-active'); 307 // .removeClass('relevance-active');
332 reset_drag_active_all(this); 308 reset_drag_active_all(this);
333 }); 309 });
334 310
335 - var scroToDl = function(sch) { 311 + var scroToDl = function (sch) {
336 var dl = $('dl[data-id=' + sch.id + ']', $('.line_schedule[data-id=' + sch.xlBm + ']')), 312 var dl = $('dl[data-id=' + sch.id + ']', $('.line_schedule[data-id=' + sch.xlBm + ']')),
337 cont = dl.parents('.ct_table_wrap'), 313 cont = dl.parents('.ct_table_wrap'),
338 diff = cont.height() / 2; 314 diff = cont.height() / 2;
@@ -341,43 +317,43 @@ var gb_schedule_table = (function() { @@ -341,43 +317,43 @@ var gb_schedule_table = (function() {
341 }, 500); 317 }, 500);
342 318
343 return dl; 319 return dl;
344 - } 320 + };
345 321
346 - var reset_drag_active_all = function(dd) { 322 + var reset_drag_active_all = function (dd) {
347 $(dd).parents('.schedule-wrap').find('dl.drag-active').removeClass('drag-active'); 323 $(dd).parents('.schedule-wrap').find('dl.drag-active').removeClass('drag-active');
348 reset_relevance_active(dd); 324 reset_relevance_active(dd);
349 - } 325 + };
350 326
351 - var reset_relevance_active = function(dd) { 327 + var reset_relevance_active = function (dd) {
352 $(dd).parents('.uk-grid.schedule-wrap').find('.relevance-active').removeClass('relevance-active intimity'); 328 $(dd).parents('.uk-grid.schedule-wrap').find('.relevance-active').removeClass('relevance-active intimity');
353 - } 329 + };
354 330
355 331
356 //计算应发未发数量 car_yfwf_map 332 //计算应发未发数量 car_yfwf_map
357 - var calc_yfwf_num = function(lineCode) { 333 + var calc_yfwf_num = function (lineCode) {
358 334
359 var schArr = gb_common.get_vals(line2Schedule[lineCode]).sort(schedule_sort), 335 var schArr = gb_common.get_vals(line2Schedule[lineCode]).sort(schedule_sort),
360 yfwf_num = 0, 336 yfwf_num = 0,
361 t = new Date().valueOf(); 337 t = new Date().valueOf();
362 338
363 - var carYfwfMap={}, nbbm;  
364 - $.each(schArr, function() { 339 + var carYfwfMap = {}, nbbm;
  340 + $.each(schArr, function () {
365 if (this.fcsjT > t) 341 if (this.fcsjT > t)
366 return false; 342 return false;
367 343
368 - if (this.fcsjActual == null && this.fcsjActualTime == null && this.status != -1){  
369 - yfwf_num++;  
370 - nbbm=this.clZbh;  
371 - if(carYfwfMap[nbbm])  
372 - carYfwfMap[nbbm]++;  
373 - else  
374 - carYfwfMap[nbbm]=1; 344 + if (this.fcsjActual == null && this.fcsjActualTime == null && this.status != -1) {
  345 + yfwf_num++;
  346 + nbbm = this.clZbh;
  347 + if (carYfwfMap[nbbm])
  348 + carYfwfMap[nbbm]++;
  349 + else
  350 + carYfwfMap[nbbm] = 1;
375 } 351 }
376 }); 352 });
377 - car_yfwf_map[lineCode]=carYfwfMap; 353 + car_yfwf_map[lineCode] = carYfwfMap;
378 354
379 $('#badge_yfwf_num_' + lineCode).text(yfwf_num); 355 $('#badge_yfwf_num_' + lineCode).text(yfwf_num);
380 - } 356 + };
381 357
382 return { 358 return {
383 show: show, 359 show: show,
@@ -387,7 +363,9 @@ var gb_schedule_table = (function() { @@ -387,7 +363,9 @@ var gb_schedule_table = (function() {
387 insertSchedule: insertSchedule, 363 insertSchedule: insertSchedule,
388 schedule_sort: schedule_sort, 364 schedule_sort: schedule_sort,
389 calc_yfwf_num: calc_yfwf_num, 365 calc_yfwf_num: calc_yfwf_num,
390 - car_yfwf_map: function(lineCode){return car_yfwf_map[lineCode];}, 366 + car_yfwf_map: function (lineCode) {
  367 + return car_yfwf_map[lineCode];
  368 + },
391 scroToDl: scroToDl, 369 scroToDl: scroToDl,
392 reset_drag_active_all: reset_drag_active_all 370 reset_drag_active_all: reset_drag_active_all
393 }; 371 };
src/main/resources/static/real_control_v2/main.html
@@ -123,6 +123,7 @@ @@ -123,6 +123,7 @@
123 <script src="/real_control_v2/js/home/line_panel.js"></script> 123 <script src="/real_control_v2/js/home/line_panel.js"></script>
124 <script src="/real_control_v2/js/home/context_menu.js"></script> 124 <script src="/real_control_v2/js/home/context_menu.js"></script>
125 <!-- line schedule js --> 125 <!-- line schedule js -->
  126 + <script src="/real_control_v2/js/line_schedule/legend.js"></script>
126 <script src="/real_control_v2/js/line_schedule/layout.js"></script> 127 <script src="/real_control_v2/js/line_schedule/layout.js"></script>
127 <script src="/real_control_v2/js/line_schedule/sch_table.js"></script> 128 <script src="/real_control_v2/js/line_schedule/sch_table.js"></script>
128 <script src="/real_control_v2/js/line_schedule/context_menu.js"></script> 129 <script src="/real_control_v2/js/line_schedule/context_menu.js"></script>