Commit 2365caa3dcf2085325146f2d5c9bd5ce41a4cc49
1 parent
df6bf5a4
update
Showing
13 changed files
with
194 additions
and
82 deletions
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
| @@ -74,8 +74,8 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, | @@ -74,8 +74,8 @@ public class ScheduleRealInfoController extends BaseController<ScheduleRealInfo, | ||
| 74 | @RequestMapping(value = "/destroy", method = RequestMethod.POST) | 74 | @RequestMapping(value = "/destroy", method = RequestMethod.POST) |
| 75 | public Map<String, Object> destroy(@RequestParam String idsStr | 75 | public Map<String, Object> destroy(@RequestParam String idsStr |
| 76 | /*, @RequestParam(defaultValue = "-1") int spaceAdjust*/, | 76 | /*, @RequestParam(defaultValue = "-1") int spaceAdjust*/, |
| 77 | - @RequestParam String remarks/*, @RequestParam String reason, @RequestParam(defaultValue = "0") int spaceNum*/) { | ||
| 78 | - return scheduleRealInfoService.destroy(idsStr/*, spaceAdjust*/, remarks/*, reason, spaceNum*/); | 77 | + @RequestParam String remarks, @RequestParam String adjustExps/*, @RequestParam(defaultValue = "0") int spaceNum*/) { |
| 78 | + return scheduleRealInfoService.destroy(idsStr/*, spaceAdjust*/, remarks, adjustExps/*, spaceNum*/); | ||
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | /** | 81 | /** |
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
| @@ -128,6 +128,8 @@ public class ScheduleRealInfo { | @@ -128,6 +128,8 @@ public class ScheduleRealInfo { | ||
| 128 | 128 | ||
| 129 | /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */ | 129 | /**班次状态 0 未执行 1 正在执行 2 已执行 -1 已烂班 */ |
| 130 | private int status; | 130 | private int status; |
| 131 | + | ||
| 132 | + private String adjustExps; | ||
| 131 | 133 | ||
| 132 | /** 是否是临加班次 */ | 134 | /** 是否是临加班次 */ |
| 133 | private boolean sflj; | 135 | private boolean sflj; |
| @@ -817,4 +819,12 @@ public class ScheduleRealInfo { | @@ -817,4 +819,12 @@ public class ScheduleRealInfo { | ||
| 817 | public void setLate(boolean late) { | 819 | public void setLate(boolean late) { |
| 818 | this.late = late; | 820 | this.late = late; |
| 819 | } | 821 | } |
| 822 | + | ||
| 823 | + public String getAdjustExps() { | ||
| 824 | + return adjustExps; | ||
| 825 | + } | ||
| 826 | + | ||
| 827 | + public void setAdjustExps(String adjustExps) { | ||
| 828 | + this.adjustExps = adjustExps; | ||
| 829 | + } | ||
| 820 | } | 830 | } |
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
| @@ -17,7 +17,7 @@ public interface ScheduleRealInfoService extends BaseService<ScheduleRealInfo, L | @@ -17,7 +17,7 @@ public interface ScheduleRealInfoService extends BaseService<ScheduleRealInfo, L | ||
| 17 | 17 | ||
| 18 | Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj/*,String nbbm,String jsy,String spy*/); | 18 | Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj/*,String nbbm,String jsy,String spy*/); |
| 19 | 19 | ||
| 20 | - Map<String, Object> destroy(String idsStr/*, int spaceAdjust*/, String remarks/*, String reason, int spaceNum*/); | 20 | + Map<String, Object> destroy(String idsStr/*, int spaceAdjust*/, String remarks, String reason/*, int spaceNum*/); |
| 21 | 21 | ||
| 22 | List<Map<String, String>> findDriverByLine(String lineCode); | 22 | List<Map<String, String>> findDriverByLine(String lineCode); |
| 23 | 23 |
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
| @@ -154,7 +154,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -154,7 +154,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 154 | } | 154 | } |
| 155 | 155 | ||
| 156 | @Override | 156 | @Override |
| 157 | - public Map<String, Object> destroy(String idsStr, /*int spaceAdjust, */String remarks/*, String reason, int spaceNum*/) { | 157 | + public Map<String, Object> destroy(String idsStr, /*int spaceAdjust, */String remarks, String reason/*, int spaceNum*/) { |
| 158 | 158 | ||
| 159 | Map<String, Object> map = new HashMap<>(); | 159 | Map<String, Object> map = new HashMap<>(); |
| 160 | List<ScheduleRealInfo> rsList = new ArrayList<>(); | 160 | List<ScheduleRealInfo> rsList = new ArrayList<>(); |
| @@ -170,7 +170,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -170,7 +170,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 170 | map.put("msg", "不必要的重复烂班!"); | 170 | map.put("msg", "不必要的重复烂班!"); |
| 171 | return map; | 171 | return map; |
| 172 | } | 172 | } |
| 173 | - | 173 | + |
| 174 | + schedule.setAdjustExps(reason); | ||
| 174 | schedule.destroy(); | 175 | schedule.destroy(); |
| 175 | schedule.addRemarks(remarks); | 176 | schedule.addRemarks(remarks); |
| 176 | 177 |
src/main/resources/static/pages/control/lineallot/allot.html
| @@ -405,7 +405,7 @@ $(function(){ | @@ -405,7 +405,7 @@ $(function(){ | ||
| 405 | ,item = lsData[i]; | 405 | ,item = lsData[i]; |
| 406 | 406 | ||
| 407 | //$.get('/realMap/findRouteByLine', {lineCode: item.lineCode}, function(rs){ | 407 | //$.get('/realMap/findRouteByLine', {lineCode: item.lineCode}, function(rs){ |
| 408 | - $.get('/realSchedule/findRouteByLine', {lineCode: item.lineCode}, function(rs){ | 408 | + $.get('/realSchedule/findRouteByLine', {lineCode: item.lineCode}, function(rs){ |
| 409 | if(rs && rs.lineId){ | 409 | if(rs && rs.lineId){ |
| 410 | cacheData[item.lineCode] = rs; | 410 | cacheData[item.lineCode] = rs; |
| 411 | i ++; | 411 | i ++; |
src/main/resources/static/real_control_v2/fragments/geo/calc_station_space.html
| @@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
| 4 | <div style="text-align: center;padding-top: 30px;" class="calcBeforePanel"> | 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> | 5 | <p style="margin: 9px 0 9px 0;">当前站点间里程数据取自 <a target="_blank" id="stationRouteLink">基础信息->线路信息->站点详细</a> |
| 6 | 你可以手动编辑。</p> | 6 | 你可以手动编辑。</p> |
| 7 | - <p style="margin: 9px 0 9px 0;">此外,我们提供另一种选择,根据路段和站点空间坐标计算站间距。计算后的数据将另存一份副本,不影响原数据。 | 7 | + <p style="margin: 9px 0 9px 0;">此外,我们提供另一种选择,根据路段和站点空间坐标计算站间距。计算后的数据将存储在本地。 |
| 8 | </p> | 8 | </p> |
| 9 | <p style="margin: 0px 0 9px 0;"> | 9 | <p style="margin: 0px 0 9px 0;"> |
| 10 | <span style="color: grey;font-size: 12px;">该操作会借用本地计算能力进行,如果你同意,请点击下方按钮!</span> | 10 | <span style="color: grey;font-size: 12px;">该操作会借用本地计算能力进行,如果你同意,请点击下方按钮!</span> |
| @@ -64,25 +64,23 @@ | @@ -64,25 +64,23 @@ | ||
| 64 | stations[1].sort(stationArrSort); | 64 | stations[1].sort(stationArrSort); |
| 65 | 65 | ||
| 66 | setCalcText('拼接路段,计算重叠区域'); | 66 | setCalcText('拼接路段,计算重叠区域'); |
| 67 | - console.log('路段', sections); | ||
| 68 | - console.log('站点', stations); | ||
| 69 | - | ||
| 70 | - //完整的线路路段(去掉重叠区域) | ||
| 71 | var fullSections = [ | 67 | var fullSections = [ |
| 72 | connectSections(sections[0]), | 68 | connectSections(sections[0]), |
| 73 | connectSections(sections[1]) | 69 | connectSections(sections[1]) |
| 74 | ]; | 70 | ]; |
| 75 | 71 | ||
| 76 | - console.log('fullSections', fullSections); | ||
| 77 | - setCalcText('计算上行站距'); | ||
| 78 | - calcStationSpace(stations[0], fullSections[0]); | ||
| 79 | - /*$.each(stations[0], function (i) { | ||
| 80 | - if(i==0) | ||
| 81 | - return true; | 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 | 82 | ||
| 83 | - calcStationSpace(fullSections[0], this); | ||
| 84 | - });*/ | ||
| 85 | - //fullSections[0] | 83 | + window.localStorage.setItem('control_route_distance_'+sch.xlBm, JSON.stringify(locData)); |
| 86 | } | 84 | } |
| 87 | 85 | ||
| 88 | function sectionArrSort(s1, s2) { | 86 | function sectionArrSort(s1, s2) { |
| @@ -110,20 +108,20 @@ | @@ -110,20 +108,20 @@ | ||
| 110 | } | 108 | } |
| 111 | return coords; | 109 | return coords; |
| 112 | } | 110 | } |
| 113 | - | 111 | + |
| 114 | function connectCoords(all, subArr) { | 112 | function connectCoords(all, subArr) { |
| 115 | 113 | ||
| 116 | - var point,ts,len=all.length, inLine, sIndex=0; | ||
| 117 | - if(len > 0){ | 114 | + var point, ts, len = all.length, inLine, sIndex = 0; |
| 115 | + if (len > 0) { | ||
| 118 | $.each(subArr, function (i, p) { | 116 | $.each(subArr, function (i, p) { |
| 119 | ts = p.split(' '); | 117 | ts = p.split(' '); |
| 120 | - point={latitude: parseFloat(ts[1]), longitude: parseFloat(ts[0])}; | 118 | + point = {latitude: parseFloat(ts[1]), longitude: parseFloat(ts[0])}; |
| 121 | //找到起始点 | 119 | //找到起始点 |
| 122 | - sIndex=0; | ||
| 123 | - for(var j = 1; j < len; j++){ | ||
| 124 | - inLine=geolib.isPointInLine(point, all[j - 1], all[j]); | 120 | + sIndex = 0; |
| 121 | + for (var j = 1; j < len; j++) { | ||
| 122 | + inLine = geolib.isPointInLine(point, all[j - 1], all[j]); | ||
| 125 | 123 | ||
| 126 | - if(inLine) | 124 | + if (inLine) |
| 127 | break; | 125 | break; |
| 128 | else | 126 | else |
| 129 | sIndex = i; | 127 | sIndex = i; |
| @@ -132,7 +130,7 @@ | @@ -132,7 +130,7 @@ | ||
| 132 | } | 130 | } |
| 133 | 131 | ||
| 134 | //拼接 | 132 | //拼接 |
| 135 | - for(var i=sIndex; i<subArr.length; i++){ | 133 | + for (var i = sIndex; i < subArr.length; i++) { |
| 136 | ts = subArr[i].split(' '); | 134 | ts = subArr[i].split(' '); |
| 137 | all.push({ | 135 | all.push({ |
| 138 | latitude: parseFloat(ts[1]), longitude: parseFloat(ts[0]) | 136 | latitude: parseFloat(ts[1]), longitude: parseFloat(ts[0]) |
| @@ -143,55 +141,82 @@ | @@ -143,55 +141,82 @@ | ||
| 143 | //计算站点间距 | 141 | //计算站点间距 |
| 144 | function calcStationSpace(stations, coords) { | 142 | function calcStationSpace(stations, coords) { |
| 145 | 143 | ||
| 144 | + var nearArray = []; | ||
| 145 | + for (var i = 1; i < stations.length; i++) { | ||
| 146 | + | ||
| 147 | + //点到线的最短距离 并计算交点坐标 | ||
| 148 | + var rs = calcPointToLineNearPoint({ | ||
| 149 | + latitude: stations[i].G_LATY, | ||
| 150 | + longitude: stations[i].G_LONX | ||
| 151 | + }, coords); | ||
| 152 | + rs.station = stations[i]; | ||
| 146 | 153 | ||
| 147 | - var point,pSection; | ||
| 148 | - for(var i=1; i<stations.length; i++){ | 154 | + //将交点插入线路中 |
| 155 | + coords.splice(rs.index, 0, rs.intersection); | ||
| 149 | 156 | ||
| 150 | - point = {latitude: stations[i].G_LATY, longitude: stations[i].G_LONX}; | ||
| 151 | - //最近的路段点 | ||
| 152 | - //near=calcPointToArrayNear(point, coords); | ||
| 153 | - //计算前后点位,得到站点在路段中的位置 | ||
| 154 | - //console.log('站点' + i + '最近索引', near, stations[i]); | ||
| 155 | - //pSection = calcPointInSection(point, coords); | ||
| 156 | - //console.log('站点' + i + '包含在路段'+pSection, stations[i]); | 157 | + nearArray.push(rs); |
| 158 | + //console.log('站点' + i + '计算结果', rs.intersection, rs); | ||
| 157 | } | 159 | } |
| 158 | - } | ||
| 159 | 160 | ||
| 160 | -/* //点在路段上, 返回路段 | ||
| 161 | - function calcPointInSection(point, array) { | ||
| 162 | - /!*$.each(array, function (i) { | ||
| 163 | - | ||
| 164 | - });*!/ | ||
| 165 | - var index=-1; | ||
| 166 | - for(var i=1; i<array.length; i++){ | ||
| 167 | - console.log(point, array[i - 1], array[i], geolib.getDistanceSimple(point, array[i - 1])); | ||
| 168 | - if(geolib.isPointInLine(point, array[i-1], array[i])){ | ||
| 169 | - index=i; | ||
| 170 | - break; | 161 | + //根据交点截断line,并计算距离 |
| 162 | + var s = 0, e, distance; | ||
| 163 | + $.each(nearArray, function (i) { | ||
| 164 | + e = this.index; | ||
| 165 | + distance = 0; | ||
| 166 | + for (; s < e; s++) { | ||
| 167 | + distance += geolib.getDistance(coords[s], coords[s + 1]); | ||
| 171 | } | 168 | } |
| 172 | - } | ||
| 173 | - return index; | ||
| 174 | - }*/ | ||
| 175 | - | ||
| 176 | - //计算点 与 点数组中最近的索引 | ||
| 177 | - /*function calcPointToArrayNear(point, array) { | ||
| 178 | - //var rs, distance, temp; | ||
| 179 | - var distances=[]; | ||
| 180 | - $.each(array, function (i) { | ||
| 181 | - distances.push({ | ||
| 182 | - index: i, | ||
| 183 | - d: geolib.getDistanceSimple(this, point) | ||
| 184 | - }); | 169 | + |
| 170 | + this.toDistance = distance; | ||
| 171 | + s = e; | ||
| 185 | }); | 172 | }); |
| 173 | + return nearArray; | ||
| 174 | + } | ||
| 175 | + | ||
| 176 | + function calcPointToLineNearPoint(point, coords) { | ||
| 177 | + var minRs, rs; | ||
| 178 | + for (var i = 1; i < coords.length; i++) { | ||
| 186 | 179 | ||
| 187 | - var rs=distances[0]; | ||
| 188 | - for(var i=1;i<distances.length;i++){ | ||
| 189 | - if(rs.d > distances[i].d) | ||
| 190 | - rs=distances[i]; | 180 | + var start = coords[i - 1], end = coords[i]; |
| 181 | + var d1 = geolib.getDistance(start, point, 1, 3); | ||
| 182 | + var d2 = geolib.getDistance(point, end, 1, 3); | ||
| 183 | + var d3 = geolib.getDistance(start, end, 1, 3); | ||
| 184 | + | ||
| 185 | + var alpha = Math.acos((d1 * d1 + d3 * d3 - d2 * d2) / (2 * d1 * d3)); | ||
| 186 | + var beta = Math.acos((d2 * d2 + d3 * d3 - d1 * d1) / (2 * d2 * d3)); | ||
| 187 | + | ||
| 188 | + if (d3 < 0.5 || isNaN(alpha) || isNaN(beta)) | ||
| 189 | + continue; | ||
| 190 | + | ||
| 191 | + rs = {index: i}; | ||
| 192 | + if (alpha > Math.PI / 2) { | ||
| 193 | + rs.distance = d1; | ||
| 194 | + rs.intersection = start; | ||
| 195 | + } | ||
| 196 | + else if (beta > Math.PI / 2) { | ||
| 197 | + rs.distance = d2; | ||
| 198 | + rs.intersection = end; | ||
| 199 | + } | ||
| 200 | + else { | ||
| 201 | + rs.distance = Math.sin(alpha) * d1; | ||
| 202 | + rs.intersection = perpendularPoint(start, end, point); | ||
| 203 | + } | ||
| 204 | + | ||
| 205 | + if (!minRs || minRs.distance > rs.distance) | ||
| 206 | + minRs = rs | ||
| 191 | } | 207 | } |
| 192 | 208 | ||
| 193 | - return rs; | ||
| 194 | - }*/ | 209 | + return minRs; |
| 210 | + } | ||
| 211 | + | ||
| 212 | + //获取点 到 线的垂直交点 | ||
| 213 | + function perpendularPoint(lp1, lp2, p) { | ||
| 214 | + var a = lp1.latitude - lp2.latitude, b = lp2.longitude - lp1.longitude, c = lp1.longitude * lp2.latitude - lp2.longitude * lp1.latitude; | ||
| 215 | + var lon = (Math.pow(b, 2) * p.longitude - a * b * p.latitude - a * c) / (Math.pow(a, 2) + Math.pow(b, 2)); | ||
| 216 | + var lat = (Math.pow(a, 2) * p.latitude - a * b * p.longitude - b * c) / (Math.pow(a, 2) + Math.pow(b, 2)); | ||
| 217 | + return {longitude: lon, latitude: lat}; | ||
| 218 | + } | ||
| 219 | + | ||
| 195 | })(); | 220 | })(); |
| 196 | </script> | 221 | </script> |
| 197 | </div> | 222 | </div> |
| 198 | \ No newline at end of file | 223 | \ No newline at end of file |
src/main/resources/static/real_control_v2/fragments/line_schedule/sch_table.html
| @@ -121,7 +121,7 @@ | @@ -121,7 +121,7 @@ | ||
| 121 | tl-zzzx | 121 | tl-zzzx |
| 122 | {{else if status == 0 && late}} | 122 | {{else if status == 0 && late}} |
| 123 | tl-wd | 123 | tl-wd |
| 124 | - {{/if}}"> | 124 | + {{/if}} fcsjActualCell"> |
| 125 | {{fcsjActual}}<span class="fcsj-diff">{{fcsj_diff}}</span> | 125 | {{fcsjActual}}<span class="fcsj-diff">{{fcsj_diff}}</span> |
| 126 | </dd> | 126 | </dd> |
| 127 | </script> | 127 | </script> |
| @@ -141,8 +141,8 @@ | @@ -141,8 +141,8 @@ | ||
| 141 | <li><span>实发:</span>{{fcsjActual}}</li> | 141 | <li><span>实发:</span>{{fcsjActual}}</li> |
| 142 | <li><span>计达:</span>{{zdsj}}</li> | 142 | <li><span>计达:</span>{{zdsj}}</li> |
| 143 | <li><span>实达:</span>{{zdsjActual}}</li> | 143 | <li><span>实达:</span>{{zdsjActual}}</li> |
| 144 | - <li><span>驾驶员:</span>{{jName}}</li> | ||
| 145 | - <li><span>售票员:</span>{{sName}}</li> | 144 | + <li><span>驾驶员:</span>{{jGh}}/{{jName}}</li> |
| 145 | + <li><span>售票员:</span>{{sGh}}/{{sName}}</li> | ||
| 146 | <li><span>终点站:</span>{{zdzName}}</li> | 146 | <li><span>终点站:</span>{{zdzName}}</li> |
| 147 | </ul> | 147 | </ul> |
| 148 | </script> | 148 | </script> |
src/main/resources/static/real_control_v2/js/data/data_gps.js
| @@ -15,11 +15,23 @@ var gb_data_gps = (function() { | @@ -15,11 +15,23 @@ var gb_data_gps = (function() { | ||
| 15 | }; | 15 | }; |
| 16 | 16 | ||
| 17 | var refresh = function(cb) { | 17 | var refresh = function(cb) { |
| 18 | - $.get('/gps/real/line', { | 18 | + /*$.get('/gps/real/line', { |
| 19 | lineCodes: gb_data_basic.line_idx | 19 | lineCodes: gb_data_basic.line_idx |
| 20 | }, function(rs) { | 20 | }, function(rs) { |
| 21 | refreshData(rs); | 21 | refreshData(rs); |
| 22 | cb(); | 22 | cb(); |
| 23 | + });*/ | ||
| 24 | + $.ajax({ | ||
| 25 | + url: '/gps/real/line', | ||
| 26 | + data:{lineCodes: gb_data_basic.line_idx}, | ||
| 27 | + success: function (rs) { | ||
| 28 | + refreshData(rs); | ||
| 29 | + cb(); | ||
| 30 | + }, | ||
| 31 | + error: function (xr, t) { | ||
| 32 | + notify_err('刷新GPS失败,稍后重试' + t); | ||
| 33 | + cb(); | ||
| 34 | + } | ||
| 23 | }); | 35 | }); |
| 24 | }; | 36 | }; |
| 25 | 37 |
src/main/resources/static/real_control_v2/js/line_schedule/sch_table.js
| @@ -68,11 +68,42 @@ var gb_schedule_table = (function() { | @@ -68,11 +68,42 @@ var gb_schedule_table = (function() { | ||
| 68 | fcsjActualCellQtip(); | 68 | fcsjActualCellQtip(); |
| 69 | cb && cb(); | 69 | cb && cb(); |
| 70 | }); | 70 | }); |
| 71 | - } | 71 | + }; |
| 72 | 72 | ||
| 73 | function fcsjActualCellQtip(){ | 73 | function fcsjActualCellQtip(){ |
| 74 | //单击实发单元格显示详细信息 | 74 | //单击实发单元格显示详细信息 |
| 75 | - $('dd.fcsjActualCell').qtip({ | 75 | + $(document).on('click', 'dd.fcsjActualCell', function () { |
| 76 | + var that=this; | ||
| 77 | + $(that).qtip({ | ||
| 78 | + show: true, | ||
| 79 | + 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]; | ||
| 84 | + return temps['sfsj_sch-detail-temp'](sch); | ||
| 85 | + } | ||
| 86 | + } | ||
| 87 | + ,style: { | ||
| 88 | + classes: 'qtip-dark qtip-rounded qtip-shadow' | ||
| 89 | + }, | ||
| 90 | + hide: { | ||
| 91 | + fixed: true, | ||
| 92 | + delay: 300 | ||
| 93 | + }, | ||
| 94 | + position: { | ||
| 95 | + target: that, | ||
| 96 | + my: 'center left', | ||
| 97 | + at: 'center right' | ||
| 98 | + }, | ||
| 99 | + events: { | ||
| 100 | + hidden: function (event, api) { | ||
| 101 | + $(this).qtip('destroy', true); | ||
| 102 | + } | ||
| 103 | + } | ||
| 104 | + }); | ||
| 105 | + }); | ||
| 106 | +/* $('dd.fcsjActualCell').qtip({ | ||
| 76 | show: 'click', | 107 | show: 'click', |
| 77 | content: { | 108 | content: { |
| 78 | text: function(e) { | 109 | text: function(e) { |
| @@ -92,8 +123,13 @@ var gb_schedule_table = (function() { | @@ -92,8 +123,13 @@ var gb_schedule_table = (function() { | ||
| 92 | position: { | 123 | position: { |
| 93 | my: 'center left', | 124 | my: 'center left', |
| 94 | at: 'center right' | 125 | at: 'center right' |
| 126 | + }, | ||
| 127 | + events: { | ||
| 128 | + hidden: function (event, api) { | ||
| 129 | + $(this).qtip('destroy', true); | ||
| 130 | + } | ||
| 95 | } | 131 | } |
| 96 | - }); | 132 | + });*/ |
| 97 | } | 133 | } |
| 98 | 134 | ||
| 99 | //重置序号 | 135 | //重置序号 |
src/main/resources/static/real_control_v2/js/main.js
| @@ -59,6 +59,8 @@ var gb_main_ep = new EventProxy(), | @@ -59,6 +59,8 @@ var gb_main_ep = new EventProxy(), | ||
| 59 | 59 | ||
| 60 | //嵌入地图页面 | 60 | //嵌入地图页面 |
| 61 | $('li.map-panel','#main-tab-content').load('/real_control_v2/mapmonitor/real.html'); | 61 | $('li.map-panel','#main-tab-content').load('/real_control_v2/mapmonitor/real.html'); |
| 62 | + | ||
| 63 | + showUpdateDescription(); | ||
| 62 | }); | 64 | }); |
| 63 | 65 | ||
| 64 | function g_emit(id) { | 66 | function g_emit(id) { |
| @@ -189,3 +191,27 @@ var open_modal = function(pageUrl, data, opt) { | @@ -189,3 +191,27 @@ var open_modal = function(pageUrl, data, opt) { | ||
| 189 | $(id).trigger('init', data); | 191 | $(id).trigger('init', data); |
| 190 | }); | 192 | }); |
| 191 | }; | 193 | }; |
| 194 | + | ||
| 195 | + | ||
| 196 | +function showUpdateDescription() { | ||
| 197 | + //更新说明 | ||
| 198 | + var updateDescription={ | ||
| 199 | + date: '2016-12-11', | ||
| 200 | + text: '<h5>1、电子路单单击“实发”时,tootip内的人员显示工号。</h5><h5>2、修复某些情况下,班次被操作后 点击“实发” 无法显示tootip的情况。</h5><h5>3、获取GPS数据失败时,页面会弹出提示,并等待7秒后尝试再次获取。</h5>' | ||
| 201 | + }; | ||
| 202 | + | ||
| 203 | + var storage = window.localStorage | ||
| 204 | + ,key = 'update_' + updateDescription.date; | ||
| 205 | + var text = storage.getItem(key); | ||
| 206 | + if(!text){ | ||
| 207 | + var modal = '<div class="uk-modal" id="update-description-modal">'+ | ||
| 208 | + ' <div class="uk-modal-dialog">'+ | ||
| 209 | + ' <a class="uk-modal-close uk-close"></a>'+ | ||
| 210 | + ' <div class="uk-modal-header">'+ | ||
| 211 | + ' <h2>'+updateDescription.date+' 更新说明</h2></div>'+updateDescription.text+ | ||
| 212 | + ' </div>'; | ||
| 213 | + | ||
| 214 | + show_modal('#update-description-modal', modal); | ||
| 215 | + storage.setItem(key, updateDescription.text); | ||
| 216 | + } | ||
| 217 | +} | ||
| 192 | \ No newline at end of file | 218 | \ No newline at end of file |
src/main/resources/static/real_control_v2/js/utils/svg_chart_tooltip.js
| @@ -52,15 +52,17 @@ var gb_svg_tooltip = (function () { | @@ -52,15 +52,17 @@ var gb_svg_tooltip = (function () { | ||
| 52 | //multiple gps tooltip | 52 | //multiple gps tooltip |
| 53 | $(document).on('mouseenter', 'svg .merge-item rect', function () { | 53 | $(document).on('mouseenter', 'svg .merge-item rect', function () { |
| 54 | var rect = $(this); | 54 | var rect = $(this); |
| 55 | - if (rect.attr('aria-describedby')) | ||
| 56 | - return; | 55 | + //console.log('111', rect,rect.attr('aria-describedby')); |
| 56 | + /*if (rect.attr('aria-describedby')) | ||
| 57 | + return;*/ | ||
| 57 | // var gps = gb_data_gps.findOne($(this).attr('_id').split('_')[1]); | 58 | // var gps = gb_data_gps.findOne($(this).attr('_id').split('_')[1]); |
| 59 | + | ||
| 60 | + $('.qtip-multi-gps').qtip('destroy', true); | ||
| 58 | //获取聚合的gps | 61 | //获取聚合的gps |
| 59 | var lineCode = $(this).parents('svg').data('code') | 62 | var lineCode = $(this).parents('svg').data('code') |
| 60 | , stop = $(this).parent().attr('_id').substr(7)//merger_ | 63 | , stop = $(this).parent().attr('_id').substr(7)//merger_ |
| 61 | , gpsArray = searchByStop(gb_data_gps.gpsByLineCode(lineCode), stop); | 64 | , gpsArray = searchByStop(gb_data_gps.gpsByLineCode(lineCode), stop); |
| 62 | 65 | ||
| 63 | - // console.log('stop...',stop); | ||
| 64 | $(this).qtip({ | 66 | $(this).qtip({ |
| 65 | show: { | 67 | show: { |
| 66 | ready: true, | 68 | ready: true, |
src/main/resources/static/real_control_v2/main.html
| @@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
| 9 | <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/notify.gradient.min.css" /> | 9 | <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/notify.gradient.min.css" /> |
| 10 | <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/tooltip.gradient.min.css" /> | 10 | <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/tooltip.gradient.min.css" /> |
| 11 | <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/autocomplete.gradient.min.css" /> | 11 | <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/autocomplete.gradient.min.css" /> |
| 12 | - <link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/slider.gradient.min.css" /> | 12 | + <!--<link rel="stylesheet" href="/real_control_v2/assets/plugins/uikit-2.27.1/components/slider.gradient.min.css" />--> |
| 13 | 13 | ||
| 14 | <!-- main style --> | 14 | <!-- main style --> |
| 15 | <link rel="stylesheet" href="/real_control_v2/css/main.css" /> | 15 | <link rel="stylesheet" href="/real_control_v2/css/main.css" /> |
| @@ -87,7 +87,7 @@ | @@ -87,7 +87,7 @@ | ||
| 87 | <script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/pagination.min.js"></script> | 87 | <script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/pagination.min.js"></script> |
| 88 | <script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/tooltip.min.js"></script> | 88 | <script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/tooltip.min.js"></script> |
| 89 | <script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/autocomplete.min.js"></script> | 89 | <script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/autocomplete.min.js"></script> |
| 90 | - <script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/slider.min.js"></script> | 90 | + <!--<script src="/real_control_v2/assets/plugins/uikit-2.27.1/components/slider.min.js"></script>--> |
| 91 | <!-- jquery contextMenu --> | 91 | <!-- jquery contextMenu --> |
| 92 | <script src="/real_control_v2/assets/js/jquery.contextMenu.min.js"></script> | 92 | <script src="/real_control_v2/assets/js/jquery.contextMenu.min.js"></script> |
| 93 | <script src="/real_control_v2/assets/js/jquery.ui.position.min.js"></script> | 93 | <script src="/real_control_v2/assets/js/jquery.ui.position.min.js"></script> |
src/main/resources/static/real_control_v2/mapmonitor/js/real.js
| @@ -10,7 +10,7 @@ var mapmonitor_load_ep = EventProxy.create('load_iMap', 'load_baidu', 'load_gaod | @@ -10,7 +10,7 @@ var mapmonitor_load_ep = EventProxy.create('load_iMap', 'load_baidu', 'load_gaod | ||
| 10 | .changeMap(gb_map_config.getConfig().map_type); | 10 | .changeMap(gb_map_config.getConfig().map_type); |
| 11 | 11 | ||
| 12 | //init tree | 12 | //init tree |
| 13 | - /*gb_map_gps_tree.init(function () { | 13 | + /* gb_map_gps_tree.init(function () { |
| 14 | gb_map_overlay_mge.init(); | 14 | gb_map_overlay_mge.init(); |
| 15 | gb_map_spatial_data.init(); | 15 | gb_map_spatial_data.init(); |
| 16 | });*/ | 16 | });*/ |