Commit e3b04d2fd5dbcf54a1e6609b428134e72c80db33
1 parent
e3533c18
update...
Showing
12 changed files
with
325 additions
and
52 deletions
src/main/java/com/bsth/controller/geo_data/GeoDataController.java
| @@ -46,4 +46,9 @@ public class GeoDataController { | @@ -46,4 +46,9 @@ public class GeoDataController { | ||
| 46 | ,@RequestParam String stationName,@RequestParam Float lat,@RequestParam Float lng,@RequestParam int prevRouteId){ | 46 | ,@RequestParam String stationName,@RequestParam Float lat,@RequestParam Float lng,@RequestParam int prevRouteId){ |
| 47 | return geoDataService.addNewStationRoute(lineCode, upDown, versions, stationName, lat, lng, prevRouteId); | 47 | return geoDataService.addNewStationRoute(lineCode, upDown, versions, stationName, lat, lng, prevRouteId); |
| 48 | } | 48 | } |
| 49 | + | ||
| 50 | + @RequestMapping(value = "destroyStation",method = RequestMethod.POST) | ||
| 51 | + public Map<String, Object> destroyStation(GeoStation station){ | ||
| 52 | + return geoDataService.destroyStation(station); | ||
| 53 | + } | ||
| 49 | } | 54 | } |
| 50 | \ No newline at end of file | 55 | \ No newline at end of file |
src/main/java/com/bsth/entity/geo_data/GeoStation.java
| @@ -23,7 +23,7 @@ public class GeoStation { | @@ -23,7 +23,7 @@ public class GeoStation { | ||
| 23 | 23 | ||
| 24 | private String stationMark; | 24 | private String stationMark; |
| 25 | 25 | ||
| 26 | - private Integer version; | 26 | + private Integer versions; |
| 27 | 27 | ||
| 28 | private Float gLonx; | 28 | private Float gLonx; |
| 29 | 29 | ||
| @@ -94,14 +94,6 @@ public class GeoStation { | @@ -94,14 +94,6 @@ public class GeoStation { | ||
| 94 | this.stationMark = stationMark; | 94 | this.stationMark = stationMark; |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | - public Integer getVersion() { | ||
| 98 | - return version; | ||
| 99 | - } | ||
| 100 | - | ||
| 101 | - public void setVersion(Integer version) { | ||
| 102 | - this.version = version; | ||
| 103 | - } | ||
| 104 | - | ||
| 105 | public Float getgLonx() { | 97 | public Float getgLonx() { |
| 106 | return gLonx; | 98 | return gLonx; |
| 107 | } | 99 | } |
| @@ -149,4 +141,12 @@ public class GeoStation { | @@ -149,4 +141,12 @@ public class GeoStation { | ||
| 149 | public void setBdCoords(List<String> bdCoords) { | 141 | public void setBdCoords(List<String> bdCoords) { |
| 150 | this.bdCoords = bdCoords; | 142 | this.bdCoords = bdCoords; |
| 151 | } | 143 | } |
| 144 | + | ||
| 145 | + public Integer getVersions() { | ||
| 146 | + return versions; | ||
| 147 | + } | ||
| 148 | + | ||
| 149 | + public void setVersions(Integer versions) { | ||
| 150 | + this.versions = versions; | ||
| 151 | + } | ||
| 152 | } | 152 | } |
| 153 | \ No newline at end of file | 153 | \ No newline at end of file |
src/main/java/com/bsth/service/geo_data/GeoDataService.java
| @@ -20,4 +20,6 @@ public interface GeoDataService { | @@ -20,4 +20,6 @@ public interface GeoDataService { | ||
| 20 | Map<String, Object> updateStationName(Map<String, Object> map); | 20 | Map<String, Object> updateStationName(Map<String, Object> map); |
| 21 | 21 | ||
| 22 | Map<String,Object> addNewStationRoute(String lineCode, int upDown,int versions, String stationName, Float lat, Float lng, int prevRouteId); | 22 | Map<String,Object> addNewStationRoute(String lineCode, int upDown,int versions, String stationName, Float lat, Float lng, int prevRouteId); |
| 23 | + | ||
| 24 | + Map<String,Object> destroyStation(GeoStation station); | ||
| 23 | } | 25 | } |
src/main/java/com/bsth/service/geo_data/impl/GeoDataServiceImpl.java
| @@ -183,7 +183,14 @@ public class GeoDataServiceImpl implements GeoDataService { | @@ -183,7 +183,14 @@ public class GeoDataServiceImpl implements GeoDataService { | ||
| 183 | String sql = "select * from bsth_c_ls_stationroute where line_code='"+lineCode+"' and line="+lineId+" and directions="+upDown+" and destroy=0 and versions=" + versions; | 183 | String sql = "select * from bsth_c_ls_stationroute where line_code='"+lineCode+"' and line="+lineId+" and directions="+upDown+" and destroy=0 and versions=" + versions; |
| 184 | List<SaveStationRouteDTO> routes = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(SaveStationRouteDTO.class)); | 184 | List<SaveStationRouteDTO> routes = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(SaveStationRouteDTO.class)); |
| 185 | 185 | ||
| 186 | + for(SaveStationRouteDTO s : routes){ | ||
| 187 | + if(s.getStationName().equals(stationName)){ | ||
| 186 | 188 | ||
| 189 | + rs.put("status", ResponseCode.ERROR); | ||
| 190 | + rs.put("msg", "重复的站点路由名称!"); | ||
| 191 | + return rs; | ||
| 192 | + } | ||
| 193 | + } | ||
| 187 | //按路由顺序排列 | 194 | //按路由顺序排列 |
| 188 | Collections.sort(routes, new StationRouteComp()); | 195 | Collections.sort(routes, new StationRouteComp()); |
| 189 | 196 | ||
| @@ -215,23 +222,23 @@ public class GeoDataServiceImpl implements GeoDataService { | @@ -215,23 +222,23 @@ public class GeoDataServiceImpl implements GeoDataService { | ||
| 215 | } | 222 | } |
| 216 | } | 223 | } |
| 217 | 224 | ||
| 218 | - sr = new SaveStationRouteDTO(); | ||
| 219 | - sr.setLine(lineId); | ||
| 220 | - sr.setLineCode(lineCode); | ||
| 221 | - sr.setDirections(upDown); | ||
| 222 | - sr.setVersions(versions); | ||
| 223 | - sr.setStationRouteCode(currentNo); | ||
| 224 | - sr.setStation(sCode); | ||
| 225 | - sr.setStationCode(sCode + ""); | ||
| 226 | - sr.setStationName(stationName); | ||
| 227 | - sr.setDistances(0d); | ||
| 228 | - sr.setToTime(0d); | 225 | + SaveStationRouteDTO nsr = new SaveStationRouteDTO(); |
| 226 | + nsr.setLine(lineId); | ||
| 227 | + nsr.setLineCode(lineCode); | ||
| 228 | + nsr.setDirections(upDown); | ||
| 229 | + nsr.setVersions(versions); | ||
| 230 | + nsr.setStationRouteCode(currentNo); | ||
| 231 | + nsr.setStation(sCode); | ||
| 232 | + nsr.setStationCode(sCode + ""); | ||
| 233 | + nsr.setStationName(stationName); | ||
| 234 | + nsr.setDistances(0d); | ||
| 235 | + nsr.setToTime(0d); | ||
| 229 | Date d = new Date(); | 236 | Date d = new Date(); |
| 230 | - sr.setCreateDate(d); | ||
| 231 | - sr.setUpdateDate(d); | ||
| 232 | - sr.setDestroy(0); | 237 | + nsr.setCreateDate(d); |
| 238 | + nsr.setUpdateDate(d); | ||
| 239 | + nsr.setDestroy(0); | ||
| 233 | 240 | ||
| 234 | - routes.add(sr); | 241 | + //routes.add(sr); |
| 235 | 242 | ||
| 236 | //重新标记mark | 243 | //重新标记mark |
| 237 | Collections.sort(routes, new StationRouteComp()); | 244 | Collections.sort(routes, new StationRouteComp()); |
| @@ -242,10 +249,16 @@ public class GeoDataServiceImpl implements GeoDataService { | @@ -242,10 +249,16 @@ public class GeoDataServiceImpl implements GeoDataService { | ||
| 242 | routes.get(routes.size() - 1).setStationMark("E"); | 249 | routes.get(routes.size() - 1).setStationMark("E"); |
| 243 | 250 | ||
| 244 | final List<SaveStationRouteDTO> saveList = routes; | 251 | final List<SaveStationRouteDTO> saveList = routes; |
| 245 | - //insert 路由 | ||
| 246 | - jdbcTemplate.update("delete from bsth_c_ls_stationroute where line_code='"+lineCode+"' and line="+lineId+" and directions="+upDown+" and destroy=0 and versions=" + versions); | ||
| 247 | - jdbcTemplate.batchUpdate("insert into bsth_c_ls_stationroute(line, station, station_name, station_route_code, line_code, station_code, station_mark, distances, to_time, destroy, versions, create_date, update_date,directions) " + | ||
| 248 | - " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)", new BatchPreparedStatementSetter() { | 252 | + //insert 新路由 (ID自增) |
| 253 | + jdbcTemplate.update("insert into bsth_c_ls_stationroute(line, station, station_name, station_route_code, line_code, station_code, station_mark, distances, to_time, destroy, versions, create_date, update_date,directions) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)" | ||
| 254 | + ,nsr.getLine(),nsr.getStation(),nsr.getStationName(),nsr.getStationRouteCode(),nsr.getLineCode(),nsr.getStationCode(),nsr.getStationMark() | ||
| 255 | + ,nsr.getDistances(),nsr.getToTime(),nsr.getDestroy(),nsr.getVersions(),nsr.getCreateDate(),nsr.getUpdateDate(),nsr.getDirections()); | ||
| 256 | + | ||
| 257 | + // update 原路由 | ||
| 258 | + jdbcTemplate.batchUpdate("update bsth_c_ls_stationroute set line=?,station=?,station_name=?,station_route_code=?," + | ||
| 259 | + "line_code=?,station_code=?,station_mark=?,distances=?,to_time=?,destroy=?,versions=?,create_date=?,update_date=?,directions=?" + | ||
| 260 | + " where id=?" | ||
| 261 | + , new BatchPreparedStatementSetter() { | ||
| 249 | @Override | 262 | @Override |
| 250 | public void setValues(PreparedStatement ps, int i) throws SQLException { | 263 | public void setValues(PreparedStatement ps, int i) throws SQLException { |
| 251 | SaveStationRouteDTO sr = saveList.get(i); | 264 | SaveStationRouteDTO sr = saveList.get(i); |
| @@ -263,6 +276,7 @@ public class GeoDataServiceImpl implements GeoDataService { | @@ -263,6 +276,7 @@ public class GeoDataServiceImpl implements GeoDataService { | ||
| 263 | ps.setTimestamp(12, new java.sql.Timestamp(sr.getCreateDate().getTime())); | 276 | ps.setTimestamp(12, new java.sql.Timestamp(sr.getCreateDate().getTime())); |
| 264 | ps.setTimestamp(13, new java.sql.Timestamp(sr.getUpdateDate().getTime())); | 277 | ps.setTimestamp(13, new java.sql.Timestamp(sr.getUpdateDate().getTime())); |
| 265 | ps.setInt(14, sr.getDirections()); | 278 | ps.setInt(14, sr.getDirections()); |
| 279 | + ps.setInt(15, sr.getId()); | ||
| 266 | } | 280 | } |
| 267 | 281 | ||
| 268 | @Override | 282 | @Override |
| @@ -272,6 +286,12 @@ public class GeoDataServiceImpl implements GeoDataService { | @@ -272,6 +286,12 @@ public class GeoDataServiceImpl implements GeoDataService { | ||
| 272 | }); | 286 | }); |
| 273 | 287 | ||
| 274 | tran.commit(status); | 288 | tran.commit(status); |
| 289 | + | ||
| 290 | + //返回更新之后的数据 | ||
| 291 | + List<GeoStation> list = findByUpdown(lineCode, upDown, versions); | ||
| 292 | + | ||
| 293 | + rs.put("list", list); | ||
| 294 | + rs.put("newStationRouteCode", currentNo); | ||
| 275 | rs.put("status", ResponseCode.SUCCESS); | 295 | rs.put("status", ResponseCode.SUCCESS); |
| 276 | } catch (Exception e) { | 296 | } catch (Exception e) { |
| 277 | tran.rollback(status); | 297 | tran.rollback(status); |
| @@ -282,6 +302,38 @@ public class GeoDataServiceImpl implements GeoDataService { | @@ -282,6 +302,38 @@ public class GeoDataServiceImpl implements GeoDataService { | ||
| 282 | return rs; | 302 | return rs; |
| 283 | } | 303 | } |
| 284 | 304 | ||
| 305 | + private List<GeoStation> findByUpdown(String lineCode, int upDown, int versions){ | ||
| 306 | + //返回更新之后的数据 | ||
| 307 | + String sql = "select t1.*,t2.g_lonx,g_laty,ST_AsText(g_polygon_grid) as g_polygon_grid,radius,shapes_type from (select id,station_name,station_route_code,line_code,station_code,station_mark,versions,directions from bsth_c_ls_stationroute where line=" + lineCode + " and directions="+upDown+" and destroy=0 and versions="+versions+") t1 LEFT JOIN bsth_c_station t2 on t1.station_code=t2.station_cod"; | ||
| 308 | + List<GeoStation> list = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(GeoStation.class)); | ||
| 309 | + | ||
| 310 | + for (GeoStation station : list) { | ||
| 311 | + if (station.getShapesType().equals("d")) | ||
| 312 | + station.setBdCoords(multiWgsToBd(station.getgPolygonGrid(), 9, 3)); | ||
| 313 | + } | ||
| 314 | + return list; | ||
| 315 | + } | ||
| 316 | + | ||
| 317 | + @Override | ||
| 318 | + public Map<String, Object> destroyStation(GeoStation station) { | ||
| 319 | + Map<String, Object> rs = new HashMap<>(); | ||
| 320 | + | ||
| 321 | + try { | ||
| 322 | + String sql = "update bsth_c_ls_stationroute set destroy=1 where id=?"; | ||
| 323 | + jdbcTemplate.update(sql, station.getId()); | ||
| 324 | + | ||
| 325 | + //返回更新之后的数据 | ||
| 326 | + List<GeoStation> list = findByUpdown(station.getLineCode(), station.getDirections(), station.getVersions()); | ||
| 327 | + rs.put("list", list); | ||
| 328 | + rs.put("status", ResponseCode.SUCCESS); | ||
| 329 | + } catch (Exception e) { | ||
| 330 | + logger.error("", e); | ||
| 331 | + rs.put("status", ResponseCode.ERROR); | ||
| 332 | + rs.put("msg", "服务器出现异常"); | ||
| 333 | + } | ||
| 334 | + return rs; | ||
| 335 | + } | ||
| 336 | + | ||
| 285 | 337 | ||
| 286 | /** | 338 | /** |
| 287 | * 根据路由ID 获取站点 | 339 | * 根据路由ID 获取站点 |
src/main/resources/static/pages/base/geo_data_edit/css/mian.css
| @@ -259,11 +259,11 @@ ul.uk-list.station_info_win>li.s_name{ | @@ -259,11 +259,11 @@ ul.uk-list.station_info_win>li.s_name{ | ||
| 259 | } | 259 | } |
| 260 | 260 | ||
| 261 | .road_route .uk-list ul{ | 261 | .road_route .uk-list ul{ |
| 262 | - padding-left: 22px; | 262 | + padding-left: 0; |
| 263 | } | 263 | } |
| 264 | 264 | ||
| 265 | .road_route>ul>li>ul>li{ | 265 | .road_route>ul>li>ul>li{ |
| 266 | - padding-left: 8px; | 266 | + padding-left: 22px; |
| 267 | } | 267 | } |
| 268 | 268 | ||
| 269 | .ct_coord_str{ | 269 | .ct_coord_str{ |
src/main/resources/static/pages/base/geo_data_edit/fragments/f_road_route.html
| @@ -2,14 +2,14 @@ | @@ -2,14 +2,14 @@ | ||
| 2 | <script id="geo_d_e_road_route-temp" type="text/html"> | 2 | <script id="geo_d_e_road_route-temp" type="text/html"> |
| 3 | <ul class="uk-list"> | 3 | <ul class="uk-list"> |
| 4 | {{each list as subArr i}} | 4 | {{each list as subArr i}} |
| 5 | - <li class="road_li_{{subArr[0].sectionCode}} first_road_active"> | 5 | + <li class="r_r_item first_road_active" > |
| 6 | <a data-code="{{subArr[0].sectionCode}}" data-updown="{{subArr[0].directions}}">{{subArr[0].sectionName}}<span class="sub_name">{{subArr[0].crosesRoad}}</span></a> | 6 | <a data-code="{{subArr[0].sectionCode}}" data-updown="{{subArr[0].directions}}">{{subArr[0].sectionName}}<span class="sub_name">{{subArr[0].crosesRoad}}</span></a> |
| 7 | 7 | ||
| 8 | {{if subArr.length > 1}} | 8 | {{if subArr.length > 1}} |
| 9 | {{each subArr as obj j}} | 9 | {{each subArr as obj j}} |
| 10 | <ul class="uk-list"> | 10 | <ul class="uk-list"> |
| 11 | {{if j > 0}} | 11 | {{if j > 0}} |
| 12 | - <li class="road_li_{{obj.sectionCode}}"> | 12 | + <li class="r_r_item"> |
| 13 | <a data-code="{{obj.sectionCode}}" data-updown="{{obj.directions}}">{{obj.sectionName}}<span class="sub_name">{{obj.crosesRoad}}</span></a></li> | 13 | <a data-code="{{obj.sectionCode}}" data-updown="{{obj.directions}}">{{obj.sectionName}}<span class="sub_name">{{obj.crosesRoad}}</span></a></li> |
| 14 | {{/if}} | 14 | {{/if}} |
| 15 | </ul> | 15 | </ul> |
src/main/resources/static/pages/base/geo_data_edit/fragments/f_station_route.html
| @@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
| 14 | </script> | 14 | </script> |
| 15 | 15 | ||
| 16 | <script id="geo_d_e_station_route_one-temp" type="text/html"> | 16 | <script id="geo_d_e_station_route_one-temp" type="text/html"> |
| 17 | - <li class="station_li_{{stationCode}}"> | 17 | + <li class="s_r_item" data-code="{{stationCode}}" data-id="{{id}}"> |
| 18 | <div class="ct_route_badge_wrap"> | 18 | <div class="ct_route_badge_wrap"> |
| 19 | <span class="uk-badge ct_route_badge {{if stationMark=='B'}}start{{else if stationMark=='E'}}end{{/if}} {{if shapesType=='d'}}polygon{{/if}}"> | 19 | <span class="uk-badge ct_route_badge {{if stationMark=='B'}}start{{else if stationMark=='E'}}end{{/if}} {{if shapesType=='d'}}polygon{{/if}}"> |
| 20 | {{if stationMark=='B'}}起点站{{else if stationMark=='E'}}终点站{{else}}{{index}}{{/if}}</span> | 20 | {{if stationMark=='B'}}起点站{{else if stationMark=='E'}}终点站{{else}}{{index}}{{/if}}</span> |
src/main/resources/static/pages/base/geo_data_edit/js/map.js
| @@ -76,7 +76,7 @@ var gb_ct_map = function () { | @@ -76,7 +76,7 @@ var gb_ct_map = function () { | ||
| 76 | array.push(marker); | 76 | array.push(marker); |
| 77 | }); | 77 | }); |
| 78 | 78 | ||
| 79 | - stationMarkers.push(array); | 79 | + stationMarkers[routes[0].directions] = array; |
| 80 | }; | 80 | }; |
| 81 | 81 | ||
| 82 | function transCoord(obj) { | 82 | function transCoord(obj) { |
| @@ -303,6 +303,8 @@ var gb_ct_map = function () { | @@ -303,6 +303,8 @@ var gb_ct_map = function () { | ||
| 303 | 303 | ||
| 304 | var exitEditBufferStatus = function (s) { | 304 | var exitEditBufferStatus = function (s) { |
| 305 | map_status = 0; | 305 | map_status = 0; |
| 306 | + $('.main_left_panel_m_layer').hide(); | ||
| 307 | + $('.buffer_edit_panel').remove(); | ||
| 306 | //enabledOtherElem(); | 308 | //enabledOtherElem(); |
| 307 | //gb_station_route.hideEditPanel(); | 309 | //gb_station_route.hideEditPanel(); |
| 308 | 310 | ||
| @@ -543,10 +545,25 @@ var gb_ct_map = function () { | @@ -543,10 +545,25 @@ var gb_ct_map = function () { | ||
| 543 | var local = new BMap.LocalSearch(map, { | 545 | var local = new BMap.LocalSearch(map, { |
| 544 | renderOptions: {map: map}, | 546 | renderOptions: {map: map}, |
| 545 | onMarkersSet: function (pos) { | 547 | onMarkersSet: function (pos) { |
| 546 | - var old_m = pos[0].marker; | ||
| 547 | - var point = old_m.point; | ||
| 548 | - //清除默认的点 | ||
| 549 | - map.removeOverlay(old_m); | 548 | + var point; |
| 549 | + if(!pos || pos.length==0){ | ||
| 550 | + var pId = gb_station_route.getAddPrevId(); | ||
| 551 | + if(pId){ | ||
| 552 | + //百度没有定位到位置,默认靠近在上一个站 | ||
| 553 | + var prev = gb_station_route.getStationById(pId); | ||
| 554 | + point = new BMap.Point(prev.bd_lon - 0.0001, prev.bd_lat - 0.0001); | ||
| 555 | + } | ||
| 556 | + else{ | ||
| 557 | + //没有上一个站点,默认在地图中间 | ||
| 558 | + point = map.getCenter() | ||
| 559 | + } | ||
| 560 | + } | ||
| 561 | + else{ | ||
| 562 | + var old_m = pos[0].marker; | ||
| 563 | + point = old_m.point; | ||
| 564 | + //清除默认的点 | ||
| 565 | + map.removeOverlay(old_m); | ||
| 566 | + } | ||
| 550 | //进入新增点位 地图选点模式 | 567 | //进入新增点位 地图选点模式 |
| 551 | startSearchPoint(point, name); | 568 | startSearchPoint(point, name); |
| 552 | } | 569 | } |
| @@ -560,6 +577,10 @@ var gb_ct_map = function () { | @@ -560,6 +577,10 @@ var gb_ct_map = function () { | ||
| 560 | var m = createYellowStation(point, name); | 577 | var m = createYellowStation(point, name); |
| 561 | m.enableDragging(); | 578 | m.enableDragging(); |
| 562 | map.addOverlay(m); | 579 | map.addOverlay(m); |
| 580 | + map.setCenter(point); | ||
| 581 | + | ||
| 582 | + if(map.getZoom() < 16) | ||
| 583 | + map.setZoom(16); | ||
| 563 | 584 | ||
| 564 | _updateSearchPoint(m); | 585 | _updateSearchPoint(m); |
| 565 | m.addEventListener('dragging', function () { | 586 | m.addEventListener('dragging', function () { |
| @@ -616,6 +637,20 @@ var gb_ct_map = function () { | @@ -616,6 +637,20 @@ var gb_ct_map = function () { | ||
| 616 | return marker; | 637 | return marker; |
| 617 | } | 638 | } |
| 618 | 639 | ||
| 640 | + /** | ||
| 641 | + * 重绘一个走向的站点 | ||
| 642 | + * @param upDown | ||
| 643 | + */ | ||
| 644 | + var reDrawStation = function (upDown) { | ||
| 645 | + $.each(stationMarkers[upDown], function () { | ||
| 646 | + map.removeOverlay(this); | ||
| 647 | + }); | ||
| 648 | + stationMarkers[upDown] = []; | ||
| 649 | + | ||
| 650 | + clearOtherOverlay(); | ||
| 651 | + _renderStationMarket(gb_station_route.getData()[upDown]); | ||
| 652 | + }; | ||
| 653 | + | ||
| 619 | res_load_ep.emitLater('load_map'); | 654 | res_load_ep.emitLater('load_map'); |
| 620 | return { | 655 | return { |
| 621 | _render: _render, | 656 | _render: _render, |
| @@ -639,6 +674,7 @@ var gb_ct_map = function () { | @@ -639,6 +674,7 @@ var gb_ct_map = function () { | ||
| 639 | clearOtherOverlay(); | 674 | clearOtherOverlay(); |
| 640 | map.removeEventListener('dblclick', pickupPoint); | 675 | map.removeEventListener('dblclick', pickupPoint); |
| 641 | map.enableDoubleClickZoom(); | 676 | map.enableDoubleClickZoom(); |
| 642 | - } | 677 | + }, |
| 678 | + reDrawStation: reDrawStation | ||
| 643 | }; | 679 | }; |
| 644 | }(); | 680 | }(); |
| 645 | \ No newline at end of file | 681 | \ No newline at end of file |
src/main/resources/static/pages/base/geo_data_edit/js/road_route.js
| @@ -15,7 +15,6 @@ var gb_road_route = function () { | @@ -15,7 +15,6 @@ var gb_road_route = function () { | ||
| 15 | //按顺序,名称分组 | 15 | //按顺序,名称分组 |
| 16 | var ups = _group(road_maps[0]); | 16 | var ups = _group(road_maps[0]); |
| 17 | var downs = _group(road_maps[1]); | 17 | var downs = _group(road_maps[1]); |
| 18 | - console.log('upsupsups', ups, 'downsdownsdowns', downs); | ||
| 19 | //渲染 | 18 | //渲染 |
| 20 | var upHtmlStr = temps['geo_d_e_road_route-temp']({list: ups}); | 19 | var upHtmlStr = temps['geo_d_e_road_route-temp']({list: ups}); |
| 21 | $('.up_down_route_list>li:first>.road_route').html(upHtmlStr); | 20 | $('.up_down_route_list>li:first>.road_route').html(upHtmlStr); |
| @@ -71,7 +70,8 @@ var gb_road_route = function () { | @@ -71,7 +70,8 @@ var gb_road_route = function () { | ||
| 71 | 70 | ||
| 72 | var focus = function (data) { | 71 | var focus = function (data) { |
| 73 | //sectionCode | 72 | //sectionCode |
| 74 | - var elem = $('.up_down_route_list>li>.road_route .road_li_' + data.sectionCode); | 73 | + var elem = $('.up_down_route_list>li>.road_route .r_r_item a[data-code='+data.sectionCode+']'); |
| 74 | + elem = elem.parent(); | ||
| 75 | elem.addClass('ct_active'); | 75 | elem.addClass('ct_active'); |
| 76 | 76 | ||
| 77 | if (!isShow(elem)) { | 77 | if (!isShow(elem)) { |
| @@ -89,6 +89,36 @@ var gb_road_route = function () { | @@ -89,6 +89,36 @@ var gb_road_route = function () { | ||
| 89 | return elem.offset().top < wrap.height() + 122 && elem.offset().top > 122; | 89 | return elem.offset().top < wrap.height() + 122 && elem.offset().top > 122; |
| 90 | }; | 90 | }; |
| 91 | 91 | ||
| 92 | + //$('.up_down_route_list>li>.road_route .r_r_item a[data-code='+data.sectionCode+']') | ||
| 93 | + $.contextMenu({ | ||
| 94 | + selector: '.up_down_route_list>li>.road_route .r_r_item a[data-code]', | ||
| 95 | + className: 'station-route-ct-menu', | ||
| 96 | + callback: function (key, options) { | ||
| 97 | + /*var aLink = options.$trigger; | ||
| 98 | + var code = aLink.data('code'), | ||
| 99 | + updown = aLink.data('updown'); | ||
| 100 | + var station = getStation(code, updown); | ||
| 101 | + realEditStation = station; | ||
| 102 | + callbackHandler[key] && callbackHandler[key](station);*/ | ||
| 103 | + }, | ||
| 104 | + items: { | ||
| 105 | + 'edit_buffer': { | ||
| 106 | + name: '编辑' | ||
| 107 | + }, | ||
| 108 | + 'sep1': '---------', | ||
| 109 | + 'insert_after': { | ||
| 110 | + name: '新增路段(之后)' | ||
| 111 | + }, | ||
| 112 | + 'insert_before': { | ||
| 113 | + name: '新增路段(之前)' | ||
| 114 | + }, | ||
| 115 | + 'destroy': { | ||
| 116 | + name: '撤销路段' | ||
| 117 | + } | ||
| 118 | + } | ||
| 119 | + }); | ||
| 120 | + | ||
| 121 | + | ||
| 92 | res_load_ep.emitLater('load_road_route'); | 122 | res_load_ep.emitLater('load_road_route'); |
| 93 | return { | 123 | return { |
| 94 | init: init, getData: function () { | 124 | init: init, getData: function () { |
src/main/resources/static/pages/base/geo_data_edit/js/station_route.js
| @@ -106,6 +106,10 @@ var gb_station_route = function () { | @@ -106,6 +106,10 @@ var gb_station_route = function () { | ||
| 106 | var addCell = $(temps['geo_d_e_add_station_panel-temp'](station)); | 106 | var addCell = $(temps['geo_d_e_add_station_panel-temp'](station)); |
| 107 | cell.before(addCell); | 107 | cell.before(addCell); |
| 108 | 108 | ||
| 109 | + add_station(addCell); | ||
| 110 | + }; | ||
| 111 | + | ||
| 112 | + var add_station = function (addCell) { | ||
| 109 | gb_ct_map.closeInfoWin(); | 113 | gb_ct_map.closeInfoWin(); |
| 110 | //焦点 | 114 | //焦点 |
| 111 | var $nameInput = $('input[name=stationName]', addCell); | 115 | var $nameInput = $('input[name=stationName]', addCell); |
| @@ -117,13 +121,23 @@ var gb_station_route = function () { | @@ -117,13 +121,23 @@ var gb_station_route = function () { | ||
| 117 | 121 | ||
| 118 | //选择地图位置 | 122 | //选择地图位置 |
| 119 | $('.search_point_icon_btn', addCell).on('click', function () { | 123 | $('.search_point_icon_btn', addCell).on('click', function () { |
| 124 | + $('.station_li_transient').removeClass('_search_point'); | ||
| 125 | + $(this).parents('.station_li_transient').addClass('_search_point'); | ||
| 120 | var name = $nameInput.val(); | 126 | var name = $nameInput.val(); |
| 121 | if(!name) | 127 | if(!name) |
| 122 | - return UIkit.notification("你必须输入站点名称!", {status: 'danger',pos: 'bottom-left'}); | 128 | + return UIkit.notification("你必须输入站点名称!", {status: 'danger'}); |
| 129 | + | ||
| 130 | + if(is_duplication(name)) | ||
| 131 | + return UIkit.notification("站点路由名称重复!!", {status: 'danger'}); | ||
| 123 | 132 | ||
| 124 | $('.main_left_panel_m_layer').show(); | 133 | $('.main_left_panel_m_layer').show(); |
| 125 | gb_ct_map.showAddPointPanel(name); | 134 | gb_ct_map.showAddPointPanel(name); |
| 126 | }); | 135 | }); |
| 136 | + //监听回车事件 | ||
| 137 | + $('[name=stationName]', addCell).on('keydown', function (e) { | ||
| 138 | + if(event.keyCode == "13") | ||
| 139 | + $('.search_point_icon_btn', addCell).trigger('click'); | ||
| 140 | + }); | ||
| 127 | 141 | ||
| 128 | //上一个站点的ID | 142 | //上一个站点的ID |
| 129 | var $prev = addCell.prev('.s_r_item'); | 143 | var $prev = addCell.prev('.s_r_item'); |
| @@ -133,13 +147,40 @@ var gb_station_route = function () { | @@ -133,13 +147,40 @@ var gb_station_route = function () { | ||
| 133 | addPrevId = -1; | 147 | addPrevId = -1; |
| 134 | }; | 148 | }; |
| 135 | 149 | ||
| 150 | + /** | ||
| 151 | + * name 是否重复 | ||
| 152 | + * @param name | ||
| 153 | + */ | ||
| 154 | + var is_duplication = function (name) { | ||
| 155 | + var array = station_maps[getUpDown()]; | ||
| 156 | + for(var i=0, s; s=array[i++];){ | ||
| 157 | + if(s.stationName==name) | ||
| 158 | + return true; | ||
| 159 | + } | ||
| 160 | + return false; | ||
| 161 | + }; | ||
| 162 | + | ||
| 163 | + var insert_station_after = function (station) { | ||
| 164 | + //在之后插入站点 | ||
| 165 | + var cell = getStationLI(station); | ||
| 166 | + | ||
| 167 | + var addCell = $(temps['geo_d_e_add_station_panel-temp'](station)); | ||
| 168 | + cell.after(addCell); | ||
| 169 | + | ||
| 170 | + add_station(addCell); | ||
| 171 | + }; | ||
| 172 | + | ||
| 136 | var realEditStation; | 173 | var realEditStation; |
| 137 | var callbackHandler = { | 174 | var callbackHandler = { |
| 138 | edit_buffer: function (station) { | 175 | edit_buffer: function (station) { |
| 139 | gb_ct_map.editStationBuffer(station); | 176 | gb_ct_map.editStationBuffer(station); |
| 140 | }, | 177 | }, |
| 141 | edit_name: station_edit_name, | 178 | edit_name: station_edit_name, |
| 142 | - insert_before: insert_station_before | 179 | + insert_before: insert_station_before, |
| 180 | + insert_after: insert_station_after, | ||
| 181 | + destroy: function (station) { | ||
| 182 | + gb_data_submit.destroyStation(station); | ||
| 183 | + } | ||
| 143 | }; | 184 | }; |
| 144 | 185 | ||
| 145 | $.contextMenu({ | 186 | $.contextMenu({ |
| @@ -161,12 +202,12 @@ var gb_station_route = function () { | @@ -161,12 +202,12 @@ var gb_station_route = function () { | ||
| 161 | 'edit_name': { | 202 | 'edit_name': { |
| 162 | name: '修改站点名称' | 203 | name: '修改站点名称' |
| 163 | }, | 204 | }, |
| 164 | - 'insert_before': { | ||
| 165 | - name: '新增站点(之前)' | ||
| 166 | - }, | ||
| 167 | 'insert_after': { | 205 | 'insert_after': { |
| 168 | name: '新增站点(之后)' | 206 | name: '新增站点(之后)' |
| 169 | }, | 207 | }, |
| 208 | + 'insert_before': { | ||
| 209 | + name: '新增站点(之前)' | ||
| 210 | + }, | ||
| 170 | 'destroy': { | 211 | 'destroy': { |
| 171 | name: '撤销站点' | 212 | name: '撤销站点' |
| 172 | } | 213 | } |
| @@ -319,6 +360,85 @@ var gb_station_route = function () { | @@ -319,6 +360,85 @@ var gb_station_route = function () { | ||
| 319 | }, 200); | 360 | }, 200); |
| 320 | }; | 361 | }; |
| 321 | 362 | ||
| 363 | + var updateStationRouteData = function (list) { | ||
| 364 | + list.sort(function (a, b) { | ||
| 365 | + return parseInt(a.stationRouteCode) - parseInt(b.stationRouteCode); | ||
| 366 | + }); | ||
| 367 | + | ||
| 368 | + var upDown = list[0].directions; | ||
| 369 | + var dataMaps = {}; | ||
| 370 | + //更新数据 | ||
| 371 | + for(var i=0,s;s=list[i++];){ | ||
| 372 | + s.index = i; | ||
| 373 | + dataMaps[s.id] = s; | ||
| 374 | + } | ||
| 375 | + station_maps[upDown] = list; | ||
| 376 | + //更新序号 | ||
| 377 | + var wrap = $('.up_down_route_list>li:eq('+upDown+')>.station_route'); | ||
| 378 | + $('.s_r_item', wrap).each(function () { | ||
| 379 | + $(this).replaceWith( | ||
| 380 | + temps['geo_d_e_station_route_one-temp'](dataMaps[$(this).data('id')])); | ||
| 381 | + }); | ||
| 382 | + | ||
| 383 | + //延迟清除动画class | ||
| 384 | + setTimeout(function () { | ||
| 385 | + $('.s_r_item a.uk-animation-shake', wrap).removeClass('uk-animation-shake'); | ||
| 386 | + }, 1000); | ||
| 387 | + | ||
| 388 | + //更新地图 | ||
| 389 | + gb_ct_map.reDrawStation(upDown); | ||
| 390 | + }; | ||
| 391 | + | ||
| 392 | + /** | ||
| 393 | + * 添加结束,刷新List | ||
| 394 | + * @param list | ||
| 395 | + */ | ||
| 396 | + var addEnd = function (list, _newRCode) { | ||
| 397 | + updateStationRouteData(list); | ||
| 398 | + | ||
| 399 | + var upDown = list[0].directions; | ||
| 400 | + var wrap = $('.up_down_route_list>li:eq('+upDown+')>.station_route'); | ||
| 401 | + //新增的站点路由 | ||
| 402 | + var ns = getStationByRouteCode(upDown, _newRCode); | ||
| 403 | + $('.station_li_transient._search_point', wrap).replaceWith( | ||
| 404 | + temps['geo_d_e_station_route_one-temp'](ns) | ||
| 405 | + ); | ||
| 406 | + | ||
| 407 | + $('.main_left_panel_m_layer').hide(); | ||
| 408 | + $('.add_station_search_point_wrap').remove(); | ||
| 409 | + }; | ||
| 410 | + | ||
| 411 | + /** | ||
| 412 | + * 撤销完成 | ||
| 413 | + * @param list | ||
| 414 | + */ | ||
| 415 | + var destroyEnd = function (list, station) { | ||
| 416 | + //被撤销的 | ||
| 417 | + $('.up_down_route_list .s_r_item[data-id='+station.id+']').remove(); | ||
| 418 | + updateStationRouteData(list); | ||
| 419 | + }; | ||
| 420 | + | ||
| 421 | + var getStationByRouteCode = function (upDown, _newRCode) { | ||
| 422 | + var list = station_maps[upDown]; | ||
| 423 | + for(var i=0,s; s=list[i++];){ | ||
| 424 | + if(s.stationRouteCode==_newRCode) | ||
| 425 | + return s; | ||
| 426 | + } | ||
| 427 | + return null; | ||
| 428 | + }; | ||
| 429 | + | ||
| 430 | + var getStationById = function (id) { | ||
| 431 | + for(var i=0,s;s=station_maps[0][i++];){ | ||
| 432 | + if(s.id == id) | ||
| 433 | + return s; | ||
| 434 | + } | ||
| 435 | + for(var i=0,s;s=station_maps[1][i++];){ | ||
| 436 | + if(s.id == id) | ||
| 437 | + return s; | ||
| 438 | + } | ||
| 439 | + return null; | ||
| 440 | + }; | ||
| 441 | + | ||
| 322 | res_load_ep.emitLater('load_station_route'); | 442 | res_load_ep.emitLater('load_station_route'); |
| 323 | return { | 443 | return { |
| 324 | init: init, | 444 | init: init, |
| @@ -340,6 +460,9 @@ var gb_station_route = function () { | @@ -340,6 +460,9 @@ var gb_station_route = function () { | ||
| 340 | reWriteSearchPointPanel: reWriteSearchPointPanel, | 460 | reWriteSearchPointPanel: reWriteSearchPointPanel, |
| 341 | getAddPrevId: function () { | 461 | getAddPrevId: function () { |
| 342 | return addPrevId; | 462 | return addPrevId; |
| 343 | - } | 463 | + }, |
| 464 | + addEnd: addEnd, | ||
| 465 | + destroyEnd: destroyEnd, | ||
| 466 | + getStationById:getStationById | ||
| 344 | }; | 467 | }; |
| 345 | }(); | 468 | }(); |
| 346 | \ No newline at end of file | 469 | \ No newline at end of file |
src/main/resources/static/pages/base/geo_data_edit/js/submit.js
| @@ -77,9 +77,10 @@ var gb_data_submit = function () { | @@ -77,9 +77,10 @@ var gb_data_submit = function () { | ||
| 77 | 77 | ||
| 78 | delete data.gLonx; | 78 | delete data.gLonx; |
| 79 | delete data.gLaty; | 79 | delete data.gLaty; |
| 80 | - //console.log('data', data); | ||
| 81 | //添加 | 80 | //添加 |
| 82 | gb_common.$post('/_geo_data/addNewStationRoute', data, function (rs) { | 81 | gb_common.$post('/_geo_data/addNewStationRoute', data, function (rs) { |
| 82 | + gb_station_route.addEnd(rs.list, rs.newStationRouteCode); | ||
| 83 | + | ||
| 83 | hide_run_text(); | 84 | hide_run_text(); |
| 84 | UIkit.notification("修改成功!", {status: 'success'}); | 85 | UIkit.notification("修改成功!", {status: 'success'}); |
| 85 | }); | 86 | }); |
| @@ -97,8 +98,27 @@ var gb_data_submit = function () { | @@ -97,8 +98,27 @@ var gb_data_submit = function () { | ||
| 97 | $loadPanel.hide(); | 98 | $loadPanel.hide(); |
| 98 | }; | 99 | }; |
| 99 | 100 | ||
| 101 | + /** | ||
| 102 | + * 撤销站点 | ||
| 103 | + * @param station | ||
| 104 | + */ | ||
| 105 | + var destroyStation = function (station) { | ||
| 106 | + | ||
| 107 | + UIkit.modal.confirm('确定撤销站点【'+station.stationName+'】?').then(function() { | ||
| 108 | + show_run_text('正在撤销...'); | ||
| 109 | + | ||
| 110 | + gb_common.$post("/_geo_data/destroyStation", station, function (rs) { | ||
| 111 | + gb_station_route.destroyEnd(rs.list, station); | ||
| 112 | + hide_run_text(); | ||
| 113 | + UIkit.notification("撤销成功!", {status: 'success'}); | ||
| 114 | + }); | ||
| 115 | + }); | ||
| 116 | + } | ||
| 117 | + | ||
| 100 | function getUpDown(){ | 118 | function getUpDown(){ |
| 101 | return $('._route_info_wrap>ul>li:first').hasClass('uk-active')?0:1; | 119 | return $('._route_info_wrap>ul>li:first').hasClass('uk-active')?0:1; |
| 102 | } | 120 | } |
| 103 | - return {}; | 121 | + return { |
| 122 | + destroyStation: destroyStation | ||
| 123 | + }; | ||
| 104 | }(); | 124 | }(); |
| 105 | \ No newline at end of file | 125 | \ No newline at end of file |
src/main/resources/static/pages/base/geo_data_edit/main.html
| @@ -108,7 +108,7 @@ | @@ -108,7 +108,7 @@ | ||
| 108 | var $loadPanel = $('body>.loading'); | 108 | var $loadPanel = $('body>.loading'); |
| 109 | //___________________________________ | 109 | //___________________________________ |
| 110 | var storage = window.localStorage; | 110 | var storage = window.localStorage; |
| 111 | - storage.setItem("geo_data_edit_line_code" , "70123"); | 111 | + storage.setItem("geo_data_edit_line_code" , "10648"); |
| 112 | storage.setItem("geo_data_edit_line_version" , "1"); | 112 | storage.setItem("geo_data_edit_line_version" , "1"); |
| 113 | //___________________________________ | 113 | //___________________________________ |
| 114 | 114 | ||
| @@ -142,7 +142,7 @@ | @@ -142,7 +142,7 @@ | ||
| 142 | eq.once('end', function () { | 142 | eq.once('end', function () { |
| 143 | $loadPanel.hide(); | 143 | $loadPanel.hide(); |
| 144 | }); | 144 | }); |
| 145 | - }); | 145 | + }); |
| 146 | 146 | ||
| 147 | function g_emit(id) { | 147 | function g_emit(id) { |
| 148 | console.log('g_emit [' + id + ']'); | 148 | console.log('g_emit [' + id + ']'); |
| @@ -161,13 +161,18 @@ | @@ -161,13 +161,18 @@ | ||
| 161 | }); | 161 | }); |
| 162 | 162 | ||
| 163 | function getUpDown(){ | 163 | function getUpDown(){ |
| 164 | - return $('._route_info_wrap>ul>li:first').hasClass('uk-active')?0:1; | 164 | + return $('.up_down_route_list>li:first').hasClass('uk-active')?0:1; |
| 165 | } | 165 | } |
| 166 | 166 | ||
| 167 | //切换上下行显示 | 167 | //切换上下行显示 |
| 168 | $('.up_down_route_list').on('show', function () { | 168 | $('.up_down_route_list').on('show', function () { |
| 169 | gb_ct_map.changeUpDown(); | 169 | gb_ct_map.changeUpDown(); |
| 170 | }); | 170 | }); |
| 171 | + | ||
| 172 | + $(document).on('submit', 'form', function (e) { | ||
| 173 | + e.stopPropagation(); | ||
| 174 | + return false; | ||
| 175 | + }); | ||
| 171 | </script> | 176 | </script> |
| 172 | 177 | ||
| 173 | <!--- js --> | 178 | <!--- js --> |