Commit 72e5c26fdbc837a57f7bea907df732a6a23b28d0

Authored by 李强
1 parent f386d7bf

基础数据功能代码完善

Showing 25 changed files with 1556 additions and 342 deletions
@@ -158,6 +158,13 @@ @@ -158,6 +158,13 @@
158 <repositories> 158 <repositories>
159 <repository> 159 <repository>
160 <id>spring-snapshots</id> 160 <id>spring-snapshots</id>
  161 + <url>http://repo1.maven.org/maven2</url>
  162 + <snapshots>
  163 + <enabled>true</enabled>
  164 + </snapshots>
  165 + </repository>
  166 + <!-- <repository>
  167 + <id>spring-snapshots</id>
161 <url>http://repo.spring.io/snapshot</url> 168 <url>http://repo.spring.io/snapshot</url>
162 <snapshots> 169 <snapshots>
163 <enabled>true</enabled> 170 <enabled>true</enabled>
@@ -166,7 +173,7 @@ @@ -166,7 +173,7 @@
166 <repository> 173 <repository>
167 <id>spring-milestones</id> 174 <id>spring-milestones</id>
168 <url>http://repo.spring.io/milestone</url> 175 <url>http://repo.spring.io/milestone</url>
169 - </repository> 176 + </repository> -->
170 </repositories> 177 </repositories>
171 <pluginRepositories> 178 <pluginRepositories>
172 <pluginRepository> 179 <pluginRepository>
src/main/java/com/bsth/controller/SectionController.java
1 package com.bsth.controller; 1 package com.bsth.controller;
2 2
  3 +import java.util.Map;
  4 +
  5 +import org.springframework.beans.factory.annotation.Autowired;
3 import org.springframework.web.bind.annotation.RequestMapping; 6 import org.springframework.web.bind.annotation.RequestMapping;
  7 +import org.springframework.web.bind.annotation.RequestMethod;
  8 +import org.springframework.web.bind.annotation.RequestParam;
4 import org.springframework.web.bind.annotation.RestController; 9 import org.springframework.web.bind.annotation.RestController;
5 10
6 import com.bsth.entity.Section; 11 import com.bsth.entity.Section;
  12 +import com.bsth.service.SectionService;
7 13
8 /** 14 /**
9 * 15 *
@@ -24,5 +30,17 @@ import com.bsth.entity.Section; @@ -24,5 +30,17 @@ import com.bsth.entity.Section;
24 @RestController 30 @RestController
25 @RequestMapping("section") 31 @RequestMapping("section")
26 public class SectionController extends BaseController<Section, Integer> { 32 public class SectionController extends BaseController<Section, Integer> {
  33 +
  34 + @Autowired
  35 + SectionService service;
  36 +
  37 + @RequestMapping(value="sectionUpdate" , method = RequestMethod.POST)
  38 + public Map<String, Object> sectionUpdate(@RequestParam Map<String, Object> map) {
  39 +
  40 + map.put("updateBy", "");
  41 +
  42 + return service.sectionUpdate(map);
  43 +
  44 + }
27 45
28 } 46 }
src/main/java/com/bsth/controller/StationController.java
@@ -43,6 +43,13 @@ public class StationController extends BaseController&lt;Station, Integer&gt; { @@ -43,6 +43,13 @@ public class StationController extends BaseController&lt;Station, Integer&gt; {
43 43
44 } 44 }
45 45
  46 + @RequestMapping(value="manualSave" , method = RequestMethod.POST)
  47 + public Map<String, Object> manualSave(@RequestParam Map<String, Object> map) {
  48 +
  49 + return service.manualSave(map);
  50 +
  51 + }
  52 +
46 @RequestMapping(value="stationSave" , method = RequestMethod.POST) 53 @RequestMapping(value="stationSave" , method = RequestMethod.POST)
47 public Map<String, Object> stationSave(@RequestParam Map<String, Object> map) { 54 public Map<String, Object> stationSave(@RequestParam Map<String, Object> map) {
48 55
src/main/java/com/bsth/controller/StationRouteController.java
@@ -38,22 +38,6 @@ public class StationRouteController extends BaseController&lt;StationRoute, Integer @@ -38,22 +38,6 @@ public class StationRouteController extends BaseController&lt;StationRoute, Integer
38 @Autowired 38 @Autowired
39 StationRouteService service; 39 StationRouteService service;
40 40
41 - /*@RequestMapping(method = RequestMethod.GET)  
42 - public Page<StationRoute> list(@RequestParam Map<String, Object> map,  
43 - @RequestParam(defaultValue = "0") int page,  
44 - @RequestParam(defaultValue = "5") int size,  
45 - @RequestParam(defaultValue = "id") String order,  
46 - @RequestParam(defaultValue = "DESC") String direction){  
47 -  
48 - Direction d;  
49 -  
50 - if(null != direction && direction.equals("ASC"))  
51 - d = Direction.ASC;  
52 - else  
53 - d = Direction.DESC;  
54 -  
55 - return service.list(map, new PageRequest(page, size, new Sort(d, order)));  
56 - }*/  
57 41
58 @RequestMapping(value = "/findStations" , method = RequestMethod.GET) 42 @RequestMapping(value = "/findStations" , method = RequestMethod.GET)
59 public List<Map<String, Object>> findPoints(@RequestParam Map<String, Object> map) { 43 public List<Map<String, Object>> findPoints(@RequestParam Map<String, Object> map) {
@@ -69,4 +53,14 @@ public class StationRouteController extends BaseController&lt;StationRoute, Integer @@ -69,4 +53,14 @@ public class StationRouteController extends BaseController&lt;StationRoute, Integer
69 public List<Map<String, Object>> findUpStationRouteCode(@RequestParam Map<String, Object> map) { 53 public List<Map<String, Object>> findUpStationRouteCode(@RequestParam Map<String, Object> map) {
70 return service.findUpStationRouteCode(map); 54 return service.findUpStationRouteCode(map);
71 } 55 }
  56 +
  57 + @RequestMapping(value = "/getStationRouteCenterPoints" , method = RequestMethod.GET)
  58 + public List<Map<String, Object>> getStationRouteCenterPoints(@RequestParam Map<String, Object> map) {
  59 + return service.getStationRouteCenterPoints(map);
  60 + }
  61 +
  62 + @RequestMapping(value = "/stationRouteIsDestroy" , method = RequestMethod.POST)
  63 + public Map<String, Object> stationRouteIsDestroy(@RequestParam Map<String, Object> map) {
  64 + return service.stationRouteIsDestroy(map);
  65 + }
72 } 66 }
src/main/java/com/bsth/repository/SectionRepository.java
@@ -61,5 +61,11 @@ public interface SectionRepository extends BaseRepository&lt;Section, Integer&gt; { @@ -61,5 +61,11 @@ public interface SectionRepository extends BaseRepository&lt;Section, Integer&gt; {
61 String descriptions, int versions); 61 String descriptions, int versions);
62 62
63 63
  64 + @Transactional
  65 + @Modifying
  66 + @Query(value="UPDATE bsth_c_section SET " +
  67 + "gsection_vector = GEOMFROMTEXT(?2) , " +
  68 + "bsection_vector = GEOMFROMTEXT(?3) WHERE id = ?1", nativeQuery=true)
  69 + public void sectionUpdate(Integer sectionId,String gsectionVector,String bsectionVector);
64 70
65 } 71 }
src/main/java/com/bsth/repository/StationRouteRepository.java
@@ -2,8 +2,10 @@ package com.bsth.repository; @@ -2,8 +2,10 @@ package com.bsth.repository;
2 2
3 import java.util.List; 3 import java.util.List;
4 4
  5 +import org.springframework.data.jpa.repository.Modifying;
5 import org.springframework.data.jpa.repository.Query; 6 import org.springframework.data.jpa.repository.Query;
6 import org.springframework.stereotype.Repository; 7 import org.springframework.stereotype.Repository;
  8 +import org.springframework.transaction.annotation.Transactional;
7 9
8 import com.bsth.entity.StationRoute; 10 import com.bsth.entity.StationRoute;
9 11
@@ -83,4 +85,16 @@ public interface StationRouteRepository extends BaseRepository&lt;StationRoute, Int @@ -83,4 +85,16 @@ public interface StationRouteRepository extends BaseRepository&lt;StationRoute, Int
83 "select MAX(station_route_code) as stationRouteCode from bsth_c_stationroute r WHERE " + 85 "select MAX(station_route_code) as stationRouteCode from bsth_c_stationroute r WHERE " +
84 "r.line=?1 and r.directions =?2 and station_route_code< ?3 ) and t.line=?1 and t.directions = ?2", nativeQuery=true) 86 "r.line=?1 and r.directions =?2 and station_route_code< ?3 ) and t.line=?1 and t.directions = ?2", nativeQuery=true)
85 List<Object[]> findUpStationRouteCode(Integer lineId,Integer direction,Integer stationRouteCode); 87 List<Object[]> findUpStationRouteCode(Integer lineId,Integer direction,Integer stationRouteCode);
  88 +
  89 +
  90 + @Query(value = "SELECT s.b_jwpoints FROM (" +
  91 + "SELECT b.station FROM bsth_c_stationroute b where b.line =?1 and b.directions = ?2) r " +
  92 + "LEFT JOIN bsth_c_station s on r.station = s.id", nativeQuery=true)
  93 + List<Object[]> getSelectStationRouteCenterPoints(Integer lineId,Integer direction);
  94 +
  95 + @Transactional
  96 + @Modifying
  97 + @Query(value="UPDATE bsth_c_stationroute SET " +
  98 + "destroy = ?2 WHERE id = ?1", nativeQuery=true)
  99 + public void stationRouteIsDestroyUpd(Integer stationRouteId, Integer destroy);
86 } 100 }
src/main/java/com/bsth/service/SectionService.java
1 package com.bsth.service; 1 package com.bsth.service;
2 2
  3 +import java.util.Map;
  4 +
3 import com.bsth.entity.Section; 5 import com.bsth.entity.Section;
4 6
5 /** 7 /**
@@ -18,5 +20,6 @@ import com.bsth.entity.Section; @@ -18,5 +20,6 @@ import com.bsth.entity.Section;
18 * 20 *
19 */ 21 */
20 public interface SectionService extends BaseService<Section, Integer> { 22 public interface SectionService extends BaseService<Section, Integer> {
21 - 23 +
  24 + Map<String, Object> sectionUpdate(Map<String, Object> map);
22 } 25 }
src/main/java/com/bsth/service/StationRouteService.java
@@ -27,4 +27,8 @@ public interface StationRouteService extends BaseService&lt;StationRoute, Integer&gt; @@ -27,4 +27,8 @@ public interface StationRouteService extends BaseService&lt;StationRoute, Integer&gt;
27 Map<String, Object> systemQuote(Map<String, Object> map); 27 Map<String, Object> systemQuote(Map<String, Object> map);
28 28
29 List<Map<String, Object>> findUpStationRouteCode(Map<String, Object> map); 29 List<Map<String, Object>> findUpStationRouteCode(Map<String, Object> map);
  30 +
  31 + List<Map<String, Object>> getStationRouteCenterPoints(Map<String, Object> map);
  32 +
  33 + Map<String, Object> stationRouteIsDestroy(Map<String, Object> map);
30 } 34 }
src/main/java/com/bsth/service/StationService.java
@@ -23,6 +23,8 @@ public interface StationService extends BaseService&lt;Station, Integer&gt; { @@ -23,6 +23,8 @@ public interface StationService extends BaseService&lt;Station, Integer&gt; {
23 23
24 Map<String, Object> systemSaveStations(Map<String, Object> map); 24 Map<String, Object> systemSaveStations(Map<String, Object> map);
25 25
  26 + Map<String, Object> manualSave(Map<String, Object> map);
  27 +
26 int getStationCode(); 28 int getStationCode();
27 29
28 Map<String, Object> stationSaveMap(Map<String, Object> map); 30 Map<String, Object> stationSaveMap(Map<String, Object> map);
src/main/java/com/bsth/service/impl/SectionServiceImpl.java
1 package com.bsth.service.impl; 1 package com.bsth.service.impl;
2 2
  3 +import java.util.HashMap;
  4 +import java.util.Map;
  5 +
  6 +import org.springframework.beans.factory.annotation.Autowired;
3 import org.springframework.stereotype.Service; 7 import org.springframework.stereotype.Service;
4 8
  9 +import com.alibaba.fastjson.JSONArray;
  10 +import com.alibaba.fastjson.JSONObject;
  11 +import com.bsth.common.ResponseCode;
5 import com.bsth.entity.Section; 12 import com.bsth.entity.Section;
  13 +import com.bsth.repository.SectionRepository;
6 import com.bsth.service.SectionService; 14 import com.bsth.service.SectionService;
7 15
8 /** 16 /**
@@ -23,5 +31,81 @@ import com.bsth.service.SectionService; @@ -23,5 +31,81 @@ import com.bsth.service.SectionService;
23 31
24 @Service 32 @Service
25 public class SectionServiceImpl extends BaseServiceImpl<Section, Integer> implements SectionService{ 33 public class SectionServiceImpl extends BaseServiceImpl<Section, Integer> implements SectionService{
  34 +
  35 + @Autowired
  36 + SectionRepository repository;
  37 +
  38 + @Override
  39 + public Map<String, Object> sectionUpdate(Map<String, Object> map) {
  40 + Map<String, Object> resultMap = new HashMap<String, Object>();
  41 +
  42 + try {
  43 +
  44 + Integer sectionId = map.get("sectionId").equals("") ? 0 : Integer.parseInt(map.get("sectionId").toString());
  45 +
  46 + // 路段信息字符串
  47 + String sectionJSON = map.get("sectionJSON").toString().equals("") ? "" : map.get("sectionJSON").toString();
  48 +
  49 + // 如果路段信息JSON字符串不为空
  50 + if(!sectionJSON.equals("")) {
  51 +
  52 +
  53 + // 转换成JSON数组
  54 + JSONArray sectionsArray = JSONArray.parseArray(sectionJSON);
  55 +
  56 + // 原始线状图形坐标集合
  57 + String sectionsBpoints = "";
  58 +
  59 + // WGS线状图形坐标集合
  60 + String sectionsWJPpoints = "";
  61 +
  62 + // 遍历
  63 + for(int s = 0 ;s<sectionsArray.size();s++) {
  64 +
  65 + String pointsLngStr = sectionsArray.getJSONObject(s).get("lng").toString();
  66 +
  67 + String pointsLatStr = sectionsArray.getJSONObject(s).get("lat").toString();
  68 +
  69 + String WGSLngStr = JSONObject.parseObject(sectionsArray.getJSONObject(s).get("WGSpotion").toString()).get("Lng").toString();
  70 +
  71 + String WGSLatStr = JSONObject.parseObject(sectionsArray.getJSONObject(s).get("WGSpotion").toString()).get("Lat").toString();
  72 +
  73 + if(s==0) {
  74 +
  75 + sectionsBpoints = pointsLngStr + " " + pointsLatStr;
  76 +
  77 + sectionsWJPpoints = WGSLngStr + " " + WGSLatStr;
  78 +
  79 + }else {
  80 +
  81 + sectionsBpoints = sectionsBpoints + "," + pointsLngStr + " " + pointsLatStr;
  82 +
  83 + sectionsWJPpoints = sectionsWJPpoints + "," + WGSLngStr + " " + WGSLatStr;
  84 +
  85 + }
  86 +
  87 +
  88 + }
  89 +
  90 + // WGS坐标点集合
  91 + String gsectionVector = "LINESTRING(" + sectionsWJPpoints +")";
  92 +
  93 + // 原坐标点集合
  94 + String bsectionVector = "LINESTRING(" + sectionsBpoints + ")";
  95 + repository.sectionUpdate(sectionId, gsectionVector, bsectionVector);
  96 + }
  97 +
  98 + resultMap.put("status", ResponseCode.SUCCESS);
  99 +
  100 + } catch (Exception e) {
  101 +
  102 + resultMap.put("status", ResponseCode.ERROR);
  103 +
  104 + logger.error("save erro.", e);
  105 +
  106 + }
  107 +
  108 + return resultMap;
  109 + }
26 110
27 } 111 }
src/main/java/com/bsth/service/impl/StationRouteServiceImpl.java
@@ -346,4 +346,57 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -346,4 +346,57 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
346 return list; 346 return list;
347 } 347 }
348 348
  349 + @Override
  350 + public List<Map<String, Object>> getStationRouteCenterPoints(Map<String, Object> map) {
  351 +
  352 + List<Map<String, Object>> resultList = new ArrayList<Map<String,Object>>();
  353 +
  354 + Integer lineId = map.get("lineId").equals("") ? null : Integer.parseInt(map.get("lineId").toString());
  355 +
  356 + Integer direction = map.get("direction").equals("") ? null : Integer.parseInt(map.get("direction").toString());
  357 +
  358 + List<Object[]> list = repository.getSelectStationRouteCenterPoints(lineId, direction);
  359 +
  360 + if(list.size()>0) {
  361 +
  362 + for(int i = 0;i<list.size();i++) {
  363 +
  364 + Map<String, Object> tempM = new HashMap<String,Object>();
  365 +
  366 + tempM.put("bJwpoints", list.get(i));
  367 +
  368 + resultList.add(tempM);
  369 +
  370 + }
  371 +
  372 + }
  373 +
  374 + return resultList;
  375 + }
  376 +
  377 + @Override
  378 + public Map<String, Object> stationRouteIsDestroy(Map<String, Object> map) {
  379 + Map<String, Object> resultMap = new HashMap<String,Object>();
  380 +
  381 + try {
  382 +
  383 + Integer stationRouteId = map.get("stationRouteId").equals("") ? 0 : Integer.parseInt(map.get("stationRouteId").toString());
  384 +
  385 + Integer destroy = map.get("destroy").equals("") ? 0 : Integer.parseInt(map.get("destroy").toString());
  386 +
  387 + repository.stationRouteIsDestroyUpd(stationRouteId, destroy);
  388 +
  389 + resultMap.put("status", ResponseCode.SUCCESS);
  390 +
  391 + } catch (Exception e) {
  392 +
  393 + resultMap.put("status", ResponseCode.ERROR);
  394 +
  395 + logger.error("save erro.", e);
  396 +
  397 + }
  398 +
  399 + return resultMap;
  400 + }
  401 +
349 } 402 }
src/main/java/com/bsth/service/impl/StationServiceImpl.java
@@ -95,6 +95,10 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem @@ -95,6 +95,10 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem
95 // 线路ID 95 // 线路ID
96 int lineId = map.get("lineId").toString().equals("") ? 0 : Integer.parseInt(map.get("lineId").toString()); 96 int lineId = map.get("lineId").toString().equals("") ? 0 : Integer.parseInt(map.get("lineId").toString());
97 97
  98 + Double sectionDistance = 0.0;
  99 +
  100 + Double sectionDuration = 0.0;
  101 +
98 // 线路信息 102 // 线路信息
99 Line resultLine = lineRepository.findOne(lineId); 103 Line resultLine = lineRepository.findOne(lineId);
100 104
@@ -118,6 +122,8 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem @@ -118,6 +122,8 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem
118 122
119 distance = d.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 123 distance = d.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
120 124
  125 + sectionDistance= distance + sectionDistance;
  126 +
121 Double duration = stationsArray.getJSONObject(i).get("duration").equals("") ? 0 : Double.parseDouble(stationsArray.getJSONObject(i).get("duration").toString()); 127 Double duration = stationsArray.getJSONObject(i).get("duration").equals("") ? 0 : Double.parseDouble(stationsArray.getJSONObject(i).get("duration").toString());
122 128
123 // 转成分钟 129 // 转成分钟
@@ -127,6 +133,8 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem @@ -127,6 +133,8 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem
127 133
128 duration = t.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 134 duration = t.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
129 135
  136 + sectionDuration = duration + sectionDuration;
  137 +
130 // 百度经纬度坐标 138 // 百度经纬度坐标
131 String bJwpoints = ""; 139 String bJwpoints = "";
132 140
@@ -213,7 +221,7 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem @@ -213,7 +221,7 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem
213 route.setStationCode(arg0.getStationCod()); 221 route.setStationCode(arg0.getStationCod());
214 222
215 // 站点序号 223 // 站点序号
216 - route.setStationRouteCode((i+1)*10); 224 + route.setStationRouteCode((i+1)*100);
217 225
218 // 站点类型 226 // 站点类型
219 if(i==0) { 227 if(i==0) {
@@ -248,6 +256,7 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem @@ -248,6 +256,7 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem
248 // 线路编码 256 // 线路编码
249 route.setLineCode(resultLine.getLineCode()); 257 route.setLineCode(resultLine.getLineCode());
250 258
  259 + route.setDestroy(destroy);
251 260
252 // 插入站点路由信息 261 // 插入站点路由信息
253 routeRepository.save(route); 262 routeRepository.save(route);
@@ -345,10 +354,10 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem @@ -345,10 +354,10 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem
345 String roadCoding = ""; 354 String roadCoding = "";
346 355
347 // 路段距离 356 // 路段距离
348 - double sectionDistance = 0; 357 + // double sectionDistance = 0;
349 358
350 // 路段时间 359 // 路段时间
351 - double sectionTime = 0; 360 + // double sectionTime = 0;
352 361
353 // 限速 362 // 限速
354 double speedLimit = Double.parseDouble(speedLimitStr); 363 double speedLimit = Double.parseDouble(speedLimitStr);
@@ -361,7 +370,7 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem @@ -361,7 +370,7 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem
361 370
362 middleNode, gsectionVector, bsectionVector, sectionType, csectionVector, 371 middleNode, gsectionVector, bsectionVector, sectionType, csectionVector,
363 372
364 - roadCoding, sectionDistance, sectionTime, dbType, speedLimit, 373 + roadCoding, sectionDistance, sectionDuration, dbType, speedLimit,
365 374
366 descriptions, versions); 375 descriptions, versions);
367 376
@@ -768,4 +777,341 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem @@ -768,4 +777,341 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem
768 return resultMap; 777 return resultMap;
769 } 778 }
770 779
  780 +
  781 + @Override
  782 + public Map<String, Object> manualSave(Map<String, Object> map) {
  783 +
  784 + Map<String, Object> resultMap = new HashMap<String,Object>();
  785 +
  786 + try {
  787 +
  788 + // 站点信息字符传
  789 + String stationJSON = map.get("stationJSON").equals("") ? "" : map.get("stationJSON").toString();
  790 +
  791 + // 路段信息字符串
  792 + String sectionJSON = map.get("sectionJSON").equals("") ? "" : map.get("sectionJSON").toString();
  793 +
  794 + // 方向
  795 + int directions = Integer.parseInt(map.get("directions").toString());
  796 +
  797 + // 是否撤销
  798 + int destroy = map.get("destroy").equals("") ? 0 : Integer.parseInt(map.get("destroy").toString());
  799 +
  800 + // 版本
  801 + int versions = map.get("versions").equals("") ? 0 : Integer.parseInt(map.get("versions").toString());
  802 +
  803 + // 坐标类型
  804 + String dbType = map.get("dbType").equals("") ? "" : map.get("dbType").toString();
  805 +
  806 + // 限速
  807 + String speedLimitStr = map.get("speedLimit").equals("") ? "" : map.get("speedLimit").toString();
  808 +
  809 + // 线路ID
  810 + int lineId = map.get("lineId").equals("") ? 0 : Integer.parseInt(map.get("lineId").toString());
  811 +
  812 + // 线路信息
  813 + Line resultLine = lineRepository.findOne(lineId);
  814 +
  815 + Double distance = 0.0;
  816 +
  817 + Double duration = 0.0;
  818 +
  819 + if(!stationJSON.equals("")) {
  820 +
  821 + JSONArray stationsArray = JSONArray.parseArray(stationJSON);
  822 +
  823 + for(int i = 0;i <stationsArray.size();i++) {
  824 +
  825 + // 站点名称
  826 + String stationName = stationsArray.getJSONObject(i).equals("") ? "" : stationsArray.getJSONObject(i).get("name").toString();
  827 +
  828 + String distanceStr = stationsArray.getJSONObject(i).get("distance").equals("") ? "" : stationsArray.getJSONObject(i).get("distance").toString();
  829 +
  830 + String durationStr = stationsArray.getJSONObject(i).get("duration").equals("") ? "" : stationsArray.getJSONObject(i).get("duration").toString();
  831 +
  832 + if(!distanceStr.equals("")){
  833 +
  834 + distance = Double.parseDouble(distanceStr.replaceAll("公里", ""));
  835 +
  836 + }
  837 +
  838 + if(!durationStr.equals("")){
  839 +
  840 + duration = Double.parseDouble(durationStr.replaceAll("分钟", ""));
  841 +
  842 + }
  843 + // 百度经纬度坐标
  844 + String bJwpoints = "";
  845 +
  846 + // 百度坐标经度
  847 + String bLonx = JSONObject.parseObject(stationsArray.getJSONObject(i).get("potion").toString()).get("lng").toString();
  848 +
  849 + // 百度坐标纬度
  850 + String bLatx = JSONObject.parseObject(stationsArray.getJSONObject(i).get("potion").toString()).get("lat").toString();
  851 +
  852 + // 百度经纬度
  853 + bJwpoints = bLonx + " " + bLatx;
  854 +
  855 + List<Object[]> stationNameList = repository.findStationName(stationName);
  856 +
  857 + boolean isHave = isHaveStationname(bJwpoints,stationNameList);
  858 +
  859 + // 初始化站点对象
  860 + Station arg0 = new Station();
  861 +
  862 + // 站点编码
  863 + int stationCode = 0;
  864 +
  865 + if(isHave) {
  866 +
  867 + Integer stationId = Integer.parseInt(stationNameList.get(0)[1].toString());
  868 +
  869 + arg0 = repository.findOne(stationId);
  870 +
  871 + stationCode = Integer.parseInt(arg0.getStationCod());
  872 +
  873 + }else {
  874 +
  875 + stationCode = repository.stationMaxId();
  876 +
  877 + arg0.setStationName(stationName);
  878 +
  879 + // 原坐标类型
  880 + arg0.setDbType(dbType);
  881 +
  882 + // 站点地理位置WGS坐标经度
  883 + String gLonx = JSONObject.parseObject(stationsArray.getJSONObject(i).get("WGSpotion").toString()).get("Lng").toString();
  884 + arg0.setgLonx(Float.parseFloat(gLonx));
  885 +
  886 + // 站点地理位置WGS坐标纬度
  887 + String gLaty = JSONObject.parseObject(stationsArray.getJSONObject(i).get("WGSpotion").toString()).get("Lat").toString();
  888 + arg0.setgLaty(Float.parseFloat(gLaty));
  889 +
  890 + // 半径
  891 + int radius = map.get("radius").equals("") ? 0 : Integer.parseInt(map.get("radius").toString());
  892 + arg0.setRadius(radius);
  893 +
  894 + // 图形类型
  895 + String shapesType = map.get("shapesType").equals("") ? "" : map.get("shapesType").toString();
  896 + arg0.setShapesType(shapesType);
  897 +
  898 + // 站点编码
  899 + arg0.setStationCod(String.valueOf(stationCode+1));
  900 +
  901 + // 是否想撤销
  902 + arg0.setDestroy(destroy);
  903 +
  904 + // 版本号
  905 + arg0.setVersions(versions);
  906 +
  907 + arg0.setbJwpoints(bJwpoints);
  908 +
  909 + // 插入站点信息
  910 + repository.save(arg0);
  911 + // 站点路由对象
  912 + StationRoute route = new StationRoute();
  913 +
  914 + // 站点名称
  915 + route.setStationName(stationName);
  916 +
  917 + route.setDistances(distance);
  918 +
  919 + route.setToTime(duration);
  920 +
  921 +
  922 + // 站点编码
  923 + route.setStationCode(arg0.getStationCod());
  924 +
  925 + // 站点序号
  926 + route.setStationRouteCode((i+1)*10);
  927 +
  928 + // 站点类型
  929 + if(i==0) {
  930 +
  931 + // 起始站
  932 + route.setStationMark("B");
  933 +
  934 + }else if(i==stationsArray.size()-1) {
  935 +
  936 + // 终点站
  937 + route.setStationMark("E");
  938 +
  939 + }else {
  940 +
  941 + // 中途站
  942 + route.setStationMark("Z");
  943 +
  944 + }
  945 +
  946 + // 版本号
  947 + route.setVersions(versions);
  948 +
  949 + // 站点ID
  950 + route.setStation(arg0);
  951 +
  952 + // 方向
  953 + route.setDirections(directions);
  954 +
  955 + // 线路ID
  956 + route.setLine(resultLine);
  957 +
  958 + // 线路编码
  959 + route.setLineCode(resultLine.getLineCode());
  960 +
  961 +
  962 + // 插入站点路由信息
  963 + routeRepository.save(route);
  964 +
  965 + }
  966 + }
  967 + }
  968 +
  969 + // 如果路段信息JSON字符串不为空
  970 + if(!sectionJSON.equals("")) {
  971 +
  972 + // 转换成JSON数组
  973 + JSONArray sectionsArray = JSONArray.parseArray(sectionJSON);
  974 +
  975 + // 遍历
  976 + for(int s = 0 ;s<sectionsArray.size();s++) {
  977 +
  978 + // 站点名称
  979 + String sectionName = sectionsArray.getJSONObject(s).equals("") ? "" : sectionsArray.getJSONObject(s).get("sectionName").toString();
  980 +
  981 + String pointsStr = sectionsArray.getJSONObject(s).equals("") ? "" : sectionsArray.getJSONObject(s).get("points").toString();
  982 +
  983 + // 原始线状图形坐标集合
  984 + String sectionsBpoints = "";
  985 +
  986 + // WGS线状图形坐标集合
  987 + String sectionsWJPpoints = "";
  988 +
  989 + if(!pointsStr.equals("")){
  990 +
  991 + JSONArray pointsArray = JSONArray.parseArray(pointsStr);
  992 +
  993 + for(int p =0;p<pointsArray.size();p++){
  994 +
  995 + if(p==pointsArray.size()-1){
  996 +
  997 + sectionsBpoints = sectionsBpoints + pointsArray.getJSONObject(p).get("lng").toString() + " " +pointsArray.getJSONObject(p).get("lat").toString();
  998 +
  999 + sectionsWJPpoints = sectionsWJPpoints + pointsArray.getJSONObject(p).getJSONObject("WGSpotion").get("Lng") + " " +pointsArray.getJSONObject(p).getJSONObject("WGSpotion").get("Lat");
  1000 +
  1001 + }else {
  1002 +
  1003 + sectionsBpoints = sectionsBpoints + pointsArray.getJSONObject(p).get("lng").toString() + " " +pointsArray.getJSONObject(p).get("lat").toString()+",";
  1004 +
  1005 + sectionsWJPpoints = sectionsWJPpoints + pointsArray.getJSONObject(p).getJSONObject("WGSpotion").get("Lng") + " " +pointsArray.getJSONObject(p).getJSONObject("WGSpotion").get("Lat") +",";
  1006 +
  1007 +
  1008 + }
  1009 +
  1010 + }
  1011 +
  1012 + }
  1013 + System.out.println(sectionName);
  1014 +
  1015 + System.out.println(sectionsBpoints);
  1016 +
  1017 + System.out.println(sectionsWJPpoints);
  1018 +
  1019 +
  1020 + int sectionMaxId = sectionRepository.sectionMaxId();
  1021 +
  1022 + String sectionCode = String.valueOf(sectionMaxId+1);
  1023 +
  1024 + // 交出路
  1025 + String crosesRoad = "";
  1026 +
  1027 + // 终止节点
  1028 + String endNode = "";
  1029 +
  1030 + // 开始节点
  1031 + String startNode = "";
  1032 +
  1033 + // 中间节点
  1034 + String middleNode = "";
  1035 +
  1036 + // WGS坐标点集合
  1037 + String gsectionVector = "LINESTRING(" + sectionsWJPpoints +")";
  1038 +
  1039 + // 原坐标点集合
  1040 + String bsectionVector = "LINESTRING(" + sectionsBpoints + ")";
  1041 +
  1042 + // 城建坐标点集合
  1043 + String csectionVector = "";
  1044 +
  1045 + // 路段类型
  1046 + String sectionType = "";
  1047 +
  1048 + // 道路编码
  1049 + String roadCoding = "";
  1050 +
  1051 + // 路段距离
  1052 + double sectionDistance = distance;
  1053 +
  1054 + // 路段时间
  1055 + double sectionTime = duration;
  1056 +
  1057 + // 限速
  1058 + double speedLimit = Double.parseDouble(speedLimitStr);
  1059 +
  1060 + // 说明
  1061 + String descriptions = "";
  1062 +
  1063 +
  1064 + sectionRepository.systemSave(sectionCode, sectionName, crosesRoad, endNode, startNode,
  1065 +
  1066 + middleNode, gsectionVector, bsectionVector, sectionType, csectionVector,
  1067 +
  1068 + roadCoding, sectionDistance, sectionTime, dbType, speedLimit,
  1069 +
  1070 + descriptions, versions);
  1071 +
  1072 +
  1073 +
  1074 + Section section = sectionRepository.findOne(Integer.parseInt(sectionCode));
  1075 +
  1076 + // 路段路由
  1077 + SectionRoute sectionRoute = new SectionRoute();
  1078 +
  1079 + // 路段序号
  1080 + sectionRoute.setSectionrouteCode(1);
  1081 +
  1082 + // 线路编码
  1083 + sectionRoute.setLineCode(resultLine.getLineCode());
  1084 +
  1085 + // 路段ID
  1086 + sectionRoute.setSection(section);
  1087 +
  1088 + // 线路ID
  1089 + sectionRoute.setLine(resultLine);
  1090 +
  1091 + // 路段编码
  1092 + sectionRoute.setSectionCode(sectionCode);
  1093 +
  1094 + // 版本
  1095 + sectionRoute.setVersions(versions);
  1096 +
  1097 + // 方向
  1098 + sectionRoute.setDirections(directions);
  1099 +
  1100 + sectionRouteRepository.save(sectionRoute);
  1101 + }
  1102 + }
  1103 +
  1104 + resultMap.put("status", ResponseCode.SUCCESS);
  1105 +
  1106 + } catch (Exception e) {
  1107 +
  1108 + resultMap.put("status", ResponseCode.ERROR);
  1109 +
  1110 + logger.error("save erro.", e);
  1111 +
  1112 + }
  1113 +
  1114 + return resultMap;
  1115 + }
  1116 +
771 } 1117 }
src/main/resources/static/pages/base/line/js/line-list-table.js
@@ -123,7 +123,6 @@ @@ -123,7 +123,6 @@
123 }); 123 });
124 page = 0; 124 page = 0;
125 125
126 - console.log(params);  
127 loadTableDate(params,true); 126 loadTableDate(params,true);
128 }); 127 });
129 128
src/main/resources/static/pages/base/section/js/section-list-table.js
@@ -13,61 +13,7 @@ @@ -13,61 +13,7 @@
13 */ 13 */
14 14
15 (function(){ 15 (function(){
16 -  
17 - // 填充公司下拉框选择值  
18 - $get('/business/all', {upCode_eq: '88'}, function(array){  
19 -  
20 - // 公司下拉options属性值  
21 - var options = '<option value="">请选择...</option>';  
22 -  
23 - // 遍历array  
24 - $.each(array, function(i,d){  
25 -  
26 - options += '<option value="'+d.businessCode+'">'+d.businessName+'</option>';  
27 -  
28 - });  
29 -  
30 - // 填充公司下拉框options,并添加公司下拉框值改变事件setbrancheCompanySelectOptions  
31 - $('#companySelect').html(options).on('change', setbrancheCompanySelectOptions);  
32 -  
33 - });  
34 -  
35 - // 填充分公司下拉框  
36 - setbrancheCompanySelectOptions();  
37 16
38 - // 填充分公司下拉框选择值  
39 - function setbrancheCompanySelectOptions(){  
40 -  
41 - // 获取公司下拉框选择值  
42 - var businessCode = $('#companySelect').val();  
43 -  
44 - // 分公司下拉框options属性值  
45 - var options = '<option value="">请选择...</option>';  
46 -  
47 - // 如果公司选择为空则分公司为空 ; 否则查询出所属公司下的分公司名称和相应分公司代码  
48 - if(businessCode == null || businessCode ==''){  
49 -  
50 - // 填充分公司下拉框options  
51 - $('#brancheCompanySelect').html(options);  
52 -  
53 - } else {  
54 -  
55 - // 查询出所属公司下的分公司名称和相应分公司代码  
56 - $get('/business/all', {upCode_eq: businessCode}, function(array){  
57 -  
58 - // 遍历array  
59 - $.each(array, function(i,d){  
60 -  
61 - options += '<option value="'+d.businessCode+'">'+d.businessName+'</option>';  
62 -  
63 - // 填充分公司下拉框options  
64 - $('#brancheCompanySelect').html(options);  
65 -  
66 - });  
67 - });  
68 - }  
69 - }  
70 -  
71 /** 17 /**
72 * -----page : 当前页 18 * -----page : 当前页
73 * 19 *
@@ -76,12 +22,6 @@ @@ -76,12 +22,6 @@
76 */ 22 */
77 var page = 0,initPag; 23 var page = 0,initPag;
78 24
79 - // 选择框  
80 - var icheckOptions = {  
81 - checkboxClass: 'icheckbox_flat-blue',  
82 - increaseArea: '20%'  
83 - };  
84 -  
85 // 表格数据分页加载 25 // 表格数据分页加载
86 loadTableDate(null,true); 26 loadTableDate(null,true);
87 27
@@ -149,16 +89,13 @@ @@ -149,16 +89,13 @@
149 // 异步请求获取表格数据 89 // 异步请求获取表格数据
150 $.get('/sectionroute',params,function(result){ 90 $.get('/sectionroute',params,function(result){
151 91
152 - console.log(result); 92 + // 添加序号
  93 + result.content.page = page;
153 94
154 // 把数据填充到模版中 95 // 把数据填充到模版中
155 var tbodyHtml = template('sectionInfo_list_table_temp',{list:result.content}); 96 var tbodyHtml = template('sectionInfo_list_table_temp',{list:result.content});
156 // 把渲染好的模版html文本追加到表格中 97 // 把渲染好的模版html文本追加到表格中
157 $('#datatable_line tbody').html(tbodyHtml); 98 $('#datatable_line tbody').html(tbodyHtml);
158 - // 制定复选框  
159 - $('#datatable_line tbody').find('.icheck').iCheck(icheckOptions);  
160 - // 复选框改变事件  
161 - $('#datatable_line tbody').find('.icheck').on('ifChanged', iCheckChange);  
162 // 是重新分页且返回数据长度大于0 99 // 是重新分页且返回数据长度大于0
163 if(isPon && result.content.length > 0){ 100 if(isPon && result.content.length > 0){
164 // 重新分页 101 // 重新分页
@@ -171,22 +108,6 @@ @@ -171,22 +108,6 @@
171 }); 108 });
172 } 109 }
173 110
174 - /**  
175 - * 复选框组件  
176 - *  
177 - */  
178 - function iCheckChange(){  
179 - // 获取当前的父节点tr  
180 - var tr = $(this).parents('tr');  
181 -  
182 - // 判断当前是否选中  
183 - if(this.checked)  
184 - // 选中,则增添父节点tr的样式  
185 - tr.addClass('row-active');  
186 - else  
187 - // 未选中,则删除父节点tr的样式  
188 - tr.removeClass('row-active');  
189 - }  
190 111
191 /** 112 /**
192 * 分页栏组件 113 * 分页栏组件
src/main/resources/static/pages/base/section/list.html
@@ -95,7 +95,7 @@ @@ -95,7 +95,7 @@
95 {{each list as obj i }} 95 {{each list as obj i }}
96 <tr> 96 <tr>
97 <td style="vertical-align: middle;"> 97 <td style="vertical-align: middle;">
98 - <input type="checkbox" class="group-checkable icheck" data-id="{{obj.id}}"> 98 + {{(list.page*10)+(i+1)}}
99 </td> 99 </td>
100 <td> 100 <td>
101 {{obj.lineCode}} 101 {{obj.lineCode}}
src/main/resources/static/pages/base/station/js/station-list-table.js
@@ -13,61 +13,7 @@ @@ -13,61 +13,7 @@
13 */ 13 */
14 14
15 (function(){ 15 (function(){
16 -  
17 - // 填充公司下拉框选择值  
18 - $get('/business/all', {upCode_eq: '88'}, function(array){  
19 -  
20 - // 公司下拉options属性值  
21 - var options = '<option value="">请选择...</option>';  
22 -  
23 - // 遍历array  
24 - $.each(array, function(i,d){  
25 -  
26 - options += '<option value="'+d.businessCode+'">'+d.businessName+'</option>';  
27 -  
28 - });  
29 -  
30 - // 填充公司下拉框options,并添加公司下拉框值改变事件setbrancheCompanySelectOptions  
31 - $('#companySelect').html(options).on('change', setbrancheCompanySelectOptions);  
32 -  
33 - });  
34 -  
35 - // 填充分公司下拉框  
36 - setbrancheCompanySelectOptions();  
37 16
38 - // 填充分公司下拉框选择值  
39 - function setbrancheCompanySelectOptions(){  
40 -  
41 - // 获取公司下拉框选择值  
42 - var businessCode = $('#companySelect').val();  
43 -  
44 - // 分公司下拉框options属性值  
45 - var options = '<option value="">请选择...</option>';  
46 -  
47 - // 如果公司选择为空则分公司为空 ; 否则查询出所属公司下的分公司名称和相应分公司代码  
48 - if(businessCode == null || businessCode ==''){  
49 -  
50 - // 填充分公司下拉框options  
51 - $('#brancheCompanySelect').html(options);  
52 -  
53 - } else {  
54 -  
55 - // 查询出所属公司下的分公司名称和相应分公司代码  
56 - $get('/business/all', {upCode_eq: businessCode}, function(array){  
57 -  
58 - // 遍历array  
59 - $.each(array, function(i,d){  
60 -  
61 - options += '<option value="'+d.businessCode+'">'+d.businessName+'</option>';  
62 -  
63 - // 填充分公司下拉框options  
64 - $('#brancheCompanySelect').html(options);  
65 -  
66 - });  
67 - });  
68 - }  
69 - }  
70 -  
71 /** 17 /**
72 * -----page : 当前页 18 * -----page : 当前页
73 * 19 *
@@ -76,11 +22,7 @@ @@ -76,11 +22,7 @@
76 */ 22 */
77 var page = 0,initPag; 23 var page = 0,initPag;
78 24
79 - // 选择框  
80 - var icheckOptions = {  
81 - checkboxClass: 'icheckbox_flat-blue',  
82 - increaseArea: '20%'  
83 - }; 25 +
84 26
85 // 表格数据分页加载 27 // 表格数据分页加载
86 loadTableDate(null,true); 28 loadTableDate(null,true);
@@ -149,16 +91,13 @@ @@ -149,16 +91,13 @@
149 // 异步请求获取表格数据 91 // 异步请求获取表格数据
150 $.get('/stationroute',params,function(result){ 92 $.get('/stationroute',params,function(result){
151 93
152 - console.log(result); 94 + // 添加序号
  95 + result.content.page = page;
153 96
154 // 把数据填充到模版中 97 // 把数据填充到模版中
155 var tbodyHtml = template('staitonInfo_list_table_temp',{list:result.content}); 98 var tbodyHtml = template('staitonInfo_list_table_temp',{list:result.content});
156 // 把渲染好的模版html文本追加到表格中 99 // 把渲染好的模版html文本追加到表格中
157 $('#datatable_line tbody').html(tbodyHtml); 100 $('#datatable_line tbody').html(tbodyHtml);
158 - // 制定复选框  
159 - $('#datatable_line tbody').find('.icheck').iCheck(icheckOptions);  
160 - // 复选框改变事件  
161 - $('#datatable_line tbody').find('.icheck').on('ifChanged', iCheckChange);  
162 // 是重新分页且返回数据长度大于0 101 // 是重新分页且返回数据长度大于0
163 if(isPon && result.content.length > 0){ 102 if(isPon && result.content.length > 0){
164 // 重新分页 103 // 重新分页
@@ -172,23 +111,6 @@ @@ -172,23 +111,6 @@
172 } 111 }
173 112
174 /** 113 /**
175 - * 复选框组件  
176 - *  
177 - */  
178 - function iCheckChange(){  
179 - // 获取当前的父节点tr  
180 - var tr = $(this).parents('tr');  
181 -  
182 - // 判断当前是否选中  
183 - if(this.checked)  
184 - // 选中,则增添父节点tr的样式  
185 - tr.addClass('row-active');  
186 - else  
187 - // 未选中,则删除父节点tr的样式  
188 - tr.removeClass('row-active');  
189 - }  
190 -  
191 - /**  
192 * 分页栏组件 114 * 分页栏组件
193 * 115 *
194 */ 116 */
src/main/resources/static/pages/base/station/list.html
@@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
29 <table class="table table-striped table-bordered table-hover table-checkable" id="datatable_line"> 29 <table class="table table-striped table-bordered table-hover table-checkable" id="datatable_line">
30 <thead> 30 <thead>
31 <tr role="row" class="heading"> 31 <tr role="row" class="heading">
32 - <th width="3%">#</th> 32 + <th width="3%">序号</th>
33 <th width="8%">线路编号</th> 33 <th width="8%">线路编号</th>
34 <th width="8%">线路名称</th> 34 <th width="8%">线路名称</th>
35 <th width="8%">线路方向</th> 35 <th width="8%">线路方向</th>
@@ -42,7 +42,7 @@ @@ -42,7 +42,7 @@
42 <th width="15%">操作</th> 42 <th width="15%">操作</th>
43 </tr> 43 </tr>
44 <tr role="row" class="filter"> 44 <tr role="row" class="filter">
45 - <td></td> 45 + <td>#</td>
46 <td> 46 <td>
47 <input type="text" class="form-control form-filter input-sm" name="carParkCode"> 47 <input type="text" class="form-control form-filter input-sm" name="carParkCode">
48 </td> 48 </td>
@@ -99,7 +99,7 @@ @@ -99,7 +99,7 @@
99 {{each list as obj i }} 99 {{each list as obj i }}
100 <tr> 100 <tr>
101 <td style="vertical-align: middle;"> 101 <td style="vertical-align: middle;">
102 - <input type="checkbox" class="group-checkable icheck" data-id="{{obj.id}}"> 102 + {{(list.page*10)+(i+1)}}
103 </td> 103 </td>
104 <td> 104 <td>
105 {{obj.lineCode}} 105 {{obj.lineCode}}
src/main/resources/static/pages/base/stationroute/add_manual_select.html
1 -<!-- 手动规划线路站点方式 --> 1 +<!-- 其他规划方式 -->
2 <div class="modal fade" id="add_manual_mobal" tabindex="-1" role="basic" aria-hidden="true"> 2 <div class="modal fade" id="add_manual_mobal" tabindex="-1" role="basic" aria-hidden="true">
3 3
4 <div class="modal-dialog"> 4 <div class="modal-dialog">
@@ -7,34 +7,27 @@ @@ -7,34 +7,27 @@
7 7
8 <div class="modal-header"> 8 <div class="modal-header">
9 <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button> 9 <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
10 - <h4 class="modal-title">手动规划线路站点方式</h4> 10 + <h4 class="modal-title">选择规划方式</h4>
11 </div> 11 </div>
12 12
13 <div class="modal-body"> 13 <div class="modal-body">
14 14
15 - <form class="form-horizontal" action="/" method="post" id="formBootbox" role="form">  
16 - <div class="alert alert-danger display-hide" id="requiredname">  
17 - <button class="close" data-close="alert"></button>  
18 - 站点名称为必填项  
19 - </div>  
20 - <div class="alert alert-danger display-hide" id="serchrname">  
21 - <button class="close" data-close="alert"></button>  
22 - 系统无法生成,请选择其他方式新增  
23 - </div>  
24 - 15 + <form class="form-horizontal" action="/" method="post" id="add_manual_form" role="form">
  16 +
25 <div class="form-group"> 17 <div class="form-group">
26 - <label class="col-md-3 control-label">手动规划方式:</label> 18 + <label class="col-md-3 control-label">规划方式:</label>
27 <div class="col-md-9"> 19 <div class="col-md-9">
28 <div class="icheck-list"> 20 <div class="icheck-list">
29 <label > 21 <label >
30 - <input type="radio" class="icheck" name="addManualRadio" value=1 checked> 模板添加  
31 - </label>  
32 - <label>  
33 - <input type="radio" class="icheck" name="addManualRadio" value=0 checked> 导入Excel文件 22 + <input type="radio" class="icheck" name="addManualRadio" value=0 checked> 手动添加站点
34 </label> 23 </label>
  24 + <!-- <label>
  25 + <input type="radio" class="icheck" name="addManualRadio" value=1> 导入Excel文件
  26 + </label> -->
35 </div> 27 </div>
36 </div> 28 </div>
37 </div> 29 </div>
  30 +
38 </form> 31 </form>
39 </div> 32 </div>
40 <div class="modal-footer"> 33 <div class="modal-footer">
@@ -47,22 +40,34 @@ @@ -47,22 +40,34 @@
47 <script type="text/javascript"> 40 <script type="text/javascript">
48 $(function(){ 41 $(function(){
49 42
50 - $('#add_manual_mobal').modal({  
51 -  
52 - show : true,  
53 -  
54 - backdrop: 'static',  
55 -  
56 - keyboard: false  
57 -  
58 -  
59 - }); 43 + // 显示其他规划方式弹出层
  44 + $('#add_manual_mobal').modal({show : true,backdrop: 'static', keyboard: false});
  45 +
  46 + // 获取表单元素
  47 + var form = $('#add_manual_form');
60 48
  49 + // 表单序列化
  50 + var params = form.serializeJSON();
  51 +
  52 + // 下一步点击事件
61 $('.modal-footer #addManualSelectnextButton').on('click',function() { 53 $('.modal-footer #addManualSelectnextButton').on('click',function() {
62 54
  55 + // 获取其他规划方式值
  56 + var addManualRadioV = params.addManualRadio;
  57 +
  58 + // 隐藏其他规划方式弹出层
63 $('#add_manual_mobal').modal('hide'); 59 $('#add_manual_mobal').modal('hide');
64 60
65 - layer.msg('该功能正在开发过程中...请暂时使用系统规划'); 61 + if(addManualRadioV==0){
  62 +
  63 + // 加载模板手动添加站点页面
  64 + $.get('addstationstemplate.html', function(m){$(pjaxContainer).append(m);});
  65 +
  66 + }else if(addManualRadioV==1) {
  67 +
  68 +
  69 + }
  70 +
66 71
67 }); 72 });
68 73
src/main/resources/static/pages/base/stationroute/addstationstemplate.html 0 → 100644
  1 +<!-- 手动添加站点 -->
  2 +<div class="modal fade" id="add_station_template_mobal" tabindex="-1" role="basic" aria-hidden="true">
  3 +
  4 + <div class="modal-dialog">
  5 +
  6 + <div class="modal-content">
  7 +
  8 + <div class="modal-header">
  9 + <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
  10 + <h4 class="modal-title">手动添加站点</h4>
  11 + </div>
  12 +
  13 + <div class="modal-body">
  14 +
  15 + <form class="form-horizontal" role="form" id="save_station_template_form" action="/module" method="post">
  16 +
  17 + <div class="alert alert-danger display-hide"> <button class="close" data-close="alert"></button>
  18 + 您的输入有误,请检查下面的输入项
  19 + </div>
  20 +
  21 + <!-- 站点名称 -->
  22 + <div class="form-body">
  23 +
  24 + <div class="form-group">
  25 + <label class="control-label col-md-3">
  26 + <span class="required"> * </span> 站点名称:
  27 + </label>
  28 + <div class="col-md-6">
  29 + <textarea class="form-control" rows="10" name="stations" id="stationsInput" placeholder="站点名称"></textarea>
  30 + </div>
  31 + </div>
  32 +
  33 + </div>
  34 +
  35 + <div class="form-group">
  36 + <div class="alert alert-info font-blue-chambray" style="background-color: #2C3E50">
  37 + <h5 class="block"><span class="help-block"> * 手动添加站点规划说明: </span></h5>
  38 + <p><span class="help-block">&nbsp;请在文本域中按站点顺序依次输入站点名称,每输入完一个站名时请按回车键(Enter)换行.</span> </p>
  39 + </div>
  40 + </div>
  41 + </form>
  42 + </div>
  43 + <div class="modal-footer">
  44 + <button type="button" class="btn default" data-dismiss="modal" id="addMobalHiden">取消</button>
  45 + <button type="button" class="btn btn-primary" id="templateSaveData">提交数据</button>
  46 + </div>
  47 + </div>
  48 + </div>
  49 +</div>
  50 +<script type="text/javascript">
  51 +$(function(){
  52 +
  53 + function eachSectionList(sectiondata,cb) {
  54 +
  55 + var dataLen_ = sectiondata.length;
  56 +
  57 + (function(){
  58 +
  59 + if (!arguments.callee.count) {
  60 +
  61 + arguments.callee.count = 0;
  62 +
  63 + }
  64 +
  65 + arguments.callee.count++;
  66 +
  67 + var index_ = parseInt(arguments.callee.count) - 1;
  68 +
  69 + if (index_ > dataLen_ -1) {
  70 +
  71 + cb && cb(sectiondata);
  72 + return;
  73 +
  74 + }
  75 +
  76 + var p = arguments.callee;
  77 +
  78 + GetAjaxData.MuneBpointsArrayToWGS(sectiondata[index_].points,function(polyGonArray_) {
  79 +
  80 + sectiondata[index_].points = polyGonArray_;
  81 +
  82 + p();
  83 + });
  84 +
  85 + })();
  86 +
  87 + }
  88 +
  89 + // 延迟加载显示mobal
  90 + setTimeout(function(){$('#add_station_template_mobal').modal({show : true,backdrop: 'static', keyboard: false});},200);
  91 +
  92 + var directionData = $('.upManual').data('direction');
  93 +
  94 + // console.log();
  95 +
  96 + // 获取表单元素
  97 + var form = $('#save_station_template_form');
  98 +
  99 + // 获取错误提示信息元素
  100 + var error = $('.alert-danger', form);
  101 +
  102 + // 提交数据点击事件
  103 + $('.modal-footer #templateSaveData').on('click',function() {
  104 +
  105 + // 表单提交
  106 + form.submit();
  107 +
  108 + });
  109 +
  110 + // 表单验证
  111 + form.validate({
  112 +
  113 + errorElement : 'span',
  114 +
  115 + errorClass : 'help-block help-block-error',
  116 +
  117 + focusInvalid : false,
  118 +
  119 + rules : {
  120 +
  121 + 'stations' : {
  122 +
  123 + required : true,
  124 +
  125 + }
  126 +
  127 + },
  128 +
  129 + invalidHandler : function(event, validator) {
  130 +
  131 + error.show();
  132 +
  133 + App.scrollTo(error, -200);
  134 +
  135 + },
  136 +
  137 + highlight : function(element) {
  138 +
  139 + $(element).closest('.form-group').addClass('has-error');
  140 +
  141 + },
  142 +
  143 + unhighlight : function(element) {
  144 +
  145 + $(element).closest('.form-group').removeClass('has-error');
  146 +
  147 + },
  148 +
  149 + success : function(label) {
  150 +
  151 + label.closest('.form-group').removeClass('has-error');
  152 +
  153 + },
  154 +
  155 + submitHandler : function(f) {
  156 +
  157 + // 表单序列画
  158 + var params = form.serializeJSON();
  159 +
  160 + var paramsStationsArray = params.stations.split('\r\n');
  161 +
  162 + WorldsBMap.stationsNameToPoints(paramsStationsArray,function(resultJson) {
  163 +
  164 + WorldsBMap.getDistanceAndTotime(resultJson,function(stationdataList) {
  165 +
  166 + WorldsBMap.getSectionListPlonly(stationdataList,function(sectiondata) {
  167 +
  168 +
  169 + eachSectionList(sectiondata,function(successdata) {
  170 +
  171 + GetAjaxData.getFormPointEToWGS(stationdataList,function(stationdata) {
  172 +
  173 + console.log(stationdata);
  174 +
  175 + console.log();
  176 +
  177 + // 定义站点信息JSON字符串
  178 + var stationJSON = JSON.stringify(stationdata);
  179 +
  180 + // 定义路段信息字符串
  181 + var sectionJSON = JSON.stringify(successdata);
  182 +
  183 + // 参数集合
  184 + var params = {};
  185 +
  186 + // 站点信息JSON字符串
  187 + params.stationJSON = stationJSON;
  188 +
  189 + // 线路ID
  190 + params.lineId = id;
  191 +
  192 + // 方向
  193 + params.directions = directionData;
  194 +
  195 + // 原始坐标类型
  196 + params.dbType = 'b';
  197 +
  198 + // 圆形半径
  199 + params.radius = '300';
  200 +
  201 + // 限速
  202 + params.speedLimit = '60';
  203 +
  204 + // 图形类型(r:圆形;p:多边形)
  205 + params.shapesType = 'r';
  206 +
  207 + // destroy:是否撤销
  208 + params.destroy = '0';
  209 +
  210 + // versions:版本号
  211 + params.versions = '1';
  212 +
  213 + // 路段信息JSON字符串
  214 + params.sectionJSON = sectionJSON;
  215 +
  216 +
  217 + // 保存
  218 + $post('/station/manualSave',params,function(rd) {
  219 +
  220 + if(rd.status='SUCCESS') {
  221 +
  222 + // 关闭弹出层
  223 + // layer.closeAll();
  224 +
  225 + // 显示表格
  226 + // $('#hide_table').show();
  227 +
  228 + // 刷新树
  229 + resjtreeDate(id,directionData);
  230 +
  231 + }else {
  232 +
  233 + // 保存失败
  234 +
  235 +
  236 + }
  237 +
  238 +
  239 + });
  240 +
  241 + });
  242 +
  243 +
  244 + });
  245 + // console.log(sectiondata);
  246 +
  247 + });
  248 +
  249 + /* GetAjaxData.getFormPointEToWGS(stationdataList,function(stationdata) {
  250 +
  251 +
  252 +
  253 +
  254 + }); */
  255 +
  256 +
  257 + /* // 百度站点坐标获取WGS坐标
  258 + GetAjaxData.getFormPointEToWGS(stationdataList,function(stationdata) {
  259 +
  260 + eachSectionList(sectiondata,function(successdata) {
  261 +
  262 + console.log(successdata);
  263 +
  264 + // 定义站点信息JSON字符串
  265 + var stationJSON = JSON.stringify(stationdata);
  266 +
  267 + // 定义路段信息字符串
  268 + var sectionJSON = JSON.stringify(successdata);
  269 +
  270 + // 参数集合
  271 + var params = {};
  272 +
  273 + // 站点信息JSON字符串
  274 + params.stationJSON = stationJSON;
  275 +
  276 + // 线路ID
  277 + params.lineId = id;
  278 +
  279 + // 方向
  280 + params.directions = directionData;
  281 +
  282 + // 原始坐标类型
  283 + params.dbType = 'b';
  284 +
  285 + // 圆形半径
  286 + params.radius = '300';
  287 +
  288 + // 限速
  289 + params.speedLimit = '60';
  290 +
  291 + // 图形类型(r:圆形;p:多边形)
  292 + params.shapesType = 'r';
  293 +
  294 + // destroy:是否撤销
  295 + params.destroy = '0';
  296 +
  297 + // versions:版本号
  298 + params.versions = '1';
  299 +
  300 + // 路段信息JSON字符串
  301 + params.sectionJSON = sectionJSON;
  302 +
  303 +
  304 + // 保存
  305 + $post('/station/manualSave',params,function(rd) {
  306 +
  307 + if(rd.status='SUCCESS') {
  308 +
  309 + // 关闭弹出层
  310 + // layer.closeAll();
  311 +
  312 + // 显示表格
  313 + // $('#hide_table').show();
  314 +
  315 + // 刷新树
  316 + resjtreeDate(id,directionData);
  317 +
  318 + }else {
  319 +
  320 + // 保存失败
  321 +
  322 +
  323 + }
  324 +
  325 +
  326 + });
  327 +
  328 +
  329 + })
  330 +
  331 + });
  332 + */
  333 + });
  334 +
  335 + });
  336 +
  337 + }
  338 + });
  339 +
  340 +
  341 +
  342 +});
  343 +</script>
0 \ No newline at end of file 344 \ No newline at end of file
src/main/resources/static/pages/base/stationroute/js/stationroute-ajax-getdata.js
@@ -17,6 +17,16 @@ var GetAjaxData = function(){ @@ -17,6 +17,16 @@ var GetAjaxData = function(){
17 17
18 }, 18 },
19 19
  20 + getStationRoutePoint : function(id_,dir_,callback) {
  21 +
  22 + $get('/stationroute/getStationRouteCenterPoints',{lineId:id_,direction:dir_},function(result) {
  23 +
  24 + callback && callback(result);
  25 +
  26 + });
  27 +
  28 + },
  29 +
20 getLikeStationName : function (stationName,callback) { 30 getLikeStationName : function (stationName,callback) {
21 31
22 $get('/station/all', {stationName_eq: stationName}, function(array){ 32 $get('/station/all', {stationName_eq: stationName}, function(array){
@@ -122,6 +132,21 @@ var GetAjaxData = function(){ @@ -122,6 +132,21 @@ var GetAjaxData = function(){
122 132
123 }, 133 },
124 134
  135 + stationRouteIsDestroy : function(stationRoute,callback) {
  136 +
  137 +
  138 + },
  139 +
  140 + sectionUpdate:function(section,callback) {
  141 +
  142 + $post('/section/sectionUpdate',section,function(data) {
  143 +
  144 + callback && callback(data);
  145 +
  146 + })
  147 +
  148 + },
  149 +
125 // 获取线路名称 150 // 获取线路名称
126 getIdLineName : function (id,callback) { 151 getIdLineName : function (id,callback) {
127 152
@@ -193,6 +218,66 @@ var GetAjaxData = function(){ @@ -193,6 +218,66 @@ var GetAjaxData = function(){
193 218
194 }, 219 },
195 220
  221 + MuneBpointsArrayToWGS : function(polyGonArray,callback) {
  222 +
  223 + if(polyGonArray) {
  224 +
  225 + // 获取长度
  226 + var len = polyGonArray.length;
  227 +
  228 + (function(){
  229 +
  230 + if (!arguments.callee.count) {
  231 +
  232 + arguments.callee.count = 0;
  233 +
  234 + }
  235 +
  236 + arguments.callee.count++;
  237 +
  238 + var index = parseInt(arguments.callee.count) - 1;
  239 +
  240 + if (index >= len) {
  241 +
  242 + callback && callback(polyGonArray);
  243 +
  244 + return;
  245 + }
  246 +
  247 + var f = arguments.callee;
  248 +
  249 + $.ajax({
  250 +
  251 + // 百度坐标获取WGS坐标
  252 + url: 'http://api.zdoz.net/bd2wgs.aspx',
  253 +
  254 + data: {lat: polyGonArray[index].lat , lng: polyGonArray[index].lng},
  255 +
  256 + dataType: 'jsonp',
  257 +
  258 + success: function(r){
  259 +
  260 + if(r) {
  261 +
  262 + polyGonArray[index].WGSpotion = r;
  263 +
  264 + }
  265 +
  266 + f();
  267 + }
  268 + });
  269 +
  270 + })();
  271 +
  272 + }else {
  273 +
  274 + callback && callback('');
  275 +
  276 + }
  277 +
  278 +
  279 + },
  280 +
196 getSectionRouteInfo : function(lineId,direction,callback) { 281 getSectionRouteInfo : function(lineId,direction,callback) {
197 282
198 $get('/sectionroute/findSection',{'line.id_eq' : lineId , 'directions_eq' : direction},function(resultdata) { 283 $get('/sectionroute/findSection',{'line.id_eq' : lineId , 'directions_eq' : direction},function(resultdata) {
src/main/resources/static/pages/base/stationroute/js/stationroute-list-events.js
@@ -268,9 +268,10 @@ function systemLineStation(lineNameV,directionData) { @@ -268,9 +268,10 @@ function systemLineStation(lineNameV,directionData) {
268 if(result) { 268 if(result) {
269 269
270 GetAjaxData.BpolyGonArrayToWGS(polyGonArray,function(arraydata) { 270 GetAjaxData.BpolyGonArrayToWGS(polyGonArray,function(arraydata) {
271 -  
272 WorldsBMap.getDistanceAndDuration(result,function(json) { 271 WorldsBMap.getDistanceAndDuration(result,function(json) {
273 272
  273 + // console.log(arraydata);
  274 +
274 json[0].distance = ''; 275 json[0].distance = '';
275 276
276 json[0].duration = ''; 277 json[0].duration = '';
@@ -314,12 +315,11 @@ function systemLineStation(lineNameV,directionData) { @@ -314,12 +315,11 @@ function systemLineStation(lineNameV,directionData) {
314 // 限速 315 // 限速
315 params.speedLimit = '60'; 316 params.speedLimit = '60';
316 317
317 - console.log(params); 318 + // console.log(params);
318 319
319 // 保存 320 // 保存
320 $post('/station/collectionSave',params,function(rd) { 321 $post('/station/collectionSave',params,function(rd) {
321 322
322 -  
323 if(rd.status='SUCCESS') { 323 if(rd.status='SUCCESS') {
324 324
325 // 关闭弹出层 325 // 关闭弹出层
@@ -337,7 +337,7 @@ function systemLineStation(lineNameV,directionData) { @@ -337,7 +337,7 @@ function systemLineStation(lineNameV,directionData) {
337 337
338 338
339 } 339 }
340 - 340 +
341 }); 341 });
342 342
343 }); 343 });
@@ -387,57 +387,43 @@ $(function(){ @@ -387,57 +387,43 @@ $(function(){
387 387
388 function systemSaveStation(directionData) { 388 function systemSaveStation(directionData) {
389 389
390 - // 根据线路ID获取线路名称  
391 - GetAjaxData.getIdLineName(id,function(data) { 390 + // 定义线路名称
  391 + var lineNameV = $('.portlet-title .caption').text();
  392 +
  393 + if(lineNameV.indexOf('区间')>0){
392 394
393 - if(data) { 395 + var lineNameNew = lineNameV.replace('区间','');
  396 +
  397 + layer.confirm('系统无法生成该线路【'+lineNameV+'】的站点与路段!自动修改为如下线路名称【'+lineNameNew+'】生成', {
  398 + btn : [ '确认提示并提交', '取消' ]
  399 + }, function(index) {
  400 +
  401 + layer.close(index);
394 402
395 - // 定义线路名称  
396 - var lineNameV = data.name; 403 + lineNameV = lineNameNew;
397 404
398 - if(lineNameV.indexOf('区间')>0){ 405 + systemLineStation(lineNameV,directionData);
  406 + },function(){
  407 +
  408 + layer.closeAll();
  409 +
  410 + if(directionData==0){
399 411
400 - var lineNameNew = lineNameV.replace('区间',''); 412 + $('#upToolsMobal').show();
401 413
402 - layer.confirm('系统无法生成该线路【'+lineNameV+'】的站点与路段!自动修改为如下线路名称【'+lineNameNew+'】生成', {  
403 - btn : [ '确认提示并提交', '取消' ]  
404 - }, function(index) {  
405 -  
406 - layer.close(index);  
407 -  
408 - lineNameV = lineNameNew;  
409 -  
410 - systemLineStation(lineNameV,directionData);  
411 - },function(){  
412 -  
413 - layer.closeAll();  
414 -  
415 - if(directionData==0){  
416 -  
417 - $('#upToolsMobal').show();  
418 -  
419 - }else if(directionData==1){  
420 -  
421 - $('#downToolsMobal').show();  
422 -  
423 - }  
424 -  
425 -  
426 - });  
427 - }else { 414 + }else if(directionData==1){
428 415
429 - systemLineStation(lineNameV,directionData); 416 + $('#downToolsMobal').show();
430 417
431 } 418 }
432 419
433 - }else {  
434 -  
435 - alert('线路名称为空');  
436 420
437 - } 421 + });
  422 + }else {
438 423
  424 + systemLineStation(lineNameV,directionData);
439 425
440 - }); 426 + }
441 427
442 } 428 }
443 429
@@ -471,7 +457,7 @@ $(function(){ @@ -471,7 +457,7 @@ $(function(){
471 457
472 }); 458 });
473 459
474 - //删除 460 + // 撤销
475 $('.module_tools #deleteUpStation').on('click', function(){ 461 $('.module_tools #deleteUpStation').on('click', function(){
476 462
477 var obj = getCurrSelNode('0'); 463 var obj = getCurrSelNode('0');
@@ -481,10 +467,30 @@ $(function(){ @@ -481,10 +467,30 @@ $(function(){
481 return; 467 return;
482 } 468 }
483 469
484 - removeConfirm('你确定要删除【'+obj[0].text+'】模块吗?', '/module/' + obj[0].id  
485 - ,function() { 470 + layer.confirm('你确定要撤销【'+obj[0].text+'】站点吗?', {btn : [ '确定撤销','返回' ],icon: 3, title:'提示' }, function(index){
  471 +
  472 + var stationRouteId = obj[0].original.stationRouteId;
  473 +
  474 + var params = {stationRouteId:stationRouteId,destroy:'1'};
  475 +
  476 + GetAjaxData.stationRouteIsDestroy(params,function(result) {
  477 +
  478 + layer.close(index);
  479 +
  480 + if(result.status=='SUCCESS'){
  481 +
  482 + layer.msg('撤销上行站点【'+obj[0].text+'】成功!');
  483 +
  484 + }else{
  485 +
  486 + layer.msg('撤销上行站点【'+obj[0].text+'】失败!');
  487 +
  488 + }
  489 +
  490 + });
486 491
487 }); 492 });
  493 +
488 }); 494 });
489 495
490 // 修改上行站点mobal页面 496 // 修改上行站点mobal页面
@@ -527,6 +533,20 @@ $(function(){ @@ -527,6 +533,20 @@ $(function(){
527 // 编辑线路走向 533 // 编辑线路走向
528 $('.module_tools #editUplineTrend').on('click', function(){ 534 $('.module_tools #editUplineTrend').on('click', function(){
529 535
  536 + var sel = getCurrSelNode(dir);
  537 +
  538 + if(sel.length==0 || sel[0].original.chaildredType !='section'){
  539 +
  540 + layer.msg('请先选中要编辑的上行路段!');
  541 +
  542 + return;
  543 + }
  544 +
  545 + var sectionId = sel[0].original.sectionId;
  546 +
  547 +
  548 + var sectionrouteDirections = sel[0].original.sectionrouteDirections;
  549 +
530 // 开启线路编辑 550 // 开启线路编辑
531 polyUpline.enableEditing(); 551 polyUpline.enableEditing();
532 552
@@ -539,13 +559,45 @@ $(function(){ @@ -539,13 +559,45 @@ $(function(){
539 // 关闭 559 // 关闭
540 layer.close(yindex); 560 layer.close(yindex);
541 561
  562 + polyUpline.disableEditing();
  563 +
  564 + // 弹出正在加载层
  565 + var i = layer.load(0,{title :'我是标题'});
  566 +
542 // 获取折线坐标集合 567 // 获取折线坐标集合
543 var editPloyLineArray = polyUpline.getPath(); 568 var editPloyLineArray = polyUpline.getPath();
544 569
545 // 坐标转换WGS坐标 570 // 坐标转换WGS坐标
546 GetAjaxData.BpolyGonArrayToWGS(editPloyLineArray,function(arraydata) { 571 GetAjaxData.BpolyGonArrayToWGS(editPloyLineArray,function(arraydata) {
547 572
548 - console.log(arraydata); 573 + // 定义路段信息字符串
  574 + var sectionJSON = JSON.stringify(arraydata);
  575 +
  576 + var params = {sectionId:sectionId,sectionJSON:sectionJSON}
  577 +
  578 + GetAjaxData.sectionUpdate(params,function(result) {
  579 +
  580 + layer.close(i);
  581 +
  582 + if(result.status=='SUCCESS'){
  583 +
  584 + layer.msg('修改上行路段成功!');
  585 +
  586 + }else{
  587 +
  588 + layer.msg('修改上行路段失败!');
  589 +
  590 + }
  591 + mapB.clearOverlays();
  592 + GetAjaxData.getSectionRouteInfo(id,sectionrouteDirections,function(data) {
  593 +
  594 + // 刷新树
  595 + resjtreeDate(id,sectionrouteDirections);
  596 +
  597 + linePanlThree(data,sectionrouteDirections);
  598 +
  599 + });
  600 + });
549 601
550 }); 602 });
551 603
@@ -556,14 +608,25 @@ $(function(){ @@ -556,14 +608,25 @@ $(function(){
556 // 线路上行 608 // 线路上行
557 $('#leftUpOrDown #upLine').on('click', function(){ 609 $('#leftUpOrDown #upLine').on('click', function(){
558 610
559 - linePanlThree(id,'0'); 611 + mapB.clearOverlays();
  612 +
  613 + GetAjaxData.getSectionRouteInfo(id,'0',function(data) {
  614 +
  615 + linePanlThree(data,'0');
  616 +
  617 + });
560 618
561 }); 619 });
562 620
563 // 线路下行 621 // 线路下行
564 $('#leftUpOrDown #downLine').on('click', function(){ 622 $('#leftUpOrDown #downLine').on('click', function(){
  623 + mapB.clearOverlays();
565 624
566 - linePanlThree(id,'1'); 625 + GetAjaxData.getSectionRouteInfo(id,'1',function(data) {
  626 +
  627 + linePanlThree(data,'1');
  628 +
  629 + });
567 630
568 }); 631 });
569 632
src/main/resources/static/pages/base/stationroute/js/stationroute-list-map.js
@@ -7,7 +7,7 @@ var WorldsBMap = function () { @@ -7,7 +7,7 @@ var WorldsBMap = function () {
7 // 搜索结果呈现的配置 7 // 搜索结果呈现的配置
8 // renderOptions:{map:map}, 8 // renderOptions:{map:map},
9 9
10 - // 设置公交列表查询后的回调函数。参数:rs: BusListResult类型 10 + /* // 设置公交列表查询后的回调函数。参数:rs: BusListResult类型
11 onGetBusListComplete:function(BusListResult) { 11 onGetBusListComplete:function(BusListResult) {
12 12
13 // 如果不为空 13 // 如果不为空
@@ -20,8 +20,7 @@ var WorldsBMap = function () { @@ -20,8 +20,7 @@ var WorldsBMap = function () {
20 20
21 } 21 }
22 22
23 - },  
24 - 23 + },*/
25 // 设置公交列表查询后的回调函数。参数:rs: BusListResult类型 24 // 设置公交列表查询后的回调函数。参数:rs: BusListResult类型
26 onGetBusListComplete:function(BusListResult) { 25 onGetBusListComplete:function(BusListResult) {
27 26
@@ -33,7 +32,7 @@ var WorldsBMap = function () { @@ -33,7 +32,7 @@ var WorldsBMap = function () {
33 32
34 if(fstLine==undefined){ 33 if(fstLine==undefined){
35 34
36 - layer.confirm('系统无法生成该线路【'+lineNameValue+'】的站点与路段!请点击返回选择手动规划', {btn : [ '返回' ],icon: 3, title:'提示' }, function(index){ 35 + layer.confirm('系统无法生成该线路【'+lineNameValue+'】的站点与路段!请点击返回选择其它方式规划', {btn : [ '返回' ],icon: 3, title:'提示' }, function(index){
37 36
38 layer.closeAll(); 37 layer.closeAll();
39 38
@@ -413,6 +412,46 @@ var WorldsBMap = function () { @@ -413,6 +412,46 @@ var WorldsBMap = function () {
413 412
414 }, 413 },
415 414
  415 + pointsThread : function(obj,map) {
  416 +
  417 + mapB.clearOverlays();
  418 +
  419 + if(obj) {
  420 +
  421 + var tempStr = obj.substring(11,obj.length-1);
  422 +
  423 + var lineArray = tempStr.split(',');
  424 +
  425 + var polylineArray = [];
  426 +
  427 + for(var i = 0;i<lineArray.length;i++) {
  428 +
  429 + polylineArray.push(new BMap.Point(lineArray[i].split(' ')[0],lineArray[i].split(' ')[1]));
  430 +
  431 + }
  432 +
  433 + // 创建线路走向
  434 + polyUpline = new BMap.Polyline(polylineArray, {strokeColor : "blue",strokeWeight : 4,strokeOpacity : 0.5});
  435 +
  436 + // 把折线添加到地图上
  437 + mapB.addOverlay(polyUpline);
  438 +
  439 + // 自定义标注物图片
  440 + var icon_target = new BMap.Icon('/pages/base/stationroute/css/img/cz.png',new BMap.Size(20, 20));
  441 +
  442 + // 创建标注物
  443 + var markers_target = new BMap.Marker(polylineArray[0],{icon : icon_target});
  444 +
  445 + // 把标注添物加到地图上
  446 + mapB.addOverlay(markers_target);
  447 +
  448 + //设置中心点
  449 + mapB.centerAndZoom(polylineArray[0],16);
  450 +
  451 + }
  452 +
  453 + },
  454 +
416 // 画圆 455 // 画圆
417 pointsCircle : function(objStation,map) { 456 pointsCircle : function(objStation,map) {
418 457
@@ -440,8 +479,8 @@ var WorldsBMap = function () { @@ -440,8 +479,8 @@ var WorldsBMap = function () {
440 width : 200, 479 width : 200,
441 480
442 // 信息窗口高度 481 // 信息窗口高度
443 - height : 400,  
444 - 482 + height : 450,
  483 + offset: new BMap.Size(500,120),
445 //标题 484 //标题
446 title : '<h4 style="color:#FFFFFF">'+objStation.stationStationName+'站详情</h4>', 485 title : '<h4 style="color:#FFFFFF">'+objStation.stationStationName+'站详情</h4>',
447 486
@@ -449,7 +488,9 @@ var WorldsBMap = function () { @@ -449,7 +488,9 @@ var WorldsBMap = function () {
449 enableMessage : false, 488 enableMessage : false,
450 489
451 //是否开启点击地图关闭信息窗口 490 //是否开启点击地图关闭信息窗口
452 - enableCloseOnClick : false 491 + enableCloseOnClick : false,
  492 +
  493 + enableAutoPan:false
453 }; 494 };
454 495
455 var infoWindow_target = new BMap.InfoWindow('<HR style="border:1 dashed #987cb9" width="100%" color=#987cb9 SIZE=1>'+ 496 var infoWindow_target = new BMap.InfoWindow('<HR style="border:1 dashed #987cb9" width="100%" color=#987cb9 SIZE=1>'+
@@ -469,16 +510,21 @@ var WorldsBMap = function () { @@ -469,16 +510,21 @@ var WorldsBMap = function () {
469 // 把标注添物加到地图上 510 // 把标注添物加到地图上
470 map.addOverlay(marker); 511 map.addOverlay(marker);
471 512
  513 + setTimeout(function(){
  514 + //开启信息窗口
  515 + marker.openInfoWindow(infoWindow_target,point);
  516 +
  517 + },100);
  518 +
472 // marker.disableMassClear(); 519 // marker.disableMassClear();
473 520
474 var PanOptions_ ={noAnimation :true}; 521 var PanOptions_ ={noAnimation :true};
475 522
476 map.panTo(point,PanOptions_); 523 map.panTo(point,PanOptions_);
477 524
478 - map.panBy(10,110,PanOptions_); 525 + //map.panBy(10,-50,PanOptions_);
  526 +
479 527
480 - //开启信息窗口  
481 - marker.openInfoWindow(infoWindow_target,point);  
482 528
483 // 添加标志物监听事件 529 // 添加标志物监听事件
484 marker.addEventListener("click",function() { 530 marker.addEventListener("click",function() {
@@ -505,7 +551,6 @@ var WorldsBMap = function () { @@ -505,7 +551,6 @@ var WorldsBMap = function () {
505 551
506 if(poi) { 552 if(poi) {
507 553
508 -  
509 //获取经度和纬度 554 //获取经度和纬度
510 resultPoints = poi.point.lng + ' ' + poi.point.lat; 555 resultPoints = poi.point.lng + ' ' + poi.point.lat;
511 556
@@ -517,15 +562,11 @@ var WorldsBMap = function () { @@ -517,15 +562,11 @@ var WorldsBMap = function () {
517 562
518 } 563 }
519 564
520 -  
521 }else { 565 }else {
522 566
523 callback && callback(false); 567 callback && callback(false);
524 } 568 }
525 569
526 -  
527 -  
528 -  
529  }); 570  });
530 571
531  localSearch.search(Address); 572  localSearch.search(Address);
@@ -636,27 +677,56 @@ var WorldsBMap = function () { @@ -636,27 +677,56 @@ var WorldsBMap = function () {
636 }, 677 },
637 678
638 // 在地图上画出上行线路走向 679 // 在地图上画出上行线路走向
639 - drawingUpline : function (polylineArray) { 680 + drawingUpline : function (polylineArray,resultdata) {
640 681
641 - mapB.clearOverlays(); 682 + // mapB.clearOverlays();
642 683
643 // 创建线路走向 684 // 创建线路走向
644 - polyUpline = new BMap.Polyline(polylineArray, {strokeColor : "blue",strokeWeight : 4,strokeOpacity : 0.5}); 685 + polyUpline = new BMap.Polyline(polylineArray, {strokeColor : "blue",strokeWeight : 6,strokeOpacity : 0.5});
645 686
646 // 把折线添加到地图上 687 // 把折线添加到地图上
647 mapB.addOverlay(polyUpline); 688 mapB.addOverlay(polyUpline);
648 689
649 - // 自定义标注物图片  
650 - var icon_target = new BMap.Icon('/pages/base/stationroute/css/img/cz.png',new BMap.Size(20, 20)); 690 + if(resultdata.length>0) {
  691 +
  692 + for(var s = 0 ; s<resultdata.length;s++) {
  693 +
  694 + var bJwpointsStr = resultdata[s].bJwpoints;
  695 +
  696 + var bJwpointsArray = bJwpointsStr.split(' ');
  697 +
  698 + var point_center = new BMap.Point(bJwpointsArray[0],bJwpointsArray[1]);
  699 +
  700 + // 自定义标注物图片
  701 + var icon_target = new BMap.Icon('/pages/base/stationroute/css/img/cz.png',new BMap.Size(20, 20));
  702 +
  703 + // 创建标注物
  704 + var markers_target = new BMap.Marker(point_center,{icon : icon_target});
  705 +
  706 + mapB.addOverlay(markers_target);
  707 +
  708 + }
  709 +
  710 + }
  711 +
  712 + var ceter_index = Math.round(resultdata.length / 2);
651 713
652 - // 创建标注物  
653 - var markers_target = new BMap.Marker(polylineArray[0],{icon : icon_target}); 714 + var ceterPointsStr = resultdata[ceter_index].bJwpoints;
654 715
655 - // 把标注添物加到地图上  
656 - mapB.addOverlay(markers_target); 716 + var ceterPointsArray = ceterPointsStr.split(' ');
  717 +
  718 + var polyline_center = new BMap.Point(ceterPointsArray[0],ceterPointsArray[1]);
657 719
658 - //设置中心点  
659 - mapB.centerAndZoom(polylineArray[0],16); 720 + var PanOptions_ ={noAnimation :true};
  721 +
  722 + mapB.reset();
  723 +
  724 + mapB.panTo(polyline_center,PanOptions_);
  725 +
  726 + mapB.panBy(500,-510,PanOptions_);
  727 +
  728 + mapB.setZoom(14);
  729 +
660 730
661 }, 731 },
662 732
@@ -670,8 +740,198 @@ var WorldsBMap = function () { @@ -670,8 +740,198 @@ var WorldsBMap = function () {
670 // 设置属性 740 // 设置属性
671 drawingManager.setDrawingMode(BMAP_DRAWING_POLYGON); 741 drawingManager.setDrawingMode(BMAP_DRAWING_POLYGON);
672 742
673 - } 743 + },
  744 +
  745 + stationsNameToPoints : function(arra,callback) {
  746 +
  747 + // 获取长度
  748 + var len = arra.length;
  749 +
  750 + var stationList = [];
  751 +
  752 + (function(){
  753 +
  754 + if (!arguments.callee.count) {
  755 +
  756 + arguments.callee.count = 0;
  757 +
  758 + }
  759 +
  760 + arguments.callee.count++;
  761 +
  762 + var index = parseInt(arguments.callee.count) - 1;
  763 +
  764 + if (index >= len) {
  765 +
  766 + callback && callback(stationList);
  767 +
  768 + return;
  769 + }
  770 +
  771 + var f = arguments.callee;
  772 +
  773 + if(arra[index]!=''){
  774 +
  775 + var localSearch = new BMap.LocalSearch(mapB);
  776 +
  777 + localSearch.search(arra[index]);
  778 +
  779 + localSearch.setSearchCompleteCallback(function (searchResult) {
  780 +
  781 + var poi = searchResult.getPoi(0);
  782 +
  783 +
  784 + if(poi) {
  785 +
  786 + stationList.push({name:arra[index],potion:{lng:poi.point.lng,lat:poi.point.lat}});
  787 +
  788 + f();
  789 +
  790 + }
  791 +
  792 + });
  793 + }else {
  794 +
  795 + f();
  796 +
  797 + }
  798 +
  799 + })();
  800 +
  801 + },
  802 +
  803 + getDistanceAndTotime : function(stationList,cb) {
  804 +
  805 + stationList[0].distance = '';
  806 +
  807 + stationList[0].duration = '';
  808 +
  809 + // var sectionList = [];
  810 +
  811 + // 获取长度
  812 + var len = stationList.length;
  813 +
  814 + (function(){
  815 +
  816 + if (!arguments.callee.count) {
  817 +
  818 + arguments.callee.count = 0;
  819 +
  820 + }
  821 +
  822 + arguments.callee.count++;
  823 +
  824 + var index = parseInt(arguments.callee.count) - 1;
  825 +
  826 + if (index >= len-1) {
  827 +
  828 + // cb && cb(stationList,sectionList);
  829 + cb && cb(stationList);
  830 + return;
  831 + }
  832 +
  833 + var f = arguments.callee;
  834 +
  835 + var poiOne = new BMap.Point(stationList[index].potion.lng,stationList[index].potion.lat);
  836 +
  837 + var poiTwo = new BMap.Point(stationList[index+1].potion.lng,stationList[index+1].potion.lat);
  838 +
  839 + var transit = new BMap.TransitRoute(mapB, {renderOptions: {map: mapB},onSearchComplete: searchComplete});
  840 +
  841 + transit.search(poiOne,poiTwo);
  842 +
  843 + function searchComplete(results){
  844 +
  845 + var plan = results.getPlan(0);
  846 +
  847 + if (transit.getStatus() != BMAP_STATUS_SUCCESS){
  848 +
  849 + stationList[index+1].distance = '';
  850 +
  851 + stationList[index+1].duration = '';
  852 +
  853 + // sectionList.push({sectionName:stationList[index].name+stationList[index+1].name,points:''});
  854 +
  855 + }else {
  856 +
  857 + stationList[index+1].distance = plan.getDistance(true);
  858 +
  859 + stationList[index+1].duration = plan.getDuration(true);
  860 +
  861 + // var line = plan.getRoute(0);
  862 +
  863 + // sectionList.push({sectionName:stationList[index].name+stationList[index+1].name,points:line.getPath()});
  864 +
  865 + }
  866 +
  867 + f();
  868 + }
  869 +
  870 + })();
  871 +
  872 + },
674 873
  874 + getSectionListPlonly : function(stationsPoint,cb) {
  875 +
  876 + var len = stationsPoint.length;
  877 +
  878 + var sectionList = [];
  879 +
  880 + (function(){
  881 +
  882 + if (!arguments.callee.count) {
  883 +
  884 + arguments.callee.count = 0;
  885 +
  886 + }
  887 +
  888 + arguments.callee.count++;
  889 +
  890 + var index = parseInt(arguments.callee.count) - 1;
  891 +
  892 + if (index >= len-1 ) {
  893 +
  894 + cb && cb(sectionList);
  895 + return;
  896 + }
  897 +
  898 + var f = arguments.callee;
  899 +
  900 + var poiOne = new BMap.Point(stationsPoint[index].potion.lng,stationsPoint[index].potion.lat);
  901 +
  902 + var poiTwo = new BMap.Point(stationsPoint[index+1].potion.lng,stationsPoint[index+1].potion.lat);
  903 +
  904 + var transit = new BMap.TransitRoute(mapB, {renderOptions: {map: mapB},onPolylinesSet: searchPolylinesSet});
  905 +
  906 + function searchPolylinesSet(results){
  907 +
  908 + if (transit.getStatus() != BMAP_STATUS_SUCCESS){
  909 +
  910 +
  911 + }else {
  912 +
  913 + var sectionArrayList = [];
  914 + for (i = 0; i < results.length; i++){
  915 +
  916 + // console.log(results[i].getPolyline().getPath());
  917 + sectionArrayList = sectionArrayList.concat(results[i].getPolyline().getPath());
  918 +
  919 + }
  920 +
  921 + var sectionName = stationsPoint[index].name + '至' + stationsPoint[index+1].name;
  922 +
  923 + sectionList.push({sectionName:sectionName,points:sectionArrayList});
  924 +
  925 + }
  926 +
  927 + f();
  928 + }
  929 +
  930 + transit.search(poiOne,poiTwo);
  931 +
  932 + })();
  933 +
  934 + }
675 } 935 }
676 936
677 return Bmap; 937 return Bmap;
src/main/resources/static/pages/base/stationroute/js/stationroute-list-reload.js
1 -function linePanlThree(lineId,diraction) {  
2 - GetAjaxData.getSectionRouteInfo(lineId,diraction,function(data) { 1 +function linePanlThree(data,direction) {
  2 +
  3 + GetAjaxData.getStationRoutePoint(id,direction,function(resultdata) {
3 4
4 - if(data.length>0) {  
5 -  
6 - var sectionBsectionVectorStr = data[0].sectionBsectionVector;  
7 -  
8 - var tempStr = sectionBsectionVectorStr.substring(11,sectionBsectionVectorStr.length-1);  
9 -  
10 - var lineArray = tempStr.split(',');  
11 -  
12 - var polylineArray = []; 5 + var dataLen = data.length;
  6 +
  7 + if(dataLen>0) {
13 8
14 - for(var i = 0;i<lineArray.length;i++) { 9 + for(var d= 0; d<dataLen;d++){
  10 +
  11 + var sectionBsectionVectorStr = data[d].sectionBsectionVector;
15 12
16 - polylineArray.push(new BMap.Point(lineArray[i].split(' ')[0],lineArray[i].split(' ')[1])); 13 + if(sectionBsectionVectorStr==null) {
  14 +
  15 + continue;
  16 +
  17 + }
  18 +
  19 + var tempStr = sectionBsectionVectorStr.substring(11,sectionBsectionVectorStr.length-1);
  20 +
  21 + var lineArray = tempStr.split(',');
  22 +
  23 + var polylineArray = [];
  24 +
  25 + for(var i = 0;i<lineArray.length;i++) {
  26 +
  27 + polylineArray.push(new BMap.Point(lineArray[i].split(' ')[0],lineArray[i].split(' ')[1]));
  28 +
  29 + }
  30 + WorldsBMap.drawingUpline(polylineArray,resultdata);
17 31
18 } 32 }
19 - WorldsBMap.drawingUpline(polylineArray); 33 +
20 } 34 }
21 35
22 }); 36 });
@@ -79,29 +93,50 @@ function TreeUpOrDown(lineId,diraction) { @@ -79,29 +93,50 @@ function TreeUpOrDown(lineId,diraction) {
79 93
80 } 94 }
81 95
  96 +function setTiteText(lineId) {
  97 +
  98 +
  99 + // 根据线路ID获取线路名称
  100 + GetAjaxData.getIdLineName(lineId,function(data) {
  101 +
  102 + // 定义线路名称
  103 + var lineNameV = data.name;
  104 +
  105 + $('.portlet-title .caption').text(lineNameV);
  106 +
  107 +
  108 + });
  109 +
  110 +}
  111 +
82 $(function(){ 112 $(function(){
83 113
84 // 获取参数ID 114 // 获取参数ID
85 id = $.url().param('no'); 115 id = $.url().param('no');
86 116
87 dir = '0'; 117 dir = '0';
88 - 118 +
89 if(id) { 119 if(id) {
90 120
91 // 初始化地图和表格 121 // 初始化地图和表格
92 setTimeout(function(){ 122 setTimeout(function(){
93 123
  124 + setTiteText(id);
  125 +
94 // 地图初始化 126 // 地图初始化
95 var mapB = WorldsBMap.init(map); 127 var mapB = WorldsBMap.init(map);
96 128
97 // 全局变量 129 // 全局变量
98 window.mapB = mapB; 130 window.mapB = mapB;
99 -  
100 TreeUpOrDown(id,'0'); 131 TreeUpOrDown(id,'0');
101 132
102 TreeUpOrDown(id,'1'); 133 TreeUpOrDown(id,'1');
103 134
104 - linePanlThree(id,'0'); 135 + GetAjaxData.getSectionRouteInfo(id,'0',function(data) {
  136 +
  137 + linePanlThree(data,'0');
  138 +
  139 + });
105 140
106 },500); 141 },500);
107 142
src/main/resources/static/pages/base/stationroute/js/stationroute-list-treedata.js
@@ -36,33 +36,60 @@ var StationTreeData = function(){ @@ -36,33 +36,60 @@ var StationTreeData = function(){
36 'plugins': ['types'] 36 'plugins': ['types']
37 }).bind('click.jstree', function(event) { 37 }).bind('click.jstree', function(event) {
38 38
39 - //单击事件  
40 -  
41 layer.closeAll(); 39 layer.closeAll();
42 40
43 var treeOjb = $.jstree.reference("#station_Up_tree").get_selected(true); 41 var treeOjb = $.jstree.reference("#station_Up_tree").get_selected(true);
44 42
45 var len = treeOjb.length; 43 var len = treeOjb.length;
46 44
  45 +
47 if(len>0) { 46 if(len>0) {
48 47
49 - var shapesTypeT = treeOjb[0].original.stationShapesType;  
50 -  
51 var objStation = treeOjb[0].original; 48 var objStation = treeOjb[0].original;
52 49
53 - // 如果是圆  
54 - if(shapesTypeT =='r') {  
55 -  
56 - WorldsBMap.pointsCircle(objStation,map); 50 + var chaildredType = objStation.chaildredType;
  51 + if(chaildredType =='station') {
57 52
58 - }else if(shapesTypeT == 'd') { 53 + mapB.setZoom(16);
  54 +
  55 + var shapesTypeT = treeOjb[0].original.stationShapesType;
59 56
60 - WorldsBMap.pointsPolygon(objStation,map); 57 + var objStation = treeOjb[0].original;
61 58
62 - } 59 + // 如果是圆
  60 + if(shapesTypeT =='r') {
  61 +
  62 +
  63 + WorldsBMap.pointsCircle(objStation,map);
  64 +
  65 + }else if(shapesTypeT == 'd') {
  66 +
  67 + WorldsBMap.pointsPolygon(objStation,map);
  68 +
  69 + }
  70 +
  71 + }else if(chaildredType =='section'){
  72 +
  73 + var objSection = treeOjb[0].original.sectionBsectionVector;
  74 +
  75 + var polylineArray = [];
  76 +
  77 + polylineArray.push(treeOjb[0].original);
  78 +
  79 + var dire_ = treeOjb[0].original.sectionrouteDirections;
  80 +
  81 + mapB.clearOverlays();
  82 +
  83 + linePanlThree(polylineArray,dire_);
  84 +
  85 + }else if(chaildredType ==null){
63 86
  87 + return;
  88 +
  89 + }
64 90
65 } 91 }
  92 +
66 }); 93 });
67 } 94 }
68 }, 95 },
src/main/resources/static/pages/base/stationroute/list.html
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 <!-- 左边标题栏 --> 11 <!-- 左边标题栏 -->
12 <div class="portlet-title" style="background-color:#3B3F51"> 12 <div class="portlet-title" style="background-color:#3B3F51">
13 <div class="caption"> 13 <div class="caption">
14 - 途径站点 14 + <!-- 途径站点 -->
15 </div> 15 </div>
16 <div class="tools"> 16 <div class="tools">
17 <a href="javascript:;" class="collapse" data-original-title="" title=""> </a> 17 <a href="javascript:;" class="collapse" data-original-title="" title=""> </a>
@@ -41,6 +41,7 @@ @@ -41,6 +41,7 @@
41 41
42 <!-- 左边栏上行 --> 42 <!-- 左边栏上行 -->
43 <div class="tab-pane active in" id="stationUp" data-direction="0"> 43 <div class="tab-pane active in" id="stationUp" data-direction="0">
  44 +
44 <div class="portlet-body" id="uptreeMobal" style="display: none"> 45 <div class="portlet-body" id="uptreeMobal" style="display: none">
45 <div class="table-toolbar"> 46 <div class="table-toolbar">
46 <div class="row"> 47 <div class="row">
@@ -48,9 +49,14 @@ @@ -48,9 +49,14 @@
48 <div class="btn-group" style="float: right;"> 49 <div class="btn-group" style="float: right;">
49 <div class="actions module_tools"> 50 <div class="actions module_tools">
50 <div class="btn-group"> 51 <div class="btn-group">
51 - <a class="btn green-haze btn-outline btn-circle btn-sm" style="background-color:#3B3F51;border-color:#FFFFFF;color:#FFFFFF" href="javascript:;" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" aria-expanded="true"> 工具 52 + <!-- <a class="btn green-haze btn-outline btn-circle btn-sm" style="background-color:#3B3F51;border-color:#FFFFFF;color:#FFFFFF" href="javascript:;" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" aria-expanded="true"> 工具
52 <i class="fa fa-angle-down"></i> 53 <i class="fa fa-angle-down"></i>
53 - </a> 54 + </a> -->
  55 + <a href="javascript:" class="btn white btn-outline btn-circle" style="border-color: #3B3F51;color: #3B3F51;" data-toggle="dropdown" aria-expanded="false">
  56 + <i class="fa fa-share"></i>
  57 + <span>上行操作</span>
  58 + <i class="fa fa-angle-down"></i>
  59 + </a>
54 <ul class="dropdown-menu pull-right" style="min-width:100px"> 60 <ul class="dropdown-menu pull-right" style="min-width:100px">
55 <li> 61 <li>
56 <a href="javascript:;" id="addUpStation"><i class="fa fa-plus"></i> 添加站点</a> 62 <a href="javascript:;" id="addUpStation"><i class="fa fa-plus"></i> 添加站点</a>
@@ -61,11 +67,11 @@ @@ -61,11 +67,11 @@
61 </li> 67 </li>
62 <li class="divider"> </li> 68 <li class="divider"> </li>
63 <li> 69 <li>
64 - <a href="javascript:;" id="deleteUpStation"><i class="fa fa-close"></i> 删除站点</a> 70 + <a href="javascript:;" id="deleteUpStation"><i class="fa fa-close"></i> 撤销站点</a>
65 </li> 71 </li>
66 <li class="divider"> </li> 72 <li class="divider"> </li>
67 <li> 73 <li>
68 - <a href="javascript:;" id="editUplineTrend"><i class="fa fa-close"></i> 编辑走向</a> 74 + <a href="javascript:;" id="editUplineTrend"><i class="fa fa-edit"></i> 编辑走向</a>
69 </li> 75 </li>
70 </ul> 76 </ul>
71 </div> 77 </div>
@@ -86,16 +92,18 @@ @@ -86,16 +92,18 @@
86 <div class="col-md-6" style="float: right;"> 92 <div class="col-md-6" style="float: right;">
87 <div class="btn-group" style="float: right;"> 93 <div class="btn-group" style="float: right;">
88 <div class="actions"> 94 <div class="actions">
89 - <a class="btn green-haze btn-outline btn-circle btn-sm" style="background-color:#3B3F51;border-color:#FFFFFF;color:#FFFFFF" href="javascript:;" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" aria-expanded="true"> 工具  
90 - <i class="fa fa-angle-down"></i>  
91 - </a> 95 + <a href="javascript:" class="btn white btn-outline btn-circle" style="border-color: #3B3F51;color: #3B3F51;" data-toggle="dropdown" aria-expanded="false">
  96 + <i class="fa fa-share"></i>
  97 + <span>上行规划选择</span>
  98 + <i class="fa fa-angle-down"></i>
  99 + </a>
92 <ul class="dropdown-menu pull-right" style="min-width:100px"> 100 <ul class="dropdown-menu pull-right" style="min-width:100px">
93 <li> 101 <li>
94 <a class="upSystem" href="javascript:;" data-direction="0" data-pjax><i class="fa fa-wrench"></i> 系统规划</a> 102 <a class="upSystem" href="javascript:;" data-direction="0" data-pjax><i class="fa fa-wrench"></i> 系统规划</a>
95 </li> 103 </li>
96 <li class="divider"> </li> 104 <li class="divider"> </li>
97 <li> 105 <li>
98 - <a class="upManual" href="javascript:;" data-direction="0" data-pjax><i class="fa fa-pencil"></i> 手动规划</a> 106 + <a class="upManual" href="javascript:;" data-direction="0" data-pjax><i class="fa fa-pencil"></i> 其它方式</a>
99 </li> 107 </li>
100 </ul> 108 </ul>
101 </div> 109 </div>
@@ -105,8 +113,9 @@ @@ -105,8 +113,9 @@
105 <div class="row" style="margin-top: 10px;"> 113 <div class="row" style="margin-top: 10px;">
106 <div class="col-md-12"> 114 <div class="col-md-12">
107 <!-- 提示 --> 115 <!-- 提示 -->
108 - <div class="alert alert-warning">  
109 - <strong>系统未初始化该线路上行站点!</strong> 请从上方工具里选择任意一种方式规划该线路上行站点 </div> 116 + <div class="alert alert-warning" style="background-color: #22313F;border-color: #FFFFFF;color: #2ab4c0;">
  117 + <strong>系统未初始化该线路上行站点!</strong> 请从上方【上行规划选择】里选择任意一种方式规划该线路上行站点.
  118 + </div>
110 </div> 119 </div>
111 </div> 120 </div>
112 </div> 121 </div>
@@ -122,9 +131,14 @@ @@ -122,9 +131,14 @@
122 <div class="btn-group" style="float: right;"> 131 <div class="btn-group" style="float: right;">
123 <div class="actions module_tools"> 132 <div class="actions module_tools">
124 <div class="btn-group"> 133 <div class="btn-group">
125 - <a class="btn green-haze btn-outline btn-circle btn-sm" style="background-color:#3B3F51;border-color:#FFFFFF;color:#FFFFFF" href="javascript:;" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" aria-expanded="true"> 工具 134 + <!-- <a class="btn green-haze btn-outline btn-circle btn-sm" style="background-color:#3B3F51;border-color:#FFFFFF;color:#FFFFFF" href="javascript:;" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" aria-expanded="true"> 工具
126 <i class="fa fa-angle-down"></i> 135 <i class="fa fa-angle-down"></i>
127 - </a> 136 + </a> -->
  137 + <a href="javascript:" class="btn white btn-outline btn-circle" style="border-color: #3B3F51;color: #3B3F51;" data-toggle="dropdown" aria-expanded="false">
  138 + <i class="fa fa-share"></i>
  139 + <span>下行操作</span>
  140 + <i class="fa fa-angle-down"></i>
  141 + </a>
128 <ul class="dropdown-menu pull-right" style="min-width:100px"> 142 <ul class="dropdown-menu pull-right" style="min-width:100px">
129 <li> 143 <li>
130 <a href="javascript:;" id="addDownStation"><i class="fa fa-plus"></i> 添加站点</a> 144 <a href="javascript:;" id="addDownStation"><i class="fa fa-plus"></i> 添加站点</a>
@@ -135,7 +149,7 @@ @@ -135,7 +149,7 @@
135 </li> 149 </li>
136 <li class="divider"> </li> 150 <li class="divider"> </li>
137 <li> 151 <li>
138 - <a href="javascript:;" id="deleteDownStation"><i class="fa fa-close"></i> 删除站点</a> 152 + <a href="javascript:;" id="deleteDownStation"><i class="fa fa-close"></i> 撤销站点</a>
139 </li> 153 </li>
140 <li class="divider"> </li> 154 <li class="divider"> </li>
141 <li> 155 <li>
@@ -160,16 +174,18 @@ @@ -160,16 +174,18 @@
160 <div class="col-md-6" style="float: right;"> 174 <div class="col-md-6" style="float: right;">
161 <div class="btn-group" style="float: right;"> 175 <div class="btn-group" style="float: right;">
162 <div class="actions"> 176 <div class="actions">
163 - <a class="btn green-haze btn-outline btn-circle btn-sm" style="background-color:#3B3F51;border-color:#FFFFFF;color:#FFFFFF" href="javascript:;" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" aria-expanded="true"> 工具  
164 - <i class="fa fa-angle-down"></i>  
165 - </a> 177 + <a href="javascript:" class="btn white btn-outline btn-circle" style="border-color: #3B3F51;color: #3B3F51;" data-toggle="dropdown" aria-expanded="false">
  178 + <i class="fa fa-share"></i>
  179 + <span>下行规划选择</span>
  180 + <i class="fa fa-angle-down"></i>
  181 + </a>
166 <ul class="dropdown-menu pull-right" style="min-width:100px"> 182 <ul class="dropdown-menu pull-right" style="min-width:100px">
167 <li> 183 <li>
168 <a class="downSystem" href="javascript:;" data-direction="1" data-pjax><i class="fa fa-wrench"></i> 系统规划</a> 184 <a class="downSystem" href="javascript:;" data-direction="1" data-pjax><i class="fa fa-wrench"></i> 系统规划</a>
169 </li> 185 </li>
170 <li class="divider"> </li> 186 <li class="divider"> </li>
171 <li> 187 <li>
172 - <a class="downManual" href="javascript:;" data-direction="1" data-pjax><i class="fa fa-pencil"></i> 手动规划</a> 188 + <a class="downManual" href="javascript:;" data-direction="1" data-pjax><i class="fa fa-pencil"></i> 其它方式</a>
173 </li> 189 </li>
174 </ul> 190 </ul>
175 </div> 191 </div>
@@ -179,9 +195,9 @@ @@ -179,9 +195,9 @@
179 <div class="row" style="margin-top: 10px;"> 195 <div class="row" style="margin-top: 10px;">
180 <div class="col-md-12"> 196 <div class="col-md-12">
181 <!-- 提示 --> 197 <!-- 提示 -->
182 - <div class="alert alert-warning">  
183 - <strong>系统未初始化该线路下行站点!</strong> 请从上方工具里选择任意一种方式规划该线路下行站点  
184 - </div> 198 + <div class="alert alert-warning" style="background-color: #22313F;border-color: #FFFFFF;color: #2ab4c0;">
  199 + <strong>系统未初始化该线路下行站点!</strong> 请从上方【下行规划选择】里选择任意一种方式规划该线路下行站点.
  200 + </div>
185 </div> 201 </div>
186 </div> 202 </div>
187 </div> 203 </div>