Commit 78a2f1cee535a06ad580904db807945e86b4cbd0

Authored by 潘钊
1 parent 3385ffa4

update...

src/main/java/com/bsth/controller/gps/GpsController.java
@@ -212,5 +212,15 @@ public class GpsController { @@ -212,5 +212,15 @@ public class GpsController {
212 map.put("pageData","10"); 212 map.put("pageData","10");
213 return gpsService.Pagequery(map); 213 return gpsService.Pagequery(map);
214 } 214 }
  215 +
  216 + /**
  217 + * 获取线路下所有车辆,包括实时设备 和 计划排班
  218 + * @param lineCode
  219 + * @return
  220 + */
  221 + @RequestMapping(value = "/allCarsByLine",method = RequestMethod.GET)
  222 + public Map<String, Object> allCarsByLine(String lineCode){
  223 + return gpsService.allCarsByLine(lineCode);
  224 + }
215 225
216 } 226 }
src/main/java/com/bsth/data/gpsdata_v2/GpsRealData.java
@@ -135,14 +135,28 @@ public class GpsRealData { @@ -135,14 +135,28 @@ public class GpsRealData {
135 continue; 135 continue;
136 136
137 sch = dayOfSchedule.execPlanMap().get(gps.getNbbm()); 137 sch = dayOfSchedule.execPlanMap().get(gps.getNbbm());
138 - if (null != sch) 138 + if (null != sch){
139 gps.setSchId(sch.getId()); 139 gps.setSchId(sch.getId());
  140 + if(!sch.getXlBm().equals(lineCode)){
  141 + //车辆在其他线路营运
  142 + gps.setRemark("执行 " + sch.getXlName() + " " + sch.getDfsj() + " 班次");
  143 + gps.setPlanCode(sch.getXlBm());
  144 + }
  145 + else
  146 + gps.setRemark(null);
  147 + }else
  148 + gps.setRemark(null);
  149 +
140 rs.add(gps); 150 rs.add(gps);
141 } 151 }
142 152
143 return rs; 153 return rs;
144 } 154 }
145 155
  156 + public static Set<String> findDevices(String lineCode){
  157 + return lineCode2Devices.get(lineCode);
  158 + }
  159 +
146 public List<GpsEntity> get(List<String> pArray) { 160 public List<GpsEntity> get(List<String> pArray) {
147 List<GpsEntity> list = new ArrayList<>(); 161 List<GpsEntity> list = new ArrayList<>();
148 162
src/main/java/com/bsth/data/gpsdata_v2/entity/GpsEntity.java
@@ -100,6 +100,9 @@ public class GpsEntity implements Cloneable{ @@ -100,6 +100,9 @@ public class GpsEntity implements Cloneable{
100 */ 100 */
101 private int source = -1; 101 private int source = -1;
102 102
  103 + private String remark;
  104 + private String planCode;
  105 +
103 public Object clone() { 106 public Object clone() {
104 try { 107 try {
105 return super.clone(); 108 return super.clone();
@@ -360,4 +363,20 @@ public class GpsEntity implements Cloneable{ @@ -360,4 +363,20 @@ public class GpsEntity implements Cloneable{
360 public void setPremiseCode(String premiseCode) { 363 public void setPremiseCode(String premiseCode) {
361 this.premiseCode = premiseCode; 364 this.premiseCode = premiseCode;
362 } 365 }
  366 +
  367 + public String getRemark() {
  368 + return remark;
  369 + }
  370 +
  371 + public void setRemark(String remark) {
  372 + this.remark = remark;
  373 + }
  374 +
  375 + public String getPlanCode() {
  376 + return planCode;
  377 + }
  378 +
  379 + public void setPlanCode(String planCode) {
  380 + this.planCode = planCode;
  381 + }
363 } 382 }
src/main/java/com/bsth/data/pilot80/PilotReport.java
@@ -20,9 +20,7 @@ import org.slf4j.LoggerFactory; @@ -20,9 +20,7 @@ import org.slf4j.LoggerFactory;
20 import org.springframework.beans.factory.annotation.Autowired; 20 import org.springframework.beans.factory.annotation.Autowired;
21 import org.springframework.stereotype.Component; 21 import org.springframework.stereotype.Component;
22 22
23 -import java.util.ArrayList;  
24 -import java.util.Collection;  
25 -import java.util.List; 23 +import java.util.*;
26 import java.util.concurrent.ConcurrentHashMap; 24 import java.util.concurrent.ConcurrentHashMap;
27 25
28 /** 26 /**
@@ -55,10 +53,16 @@ public class PilotReport { @@ -55,10 +53,16 @@ public class PilotReport {
55 53
56 private static ConcurrentHashMap<Integer, D80> d80Maps; 54 private static ConcurrentHashMap<Integer, D80> d80Maps;
57 55
  56 + /**
  57 + * 设备 ——> 最后一条请求出场记录
  58 + */
  59 + public static ConcurrentHashMap<String, D80> qqccMap;
  60 +
58 Logger logger = LoggerFactory.getLogger(PilotReport.class); 61 Logger logger = LoggerFactory.getLogger(PilotReport.class);
59 62
60 static { 63 static {
61 d80Maps = new ConcurrentHashMap<>(); 64 d80Maps = new ConcurrentHashMap<>();
  65 + qqccMap = new ConcurrentHashMap<>();
62 } 66 }
63 67
64 public void report(D80 d80) { 68 public void report(D80 d80) {
@@ -81,6 +85,7 @@ public class PilotReport { @@ -81,6 +85,7 @@ public class PilotReport {
81 switch (d80.getData().getRequestCode()) { 85 switch (d80.getData().getRequestCode()) {
82 //出场请求 86 //出场请求
83 case 0xA3: 87 case 0xA3:
  88 + qqccMap.put(d80.getDeviceId(), d80);
84 ScheduleRealInfo outSch = dayOfSchedule.searchNearByBcType(nbbm, "out"); 89 ScheduleRealInfo outSch = dayOfSchedule.searchNearByBcType(nbbm, "out");
85 //如果有对应出场班次 90 //如果有对应出场班次
86 if (outSch != null && StringUtils.isEmpty(outSch.getFcsjActual())) { 91 if (outSch != null && StringUtils.isEmpty(outSch.getFcsjActual())) {
@@ -241,6 +246,7 @@ public class PilotReport { @@ -241,6 +246,7 @@ public class PilotReport {
241 List<D80> rems = findByLine(lineCode); 246 List<D80> rems = findByLine(lineCode);
242 for (D80 d80 : rems) { 247 for (D80 d80 : rems) {
243 d80Maps.remove(d80.getId()); 248 d80Maps.remove(d80.getId());
  249 + qqccMap.remove(d80.getDeviceId());
244 } 250 }
245 251
246 rems.clear(); 252 rems.clear();
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
@@ -970,7 +970,6 @@ public class DayOfSchedule { @@ -970,7 +970,6 @@ public class DayOfSchedule {
970 970
971 //删除班次数据 971 //删除班次数据
972 removeRealSch(lineCode, rq); 972 removeRealSch(lineCode, rq);
973 - //删除相关班次修正记录  
974 973
975 } 974 }
976 rs.put("status", ResponseCode.SUCCESS); 975 rs.put("status", ResponseCode.SUCCESS);
src/main/java/com/bsth/service/gps/GpsService.java
@@ -45,4 +45,6 @@ public interface GpsService { @@ -45,4 +45,6 @@ public interface GpsService {
45 String enddate) throws ParseException; 45 String enddate) throws ParseException;
46 46
47 Map<String, Object> Pagequery(Map<String, Object> map); 47 Map<String, Object> Pagequery(Map<String, Object> map);
  48 +
  49 + Map<String,Object> allCarsByLine(String lineCode);
48 } 50 }
src/main/java/com/bsth/service/gps/GpsServiceImpl.java
@@ -7,9 +7,11 @@ import com.bsth.data.gpsdata_v2.GpsRealData; @@ -7,9 +7,11 @@ import com.bsth.data.gpsdata_v2.GpsRealData;
7 import com.bsth.data.gpsdata_v2.cache.GeoCacheData; 7 import com.bsth.data.gpsdata_v2.cache.GeoCacheData;
8 import com.bsth.data.gpsdata_v2.entity.GpsEntity; 8 import com.bsth.data.gpsdata_v2.entity.GpsEntity;
9 import com.bsth.data.gpsdata_v2.utils.GeoUtils; 9 import com.bsth.data.gpsdata_v2.utils.GeoUtils;
  10 +import com.bsth.data.pilot80.PilotReport;
10 import com.bsth.data.safe_driv.SafeDriv; 11 import com.bsth.data.safe_driv.SafeDriv;
11 import com.bsth.data.safe_driv.SafeDrivCenter; 12 import com.bsth.data.safe_driv.SafeDrivCenter;
12 import com.bsth.data.schedule.DayOfSchedule; 13 import com.bsth.data.schedule.DayOfSchedule;
  14 +import com.bsth.entity.directive.D80;
13 import com.bsth.entity.realcontrol.ScheduleRealInfo; 15 import com.bsth.entity.realcontrol.ScheduleRealInfo;
14 import com.bsth.repository.CarParkRepository; 16 import com.bsth.repository.CarParkRepository;
15 import com.bsth.repository.StationRepository; 17 import com.bsth.repository.StationRepository;
@@ -1174,6 +1176,89 @@ public class GpsServiceImpl implements GpsService { @@ -1174,6 +1176,89 @@ public class GpsServiceImpl implements GpsService {
1174 return paramMap; 1176 return paramMap;
1175 } 1177 }
1176 1178
  1179 + @Override
  1180 + public Map<String, Object> allCarsByLine(String lineCode) {
  1181 + Map<String, Object> map = new HashMap();
  1182 + try{
  1183 + List<Map<String, Object>> list = new ArrayList<>();
  1184 + Map<String, Object> item;
  1185 + GpsEntity gps;
  1186 + //当天线路下营运的车辆
  1187 + Set<String> cars = dayOfSchedule.findCarByLineCode(lineCode);
  1188 + ScheduleRealInfo sch;
  1189 + String device;
  1190 +
  1191 + Map<String, Integer> allDevices = new HashMap<>();
  1192 + String execStr = "";
  1193 + D80 d80;
  1194 + for(String nbbm : cars){
  1195 + item = new HashMap<>();
  1196 + device = BasicData.deviceId2NbbmMap.inverse().get(nbbm);
  1197 + allDevices.put(device, 1);
  1198 + item.put("nbbm", nbbm);
  1199 + item.put("device", device);
  1200 +
  1201 + sch = dayOfSchedule.executeCurr(nbbm);
  1202 + if(null != sch){
  1203 + execStr = (sch.getXlDir().equals("0")?"上行":"下行") + "("+sch.getDfsj()+")";
  1204 + if(!sch.getXlBm().equals(lineCode))
  1205 + execStr = sch.getXlName()+execStr;
  1206 + else
  1207 + item.put("schId", sch.getId());
  1208 + item.put("exec", execStr);
  1209 + }
  1210 +
  1211 + gps = gpsRealData.get(device);
  1212 + if(null != gps){
  1213 + item.put("loc", gps.getStationName());
  1214 + item.put("lineCodeReal", gps.getLineId());
  1215 + item.put("status", gps.isOffline()?"离线":"在线");
  1216 + item.put("gpsTs", gps.getTimestamp());
  1217 + }
  1218 + //请求出场时间
  1219 + d80 = PilotReport.qqccMap.get(device);
  1220 + if(null != d80)
  1221 + item.put("qqcc", d80.getTimestamp());
  1222 +
  1223 + list.add(item);
  1224 + }
  1225 +
  1226 + //车载编码落在该线路的设备
  1227 + Set<String> devices = gpsRealData.findDevices(lineCode);
  1228 + for(String d : devices){
  1229 + if(allDevices.containsKey(d))
  1230 + continue;
  1231 +
  1232 + gps = gpsRealData.get(d);
  1233 + if(null == gps)
  1234 + continue;
  1235 +
  1236 + item = new HashMap<>();
  1237 + item.put("nbbm", gps.getNbbm());
  1238 + item.put("device", d);
  1239 + item.put("loc", gps.getStationName());
  1240 + item.put("lineCodeReal", gps.getLineId());
  1241 + item.put("status", gps.isOffline()?"离线":"在线");
  1242 + item.put("gpsTs", gps.getTimestamp());
  1243 +
  1244 + //请求出场时间
  1245 + d80 = PilotReport.qqccMap.get(d);
  1246 + if(null != d80)
  1247 + item.put("qqcc", d80.getTimestamp());
  1248 +
  1249 + list.add(item);
  1250 + }
  1251 +
  1252 + map.put("list", list);
  1253 + map.put("status", ResponseCode.SUCCESS);
  1254 + }catch (Exception e){
  1255 + logger.error("", e);
  1256 + map.put("status", ResponseCode.ERROR);
  1257 + map.put("msg", e.getMessage());
  1258 + }
  1259 + return map;
  1260 + }
  1261 +
1177 static List<GpsSpeed> findAll(Map<String, Object> map) { 1262 static List<GpsSpeed> findAll(Map<String, Object> map) {
1178 Connection conn = null; 1263 Connection conn = null;
1179 PreparedStatement ps = null; 1264 PreparedStatement ps = null;
src/main/resources/static/real_control_v2/css/handicapped_style.css
@@ -22,6 +22,6 @@ @@ -22,6 +22,6 @@
22 background: rgb(15, 220, 220) !important; 22 background: rgb(15, 220, 220) !important;
23 } 23 }
24 24
25 -.ct_table>.ct_table_body{ 25 +.schedule-body .ct_table>.ct_table_body{
26 border-bottom: 1px solid #000000 !important; 26 border-bottom: 1px solid #000000 !important;
27 } 27 }
src/main/resources/static/real_control_v2/css/line_schedule.css
@@ -98,6 +98,14 @@ @@ -98,6 +98,14 @@
98 98
99 .line-schedule-table dl dt:nth-of-type(3), .line-schedule-table dl dd:nth-of-type(3) { 99 .line-schedule-table dl dt:nth-of-type(3), .line-schedule-table dl dd:nth-of-type(3) {
100 width: calc(2% + 66px); 100 width: calc(2% + 66px);
  101 + position: relative;
  102 +}
  103 +.line-schedule-table dl dd:nth-of-type(3)>i{
  104 + position: absolute;
  105 + color: #313030;
  106 + top: 1px;
  107 + right: 3px;
  108 + text-shadow: 0 -1px 0 rgba(0,0,0,.2);
101 } 109 }
102 110
103 .line-schedule-table dl dt:nth-of-type(4), .line-schedule-table dl dd:nth-of-type(4) { 111 .line-schedule-table dl dt:nth-of-type(4), .line-schedule-table dl dd:nth-of-type(4) {
src/main/resources/static/real_control_v2/css/main.css
1 input::-webkit-outer-spin-button, 1 input::-webkit-outer-spin-button,
2 -input::-webkit-inner-spin-button{ 2 +input::-webkit-inner-spin-button {
3 display: none; 3 display: none;
4 } 4 }
5 5
@@ -7,9 +7,11 @@ input::-webkit-calendar-picker-indicator { @@ -7,9 +7,11 @@ input::-webkit-calendar-picker-indicator {
7 display: none; 7 display: none;
8 } 8 }
9 9
10 -input::-webkit-datetime-edit { padding: 1px; } 10 +input::-webkit-datetime-edit {
  11 + padding: 1px;
  12 +}
11 13
12 -.ps-container > .ps-scrollbar-y-rail{ 14 +.ps-container > .ps-scrollbar-y-rail {
13 z-index: 1 !important; 15 z-index: 1 !important;
14 } 16 }
15 17
@@ -18,6 +20,7 @@ input::-webkit-datetime-edit { padding: 1px; } @@ -18,6 +20,7 @@ input::-webkit-datetime-edit { padding: 1px; }
18 opacity: 0.6 !important; 20 opacity: 0.6 !important;
19 padding: 0 !important; 21 padding: 0 !important;
20 } 22 }
  23 +
21 /* ^_^ baidu map hide logo */ 24 /* ^_^ baidu map hide logo */
22 .anchorBL, .anchorBL, .amap-logo, .amap-copyright { 25 .anchorBL, .anchorBL, .amap-logo, .amap-copyright {
23 display: none; 26 display: none;
@@ -298,7 +301,7 @@ svg.line-chart g.merge-item text { @@ -298,7 +301,7 @@ svg.line-chart g.merge-item text {
298 .tooltip.multi-tooltip { 301 .tooltip.multi-tooltip {
299 width: 160px; 302 width: 160px;
300 display: inline-block; 303 display: inline-block;
301 - padding: 10px 0 10px 15px; 304 + padding: 10px 0 10px 12px;
302 border-right: 1px solid #eeeeee; 305 border-right: 1px solid #eeeeee;
303 border-bottom: 1px solid #eeeeee; 306 border-bottom: 1px solid #eeeeee;
304 } 307 }
@@ -749,8 +752,8 @@ li.map-panel { @@ -749,8 +752,8 @@ li.map-panel {
749 } 752 }
750 753
751 #schedule-lp_change-modal .sch-list dl dt:nth-of-type(4), #schedule-lp_change-modal .sch-list dl dd:nth-of-type(4) { 754 #schedule-lp_change-modal .sch-list dl dt:nth-of-type(4), #schedule-lp_change-modal .sch-list dl dd:nth-of-type(4) {
752 - width: 10%;  
753 - } 755 + width: 10%;
  756 +}
754 757
755 #schedule-lp_change-modal .sch-list dl dt:nth-of-type(5), #schedule-lp_change-modal .sch-list dl dd:nth-of-type(5) { 758 #schedule-lp_change-modal .sch-list dl dt:nth-of-type(5), #schedule-lp_change-modal .sch-list dl dd:nth-of-type(5) {
756 width: 21%; 759 width: 21%;
@@ -764,9 +767,6 @@ li.map-panel { @@ -764,9 +767,6 @@ li.map-panel {
764 width: 14%; 767 width: 14%;
765 } 768 }
766 769
767 -  
768 -  
769 -  
770 #schedule-lp_change-modal .sch-list.reverse dl dt:nth-of-type(1), #schedule-lp_change-modal .sch-list.reverse dl dd:nth-of-type(1) { 770 #schedule-lp_change-modal .sch-list.reverse dl dt:nth-of-type(1), #schedule-lp_change-modal .sch-list.reverse dl dd:nth-of-type(1) {
771 width: 5%; 771 width: 5%;
772 border-left: 1px solid #dedede; 772 border-left: 1px solid #dedede;
@@ -816,59 +816,57 @@ li.map-panel { @@ -816,59 +816,57 @@ li.map-panel {
816 border-top: 1px solid #ffe2b9; 816 border-top: 1px solid #ffe2b9;
817 } 817 }
818 818
819 -#cache_data_manage-modal .uk-table td{ 819 +#cache_data_manage-modal .uk-table td {
820 vertical-align: bottom; 820 vertical-align: bottom;
821 } 821 }
822 822
823 #cache_data_manage-modal .uk-table td, 823 #cache_data_manage-modal .uk-table td,
824 -#cache_data_manage-modal .uk-table th{ 824 +#cache_data_manage-modal .uk-table th {
825 padding: 8px 8px 6px; 825 padding: 8px 8px 6px;
826 } 826 }
827 827
828 -  
829 -.ps-help-panel{ 828 +.ps-help-panel {
830 color: grey; 829 color: grey;
831 padding: 5px 2px; 830 padding: 5px 2px;
832 } 831 }
833 832
834 -.ps-help-panel small{ 833 +.ps-help-panel small {
835 display: block; 834 display: block;
836 } 835 }
837 836
838 -  
839 -svg text.offline{ 837 +svg text.offline {
840 fill: #6f6a6a !important; 838 fill: #6f6a6a !important;
841 } 839 }
842 840
843 -svg rect.offline{ 841 +svg rect.offline {
844 stroke: #dbdada !important; 842 stroke: #dbdada !important;
845 fill: #dbdada !important; 843 fill: #dbdada !important;
846 } 844 }
847 845
848 -.tooltip .tooltip-container .title a>.abnormal-text{ 846 +.tooltip .tooltip-container .title a > .abnormal-text {
849 font-size: 14px; 847 font-size: 14px;
850 color: #ff5e5e; 848 color: #ff5e5e;
851 font-weight: 600; 849 font-weight: 600;
852 } 850 }
853 851
854 -#addChildTaskBtn{ 852 +#addChildTaskBtn {
855 margin-left: 5px; 853 margin-left: 5px;
856 color: #36729b; 854 color: #36729b;
857 padding: 1px 5px 1px 6px; 855 padding: 1px 5px 1px 6px;
858 } 856 }
859 857
860 -#addChildTaskBtn:hover{ 858 +#addChildTaskBtn:hover {
861 box-shadow: 2px 1px 3px 0 rgba(0, 0, 0, 0.2), 0px 3px 8px 0 rgba(0, 0, 0, 0.19); 859 box-shadow: 2px 1px 3px 0 rgba(0, 0, 0, 0.2), 0px 3px 8px 0 rgba(0, 0, 0, 0.19);
862 } 860 }
863 861
864 -.edit-icon{ 862 +.edit-icon {
865 color: #aba9a9; 863 color: #aba9a9;
866 font-size: 12px; 864 font-size: 12px;
867 margin-left: 5px; 865 margin-left: 5px;
868 display: none; 866 display: none;
869 } 867 }
870 868
871 -.operation-real-text{ 869 +.operation-real-text {
872 position: absolute; 870 position: absolute;
873 top: 9px; 871 top: 9px;
874 width: 100%; 872 width: 100%;
@@ -877,7 +875,7 @@ svg rect.offline{ @@ -877,7 +875,7 @@ svg rect.offline{
877 pointer-events: none; 875 pointer-events: none;
878 } 876 }
879 877
880 -.operation-real-text span{ 878 +.operation-real-text span {
881 padding: 15px; 879 padding: 15px;
882 background: #ff4f4f; 880 background: #ff4f4f;
883 color: white; 881 color: white;
@@ -885,75 +883,76 @@ svg rect.offline{ @@ -885,75 +883,76 @@ svg rect.offline{
885 border-radius: 1px 1px 4px 4px; 883 border-radius: 1px 1px 4px 4px;
886 } 884 }
887 885
888 -#oil_station-modal.ct-form-modal form.uk-form-horizontal .uk-form-label{ 886 +#oil_station-modal.ct-form-modal form.uk-form-horizontal .uk-form-label {
889 width: 120px; 887 width: 120px;
890 } 888 }
891 889
892 -#oil_station-modal.ct-form-modal form.uk-form-horizontal .uk-form-controls{ 890 +#oil_station-modal.ct-form-modal form.uk-form-horizontal .uk-form-controls {
893 margin-left: 125px; 891 margin-left: 125px;
894 } 892 }
895 893
896 -#oil_station-modal .uk-form-icon>[class*=uk-icon-]{ 894 +#oil_station-modal .uk-form-icon > [class*=uk-icon-] {
897 right: 23px; 895 right: 23px;
898 } 896 }
899 897
900 -#oil_station-modal .uk-form-icon:not(.uk-form-icon-flip)>input{ 898 +#oil_station-modal .uk-form-icon:not(.uk-form-icon-flip) > input {
901 padding-left: 10px !important; 899 padding-left: 10px !important;
902 } 900 }
903 901
904 -#oil_station-modal .uk-form-icon{ 902 +#oil_station-modal .uk-form-icon {
905 width: calc(100% - 145px); 903 width: calc(100% - 145px);
906 } 904 }
907 905
908 -#oil_station-modal .uk-icon-mile:before{ 906 +#oil_station-modal .uk-icon-mile:before {
909 content: '公里'; 907 content: '公里';
910 } 908 }
911 909
912 -#oil_station-modal .uk-icon-minute:before{ 910 +#oil_station-modal .uk-icon-minute:before {
913 content: '分钟'; 911 content: '分钟';
914 } 912 }
915 913
916 -option.oil_station_opt{ 914 +option.oil_station_opt {
917 color: red; 915 color: red;
918 } 916 }
919 917
920 -#oil_station-modal .uk-modal .uk-form.fv-form{ 918 +#oil_station-modal .uk-modal .uk-form.fv-form {
921 margin-bottom: 0 !important; 919 margin-bottom: 0 !important;
922 } 920 }
923 921
924 -#gb_wait_modal .uk-modal-spinner{ 922 +#gb_wait_modal .uk-modal-spinner {
925 top: 25px; 923 top: 25px;
926 - -webkit-transform: translate(-50%,0);  
927 - transform: translate(-50%,0); 924 + -webkit-transform: translate(-50%, 0);
  925 + transform: translate(-50%, 0);
928 } 926 }
929 927
930 -#gb_wait_modal .wait-modal-text{ 928 +#gb_wait_modal .wait-modal-text {
931 text-align: center; 929 text-align: center;
932 margin-top: 35px; 930 margin-top: 35px;
933 font-size: 15px; 931 font-size: 15px;
934 color: #635e5e; 932 color: #635e5e;
935 } 933 }
936 934
937 -.park-and-station-wrap{ 935 +.park-and-station-wrap {
938 margin-top: 9px; 936 margin-top: 9px;
939 border: 1px solid #3dce69; 937 border: 1px solid #3dce69;
940 width: 580px; 938 width: 580px;
941 padding: 12px; 939 padding: 12px;
942 border-radius: 5px; 940 border-radius: 5px;
943 } 941 }
944 -.park-and-station-wrap select{ 942 +
  943 +.park-and-station-wrap select {
945 width: auto !important; 944 width: auto !important;
946 } 945 }
947 946
948 /** 安全驾驶相关css */ 947 /** 安全驾驶相关css */
949 -.safe_driv_pop_wrap{ 948 +.safe_driv_pop_wrap {
950 position: absolute; 949 position: absolute;
951 right: 12px; 950 right: 12px;
952 bottom: 12px; 951 bottom: 12px;
953 z-index: 99; 952 z-index: 99;
954 } 953 }
955 954
956 -.safe_driv_pop{ 955 +.safe_driv_pop {
957 background: #d44b4b; 956 background: #d44b4b;
958 font-size: 15px; 957 font-size: 15px;
959 padding: 9px 10px 0; 958 padding: 9px 10px 0;
@@ -965,14 +964,14 @@ option.oil_station_opt{ @@ -965,14 +964,14 @@ option.oil_station_opt{
965 color: #f2f2f2; 964 color: #f2f2f2;
966 } 965 }
967 966
968 -.safe_driv_pop:hover{ 967 +.safe_driv_pop:hover {
969 background: #bc2a2a; 968 background: #bc2a2a;
970 } 969 }
971 970
972 -.safe_driv_pop .title{ 971 +.safe_driv_pop .title {
973 } 972 }
974 973
975 -.safe_driv_pop .desc{ 974 +.safe_driv_pop .desc {
976 display: block; 975 display: block;
977 font-size: 12px; 976 font-size: 12px;
978 color: #ff9d9d; 977 color: #ff9d9d;
@@ -985,24 +984,26 @@ option.oil_station_opt{ @@ -985,24 +984,26 @@ option.oil_station_opt{
985 width: 10px; 984 width: 10px;
986 background-color: #F5F5F5; 985 background-color: #F5F5F5;
987 } 986 }
  987 +
988 #formFragmentModal::-webkit-scrollbar-thumb { 988 #formFragmentModal::-webkit-scrollbar-thumb {
989 background-color: #000000; 989 background-color: #000000;
990 } 990 }
  991 +
991 #formFragmentModal::-webkit-scrollbar-track { 992 #formFragmentModal::-webkit-scrollbar-track {
992 border: 0; 993 border: 0;
993 background-color: #F5F5F5; 994 background-color: #F5F5F5;
994 border-radius: 0; 995 border-radius: 0;
995 } 996 }
996 997
997 -#formFragmentModal::-webkit-scrollbar-thumb{ 998 +#formFragmentModal::-webkit-scrollbar-thumb {
998 border: 5px solid rgb(226, 122, 122); 999 border: 5px solid rgb(226, 122, 122);
999 } 1000 }
1000 1001
1001 -#schedule-addsch_oil-modal select{ 1002 +#schedule-addsch_oil-modal select {
1002 height: 30px !important; 1003 height: 30px !important;
1003 } 1004 }
1004 1005
1005 -#oil_station-modal .input_clear_icon{ 1006 +#oil_station-modal .input_clear_icon {
1006 position: absolute; 1007 position: absolute;
1007 top: 6px; 1008 top: 6px;
1008 right: 108px; 1009 right: 108px;
@@ -1015,26 +1016,25 @@ option.oil_station_opt{ @@ -1015,26 +1016,25 @@ option.oil_station_opt{
1015 cursor: pointer; 1016 cursor: pointer;
1016 } 1017 }
1017 1018
1018 -#oil_station-modal .input_clear_icon:hover{ 1019 +#oil_station-modal .input_clear_icon:hover {
1019 color: #de2020; 1020 color: #de2020;
1020 } 1021 }
1021 1022
1022 -#oil_station-modal .input_clear_icon:before{ 1023 +#oil_station-modal .input_clear_icon:before {
1023 display: block; 1024 display: block;
1024 font-family: FontAwesome; 1025 font-family: FontAwesome;
1025 content: "\f057"; 1026 content: "\f057";
1026 } 1027 }
1027 1028
1028 -#oil_station-modal input.readonly{ 1029 +#oil_station-modal input.readonly {
1029 background: #dddddd; 1030 background: #dddddd;
1030 } 1031 }
1031 1032
1032 -  
1033 -.ct_tags{ 1033 +.ct_tags {
1034 margin-bottom: 12px; 1034 margin-bottom: 12px;
1035 } 1035 }
1036 1036
1037 -.ct_tags>span{ 1037 +.ct_tags > span {
1038 padding: 3px 7px; 1038 padding: 3px 7px;
1039 background: #e8e8e8; 1039 background: #e8e8e8;
1040 color: #3a3939; 1040 color: #3a3939;
@@ -1042,21 +1042,21 @@ option.oil_station_opt{ @@ -1042,21 +1042,21 @@ option.oil_station_opt{
1042 margin-right: 5px; 1042 margin-right: 5px;
1043 } 1043 }
1044 1044
1045 -.ct_tags>span.active{ 1045 +.ct_tags > span.active {
1046 background: #62a9e1; 1046 background: #62a9e1;
1047 color: white; 1047 color: white;
1048 box-shadow: 0 0 4px rgba(0, 0, 0, 0.35); 1048 box-shadow: 0 0 4px rgba(0, 0, 0, 0.35);
1049 } 1049 }
1050 1050
1051 -.ct_tags>span.active:before{ 1051 +.ct_tags > span.active:before {
1052 content: "\f00c"; 1052 content: "\f00c";
1053 font-family: FontAwesome; 1053 font-family: FontAwesome;
1054 margin-right: 2px; 1054 margin-right: 2px;
1055 font-size: 13px; 1055 font-size: 13px;
1056 } 1056 }
1057 1057
1058 -.ct_tags>span:hover{  
1059 - box-shadow: 0 0 4px rgba(0,0,0,.3); 1058 +.ct_tags > span:hover {
  1059 + box-shadow: 0 0 4px rgba(0, 0, 0, .3);
1060 } 1060 }
1061 1061
1062 span.late-badge { 1062 span.late-badge {
@@ -1067,31 +1067,31 @@ span.late-badge { @@ -1067,31 +1067,31 @@ span.late-badge {
1067 margin-left: 2px; 1067 margin-left: 2px;
1068 } 1068 }
1069 1069
1070 -dl.intimity span.late-badge{ 1070 +dl.intimity span.late-badge {
1071 color: #fbfbfb; 1071 color: #fbfbfb;
1072 } 1072 }
1073 1073
1074 /** badge tooltip */ 1074 /** badge tooltip */
1075 .uk-badge.c_task:hover, 1075 .uk-badge.c_task:hover,
1076 -.uk-badge.sch_region:hover{ 1076 +.uk-badge.sch_region:hover {
1077 background-image: none; 1077 background-image: none;
1078 background: #38b3e1; 1078 background: #38b3e1;
1079 border: 1px solid #7ebad1; 1079 border: 1px solid #7ebad1;
1080 } 1080 }
1081 1081
1082 -.uk-badge.out:hover{ 1082 +.uk-badge.out:hover {
1083 background-image: none; 1083 background-image: none;
1084 background: #8fc650; 1084 background: #8fc650;
1085 border: 1px solid #949f86; 1085 border: 1px solid #949f86;
1086 } 1086 }
1087 1087
1088 -.uk-badge.in:hover{ 1088 +.uk-badge.in:hover {
1089 background-image: none; 1089 background-image: none;
1090 background: #fabc64; 1090 background: #fabc64;
1091 border: 1px solid #a68c67; 1091 border: 1px solid #a68c67;
1092 } 1092 }
1093 1093
1094 -.qtip.sch-badge-tip{ 1094 +.qtip.sch-badge-tip {
1095 max-width: 700px; 1095 max-width: 700px;
1096 } 1096 }
1097 1097
@@ -1099,16 +1099,19 @@ dl.intimity span.late-badge{ @@ -1099,16 +1099,19 @@ dl.intimity span.late-badge{
1099 width: 530px; 1099 width: 530px;
1100 margin-bottom: -10px; 1100 margin-bottom: -10px;
1101 } 1101 }
1102 -.tip_task_list dl{ 1102 +
  1103 +.tip_task_list dl {
1103 font-size: 0; 1104 font-size: 0;
1104 border-bottom: 1px solid #e6e6e6; 1105 border-bottom: 1px solid #e6e6e6;
1105 margin: 0; 1106 margin: 0;
1106 } 1107 }
1107 -.tip_task_list dl:last-child{ 1108 +
  1109 +.tip_task_list dl:last-child {
1108 border-bottom: none; 1110 border-bottom: none;
1109 } 1111 }
  1112 +
1110 .tip_task_list dl dt, 1113 .tip_task_list dl dt,
1111 -.tip_task_list dl dd{ 1114 +.tip_task_list dl dd {
1112 display: inline-block; 1115 display: inline-block;
1113 font-size: 13px; 1116 font-size: 13px;
1114 white-space: nowrap; 1117 white-space: nowrap;
@@ -1118,66 +1121,72 @@ dl.intimity span.late-badge{ @@ -1118,66 +1121,72 @@ dl.intimity span.late-badge{
1118 line-height: 24px; 1121 line-height: 24px;
1119 } 1122 }
1120 1123
1121 -.tip_task_list dl dt:nth-of-type(1), .tip_task_list dl dd:nth-of-type(1){ 1124 +.tip_task_list dl dt:nth-of-type(1), .tip_task_list dl dd:nth-of-type(1) {
1122 width: 38px; 1125 width: 38px;
1123 border-right: 1px solid #c8c8c8; 1126 border-right: 1px solid #c8c8c8;
1124 } 1127 }
1125 -.tip_task_list dl dt:nth-of-type(2), .tip_task_list dl dd:nth-of-type(2){ 1128 +
  1129 +.tip_task_list dl dt:nth-of-type(2), .tip_task_list dl dd:nth-of-type(2) {
1126 width: 18%; 1130 width: 18%;
1127 text-indent: 5px; 1131 text-indent: 5px;
1128 } 1132 }
1129 -.tip_task_list dl dt:nth-of-type(3), .tip_task_list dl dd:nth-of-type(3){ 1133 +
  1134 +.tip_task_list dl dt:nth-of-type(3), .tip_task_list dl dd:nth-of-type(3) {
1130 width: 11%; 1135 width: 11%;
1131 } 1136 }
1132 -.tip_task_list dl dt:nth-of-type(4), .tip_task_list dl dd:nth-of-type(4){ 1137 +
  1138 +.tip_task_list dl dt:nth-of-type(4), .tip_task_list dl dd:nth-of-type(4) {
1133 width: 25%; 1139 width: 25%;
1134 } 1140 }
1135 -.tip_task_list dl dt:nth-of-type(5), .tip_task_list dl dd:nth-of-type(5){ 1141 +
  1142 +.tip_task_list dl dt:nth-of-type(5), .tip_task_list dl dd:nth-of-type(5) {
1136 width: 25%; 1143 width: 25%;
1137 } 1144 }
1138 -.tip_task_list dl dt:nth-of-type(6), .tip_task_list dl dd:nth-of-type(6){ 1145 +
  1146 +.tip_task_list dl dt:nth-of-type(6), .tip_task_list dl dd:nth-of-type(6) {
1139 1147
1140 } 1148 }
1141 1149
1142 -.tip_task_list dl dd:nth-of-type(1) a{ 1150 +.tip_task_list dl dd:nth-of-type(1) a {
1143 color: #3c3c3c; 1151 color: #3c3c3c;
1144 text-decoration: underline; 1152 text-decoration: underline;
1145 font-size: 12px; 1153 font-size: 12px;
1146 } 1154 }
1147 1155
1148 -.tip_task_list dl.service{ 1156 +.tip_task_list dl.service {
1149 color: blue; 1157 color: blue;
1150 } 1158 }
1151 -.tip_task_list dl.service.destroy{ 1159 +
  1160 +.tip_task_list dl.service.destroy {
1152 color: red; 1161 color: red;
1153 } 1162 }
1154 1163
1155 -.tip_task_list dl.service.temp_add{ 1164 +.tip_task_list dl.service.temp_add {
1156 color: #9C27B0; 1165 color: #9C27B0;
1157 } 1166 }
1158 1167
1159 -.tip_task_list dl span{ 1168 +.tip_task_list dl span {
1160 margin: 0; 1169 margin: 0;
1161 width: auto; 1170 width: auto;
1162 } 1171 }
1163 1172
1164 -ul.left_tabs_lg{ 1173 +ul.left_tabs_lg {
1165 border: 1px solid #efeded; 1174 border: 1px solid #efeded;
1166 height: 100%; 1175 height: 100%;
1167 background: #fafafa; 1176 background: #fafafa;
1168 } 1177 }
1169 1178
1170 -ul.left_tabs_lg li{ 1179 +ul.left_tabs_lg li {
1171 line-height: 40px; 1180 line-height: 40px;
1172 font-size: 15px; 1181 font-size: 15px;
1173 } 1182 }
1174 1183
1175 -#schedule-addsch-modal .uk-modal-footer{ 1184 +#schedule-addsch-modal .uk-modal-footer {
1176 border-top: none; 1185 border-top: none;
1177 background: none; 1186 background: none;
1178 } 1187 }
1179 1188
1180 -.ct_line_lp_badge{ 1189 +.ct_line_lp_badge {
1181 float: left; 1190 float: left;
1182 margin-top: 6px; 1191 margin-top: 6px;
1183 background: #e0e0e0; 1192 background: #e0e0e0;
@@ -1185,94 +1194,111 @@ ul.left_tabs_lg li{ @@ -1185,94 +1194,111 @@ ul.left_tabs_lg li{
1185 border-radius: 3px; 1194 border-radius: 3px;
1186 } 1195 }
1187 1196
1188 -.uk-badge.sch_ldks{ 1197 +.uk-badge.sch_ldks {
1189 background: #8c8c8c; 1198 background: #8c8c8c;
1190 - background-image: linear-gradient(to bottom,#a7a7a7,#8c8c8c); 1199 + background-image: linear-gradient(to bottom, #a7a7a7, #8c8c8c);
1191 } 1200 }
1192 1201
1193 -.ct_layer_modal{ 1202 +.ct_layer_modal {
1194 background: #e5e5e5; 1203 background: #e5e5e5;
1195 height: 100%; 1204 height: 100%;
1196 width: 100%; 1205 width: 100%;
1197 overflow: auto; 1206 overflow: auto;
1198 } 1207 }
1199 1208
1200 -.layui-layer-setwin{ 1209 +.layui-layer-setwin {
1201 1210
1202 } 1211 }
1203 1212
1204 -.device_config_table dl dt:nth-of-type(1), .device_config_table dl dd:nth-of-type(1){ 1213 +.device_config_table dl dt:nth-of-type(1), .device_config_table dl dd:nth-of-type(1) {
1205 width: 7%; 1214 width: 7%;
1206 text-indent: 10px; 1215 text-indent: 10px;
1207 } 1216 }
1208 -.device_config_table dl dt:nth-of-type(2), .device_config_table dl dd:nth-of-type(2){ 1217 +
  1218 +.device_config_table dl dt:nth-of-type(2), .device_config_table dl dd:nth-of-type(2) {
1209 width: 7%; 1219 width: 7%;
1210 } 1220 }
1211 -.device_config_table dl dt:nth-of-type(3), .device_config_table dl dd:nth-of-type(3){ 1221 +
  1222 +.device_config_table dl dt:nth-of-type(3), .device_config_table dl dd:nth-of-type(3) {
1212 width: 8%; 1223 width: 8%;
1213 } 1224 }
1214 -.device_config_table dl dt:nth-of-type(4), .device_config_table dl dd:nth-of-type(4){ 1225 +
  1226 +.device_config_table dl dt:nth-of-type(4), .device_config_table dl dd:nth-of-type(4) {
1215 width: 5%; 1227 width: 5%;
1216 } 1228 }
1217 -.device_config_table dl dt:nth-of-type(5), .device_config_table dl dd:nth-of-type(5){ 1229 +
  1230 +.device_config_table dl dt:nth-of-type(5), .device_config_table dl dd:nth-of-type(5) {
1218 width: 4%; 1231 width: 4%;
1219 } 1232 }
1220 -.device_config_table dl dt:nth-of-type(6), .device_config_table dl dd:nth-of-type(6){ 1233 +
  1234 +.device_config_table dl dt:nth-of-type(6), .device_config_table dl dd:nth-of-type(6) {
1221 width: 4%; 1235 width: 4%;
1222 } 1236 }
1223 -.device_config_table dl dt:nth-of-type(7), .device_config_table dl dd:nth-of-type(7){ 1237 +
  1238 +.device_config_table dl dt:nth-of-type(7), .device_config_table dl dd:nth-of-type(7) {
1224 width: 4%; 1239 width: 4%;
1225 } 1240 }
1226 -.device_config_table dl dt:nth-of-type(8), .device_config_table dl dd:nth-of-type(8){ 1241 +
  1242 +.device_config_table dl dt:nth-of-type(8), .device_config_table dl dd:nth-of-type(8) {
1227 width: 5%; 1243 width: 5%;
1228 } 1244 }
1229 -.device_config_table dl dt:nth-of-type(9), .device_config_table dl dd:nth-of-type(9){ 1245 +
  1246 +.device_config_table dl dt:nth-of-type(9), .device_config_table dl dd:nth-of-type(9) {
1230 width: 5%; 1247 width: 5%;
1231 } 1248 }
1232 -.device_config_table dl dt:nth-of-type(10), .device_config_table dl dd:nth-of-type(10){ 1249 +
  1250 +.device_config_table dl dt:nth-of-type(10), .device_config_table dl dd:nth-of-type(10) {
1233 width: 8%; 1251 width: 8%;
1234 } 1252 }
1235 -.device_config_table dl dt:nth-of-type(11), .device_config_table dl dd:nth-of-type(11){ 1253 +
  1254 +.device_config_table dl dt:nth-of-type(11), .device_config_table dl dd:nth-of-type(11) {
1236 width: 5%; 1255 width: 5%;
1237 } 1256 }
1238 -.device_config_table dl dt:nth-of-type(12), .device_config_table dl dd:nth-of-type(12){ 1257 +
  1258 +.device_config_table dl dt:nth-of-type(12), .device_config_table dl dd:nth-of-type(12) {
1239 width: 5%; 1259 width: 5%;
1240 } 1260 }
1241 -.device_config_table dl dt:nth-of-type(13), .device_config_table dl dd:nth-of-type(13){ 1261 +
  1262 +.device_config_table dl dt:nth-of-type(13), .device_config_table dl dd:nth-of-type(13) {
1242 width: 4%; 1263 width: 4%;
1243 } 1264 }
1244 -.device_config_table dl dt:nth-of-type(14), .device_config_table dl dd:nth-of-type(14){ 1265 +
  1266 +.device_config_table dl dt:nth-of-type(14), .device_config_table dl dd:nth-of-type(14) {
1245 width: 4%; 1267 width: 4%;
1246 } 1268 }
1247 -.device_config_table dl dt:nth-of-type(15), .device_config_table dl dd:nth-of-type(15){ 1269 +
  1270 +.device_config_table dl dt:nth-of-type(15), .device_config_table dl dd:nth-of-type(15) {
1248 width: 4%; 1271 width: 4%;
1249 } 1272 }
1250 -.device_config_table dl dt:nth-of-type(16), .device_config_table dl dd:nth-of-type(16){ 1273 +
  1274 +.device_config_table dl dt:nth-of-type(16), .device_config_table dl dd:nth-of-type(16) {
1251 width: 3%; 1275 width: 3%;
1252 } 1276 }
1253 -.device_config_table dl dt:nth-of-type(17), .device_config_table dl dd:nth-of-type(17){ 1277 +
  1278 +.device_config_table dl dt:nth-of-type(17), .device_config_table dl dd:nth-of-type(17) {
1254 width: 4%; 1279 width: 4%;
1255 } 1280 }
1256 -.device_config_table dl dt:nth-of-type(18), .device_config_table dl dd:nth-of-type(18){ 1281 +
  1282 +.device_config_table dl dt:nth-of-type(18), .device_config_table dl dd:nth-of-type(18) {
1257 width: 13%; 1283 width: 13%;
1258 } 1284 }
1259 1285
1260 -.uk-tooltip{ 1286 +.uk-tooltip {
1261 z-index: 29999999 !important; 1287 z-index: 29999999 !important;
1262 } 1288 }
1263 1289
1264 .device_config_table.ct_table dl dd, 1290 .device_config_table.ct_table dl dd,
1265 -.device_config_table.ct_table dl dt{ 1291 +.device_config_table.ct_table dl dt {
1266 border-right: 1px solid #dedede !important; 1292 border-right: 1px solid #dedede !important;
1267 } 1293 }
1268 1294
1269 -.device_configs_manager .search_form{ 1295 +.device_configs_manager .search_form {
1270 text-indent: 12px; 1296 text-indent: 12px;
1271 margin-bottom: 0; 1297 margin-bottom: 0;
1272 padding: 18px 5px; 1298 padding: 18px 5px;
1273 } 1299 }
1274 1300
1275 -.sub_task_form_v2{ 1301 +.sub_task_form_v2 {
1276 background: #f9f9f9; 1302 background: #f9f9f9;
1277 padding: 12px 15px; 1303 padding: 12px 15px;
1278 border-radius: 5px 0 5px 5px; 1304 border-radius: 5px 0 5px 5px;
@@ -1281,7 +1307,7 @@ ul.left_tabs_lg li{ @@ -1281,7 +1307,7 @@ ul.left_tabs_lg li{
1281 margin-bottom: 20px; 1307 margin-bottom: 20px;
1282 } 1308 }
1283 1309
1284 -.task_form_close_icon{ 1310 +.task_form_close_icon {
1285 background: #f9f9f9; 1311 background: #f9f9f9;
1286 padding: 0px 4px; 1312 padding: 0px 4px;
1287 position: absolute; 1313 position: absolute;
@@ -1296,41 +1322,41 @@ ul.left_tabs_lg li{ @@ -1296,41 +1322,41 @@ ul.left_tabs_lg li{
1296 transition: all .03s; 1322 transition: all .03s;
1297 } 1323 }
1298 1324
1299 -.task_form_close_icon:hover{ 1325 +.task_form_close_icon:hover {
1300 border: 1px solid #ff1515; 1326 border: 1px solid #ff1515;
1301 border-left: none; 1327 border-left: none;
1302 border-bottom: none; 1328 border-bottom: none;
1303 color: #e03e3e; 1329 color: #e03e3e;
1304 } 1330 }
1305 1331
1306 -.sub_task_form_v2:hover::after{ 1332 +.sub_task_form_v2:hover::after {
1307 color: #5f5b5b; 1333 color: #5f5b5b;
1308 } 1334 }
1309 1335
1310 -.sub_task_form_v2.uk-form-horizontal .uk-form-label{ 1336 +.sub_task_form_v2.uk-form-horizontal .uk-form-label {
1311 width: 80px; 1337 width: 80px;
1312 } 1338 }
1313 1339
1314 -.sub_task_form_v2.uk-form-horizontal .uk-form-controls{ 1340 +.sub_task_form_v2.uk-form-horizontal .uk-form-controls {
1315 margin-left: 85px; 1341 margin-left: 85px;
1316 } 1342 }
1317 1343
1318 .sub_task_form_v2.uk-form-horizontal .uk-form-controls input[type=text], 1344 .sub_task_form_v2.uk-form-horizontal .uk-form-controls input[type=text],
1319 .sub_task_form_v2.uk-form-horizontal .uk-form-controls input[type=time], 1345 .sub_task_form_v2.uk-form-horizontal .uk-form-controls input[type=time],
1320 -.sub_task_form_v2.uk-form-horizontal .uk-form-controls select{ 1346 +.sub_task_form_v2.uk-form-horizontal .uk-form-controls select {
1321 width: 100%; 1347 width: 100%;
1322 } 1348 }
1323 1349
1324 -#add-sub-task-main-modal .uk-modal-footer{ 1350 +#add-sub-task-main-modal .uk-modal-footer {
1325 background: none; 1351 background: none;
1326 border-top: none; 1352 border-top: none;
1327 } 1353 }
1328 1354
1329 -#add-sub-task-main-modal .uk-grid+.uk-grid{ 1355 +#add-sub-task-main-modal .uk-grid + .uk-grid {
1330 margin-top: 12px; 1356 margin-top: 12px;
1331 } 1357 }
1332 1358
1333 -#add-sub-task-main-modal .plus_icon_span{ 1359 +#add-sub-task-main-modal .plus_icon_span {
1334 font-size: 26px; 1360 font-size: 26px;
1335 color: #b2b2b2; 1361 color: #b2b2b2;
1336 padding: 10px 64px; 1362 padding: 10px 64px;
@@ -1341,26 +1367,26 @@ ul.left_tabs_lg li{ @@ -1341,26 +1367,26 @@ ul.left_tabs_lg li{
1341 cursor: pointer; 1367 cursor: pointer;
1342 } 1368 }
1343 1369
1344 -#add-sub-task-main-modal .uk-animation-fade{ 1370 +#add-sub-task-main-modal .uk-animation-fade {
1345 animation-duration: .3s; 1371 animation-duration: .3s;
1346 } 1372 }
1347 1373
1348 -#add-sub-task-main-modal .forms{ 1374 +#add-sub-task-main-modal .forms {
1349 max-height: 642px; 1375 max-height: 642px;
1350 overflow-y: auto; 1376 overflow-y: auto;
1351 overflow-x: hidden; 1377 overflow-x: hidden;
1352 padding: 8px 8px 0 0; 1378 padding: 8px 8px 0 0;
1353 } 1379 }
1354 1380
1355 -.add_custom_wrap .forms .sub_task_form_v2:last-child{ 1381 +.add_custom_wrap .forms .sub_task_form_v2:last-child {
1356 margin-bottom: 0; 1382 margin-bottom: 0;
1357 } 1383 }
1358 1384
1359 -.sub_task_form_v2.destroy_form{ 1385 +.sub_task_form_v2.destroy_form {
1360 background-color: #fff5f4 !important; 1386 background-color: #fff5f4 !important;
1361 } 1387 }
1362 1388
1363 -.uk-form>.half_change_car_box{ 1389 +.uk-form > .half_change_car_box {
1364 margin: -10px 0 15px; 1390 margin: -10px 0 15px;
1365 padding: 3px 5px; 1391 padding: 3px 5px;
1366 display: inline-block; 1392 display: inline-block;
@@ -1368,29 +1394,29 @@ ul.left_tabs_lg li{ @@ -1368,29 +1394,29 @@ ul.left_tabs_lg li{
1368 color: #918f8f; 1394 color: #918f8f;
1369 } 1395 }
1370 1396
1371 -.half_change_car_box input[type=checkbox]{ 1397 +.half_change_car_box input[type=checkbox] {
1372 vertical-align: top; 1398 vertical-align: top;
1373 } 1399 }
1374 1400
1375 -.uk-form>.half_change_car_box.active{ 1401 +.uk-form > .half_change_car_box.active {
1376 background: #4CAF50; 1402 background: #4CAF50;
1377 color: #fff; 1403 color: #fff;
1378 } 1404 }
1379 1405
1380 -.uk-form>.half_change_car_box.active input[type=checkbox]{ 1406 +.uk-form > .half_change_car_box.active input[type=checkbox] {
1381 background: #4caf50; 1407 background: #4caf50;
1382 border-color: #4caf50; 1408 border-color: #4caf50;
1383 } 1409 }
1384 1410
1385 -.uk-form>.half_change_car_box.active input[type=checkbox]:before{ 1411 +.uk-form > .half_change_car_box.active input[type=checkbox]:before {
1386 color: #ffffff; 1412 color: #ffffff;
1387 } 1413 }
1388 1414
1389 -.sub_task_form_v2.change_car{ 1415 +.sub_task_form_v2.change_car {
1390 z-index: 99; 1416 z-index: 99;
1391 } 1417 }
1392 1418
1393 -.st_range_top_form{ 1419 +.st_range_top_form {
1394 padding: 0 0 15px 5px; 1420 padding: 0 0 15px 5px;
1395 border: 1px solid #c4bb76; 1421 border: 1px solid #c4bb76;
1396 background: #e5e1c1; 1422 background: #e5e1c1;
@@ -1398,46 +1424,46 @@ ul.left_tabs_lg li{ @@ -1398,46 +1424,46 @@ ul.left_tabs_lg li{
1398 box-shadow: 0px 4px 3px 0 rgba(142, 138, 138, 0.2), 0px 4px 5px 0 rgba(157, 156, 156, 0.19); 1424 box-shadow: 0px 4px 3px 0 rgba(142, 138, 138, 0.2), 0px 4px 5px 0 rgba(157, 156, 156, 0.19);
1399 } 1425 }
1400 1426
1401 -.st_range_top_form .uk-form-row{ 1427 +.st_range_top_form .uk-form-row {
1402 margin-top: 20px; 1428 margin-top: 20px;
1403 } 1429 }
1404 1430
1405 -.uk-form-horizontal.st_range_top_form .uk-form-label{ 1431 +.uk-form-horizontal.st_range_top_form .uk-form-label {
1406 width: 80px; 1432 width: 80px;
1407 } 1433 }
1408 1434
1409 -.uk-form-horizontal.st_range_top_form .uk-form-controls{ 1435 +.uk-form-horizontal.st_range_top_form .uk-form-controls {
1410 margin-left: 84px; 1436 margin-left: 84px;
1411 } 1437 }
1412 1438
1413 -.uk-form-horizontal.st_range_top_form .uk-form-controls select{ 1439 +.uk-form-horizontal.st_range_top_form .uk-form-controls select {
1414 width: calc(100% - 2px); 1440 width: calc(100% - 2px);
1415 } 1441 }
1416 1442
1417 -.sub_task_form_v2.service_st_form{ 1443 +.sub_task_form_v2.service_st_form {
1418 background: #f4faff; 1444 background: #f4faff;
1419 } 1445 }
1420 1446
1421 -.uk-modal .uk-form.fv-form.sub_task_form_v2{ 1447 +.uk-modal .uk-form.fv-form.sub_task_form_v2 {
1422 margin-bottom: 20px !important; 1448 margin-bottom: 20px !important;
1423 } 1449 }
1424 1450
1425 -.sub_task_table_wrap .ct_table>.ct_table_body{ 1451 +.sub_task_table_wrap .ct_table > .ct_table_body {
1426 border-bottom: none; 1452 border-bottom: none;
1427 } 1453 }
1428 1454
1429 -.err_panel{ 1455 +.err_panel {
1430 font-size: 12px; 1456 font-size: 12px;
1431 color: #7e7d7d; 1457 color: #7e7d7d;
1432 font-family: 微软雅黑; 1458 font-family: 微软雅黑;
1433 margin-top: 5px; 1459 margin-top: 5px;
1434 } 1460 }
1435 1461
1436 -#schedule-lp_change-modal .ct_table dl{ 1462 +#schedule-lp_change-modal .ct_table dl {
1437 height: 35px; 1463 height: 35px;
1438 } 1464 }
1439 1465
1440 -#schedule-lp_change-modal .ct_table dl dd, #schedule-lp_change-modal .ct_table dl dt{ 1466 +#schedule-lp_change-modal .ct_table dl dd, #schedule-lp_change-modal .ct_table dl dt {
1441 line-height: 35px; 1467 line-height: 35px;
1442 } 1468 }
1443 1469
@@ -1453,7 +1479,7 @@ ul.left_tabs_lg li{ @@ -1453,7 +1479,7 @@ ul.left_tabs_lg li{
1453 font-weight: 600; 1479 font-weight: 600;
1454 }*/ 1480 }*/
1455 1481
1456 -.sub_task_form_v2:before{ 1482 +.sub_task_form_v2:before {
1457 position: absolute; 1483 position: absolute;
1458 top: -7px; 1484 top: -7px;
1459 font-size: 12px; 1485 font-size: 12px;
@@ -1462,19 +1488,19 @@ ul.left_tabs_lg li{ @@ -1462,19 +1488,19 @@ ul.left_tabs_lg li{
1462 line-height: 14px; 1488 line-height: 14px;
1463 } 1489 }
1464 1490
1465 -.sub_task_form_v2.destroy_form:before{ 1491 +.sub_task_form_v2.destroy_form:before {
1466 content: '烂班' !important; 1492 content: '烂班' !important;
1467 color: #f14235 !important; 1493 color: #f14235 !important;
1468 background: #ffffff !important; 1494 background: #ffffff !important;
1469 } 1495 }
1470 1496
1471 -.sub_task_form_v2.service_form:before{ 1497 +.sub_task_form_v2.service_form:before {
1472 content: '营运'; 1498 content: '营运';
1473 color: #2196F3; 1499 color: #2196F3;
1474 background: #ffffff; 1500 background: #ffffff;
1475 } 1501 }
1476 1502
1477 -.sub_task_form_v2.service_form.temp_service:before{ 1503 +.sub_task_form_v2.service_form.temp_service:before {
1478 content: '营运 (临加)'; 1504 content: '营运 (临加)';
1479 color: #9C27B0; 1505 color: #9C27B0;
1480 background: #ffffff; 1506 background: #ffffff;
@@ -1484,13 +1510,13 @@ ul.left_tabs_lg li{ @@ -1484,13 +1510,13 @@ ul.left_tabs_lg li{
1484 background: #faf0fd; 1510 background: #faf0fd;
1485 } 1511 }
1486 1512
1487 -.sub_task_form_v2.empty_form:before{ 1513 +.sub_task_form_v2.empty_form:before {
1488 content: '空驶'; 1514 content: '空驶';
1489 color: #928f92; 1515 color: #928f92;
1490 background: #ffffff; 1516 background: #ffffff;
1491 } 1517 }
1492 1518
1493 -.sub_task_form_v2.service_form{ 1519 +.sub_task_form_v2.service_form {
1494 background: #f4faff; 1520 background: #f4faff;
1495 } 1521 }
1496 1522
@@ -1501,52 +1527,52 @@ ul.left_tabs_lg li{ @@ -1501,52 +1527,52 @@ ul.left_tabs_lg li{
1501 .sub_task_form_v2.repeat_main{ 1527 .sub_task_form_v2.repeat_main{
1502 background: #f4faff; 1528 background: #f4faff;
1503 }*/ 1529 }*/
1504 -.footer_tools{ 1530 +.footer_tools {
1505 position: absolute; 1531 position: absolute;
1506 left: 235px; 1532 left: 235px;
1507 bottom: 19px; 1533 bottom: 19px;
1508 } 1534 }
1509 1535
1510 -.footer_mileage_count{ 1536 +.footer_mileage_count {
1511 border: 1px solid #f2f2f2; 1537 border: 1px solid #f2f2f2;
1512 padding: 5px; 1538 padding: 5px;
1513 box-shadow: 0px 2px 5px 0 rgba(0, 0, 0, 0.2), 0px 2px 7px 0 rgba(0, 0, 0, 0.19); 1539 box-shadow: 0px 2px 5px 0 rgba(0, 0, 0, 0.2), 0px 2px 7px 0 rgba(0, 0, 0, 0.19);
1514 display: inline-block; 1540 display: inline-block;
1515 } 1541 }
1516 1542
1517 -.footer_mileage_count>span{ 1543 +.footer_mileage_count > span {
1518 padding: 2px 5px; 1544 padding: 2px 5px;
1519 } 1545 }
1520 1546
1521 -.footer_mileage_count>span.service_sum{ 1547 +.footer_mileage_count > span.service_sum {
1522 color: #2196F3; 1548 color: #2196F3;
1523 } 1549 }
1524 1550
1525 -.footer_mileage_count>span.empty_sum{ 1551 +.footer_mileage_count > span.empty_sum {
1526 color: #636363; 1552 color: #636363;
1527 } 1553 }
1528 1554
1529 -.footer_mileage_count>span.destroy_sum{ 1555 +.footer_mileage_count > span.destroy_sum {
1530 color: #f5574b; 1556 color: #f5574b;
1531 } 1557 }
1532 1558
1533 -.station_to_park_link{ 1559 +.station_to_park_link {
1534 display: inline-block; 1560 display: inline-block;
1535 margin-left: 15px; 1561 margin-left: 15px;
1536 vertical-align: bottom; 1562 vertical-align: bottom;
1537 font-size: 12px; 1563 font-size: 12px;
1538 } 1564 }
1539 1565
1540 -.station_to_park_link>a{ 1566 +.station_to_park_link > a {
1541 color: #607D8B; 1567 color: #607D8B;
1542 } 1568 }
1543 1569
1544 #station_to_park-modal.ct-form-modal form input[type=text], 1570 #station_to_park-modal.ct-form-modal form input[type=text],
1545 -#station_to_park-modal.ct-form-modal form select{ 1571 +#station_to_park-modal.ct-form-modal form select {
1546 width: auto; 1572 width: auto;
1547 } 1573 }
1548 1574
1549 -.s_2_park_form_wrap{ 1575 +.s_2_park_form_wrap {
1550 background: #fafafa; 1576 background: #fafafa;
1551 border: 1px solid #e5e5e5; 1577 border: 1px solid #e5e5e5;
1552 padding: 7px 16px; 1578 padding: 7px 16px;
@@ -1554,7 +1580,7 @@ ul.left_tabs_lg li{ @@ -1554,7 +1580,7 @@ ul.left_tabs_lg li{
1554 position: relative; 1580 position: relative;
1555 } 1581 }
1556 1582
1557 -.s_2_park_form_wrap .ct_close{ 1583 +.s_2_park_form_wrap .ct_close {
1558 position: absolute; 1584 position: absolute;
1559 top: -12px; 1585 top: -12px;
1560 padding: 0 4px; 1586 padding: 0 4px;
@@ -1565,42 +1591,42 @@ ul.left_tabs_lg li{ @@ -1565,42 +1591,42 @@ ul.left_tabs_lg li{
1565 cursor: pointer; 1591 cursor: pointer;
1566 } 1592 }
1567 1593
1568 -.s_2_park_form_wrap .ct_close:hover{ 1594 +.s_2_park_form_wrap .ct_close:hover {
1569 background: #e5e5e5; 1595 background: #e5e5e5;
1570 color: #fd6e6e; 1596 color: #fd6e6e;
1571 } 1597 }
1572 1598
1573 -.s_2_park_form_wrap label{ 1599 +.s_2_park_form_wrap label {
1574 color: #666; 1600 color: #666;
1575 font-size: 13px; 1601 font-size: 13px;
1576 } 1602 }
1577 1603
1578 -#station_to_park-modal.ct-form-modal form input[readonly]{ 1604 +#station_to_park-modal.ct-form-modal form input[readonly] {
1579 background: #fafafa; 1605 background: #fafafa;
1580 } 1606 }
1581 1607
1582 -.s_2_park_form_wrap .bottom_label{ 1608 +.s_2_park_form_wrap .bottom_label {
1583 margin-top: 25px; 1609 margin-top: 25px;
1584 display: block; 1610 display: block;
1585 } 1611 }
1586 1612
1587 -.s_2_park_form_wrap .bottom_label_2{ 1613 +.s_2_park_form_wrap .bottom_label_2 {
1588 margin-top: 4px; 1614 margin-top: 4px;
1589 display: block; 1615 display: block;
1590 } 1616 }
1591 1617
1592 -.ct_describe{ 1618 +.ct_describe {
1593 font-size: 12px; 1619 font-size: 12px;
1594 color: #909090; 1620 color: #909090;
1595 font-family: FontAwesome; 1621 font-family: FontAwesome;
1596 } 1622 }
1597 1623
1598 -.ct_describe:before{ 1624 +.ct_describe:before {
1599 content: "\f059"; 1625 content: "\f059";
1600 margin-right: 3px; 1626 margin-right: 3px;
1601 } 1627 }
1602 1628
1603 -#add-sub-task-main-modal abbr{ 1629 +#add-sub-task-main-modal abbr {
1604 display: inline-block; 1630 display: inline-block;
1605 font-size: 12px; 1631 font-size: 12px;
1606 margin-left: 25px; 1632 margin-left: 25px;
@@ -1608,15 +1634,17 @@ ul.left_tabs_lg li{ @@ -1608,15 +1634,17 @@ ul.left_tabs_lg li{
1608 color: #929292; 1634 color: #929292;
1609 } 1635 }
1610 1636
1611 -#all-devices-modal .search-form input[type=text]{ 1637 +#all-devices-modal .search-form input[type=text] {
1612 width: 100px; 1638 width: 100px;
1613 } 1639 }
1614 1640
1615 -#all-devices-modal .auto-refresh{  
1616 - vertical-align: middle;margin-left: 5px;color: grey; 1641 +#all-devices-modal .auto-refresh {
  1642 + vertical-align: middle;
  1643 + margin-left: 5px;
  1644 + color: grey;
1617 } 1645 }
1618 1646
1619 -#all-devices-modal .auto-refresh.active{ 1647 +#all-devices-modal .auto-refresh.active {
1620 color: #405dff; 1648 color: #405dff;
1621 } 1649 }
1622 1650
@@ -1624,7 +1652,7 @@ ul.left_tabs_lg li{ @@ -1624,7 +1652,7 @@ ul.left_tabs_lg li{
1624 margin-top: 0 !important; 1652 margin-top: 0 !important;
1625 } 1653 }
1626 1654
1627 -#history-sch-maintain-modal .add_lp_link{ 1655 +#history-sch-maintain-modal .add_lp_link {
1628 display: inline-block; 1656 display: inline-block;
1629 vertical-align: bottom; 1657 vertical-align: bottom;
1630 margin-left: 15px; 1658 margin-left: 15px;
@@ -1632,107 +1660,107 @@ ul.left_tabs_lg li{ @@ -1632,107 +1660,107 @@ ul.left_tabs_lg li{
1632 font-size: 13px; 1660 font-size: 13px;
1633 } 1661 }
1634 1662
1635 -#schedule-tzrc-modal input[type=checkbox]{ 1663 +#schedule-tzrc-modal input[type=checkbox] {
1636 margin-right: 9px; 1664 margin-right: 9px;
1637 } 1665 }
1638 1666
1639 -#schedule-tzrc-modal span.ct_zt_yzx{ 1667 +#schedule-tzrc-modal span.ct_zt_yzx {
1640 color: #2196F3; 1668 color: #2196F3;
1641 font-size: 12px; 1669 font-size: 12px;
1642 } 1670 }
1643 1671
1644 -#schedule-tzrc-modal span.ct_zt_lb{ 1672 +#schedule-tzrc-modal span.ct_zt_lb {
1645 color: red; 1673 color: red;
1646 font-size: 12px; 1674 font-size: 12px;
1647 } 1675 }
1648 1676
1649 -#schedule-tzrc-modal span.ct_zt_zzzx{ 1677 +#schedule-tzrc-modal span.ct_zt_zzzx {
1650 font-size: 12px; 1678 font-size: 12px;
1651 color: #38ad3c; 1679 color: #38ad3c;
1652 } 1680 }
1653 1681
1654 -#schedule-tzrc-modal .tzrc_form{ 1682 +#schedule-tzrc-modal .tzrc_form {
1655 padding: 20px; 1683 padding: 20px;
1656 border: 1px solid #f0eded; 1684 border: 1px solid #f0eded;
1657 - box-shadow: 0px -3px 15px rgba(0,0,0,0.08); 1685 + box-shadow: 0px -3px 15px rgba(0, 0, 0, 0.08);
1658 background: #f9f9f9; 1686 background: #f9f9f9;
1659 } 1687 }
1660 1688
1661 -.uk-panel.ct_search_panel{ 1689 +.uk-panel.ct_search_panel {
1662 padding: 15px; 1690 padding: 15px;
1663 border: 1px solid #f0eded; 1691 border: 1px solid #f0eded;
1664 - box-shadow: 0px 3px 15px rgba(0,0,0,0.08); 1692 + box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.08);
1665 background: #f9f9f9; 1693 background: #f9f9f9;
1666 } 1694 }
1667 1695
1668 .sch-tzrc-table.ct_table dl.active, 1696 .sch-tzrc-table.ct_table dl.active,
1669 -.sch-tzrc-table.ct_table>.ct_table_body dl.active:hover{ 1697 +.sch-tzrc-table.ct_table > .ct_table_body dl.active:hover {
1670 background: #5bd460; 1698 background: #5bd460;
1671 color: white; 1699 color: white;
1672 } 1700 }
1673 1701
1674 -#schedule-tzrc-modal dl.active span.ct_zt_yzx{ 1702 +#schedule-tzrc-modal dl.active span.ct_zt_yzx {
1675 color: #545252; 1703 color: #545252;
1676 } 1704 }
1677 1705
1678 -#schedule-tzrc-modal dl.active span.ct_zt_lb{ 1706 +#schedule-tzrc-modal dl.active span.ct_zt_lb {
1679 color: #d64949; 1707 color: #d64949;
1680 } 1708 }
1681 1709
1682 -#schedule-tzrc-modal dl.active span.ct_zt_zzzx{ 1710 +#schedule-tzrc-modal dl.active span.ct_zt_zzzx {
1683 color: white; 1711 color: white;
1684 } 1712 }
1685 1713
1686 -#schedule-tzrc-modal dl.active input[type=checkbox]{ 1714 +#schedule-tzrc-modal dl.active input[type=checkbox] {
1687 border: 0; 1715 border: 0;
1688 } 1716 }
1689 1717
1690 -#schedule-tzrc-modal dl.active input[type=checkbox]:before{ 1718 +#schedule-tzrc-modal dl.active input[type=checkbox]:before {
1691 color: #ffffff; 1719 color: #ffffff;
1692 } 1720 }
1693 1721
1694 -.sch-search-autocom input{ 1722 +.sch-search-autocom input {
1695 padding: 0 !important; 1723 padding: 0 !important;
1696 height: 100% !important; 1724 height: 100% !important;
1697 } 1725 }
1698 1726
1699 -label.blue_checkbox{ 1727 +label.blue_checkbox {
1700 margin-left: 12px; 1728 margin-left: 12px;
1701 } 1729 }
1702 1730
1703 -label.blue_checkbox>input{ 1731 +label.blue_checkbox > input {
1704 width: 17px !important; 1732 width: 17px !important;
1705 height: 17px !important; 1733 height: 17px !important;
1706 } 1734 }
1707 1735
1708 -label.blue_checkbox>input:checked:before,  
1709 -label.blue_checkbox>input:indeterminate:before{ 1736 +label.blue_checkbox > input:checked:before,
  1737 +label.blue_checkbox > input:indeterminate:before {
1710 line-height: 15px !important; 1738 line-height: 15px !important;
1711 } 1739 }
1712 1740
1713 -dd.disabled{ 1741 +dd.disabled {
1714 color: #b5b3b3; 1742 color: #b5b3b3;
1715 } 1743 }
1716 1744
1717 -dl.active>dd.disabled{ 1745 +dl.active > dd.disabled {
1718 color: #ececec; 1746 color: #ececec;
1719 } 1747 }
1720 1748
1721 -#change_user_options-modal .user_info{ 1749 +#change_user_options-modal .user_info {
1722 width: 360px; 1750 width: 360px;
1723 margin: auto; 1751 margin: auto;
1724 } 1752 }
1725 1753
1726 -.display_hide{ 1754 +.display_hide {
1727 display: none; 1755 display: none;
1728 } 1756 }
1729 1757
1730 -.ct_eye_icon{ 1758 +.ct_eye_icon {
1731 font-size: 16px; 1759 font-size: 16px;
1732 cursor: pointer; 1760 cursor: pointer;
1733 } 1761 }
1734 1762
1735 -.ct_eye_icon.active{ 1763 +.ct_eye_icon.active {
1736 color: #444; 1764 color: #444;
1737 } 1765 }
1738 1766
@@ -1741,7 +1769,7 @@ dl.active&gt;dd.disabled{ @@ -1741,7 +1769,7 @@ dl.active&gt;dd.disabled{
1741 height: 16px; 1769 height: 16px;
1742 } 1770 }
1743 1771
1744 -.range_2_normal_tt{ 1772 +.range_2_normal_tt {
1745 margin-bottom: 15px; 1773 margin-bottom: 15px;
1746 border-top: 1px dashed #c7c7c7; 1774 border-top: 1px dashed #c7c7c7;
1747 color: #a6a6a6; 1775 color: #a6a6a6;
@@ -1749,7 +1777,7 @@ dl.active&gt;dd.disabled{ @@ -1749,7 +1777,7 @@ dl.active&gt;dd.disabled{
1749 padding-bottom: 5px; 1777 padding-bottom: 5px;
1750 } 1778 }
1751 1779
1752 -.cancel_link{ 1780 +.cancel_link {
1753 font-size: 12px; 1781 font-size: 12px;
1754 margin-left: 15px; 1782 margin-left: 15px;
1755 vertical-align: bottom; 1783 vertical-align: bottom;
@@ -1759,7 +1787,7 @@ dl.active&gt;dd.disabled{ @@ -1759,7 +1787,7 @@ dl.active&gt;dd.disabled{
1759 right: 0; 1787 right: 0;
1760 } 1788 }
1761 1789
1762 -.edit_link{ 1790 +.edit_link {
1763 font-size: 12px; 1791 font-size: 12px;
1764 margin-left: 15px; 1792 margin-left: 15px;
1765 vertical-align: bottom; 1793 vertical-align: bottom;
@@ -1780,7 +1808,7 @@ dl.active&gt;dd.disabled{ @@ -1780,7 +1808,7 @@ dl.active&gt;dd.disabled{
1780 min-height: 40px; 1808 min-height: 40px;
1781 } 1809 }
1782 1810
1783 -.c_b_abnorm_notice:before{ 1811 +.c_b_abnorm_notice:before {
1784 content: "-超速报警-"; 1812 content: "-超速报警-";
1785 color: #000000; 1813 color: #000000;
1786 font-size: 12px; 1814 font-size: 12px;
@@ -1801,19 +1829,19 @@ dl.active&gt;dd.disabled{ @@ -1801,19 +1829,19 @@ dl.active&gt;dd.disabled{
1801 cursor: pointer; 1829 cursor: pointer;
1802 } 1830 }
1803 1831
1804 -.c_b_abnorm_notice>.c_b_item:first-child{ 1832 +.c_b_abnorm_notice > .c_b_item:first-child {
1805 margin-top: 20px; 1833 margin-top: 20px;
1806 } 1834 }
1807 1835
1808 -.c_b_item.over{ 1836 +.c_b_item.over {
1809 color: grey; 1837 color: grey;
1810 } 1838 }
1811 1839
1812 -.c_b_item>span.c_b_over{ 1840 +.c_b_item > span.c_b_over {
1813 float: right; 1841 float: right;
1814 } 1842 }
1815 1843
1816 -.mileage_elec_panel{ 1844 +.mileage_elec_panel {
1817 position: absolute; 1845 position: absolute;
1818 width: 100%; 1846 width: 100%;
1819 /*height: 90px;*/ 1847 /*height: 90px;*/
@@ -1828,33 +1856,33 @@ dl.active&gt;dd.disabled{ @@ -1828,33 +1856,33 @@ dl.active&gt;dd.disabled{
1828 display: none; 1856 display: none;
1829 } 1857 }
1830 1858
1831 -.mileage_elec_panel ._title{ 1859 +.mileage_elec_panel ._title {
1832 margin: 5px 3px; 1860 margin: 5px 3px;
1833 font-size: 15px; 1861 font-size: 15px;
1834 } 1862 }
1835 1863
1836 -.mileage_elec_panel .LD_item{ 1864 +.mileage_elec_panel .LD_item {
1837 margin: 5px 0; 1865 margin: 5px 0;
1838 font-family: 微软雅黑; 1866 font-family: 微软雅黑;
1839 } 1867 }
1840 1868
1841 -.mileage_elec_panel .LD_item>span{ 1869 +.mileage_elec_panel .LD_item > span {
1842 padding: 3px; 1870 padding: 3px;
1843 display: inline-block; 1871 display: inline-block;
1844 width: 85px; 1872 width: 85px;
1845 } 1873 }
1846 1874
1847 -.mileage_elec_panel .lp_name{ 1875 +.mileage_elec_panel .lp_name {
1848 padding: 0 5px; 1876 padding: 0 5px;
1849 background: #f2f2f2; 1877 background: #f2f2f2;
1850 border-radius: 15px 1878 border-radius: 15px
1851 } 1879 }
1852 1880
1853 -.mileage_elec_panel .LD_item>span>a{ 1881 +.mileage_elec_panel .LD_item > span > a {
1854 color: #000; 1882 color: #000;
1855 } 1883 }
1856 1884
1857 -.mileage_elec_panel .LD_item>span:nth-of-type(1)>a{ 1885 +.mileage_elec_panel .LD_item > span:nth-of-type(1) > a {
1858 color: blue; 1886 color: blue;
1859 } 1887 }
1860 1888
@@ -1866,8 +1894,10 @@ dl.active&gt;dd.disabled{ @@ -1866,8 +1894,10 @@ dl.active&gt;dd.disabled{
1866 color: #515151; 1894 color: #515151;
1867 }*/ 1895 }*/
1868 1896
1869 -.mileage_elec_panel hr{  
1870 - height:1px;border:none;border-top:1px dashed #b5b5b5; 1897 +.mileage_elec_panel hr {
  1898 + height: 1px;
  1899 + border: none;
  1900 + border-top: 1px dashed #b5b5b5;
1871 } 1901 }
1872 1902
1873 #edit-sub-task-main-modal .sub_task_form_v2.uk-form-horizontal .uk-form-label { 1903 #edit-sub-task-main-modal .sub_task_form_v2.uk-form-horizontal .uk-form-label {
@@ -1878,33 +1908,52 @@ dl.active&gt;dd.disabled{ @@ -1878,33 +1908,52 @@ dl.active&gt;dd.disabled{
1878 margin-left: 75px; 1908 margin-left: 75px;
1879 } 1909 }
1880 1910
1881 -#edit-sub-task-main-modal .sub_task_form_v2 .uk-grid+.uk-grid, 1911 +#edit-sub-task-main-modal .sub_task_form_v2 .uk-grid + .uk-grid,
1882 #edit-sub-task-main-modal .sub_task_form_v2 .uk-grid-margin, 1912 #edit-sub-task-main-modal .sub_task_form_v2 .uk-grid-margin,
1883 -#edit-sub-task-main-modal .sub_task_form_v2 .uk-grid>*>.uk-panel+.uk-panel{ 1913 +#edit-sub-task-main-modal .sub_task_form_v2 .uk-grid > * > .uk-panel + .uk-panel {
1884 margin-top: 22px; 1914 margin-top: 22px;
1885 } 1915 }
1886 1916
1887 .c_task_mileage_abnormal, 1917 .c_task_mileage_abnormal,
1888 -.c_task_mileage_abnormal .ct_table>.ct_table_head dl,  
1889 -.c_task_mileage_abnormal .ct_table dl{ 1918 +.c_task_mileage_abnormal .ct_table > .ct_table_head dl,
  1919 +.c_task_mileage_abnormal .ct_table dl {
1890 background: #ffe7e7 !important; 1920 background: #ffe7e7 !important;
1891 } 1921 }
1892 1922
1893 -.tip_task_count_dl{ 1923 +.tip_task_count_dl {
1894 width: calc(100% + 22px) !important; 1924 width: calc(100% + 22px) !important;
1895 margin-left: -11px !important; 1925 margin-left: -11px !important;
1896 border-top: 1px solid #e6e6e6 !important; 1926 border-top: 1px solid #e6e6e6 !important;
1897 } 1927 }
1898 1928
1899 -.tip_task_count_dl>dd{  
1900 - width: 100% !important; 1929 +.tip_task_count_dl > dd:last-child {
  1930 + width: calc(100% - 50px) !important;
1901 border-right: 0 !important; 1931 border-right: 0 !important;
1902 height: 35px !important; 1932 height: 35px !important;
1903 background: #f3f3f3; 1933 background: #f3f3f3;
1904 margin-bottom: -3px; 1934 margin-bottom: -3px;
1905 } 1935 }
1906 1936
1907 -.tip_task_count_dl>dd>span{ 1937 +.tip_task_count_dl > dd:nth-of-type(1) {
  1938 + text-align: center;
  1939 + border-right: 0 !important;
  1940 + width: 48px !important;
  1941 +}
  1942 +
  1943 +.tip_task_count_dl > dd:nth-of-type(1) > i {
  1944 + padding: 6px;
  1945 + cursor: pointer;
  1946 +}
  1947 +
  1948 +.tip_task_count_dl > dd:nth-of-type(1) > i:hover {
  1949 + background: #ebebeb;
  1950 +}
  1951 +
  1952 +.tip_task_count_dl.c_task_error > dd:last-child {
  1953 + background: #ff8a81;
  1954 +}
  1955 +
  1956 +.tip_task_count_dl > dd > span {
1908 font-size: 13px; 1957 font-size: 13px;
1909 color: #000; 1958 color: #000;
1910 height: 55px; 1959 height: 55px;
@@ -1914,6 +1963,67 @@ dl.active&gt;dd.disabled{ @@ -1914,6 +1963,67 @@ dl.active&gt;dd.disabled{
1914 text-indent: 12px; 1963 text-indent: 12px;
1915 } 1964 }
1916 1965
1917 -.tip_task_list>dl:nth-last-child(2){ 1966 +.tip_task_list > dl:nth-last-child(2) {
1918 border-bottom: 0 !important; 1967 border-bottom: 0 !important;
  1968 +}
  1969 +
  1970 +.c_task_mileage_error {
  1971 + border: 1px solid rgba(218, 13, 13, 0.2);
  1972 + border-bottom-color: rgba(213, 37, 37, 0.3);
  1973 + background-image: -webkit-linear-gradient(top, #ff6155, #F44336);
  1974 +}
  1975 +
  1976 +.uk-badge.c_task.c_task_mileage_error:hover:hover {
  1977 + background-image: none;
  1978 + background: #ff6155;
  1979 + border: 1px solid rgba(213, 37, 37, 0.3);
  1980 +}
  1981 +
  1982 +.grey_link {
  1983 + color: #adabab;
  1984 +}
  1985 +
  1986 +#sch_car_info_all-modal tr.ct_active {
  1987 + -moz-animation: twinkle_bg .9s ease-in-out;
  1988 + -webkit-animation: twinkle_bg .9s ease-in-out;
  1989 +}
  1990 +
  1991 +#sch_car_info_all-modal .uk-table-hover tr:hover{
  1992 + background: #dddddd;
  1993 +}
  1994 +
  1995 +@-moz-keyframes twinkle_bg {
  1996 + 0% {
  1997 + background: rgba(254, 235, 69, 0.38);
  1998 + }
  1999 + 25% {
  2000 + background: rgba(254, 235, 69, 0.7);
  2001 + }
  2002 + 50% {
  2003 + background: rgba(254, 235, 69, 0.3);
  2004 + }
  2005 + 75% {
  2006 + background: rgba(254, 235, 69, 0.7);
  2007 + }
  2008 + 100% {
  2009 + background: rgba(254, 235, 69, 0.38);
  2010 + }
  2011 +}
  2012 +
  2013 +@-webkit-keyframes twinkle_bg {
  2014 + 0% {
  2015 + background: rgba(254, 235, 69, 0.38);
  2016 + }
  2017 + 25% {
  2018 + background: rgba(254, 235, 69, 0.7);
  2019 + }
  2020 + 50% {
  2021 + background: rgba(254, 235, 69, 0.3);
  2022 + }
  2023 + 75% {
  2024 + background: rgba(254, 235, 69, 0.7);
  2025 + }
  2026 + 100% {
  2027 + background: rgba(254, 235, 69, 0.38);
  2028 + }
1919 } 2029 }
1920 \ No newline at end of file 2030 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/line_schedule/badge_tooltip.html
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 </dl> 12 </dl>
13 {{each tasks as t i}} 13 {{each tasks as t i}}
14 <dl class="{{t.mileageType}} {{if t.destroy}}destroy{{/if}} {{if t.type1=='临加'}}temp_add{{/if}}"> 14 <dl class="{{t.mileageType}} {{if t.destroy}}destroy{{/if}} {{if t.type1=='临加'}}temp_add{{/if}}">
15 - <dd><a data-line="{{lineCode}}" data-id="{{t.id}}" data-schid="{{sch_id}}" class="tip_task_edit_link">编辑</a></dd> 15 + <dd><a data-line="{{sch.xlBm}}" data-id="{{t.id}}" data-schid="{{sch.id}}" class="tip_task_edit_link">编辑</a></dd>
16 <dd> 16 <dd>
17 {{if t.mileageType=="service"}} 17 {{if t.mileageType=="service"}}
18 营运 18 营运
@@ -37,9 +37,10 @@ @@ -37,9 +37,10 @@
37 <dd title="{{t.remarks}}">{{t.remarks}}</dd> 37 <dd title="{{t.remarks}}">{{t.remarks}}</dd>
38 </dl> 38 </dl>
39 {{/each}} 39 {{/each}}
40 - <dl class="tip_task_count_dl" > 40 + <dl class="tip_task_count_dl {{if sch.c_t_mileage_status==-1}}c_task_error{{/if}}" >
  41 + <dd><i class="uk-icon-plus badge_tip_add_icon" data-line="{{sch.xlBm}}" data-schid="{{sch.id}}"></i></dd>
41 <dd> 42 <dd>
42 - <span>计划:{{jhlc}}</span> 43 + <span>计划:{{sch.jhlcOrig}}</span>
43 <span>营运+烂班:{{serviceCount}}</span> 44 <span>营运+烂班:{{serviceCount}}</span>
44 <span>空驶:{{emptyCount}}</span> 45 <span>空驶:{{emptyCount}}</span>
45 </dd> 46 </dd>
src/main/resources/static/real_control_v2/fragments/line_schedule/car_info_all.html 0 → 100644
  1 +<div class="uk-modal ct_move_modal" id="sch_car_info_all-modal">
  2 + <div class="uk-modal-dialog" style="width: 1080px;">
  3 + <a href="" class="uk-modal-close uk-close"></a>
  4 +
  5 + <div class="uk-modal-header">
  6 + <h2>1006路 -全部车辆</h2></div>
  7 +
  8 + <table class="uk-table uk-table-hover" style="table-layout: fixed;">
  9 + <thead>
  10 + <tr>
  11 + <th style="width: 10%;">车辆</th>
  12 + <th style="width: 10%;">设备号</th>
  13 + <th style="width: 16%;">位置</th>
  14 + <th style="width: 14%;">车载线路编码</th>
  15 + <th style="width: 13%;">当前执行任务</th>
  16 + <th style="width: 7%;">状态</th>
  17 + <th style="width: 19%">最后gps时间</th>
  18 + <th>请求出场</th>
  19 + </tr>
  20 + </thead>
  21 + <tbody>
  22 + </tbody>
  23 + </table>
  24 + </div>
  25 +
  26 + <script id="sch_car_info_all-temp" type="text/html">
  27 + {{each list as obj i}}
  28 + <tr data-nbbm="{{obj.nbbm}}">
  29 + <td>{{obj.nbbm}}</td>
  30 + <td>{{obj.device}}</td>
  31 + <td>{{obj.loc}}</td>
  32 + <td>{{obj.lineCodeRealStr}}</td>
  33 + <td><a class="exec_sch_link" data-id="{{obj.schId}}">{{obj.exec}}</a></td>
  34 + <td><a class="{{if obj.status!='在线'}}grey_link{{/if}}">{{obj.status}}</a></td>
  35 + <td class="{{if obj.status!='在线'}}grey_link{{/if}}">
  36 + {{obj.timeStr}}
  37 +
  38 + {{if obj.formNow!=null}}
  39 + <small>({{obj.formNow}})</small>
  40 + {{/if}}
  41 + </td>
  42 + <td>{{obj.qqccTimeStr}}</td>
  43 + </tr>
  44 + {{/each}}
  45 + </script>
  46 + <script>
  47 + (function () {
  48 + var modal = '#sch_car_info_all-modal', lineCode, nbbm;
  49 +
  50 + $(modal).on('init', function(e, data) {
  51 + e.stopPropagation();
  52 + lineCode = data.lineCode;
  53 + nbbm = data.nbbm;
  54 +
  55 + jsDoQuery(function () {
  56 + var $cell = $('tr[data-nbbm='+nbbm+']', modal);
  57 + //定位到行
  58 + $(modal).animate({
  59 + scrollTop: $cell.offset().top - $(modal).offset().top + $(modal).scrollTop()
  60 + }, 500, function () {
  61 + $cell.addClass('ct_active');
  62 + });
  63 + timer = setTimeout(fixedRefreshData, t + 500);
  64 + });
  65 + });
  66 +
  67 + var timer, t = 12*1000;
  68 + var fixedRefreshData = function () {
  69 + (function () {
  70 + var f = arguments.callee;
  71 + jsDoQuery(function () {
  72 + timer = setTimeout(f, t);
  73 + });
  74 + })();
  75 + };
  76 +
  77 + $(modal).on('hide.uk.modal', function () {
  78 + clearTimeout(timer);
  79 + timer = null;
  80 + });
  81 +
  82 + var jsDoQuery = function (cb) {
  83 + gb_common.$get('/gps/allCarsByLine', {lineCode: lineCode}, function (rs) {
  84 + $.each(rs.list, function () {
  85 + if(this['lineCodeReal'])
  86 + this['lineCodeRealStr'] = this['lineCodeReal'] + '/' + gb_data_basic.lineCode2NameAll()[this['lineCodeReal']];
  87 + else
  88 + this['lineCodeRealStr'] = '';
  89 + if(this['gpsTs']){
  90 + this['timeStr'] = moment(this['gpsTs']).format('MM/DD HH:mm:ss');
  91 + this['formNow'] = moment(this['gpsTs']).fromNow();
  92 + }
  93 + if(this['qqcc'])
  94 + this['qqccTimeStr'] = moment(this['qqcc']).format('HH:mm');
  95 + });
  96 +
  97 + rs.list.sort(function (a, b) {
  98 + if(!a.nbbm)
  99 + return -1;
  100 + if(!b.nbbm)
  101 + return 1;
  102 + return a.nbbm.localeCompare(b.nbbm);
  103 + });
  104 + var htmlStr = template('sch_car_info_all-temp', {list: rs.list});
  105 +
  106 + $('table>tbody', modal).html(htmlStr);
  107 +
  108 + cb && cb();
  109 + });
  110 + };
  111 +
  112 + $(modal).on('click', 'a.exec_sch_link', function () {
  113 + var id = $(this).data('id');
  114 + if(!id)
  115 + return;
  116 + gb_schedule_table.scroToDl({id: id, xlBm:lineCode});
  117 + });
  118 + })();
  119 + </script>
  120 +</div>
0 \ No newline at end of file 121 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/lj_zrw.html
@@ -110,7 +110,7 @@ @@ -110,7 +110,7 @@
110 {{/if}} 110 {{/if}}
111 111
112 {{if sch.cTasks.length > 0}} 112 {{if sch.cTasks.length > 0}}
113 - <span class="uk-badge uk-badge-notification">{{sch.cTasks.length}}</span> 113 + <span class="uk-badge uk-badge-notification {{if sch.c_t_mileage_status==-1}}c_task_mileage_error{{/if}}">{{sch.cTasks.length}}</span>
114 {{/if}} 114 {{/if}}
115 </dd> 115 </dd>
116 <dd>{{sch.zdsj}}</dd> 116 <dd>{{sch.zdsj}}</dd>
@@ -274,7 +274,7 @@ @@ -274,7 +274,7 @@
274 274
275 //检查子任务营运里程 275 //检查子任务营运里程
276 $('#childTaskTitle .child-task-status', modal).remove(); 276 $('#childTaskTitle .child-task-status', modal).remove();
277 - var i = 0; 277 + //var i = 0;
278 if (sch.cTasks.length == 0) 278 if (sch.cTasks.length == 0)
279 return; 279 return;
280 var sum = 0, calcs = ' '; 280 var sum = 0, calcs = ' ';
@@ -282,7 +282,7 @@ @@ -282,7 +282,7 @@
282 if (this.mileageType == 'service') { 282 if (this.mileageType == 'service') {
283 sum = gb_common.accAdd(sum, this.mileage); 283 sum = gb_common.accAdd(sum, this.mileage);
284 calcs += (' + ' + this.mileage); 284 calcs += (' + ' + this.mileage);
285 - i++; 285 + //i++;
286 } 286 }
287 }); 287 });
288 //公里与主任务不符合 288 //公里与主任务不符合
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/edit.html
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 </div> 9 </div>
10 10
11 <div class="uk-modal-footer uk-text-right" style="margin-top: 5px;"> 11 <div class="uk-modal-footer uk-text-right" style="margin-top: 5px;">
  12 + <a class="delete_link" style="vertical-align: bottom;display: inline-block;color: red;font-size: 13px;margin-right: 10px;">删除子任务</a>
12 <button type="button" class="uk-button uk-modal-close">取消</button> 13 <button type="button" class="uk-button uk-modal-close">取消</button>
13 <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button> 14 <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button>
14 </div> 15 </div>
@@ -352,6 +353,28 @@ @@ -352,6 +353,28 @@
352 return; 353 return;
353 remInput.val(remInput.val() + reason + ','); 354 remInput.val(remInput.val() + reason + ',');
354 } 355 }
  356 +
  357 +
  358 + $('.delete_link', modal).on('click', function () {
  359 + var id = cTask.id;
  360 + if(!id){
  361 + notify_err('无法获取标识键!');
  362 + return;
  363 + }
  364 +
  365 + var str = '<h3>确定要删除这条子任务?</h3>';
  366 + alt_confirm(str, function () {
  367 + gb_common.$del('/childTask/' + id, function (rs) {
  368 + gb_schedule_table.updateSchedule(rs.t);
  369 +
  370 + UIkit.modal(modal).hide();
  371 + $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch});
  372 +
  373 + //更新路牌公里统计面板
  374 + gb_schedule_table.showLpMileageTipBySch(rs.t);
  375 + });
  376 + }, '确定删除');
  377 + });
355 })(); 378 })();
356 </script> 379 </script>
357 </div> 380 </div>
358 \ No newline at end of file 381 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/line_schedule/sch_table.html
@@ -82,7 +82,7 @@ @@ -82,7 +82,7 @@
82 <span class="uk-badge uk-badge-danger">临加</span> 82 <span class="uk-badge uk-badge-danger">临加</span>
83 {{/if}} 83 {{/if}}
84 {{if sch.cTasks.length > 0}} 84 {{if sch.cTasks.length > 0}}
85 - <span class="uk-badge uk-badge-notification c_task">{{sch.cTasks.length}}</span> 85 + <span class="uk-badge uk-badge-notification c_task {{if sch.c_t_mileage_status==-1}}c_task_mileage_error{{/if}}">{{sch.cTasks.length}}</span>
86 {{/if}} 86 {{/if}}
87 </dd> 87 </dd>
88 <dd data-sort-val={{sch.dfsjT}} dbclick dbclick-type="dfsj" dbclick-val="{{sch.dfsj}}"> 88 <dd data-sort-val={{sch.dfsjT}} dbclick dbclick-type="dfsj" dbclick-val="{{sch.dfsj}}">
@@ -136,7 +136,7 @@ @@ -136,7 +136,7 @@
136 <span class="uk-badge uk-badge-danger">临加</span> 136 <span class="uk-badge uk-badge-danger">临加</span>
137 {{/if}} 137 {{/if}}
138 {{if cTasks.length > 0}} 138 {{if cTasks.length > 0}}
139 - <span class="uk-badge uk-badge-notification c_task">{{cTasks.length}}</span> 139 + <span class="uk-badge uk-badge-notification c_task {{if c_t_mileage_status==-1}}c_task_mileage_error{{/if}}">{{cTasks.length}}</span>
140 {{/if}} 140 {{/if}}
141 </dd> 141 </dd>
142 </script> 142 </script>
src/main/resources/static/real_control_v2/js/data/data_gps.js
@@ -14,9 +14,6 @@ var gb_data_gps = (function () { @@ -14,9 +14,6 @@ var gb_data_gps = (function () {
14 refreshEventCallbacks.push(cb); 14 refreshEventCallbacks.push(cb);
15 }; 15 };
16 16
17 - //超速数据回调  
18 - //var overspeedEventCallbacks = [];  
19 -  
20 var refresh = function (cb) { 17 var refresh = function (cb) {
21 $.ajax({ 18 $.ajax({
22 url: '/gps/real/line', 19 url: '/gps/real/line',
@@ -25,8 +22,6 @@ var gb_data_gps = (function () { @@ -25,8 +22,6 @@ var gb_data_gps = (function () {
25 success: function (rs) { 22 success: function (rs) {
26 //用定时的gps来检测session断开 23 //用定时的gps来检测session断开
27 if(rs.status && rs.status==407){ 24 if(rs.status && rs.status==407){
28 - //解除退出页面的提示框  
29 - window.removeEventListener("beforeunload", gb_beforeunload_fun);  
30 location.href = '/login.html'; 25 location.href = '/login.html';
31 return; 26 return;
32 } 27 }
src/main/resources/static/real_control_v2/js/line_schedule/badge_tooltip.js
@@ -18,7 +18,6 @@ var gb_schedule_badge_tootip = (function () { @@ -18,7 +18,6 @@ var gb_schedule_badge_tootip = (function () {
18 }, 18 },
19 events: { 19 events: {
20 hidden: function(event, api) { 20 hidden: function(event, api) {
21 - //destroy dom  
22 $(this).qtip('destroy', true); 21 $(this).qtip('destroy', true);
23 } 22 }
24 } 23 }
@@ -69,8 +68,7 @@ var gb_schedule_badge_tootip = (function () { @@ -69,8 +68,7 @@ var gb_schedule_badge_tootip = (function () {
69 return a.order_no - b.order_no; 68 return a.order_no - b.order_no;
70 }); 69 });
71 return temps['sch-table-task-tootip-temp']( 70 return temps['sch-table-task-tootip-temp'](
72 - {tasks: array, sch_id: sch.id, lineCode: sch.xlBm, jhlc: sch.jhlc,  
73 - serviceCount: serviceCount, emptyCount: emptyCount}); 71 + {tasks: array, sch: sch, serviceCount: serviceCount, emptyCount: emptyCount});
74 } 72 }
75 }, 73 },
76 position: _opts.position, 74 position: _opts.position,
@@ -100,11 +98,25 @@ var gb_schedule_badge_tootip = (function () { @@ -100,11 +98,25 @@ var gb_schedule_badge_tootip = (function () {
100 } 98 }
101 } 99 }
102 100
  101 + $('#edit-sub-task-main-modal').remove();
103 //打开子任务修改modal 102 //打开子任务修改modal
104 open_modal('/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/edit.html', { 103 open_modal('/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/edit.html', {
105 sch: sch, 104 sch: sch,
106 cTask: cTask 105 cTask: cTask
107 - }, {center: false, bgclose: false, modal: false}); 106 + }, {center: false, bgclose: false});
  107 + });
  108 +
  109 + /**
  110 + * 新增子任务
  111 + */
  112 + $(document).on('click', 'i.badge_tip_add_icon', function () {
  113 + var schId = $(this).data('schid'),
  114 + lineCode = $(this).data('line');
  115 +
  116 + var sch = gb_schedule_table.findScheduleByLine(lineCode)[schId];
  117 + open_modal('/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/main.html', {
  118 + sch: sch
  119 + }, {center: false, bgclose: false});
108 }); 120 });
109 121
110 //区间 tootip 122 //区间 tootip
src/main/resources/static/real_control_v2/js/line_schedule/dbclick.js
@@ -93,8 +93,18 @@ var gb_schedule_table_dbclick = (function() { @@ -93,8 +93,18 @@ var gb_schedule_table_dbclick = (function() {
93 }); 93 });
94 }; 94 };
95 95
  96 + var carCellClick = function (elem) {
  97 + elem.dblclick(function () {
  98 + var nbbm = $(this).data('nbbm');
  99 + var lineCode = $('.north-tabs>ul>li.tab-line.uk-active').data('code');
  100 +
  101 + open_modal('/real_control_v2/fragments/line_schedule/car_info_all.html', {nbbm:nbbm,lineCode:lineCode});
  102 + });
  103 + };
  104 +
96 return { 105 return {
97 init: init, 106 init: init,
98 - sfsjCellClick:sfsjCellClick 107 + sfsjCellClick:sfsjCellClick,
  108 + carCellClick: carCellClick
99 }; 109 };
100 })(); 110 })();
src/main/resources/static/real_control_v2/js/line_schedule/sch_table.js
@@ -25,33 +25,6 @@ var gb_schedule_table = (function () { @@ -25,33 +25,6 @@ var gb_schedule_table = (function () {
25 return diff!=0?diff:typeOrder(s1['bcType'])-typeOrder(s2['bcType']); 25 return diff!=0?diff:typeOrder(s1['bcType'])-typeOrder(s2['bcType']);
26 }; 26 };
27 27
28 -  
29 -  
30 - /**  
31 - * 检查是否存在重复班次  
32 - * @param list  
33 - */  
34 - var isRepeatData = function (list) {  
35 - try {  
36 - var map = {}, reps = [];  
37 - for(var i = 0,sch;sch=list[i++];){  
38 - if(map[sch.id]){  
39 - reps.push(sch.clZbh);  
40 - }  
41 - map[sch.id] = sch;  
42 - }  
43 -  
44 - //通知服务端数据有异常  
45 - $.each(reps, function () {  
46 - $.post('/anomalyCheck/schRepeat', {nbbm: this});  
47 - });  
48 - }catch (e){  
49 - return list;  
50 - }  
51 -  
52 - return gb_common.get_vals(map);  
53 - };  
54 -  
55 var show = function (cb) { 28 var show = function (cb) {
56 //从服务器获取班次数据 29 //从服务器获取班次数据
57 $.get('/realSchedule/lines', { 30 $.get('/realSchedule/lines', {
@@ -59,8 +32,6 @@ var gb_schedule_table = (function () { @@ -59,8 +32,6 @@ var gb_schedule_table = (function () {
59 }, function (rs) { 32 }, function (rs) {
60 for (var lineCode in rs) { 33 for (var lineCode in rs) {
61 line2Schedule[lineCode] = {}; 34 line2Schedule[lineCode] = {};
62 - //------是否有重复班次 #临时代码,为服务端提供诊断信息已解决这个问题  
63 - rs[lineCode] = isRepeatData(rs[lineCode]);  
64 35
65 //排序 36 //排序
66 rs[lineCode].sort(schedule_sort); 37 rs[lineCode].sort(schedule_sort);
@@ -68,6 +39,8 @@ var gb_schedule_table = (function () { @@ -68,6 +39,8 @@ var gb_schedule_table = (function () {
68 $.each(rs[lineCode], function () { 39 $.each(rs[lineCode], function () {
69 calc_sch_real_shift(this); 40 calc_sch_real_shift(this);
70 line2Schedule[lineCode][this.id] = this; 41 line2Schedule[lineCode][this.id] = this;
  42 + //子任务公里是否与计划平
  43 + this.c_t_mileage_status = calcCTaskMileageStatus(this);
71 }); 44 });
72 //计算应发未发 45 //计算应发未发
73 calc_yfwf_num(lineCode); 46 calc_yfwf_num(lineCode);
@@ -82,7 +55,6 @@ var gb_schedule_table = (function () { @@ -82,7 +55,6 @@ var gb_schedule_table = (function () {
82 })); 55 }));
83 }); 56 });
84 57
85 -  
86 var ep = EventProxy.create("data", "temp", function (data, temp) { 58 var ep = EventProxy.create("data", "temp", function (data, temp) {
87 temps = temp; 59 temps = temp;
88 var lineCode, dirData, htmlStr; 60 var lineCode, dirData, htmlStr;
@@ -120,11 +92,63 @@ var gb_schedule_table = (function () { @@ -120,11 +92,63 @@ var gb_schedule_table = (function () {
120 gb_schedule_table_dbclick.init(); 92 gb_schedule_table_dbclick.init();
121 //双击实发 93 //双击实发
122 gb_schedule_table_dbclick.sfsjCellClick($('dd.fcsjActualCell')); 94 gb_schedule_table_dbclick.sfsjCellClick($('dd.fcsjActualCell'));
  95 + //双击车辆
  96 + gb_schedule_table_dbclick.carCellClick($('.ct_table_body dd[data-nbbm]'));
123 //搜索框初始化 97 //搜索框初始化
124 gb_sch_search.init(); 98 gb_sch_search.init();
  99 +
  100 + //监听gps车辆信息
  101 + gb_data_gps.registerCallback(renderCarRemark);
125 cb && cb(); 102 cb && cb();
126 }); 103 });
127 }; 104 };
  105 +
  106 + var renderCarRemark = function () {
  107 + try{
  108 + var $activeTab = $('.north-tabs>ul>li.tab-line.uk-active');//.data('code');
  109 + if($activeTab.length==0)
  110 + return;
  111 + var lineCode = $activeTab.data('code');
  112 + var array = gb_common.get_vals(line2Schedule[lineCode]);
  113 + var nbbms = {};
  114 + for(var i=0,sch;sch=array[i++];){
  115 + nbbms[sch.clZbh]=1;
  116 + }
  117 +
  118 + var $activeWrap = $('#main-tab-content .line_schedule.uk-active .schedule-wrap .schedule-body');
  119 + var gps, e;
  120 + for(var nbbm in nbbms){
  121 + gps = gb_data_gps.findGpsByNbbm(nbbm);
  122 + e = $('.ct_table_body dl>dd[data-nbbm='+nbbm+']', $activeWrap);
  123 + $('i', e).remove();
  124 +
  125 + if(gps && gps['planCode']!=lineCode && gps.remark)
  126 + $(e).append('<i class="uk-icon-exclamation-circle" data-uk-tooltip title="'+gps.remark+'"></i>');
  127 + }
  128 + }catch (e){
  129 + console.log(e);
  130 + }
  131 + };
  132 +
  133 + /**
  134 + * 计算子任务公里是否和计划平
  135 + * @param sch
  136 + */
  137 + var calcCTaskMileageStatus = function (sch) {
  138 + if(!sch.cTasks || sch.cTasks.length==0)
  139 + return 0;
  140 + var sum = 0;
  141 + $.each(sch.cTasks, function () {
  142 + if (this.mileageType == 'service') {
  143 + sum = gb_common.accAdd(sum, this.mileage);
  144 + }
  145 + });
  146 +
  147 + if (sum != sch.jhlcOrig) {
  148 + return -1;
  149 + }
  150 + return 0;
  151 + };
128 152
129 153
130 //重置序号 154 //重置序号
@@ -138,7 +162,7 @@ var gb_schedule_table = (function () { @@ -138,7 +162,7 @@ var gb_schedule_table = (function () {
138 var calc_sch_real_shift = function (sch) { 162 var calc_sch_real_shift = function (sch) {
139 if (sch['fcsjActualTime']){ 163 if (sch['fcsjActualTime']){
140 var diff = sch['fcsjActualTime'] - sch['dfsjT'], fcsj_diff; 164 var diff = sch['fcsjActualTime'] - sch['dfsjT'], fcsj_diff;
141 - fcsj_diff = parseInt(diff / 60000); 165 + fcsj_diff = parseInt(diff / 60000, 10);
142 if(diff % 60000 != 0){ 166 if(diff % 60000 != 0){
143 /*if(fcsj_diff > 0) 167 /*if(fcsj_diff > 0)
144 fcsj_diff ++; 168 fcsj_diff ++;
@@ -284,10 +308,10 @@ var gb_schedule_table = (function () { @@ -284,10 +308,10 @@ var gb_schedule_table = (function () {
284 //var tMaps = {}; 308 //var tMaps = {};
285 $.each(schArr, function () { 309 $.each(schArr, function () {
286 try { 310 try {
  311 + //子任务公里是否与计划平
  312 + this.c_t_mileage_status = calcCTaskMileageStatus(this);
287 line2Schedule[this.xlBm][this.id] = this; 313 line2Schedule[this.xlBm][this.id] = this;
288 updateDom(this); 314 updateDom(this);
289 - //线路_车辆 过滤重复数据  
290 - //tMaps[this.xlBm + '_' + this.clZbh] = 1;  
291 }catch(e){} 315 }catch(e){}
292 }); 316 });
293 317
@@ -321,6 +345,8 @@ var gb_schedule_table = (function () { @@ -321,6 +345,8 @@ var gb_schedule_table = (function () {
321 345
322 //车辆自编号 346 //车辆自编号
323 $(dds[2]).replaceWith(temps['line-schedule-nbbm-temp'](sch)); 347 $(dds[2]).replaceWith(temps['line-schedule-nbbm-temp'](sch));
  348 + //车辆双击
  349 + gb_schedule_table_dbclick.carCellClick($(dds[2]));
324 $(dds[3]).text(sch.qdzArrDatejh ? sch.qdzArrDatejh : ''); 350 $(dds[3]).text(sch.qdzArrDatejh ? sch.qdzArrDatejh : '');
325 $(dds[4]).text(sch.qdzArrDatesj ? sch.qdzArrDatesj : ''); 351 $(dds[4]).text(sch.qdzArrDatesj ? sch.qdzArrDatesj : '');
326 352
@@ -346,6 +372,8 @@ var gb_schedule_table = (function () { @@ -346,6 +372,8 @@ var gb_schedule_table = (function () {
346 //班次是车辆的最后一班 372 //班次是车辆的最后一班
347 if (dl.hasClass('dl-last-sch')) 373 if (dl.hasClass('dl-last-sch'))
348 markerLastSch([sch]); 374 markerLastSch([sch]);
  375 +
  376 + renderCarRemark();
349 }; 377 };
350 378
351 //单击实发单元格显示详细信息 379 //单击实发单元格显示详细信息
@@ -785,6 +813,7 @@ var gb_schedule_table = (function () { @@ -785,6 +813,7 @@ var gb_schedule_table = (function () {
785 refreshAll: refreshAll, 813 refreshAll: refreshAll,
786 getNextNormalSch: getNextNormalSch, 814 getNextNormalSch: getNextNormalSch,
787 findNbbmByLineCode:findNbbmByLineCode, 815 findNbbmByLineCode:findNbbmByLineCode,
788 - showLpMileageTipBySch: showLpMileageTipBySch 816 + showLpMileageTipBySch: showLpMileageTipBySch,
  817 + renderCarRemark: renderCarRemark
789 }; 818 };
790 })(); 819 })();
src/main/resources/static/real_control_v2/js/north/tabs.js
@@ -61,6 +61,7 @@ var gb_tabs = (function() { @@ -61,6 +61,7 @@ var gb_tabs = (function() {
61 } 61 }
62 else{ 62 else{
63 gb_svg_chart.refreshByVisible();//刷新模拟图 63 gb_svg_chart.refreshByVisible();//刷新模拟图
  64 + gb_schedule_table.renderCarRemark();
64 } 65 }
65 }); 66 });
66 67
src/main/resources/static/real_control_v2/js/websocket/sch_websocket.js
@@ -260,7 +260,7 @@ var gb_sch_websocket = (function () { @@ -260,7 +260,7 @@ var gb_sch_websocket = (function () {
260 }); 260 });
261 261
262 //80不同意 262 //80不同意
263 - $(document).on('click', '.sys-mailbox .sys-note-80 .uk-button.reject', function () { 263 + $(document).on('click', '.sys-mailbox .sys-note-80 .uk-button.reject', function (e) {
264 e.stopPropagation(); 264 e.stopPropagation();
265 $(this).attr('disabled', 'disabled'); 265 $(this).attr('disabled', 'disabled');
266 var panel = $(this).parents('.sys-note-80') 266 var panel = $(this).parents('.sys-note-80')