Commit aed236fdd56c68c0d65892b9e61cb3bb30c7d5fe

Authored by 王通
2 parents 9f94a361 b690e4c1

1.合并浦交线路路由编辑部分修改

Showing 36 changed files with 3761 additions and 4042 deletions
src/main/java/com/bsth/controller/InoutCarparkController.java 0 → 100644
  1 +package com.bsth.controller;
  2 +
  3 +import com.bsth.common.ResponseCode;
  4 +import com.bsth.entity.LsInoutSectionRoute;
  5 +import com.bsth.service.InoutCarparkService;
  6 +import org.slf4j.Logger;
  7 +import org.slf4j.LoggerFactory;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.util.StringUtils;
  10 +import org.springframework.web.bind.annotation.RequestMapping;
  11 +import org.springframework.web.bind.annotation.RequestMethod;
  12 +import org.springframework.web.bind.annotation.RequestParam;
  13 +import org.springframework.web.bind.annotation.RestController;
  14 +
  15 +import java.util.HashMap;
  16 +import java.util.Map;
  17 +
  18 +@RestController
  19 +@RequestMapping("inout")
  20 +public class InoutCarparkController extends BaseController<LsInoutSectionRoute, Long>{
  21 +
  22 + private final static Logger logger = LoggerFactory.getLogger(InoutCarparkController.class);
  23 +
  24 + @Autowired
  25 + InoutCarparkService inoutCarparkService;
  26 +
  27 + @RequestMapping(value = "/getStartEndByLine", method = RequestMethod.GET)
  28 + public Map<String, Object> getStartEndByLine(@RequestParam("lineId")int lineId, @RequestParam("version")int version) {
  29 + return inoutCarparkService.getStartEndByLine(lineId, version);
  30 + }
  31 +
  32 + @RequestMapping(value = "/getRouteByStartEnd", method = RequestMethod.GET)
  33 + public Map<String, Object> getRouteByStartEnd(@RequestParam("lineId")int lineId, @RequestParam("version")int version, @RequestParam("start")String start, @RequestParam("end")String end) {
  34 + return inoutCarparkService.getRouteByStartEnd(lineId, version, start, end);
  35 + }
  36 +
  37 + /**
  38 + * 新增路段信息
  39 + *
  40 + * @param map:<bsectionVector:折线百度坐标集合;dbType:圆坐标类型;descriptions:描述与说明;destroy:是否撤销;directions:方向;lineId:线路ID
  41 + *
  42 + * lineCode :线路编码;roadCoding:道路编码;sectionCode:路段编码;sectionDistance:路段长度;sectionName:路段名称;sectionTime:路段时长;
  43 + *
  44 + * sectionrouteCode:路段序号;speedLimit:路段限速>
  45 + *
  46 + * @return map<SUCCESS:成功;ERROR:异常>
  47 + */
  48 + @RequestMapping(value="sectionSave" , method = RequestMethod.POST)
  49 + public Map<String, Object> sectionSave(LsInoutSectionRoute sectionRoute) {
  50 + Map<String, Object> result = new HashMap<>();
  51 + try {
  52 + inoutCarparkService.add(sectionRoute);
  53 + result.put("status", ResponseCode.SUCCESS);
  54 + } catch (Exception e) {
  55 + result.put("status", ResponseCode.ERROR);
  56 + result.put("msg", e.getMessage());
  57 + logger.error("", e);
  58 + }
  59 +
  60 + return result;
  61 + }
  62 +
  63 + /**
  64 + * @Description :TODO(编辑线路走向)
  65 + *
  66 + * @param map <sectionId:路段ID; sectionJSON:路段信息>
  67 + *
  68 + * @return Map<String, Object> <SUCCESS ; ERROR>
  69 + */
  70 + @RequestMapping(value="sectionUpdate" , method = RequestMethod.POST)
  71 + public Map<String, Object> sectionUpdate(LsInoutSectionRoute sectionRoute) {
  72 + Map<String, Object> result = new HashMap<>();
  73 + try {
  74 + inoutCarparkService.modify(sectionRoute);
  75 + result.put("status", ResponseCode.SUCCESS);
  76 + } catch (Exception e) {
  77 + result.put("status", ResponseCode.ERROR);
  78 + result.put("msg", e.getMessage());
  79 + logger.error("", e);
  80 + }
  81 +
  82 + return result;
  83 + }
  84 +
  85 + /**
  86 + * @param id //路段路由id
  87 + * @Description: TODO(撤销路段)
  88 + */
  89 + @RequestMapping(value = "/destroy", method = RequestMethod.POST)
  90 + public Map<String, Object> destroy(@RequestParam Map<String, Object> map) {
  91 + return inoutCarparkService.destroy(map);
  92 + }
  93 +
  94 + /**
  95 + * 从历史轨迹做进场路径规划
  96 + * @Description: TODO(撤销路段)
  97 + */
  98 + @RequestMapping(value = "/pathPlaningByHistory", method = RequestMethod.POST)
  99 + public Map<String, Object> pathPlaningByHistory(@RequestParam Map<String, Object> map){
  100 + Map<String, Object> result = new HashMap<>();
  101 + result.put("status", ResponseCode.SUCCESS);
  102 + try {
  103 + String schId = (String)map.get("schId"), version = (String)map.get("version");
  104 + if (StringUtils.isEmpty(schId) || StringUtils.isEmpty(version)) {
  105 + throw new RuntimeException("无效的参数");
  106 + }
  107 + inoutCarparkService.pathPlaningByHistory(Long.parseLong(schId), Integer.parseInt(version));
  108 + } catch (Exception e) {
  109 + result.put("status", ResponseCode.ERROR);
  110 + logger.error("路径规划异常", e);
  111 + }
  112 +
  113 + return result;
  114 + }
  115 +}
... ...
src/main/java/com/bsth/entity/LsInoutSectionRoute.java
1 1 package com.bsth.entity;
2 2  
  3 +import org.hibernate.annotations.DynamicUpdate;
  4 +
3 5 import javax.persistence.*;
4 6 import java.util.Date;
5 7  
... ... @@ -18,6 +20,7 @@ import java.util.Date;
18 20  
19 21 @Entity
20 22 @Table(name = "bsth_c_ls_inout_sectionroute")
  23 +@DynamicUpdate
21 24 public class LsInoutSectionRoute {
22 25  
23 26 @Id
... ...
src/main/java/com/bsth/entity/Section.java
... ... @@ -3,6 +3,7 @@ package com.bsth.entity;
3 3 import com.fasterxml.jackson.annotation.JsonIgnore;
4 4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5 5 import org.geolatte.geom.LineString;
  6 +import org.hibernate.annotations.DynamicUpdate;
6 7 import org.hibernate.annotations.Formula;
7 8  
8 9 import java.util.Date;
... ... @@ -26,6 +27,7 @@ import javax.persistence.*;
26 27 @Entity
27 28 @Table(name = "bsth_c_section")
28 29 @JsonIgnoreProperties(ignoreUnknown = true)
  30 +@DynamicUpdate
29 31 public class Section{
30 32  
31 33 @Id
... ...
src/main/java/com/bsth/repository/LineVersionsRepository.java
... ... @@ -71,7 +71,7 @@ public interface LineVersionsRepository extends BaseRepository&lt;LineVersions, Int
71 71 /**
72 72 * 查询线路最大线路版本
73 73 */
74   - @Query(value = "select lv2 from LineVersions lv2 where lv2.line.id =?1")
  74 + @Query(value = "select lv2 from LineVersions lv2 where lv2.line.id = ?1 order by lv2.versions")
75 75 public List<LineVersions> findAllHistroyLineVersionsById(int lineId);
76 76  
77 77  
... ...
src/main/java/com/bsth/repository/LsInoutSectionRouteRepository.java
... ... @@ -29,7 +29,7 @@ public interface LsInoutSectionRouteRepository extends BaseRepository&lt;LsInoutSec
29 29 /**
30 30 * 查询待更新线路的路段路由
31 31 */
32   - @Query(value = "SELECT sr FROM LsInoutSectionRoute sr where sr.line.id =?1 and sr.versions=?2 and sr.start=?3 and sr.end=?4 and sr.destroy=0")
  32 + @Query(value = "SELECT sr FROM LsInoutSectionRoute sr where sr.line.id =?1 and sr.versions=?2 and sr.start=?3 and sr.end=?4 and sr.destroy=0 order by sr.sectionrouteCode")
33 33 List<LsInoutSectionRoute> getRouteByStartEnd(int lineId, int version, String start, String end);
34 34  
35 35 /**
... ... @@ -45,13 +45,30 @@ public interface LsInoutSectionRouteRepository extends BaseRepository&lt;LsInoutSec
45 45 public void sectionUpdSectionRouteCode(String lineCode, int version, String start, String end, Integer sectionrouteCode);
46 46  
47 47 /**
48   - * 撤销线路某版本进出场
  48 + * 在站点路由更新时(站点路由可能改变路由编号,如起点、改变上一站点)
  49 + * 将当前路由编号及以后的编号批量递增10
  50 + * @param sectionRoute
  51 + */
  52 + @Modifying
  53 + @Query(value="UPDATE bsth_c_ls_inout_sectionroute set sectionroute_code = (sectionroute_code + 10) where line = :#{#sectionRoute.line.id} and destroy = 0 and versions = :#{#sectionRoute.versions} and directions = :#{#sectionRoute.directions} and sectionroute_code >= :#{#sectionRoute.sectionrouteCode}", nativeQuery=true)
  54 + void updateSectiouRouteCode(LsInoutSectionRoute sectionRoute);
  55 +
  56 + /**
  57 + * 撤销线路版本下某个方向进出场整个路由组
49 58 * @param lineCode
50 59 * @param version
51 60 * @param start
52 61 * @param end
53 62 */
54 63 @Modifying
55   - @Query(value="UPDATE bsth_c_ls_inout_sectionroute set destroy = 1 where line_code = ?1 and versions = ?2 and start = ?3 and end = ?4", nativeQuery=true)
56   - public void destroy(String lineCode, int version, String start, String end);
  64 + @Query(value="UPDATE bsth_c_ls_inout_sectionroute set destroy = 1 where id = ?1 and versions = ?2 and start = ?3 and end = ?4", nativeQuery=true)
  65 + void destroy(String lineCode, int version, String start, String end);
  66 +
  67 + /**
  68 + * 按ID撤销进出场路由组中一个路由
  69 + * @param id
  70 + */
  71 + @Modifying
  72 + @Query(value="UPDATE bsth_c_ls_inout_sectionroute set destroy = 1 where id = ?1", nativeQuery=true)
  73 + void destroy(Integer id);
57 74 }
... ...
src/main/java/com/bsth/service/InoutCarparkService.java 0 → 100644
  1 +package com.bsth.service;
  2 +
  3 +import com.bsth.entity.LsInoutSectionRoute;
  4 +import com.fasterxml.jackson.core.JsonProcessingException;
  5 +
  6 +import java.util.Map;
  7 +
  8 +public interface InoutCarparkService {
  9 +
  10 + Map<String, Object> getStartEndByLine(int lineId, int version);
  11 +
  12 + Map<String, Object> getRouteByStartEnd(int lineId, int version, String start, String end);
  13 +
  14 + /**
  15 + * 添加进出场路段和路由
  16 + * @param sectionRoute
  17 + */
  18 + void add(LsInoutSectionRoute sectionRoute);
  19 +
  20 + void modify(LsInoutSectionRoute sectionRoute);
  21 +
  22 + Map<String, Object> destroy(Map<String, Object> map);
  23 +
  24 + void pathPlaningByHistory(long schId, int versions) throws JsonProcessingException;
  25 +}
... ...
src/main/java/com/bsth/service/impl/InoutCarparkServiceImpl.java 0 → 100644
  1 +package com.bsth.service.impl;
  2 +
  3 +import com.alibaba.fastjson.JSONArray;
  4 +import com.bsth.common.ResponseCode;
  5 +import com.bsth.data.BasicData;
  6 +import com.bsth.entity.*;
  7 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  8 +import com.bsth.repository.*;
  9 +import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
  10 +import com.bsth.service.InoutCarparkService;
  11 +import com.bsth.service.gps.GpsService;
  12 +import com.bsth.util.CoordinateConverter;
  13 +import com.bsth.util.CustomBeanUtils;
  14 +import com.fasterxml.jackson.core.JsonProcessingException;
  15 +import com.fasterxml.jackson.databind.ObjectMapper;
  16 +import org.joda.time.DateTime;
  17 +import org.joda.time.format.DateTimeFormat;
  18 +import org.joda.time.format.DateTimeFormatter;
  19 +import org.slf4j.Logger;
  20 +import org.slf4j.LoggerFactory;
  21 +import org.springframework.beans.factory.annotation.Autowired;
  22 +import org.springframework.stereotype.Service;
  23 +import org.springframework.transaction.annotation.Transactional;
  24 +
  25 +import javax.persistence.EntityManager;
  26 +import java.text.SimpleDateFormat;
  27 +import java.util.*;
  28 +
  29 +/**
  30 + * @author Hill
  31 + */
  32 +@Service
  33 +public class InoutCarparkServiceImpl extends BaseServiceImpl<LsInoutSectionRoute, Long> implements InoutCarparkService {
  34 +
  35 + private final static Logger logger = LoggerFactory.getLogger(InoutCarparkServiceImpl.class);
  36 +
  37 + @Autowired
  38 + private LsStationRouteRepository lsStationRouteRepository;
  39 +
  40 + @Autowired
  41 + private CarParkRepository carParkRepository;
  42 +
  43 + @Autowired
  44 + private LsInoutSectionRouteRepository lsInoutSectionRouteRepository;
  45 +
  46 + @Autowired
  47 + private SectionRepository sectionRepository;
  48 +
  49 + @Autowired
  50 + LineRepository lineRepository;
  51 +
  52 + @Autowired
  53 + private ScheduleRealInfoRepository scheduleRealInfoRepository;
  54 +
  55 + @Autowired
  56 + private GpsService gpsService;
  57 +
  58 + @Autowired
  59 + private LineVersionsRepository lineVersionsRepository;
  60 +
  61 + @Override
  62 + public Map<String, Object> getStartEndByLine(int lineId, int version) {
  63 + Map<String, Object> result = new HashMap<>(), data = new HashMap<>();
  64 + result.put("code", 0);
  65 + result.put("msg", "");
  66 + result.put("data", data);
  67 +
  68 + List<LsStationRoute> upRoutes = lsStationRouteRepository.findByLineVersion(lineId, version, 0), downRoutes = lsStationRouteRepository.findByLineVersion(lineId, version, 1);
  69 + CarPark carPark = carParkRepository.findByLineId(lineId);
  70 + if (carPark == null) {
  71 + result.put("code", 500);
  72 + result.put("msg", "线路标准信息中无相应的停车场信息");
  73 +
  74 + return result;
  75 + }
  76 + if (upRoutes.size() < 2) {
  77 + result.put("code", 500);
  78 + result.put("msg", "线路上行站级少于2");
  79 +
  80 + return result;
  81 + }
  82 + LsStationRoute upFirst = upRoutes.get(0), upLast = upRoutes.get(upRoutes.size() - 1);
  83 + LsStationRoute downFirst = downRoutes.get(0), downLast = downRoutes.get(downRoutes.size() - 1);
  84 + // 环线或双环线只需提取一个起点站
  85 + if (upFirst.getStationCode().equals(upLast.getStationCode())) {
  86 + data.put("start", new LsStationRoute[]{ upFirst });
  87 + data.put("end", new LsStationRoute[]{ upFirst });
  88 + } else {
  89 + if (downRoutes.size() < 2) {
  90 + result.put("code", 500);
  91 + result.put("msg", "非环线线路下行站级少于2");
  92 +
  93 + return result;
  94 + }
  95 + data.put("start", new LsStationRoute[]{ upFirst, downFirst });
  96 + data.put("end", new LsStationRoute[]{ upLast, downLast });
  97 + }
  98 + data.put("carpark", carPark);
  99 +
  100 + return result;
  101 + }
  102 +
  103 + @Override
  104 + public Map<String, Object> getRouteByStartEnd(int lineId, int version, String start, String end) {
  105 + Map<String, Object> result = new HashMap<>(), data = new HashMap<>();
  106 + result.put("code", 0);
  107 + result.put("msg", "");
  108 + result.put("data", data);
  109 + data.put("routes", lsInoutSectionRouteRepository.getRouteByStartEnd(lineId, version, start, end));
  110 +
  111 + return result;
  112 + }
  113 +
  114 + /**
  115 + * 添加进出场路段和路由
  116 + */
  117 + @Override
  118 + @Transactional
  119 + public void add(LsInoutSectionRoute sectionRoute) {
  120 + Section section = sectionRoute.getSection();
  121 + Line line = lineRepository.findById(sectionRoute.getLine().getId()).get();
  122 + Integer version = lineVersionsRepository.findCurrentVersion(line.getId());
  123 + boolean isPresent = sectionRepository.findById(section.getId()).isPresent();
  124 + sectionRoute.setLineCode(line.getLineCode());
  125 + if (sectionRoute.getVersions() < version) {
  126 + throw new IllegalArgumentException("历史版本不可变更");
  127 + }
  128 +
  129 + // 路段坐标信息
  130 + if (!isPresent) {
  131 + SectionServiceImpl.centerLine(section);
  132 + }
  133 +
  134 + lsInoutSectionRouteRepository.updateSectiouRouteCode(sectionRoute);
  135 + if (!isPresent) {
  136 + sectionRepository.save(section);
  137 + }
  138 + lsInoutSectionRouteRepository.save(sectionRoute);
  139 + }
  140 +
  141 + /** 百度坐标转WGS坐标 */
  142 + public CoordinateConverter.Location FromBDPointToWGSPoint(String bLonx, String bLatx) {
  143 +
  144 + double lng = Double.parseDouble(bLonx);
  145 +
  146 + double lat = Double.parseDouble(bLatx);
  147 +
  148 + CoordinateConverter.Location bdLoc = CoordinateConverter.LocationMake(lng, lat);
  149 +
  150 + CoordinateConverter.Location location = CoordinateConverter.bd_decrypt(bdLoc);
  151 +
  152 + CoordinateConverter.Location WGSPoint = CoordinateConverter.transformFromGCJToWGS(location);
  153 +
  154 + return WGSPoint;
  155 +
  156 + }
  157 +
  158 + @Transactional(rollbackFor = RuntimeException.class)
  159 + @Override
  160 + public void modify(LsInoutSectionRoute sectionRoute) {
  161 + Section section = sectionRoute.getSection();
  162 + LsInoutSectionRoute sectionRoute1 = lsInoutSectionRouteRepository.findById(sectionRoute.getId()).get();
  163 + Section section1 = sectionRepository.findById(section.getId()).get();
  164 + Integer version = lineVersionsRepository.findCurrentVersion(sectionRoute1.getLine().getId());
  165 + if (sectionRoute1.getVersions() < version) {
  166 + throw new IllegalArgumentException("历史版本不可变更");
  167 + }
  168 +
  169 + SectionServiceImpl.centerLine(section);
  170 +
  171 + lsInoutSectionRouteRepository.updateSectiouRouteCode(sectionRoute);
  172 + CustomBeanUtils.copyPropertiesIgnoredNull(sectionRoute, sectionRoute1);
  173 + CustomBeanUtils.copyPropertiesIgnoredNull(section, section1);
  174 + sectionRepository.save(section1);
  175 + lsInoutSectionRouteRepository.save(sectionRoute1);
  176 + }
  177 +
  178 + @Override
  179 + @Transactional
  180 + public Map<String, Object> destroy(Map<String, Object> map) {
  181 + Map<String, Object> resultMap = new HashMap<String, Object>();
  182 + try {
  183 + Integer id = Integer.valueOf(map.get("id").toString());
  184 +
  185 + if(map.get("status") == null || Integer.parseInt(map.get("status").toString()) != 0) {
  186 + lsInoutSectionRouteRepository.destroy(id);
  187 + }
  188 + resultMap.put("status", ResponseCode.SUCCESS);
  189 + } catch (Exception e) {
  190 + resultMap.put("status", ResponseCode.ERROR);
  191 + logger.error("destroy erro.", e);
  192 + }
  193 + return resultMap;
  194 + }
  195 +
  196 + @Override
  197 + @Transactional(rollbackFor = RuntimeException.class)
  198 + public void pathPlaningByHistory(long schId, int versions) {
  199 + LsInoutSectionRoute sectionRoute = new LsInoutSectionRoute();
  200 + ScheduleRealInfo scheduleRealInfo = scheduleRealInfoRepository.findById(schId).get();
  201 + DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-ddHH:mm");
  202 + DateTime start = formatter.parseDateTime(scheduleRealInfo.getRealExecDate() + scheduleRealInfo.getFcsjActual());
  203 + DateTime end = formatter.parseDateTime(scheduleRealInfo.getRealExecDate() + scheduleRealInfo.getZdsjActual());
  204 + if (start.isAfter(end)) {
  205 + end = end.plusDays(1);
  206 + }
  207 + Map<String, Object> map = gpsService.history(new String[]{ scheduleRealInfo.getClZbh() }, start.getMillis() / 1000 - 20, end.getMillis() / 1000 + 20);
  208 + List<Map<String, Object>> list = (List<Map<String, Object>>)map.get("list");
  209 + StringBuilder sb = new StringBuilder("LINESTRING(");
  210 + for (Map<String, Object> m : list) {
  211 + Map<String, Object> m1 = new HashMap<>();
  212 + Float lng = (Float)m.get("lon"), lat = (Float)m.get("lat");
  213 + if (lng == 0 || lat == 0) {
  214 + continue;
  215 + }
  216 + sb.append(lng).append(" ").append(lat).append(",");
  217 + }
  218 + sb.deleteCharAt(sb.length() - 1).append(")");
  219 +
  220 + Integer sectionId = sectionRepository.findLatestSectionId() + 1;
  221 + Line line = new Line();Section section = new Section();
  222 + sectionRoute.setLine(line);
  223 + sectionRoute.setSection(section);
  224 + line.setId(Integer.parseInt(scheduleRealInfo.getXlBm()));
  225 + line.setLineCode(scheduleRealInfo.getXlBm());
  226 + section.setId(sectionId);
  227 + section.setSectionCode(sectionId.toString());
  228 + section.setSectionName(scheduleRealInfo.getQdzName() + "-" + scheduleRealInfo.getZdzName());
  229 + section.setBsectionVectorWkt(sb.toString());
  230 + section.setSectionTime(0.);
  231 + section.setSectionDistance(0.);
  232 + section.setSpeedLimit(60.);
  233 + sectionRoute.setSectionCode(sectionId.toString());
  234 + sectionRoute.setSectionrouteCode(1);
  235 + sectionRoute.setStart(scheduleRealInfo.getQdzName());
  236 + sectionRoute.setEnd(scheduleRealInfo.getZdzName());
  237 + sectionRoute.setDirections(3);
  238 + sectionRoute.setDestroy(0);
  239 + sectionRoute.setVersions(versions);
  240 +
  241 + lsInoutSectionRouteRepository.destroy(scheduleRealInfo.getXlBm(), versions, scheduleRealInfo.getQdzName(), scheduleRealInfo.getZdzName());
  242 + add(sectionRoute);
  243 + }
  244 +}
... ...
src/main/java/com/bsth/service/impl/SectionServiceImpl.java
... ... @@ -187,6 +187,7 @@ public class SectionServiceImpl extends BaseServiceImpl&lt;Section, Integer&gt; implem
187 187 }
188 188 resultMap.put("status", ResponseCode.SUCCESS);
189 189 } catch (Exception e) {
  190 + logger.error("doubleName()", e);
190 191 resultMap.put("status", ResponseCode.ERROR);
191 192 }
192 193 return resultMap;
... ...
src/main/resources/static/index.html
... ... @@ -658,6 +658,6 @@
658 658 <script src="/real_control_v2/assets/plugins/perfect-scrollbar/perfect-scrollbar.jquery.js" merge="plugins"></script>
659 659 <!-- RSA加密 -->
660 660 <script src="/assets/plugins/jsencrypt.min.js"></script>
661   -
  661 +<script src="/assets/js/eventproxy.js"></script>
662 662 </body>
663 663 </html>
664 664 \ No newline at end of file
... ...
src/main/resources/static/pages/base/stationroute/add_routes_template.html
... ... @@ -102,8 +102,8 @@
102 102 <script src="/assets/js/CoordinateConverter.js"></script>
103 103  
104 104 <script type="text/javascript">
105   -$('#add_routes_template_modal').on('modal.show', function(e,_WorldsBMap,_GetAjaxData,_LineObj,_PublicFunctions){
106   - var line = _LineObj.getLineObj();
  105 +$('#add_routes_template_modal').on('modal.show', function(event){
  106 + var properties = RoutesOperation.getProperties();
107 107 // 延迟加载显示mobal
108 108 setTimeout(function(){$('#add_routes_template_modal').modal({show: true, backdrop: 'static', keyboard: false});},200);
109 109 // 获取表单元素
... ... @@ -200,8 +200,6 @@ $(&#39;#add_routes_template_modal&#39;).on(&#39;modal.show&#39;, function(e,_WorldsBMap,_GetAjax
200 200 $('#add_routes_template_modal').modal('hide');
201 201 // 定义线路名称
202 202 let lineName = $('.portlet-title .caption').text();
203   - // 路线方向
204   - let directionData = $("input[name='dirCheck']:checked").val();
205 203 /**
206 204 * 添加类型0(txt)/1(xml)
207 205 * txt方式路段需要30个点取一个
... ... @@ -235,22 +233,22 @@ $(&#39;#add_routes_template_modal&#39;).on(&#39;modal.show&#39;, function(e,_WorldsBMap,_GetAjax
235 233 let sectionListFinal = [];
236 234 sectionListFinal.push({sectionrouteCode: 100, section: {sectionName: lineName, bsectionVectorWkt: locations2LinestringWkt(sectionList)}});
237 235 // 根据站点名称获取百度坐标
238   - _WorldsBMap.stationsPointsToLibraryPoint(stationList,function(resultJson) {
  236 + RoutesOperation.stationsPointsToLibraryPoint(stationList,function(resultJson) {
239 237 // 根据坐标点获取两点之间的时间与距离
240   - _WorldsBMap.getDistanceAndDuration(resultJson,function(stationdataList) {
  238 + RoutesOperation.getDistanceAndDuration(resultJson,function(stationDataList) {
241 239 // 参数集合
242   - let params = {lineId: line.id, directions: directionData, versions: $('#versions').val(), stationRoutes: stationdataList, sectionRoutes: sectionListFinal};
  240 + let params = {lineId: properties.lineId, directions: properties.directions, versions: properties.versions, stationRoutes: stationDataList, sectionRoutes: sectionListFinal};
243 241 if (!params.versions) {
244 242 params.versions = '1';
245 243 }
246   - _GetAjaxData.manualSave(params, function(res) {
  244 + RoutesService.manualSave(params, function(res) {
247 245 // 关闭弹出层
248 246 layer.closeAll();
249 247 if (res.status == 'SUCCESS') {
250 248 // 清除地图覆盖物
251   - _WorldsBMap.clearMarkAndOverlays();
  249 + RoutesOperation.clearMarkAndOverlays();
252 250 // 查询路段信息
253   - _PublicFunctions.resjtreeDate(params.lineId, params.directions, params.versions);
  251 + RoutesOperation.resjtreeDate(params.lineId, params.directions, params.versions);
254 252  
255 253 $('#route_show').removeClass('hidden');
256 254 $('#generationRoute_div').addClass('hidden');
... ...
src/main/resources/static/pages/base/stationroute/add_stationroute_step1.html
... ... @@ -10,7 +10,7 @@
10 10 </div>
11 11 <div class="modal-body">
12 12 <form class="form-horizontal" action="/" method="post" id="formBootbox" role="form">
13   - <div class="alert alert-danger display-hide" id="requiredname">
  13 + <div class="alert alert-danger display-hide" id="error">
14 14 <button class="close" data-close="alert"></button>
15 15 站点名称为必填项
16 16 </div>
... ... @@ -45,7 +45,8 @@
45 45 </div>
46 46 </div>
47 47 <script type="text/javascript">
48   -$('#add_stationroute_step1_modal').on('modal.show', function(e,_WorldsBMap,DrawingManagerObj,GetAjaxData,AddStationObj,LineObj,PublicFunctions){
  48 +$('#add_stationroute_step1_modal').on('modal.show', function(event){
  49 + var addStationRoute = RoutesOperation.getAddStationRoute();
49 50 // 加载显示mobal
50 51 $('#add_stationroute_step1_modal').modal({show: true, backdrop: 'static', keyboard: false});
51 52 setTimeout(function(){
... ... @@ -71,7 +72,7 @@ $(&#39;#add_stationroute_step1_modal&#39;).on(&#39;modal.show&#39;, function(e,_WorldsBMap,Drawi
71 72 // 获取表单元素
72 73 var form = $('#formBootbox');
73 74 // 错误提示元素
74   - var requiredname = $('#requiredname', form);
  75 + var error = $('#error', form);
75 76 // 下一步点击事件
76 77 $('#addSelectnextButton').on('click', function() {
77 78 // 表单提交
... ... @@ -86,8 +87,8 @@ $(&#39;#add_stationroute_step1_modal&#39;).on(&#39;modal.show&#39;, function(e,_WorldsBMap,Drawi
86 87 'stationName' : {required: true, maxlength: 50}
87 88 },
88 89 invalidHandler : function(event, validator) {
89   - requiredname.show();
90   - App.scrollTo(requiredname, -200);
  90 + error.show();
  91 + App.scrollTo(error, -200);
91 92 },
92 93 highlight : function(element) {
93 94 $(element).closest('.form-group').addClass('has-error');
... ... @@ -99,16 +100,12 @@ $(&#39;#add_stationroute_step1_modal&#39;).on(&#39;modal.show&#39;, function(e,_WorldsBMap,Drawi
99 100 label.closest('.form-group').removeClass('has-error');
100 101 },
101 102 submitHandler : function(f) {
102   - // 隐藏错误提示
103   - requiredname.hide();
104   - //$('#addSelectnextButton').attr('disabled', true);
  103 + error.hide();
105 104 $('#add_stationroute_step1_modal').modal('hide');
106   - // 表单序列化
107 105 let params = form.serializeJSON();
108   - /** 设置新增站点对象站点名称属性值 @param:<stationName:站点名称)> */
109   - AddStationObj.setAddStationName(params.stationName);
110   - AddStationObj.setAddStationShapesType(params.type == '0' ? 'r' : 'd');
111   - _WorldsBMap.localtionPoint(params.stationName);
  106 + addStationRoute.stationName = params.stationName;
  107 + addStationRoute.shapedType = (params.type == '0' ? 'r' : 'd');
  108 + RoutesOperation.localtionPoint(params.stationName);
112 109 }
113 110 });
114 111 });
... ...
src/main/resources/static/pages/base/stationroute/add_stationroute_step2.html
... ... @@ -131,7 +131,7 @@
131 131 <div class="form-group">
132 132 <label class="col-md-3 control-label"><span class="required"> * </span>几何图形类型:</label>
133 133 <div class="col-md-6">
134   - <input type="text" class="form-control" name="shapedType" id="shapesTypeSelect" placeholder="几何图形类型" readonly="readonly">
  134 + <input type="text" class="form-control" name="shapedType" id="shapedTypeSelect" placeholder="几何图形类型" readonly="readonly">
135 135 </div>
136 136 </div>
137 137 </div>
... ... @@ -214,26 +214,23 @@
214 214 </div>
215 215 </div>
216 216 <script type="text/javascript">
217   -$('#add_stationroute_step2_modal').on('modal.show', function(e, _WorldsBMap,_GetAjaxData,_AddStationObj,_LineObj,_PublicFunctions){
218   - var Station = _AddStationObj.getAddStation();
219   - var Line = _LineObj.getLineObj();
220   - // 延迟加载
  217 +$('#add_stationroute_step2_modal').on('modal.show', function(event){
  218 + var addStationRoute = RoutesOperation.getAddStationRoute();
  219 + var properties = RoutesOperation.getProperties();
221 220 setTimeout(function(){
222 221 // 显示mobal
223 222 $('#add_stationroute_step2_modal').modal({show : true, backdrop: 'static', keyboard: false});
224 223 }, 200);
225   - // 当调用 hide 实例方法时触发
226 224 $('#add_stationroute_step2_modal').on('hide.bs.modal', function () {
227 225 closeMobleSetClean();
228 226 });
229   - // 当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。
230 227 $('#add_stationroute_step2_modal').on('show.bs.modal', function () {
231 228 // 获取站点编码元素,添加站点编码值
232   - _GetAjaxData.getStationCode(function(stationCode) {
233   - var stationId = Station.id ? Station.id : stationCode, stationCode = Station.stationCode ? Station.stationCode : stationCode;
234   - var stationName = Station.stationName ? Station.stationName : Station.stationNamebootbox;
235   - var station = {id: stationId, stationCode: stationCode, stationName: stationName, centerPointWkt: Station.bJwpoints, shapedType: Station.shapesType};
236   - var params = {station: station, line: Line, stationCode: stationCode, stationName: station.stationName, directions: Station.dir, bufferPolygonWkt: Station.bPolygonGrid, versions: $("#versions").val()};
  229 + RoutesService.getStationCode(function(stationCode) {
  230 + var stationId = addStationRoute.id ? addStationRoute.id : stationCode, stationCode = addStationRoute.stationCode ? addStationRoute.stationCode : stationCode;
  231 + var stationName = addStationRoute.stationName;
  232 + var station = {id: stationId, stationCode: stationCode, stationName: stationName, centerPointWkt: addStationRoute.centerPointWkt};
  233 + var params = {station: station, line: {id: properties.lineId}, stationCode: stationCode, stationName: stationName, directions: properties.directions, shapedType: addStationRoute.shapedType, bufferPolygonWkt: addStationRoute.bufferPolygonWkt, versions: properties.versions};
237 234 $('input').each(function () {
238 235 var name = $(this).attr('name'), value = eval('params.' + name);
239 236 if (value) {
... ... @@ -241,12 +238,11 @@ $(&#39;#add_stationroute_step2_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Get
241 238 }
242 239 });
243 240 $('#stationdirSelect').val(params.directions);
244   - // 获取图形类型元素,并添加值
245   - if (params.station.shapedType == 'r') {
246   - $('#shapesTypeSelect').val('圆形');
247   - } else if (params.station.shapedType == 'd') {
  241 + if (params.shapedType == 'r') {
  242 + $('#shapedTypeSelect').val('圆形');
  243 + } else if (params.shapedType == 'd') {
248 244 $('#radiusGroup').hide();
249   - $('#shapesTypeSelect').val('多边形');
  245 + $('#shapedTypeSelect').val('多边形');
250 246 }
251 247  
252 248 var initzdlyP = {'line.id_eq': params.line.id, 'destroy_eq': 0, 'directions_eq': params.directions, "versions_eq": params.versions};
... ... @@ -287,8 +283,7 @@ $(&#39;#add_stationroute_step2_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Get
287 283 'directions' : {required : true,dirIs : true},// 站点方向 必填项 必填项
288 284 'stationRouteCode' : {isStart : true},// 站点序号
289 285 'stationMark' : {required : true,},// 站点类型 必填项.
290   - 'bJwpoints' : {required : true,},// 经纬度坐标点 必填项.
291   - 'shapesType' : {required : true,},// 几何图形类型 必填项.
  286 + 'shapedType' : {required : true,},// 几何图形类型 必填项.
292 287 'radius' : {required : true,},// 几何图形类型 必填项.
293 288 'destroy' : {required : true,},// 是否撤销 必填项.
294 289 'toTime' : {number : true},// 到站时间 必须输入合法的数字(负数,小数)。
... ... @@ -313,36 +308,28 @@ $(&#39;#add_stationroute_step2_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Get
313 308 var params = form.serializeJSON();
314 309 error.hide();
315 310 params['station.centerPointWkt'] = 'POINT(' + params['station.centerPointWkt'] + ')';
316   - params.bufferPolygonWkt = 'POLYGON((' + params.bufferPolygonWkt + '))';
  311 + params.bufferPolygonWkt = params.bufferPolygonWkt ? 'POLYGON((' + params.bufferPolygonWkt + '))' : '';
317 312 params.shapedType = params.shapedType == '圆形' ? 'r' : 'd';
318 313 if (params.stationRouteCode == '请选择...' && params.stationMark == 'B') {
319 314 params.stationRouteCode = '100';
320 315 } else {
321 316 params.stationRouteCode = parseInt(params.stationRouteCode) + 1;
322 317 }
  318 + params.status = properties.status;
323 319  
324   - params.status = $($("#versions").find("option:selected")[0]).attr("status");
325   - // 保存
326   - _GetAjaxData.addStationRoute(params,function(data) {
  320 + RoutesService.addStationRoute(params, function(data) {
327 321 if(data.status=='SUCCESS') {
328   - // 弹出添加成功提示消息
329 322 layer.msg('添加成功...');
330   - }else {
331   - // 弹出添加失败提示消息
  323 + } else {
332 324 layer.msg('添加失败...');
333 325 }
334   - var id =Line.id;
335   - var dir = params.directions
336   - // 刷行左边树
337   - _PublicFunctions.resjtreeDate(id,dir,$("#versions").val());
338   - closeMobleSetClean();
339   - // 隐藏moble
340   - hideMoble();
  326 + RoutesOperation.resjtreeDate(properties.lineId, properties.directions, properties.versions);
  327 + $('#add_stationroute_step2_modal').modal('hide');
341 328 });
342 329 }
343 330 });
344 331 function initSelect(p){
345   - _GetAjaxData.getzdlyInfo(p,function(array) {
  332 + RoutesService.getzdlyInfo(p, function(array) {
346 333 // 定义路段路由长度、渲染拼音检索下拉框格式数据.
347 334 var len_ = array.length,paramsD = new Array();
348 335 if(len_>0) {
... ... @@ -352,33 +339,23 @@ $(&#39;#add_stationroute_step2_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Get
352 339 // 判断.
353 340 if(g.name!='' || g.name != null) {
354 341 // 添加拼音检索下拉框格式数据数组.
355   - paramsD.push({'id':g.stationRouteCode, 'text':g.stationName + ' (' + g.stationRouteCode + ')' + ' --' + _PublicFunctions.dirdmToName(g.directions)});
  342 + paramsD.push({'id':g.stationRouteCode, 'text':g.stationName + ' (' + g.stationRouteCode + ')' + ' --' + RoutesOperation.dirdmToName(g.directions)});
356 343 }
357 344 });
358 345 $('#stationrouteSelect').empty();
359 346 // 初始化上一个路段拼音检索下拉框.
360   - initPinYinSelect2($('#stationrouteSelect'),paramsD,function(selector) {
  347 + initPinYinSelect2($('#stationrouteSelect'), paramsD, function(selector) {
361 348 });
362 349 }
363 350 });
364 351 }
  352 +
365 353 function closeMobleSetClean() {
366   - // 清除地图覆盖物
367   - _WorldsBMap.clearMarkAndOverlays();
368   - /** 设置新增站点集合对象为空 */
369   - _AddStationObj.setAddStation({});
370   - var add_direction_v = $('#stationdirSelect').val();
371   - var version = $("#versions").val();
372   - PublicFunctions.resjtreeDate(Line.id,add_direction_v,version);
373   - //_GetAjaxData.getSectionRouteInfo(Line.id,add_direction_v,version,function(data) {
374   - // _PublicFunctions.linePanlThree(Line.id,data,add_direction_v,version);
375   - //});
376   - _PublicFunctions.editMapStatusRemove();
377   - }
378   - function hideMoble() {
379   - // 隐藏mobal
380   - $('#add_stationroute_step2_modal').modal('hide');
  354 + RoutesOperation.clearMarkAndOverlays();
  355 + RoutesOperation.resjtreeDate(properties.lineId, properties.directions, properties.versions);
  356 + RoutesOperation.editMapStatusRemove();
381 357 }
  358 +
382 359 // 当站点类型为中途站或者终点站时,上一站点为必填项!
383 360 $.validator.addMethod("isStart", function(value,element) {
384 361 var tel = false;
... ... @@ -395,11 +372,12 @@ $(&#39;#add_stationroute_step2_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Get
395 372 }
396 373 return tel;
397 374 }, '当站点类型为中途站或者终点站时,上一站点为必填项!');
  375 +
398 376 // 方向
399 377 $.validator.addMethod("dirIs", function(value,element) {
400 378 var tel = true;
401 379 var stationMarkV = $('#stationdirSelect').val();
402   - if(stationMarkV!=Station.dir){
  380 + if(stationMarkV != addStationRoute.directions){
403 381 tel = false;
404 382 }
405 383 return tel;
... ...
src/main/resources/static/pages/base/stationroute/destroy_routes.html
1 1 <!-- 批量撤销选项 -->
2   -<div class="modal fade" id="delete_select_mobal" tabindex="-1"
  2 +<div class="modal fade" id="delete_select_modal" tabindex="-1"
3 3 role="basic" aria-hidden="true">
4 4 <div class="modal-dialog">
5 5 <div class="modal-content">
... ... @@ -37,43 +37,32 @@
37 37 </div>
38 38 </div>
39 39 <script type="text/javascript">
40   - $('#delete_select_mobal').on('deleteSelectMobal.show',function(e,ajaxd,line,fun,delBatch) {
41   - // 加载显示mobal
42   - $('#delete_select_mobal').modal({
  40 + $('#delete_select_modal').on('modal.show',function(event) {
  41 + $('#delete_select_modal').modal({
43 42 show : true,
44 43 backdrop : 'static',
45 44 keyboard : false
46 45 });
47   - // 获取表单元素
48 46 var form = $('#formBootbox');
49   - // 下一步点击事件
50 47 $('#deleteSelectnextButton').on('click', function() {
51   - // 获取撤销类型
52 48 deleteOptions = $("input[name='deleteOptions']:checked").val();
53   - // 表单提交
54 49 form.submit();
55 50 });
56   - // 表单验证
57 51 form.validate({
58   - // 表单序列化
59 52 submitHandler : function(f) {
60   - // 批量删除站点 (deleteOptions:0)
61 53 if(deleteOptions == 0) {
62   - // 隐藏选项mobal
63   - $('#delete_select_mobal').modal('hide');
64   - // 加载destroy_stationroute页面
  54 + // 撤销站点路由
  55 + $('#delete_select_modal').modal('hide');
65 56 $.get('destroy_stationroute.html', function(m){
66 57 $(pjaxContainer).append(m);
67   - $('#delete_station_mobal').trigger('deleteStationMobal.show', [ajaxd,line,fun,delBatch]);
  58 + $('#delete_station_modal').trigger('modal.show');
68 59 });
69   - // 批量删除路段(deleteOptions:1)
70 60 } else if(deleteOptions == 1) {
71   - // 隐藏选项mobal
72   - $('#delete_select_mobal').modal('hide');
73   - // 加载destroy_sectionroute页面
  61 + // 撤销路段路由
  62 + $('#delete_select_modal').modal('hide');
74 63 $.get('destroy_sectionroute.html', function(m){
75 64 $(pjaxContainer).append(m);
76   - $('#delete_section_mobal').trigger('deleteSectionMobal.show', [ajaxd,line,fun,delBatch]);
  65 + $('#delete_section_modal').trigger('modal.show');
77 66 });
78 67 }
79 68  
... ...
src/main/resources/static/pages/base/stationroute/destroy_sectionroute.html
1 1 <!-- 编辑路段 -->
2   -<div class="modal fade" id="delete_section_mobal" role="basic"
  2 +<div class="modal fade" id="delete_section_modal" role="basic"
3 3 aria-hidden="true">
4 4 <div style="margin:5% auto">
5 5 <div class="modal-content">
... ... @@ -117,10 +117,11 @@
117 117 {{/if}}
118 118 </script>
119 119 <script type="text/javascript">
120   -$('#delete_section_mobal').on('deleteSectionMobal.show',function(e, ajaxd, line, fun, delBatch) {
  120 +$('#delete_section_modal').on('modal.show',function(event) {
  121 + var properties = RoutesOperation.getProperties();
121 122 layer.closeAll();
122 123 // 显示mobal
123   - $('#delete_section_mobal').modal({
  124 + $('#delete_section_modal').modal({
124 125 show : true,
125 126 backdrop : 'static',
126 127 keyboard : false
... ... @@ -132,30 +133,18 @@ $(&#39;#delete_section_mobal&#39;).on(&#39;deleteSectionMobal.show&#39;,function(e, ajaxd, line,
132 133 checked.each(function() {
133 134 ids.push($(this).val());
134 135 });
135   - if (ids != "" && ids != null && ids != undefined) {
  136 + if (ids.length > 0) {
136 137 var params = {};
137 138 params.ids = ids;
138   - params.status = $($("#versions").find("option:selected")[0]).attr("status");
139   - $.post('/api/lssectionroute/batchDestroy', params, function(resuntDate) {
140   - if (resuntDate.status == 'SUCCESS') {
141   - // 弹出添加成功提示消息
  139 + params.status = properties.status;
  140 + $.post('/api/lssectionroute/batchDestroy', params, function(res) {
  141 + if (res.status == 'SUCCESS') {
142 142 layer.msg('撤销成功...');
143   - /** 通知更新缓存区 */
144   - //$.post('http://192.168.168.171:8800/transport_server/basic/refresh',function(rs) {console.log(rs)})
145 143 } else {
146   - // 弹出添加失败提示消息
147 144 layer.msg('撤销失败...');
148 145 }
149 146 initSearch();
150   - // 刷新左边树
151   - fun.resjtreeDate(line.id,delBatch.dir,$("#versions").val());
152   -
153   - //var version = $("#versions").val();
154   - /** 查询路段信息 @param:<Line.id:线路Id;delBatch.dir:方向> @return:data:路段数据 */
155   - //ajaxd.getSectionRouteInfo(line.id,delBatch.dir,version,function(data) {
156   - /** 在地图上画出线路走向 @param:<Line.id:线路Id;delBatch.dir:方向;data:路段数据> */
157   - // fun.linePanlThree(line.id,data,delBatch.dir,version);
158   - //});
  147 + RoutesOperation.resjtreeDate(properties.lineId, properties.directions, properties.versions);
159 148 });
160 149 } else {
161 150 layer.msg('请选择要删除的路段!!!');
... ... @@ -183,8 +172,8 @@ $(&#39;#delete_section_mobal&#39;).on(&#39;deleteSectionMobal.show&#39;,function(e, ajaxd, line,
183 172 function getParams() {
184 173 // 搜索参数集合
185 174 var params = {};
186   - params['line.id_eq'] = line.id;
187   - params.directions_eq = delBatch.dir;
  175 + params['line.id_eq'] = properties.lineId;
  176 + params.directions_eq = properties.directions;
188 177 params.destroy_eq = 0;
189 178  
190 179 return params;
... ... @@ -211,7 +200,7 @@ $(&#39;#delete_section_mobal&#39;).on(&#39;deleteSectionMobal.show&#39;,function(e, ajaxd, line,
211 200 // 记录当前页数
212 201 params['page'] = page;
213 202  
214   - params.versions_eq = $("#versions").val();
  203 + params.versions_eq = properties.versions;
215 204  
216 205 // 弹出正在加载层
217 206 var i = layer.load(2);
... ...
src/main/resources/static/pages/base/stationroute/destroy_stationroute.html
1 1 <!-- 编辑路段 -->
2   -<div class="modal fade" id="delete_station_mobal" role="basic"
  2 +<div class="modal fade" id="delete_station_modal" role="basic"
3 3 aria-hidden="true">
4 4 <div style="margin:5% auto">
5 5 <div class="modal-content">
... ... @@ -118,10 +118,11 @@
118 118 {{/if}}
119 119 </script>
120 120 <script type="text/javascript">
121   -$('#delete_station_mobal').on('deleteStationMobal.show',function(e, ajaxd, line, fun, delBatch) {
  121 +$('#delete_station_modal').on('modal.show',function(event) {
  122 + var properties = RoutesOperation.getProperties();
122 123 layer.closeAll();
123 124 // 显示mobal
124   - $('#delete_station_mobal').modal({
  125 + $('#delete_station_modal').modal({
125 126 show : true,
126 127 backdrop : 'static',
127 128 keyboard : false
... ... @@ -133,29 +134,19 @@ $(&#39;#delete_station_mobal&#39;).on(&#39;deleteStationMobal.show&#39;,function(e, ajaxd, line,
133 134 checked.each(function() {
134 135 ids.push($(this).val());
135 136 });
136   - if (ids != "" && ids != null && ids != undefined) {
  137 + if (ids.length > 0) {
137 138 let params = {};
138 139 params.ids = ids;
139   - params.status = $($("#versions").find("option:selected")[0]).attr("status");
140   - $.post('/api/lsstationroute/batchDestroy',params,function(resuntDate) {
141   - if (resuntDate.status == 'SUCCESS') {
142   - // 弹出添加成功提示消息
  140 + params.status = properties.status;
  141 + $.post('/api/lsstationroute/batchDestroy',params,function(res) {
  142 + if (res.status == 'SUCCESS') {
143 143 layer.msg('撤销成功...');
144   - /** 通知更新缓存区 */
145   - //$.post('http://192.168.168.171:8800/transport_server/basic/refresh',function(rs) {console.log(rs)})
146 144 } else {
147   - // 弹出添加失败提示消息
148 145 layer.msg('撤销失败...');
149 146 }
150 147 initSearch();
151 148 // 刷新左边树
152   - fun.resjtreeDate(line.id,delBatch.dir,$("#versions").val());
153   - /** 查询路段信息 @param:<Line.id:线路Id;delBatch.dir:方向> @return:data:路段数据 */
154   - var version = $("#versions").val();
155   - //ajaxd.getSectionRouteInfo(line.id,delBatch.dir,version,function(data) {
156   - /** 在地图上画出线路走向 @param:<Line.id:线路Id;delBatch.dir:方向;data:路段数据> */
157   - // fun.linePanlThree(line.id,data,delBatch.dir,version);
158   - //});
  149 + RoutesOperation.resjtreeDate(properties.lineId, properties.directions, properties.versions);
159 150 });
160 151 } else {
161 152 layer.msg('请选择要删除的站点!!!');
... ... @@ -182,8 +173,8 @@ $(&#39;#delete_station_mobal&#39;).on(&#39;deleteStationMobal.show&#39;,function(e, ajaxd, line,
182 173 }
183 174 function getParams() {
184 175 var params = {};
185   - params['line.id_eq'] = line.id;
186   - params.directions_eq = delBatch.dir;
  176 + params['line.id_eq'] = properties.lineId;
  177 + params.directions_eq = properties.directions;
187 178 params.destroy_eq = 0;
188 179  
189 180 return params;
... ... @@ -210,7 +201,7 @@ $(&#39;#delete_station_mobal&#39;).on(&#39;deleteStationMobal.show&#39;,function(e, ajaxd, line,
210 201 // 记录当前页数
211 202 params['page'] = page;
212 203  
213   - params.versions_eq = $("#versions").val();
  204 + params.versions_eq = properties.versions;
214 205 // 弹出正在加载层
215 206 var i = layer.load(2);
216 207 // 异步请求获取表格数据
... ...
src/main/resources/static/pages/base/stationroute/doublename_road.html
1   -<!-- 生成双路名路段路段 -->
2   -<div class="modal fade" id="doublename_road_mobal" role="basic" aria-hidden="true" style="margin-top:10%">
3   - <div class="modal-dialog">
4   - <div class="modal-content">
5   - <div class="modal-header">
6   - <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
7   - <h4 class="modal-title">选择生成路段的位置</h4>
8   - </div>
9   - <div class="modal-body">
10   - <form class="form-horizontal" role="form" id="edit_section__form" action="/module" method="post">
11   - <div class="alert alert-danger display-hide"> <button class="close" data-close="alert"></button>
12   - 请选择上一路段!
13   - </div>
14   - <input type="hidden" name="versions" id="versionsInput">
15   - <input type="hidden" name="directions" id="directionsSection">
16   - <input type="hidden" name="lineId" id="lineId">
17   - <input type="hidden" name="lineCode" id="lineCodeInput">
18   - <input type="hidden" name="bsectionVector" id="bsectionVectorInput" />
19   - <input type="hidden" name="dbType" id="dbTypeInput" value="b"/>
20   - <!-- 路段序号 -->
21   - <div class="form-body">
22   - <div class="form-group">
23   - <label class="control-label col-md-3">
24   - 上一路段:
25   - </label>
26   - <div class="col-md-8">
27   - <select name="sectionrouteCode" id="sectionrouteCodeSelect"></select>
28   - <span class="help-block">说明:选择的路段将作为本站序号的参考,成为选择路段的下一个路段。 </span>
29   - </div>
30   - </div>
31   - </div>
32   - </form>
33   - </div>
34   - <div class="modal-footer">
35   - <button type="button" class="btn btn-primary" id="editSectionButton">提交数据</button>
36   - <button type="button" class="btn default" data-dismiss="modal">取消</button>
37   - </div>
38   - </div>
39   - </div>
40   -</div>
41   -<script type="text/javascript">
42   -
43   - $('#doublename_road_mobal').on('doubleNameRoadMobal_show', function(e,params,map_,ajaxd,fun){
44   - // 方向
45   - var dir = params.directions;
46   - var lineId = params.lineId;
47   - var version = $("#versions").val();
48   -
49   - console.log(version);
50   -
51   - // 获取路段号元素,并添加下拉属性值
52   - ajaxd.getStation(lineId,dir,version,function(treeData) {
53   - var array = treeData[0].children[1].children,paramsD =new Array();
54   - paramsD.push({'id':'启始路段(默认在所有路段的前面)','text':'启始路段(默认在所有路段的前面)'});
55   - // 记录最后一个路段
56   - var endRoad = 0;
57   - // 遍历.
58   - $.each(array, function(i, g){
59   - // 判断.
60   - if(g.sectionName!='' || g.sectionName != null) {
61   - var ptions_v = g.sectionrouteCode;
62   - if(endRoad < ptions_v)
63   - endRoad = ptions_v;
64   - // 添加拼音检索下拉框格式数据数组.
65   - paramsD.push({'id':ptions_v,
66   - 'text':g.sectionName + '(' + ptions_v + ')' + ' --' + fun.dirdmToName(g.sectionrouteDirections)});
67   - }
68   - });
69   - // 初始化上一个路段拼音检索下拉框.
70   - initPinYinSelect2($('#sectionrouteCodeSelect'),paramsD,function(selector) {
71   - if(endRoad != 0)
72   - $('#sectionrouteCodeSelect').select2('val',endRoad);
73   - else
74   - $('#sectionrouteCodeSelect').select2('val','启始路段(默认在所有路段的前面)');
75   - });
76   - });
77   - // 显示mobal
78   - $('#doublename_road_mobal').modal({show : true,backdrop: 'static',keyboard: false});
79   - // 当调用 hide 实例方法时触发
80   - $('#doublename_road_mobal').on('hide.bs.modal', function () {
81   - closeMobleSetClean();
82   - });
83   - function closeMobleSetClean() {
84   - // 清除地图覆盖物
85   - // map_.clearMarkAndOverlays();
86   - fun.resjtreeDate(lineId,dir,$("#versions").val());
87   - fun.editAChangeCssRemoveDisabled();
88   - // var version = $("#versions").val();
89   - //ajaxd.getSectionRouteInfo(lineId,dir,version,function(data) {
90   - // fun.linePanlThree(lineId,data,dir,version);
91   - //});
92   - }
93   - // 编辑表单元素
94   - var form = $('#edit_section__form');
95   - // 获取错误提示元素
96   - var error = $('.alert-danger', form);
97   - // 提交数据按钮事件
98   - $('#editSectionButton').on('click', function() {
99   - // 表单提交
100   - form.submit();
101   - });
102   - // 表单验证
103   - form.validate({
104   - errorElement : 'span',
105   - errorClass : 'help-block help-block-error',
106   - focusInvalid : false,
107   - /* rules : {
108   - 'sectionrouteCode': {required : true}// 路由序号 必填项
109   - },*/
110   - invalidHandler : function(event, validator) {
111   - error.show();
112   - App.scrollTo(error, -200);
113   - },
114   - highlight : function(element) {
115   - $(element).closest('.form-group').addClass('has-error');
116   - },
117   - unhighlight : function(element) {
118   - $(element).closest('.form-group').removeClass('has-error');
119   - },
120   - success : function(label) {
121   - label.closest('.form-group').removeClass('has-error');
122   - },
123   - submitHandler : function(f) {
124   - var data = form.serializeJSON();
125   - if(data.sectionrouteCode=='启始路段(默认在所有路段的前面)') {
126   - params.sectionrouteCode = '';
127   - } else {
128   - params.sectionrouteCode = data.sectionrouteCode;
129   - }
130   - // 获取版本
131   - //$.get("/lineVersions/findCurrentVersion", {"lineId" : lineId}, function (versions) {
132   - //params.versions = versions;
133   - params.versions = $("#versions").val();
134   - // 生成路段
135   - $.post('/section/doubleName',params,function (resuntDate) {
136   - if(resuntDate.status=='SUCCESS') {
137   - // 弹出添加成功提示消息
138   - layer.msg('生成成功...');
139   - } else if (resuntDate.status=='Failure') {
140   - layer.msg('抱歉,您选取的路段基于高德地图的数据无法生成双路段!');
141   - } else {
142   - // 弹出添加失败提示消息
143   - layer.msg('生成失败...');
144   - }
145   - $('#doublename_road_mobal').modal('hide');
146   - var dir = params.directions;
147   - // 刷行左边树
148   - fun.resjtreeDate(lineId,dir,$("#versions").val());
149   - closeMobleSetClean();
150   - });
151   - //});
152   -
153   - }
154   - });
155   - });
  1 +<!-- 生成双路名路段路段 -->
  2 +<div class="modal fade" id="doublename_road_modal" role="basic" aria-hidden="true" style="margin-top:10%">
  3 + <div class="modal-dialog">
  4 + <div class="modal-content">
  5 + <div class="modal-header">
  6 + <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
  7 + <h4 class="modal-title">选择生成路段的位置</h4>
  8 + </div>
  9 + <div class="modal-body">
  10 + <form class="form-horizontal" role="form" id="edit_section__form" action="/module" method="post">
  11 + <div class="alert alert-danger display-hide"> <button class="close" data-close="alert"></button>
  12 + 请选择上一路段!
  13 + </div>
  14 + <input type="hidden" name="versions" id="versionsInput">
  15 + <input type="hidden" name="directions" id="directionsSection">
  16 + <input type="hidden" name="lineId" id="lineId">
  17 + <input type="hidden" name="lineCode" id="lineCodeInput">
  18 + <input type="hidden" name="bsectionVector" id="bsectionVectorInput" />
  19 + <input type="hidden" name="dbType" id="dbTypeInput" value="b"/>
  20 + <!-- 路段序号 -->
  21 + <div class="form-body">
  22 + <div class="form-group">
  23 + <label class="control-label col-md-3">
  24 + 上一路段:
  25 + </label>
  26 + <div class="col-md-8">
  27 + <select name="sectionrouteCode" id="sectionrouteCodeSelect"></select>
  28 + <span class="help-block">说明:选择的路段将作为本站序号的参考,成为选择路段的下一个路段。 </span>
  29 + </div>
  30 + </div>
  31 + </div>
  32 + </form>
  33 + </div>
  34 + <div class="modal-footer">
  35 + <button type="button" class="btn btn-primary" id="editSectionButton">提交数据</button>
  36 + <button type="button" class="btn default" data-dismiss="modal">取消</button>
  37 + </div>
  38 + </div>
  39 + </div>
  40 +</div>
  41 +<script type="text/javascript">
  42 + $('#doublename_road_modal').on('modal.show', function(event, params){
  43 + var properties = RoutesOperation.getProperties();
  44 + RoutesService.getStation(properties.lineId, properties.directions, properties.versions, function(routes) {
  45 + var array = routes.sectionRoutes, paramsD = new Array();
  46 + paramsD.push({'id':'启始路段(默认在所有路段的前面)','text':'启始路段(默认在所有路段的前面)'});
  47 + var endRoad = 0;
  48 + $.each(array, function(i, item){
  49 + var sectionName = item.section.sectionName;
  50 + if(sectionName != '' || sectionName != null) {
  51 + var sectionrouteCode = item.sectionrouteCode;
  52 + if(endRoad < sectionrouteCode)
  53 + endRoad = sectionrouteCode;
  54 + paramsD.push({'id': sectionrouteCode, 'text': sectionName + '(' + sectionrouteCode + ')' + ' --' + RoutesOperation.dirdmToName(item.directions)});
  55 + }
  56 + });
  57 + initPinYinSelect2($('#sectionrouteCodeSelect'),paramsD,function(selector) {
  58 + if(endRoad != 0)
  59 + $('#sectionrouteCodeSelect').select2('val',endRoad);
  60 + else
  61 + $('#sectionrouteCodeSelect').select2('val','启始路段(默认在所有路段的前面)');
  62 + });
  63 + });
  64 + $('#doublename_road_modal').modal({show : true,backdrop: 'static',keyboard: false});
  65 + $('#doublename_road_modal').on('hide.bs.modal', function () {
  66 + closeMobleSetClean();
  67 + });
  68 + function closeMobleSetClean() {
  69 + RoutesOperation.resjtreeDate(properties.lineId, properties.directions, properties.versions);
  70 + RoutesOperation.editAChangeCssRemoveDisabled();
  71 + }
  72 + var form = $('#edit_section__form');
  73 + var error = $('.alert-danger', form);
  74 + $('#editSectionButton').on('click', function() {
  75 + form.submit();
  76 + });
  77 + form.validate({
  78 + errorElement : 'span',
  79 + errorClass : 'help-block help-block-error',
  80 + focusInvalid : false,
  81 + invalidHandler : function(event, validator) {
  82 + error.show();
  83 + App.scrollTo(error, -200);
  84 + },
  85 + highlight : function(element) {
  86 + $(element).closest('.form-group').addClass('has-error');
  87 + },
  88 + unhighlight : function(element) {
  89 + $(element).closest('.form-group').removeClass('has-error');
  90 + },
  91 + success : function(label) {
  92 + label.closest('.form-group').removeClass('has-error');
  93 + },
  94 + submitHandler : function(f) {
  95 + var data = form.serializeJSON();
  96 + if(data.sectionrouteCode=='启始路段(默认在所有路段的前面)') {
  97 + params.sectionrouteCode = '';
  98 + } else {
  99 + params.sectionrouteCode = data.sectionrouteCode;
  100 + }
  101 + params.versions = properties.versions;
  102 + $.post('/section/doubleName', params, function (res) {
  103 + if(res.status == 'SUCCESS') {
  104 + layer.msg('生成成功...');
  105 + } else if (res.status == 'Failure') {
  106 + layer.msg('抱歉,您选取的路段基于高德地图的数据无法生成双路段!');
  107 + } else {
  108 + layer.msg('生成失败...');
  109 + }
  110 + $('#doublename_road_modal').modal('hide');
  111 + RoutesOperation.resjtreeDate(properties.lineId, properties.directions, properties.versions);
  112 + closeMobleSetClean();
  113 + });
  114 + }
  115 + });
  116 + });
156 117 </script>
157 118 \ No newline at end of file
... ...
src/main/resources/static/pages/base/stationroute/edit_sectionroute.html
... ... @@ -55,59 +55,49 @@
55 55 </div>
56 56 <script type="text/javascript">
57 57  
58   -$('#edit_sectionroute_modal').on('modal.show', function(e, map_,ajaxd,p,fun){
59   - var Section = p.data;
60   - fun.setSectionFormValue(Section);
61   - // 方向
62   - var dir = Section.directions;
63   - var lineId = Section.line.id;
64   - var version = Section.versions;
65   - // 获取路段号元素,并添加下拉属性值
66   - ajaxd.getStation(lineId, dir, version, function(routes) {
  58 +$('#edit_sectionroute_modal').on('modal.show', function(e, polyline){
  59 + var properties = RoutesOperation.getProperties();
  60 + var sectionRoute = polyline.data;
  61 + RoutesOperation.setSectionFormValue(sectionRoute);
  62 + RoutesService.getStation(properties.lineId, properties.directions, properties.versions, function(routes) {
67 63 var array = routes.sectionRoutes, paramsD =new Array();
68   - var eq_scetionRouteCode = Section.sectionrouteCode;
  64 + var eq_scetionRouteCode = sectionRoute.sectionrouteCode;
  65 + var previous = '请选择...', last;
69 66 paramsD.push({'id':'请选择...','text':'将此路段设置位第一个路段'});
70   - // 遍历.
71 67 $.each(array, function(i, g){
72   - // 判断.
73   - if(g.section.sectionName!='' || g.section.sectionName != null) {
  68 + if (g.section.sectionName) {
74 69 var ptions_v = g.sectionrouteCode;
75   - if(eq_scetionRouteCode != ptions_v){
  70 + if (eq_scetionRouteCode != ptions_v) {
76 71 // 添加拼音检索下拉框格式数据数组.
77   - paramsD.push({'id':ptions_v,
78   - 'text':g.section.sectionName + '(' + ptions_v + ')' + ' --' + fun.dirdmToName(g.directions)});
  72 + paramsD.push({'id':ptions_v, 'text':g.section.sectionName + '(' + ptions_v + ')' + ' --' + RoutesOperation.dirdmToName(g.directions)});
  73 + last = ptions_v;
  74 + } else {
  75 + previous = last;
79 76 }
80 77 }
81 78 });
82   - // 初始化上一个路段拼音检索下拉框.
83   - initPinYinSelect2($('#sectionrouteCodeSelect'),paramsD,function(selector) {
84   - $('#sectionDirSelect').val('');// 设值方向.
85   - ajaxd.findUpSectionRouteCode(lineId, dir, eq_scetionRouteCode, version, function(str) {
86   - if (str.length > 0) {
87   - var upStationRouteCode = str[0].sectionrouteCode;
88   - $('#sectionrouteCodeSelect').select2('val',upStationRouteCode);
89   - } else {
90   - $('#sectionrouteCodeSelect').select2('val','请选择...');
91   - }
92   - });
  79 + $('#sectionrouteCodeSelect').empty();
  80 + initPinYinSelect2($('#sectionrouteCodeSelect'), paramsD, function(selector) {
  81 + if (paramsD.length > 0) {
  82 + $('#sectionrouteCodeSelect').select2('val', previous);
  83 + } else {
  84 + $('#sectionrouteCodeSelect').select2('val', '请选择...');
  85 + }
93 86 });
94 87 });
95 88 // 显示mobal
96   - $('#edit_sectionroute_modal').modal({show : true,backdrop: 'static',keyboard: false});//
  89 + $('#edit_sectionroute_modal').modal({show: true, backdrop: 'static', keyboard: false});
97 90 // 当调用 hide 实例方法时触发
98 91 $('#edit_sectionroute_modal').on('hide.bs.modal', function () {
99 92 closeMobleSetClean();
100 93 });
101 94 function closeMobleSetClean() {
102 95 // 清除地图覆盖物
103   - map_.clearMarkAndOverlays();
104   - fun.resjtreeDate(lineId,dir,$("#versions").val());
105   - fun.editAChangeCssRemoveDisabled();
106   - //ajaxd.getSectionRouteInfo(lineId,dir,$("#versions").val(),function(data) {
107   - // fun.linePanlThree(lineId,data,dir);
108   - //});
  96 + RoutesOperation.clearMarkAndOverlays();
  97 + RoutesOperation.resjtreeDate(properties.lineId, properties.directions, properties.versions);
  98 + RoutesOperation.editAChangeCssRemoveDisabled();
109 99 setTimeout(function () {
110   - map_.openSectionInfoWin(p);
  100 + RoutesOperation.openSectionInfoWin(polyline);
111 101 },1000);
112 102 }
113 103 // 编辑表单元素
... ... @@ -125,7 +115,7 @@ $(&#39;#edit_sectionroute_modal&#39;).on(&#39;modal.show&#39;, function(e, map_,ajaxd,p,fun){
125 115 errorClass : 'help-block help-block-error',
126 116 focusInvalid : false,
127 117 rules : {
128   - 'sectionName' : {required : true,maxlength:50}
  118 + 'sectionName' : {required : true, maxlength:50}
129 119 },
130 120 invalidHandler : function(event, validator) {
131 121 error.show();
... ... @@ -152,17 +142,13 @@ $(&#39;#edit_sectionroute_modal&#39;).on(&#39;modal.show&#39;, function(e, map_,ajaxd,p,fun){
152 142 } else {
153 143 params.sectionrouteCode = parseInt(params.sectionrouteCode) + 1;
154 144 }
155   - ajaxd.sectionUpdate(params, function(resuntDate) {
156   - if(resuntDate.status=='SUCCESS') {
157   - // 弹出添加成功提示消息
  145 + RoutesService.sectionUpdate(params,function(res) {
  146 + if(res.status == 'SUCCESS') {
158 147 layer.msg('修改成功...');
159 148 }else {
160   - // 弹出添加失败提示消息
161 149 layer.msg('修改失败...');
162 150 }
163 151 $('#edit_sectionroute_modal').modal('hide');
164   - var dir = params.directions
165   - closeMobleSetClean();
166 152 });
167 153 }
168 154 });
... ...
src/main/resources/static/pages/base/stationroute/edit_stationroute_step1.html
... ... @@ -10,14 +10,14 @@
10 10 </div>
11 11 <div class="modal-body">
12 12 <form class="form-horizontal" action="/" method="post" id="edit_select" role="form">
13   - <div class="alert alert-danger display-hide" id="editSelectrequired">
  13 + <div class="alert alert-danger display-hide" id="error">
14 14 <button class="close" data-close="alert"></button>
15 15 站点名称为必填项
16 16 </div>
17 17 <div class="form-group" id="formRequ">
18 18 <label class="col-md-3 control-label"><span class="required"> * </span>站点名称:</label>
19 19 <div class="col-md-9" id="errorInfo">
20   - <input type="text" class="form-control input-medium" id="stationNamebootbox" name="stationNamebootbox">
  20 + <input type="text" class="form-control input-medium" id="stationName" name="stationName">
21 21 </div>
22 22 </div>
23 23 <div class="form-group">
... ... @@ -47,8 +47,9 @@
47 47 </div>
48 48 <script type="text/javascript">
49 49  
50   -$('#edit_stationroute_step1_modal').on('modal.show', function(e, _WorldsBMap,_DrawingManagerObj,_GetAjaxData,_EditStationObj,_LineObj,_PublicFunctions,Station){
51   - // 显示选择修改方式弹出层
  50 +$('#edit_stationroute_step1_modal').on('modal.show', function(event){
  51 + var editStationRoute = RoutesOperation.getEditStationRoute();
  52 + $('#stationName').val(editStationRoute.stationName);
52 53 $('#edit_stationroute_step1_modal').modal({show: true,backdrop: 'static',keyboard: false});
53 54 setTimeout(function(){
54 55 var offsetY = $('.modal-dialog').offset().top-3 ,
... ... @@ -69,15 +70,10 @@ $(&#39;#edit_stationroute_step1_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Dr
69 70 $('.tipso-animation').tipso('show');
70 71 setTimeout(function(){$('.tipso-animation').tipso('hide');},4000);
71 72 },500);
72   - // 获取站点名称元素并赋值
73   - $('#stationNamebootbox').val(Station.stationName);
74   - // 获取表单元素
  73 +
75 74 var form = $('#edit_select');
76   - // 获取错误提示元素
77   - var editSelectrequired = $('#editSelectrequired', form);
78   - // 下一步操作事件
  75 + var error = $('#error', form);
79 76 $('#editselectStationNextButton').on('click', function() {
80   - // 表单提交
81 77 form.submit();
82 78 });
83 79 //form 表单验证
... ... @@ -86,11 +82,11 @@ $(&#39;#edit_stationroute_step1_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Dr
86 82 errorClass : 'help-block help-block-error',
87 83 focusInvalid : false,
88 84 rules : {
89   - 'stationNamebootbox' : {required : true,maxlength : 50}
  85 + 'stationName' : {required : true, maxlength : 50}
90 86 },
91 87 invalidHandler : function(event, validator) {
92   - editSelectrequired.show();
93   - App.scrollTo(editSelectrequired, -200);
  88 + error.show();
  89 + App.scrollTo(error, -200);
94 90 },
95 91 highlight : function(element) {
96 92 $(element).closest('.form-group').addClass('has-error');
... ... @@ -105,32 +101,24 @@ $(&#39;#edit_stationroute_step1_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Dr
105 101 // 隐藏弹出层
106 102 $('#edit_stationroute_step1_modal').modal('hide');
107 103  
108   - // 表单序列
109 104 var params = form.serializeJSON();
110   - // 站点名称
111   - var editStationName = params.stationNamebootbox;
  105 + var stationName = params.stationName;
  106 + editStationRoute.stationName = stationName;
112 107 // TODO(点击查询位置后绘画效果失败,待修改)
113 108 if (params.editselect == 0) {
114   - _EditStationObj.setEditStation(Station);
115   - _EditStationObj.setEditStationName(editStationName);
116   - _WorldsBMap.getmapBValue().closeInfoWindow();
117   - _DrawingManagerObj.openDrawingManager();
  109 + RoutesOperation.getBaiduMap().closeInfoWindow();
  110 + RoutesOperation.openDrawingManager();
118 111 } else if (params.editselect == 1) {
119   - Station.shapedType = 'r';
120   - Station.bufferPolygonWkt = null;
121   - Station.radius = 80;
122   - _EditStationObj.setEditStation(Station);
123   - _EditStationObj.setEditStationName(editStationName);
124   - _WorldsBMap.editShapes(_EditStationObj);
  112 + editStationRoute.shapedType = 'r';
  113 + editStationRoute.bufferPolygonWkt = null;
  114 + editStationRoute.radius = 80;
  115 + RoutesOperation.editShapes(editStationRoute);
125 116 } else if (params.editselect == 2){
126   - _EditStationObj.setEditStation(Station);
127   - _EditStationObj.setEditStationName(editStationName);
128   - _WorldsBMap.clearMark();
129   - // 弹出添加失败提示消息,2秒关闭(如果不配置,默认是3秒)
  117 + RoutesOperation.clearMark();
130 118 layer.msg('编辑完图形后,请双击图形区域保存', {offset: '126px', shift: 0, time: 3000});
131   - _WorldsBMap.editShapes(_EditStationObj);
  119 + RoutesOperation.editShapes(editStationRoute);
132 120 }
133   - _PublicFunctions.editMapStatus(_EditStationObj.getEditStation().directions);
  121 + RoutesOperation.editMapStatus(editStationRoute.directions);
134 122 }
135 123 });
136 124 })
... ...
src/main/resources/static/pages/base/stationroute/edit_stationroute_step2.html
... ... @@ -110,7 +110,7 @@
110 110 <div class="form-group">
111 111 <label class="col-md-3 control-label"><span class="required"> * </span>几何图形类型:</label>
112 112 <div class="col-md-6">
113   - <input type="text" class="form-control" name="shapedType" id="shapesTypeSelect" placeholder="几何图形类型" readonly="readonly" />
  113 + <input type="text" class="form-control" name="shapedType" id="shapedTypeSelect" placeholder="几何图形类型" readonly="readonly" />
114 114 </div>
115 115 </div>
116 116 </div>
... ... @@ -184,12 +184,12 @@
184 184 </div>
185 185 </div>
186 186 <script type="text/javascript">
187   -$('#edit_stationroute_step2_modal').on('modal.show', function(e, _WorldsBMap,_GetAjaxData,_EditStationObj,_LineObj,_PublicFunctions){
  187 +$('#edit_stationroute_step2_modal').on('modal.show', function(event){
188 188 layer.closeAll();
189   - var stationRoute = _EditStationObj.getEditStation();
190   - var line = _LineObj.getLineObj();
191   - _PublicFunctions.setFormValue(stationRoute);
192   - var initzdlyP = {'lineCode_eq': stationRoute.lineCode, 'destroy_eq': 0, 'directions_eq': stationRoute.directions, 'versions_eq': stationRoute.versions};
  189 + var editStationRoute = RoutesOperation.getEditStationRoute();
  190 + var properties = RoutesOperation.getProperties();
  191 + RoutesOperation.setFormValue(editStationRoute);
  192 + var initzdlyP = {'lineCode_eq': editStationRoute.lineCode, 'destroy_eq': 0, 'directions_eq': editStationRoute.directions, 'versions_eq': editStationRoute.versions};
193 193 initSelect(initzdlyP);
194 194 // 显示mobal
195 195 $('#edit_stationroute_step2_modal').modal({show: true, backdrop: 'static', keyboard: false});
... ... @@ -197,24 +197,17 @@ $(&#39;#edit_stationroute_step2_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Ge
197 197 $('#edit_stationroute_step2_modal').on('hide.bs.modal', function () {
198 198 closeMobleSetClean();
199 199 });
200   - $('#statusInput').val(line.status);
  200 + $('#statusInput').val(properties.status);
201 201 function closeMobleSetClean() {
202 202 // 清除地图覆盖物
203   - _WorldsBMap.clearMarkAndOverlays();
204   - var version = $("#versions").val();
205   - /** 设置新增站点集合对象为空 */
206   - _EditStationObj.setEditStation({});
207   -
208   - var add_direction_v = $('#stationdirSelect').val();
209   - _PublicFunctions.resjtreeDate(line.id,add_direction_v,version);
210   - _PublicFunctions.editAChangeCssRemoveDisabled();
211   - //console.log(_WorldsBMap.getStationArray());
212   - _PublicFunctions.editMapStatusRemove();
  203 + RoutesOperation.clearMarkAndOverlays();
  204 + RoutesOperation.resjtreeDate(properties.lineId, properties.directions, properties.versions);
  205 + RoutesOperation.editAChangeCssRemoveDisabled();
  206 + RoutesOperation.editMapStatusRemove();
213 207 setTimeout(function () {
214   - var stationArray = _WorldsBMap.getStationArray();
215   - console.log(_WorldsBMap.getStationArray());
216   - _WorldsBMap.openStationRouteInfoWin(stationArray[stationRoute.id]);
217   - },1000);
  208 + var stationArray = RoutesOperation.getStationArray();
  209 + RoutesOperation.openStationRouteInfoWin(stationArray[editStationRoute.id]);
  210 + }, 1000);
218 211 }
219 212 // 编辑表单元素
220 213 var form = $('#edit_stationroute_form');
... ... @@ -236,7 +229,7 @@ $(&#39;#edit_stationroute_step2_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Ge
236 229 'directions' : {required : true,dirIs : true},// 站点方向 必填项 必填项
237 230 'stationRouteCode' : {isStart : true},// 站点序号
238 231 'stationMark' : {required : true},// 站点类型 必填项
239   - 'shapesType' : {required : true},// 几何图形类型 必填项
  232 + 'shapedType' : {required : true},// 几何图形类型 必填项
240 233 'radius' : {required : true,number : true},// 圆形半径 必填项
241 234 'destroy' : {required : true},// 是否撤销 必填项
242 235 'toTime' : {number : true},// 到站时间 必须输入合法的数字(负数,小数)。
... ... @@ -272,18 +265,14 @@ $(&#39;#edit_stationroute_step2_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Ge
272 265 params.bufferPolygonWkt = "POLYGON((" + params.bufferPolygonWkt + "))";
273 266 }
274 267 // 保存
275   - _GetAjaxData.modifyStationRoute(params, function(data) {
  268 + RoutesService.modifyStationRoute(params, function(data) {
276 269 if (data.status == 'SUCCESS') {
277 270 layer.msg('修改成功...');
278 271 } else {
279 272 layer.msg('修改失败...');
280 273 }
281 274 $('#edit_stationroute_step2_modal').modal('hide');
282   - var id = line.id;
283   - var dir = params.directions
284   - // 刷行左边树
285   - _PublicFunctions.resjtreeDate(id, dir, $("#versions").val());
286   - //closeMobleSetClean();
  275 + RoutesOperation.resjtreeDate(properties.lineId, properties.directions, properties.versions);
287 276 });
288 277 }
289 278 });
... ... @@ -305,27 +294,23 @@ $(&#39;#edit_stationroute_step2_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Ge
305 294 var prevObj = {'id':'-1','text':'请选择...'};
306 295 var obj = {'id':'-1','text':'请选择...'};
307 296  
308   - _GetAjaxData.getzdlyInfo(p,function(array) {
  297 + RoutesService.getzdlyInfo(p, function(array) {
309 298 // 定义路段路由长度、渲染拼音检索下拉框格式数据.
310   - var len_ = array.length,paramsD = new Array();
  299 + var len_ = array.length, paramsD = new Array();
311 300 if(len_>0) {
312 301 paramsD.push({'id':'-1','text':'请选择...'});
313 302 // 遍历.
314 303 $.each(array, function(i, g){
315   - // 判断.
316   - if(g.name!='' || g.name != null) {
317   - if(g.stationRouteCode != stationRoute.stationRouteCode) {
318   - // 添加拼音检索下拉框格式数据数组.
319   - if(stationRoute.stationMark=='E' && i == (len_-2)){
320   - obj = {'id':g.stationRouteCode + '_' + 'E' + '_' + g.directions,
321   - 'text':g.stationName + ' (' + g.stationRouteCode + ')' + ' --' + _PublicFunctions.dirdmToName(g.directions)};
  304 + if(g.stationName) {
  305 + if (g.stationRouteCode != editStationRoute.stationRouteCode) {
  306 + if (editStationRoute.stationMark == 'E' && i == (len_ - 2)){
  307 + obj = {'id':g.stationRouteCode + '_' + 'E' + '_' + g.directions, 'text':g.stationName + ' (' + g.stationRouteCode + ')' + ' --' + RoutesOperation.dirdmToName(g.directions)};
322 308 paramsD.push(obj);
323   - }else {
324   - obj = {'id':g.stationRouteCode + '_' + g.stationMark + '_' + g.directions,
325   - 'text':g.stationName + ' (' + g.stationRouteCode + ')' + ' --' + _PublicFunctions.dirdmToName(g.directions)};
  309 + } else {
  310 + obj = {'id':g.stationRouteCode + '_' + g.stationMark + '_' + g.directions, 'text':g.stationName + ' (' + g.stationRouteCode + ')' + ' --' + RoutesOperation.dirdmToName(g.directions)};
326 311 paramsD.push(obj);
327 312 }
328   - }else{
  313 + } else {
329 314 prevObj = obj ;
330 315 }
331 316 }
... ... @@ -334,7 +319,7 @@ $(&#39;#edit_stationroute_step2_modal&#39;).on(&#39;modal.show&#39;, function(e, _WorldsBMap,_Ge
334 319 // 初始化上一个路段拼音检索下拉框.
335 320 initPinYinSelect2($('#stationrouteSelect'),paramsD,function(selector) {
336 321 $('#stationrouteSelect').val(prevObj.id).select2();
337   - $('#stationMarkSelect').val(stationRoute.stationMark);
  322 + $('#stationMarkSelect').val(editStationRoute.stationMark);
338 323 });
339 324  
340 325 }
... ...
src/main/resources/static/pages/base/stationroute/editsection_inout.html
1 1 <!-- 编辑路段 -->
2   -<div class="modal fade" id="edit_section_mobal" role="basic" aria-hidden="true">
  2 +<div class="modal fade" id="edit_section_modal" role="basic" aria-hidden="true">
3 3 <div class="modal-dialog">
4 4 <div class="modal-content">
5 5 <div class="modal-header">
... ... @@ -12,20 +12,12 @@
12 12 您的输入有误,请检查下面的输入项
13 13 </div>
14 14 <!-- 线路ID -->
15   - <input type="hidden" name="sectionId" id="section.id">
16   - <input type="hidden" name="sectionRouteId" id="id">
17   - <input type="hidden" name="sectionCode" id="section.sectionCode">
18   - <input type="hidden" name="sectionRouteLine" id="lineId">
19   - <input type="hidden" name="lineCode" id="lineCode">
20   - <input type="hidden" name="bsectionVector" id="bsectionVector" />
21   - <input type="hidden" name="csectionVector" id="csectionVector" value=""/>
22   - <input type="hidden" name="dbType" id="dbType" value="b"/>
23   - <input type="hidden" name="directions" id="dir">
24   - <input type="hidden" name="speedLimit" id="speedLimit" >
25   - <input type="hidden" name="roadCoding" id="roadCoding"/>
26   - <input type="hidden" name="versions" id="versions"/>
27   - <input type="hidden" name="start" id="start"/>
28   - <input type="hidden" name="end" id="end"/>
  15 + <input type="hidden" name="id" />
  16 + <input type="hidden" name="line.id" />
  17 + <input type="hidden" name="section.id" />
  18 + <input type="hidden" name="section.bsectionVectorWkt" />
  19 + <input type="hidden" name="directions" />
  20 + <input type="hidden" name="versions" />
29 21 <!-- 路段名称 -->
30 22 <div class="form-body">
31 23 <div class="form-group">
... ... @@ -33,7 +25,7 @@
33 25 <span class="required"> * </span> 路段名称:
34 26 </label>
35 27 <div class="col-md-6">
36   - <input type="text" class="form-control" name="sectionName" id="sectionName" placeholder="路段名称">
  28 + <input type="text" class="form-control" name="section.sectionName" placeholder="路段名称">
37 29 </div>
38 30 </div>
39 31 </div>
... ... @@ -59,59 +51,56 @@
59 51 </div>
60 52 </div>
61 53 <script type="text/javascript">
62   -debugger;
63   -$('#edit_section_mobal').on('editSectionMobal_show', function(e, map_,ajaxd,p,fun){
64   - function setSectionFormValue(section) {
  54 +$('#edit_section_modal').on('modal.show', function(e, currentSection){
  55 + function setSectionFormValue(sectionRoute) {
65 56 $('#edit_section_form input').each(function() {
66   - $(this).val(eval('section.' + this.name));
  57 + $(this).val(eval('sectionRoute.' + this.name));
67 58 });
68 59 }
69   - var section = p.data;
70   - var lineId = section.lineCode, version = section.versions, start = section.start, end = section.end;
71   - setSectionFormValue(section);
  60 + var sectionRoute = currentSection.data;
  61 + var lineId = sectionRoute.lineCode, version = sectionRoute.versions, start = sectionRoute.start, end = sectionRoute.end;
  62 + setSectionFormValue(sectionRoute);
72 63 // 获取路段号元素,并添加下拉属性值
73   - ajaxd.getRouteByStartEnd(lineId,version,start, end,function(result) {
  64 + RoutesService.getRouteByStartEnd(lineId,version,start, end,function(result) {
74 65 var routes = result.data.routes,paramsD =new Array();
75   - var eq_scetionRouteCode = section.sectionrouteCode;
  66 + var eq_scetionRouteCode = sectionRoute.sectionrouteCode;
  67 + var previous = '请选择...', last;
76 68 paramsD.push({'id':'请选择...','text':'将此路段设置位第一个路段'});
77 69 // 遍历
78 70 $.each(routes, function(i, g){
79 71 // 判断.
80 72 if(g.section.sectionName) {
81 73 var ptions_v = g.sectionrouteCode;
82   - if(eq_scetionRouteCode != ptions_v) {
83   - // 添加拼音检索下拉框格式数据数组.
84   - paramsD.push({'id':ptions_v,
85   - 'text':g.section.sectionName + '(' + ptions_v + ')'});
  74 + if (eq_scetionRouteCode != ptions_v) {
  75 + paramsD.push({'id':ptions_v, 'text':g.section.sectionName + '(' + ptions_v + ')'});
  76 + last = ptions_v;
  77 + } else {
  78 + previous = last;
86 79 }
87 80 }
88 81 });
89 82 // 初始化上一个路段拼音检索下拉框.
90 83 initPinYinSelect2($('#sectionrouteCode'),paramsD,function(selector) {
91 84 if(paramsD.length > 0) {
92   - var upStationRouteCode = paramsD[paramsD.length - 1].sectionrouteCode;
93   - $('#sectionrouteCode').select2('val',upStationRouteCode);
  85 + $('#sectionrouteCode').select2('val', previous);
94 86 }else {
95 87 $('#sectionrouteCode').select2('val','请选择...');
96 88 }
97 89 });
98 90 });
99 91 // 显示mobal
100   - $('#edit_section_mobal').modal({show : true,backdrop: 'static',keyboard: false});//
  92 + $('#edit_section_modal').modal({show : true,backdrop: 'static',keyboard: false});//
101 93 // 当调用 hide 实例方法时触发
102   - $('#edit_section_mobal').on('hide.bs.modal', function () {
  94 + $('#edit_section_modal').on('hide.bs.modal', function () {
103 95 closeMobleSetClean();
104 96 });
105 97 function closeMobleSetClean() {
106 98 // 清除地图覆盖物
107   - map_.clearMarkAndOverlays();
  99 + RoutesOperation.clearMarkAndOverlays();
108 100 $('#inoutSearch').click();
109   - fun.editAChangeCssRemoveDisabled();
110   - //ajaxd.getSectionRouteInfo(lineId,dir,$("#versions").val(),function(data) {
111   - // fun.linePanlThree(lineId,data,dir);
112   - //});
  101 + RoutesOperation.editAChangeCssRemoveDisabled();
113 102 setTimeout(function () {
114   - map_.openSectionInfoWin_inout(p);
  103 + RoutesOperation.openSectionInfoWin_inout(currentSection);
115 104 },1000);
116 105 }
117 106 // 编辑表单元素
... ... @@ -129,7 +118,7 @@ $(&#39;#edit_section_mobal&#39;).on(&#39;editSectionMobal_show&#39;, function(e, map_,ajaxd,p,fu
129 118 errorClass : 'help-block help-block-error',
130 119 focusInvalid : false,
131 120 rules : {
132   - 'sectionName' : {required : true,maxlength:50}
  121 + 'sectionName' : {required : true, maxlength: 50}
133 122 },
134 123 invalidHandler : function(event, validator) {
135 124 error.show();
... ... @@ -146,29 +135,26 @@ $(&#39;#edit_section_mobal&#39;).on(&#39;editSectionMobal_show&#39;, function(e, map_,ajaxd,p,fu
146 135 },
147 136 submitHandler : function(f) {
148 137 // 获取折线坐标集合
149   - var editPloyLineArray = p.getPath();
  138 + var editPloyLineArray = currentSection.getPath();
150 139 // 折线坐标集合
151 140 $('#bsectionVector').val(JSON.stringify(editPloyLineArray));
152 141 var params = form.serializeJSON();
153   - params.destroy=0;
154   - params.sectionDistance=0;
155   - params.sectionTime=0;
156   - params.status=$($("#versions").find("option:selected")[0]).attr("status");
  142 + params.destroy = 0;
  143 + params.sectionDistance = 0;
  144 + params.sectionTime = 0;
157 145 error.hide();
158   - debugger
159   - if(params.sectionrouteCode=='请选择...')
160   - params.sectionrouteCode='';
161   - ajaxd.inoutSectionUpdate(params,function(resuntDate) {
162   - if(resuntDate.status=='SUCCESS') {
163   - // 弹出添加成功提示消息
  146 + if(params.sectionrouteCode == '请选择...') {
  147 + params.sectionrouteCode = 100;
  148 + } else {
  149 + params.sectionrouteCode = parseInt(params.sectionrouteCode) + 1;
  150 + }
  151 + RoutesService.inoutSectionUpdate(params,function(res) {
  152 + if(res.status == 'SUCCESS') {
164 153 layer.msg('修改成功...');
165 154 }else {
166   - // 弹出添加失败提示消息
167 155 layer.msg('修改失败...');
168 156 }
169   - $('#edit_section_mobal').modal('hide');
170   - var dir = params.directions
171   - closeMobleSetClean();
  157 + $('#edit_section_modal').modal('hide');
172 158 });
173 159 }
174 160 });
... ...
src/main/resources/static/pages/base/stationroute/js/addstationobj.js deleted 100644 → 0
1   -var AddStationObj = function () {
2   -
3   - /** 定义新增站点对象 */
4   - var station={};
5   -
6   - var stationObj = {
7   - /** 获取新增站点集合对象 @return:<station:新增站点对象> */
8   - getAddStation : function() {
9   - return station;
10   - },
11   -
12   - /** 设置新增站点集合对象为空 */
13   - setAddStation : function(s) {
14   - station = s;
15   - },
16   -
17   - /** 设置新增站点集合对象方向属性值 @param:<dir:方向(0:上行;1:下行)> */
18   - setAddStationDiraction : function(dir) {
19   - station.dir = dir;
20   - },
21   -
22   - /** 设置新增站点集合对象站点名称属性值 @param:<stationName:站点名称) */
23   - setAddStationName : function(stationName) {
24   - station.stationNamebootbox = stationName;
25   - },
26   -
27   - /** 设置新增站点集合对象站点中心点百度坐标属性值 @param:<bJwpoints:中心点百度坐标) */
28   - setAddStationJwpoints : function(bJwpoints) {
29   - station.bJwpoints = bJwpoints;
30   - },
31   -
32   - /** 设置新增站点集合对象范围图形类型属性值 @param:<shapesType:范围图形类型) */
33   - setAddStationShapesType : function(shapesType) {
34   - station.shapesType = shapesType;
35   - },
36   -
37   - /** 设置新增站点集合对象圆形半径属性值 @param:<radius:圆形半径) */
38   - setAddStationRadius : function(radius) {
39   - station.radius = radius;
40   - },
41   -
42   - /** 设置新增站点集合对象图形百度坐标集合属性值 @param:<bPolygonGrid:图形百度坐标集合) */
43   - setBPolygonGrid : function(bPolygonGrid) {
44   - station.bPolygonGrid = bPolygonGrid;
45   - },
46   -
47   - /**
48   - * 设置物理站点信息
49   - * @param station
50   - */
51   - setPhysicalStation: function(physical) {
52   - station.id = physical.id;
53   - station.stationCode = physical.stationCode;
54   - station.stationName = physical.stationName;
55   - },
56   -
57   - /**
58   - * 重置物理站点信息
59   - */
60   - resetPhysicalStation: function() {
61   - delete station.id;
62   - delete station.stationCode;
63   - delete station.stationName;
64   - }
65   - }
66   -
67   - return stationObj;
68   -}();
69 0 \ No newline at end of file
src/main/resources/static/pages/base/stationroute/js/deletebatch.js deleted 100644 → 0
1   -var DeleteBatchObj = function(){
2   -
3   - /** 定义修改线路对象 */
4   -
5   - var deleteBatchObj = {
6   - /** 获取批量撤销对象 @return:<Batch:批量撤销对象> */
7   - getDeleteBatch : function() {
8   - return deleteBatchObj;
9   - },
10   -
11   - /** 设置批量撤销的线路方向 @param:<dir:方向(0:上行;1:下行)> */
12   - setDeteleBatchDiraction : function(dir) {
13   -
14   - deleteBatchObj.dir = dir;
15   - },
16   - }
17   -
18   - return deleteBatchObj;
19   -}();
src/main/resources/static/pages/base/stationroute/js/drawingManager.js deleted 100644 → 0
1   -var DrawingManagerObj = function () {
2   -
3   - // 创建鼠标绘制管理类
4   - var drawingManager = '';
5   -
6   - var draMangerObj = {
7   -
8   - /** 初始化绘制工具类 */
9   - init : function(map, styleOptions) {
10   - drawingManager = new BMapLib.DrawingManager(map, {
11   - //是否开启绘制模式
12   - isOpen : false,
13   - //是否显示工具栏
14   - enableDrawingTool : false,
15   - drawingToolOptions : {
16   - //位置
17   - anchor : BMAP_ANCHOR_TOP_RIGHT,
18   - //偏离值
19   - offset : new BMap.Size(5, 5),
20   - //工具栏缩放比例
21   - scale : 0.8
22   - },
23   - //线的样式
24   - polygonOptions : styleOptions
25   - });
26   -
27   - // 添加绘画完成事件
28   - drawingManager.addEventListener('polygoncomplete', function(polygon) {
29   - drawingManager.close();
30   - var points = polygon.getPath();
31   - if (points.length < 3) {
32   - // 弹出提示消息
33   - layer.msg('坐标点不能小于三个,请点击"退出编辑"后重新修改');
34   - WorldsBMap.getmapBValue().removeOverlay(polygon);
35   -
36   - return false;
37   - } else {
38   - var bufferPolygonWkt = new Array();
39   - for(var i = 0;i < points.length;i++) {
40   - bufferPolygonWkt.push(points[i].lng + ' ' + points[i].lat)
41   - }
42   - bufferPolygonWkt.push(points[0].lng + ' ' + points[0].lat)
43   - var add = AddStationObj.getAddStation(), edit = EditStationObj.getEditStation();
44   - if(!$.isEmptyObject(add)){
45   - /** 设置新增站点集合对象范围图形类型属性值 @param:<shapesType:范围图形类型) */
46   - AddStationObj.setAddStationShapesType('d');
47   - /** 设置新增站点集合对象圆形半径属性值 @param:<radius:圆形半径) */
48   - AddStationObj.setAddStationRadius('');
49   - /** 设置新增站点集合对象图形百度坐标集合属性值 @param:<bPolygonGrid:图形百度坐标集合) */
50   - AddStationObj.setBPolygonGrid(bufferPolygonWkt.join(','));
51   - $.get('add_stationroute_step2.html', function(m){
52   - $(pjaxContainer).append(m);
53   - $('#add_stationroute_step2_modal').trigger('modal.show', [WorldsBMap,GetAjaxData,AddStationObj,LineObj,PublicFunctions]);
54   - });
55   - }
56   -
57   - if(!$.isEmptyObject(edit)){
58   - /** 设置修改站点集合对象范围图形类型属性值 @param:<shapesType:范围图形类型) */
59   - EditStationObj.setEditStationShapesType('d');
60   - /** 设置修改站点集合对象圆形半径属性值 @param:<radius:圆形半径) */
61   - EditStationObj.setEditStationRadius('');
62   - /** 设置修改站点集合对象图形百度坐标集合属性值 @param:<bPolygonGrid:图形百度坐标集合) */
63   - EditStationObj.setEitdBPolygonGrid(bufferPolygonWkt.join(','));
64   -
65   - // 加载编辑页面
66   - $.get('edit_stationroute_step2.html', function(m){
67   - $(pjaxContainer).append(m);
68   - $('#edit_stationroute_step2_modal').trigger('modal.show', [WorldsBMap,GetAjaxData,EditStationObj,LineObj,PublicFunctions]);
69   - });
70   - }
71   - }
72   - });
73   -
74   - return drawingManager;
75   - },
76   -
77   - openDrawingManager : function() {
78   - // 打开鼠标绘画工具
79   - drawingManager.open();
80   - // 设置属性
81   - drawingManager.setDrawingMode(BMAP_DRAWING_POLYGON);
82   - },
83   -
84   - closeDrawingManager : function() {
85   - drawingManager.close();
86   - }
87   - }
88   -
89   - return draMangerObj;
90   -}();
91 0 \ No newline at end of file
src/main/resources/static/pages/base/stationroute/js/editsection.js deleted 100644 → 0
1   -var EditSectionObj = function () {
2   -
3   - /** 定义修改路段对象 */
4   - var Section={};
5   -
6   - var SectionObj = {
7   -
8   - /** 获取修改路段集合对象 @return:<Section:修改路段对象> */
9   - getEitdSection : function() {
10   - return Section;
11   - },
12   -
13   - /** 设置修改路段集合对象为空 */
14   - setEitdSection : function(sc) {
15   -
16   - Section = sc;
17   - },
18   -
19   -
20   - /** 设置修改路段集合对象折线百度坐标集合属性值 @param:<bsectionVector:折线百度坐标集合) */
21   - setEitdBsectionVector : function(bsectionVector) {
22   -
23   - Section.sectionBsectionVector = bsectionVector;
24   - }
25   - }
26   -
27   - return SectionObj;
28   -
29   -}();
src/main/resources/static/pages/base/stationroute/js/editstationobj.js deleted 100644 → 0
1   -var EditStationObj = function () {
2   -
3   - /** 定义修改站点对象 */
4   - var station = {};
5   -
6   - var stationObj = {
7   -
8   - /** 获取修改站点集合对象 @return:<station:修改站点对象> */
9   - getEditStation : function() {
10   - return station;
11   - },
12   -
13   - /** 设置修改站点集合对象为空 */
14   - setEditStation : function(s) {
15   - station = s;
16   - },
17   -
18   - /** 设置修改站点集合对象站点名称属性值 @param:<stationName:站点名称) */
19   - setEditStationName : function(stationName) {
20   - station.stationName = stationName;
21   - },
22   -
23   - /** 设置修改站点集合对象站点中心点百度坐标属性值 @param:<bJwpoints:中心点百度坐标) */
24   - setEditStationJwpoints : function(centerPointWkt) {
25   - station.centerPointWkt = centerPointWkt;
26   - },
27   -
28   - /** 设置修改站点集合对象范围图形类型属性值 @param:<shapesType:范围图形类型) */
29   - setEditStationShapesType : function(shapedType) {
30   - station.shapedType = shapedType;
31   - },
32   -
33   - /** 设置修改站点集合对象圆形半径属性值 @param:<radius:圆形半径) */
34   - setEditStationRadius : function(radius) {
35   - station.radius = radius;
36   - },
37   -
38   - /** 设置修改站点集合对象图形百度坐标集合属性值 @param:<bPolygonGrid:图形百度坐标集合) */
39   - setEitdBPolygonGrid : function(bufferPolygonWkt) {
40   - station.bufferPolygonWkt = bufferPolygonWkt;
41   - }
42   - }
43   -
44   - return stationObj;
45   -}();
src/main/resources/static/pages/base/stationroute/js/line.js deleted 100644 → 0
1   -/**
2   - * 线路类
3   - *
4   - */
5   -
6   -var LineObj = function () {
7   -
8   - /** 定义线路对象 */
9   -
10   - var line={
11   -
12   - };
13   -
14   - var lineObj = {
15   -
16   - /** 初始化线路对象属性值 */
17   - init : function(id) {
18   -
19   - // 线路Id
20   - line.id = id;
21   -
22   - return line;
23   - },
24   -
25   - /** 获取线路对象 @return:<line:线路对象> */
26   - getLineObj : function() {
27   -
28   - return line;
29   - },
30   -
31   - setStatus:function(s){
32   - line.status = s;
33   - }
34   -
35   - }
36   -
37   -
38   - return lineObj;
39   -
40   -}();
41 0 \ No newline at end of file
src/main/resources/static/pages/base/stationroute/js/routes-operation.js 0 → 100644
  1 +var RoutesOperation = (function () {
  2 + var lineId, versions, directions = 0, status;
  3 + // 百度地图对象
  4 + var baiduMap;
  5 + // 进出场路段编辑时当前选中的路段
  6 + var currentSection = {};
  7 + var addStationRoute = {}, editStationRoute = {};
  8 + // 进出场中名称和场站信息的映射
  9 + var name2Point = {};
  10 + var stationMarkers = {};
  11 + var stationDrawingManager, sectionDrawingManager;
  12 + var map_status = 0;
  13 + var sectionArray = {}, stationArray = {};
  14 + // 新增站点时添加的覆盖物, 站点点击和双击的setTimeout值
  15 + var overlays = new Array(), setTimeoutId;
  16 + // 信息窗口打开状态的路段
  17 + var road_win_show_p;
  18 + // 被编辑的路段
  19 + var editPolyline;
  20 + var styleOptions = {
  21 + strokeColor : "blue",
  22 + fillColor : "blue",
  23 + strokeWeight : 3,
  24 + strokeOpacity : 0.8,
  25 + fillOpacity : 0.6,
  26 + strokeStyle : 'solid'
  27 + };
  28 + var lineStyle = {
  29 + strokeColor: "blue",
  30 + strokeWeight: 2,
  31 + strokeOpacity: 0.7
  32 + }
  33 + var operation = {
  34 + getAddStationRoute: function () {
  35 + return addStationRoute;
  36 + },
  37 + getEditStationRoute: function () {
  38 + return editStationRoute;
  39 + },
  40 + getCurrentSection: function () {
  41 + return currentSection;
  42 + },
  43 + getProperties: function () {
  44 + return {
  45 + lineId: lineId,
  46 + versions: versions,
  47 + directions: directions,
  48 + status: status
  49 + }
  50 + },
  51 + getBaiduMap: function () {
  52 + return baiduMap;
  53 + },
  54 + getStationArray: function () {
  55 + return stationArray;
  56 + },
  57 + setStationArray : function (s) {
  58 + stationArray = s;
  59 + },
  60 + setMap_status : function (i) {
  61 + map_status = i;
  62 + },
  63 + /***************************************************reload*******************************************************/
  64 + initPage: function () {
  65 + if (!$('body').hasClass('page-sidebar-closed')) {
  66 + $('.menu-toggler.sidebar-toggler').click();
  67 + }
  68 + lineId = $.url().param('no');
  69 + if (!lineId) {
  70 + this.illegalParamHandle();
  71 + return;
  72 + }
  73 + RoutesService.getAllLineVersions(lineId, function(lineVersions) {
  74 + $('#versions option').remove();
  75 + for (var i = 0;i < lineVersions.length;i++) {
  76 + var lineVersion = lineVersions[i], selected = false;
  77 + if (lineVersion.status == 1 || i == lineVersions.length - 1) {
  78 + operation.TreeUpOrDown(lineId, '0', lineVersion.versions);
  79 + operation.TreeUpOrDown(lineId, '1', lineVersion.versions);
  80 + status = lineVersion.status;
  81 + versions = lineVersion.versions;
  82 + selected = true;
  83 + }
  84 + $('#versions').append('<option value=' + lineVersion.versions + ' status=' + lineVersion.status + (selected ? ' selected' : '') + '>' + lineVersion.name + ' (' + lineVersion.versions + ')' + '</option>');
  85 + }
  86 + operation.setTiteText(lineId);
  87 + operation.registerEvents();
  88 + });
  89 + },
  90 + illegalParamHandle: function () {
  91 + layer.confirm('【ID缺失,请点击返回,重新进行操作】', {
  92 + btn : [ '返回' ],
  93 + icon : 3,
  94 + title : '提示'
  95 + }, function(index) {
  96 + layer.close(index);
  97 + loadPage('/pages/base/line/list.html');
  98 + });
  99 + },
  100 + registerEvents: function() {
  101 + $('#esc_edit_div').on('click', function() {
  102 + var index = layer.open({
  103 + title: '退出提示',
  104 + content: '退出编辑模式后,当前没有保存的所有操作将被还原,确定要退出吗!',
  105 + btn: [ '确定', '取消' ],
  106 + yes: function(index) {
  107 + operation.resjtreeDate(lineId, directions, versions);
  108 + operation.editMapStatusRemove();
  109 + layer.msg("已退出编辑模式!");
  110 + layer.close(index);
  111 + },
  112 + btn2: function() {
  113 + layer.closeAll(index);
  114 + layer.msg("您没有退出编辑模式,请继续完成您未完成的操作!")
  115 + }
  116 + });
  117 + })
  118 +
  119 + $("#versions").on('change', function() {
  120 + versions = $(this).val();
  121 + status = $($(this).find("option:selected")[0]).prop("status");
  122 + $('#upLine').click();
  123 +
  124 + if (status > 0) {
  125 + $(".table-toolbar").show();
  126 + } else {
  127 + $(".table-toolbar").hide();
  128 + }
  129 + })
  130 +
  131 + $('.green-seagreen dropdown-toggle').click(function() {
  132 + $('.dropdown-menu').css("display", "block");
  133 + });
  134 +
  135 + // 系统规划上行站点点击事件
  136 + $('.upSystem').on('click',function() {
  137 + $('#upToolsMobal').hide();
  138 + layer.load(0,{offset:['200px', '280px']});
  139 + operation.lineNameIsHaveInterval(0);
  140 + });
  141 +
  142 + $('.gpsRoute').on('click',function() {
  143 + // 加载其它规划选择弹出层modal页面
  144 + $.get('add_routes_template.html', function(m){
  145 + $(pjaxContainer).append(m);
  146 + $('#add_routes_template_modal').trigger('modal.show');
  147 + });
  148 + });
  149 +
  150 + // 上行站点新增事件
  151 + $('.module_tools #addUpStation').on('click', function() {
  152 + operation.addStationInit();
  153 + addStationRoute.directions = 0;
  154 + $.get('add_stationroute_step1.html', function(m){
  155 + $(pjaxContainer).append(m);
  156 + $('#add_stationroute_step1_modal').trigger('modal.show');
  157 + });
  158 + });
  159 +
  160 + // 修改上行站点modal页面 @已弃用
  161 + /*$('.module_tools #editUpStation').on('click', function(){
  162 + var sel = PublicFunctions.getCurrSelNode(0);
  163 + if(sel.length == 0 || sel[0].original.chaildredType != 'station'){
  164 + layer.msg('请先选择要编辑的上行站点!');
  165 + return;
  166 + }
  167 + $.get('edit_select.html', function(m){
  168 + $(pjaxContainer).append(m);
  169 + $('#edit_select_mobal').trigger('editSelectMobal_show', [WorldsBMap,DrawingManagerObj,GetAjaxData,EditStationObj,LineObj,PublicFunctions,directionUpValue]);
  170 + });
  171 + });*/
  172 +
  173 + // 撤销上行站点 @已弃用
  174 + /*$('.module_tools #deleteUpStation').on('click', function() {
  175 + PublicFunctions.stationRevoke(0);
  176 + });*/
  177 +
  178 + // 上行批量撤销事件
  179 + $('.module_tools #batchUpDelete').on('click', function() {
  180 + $.get('destroy_routes.html', function(m){
  181 + $(pjaxContainer).append(m);
  182 + $('#delete_select_modal').trigger('modal.show');
  183 + });
  184 + });
  185 +
  186 + // 交换上下行站点和路段路由
  187 + $('.retweet').on('click', function() {
  188 + layer.confirm('您是否确定将【上、下】行站点和路段进行对换!', {
  189 + btn : [ '确认提示并提交', '取消' ]
  190 + },function () {
  191 + layer.closeAll();
  192 + var index = layer.load(1, {
  193 + shade: [0.1, '#fff']
  194 + });
  195 + $post('/api/lsstationroute/exchangeDirection', {lineId: lineId, version: versions}, function(data) {
  196 + layer.close(index);
  197 + if (data.status == 'SUCCESS') {
  198 + layer.msg('操作成功...');
  199 + } else {
  200 + layer.msg('操作成功...');
  201 + }
  202 + operation.clearMarkAndOverlays();
  203 + $('#upLine').click();
  204 + });
  205 + });
  206 + });
  207 +
  208 + $('#wrenchUpDis').on('click',function() {
  209 + RoutesService.getStation(lineId, directions, versions, function(routes) {
  210 + $.get('tzzj.html', function(m){
  211 + $(pjaxContainer).append(m);
  212 + $('#tzzj_mobal').trigger('modal.show', [routes.stationRoutes]);
  213 + });
  214 + });
  215 + })
  216 +
  217 + $('#wrenchDownDis').on('click',function() {
  218 + RoutesService.getStation(lineId, directions, versions, function(routes) {
  219 + $.get('tzzj.html', function(m){
  220 + $(pjaxContainer).append(m);
  221 + $('#tzzj_mobal').trigger('modal.show', [routes.stationRoutes]);
  222 + });
  223 + });
  224 + });
  225 +
  226 + $('#quoteDown').on('click',function() {
  227 + var index = layer.load(1, {
  228 + shade: [0.1,'#fff']
  229 + });
  230 + var params = {lineId: lineId, version: versions, direction: 0, otherDirection: 1};
  231 + quote(params, index);
  232 + });
  233 +
  234 + $('#quoteUp').on('click',function() {
  235 + var index = layer.load(1, {
  236 + shade: [0.1,'#fff']
  237 + });
  238 + var params = {lineId: lineId, version: versions, direction: 1, otherDirection: 0};
  239 + quote(params, index);
  240 + });
  241 +
  242 + function quote(params, index) {
  243 + $post('/api/lssectionroute/quoteOtherSide', params, function(data) {
  244 + layer.close(index);
  245 + if(data.status == 'SUCCESS') {
  246 + layer.msg('操作成功...');
  247 + } else {
  248 + layer.msg('操作失败...');
  249 + }
  250 + operation.clearMarkAndOverlays();
  251 + operation.resjtreeDate(lineId, directions, versions);
  252 + });
  253 + }
  254 +
  255 + // 编辑线路上行走向 @弃用
  256 + /*$('.module_tools #editUplineTrend').on('click', function() {
  257 + operation.editLinePlan(directionUpValue);
  258 + });*/
  259 +
  260 + // 线路上行
  261 + $('#leftUpOrDown #upLine').on('click', function(){
  262 + directions = 0;
  263 + operation.resjtreeDate(lineId, directions, versions);
  264 + });
  265 +
  266 + // 系统规划下行站点
  267 + $('.downSystem').on('click',function() {
  268 + $('#downToolsMobal').hide();
  269 + layer.load(0,{offset:['200px', '280px']});
  270 + operation.lineNameIsHaveInterval(1);
  271 + });
  272 +
  273 + // 下行站点新增事件
  274 + $('.module_tools #addDownStation').on('click', function() {
  275 + operation.addStationInit();
  276 + addStationRoute.directions = 1;
  277 + $.get('add_stationroute_step1.html', function(m){
  278 + $(pjaxContainer).append(m);
  279 + $('#add_stationroute_step1_modal').trigger('modal.show');
  280 + });
  281 + });
  282 +
  283 + // 修改下行站点mobal页面 @弃用
  284 + /*$('.module_tools #editDownStation').on('click', function(){
  285 + var sel = PublicFunctions.getCurrSelNode(directionDownValue);
  286 + if(sel.length==0 || sel[0].original.chaildredType !='station'){
  287 + layer.msg('请先选择要编辑的下行站点!');
  288 + return;
  289 + }
  290 + $.get('edit_select.html', function(m){
  291 + $(pjaxContainer).append(m);
  292 + $('#edit_select_mobal').trigger('editSelectMobal_show', [WorldsBMap,DrawingManagerObj,GetAjaxData,EditStationObj,LineObj,PublicFunctions,directionDownValue]);
  293 + });
  294 + });*/
  295 +
  296 + // 撤销下行站点 @弃用
  297 + /*$('.module_tools #deleteDownStation').on('click', function() {
  298 + PublicFunctions.stationRevoke(directionDownValue);
  299 + });*/
  300 +
  301 + // 下行批量撤销事件
  302 + $('.module_tools #batchDownDelete').on('click', function() {
  303 + $.get('destroy_routes.html', function(m){
  304 + $(pjaxContainer).append(m);
  305 + $('#delete_select_modal').trigger('modal.show');
  306 + });
  307 + });
  308 +
  309 + // 编辑线路下行走向 @弃用
  310 + /*$('.module_tools #editDownlineTrend').on('click', function() {
  311 + PublicFunctions.editLinePlan(directionDownValue);
  312 + });*/
  313 +
  314 + // 线路下行
  315 + $('#leftUpOrDown #downLine').on('click', function(){
  316 + directions = 1;
  317 + operation.resjtreeDate(lineId, directions, versions);
  318 + });
  319 +
  320 + // 生成行单 @弃用
  321 + /*$('.module_tools #createUsingSingle').on('click', function() {
  322 + var lineIdEvents = LineObj.getLineObj();
  323 + var params = {lineId:lineIdEvents.id};
  324 + GetAjaxData.createUsingSingle(params,function(data) {
  325 + if(data.status=='SUCCESS') {
  326 + // 弹出生成成功提示消息
  327 + layer.msg('生成成功...');
  328 + }else {
  329 + // 弹出生成失败提示消息
  330 + layer.msg('生成失败...');
  331 + }
  332 + });
  333 + });*/
  334 +
  335 + $('#scrllmouseEvent').on('mousemove',function() {
  336 + $('.defeat-scroll').css('overflow','auto');
  337 + }).on('mouseleave',function() {
  338 + $('.defeat-scroll').css('overflow','hidden');
  339 + });
  340 +
  341 + // 进出场规划
  342 + $('#leftUpOrDown #inoutLine').on('click', function(){
  343 + directions = 3
  344 + operation.resjtreeDate(lineId, directions, versions);
  345 + });
  346 +
  347 + // 环线首末站编码处理
  348 + $('#circularRouteHandle').on('click', function() {
  349 + RoutesService.circularRouteHandle(lineId, versions, function() {
  350 + layer.msg('操作成功');
  351 + operation.resjtreeDate(lineId, directions, versions);
  352 + })
  353 + })
  354 + },
  355 +
  356 + /***************************************************map*******************************************************/
  357 + initMap: function () {
  358 + baiduMap = new BMap.Map('routes_list_map_container' , {enableMapClick: false});
  359 + baiduMap.centerAndZoom(new BMap.Point(121.528733, 31.237425), 14);
  360 + baiduMap.enableDragging();
  361 + baiduMap.enableScrollWheelZoom();
  362 + baiduMap.disableDoubleClickZoom();
  363 + baiduMap.enableKeyboard();
  364 + },
  365 + /**
  366 + * 打开站点路由信息窗口
  367 + * @param stationRoute
  368 + */
  369 + openStationRouteInfoWin : function (stationRoute) {
  370 + if (stationRoute) {
  371 + var shapes = stationRoute.shapedType;
  372 + var centerPointWkt = stationRoute.station.centerPointWkt;
  373 + centerPointWkt = centerPointWkt.substring(6, centerPointWkt.length - 1);
  374 + var coordinates = centerPointWkt.split(' ');
  375 + var point = new BMap.Point(coordinates[0], coordinates[1]);
  376 + var width = operation.strGetLength(stationRoute.stationName) * 11;
  377 + var opts = {
  378 + width: (width < 240 ? 240 : width),
  379 + offset: new BMap.Size(10,-20),
  380 + enableMessage: false,
  381 + enableCloseOnClick: false,
  382 + enableAutoPan: false
  383 + };
  384 +
  385 + var stationMark = '';
  386 + if (stationRoute.stationMark == 'B') {
  387 + stationMark = '起点站';
  388 + } else if (stationRoute.stationMark == 'Z') {
  389 + stationMark = '中途站';
  390 + } else if (stationRoute.stationMark == 'E') {
  391 + stationMark = '终点站';
  392 + }
  393 + var htm = '<span style="color: #ff8355;font-size: 20px; overflow: hidden; white-space: nowrap; text-overflow:ellipsis;display: -webkit-box; -webkit-box-orient: vertical;">' + stationRoute.stationName + '</span>' +
  394 + '<span class="help-block" >站点编码:' + stationRoute.stationCode + '</span>' +
  395 + '<span class="help-block" >行业编号:' + (stationRoute.industryCode == null ? "":stationRoute.industryCode)+ '</span>' +
  396 + '<span class="help-block" >站点序号:' + stationRoute.stationRouteCode + '</span>' +
  397 + '<span class="help-block" >站点类型:' + stationMark + '</span>' +
  398 + '<span class="help-block" >经度:&nbsp&nbsp' + coordinates[0] + '</span>' +
  399 + '<span class="help-block" >纬度:&nbsp&nbsp' + coordinates[1] + '</span>' +
  400 + '<span class="help-block" >到站时间:' + stationRoute.toTime + '&nbsp;分钟</span>' +
  401 + '<span class="help-block" >到站距离:' + stationRoute.distances + '&nbsp;公里</span>' +
  402 + '<span class="help-block" >缓冲区形状:' + (shapes == 'r' ? '圆形' : '多边形') + '</span>' +
  403 + (shapes=="r" ? ("<span class='help-block' >半径&nbsp&nbsp:" + stationRoute.radius + "</span>") : " ")+
  404 + '<span class="help-block" >版本号&nbsp&nbsp:' + stationRoute.versions + '</span>';
  405 +
  406 + if(status > 0){
  407 + htm += '<div>' +
  408 + '<button class="info_win_btn" id="editStation" onclick="RoutesOperation.editStation(' + stationRoute.id+','+stationRoute.directions + ')">修改</button>' +
  409 + '<button class="info_win_btn" onclick="RoutesOperation.destroyStation('+ stationRoute.id + ','+stationRoute.line.id+','+stationRoute.directions+')">撤销</button>' +
  410 + '<button class="info_win_btn" id="addBetweenStationRoad" onclick="RoutesOperation.addBetweenStationRoad(' + stationRoute.id + ')">添加站点间路段</button>' +
  411 + '</div>';
  412 + }
  413 + // 创建信息窗口
  414 + var infoWindow = new BMap.InfoWindow(htm, opts);
  415 + setTimeout(function () {
  416 + //开启信息窗口
  417 + baiduMap.openInfoWindow(infoWindow, point);
  418 + }, 100);
  419 + // 将地图的中心点更改为给定的点。
  420 + baiduMap.panTo(point);
  421 + }
  422 + },
  423 +
  424 + /**
  425 + * 打开站点信息窗口
  426 + * @param station
  427 + */
  428 + openStationInfoWin: function(station) {
  429 + if (station) {
  430 + var centerPointWkt = station.centerPointWkt;
  431 + centerPointWkt = centerPointWkt.substring(6, centerPointWkt.length - 1);
  432 + var coordinates = centerPointWkt.split(' ');
  433 + var centerPoint = new BMap.Point(coordinates[0], coordinates[1]);
  434 + var width = operation.strGetLength(station.stationName) * 11;
  435 + var opts = {
  436 + width: (width < 240 ? 240 : width),
  437 + offset: new BMap.Size(10,-20),
  438 + enableMessage: false,
  439 + enableCloseOnClick: false,
  440 + enableAutoPan: false
  441 + };
  442 +
  443 + var html = new Array();
  444 + html.push('<span style="color: #ff8355;font-size: 20px; overflow: hidden; white-space: nowrap; text-overflow:ellipsis;display: -webkit-box; -webkit-box-orient: vertical;">' + station.stationName + '</span>');
  445 + html.push('<span class="help-block" >站点编号:' + (station.stationCode ? station.stationCode : '')+ '</span>');
  446 + html.push('<span class="help-block" >途经线路:' + (station.passLines ? station.passLines : '') + '</span>');
  447 +
  448 + var infoWindow = new BMap.InfoWindow(html.join(''), opts);
  449 + setTimeout(function () {
  450 + baiduMap.openInfoWindow(infoWindow, centerPoint);
  451 + }, 100);
  452 + baiduMap.panTo(centerPoint);
  453 + }
  454 + },
  455 +
  456 + /**
  457 + * 根据地理名称获取百度经纬度坐标
  458 + */
  459 + localSearchFromAdreesToPoint: function (Address, callback) {
  460 + var localSearch = new BMap.LocalSearch(baiduMap);
  461 + localSearch.setSearchCompleteCallback(function (searchResult) {
  462 + var resultPoints = '';
  463 + if (searchResult) {
  464 + // 返回索引指定的结果。索引0表示第1条结果
  465 + var poi = searchResult.getPoi(0);
  466 + if (poi) {
  467 + //获取经度和纬度
  468 + resultPoints = poi.point.lng + ' ' + poi.point.lat;
  469 + callback && callback(resultPoints);
  470 + } else {
  471 + callback && callback(false);
  472 + }
  473 + } else {
  474 + callback && callback(false);
  475 + }
  476 + });
  477 + localSearch.search(Address);
  478 + },
  479 +
  480 + /**
  481 + * 站级缓冲区编辑
  482 + */
  483 + editShapes: function (stationRoute) {
  484 + // 关闭信息窗口
  485 + baiduMap.closeInfoWindow();
  486 + var shapedType = editStationRoute.shapedType;
  487 + //setDragMarker(stationMarkers[editStationRoute.id]);
  488 +
  489 + var centerPointWkt = editStationRoute.station.centerPointWkt;
  490 + centerPointWkt = centerPointWkt.substring(6, centerPointWkt.length - 1);
  491 + var coordinates = centerPointWkt.split(' ');
  492 + var center = new BMap.Point(coordinates[0], coordinates[1]);
  493 + if (shapedType == 'r') {
  494 + var circle = new BMap.Circle(center, editStationRoute.radius, lineStyle);
  495 + baiduMap.centerAndZoom(center, 18);
  496 + baiduMap.addOverlay(circle);
  497 + circle.enableEditing();
  498 + circle.addEventListener('dblclick', function () {
  499 + editStationRoute.centerPointWkt = circle.getCenter().lng + ' ' + circle.getCenter().lat;
  500 + editStationRoute.shapedType = 'r';
  501 + editStationRoute.radius = Math.round(circle.getRadius());
  502 + // 加载编辑页面
  503 + $.get('edit_stationroute_step2.html', function (m) {
  504 + $(pjaxContainer).append(m);
  505 + $('#edit_stationroute_step2_modal').trigger('modal.show');
  506 + });
  507 + });
  508 + } else if (shapedType == 'd') {
  509 + var bufferPolygonWkt = editStationRoute.bufferPolygonWkt;
  510 + bufferPolygonWkt = bufferPolygonWkt.substring(9, bufferPolygonWkt.length - 2);
  511 + var points = bufferPolygonWkt.split(',');
  512 + var polygonPoints = new Array();
  513 + for (var i = 0; i < points.length; i++) {
  514 + var coordinates = points[i].split(' ');
  515 + polygonPoints.push(new BMap.Point(coordinates[0], coordinates[1]));
  516 + }
  517 + var polygon = new BMap.Polygon(polygonPoints, lineStyle);
  518 + baiduMap.centerAndZoom(center, 18);
  519 + baiduMap.addOverlay(polygon);
  520 + polygon.enableEditing();
  521 + polygon.addEventListener('dblclick', function (e) {
  522 + var bufferPolygonWkt = new Array(), points = polygon.getPath();
  523 + for(var i = 0;i < points.length;i++) {
  524 + bufferPolygonWkt.push(points[i].lng + ' ' + points[i].lat)
  525 + }
  526 + bufferPolygonWkt.push(points[0].lng + ' ' + points[0].lat)
  527 + editStationRoute.centerPointWkt = center.lng + ' ' + center.lat;
  528 + editStationRoute.shapedType = 'd';
  529 + editStationRoute.radius = 0;
  530 + editStationRoute.bufferPolygonWkt = bufferPolygonWkt.join(',');
  531 + $.get('edit_stationroute_step2.html', function (m) {
  532 + $(pjaxContainer).append(m);
  533 + $('#edit_stationroute_step2_modal').trigger('modal.show');
  534 + });
  535 + });
  536 + }
  537 + },
  538 +
  539 + /**
  540 + * 画路段走向
  541 + */
  542 + drawingUpline01: function (sectionRoutes) {
  543 + if (sectionRoutes) {
  544 + sectionArray = [];
  545 + for (var d = 0; d < sectionRoutes.length; d++) {
  546 + var data = sectionRoutes[d];
  547 + var polylineArray = [];
  548 + var sectionBsectionVectorStr = data.section.bsectionVectorWkt;
  549 + if (sectionBsectionVectorStr == null)
  550 + continue;
  551 + var tempStr = sectionBsectionVectorStr.substring(11, sectionBsectionVectorStr.length - 1);
  552 + var lineArray = tempStr.split(',');
  553 + for (var i = 0; i < lineArray.length; i++) {
  554 + polylineArray.push(new BMap.Point(lineArray[i].split(' ')[0], lineArray[i].split(' ')[1]));
  555 + }
  556 + var polyUpline01 = 'polyline' + '_' + data.id;
  557 + polyUpline01 = new BMap.Polyline(polylineArray, {
  558 + strokeColor: "red",
  559 + strokeWeight: 6,
  560 + strokeOpacity: 0.7
  561 + });
  562 + polyUpline01.data = data;
  563 + polyUpline01.ct_source = '1';
  564 + baiduMap.addOverlay(polyUpline01);
  565 + polyUpline01.addEventListener('mousemove', function (e) {
  566 + if (this != editPolyline)
  567 + this.setStrokeColor("#20bd26");
  568 + });
  569 + polyUpline01.addEventListener('mouseout', function (e) {
  570 + if (this != editPolyline && this != road_win_show_p)
  571 + this.setStrokeColor("red");
  572 + });
  573 + polyUpline01.addEventListener('onclick', function (e) {
  574 + if (map_status != 1)
  575 + operation.openSectionInfoWin(this);
  576 + });
  577 + sectionArray.push(polyUpline01);
  578 + }
  579 + }
  580 + },
  581 +
  582 + /**
  583 + * 在地图上画点 @param:<point_center:中心坐标点>
  584 + */
  585 + drawingUpStationPoint: function (stationRoute, seq, isView) {
  586 + var centerPointWkt = stationRoute.station.centerPointWkt;
  587 + centerPointWkt = centerPointWkt.substring(6, centerPointWkt.length - 1);
  588 + var coordinates = centerPointWkt.split(' ');
  589 + var stationName = stationRoute.stationName;
  590 + var center = new BMap.Point(coordinates[0], coordinates[1]);
  591 + var html2 = '<div style="position: absolute; margin: 0pt; padding: 0pt; width: 160px; height: 26px; left: -10px; top: -35px; overflow: hidden;">'
  592 + + '<img class="rm3_image" style="border:none;left:0px; top:0px; position:absolute;" src="/pages/base/stationroute/css/img/back160.png">'
  593 + + '</div>'
  594 + + '<label class=" BMapLabel" unselectable="on" style="position: absolute; -moz-user-select: none; display: inline; cursor: inherit; border: 0px none; padding: 2px 1px 1px; white-space: nowrap; font: 12px arial,simsun; z-index: 80; color: rgb(255, 102, 0); left: 15px; top: -35px;"><span style="float: left; color: #fdfdfd; margin-left: -22px; font-size: 6px;">' + seq + '</span>' + stationName + '</label>';
  595 +
  596 + var myRichMarker1 = new BMapLib.RichMarker(html2, center, {
  597 + "title": stationName,
  598 + "anchor": new BMap.Size(-10, 8),
  599 + "enableDragging": true
  600 + });
  601 + myRichMarker1.disableDragging();
  602 + myRichMarker1.ct_source = '1';
  603 + baiduMap.addOverlay(myRichMarker1);
  604 + myRichMarker1.addEventListener('click', function () {
  605 + if(map_status != 1 && !isView)
  606 + operation.openStationRouteInfoWin(stationRoute);
  607 + });
  608 + stationArray[stationRoute.id] = stationRoute;
  609 + stationMarkers[stationRoute.id] = myRichMarker1;
  610 + },
  611 +
  612 + /**
  613 + * 站点名称获取百度坐标(手动规划)
  614 + * @param arra
  615 + * @param callback
  616 + */
  617 + stationsNameToPoints: function (arra, callback) {
  618 + // 获取长度
  619 + var len = arra.length;
  620 + var stationList = [];
  621 + (function () {
  622 + if (!arguments.callee.count) {
  623 + arguments.callee.count = 0;
  624 + }
  625 + arguments.callee.count++;
  626 + var index = parseInt(arguments.callee.count) - 1;
  627 + if (index >= len) {
  628 + callback && callback(stationList);
  629 + return;
  630 + }
  631 + var f = arguments.callee;
  632 + if (arra[index].name != '') {
  633 + var localSearch = new BMap.LocalSearch(baiduMap);
  634 + localSearch.search(arra[index].name);
  635 + localSearch.setSearchCompleteCallback(function (searchResult) {
  636 + var poi = searchResult.getPoi(0);
  637 + if (poi) {
  638 + stationList.push({
  639 + name: arra[index].name.replace('公交车站', ''),
  640 + wgs: arra[index].wgs,
  641 + potion: {lng: poi.point.lng, lat: poi.point.lat}
  642 + });
  643 + } else {
  644 + stationList.push({
  645 + name: arra[index].name.replace('公交车站', ''),
  646 + wgs: arra[index].wgs,
  647 + potion: {lng: arra[index].wgs.x, lat: arra[index].wgs.y}
  648 + });
  649 + }
  650 + f();
  651 + });
  652 + } else {
  653 + f();
  654 + }
  655 + })();
  656 + },
  657 +
  658 + /**
  659 + * 根据坐标点获取两点之间的时间与距离(手动规划)
  660 + * @param stationList
  661 + * @param cb
  662 + */
  663 + getDistanceAndTotime: function (stationList, cb) {
  664 + stationList[0].distance = '';
  665 + stationList[0].duration = '';
  666 + // var sectionList = [];
  667 + // 获取长度
  668 + var len = stationList.length;
  669 + (function () {
  670 + if (!arguments.callee.count) {
  671 + arguments.callee.count = 0;
  672 + }
  673 + arguments.callee.count++;
  674 + var index = parseInt(arguments.callee.count) - 1;
  675 + if (index >= len - 1) {
  676 + // cb && cb(stationList,sectionList);
  677 + cb && cb(stationList);
  678 + return;
  679 + }
  680 + var f = arguments.callee;
  681 + var poiOne = new BMap.Point(stationList[index].potion.lng, stationList[index].potion.lat);
  682 + var poiTwo = new BMap.Point(stationList[index + 1].potion.lng, stationList[index + 1].potion.lat);
  683 + var transit = new BMap.TransitRoute(baiduMap, {
  684 + renderOptions: {map: baiduMap},
  685 + onSearchComplete: searchComplete
  686 + });
  687 +
  688 + transit.search(poiOne, poiTwo);
  689 + function searchComplete(results) {
  690 + var plan = results.getPlan(0);
  691 + if (transit.getStatus() != BMAP_STATUS_SUCCESS) {
  692 + stationList[index + 1].distance = '';
  693 + stationList[index + 1].duration = '';
  694 + } else {
  695 + stationList[index + 1].distance = plan.getDistance(true);
  696 + stationList[index + 1].duration = plan.getDuration(true);
  697 + }
  698 + f();
  699 + }
  700 + })();
  701 + },
  702 +
  703 + /**
  704 + * 根据坐标点获取两点之间的折线路段(手动规划)
  705 + * @param stationsPoint
  706 + * @param cb
  707 + */
  708 + getSectionListPlonly: function (stationsPoint, cb) {
  709 + var len = stationsPoint.length;
  710 + var sectionList = [];
  711 + (function () {
  712 + if (!arguments.callee.count) {
  713 + arguments.callee.count = 0;
  714 + }
  715 + arguments.callee.count++;
  716 + var index = parseInt(arguments.callee.count) - 1;
  717 + if (index >= len - 1) {
  718 + cb && cb(sectionList);
  719 + return;
  720 + }
  721 + var f = arguments.callee;
  722 + var poiOne = new BMap.Point(stationsPoint[index].potion.lng, stationsPoint[index].potion.lat);
  723 + var poiTwo = new BMap.Point(stationsPoint[index + 1].potion.lng, stationsPoint[index + 1].potion.lat);
  724 + /* var transit = new BMap.TransitRoute(mapB, {renderOptions: {map: mapB},onPolylinesSet: searchPolylinesSet});*/
  725 + var transit = new BMap.DrivingRoute(baiduMap, {
  726 + renderOptions: {map: baiduMap},
  727 + onPolylinesSet: searchPolylinesSet
  728 + });
  729 + function searchPolylinesSet(results) {
  730 + if (transit.getStatus() != BMAP_STATUS_SUCCESS) {
  731 + } else {
  732 + var sectionArrayList = [];
  733 + for (i = 0; i < results.length; i++) {
  734 + // console.log(results[i].getPolyline().getPath());
  735 + sectionArrayList = sectionArrayList.concat(results[i].getPolyline().getPath());
  736 + }
  737 + var sectionName = stationsPoint[index].name + '至' + stationsPoint[index + 1].name;
  738 + sectionList.push({sectionName: sectionName, points: sectionArrayList});
  739 + }
  740 + f();
  741 + }
  742 + transit.search(poiOne, poiTwo);
  743 + })();
  744 + },
  745 +
  746 + /**
  747 + * 定位站点 按名称检索出的站点
  748 + * @param stationName
  749 + * @param cb
  750 + */
  751 + localtionPoint: function (stationName, cb) {
  752 + baiduMap.closeInfoWindow();
  753 + RoutesService.findStationByName(stationName, function (stations) {
  754 + var marker;
  755 + if (stations.length > 0) {
  756 + var points = new Array();
  757 + for (var i = 0;i < stations.length;i++) {
  758 + var station = stations[i];
  759 + var centerPointWkt = station.centerPointWkt;
  760 + centerPointWkt = centerPointWkt.substring(6, centerPointWkt.length - 1);
  761 + var stationName = station.stationName;
  762 + var coordinates = centerPointWkt.split(' ');
  763 + var centerPoint = new BMap.Point(coordinates[0], coordinates[1]);
  764 + points.push(centerPoint);
  765 + var stationMarker = new BMap.Marker(centerPoint, {
  766 + title: stationName,
  767 + icon: new BMap.Icon('/pages/base/stationroute/css/img/back160.png', new BMap.Size(160, 26)),
  768 + offset: new BMap.Size(60, -16),
  769 + enableDragging: false
  770 + });
  771 + var label = new BMap.Label(stationName, {offset: new BMap.Size(25, 0)});
  772 + label.setStyle({border: '0px'});
  773 + stationMarker.setLabel(label);
  774 + stationMarker.ct_source = '1';
  775 + stationMarker.station = station;
  776 + baiduMap.addOverlay(stationMarker);
  777 + overlays.push(stationMarker);
  778 + stationMarker.addEventListener('click', function (event) {
  779 + event.domEvent.stopPropagation();
  780 + if (setTimeoutId) {
  781 + clearTimeout(setTimeoutId);
  782 + }
  783 + setTimeoutId = setTimeout(function(){
  784 + operation.openStationInfoWin(event.target.station);
  785 + }, 200);
  786 + });
  787 + stationMarker.addEventListener('rightclick', operation.confirmCenterPointHandler);
  788 + }
  789 + var center = new BMap.Polyline(points).getBounds().getCenter();
  790 + baiduMap.panTo(center);
  791 + }
  792 +
  793 + baiduMap.removeEventListener('click', operation.pickCenterPointHandler);
  794 + baiduMap.addEventListener('click', operation.pickCenterPointHandler);
  795 + cb && cb(marker);
  796 + });
  797 + },
  798 +
  799 + /**
  800 + *
  801 + * @param sectionName
  802 + * @param callback
  803 + */
  804 + localtionRoad: function (sectionName, callback) {
  805 + // 关闭信息窗口
  806 + baiduMap.closeInfoWindow();
  807 + RoutesService.findSectionByName(sectionName, function (sections) {
  808 + var marker;
  809 + if (sections.length > 0) {
  810 + var points = new Array();
  811 + for (var i = 0;i < sections.length;i++) {
  812 + var section = sections[i];
  813 + var bsectionVectorWkt = section.bsectionVectorWkt;
  814 + bsectionVectorWkt = bsectionVectorWkt.substring(11, bsectionVectorWkt.length - 1);
  815 + var sectionName = section.sectionName;
  816 + var polyline = operation.wkt2Polyline(bsectionVectorWkt);
  817 + polyline.section = section;
  818 + baiduMap.addOverlay(polyline);
  819 + overlays.push(polyline);
  820 + polyline.addEventListener('click', function (event) {
  821 + alert(event.target.section.id)
  822 + });
  823 + polyline.addEventListener('rightclick', operation.confirmCenterPointHandler);
  824 + }
  825 + var center = polyline.getBounds().getCenter();
  826 + baiduMap.panTo(center);
  827 + }
  828 + });
  829 + },
  830 +
  831 + /**
  832 + * wkt转百度Polyline
  833 + * @param wkt
  834 + * @returns {*}
  835 + */
  836 + wkt2Polyline: function (wkt) {
  837 + var points = new Array(), pointWkts = wkt.split(',');
  838 + for (var i = 0;i < pointWkts.length;i++) {
  839 + var coordinates = pointWkts[i].split(' ');
  840 + points.push(new BMap.Point(coordinates[0], coordinates[1]));
  841 + }
  842 +
  843 + return new BMap.Polyline(points)
  844 + },
  845 +
  846 + /**
  847 + * 百度Polyline转wkt
  848 + * @param wkt
  849 + * @returns {*}
  850 + */
  851 + polyline2Wkt: function (polyline) {
  852 + var points = polyline.getPath(), arr = new Array();
  853 + for (var i = 0;i < points.length;i++) {
  854 + arr.push(points[i].lng + ' ' + points[i].lat);
  855 + }
  856 +
  857 + return 'LINESTRING(' + arr.join(',') + ')';
  858 + },
  859 +
  860 + /**
  861 + * 左键选取站点处理
  862 + * @param e
  863 + */
  864 + pickCenterPointHandler: function(e) {
  865 + baiduMap.removeEventListener('click', operation.pickCenterPointHandler);
  866 + var marker = new BMap.Marker(e.point, {enableDragging: true});
  867 + overlays.push(marker);
  868 + baiduMap.panTo(e.point);
  869 + baiduMap.addOverlay(marker);
  870 + marker.addEventListener('rightclick', operation.confirmCenterPointHandler);
  871 + marker.setAnimation(BMAP_ANIMATION_BOUNCE);
  872 + },
  873 +
  874 + /**
  875 + * 系统规划抓去数据 @param lineNameValue:线路名称;i:方向
  876 + */
  877 + getBmapStationNames: function (lineName, i, cb) {
  878 + var busline = new BMap.BusLineSearch(baiduMap, {
  879 + onGetBusListComplete: function (busListResult) {
  880 + if (busListResult) {
  881 + var first = busListResult.getBusListItem(i);
  882 + busline.getBusLine(first);
  883 + }
  884 + },
  885 + onGetBusLineComplete: function (busLine) {
  886 + if (busLine) {
  887 + cb && cb(busLine);
  888 + }
  889 + }
  890 + });
  891 + busline.getBusList(lineName);
  892 + },
  893 + /**
  894 + * 编辑站点路由
  895 + * @param stationRouteId
  896 + */
  897 + editStation: function (stationRouteId) {
  898 + jQuery.extend(true, editStationRoute, stationArray[stationRouteId]);
  899 + $.get('edit_stationroute_step1.html', function (m) {
  900 + $(pjaxContainer).append(m);
  901 + $('#edit_stationroute_step1_modal').trigger('modal.show');
  902 + });
  903 + },
  904 +
  905 + /**
  906 + * 站间添加路段
  907 + * @param stationRouteId
  908 + */
  909 + addBetweenStationRoad: function (stationRouteId) {
  910 + var version = $("#versions").val();
  911 + // 关闭信息窗口
  912 + baiduMap.closeInfoWindow();
  913 + // 查询下一个站点
  914 + $.get("/api/lsstationroute/findCurrentAndNext", {id: stationRouteId}, function(stationRoutes) {
  915 + if (stationRoutes.length < 2) {
  916 + layer.msg("您选择的站点后没有站点了,不能生成站点间路段!");
  917 + } else {
  918 + var startStationRoute = stationRoutes[0], endStationRoute = stationRoutes[1];
  919 + var startWkt = startStationRoute.station.centerPointWkt, endWkt = endStationRoute.station.centerPointWkt;
  920 + var startCoordinates = startWkt.substring(6, startWkt.length - 1).split(" "), endCoordinates = endWkt.substring(6, endWkt.length - 1).split(" ")
  921 + var sectionList = [];
  922 + var startPoint = new BMap.Point(startCoordinates[0], startCoordinates[1]);
  923 + var endPoint = new BMap.Point(endCoordinates[0], endCoordinates[1]);
  924 + // 路径规划保存按钮
  925 + var label = new BMap.Label("保存路段", {
  926 + offset: new BMap.Size(13, -53)
  927 + });
  928 + label.setStyle({
  929 + color: '#fff',
  930 + background: "url(/pages/base/stationroute/css/img/bg.png)",
  931 + border: '0px solid',
  932 + textAlign: "center",
  933 + height: "28px",
  934 + lineHeight: "26px",
  935 + width: "80px",
  936 + maxWidth: "none"
  937 + });
  938 + label.addEventListener('click', function () {
  939 + var params = {};
  940 + params.lineId = startStationRoute.line.id;
  941 + params.lineCode = startStationRoute.lineCode;
  942 + params.directions = startStationRoute.directions;
  943 + params.stationRouteBegin = startStationRoute.stationName;
  944 + params.stationRouteFinish = endStationRoute.stationName;
  945 + layer.confirm('确定保存', {
  946 + btn : [ '路段调整好了','继续调整','退出'], icon: 3, title:'提示'
  947 + ,btn3: function(index, layero){
  948 + operation.resjtreeDate(params.lineId,params.directions);
  949 + operation.editAChangeCssRemoveDisabled();
  950 + operation.editMapStatusRemove();
  951 + }
  952 + }, function(index, layero){
  953 + layer.close(index);
  954 + params.route = $("#routePlanning").val();
  955 + $.get('doublename_road.html', function (m) {
  956 + $(pjaxContainer).append(m);
  957 + $('#doublename_road_modal').trigger('modal.show', [params]);
  958 + });
  959 + operation.editMapStatusRemove();
  960 + });
  961 + });
  962 + // 路径规划
  963 + var transit = new BMap.DrivingRoute(baiduMap, {
  964 + renderOptions: {
  965 + map: baiduMap,
  966 + enableDragging: true
  967 + },
  968 + onPolylinesSet: searchPolylinesSet
  969 + });
  970 +
  971 + function searchPolylinesSet(results) {
  972 + if (transit.getStatus() == BMAP_STATUS_SUCCESS) {
  973 + var sectionArrayList = [];
  974 + for (i = 0; i < results.length; i++) {
  975 + sectionArrayList = sectionArrayList.concat(results[i].getPolyline().getPath());
  976 + }
  977 + sectionList = sectionArrayList;//JSON.stringify()
  978 + $("#routePlanning").val(JSON.stringify(sectionArrayList));
  979 + var pointMap = new Map();
  980 + pointMap = sectionArrayList[sectionArrayList.length - 1];
  981 + var pointLabel = new BMap.Point(pointMap.lng, pointMap.lat);
  982 + label.enableMassClear();
  983 + label.setPosition(pointLabel);
  984 + baiduMap.addOverlay(label);
  985 + }
  986 + }
  987 + transit.search(startPoint, endPoint);
  988 + transit.disableAutoViewport();
  989 + // 地图编辑状态
  990 + operation.editMapStatus(endStationRoute.directions);
  991 + }
  992 + });
  993 + },
  994 +
  995 + /**
  996 + * 关闭modal时的清理
  997 + * @param station
  998 + */
  999 + closeMobleSetClean: function(station) {
  1000 + var dir = station.directions;
  1001 + var lineId = station.lineId;
  1002 +
  1003 + operation.clearMarkAndOverlays();
  1004 + // 刷新左边树
  1005 + operation.resjtreeDate(lineId,dir,$("#versions").val());
  1006 +
  1007 + // 退出编辑状态
  1008 + operation.editMapStatusRemove();
  1009 + },
  1010 +
  1011 + /**
  1012 + * 定位路段
  1013 + * @param sectionRouteId
  1014 + */
  1015 + focusSection: function(sectionRouteId) {
  1016 + for (var i = 0, p; p = sectionArray[i++];) {
  1017 + if (p.data.id == sectionRouteId) {
  1018 + switch (p.data.directions) {
  1019 + case 3:
  1020 + operation.openSectionInfoWin_inout(p);
  1021 + break;
  1022 + default:
  1023 + operation.openSectionInfoWin(p);
  1024 + break;
  1025 + }
  1026 +
  1027 + }
  1028 + }
  1029 + },
  1030 +
  1031 + /**
  1032 + * 路段编辑
  1033 + * @param sectionRouteId
  1034 + * @param dir
  1035 + */
  1036 + editSection : function(sectionRouteId, dir) {
  1037 + layer.confirm('进入编辑状态', {
  1038 + btn : [ '确定','返回' ], icon: 3, title:'提示'
  1039 + }, function() {
  1040 + operation.editMapStatus(dir);
  1041 + layer.msg('双击保存路段');
  1042 + var polyline;
  1043 + for (var i = 0; polyline = sectionArray[i++];) {
  1044 + if (polyline.data.id == sectionRouteId) {
  1045 + baiduMap.closeInfoWindow();//关闭infoWindow
  1046 + polyline.enableEditing();
  1047 + polyline.setStrokeColor('blue');
  1048 + break;
  1049 + }
  1050 + }
  1051 + // 路段中间点为中心
  1052 + var sectionRoute = polyline.data;
  1053 + var sectionStr = sectionRoute.section.bsectionVectorWkt.substring(11, sectionRoute.section.bsectionVectorWkt.length - 1);
  1054 + // 分割折线坐标字符串
  1055 + var lineArray = sectionStr.split(',');
  1056 + var sectionPointArray = [];
  1057 + for (var i = 0; i < lineArray.length; i++) {
  1058 + sectionPointArray.push(new BMap.Point(lineArray[i].split(' ')[0], lineArray[i].split(' ')[1]));
  1059 + }
  1060 + // 计算中间点
  1061 + var index = parseInt(sectionPointArray.length / 2);
  1062 + var centerPoint = sectionPointArray[index];
  1063 + baiduMap.centerAndZoom(centerPoint, 17);
  1064 + polyline.addEventListener('dblclick', function () {
  1065 + operation.editMapStatusRemove();
  1066 + $.get('edit_sectionroute.html', function(m){
  1067 + $('body').append(m);
  1068 + $('#edit_sectionroute_modal').trigger('modal.show', [polyline]);
  1069 + });
  1070 + });
  1071 + });
  1072 + },
  1073 +
  1074 + /**
  1075 + * 添加第一个路段
  1076 + * @param section
  1077 + */
  1078 + addSection: function(section) {
  1079 + operation.editMapStatus();
  1080 + // 把数据填充到模版中
  1081 + var addSectionHTML = template('add_draw_polyline-temp');
  1082 + $('body .mian-portlet-body').append(addSectionHTML);
  1083 + //暂停和开始绘制
  1084 + $('.draw_polyline_switch>a').on('click', function () {
  1085 + var t = $(this).text();
  1086 + if(t=='暂停绘制'){
  1087 + operation.exitDrawStatus();
  1088 + $(this).text('开始绘制');
  1089 + }
  1090 + else{
  1091 + operation.openDrawStatus();
  1092 + $(this).text('暂停绘制');
  1093 + }
  1094 + });
  1095 + // 开启绘制事件
  1096 + operation.showAddSectionPanel();
  1097 +
  1098 + //取消
  1099 + $('#addSectionCancelBtn').on('click', function () {
  1100 + $('.main_left_panel_m_layer').hide();
  1101 + $(this).parents('.buffer_edit_body').parent().remove();
  1102 + operation.exitDrawStatus();
  1103 + operation.editMapStatusRemove();
  1104 + });
  1105 +
  1106 + //确定
  1107 + $('#addSectionSbmintBtn').on('click', function () {
  1108 + var btn = this;
  1109 + $('#addSectionSbmintBtn').addClass("disabled");
  1110 + var sectionName = $('#sectionNameInput').val();
  1111 + var bsectionVector = $('#bsectionVectorInput').val();
  1112 + var params = {};
  1113 + if(sectionName && bsectionVector) {
  1114 + operation.exitDrawStatus();
  1115 + RoutesService.getSectionCode(function(sectionCode) {
  1116 + var sectionRoute = {};
  1117 + sectionRoute['line.id'] = lineId;
  1118 + sectionRoute.sectionCode = sectionCode;
  1119 + sectionRoute.roadCoding = '';
  1120 + sectionRoute.sectionrouteCode = 100;
  1121 + sectionRoute.sectionTime = 0;
  1122 + sectionRoute.sectionDistance = 0;
  1123 + sectionRoute.speedLimit = 60;
  1124 + sectionRoute.versions = versions;
  1125 + sectionRoute.destroy = 0;
  1126 + sectionRoute.directions = directions;
  1127 + sectionRoute.status = status;
  1128 + sectionRoute.start = section.start;
  1129 + sectionRoute.end = section.end;
  1130 + sectionRoute['section.id'] = sectionCode;
  1131 + sectionRoute['section.sectionCode'] = sectionCode;
  1132 + sectionRoute['section.sectionName'] = sectionName;
  1133 + sectionRoute['section.bsectionVectorWkt'] = bsectionVector;
  1134 +
  1135 + if (directions == 3) {
  1136 + RoutesService.inoutSectionSave(sectionRoute, function (result) {
  1137 + if(result.status =="SUCCESS"){
  1138 + $('.main_left_panel_m_layer').hide();
  1139 + $(btn).parents('.buffer_edit_body').parent().remove();
  1140 + operation.editMapStatusRemove();
  1141 + $('#inoutSearch').click();
  1142 + operation.editAChangeCssRemoveDisabled();
  1143 + layer.msg("添加成功!");
  1144 + } else if(result.status == "ERROR") {
  1145 + layer.msg("添加失败!");
  1146 + }
  1147 + });
  1148 + } else {
  1149 + RoutesService.sectionSave(sectionRoute, function (result) {
  1150 + if(result.status =="SUCCESS"){
  1151 + $('.main_left_panel_m_layer').hide();
  1152 + $(btn).parents('.buffer_edit_body').parent().remove();
  1153 + operation.editMapStatusRemove();
  1154 + $(directions == 0 ? '#upLine' : '#downLine').click();
  1155 + operation.editAChangeCssRemoveDisabled();
  1156 + layer.msg("添加成功!");
  1157 + } else if(result.status == "ERROR") {
  1158 + layer.msg("添加失败!");
  1159 + }
  1160 + });
  1161 + }
  1162 + });
  1163 + } else if(!sectionName){
  1164 + layer.msg('请填写路段名字!');
  1165 + } else if(!bsectionVector){
  1166 + layer.msg('请先绘制路段!');
  1167 + }
  1168 + setTimeout(function () {
  1169 + $("#addSectionSbmintBtn").removeClass("disabled");
  1170 + },1000);
  1171 + });
  1172 + },
  1173 +
  1174 + /**
  1175 + * 已有路段后添加路段
  1176 + * @param sectionRouteId
  1177 + */
  1178 + addSectionAfter: function(sectionRouteId) {
  1179 + /*$.get('add_sectionroute_step1.html', function(m){
  1180 + $(pjaxContainer).append(m);
  1181 + $('#add_sectionroute_step1_modal').trigger('modal.show', [WorldsBMap,DrawingManagerObj,RoutesService,AddStationObj,LineObj,operation]);
  1182 + });*/
  1183 + var lastSectionRoute;
  1184 + // 关闭信息窗口
  1185 + baiduMap.closeInfoWindow();
  1186 + operation.editMapStatus();
  1187 + // 把数据填充到模版中
  1188 + var addSectionHTML = template('add_draw_polyline-temp',{ 'id': sectionRouteId});
  1189 + $('body .mian-portlet-body').append(addSectionHTML);
  1190 + //暂停和开始绘制
  1191 + $('.draw_polyline_switch>a').on('click', function () {
  1192 + var t = $(this).text();
  1193 + if(t=='暂停绘制'){
  1194 + operation.exitDrawStatus();
  1195 + $(this).text('开始绘制');
  1196 + } else {
  1197 + operation.openDrawStatus();
  1198 + $(this).text('暂停绘制');
  1199 + }
  1200 + });
  1201 +
  1202 + //取消
  1203 + $('#addSectionCancelBtn').on('click', function () {
  1204 + $('.main_left_panel_m_layer').hide();
  1205 + $(this).parents('.buffer_edit_body').parent().remove();
  1206 + operation.exitDrawStatus();
  1207 + operation.editMapStatusRemove();
  1208 + });
  1209 + RoutesService.getSectionRouteInfoById(sectionRouteId, function(data) {
  1210 + operation.showAddSectionPanel(data);
  1211 + lastSectionRoute = data;
  1212 + });
  1213 +
  1214 + //确定
  1215 + $('#addSectionSbmintBtn').on('click', function () {
  1216 + var btn = this;
  1217 + $('#addSectionSbmintBtn').addClass("disabled");
  1218 + var sectionName = $('#sectionNameInput').val();
  1219 + var bsectionVectorWkt = $('#bsectionVectorInput').val();
  1220 + var params = {};
  1221 + if(sectionName && bsectionVectorWkt) {
  1222 + operation.exitDrawStatus();
  1223 + RoutesService.getSectionCode(function(sectionCode) {
  1224 + params = {'section.id': sectionCode, 'section.sectionCode': sectionCode, 'section.sectionName': sectionName, 'section.bsectionVectorWkt': bsectionVectorWkt, 'section.speedLimit': 0, 'section.distance': 0, 'line.id': lastSectionRoute.line.id, sectionCode: sectionCode, lineCode: lastSectionRoute.lineCode, roadCoding: '', sectionrouteCode: parseInt(lastSectionRoute.sectionrouteCode) + 1, versions: lastSectionRoute.versions, destroy: 0, directions: lastSectionRoute.directions};
  1225 +
  1226 + RoutesService.sectionSave(params, function (result) {
  1227 + if(result.status =="SUCCESS"){
  1228 + $('.main_left_panel_m_layer').hide();
  1229 + $(btn).parents('.buffer_edit_body').parent().remove();
  1230 + operation.editMapStatusRemove();
  1231 + operation.resjtreeDate(lastSectionRoute.line.id, lastSectionRoute.directions, $("#versions").val());
  1232 + operation.editAChangeCssRemoveDisabled();
  1233 + layer.msg("添加成功!");
  1234 + } else if(result.status =="ERROR") {
  1235 + layer.msg("添加失败!");
  1236 + }
  1237 + });
  1238 + });
  1239 + } else if(!sectionName){
  1240 + layer.msg('请填写路段名字!');
  1241 + } else if(!bsectionVector)
  1242 + layer.msg('请先绘制路段!');
  1243 + setTimeout(function () {
  1244 + $("#addSectionSbmintBtn").removeClass("disabled");
  1245 + },1000);
  1246 + });
  1247 + },
  1248 +
  1249 + /**
  1250 + * 撤销站点
  1251 + * @param stationRouteId
  1252 + * @param lineId
  1253 + * @param dir
  1254 + */
  1255 + destroyStation: function(stationRouteId, lineId, dir) {
  1256 + layer.confirm('你确定要撤销此站点吗?', {
  1257 + btn : [ '撤销','返回' ], icon: 3, title:'提示'
  1258 + }, function(){
  1259 + $.post('/api/lsstationroute/destroy', {id: stationRouteId}, function(res) {
  1260 + if (res.status == 'SUCCESS') {
  1261 + // 弹出添加成功提示消息
  1262 + layer.msg('撤销成功!');
  1263 + } else {
  1264 + // 弹出添加失败提示消息
  1265 + layer.msg('撤销失败!');
  1266 + }
  1267 + // 刷新左边树
  1268 + var version = $("#verions").val();
  1269 + operation.resjtreeDate(lineId, dir, version);
  1270 + });
  1271 + });
  1272 + },
  1273 +
  1274 + /**
  1275 + * 撤销路段
  1276 + * @param sectionRouteId
  1277 + * @param lineId
  1278 + * @param dir
  1279 + */
  1280 + destroySection: function(sectionRouteId,lineId,dir) {
  1281 + layer.confirm('你确定要撤销此路段吗?', {
  1282 + btn : [ '撤销','返回' ], icon: 3, title:'提示'
  1283 + }, function(){
  1284 + $.post('/api/lssectionroute/destroy',{id: sectionRouteId},function(res) {
  1285 + if (res.status == 'SUCCESS') {
  1286 + // 弹出添加成功提示消息
  1287 + layer.msg('撤销成功!');
  1288 + } else {
  1289 + // 弹出添加失败提示消息
  1290 + layer.msg('撤销失败!');
  1291 + }
  1292 + // 刷新左边树
  1293 + var version = $("#verions").val();
  1294 + operation.resjtreeDate(lineId, dir, version);
  1295 + });
  1296 + });
  1297 + },
  1298 + /**
  1299 + * 打开路段信息窗口
  1300 + * @param p
  1301 + */
  1302 + openSectionInfoWin: function(p) {
  1303 + var sectionRoute = p.data;
  1304 + var dir = sectionRoute.directions;
  1305 + var width = operation.strGetLength(sectionRoute.section.sectionName) * 10;
  1306 + // 信息窗口参数属性
  1307 + var opts = {
  1308 + width: (width < 200 ? 200 : width),
  1309 + height: 150,
  1310 + enableMessage: false,
  1311 + enableCloseOnClick: false,
  1312 + enableAutoPan: false
  1313 + };
  1314 + var htm = '<span style="color: #ff8355;font-size: 18px;">' + sectionRoute.section.sectionName + '</span>' +
  1315 + '<span class="help-block" >路段编码:' + sectionRoute.sectionCode + '</span>' +
  1316 + '<span class="help-block" >路段序号:' + sectionRoute.sectionrouteCode + '</span>' +
  1317 + '<span class="help-block" >版本号&nbsp&nbsp:' + sectionRoute.versions + '</span>' +
  1318 + '<div >';
  1319 +
  1320 + if($($("#versions").find("option:selected")[0]).attr("status") > 0){
  1321 + htm += '<button class="info_win_btn" id="editStation" onclick="RoutesOperation.editSection(' + sectionRoute.id +','+dir+ ')">修改</button>' +
  1322 + '<button class="info_win_btn" id="addBetweenStationRoad" onclick="RoutesOperation.destroySection('+ sectionRoute.id + ','+sectionRoute.line.id+','+sectionRoute.directions+')">撤销</button>' +
  1323 + '<button class="info_win_btn" id="addSectionAfter" onclick="RoutesOperation.addSectionAfter('+sectionRoute.id+')">添加路段(之后)</button>' +
  1324 + '</div>';
  1325 + }
  1326 +
  1327 + var infoWindow_target = new BMap.InfoWindow(htm, opts);
  1328 + var sectionStr = sectionRoute.section.bsectionVectorWkt.substring(11, sectionRoute.section.bsectionVectorWkt.length - 1);
  1329 + var lineArray = sectionStr.split(',');
  1330 + var sectionArray = [];
  1331 + for (var i = 0; i < lineArray.length; i++) {
  1332 + sectionArray.push(new BMap.Point(lineArray[i].split(' ')[0], lineArray[i].split(' ')[1]));
  1333 + }
  1334 + var index = parseInt(sectionArray.length / 2);
  1335 + var centerPoint = sectionArray[index];
  1336 + infoWindow_target.addEventListener('close', function (e) {
  1337 + p.setStrokeColor("red");
  1338 + road_win_show_p = null;
  1339 + });
  1340 + infoWindow_target.addEventListener('open', function (e) {
  1341 + p.setStrokeColor("#20bd26");
  1342 + road_win_show_p = p;
  1343 + });
  1344 + baiduMap.openInfoWindow(infoWindow_target, centerPoint);
  1345 + baiduMap.panTo(centerPoint);
  1346 + },
  1347 + /**
  1348 + * 绘制新增路段
  1349 + * @param section
  1350 + */
  1351 + showAddSectionPanel : function (section) {
  1352 + var point;
  1353 + if(section){
  1354 + var sectionBsectionVectorStr = section.section.bsectionVectorWkt;
  1355 + var line = sectionBsectionVectorStr.substring(11, sectionBsectionVectorStr.length - 1),
  1356 + points = line.split(','),
  1357 + pointStr = points[points.length-1].split(' ');
  1358 +
  1359 + point = new BMap.Point(pointStr[0], pointStr[1]);
  1360 + }
  1361 +
  1362 + baiduMap.centerAndZoom(point, 18);
  1363 +
  1364 + sectionDrawingManager = new BMapLib.DrawingManager(baiduMap, {
  1365 + polylineOptions: styleOptions
  1366 + });
  1367 +
  1368 + sectionDrawingManager.open();
  1369 + sectionDrawingManager.setDrawingMode('polyline');
  1370 +
  1371 + //绘制完成
  1372 + sectionDrawingManager.addEventListener('polylinecomplete', function (e) {
  1373 + sectionDrawingManager.close();
  1374 + var polyline = new BMap.Polyline(e.getPath(), {strokeWeight: 7, strokeColor: 'blue', strokeOpacity: 0.7});
  1375 + baiduMap.removeOverlay(e);
  1376 + baiduMap.addOverlay(polyline);
  1377 + polyline.enableEditing();
  1378 + editPolyline = polyline;
  1379 +
  1380 + $('#bsectionVectorInput').val(operation.points2Wkt(e.getPath()));
  1381 + });
  1382 + },
  1383 + /**
  1384 + * 点转wkt
  1385 + * @param points
  1386 + * @returns {string}
  1387 + */
  1388 + points2Wkt: function (points) {
  1389 + var wkt = new Array();
  1390 + for (var i = 0;i < points.length;i++) {
  1391 + wkt.push(points[i].lng + ' ' + points[i].lat);
  1392 + }
  1393 +
  1394 + return 'LINESTRING(' + wkt.join(',') + ')';
  1395 + },
  1396 + /**
  1397 + * 退出图形编辑
  1398 + */
  1399 + exitDrawStatus : function () {
  1400 + if (sectionDrawingManager) {
  1401 + $('#bsectionVectorInput').val("");
  1402 + operation.clearOtherOverlay();
  1403 + sectionDrawingManager.close();
  1404 + }
  1405 + },
  1406 + /**
  1407 + * 打开图形编辑
  1408 + */
  1409 + openDrawStatus : function () {
  1410 + if (sectionDrawingManager) {
  1411 + $('#bsectionVectorInput').val("");
  1412 + operation.clearOtherOverlay();
  1413 + sectionDrawingManager.open();
  1414 + }
  1415 + },
  1416 + /**
  1417 + * 清除覆盖物
  1418 + */
  1419 + clearOtherOverlay : function () {
  1420 + var all = baiduMap.getOverlays();
  1421 + for (var i = 0, obj; obj = all[i++];) {
  1422 + if (obj.ct_source && obj.ct_source == '1')
  1423 + continue;
  1424 + baiduMap.removeOverlay(obj);
  1425 + }
  1426 + },
  1427 +
  1428 + /**
  1429 + * 清除覆盖物
  1430 + */
  1431 + clearMarkAndOverlays: function () {
  1432 + // 清楚地图覆盖物
  1433 + baiduMap.clearOverlays();
  1434 + baiduMap.removeOverlay();
  1435 + sectionArray = [];
  1436 + },
  1437 + clearMark: function () {
  1438 + // 清楚地图覆盖物
  1439 + baiduMap.removeOverlay();
  1440 + },
  1441 + /**
  1442 + * 计算字符串长度
  1443 + * @param str
  1444 + * @returns {*}
  1445 + */
  1446 + strGetLength: function (str) {
  1447 + return str.replace(/[\u0391-\uFFE5]/g, "aa").length; //先把中文替换成两个字节的英文,在计算长度
  1448 + },
  1449 + /**
  1450 + * 根据坐标匹配库中的站点
  1451 + * @param stations
  1452 + * @param callback
  1453 + */
  1454 + stationsPointsToLibraryPoint : function(stations, callback) {
  1455 + $.ajax('/station/matchStation', {
  1456 + method: 'POST',
  1457 + data: JSON.stringify(stations),
  1458 + contentType: 'application/json',
  1459 + success: function (res) {
  1460 + callback && callback(res.data);
  1461 + return;
  1462 + }
  1463 + });
  1464 + },
  1465 + /** 获取距离与时间 @param <points:坐标点集合> */
  1466 + getDistanceAndDuration : function(stations,callback){
  1467 + var stationRoutes = new Array();
  1468 + stations.forEach(function (item) {
  1469 + var stationRoute = { stationName: item.stationName, station: item };
  1470 + item.distance = 0;
  1471 + item.duration = 0;
  1472 + stationRoutes.push(stationRoute);
  1473 + });
  1474 + callback(stationRoutes);
  1475 + },
  1476 +
  1477 + /**
  1478 + * 画圆
  1479 + * point(lng,lat) 中心点
  1480 + * radius 半径(m)
  1481 + * isMark 是否加站名
  1482 + */
  1483 + drawCircle: function (point, radius, stationName, isMark) {
  1484 + var center = new BMap.Point(point.lng, point.lat);
  1485 + var circle = new BMap.Circle(center, radius ,{strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5});
  1486 + baiduMap.addOverlay(circle);
  1487 + if (isMark) {
  1488 + var html = '<div style="position: absolute; margin: 0pt; padding: 0pt; width: 160px; height: 26px; left: -3px; top: -30px; overflow: hidden;">'
  1489 + + '<img class="rm3_image" style="border:none;left:0px; top:0px; position:absolute;" src="/pages/base/stationroute/css/img/back160.png">'
  1490 + + '</div>'
  1491 + + '<label class=" BMapLabel" unselectable="on" style="position: absolute; -moz-user-select: none; display: inline; cursor: inherit; border: 0px none; padding: 2px 1px 1px; white-space: nowrap; font: 12px arial,simsun; z-index: 80; color: rgb(255, 102, 0); left: 20px; top: -30px;">' + stationName + '</label>';
  1492 +
  1493 + var myRichMarker = new BMapLib.RichMarker(html, center, {
  1494 + "title": stationName,
  1495 + "anchor": new BMap.Size(-10, 8),
  1496 + "enableDragging": true
  1497 + });
  1498 + myRichMarker.disableDragging();
  1499 + myRichMarker.ct_source = '1';
  1500 + baiduMap.addOverlay(myRichMarker);
  1501 + }
  1502 + },
  1503 +
  1504 + /**
  1505 + * 画多边形
  1506 + * points 点数组
  1507 + */
  1508 + drawPolygon: function (points, stationName, isMark) {
  1509 + var bdPoints = new Array(), i = 0, point;
  1510 + for (i = 0;i < points.length;i++) {
  1511 + point = points[i].split(' ');
  1512 + bdPoints.push(new BMap.Point(point[0], point[1]));
  1513 + }
  1514 + var polygon = new BMap.Polygon(bdPoints), center = bdPoints[0];
  1515 + baiduMap.addOverlay(polygon);
  1516 + if (isMark) {
  1517 + var html = '<div style="position: absolute; margin: 0pt; padding: 0pt; width: 160px; height: 26px; left: -3px; top: -30px; overflow: hidden;">'
  1518 + + '<img class="rm3_image" style="border:none;left:0px; top:0px; position:absolute;" src="/pages/base/stationroute/css/img/back160.png">'
  1519 + + '</div>'
  1520 + + '<label class=" BMapLabel" unselectable="on" style="position: absolute; -moz-user-select: none; display: inline; cursor: inherit; border: 0px none; padding: 2px 1px 1px; white-space: nowrap; font: 12px arial,simsun; z-index: 80; color: rgb(255, 102, 0); left: 20px; top: -30px;">' + stationName + '</label>';
  1521 +
  1522 + var myRichMarker = new BMapLib.RichMarker(html, center, {
  1523 + "title": stationName,
  1524 + "anchor": new BMap.Size(-10, 8),
  1525 + "enableDragging": true
  1526 + });
  1527 + myRichMarker.disableDragging();
  1528 + myRichMarker.ct_source = '1';
  1529 + baiduMap.addOverlay(myRichMarker);
  1530 + }
  1531 + },
  1532 +
  1533 + /**
  1534 + * 画线
  1535 + * @param points
  1536 + * @param data
  1537 + * @param start
  1538 + * @param end
  1539 + */
  1540 + drawPolyLine: function (points, data, start, end) {
  1541 + var bdPoints = new Array(), i = 0, point, polyline;
  1542 + for (i = 0;i < points.length;i++) {
  1543 + point = points[i].split(' ');
  1544 + bdPoints.push(new BMap.Point(point[0], point[1]));
  1545 + }
  1546 + // 创建线路走向
  1547 + polyline = new BMap.Polyline(bdPoints, {
  1548 + strokeColor: 'red',
  1549 + strokeWeight: 6,
  1550 + strokeOpacity: 0.7
  1551 + });
  1552 +
  1553 + polyline.data = data;
  1554 + polyline.start = start;
  1555 + polyline.end = end;
  1556 + polyline.ct_source = '1';
  1557 + // 把折线添加到地图上
  1558 + baiduMap.addOverlay(polyline);
  1559 + // 聚焦事件
  1560 + polyline.addEventListener('mousemove', function (e) {
  1561 + if (this != editPolyline)
  1562 + this.setStrokeColor("#20bd26");
  1563 + });
  1564 + // 失去焦点
  1565 + polyline.addEventListener('mouseout', function (e) {
  1566 + if (this != editPolyline && this != road_win_show_p)
  1567 + this.setStrokeColor("red");
  1568 + });
  1569 + // 添加单击事件
  1570 + polyline.addEventListener('onclick', function (e) {
  1571 + // 打开信息窗口
  1572 + if (map_status != 1)
  1573 + operation.openSectionInfoWin_inout(this);
  1574 + });
  1575 + // 添加右击事件
  1576 + polyline.addEventListener('rightclick', function (e) {
  1577 + if (currentSection.enableEditing) {
  1578 + this.disableEditing();
  1579 + operation.saveSection_inout(this);
  1580 + }
  1581 + });
  1582 + sectionArray.push(polyline);
  1583 + },
  1584 +
  1585 + /**
  1586 + * 打开进出场路段信息窗口
  1587 + * @param p
  1588 + */
  1589 + openSectionInfoWin_inout: function(p) {
  1590 + var sectionRoute = p.data;
  1591 + var dir = sectionRoute.directions;
  1592 + var width = operation.strGetLength(sectionRoute.section.sectionName) * 10;
  1593 + var opts = {
  1594 + width: (width < 200 ? 200 : width),
  1595 + height: 150,
  1596 + enableMessage: false,
  1597 + enableCloseOnClick: false,
  1598 + enableAutoPan: false
  1599 + };
  1600 + var htm = '<span style="color: #ff8355;font-size: 18px;">' + sectionRoute.section.sectionName + '</span>' +
  1601 + '<span class="help-block" >路段编码:' + sectionRoute.sectionCode + '</span>' +
  1602 + '<span class="help-block" >路段序号:' + sectionRoute.sectionrouteCode + '</span>' +
  1603 + '<span class="help-block" >版本号&nbsp&nbsp:' + sectionRoute.versions + '</span>' +
  1604 + '<div >';
  1605 +
  1606 + if($($("#versions").find("option:selected")[0]).attr("status") > 0){
  1607 + htm += '<button class="info_win_btn" id="editStation" onclick="RoutesOperation.editSection_inout(' + sectionRoute.id +','+dir+ ')">修改</button>' +
  1608 + '<button class="info_win_btn" id="addBetweenStationRoad" onclick="RoutesOperation.destroySection_inout('+ sectionRoute.id + ','+sectionRoute.line.id+','+sectionRoute.directions+')">撤销</button>' +
  1609 + '<button class="info_win_btn" id="addSectionAfter" onclick="RoutesOperation.addSectionAfter_inout('+sectionRoute.id+')">添加路段(之后)</button>' +
  1610 + '</div>';
  1611 + }
  1612 +
  1613 + var infoWindow_target = new BMap.InfoWindow(htm, opts);
  1614 + var sectionStr = sectionRoute.section.bsectionVectorWkt.substring(11, sectionRoute.section.bsectionVectorWkt.length - 1);
  1615 + var lineArray = sectionStr.split(',');
  1616 + var sectionArray = [];
  1617 + for (var i = 0; i < lineArray.length; i++) {
  1618 + sectionArray.push(new BMap.Point(lineArray[i].split(' ')[0], lineArray[i].split(' ')[1]));
  1619 + }
  1620 + var index = parseInt(sectionArray.length / 2);
  1621 + var centerPoint = sectionArray[index];
  1622 + infoWindow_target.addEventListener('close', function (e) {
  1623 + p.setStrokeColor("red");
  1624 + road_win_show_p = null;
  1625 + });
  1626 + infoWindow_target.addEventListener('open', function (e) {
  1627 + p.setStrokeColor("#20bd26");
  1628 + road_win_show_p = p;
  1629 + });
  1630 + baiduMap.openInfoWindow(infoWindow_target, centerPoint);
  1631 + baiduMap.panTo(centerPoint);
  1632 + },
  1633 +
  1634 + /**
  1635 + * 进出场路段设置为编辑状态
  1636 + */
  1637 + editSection_inout: function(sectionRouteId) {
  1638 + layer.confirm('进入编辑状态', {
  1639 + btn : [ '确定','返回' ], icon: 3, title:'提示'
  1640 + }, function() {
  1641 + operation.editMapStatus(dir);
  1642 + layer.msg('双击保存路段');
  1643 + var p;
  1644 + for (var i = 0; p = sectionArray[i++];) {
  1645 + if (p.data.id == sectionRouteId) {
  1646 + baiduMap.closeInfoWindow();//关闭infoWindow
  1647 + p.enableEditing();
  1648 + p.setStrokeColor('blue');
  1649 + editPolyline = p;
  1650 + break;
  1651 + }
  1652 + }
  1653 + var sectionRoute = p.data;
  1654 + var sectionStr = sectionRoute.section.bsectionVectorWkt.substring(11, sectionRoute.section.bsectionVectorWkt.length - 1);
  1655 + var lineArray = sectionStr.split(',');
  1656 + var sectionPointArray = [];
  1657 + for (var i = 0; i < lineArray.length; i++) {
  1658 + sectionPointArray.push(new BMap.Point(lineArray[i].split(' ')[0], lineArray[i].split(' ')[1]));
  1659 + }
  1660 + var index = parseInt(sectionPointArray.length / 2);
  1661 + var centerPoint = sectionPointArray[index];
  1662 + baiduMap.centerAndZoom(centerPoint, 17);
  1663 + p.addEventListener('dblclick', function (event) {
  1664 + var polyline = event.target;
  1665 + polyline.data.section.bsectionVectorWkt = operation.polyline2Wkt(polyline)
  1666 + operation.editMapStatusRemove();
  1667 + $.get('editsection_inout.html', function(m){
  1668 + $('body').append(m);
  1669 + $('#edit_section_modal').trigger('modal.show', [polyline]);
  1670 + });
  1671 + });
  1672 + });
  1673 + },
  1674 +
  1675 + /**
  1676 + * 撤销进出场路段
  1677 + * @param sectionRouteId
  1678 + */
  1679 + destroySection_inout : function(sectionRouteId) {
  1680 + layer.confirm('你确定要撤销此路段吗?', {
  1681 + btn : [ '撤销','返回' ], icon: 3, title:'提示'
  1682 + }, function(){
  1683 + var status = $($("#versions").find("option:selected")[0]).attr("status");
  1684 + $.post('/inout/destroy',{'id': sectionRouteId, status:status},function(res) {
  1685 + if (res.status == 'SUCCESS') {
  1686 + layer.msg('撤销成功!');
  1687 + } else {
  1688 + layer.msg('撤销失败!');
  1689 + }
  1690 + // 刷新左边树
  1691 + $('#inoutSearch').click();
  1692 + });
  1693 + });
  1694 + },
  1695 +
  1696 + /**
  1697 + * 进出场 在已有路段后添加路段
  1698 + * @param sectionRouteId
  1699 + */
  1700 + addSectionAfter_inout : function(sectionRouteId) {
  1701 + //order = after before;
  1702 + var beforeSection;
  1703 + // 关闭信息窗口
  1704 + baiduMap.closeInfoWindow();
  1705 + operation.editMapStatus();
  1706 + // 把数据填充到模版中
  1707 + var addSectionHTML = template('add_draw_polyline-temp',{ 'id': sectionRouteId});
  1708 + $('body .mian-portlet-body').append(addSectionHTML);
  1709 + //暂停和开始绘制
  1710 + $('.draw_polyline_switch>a').on('click', function () {
  1711 + var t = $(this).text();
  1712 + if(t=='暂停绘制'){
  1713 + operation.exitDrawStatus();
  1714 + $(this).text('开始绘制');
  1715 + }
  1716 + else{
  1717 + operation.openDrawStatus();
  1718 + $(this).text('暂停绘制');
  1719 + }
  1720 + });
  1721 +
  1722 + //取消
  1723 + $('#addSectionCancelBtn').on('click', function () {
  1724 + $('.main_left_panel_m_layer').hide();
  1725 + $(this).parents('.buffer_edit_body').parent().remove();
  1726 + operation.exitDrawStatus();
  1727 + operation.editMapStatusRemove();
  1728 + });
  1729 + RoutesService.getRouteInfoById(sectionRouteId, function(data){
  1730 + beforeSection = data;
  1731 + beforeSection.sectionBsectionVector = beforeSection.section.bsectionVectorWkt;
  1732 + operation.showAddSectionPanel(beforeSection);
  1733 + });
  1734 +
  1735 + //确定
  1736 + $('#addSectionSbmintBtn').on('click', function () {
  1737 + var btn = this;
  1738 + $('#addSectionSbmintBtn').addClass("disabled");
  1739 + var sectionName = $('#sectionNameInput').val();
  1740 + var bsectionVector = $('#bsectionVectorInput').val();
  1741 + var sectionRoute = {};
  1742 + if(sectionName && bsectionVector) {
  1743 + operation.exitDrawStatus();
  1744 + RoutesService.getSectionCode(function(sectionCode) {
  1745 + sectionRoute['line.id'] = lineId;
  1746 + sectionRoute.sectionCode = sectionCode;
  1747 + sectionRoute.roadCoding = '';
  1748 + sectionRoute.sectionrouteCode = beforeSection.sectionrouteCode + 1;
  1749 + sectionRoute.sectionTime = 0;
  1750 + sectionRoute.sectionDistance = 0;
  1751 + sectionRoute.speedLimit = 60;
  1752 + sectionRoute.versions = versions;
  1753 + sectionRoute.destroy = 0;
  1754 + sectionRoute.directions = directions;
  1755 + sectionRoute.status = status;
  1756 + sectionRoute.start = beforeSection.start;
  1757 + sectionRoute.end = beforeSection.end;
  1758 + sectionRoute['section.id'] = sectionCode;
  1759 + sectionRoute['section.sectionCode'] = sectionCode;
  1760 + sectionRoute['section.sectionName'] = sectionName;
  1761 + sectionRoute['section.bsectionVectorWkt'] = bsectionVector;
  1762 + sectionRoute.status = status;
  1763 +
  1764 + RoutesService.inoutSectionSave(sectionRoute, function (result) {
  1765 + if(result.status == "SUCCESS"){
  1766 + $('.main_left_panel_m_layer').hide();
  1767 + $(btn).parents('.buffer_edit_body').parent().remove();
  1768 + operation.editMapStatusRemove();
  1769 + $('#inoutSearch').click();
  1770 + operation.editAChangeCssRemoveDisabled();
  1771 + layer.msg("添加成功!");
  1772 + } else if(result.status == "ERROR") {
  1773 + layer.msg("添加失败!");
  1774 + }
  1775 + });
  1776 + });
  1777 + } else if(!sectionName){
  1778 + layer.msg('请填写路段名字!');
  1779 + } else if(!bsectionVector)
  1780 + layer.msg('请先绘制路段!');
  1781 + setTimeout(function () {
  1782 + $("#addSectionSbmintBtn").removeClass("disabled");
  1783 + },1000);
  1784 + });
  1785 + },
  1786 + /**
  1787 + * 保存进出场路段
  1788 + */
  1789 + saveSection_inout: function () {
  1790 + $.get('editsection_inout.html', function(m){
  1791 + $('body').append(m);
  1792 + $('#edit_section_modal').trigger('modal.show', [currentSection]);
  1793 + });
  1794 + },
  1795 + /**
  1796 + * 添加站点时marker右键事件监听
  1797 + * 确认站点中心点
  1798 + */
  1799 + confirmCenterPointHandler: function (event) {
  1800 + // 清除覆盖物
  1801 + baiduMap.closeInfoWindow();
  1802 + baiduMap.clearOverlays();
  1803 + baiduMap.removeEventListener('click', operation.pickCenterPointHandler);
  1804 +
  1805 + var marker = event.target;
  1806 + var position = marker.getPosition(), station = marker.station;
  1807 + marker.disableDragging();
  1808 + baiduMap.addOverlay(marker);
  1809 + if (station) {
  1810 + var label = new BMap.Label(station.stationName, {offset: new BMap.Size(25, 0)});
  1811 + label.setStyle({border: '0px'});
  1812 + marker.setLabel(label);
  1813 + addStationRoute.id = station.id;
  1814 + addStationRoute.stationCode = station.stationCode;
  1815 + addStationRoute.stationName = station.stationName;
  1816 + layer.msg('已选定站点!');
  1817 + } else {
  1818 + delete addStationRoute.id;
  1819 + delete addStationRoute.stationCode;
  1820 + addStationRoute.centerPointWkt = position.lng + ' ' + position.lat;
  1821 + layer.msg('已确定中心点!');
  1822 + }
  1823 + marker.removeEventListener('rightclick', operation.confirmCenterPointHandler);
  1824 + if (addStationRoute.shapedType === 'd') {
  1825 + operation.openDrawingManager();
  1826 + operation.editMapStatus(directions);
  1827 + layer.msg('请点击选择多边形区域');
  1828 + } else {
  1829 + marker.addEventListener('dblclick', operation.formCenterPointHandler);
  1830 + layer.msg('请双击中心点图标进行下一步操作');
  1831 + }
  1832 + },
  1833 + /**
  1834 + * 确认中心点之后 填写附加字段
  1835 + */
  1836 + formCenterPointHandler: function () {
  1837 + if (setTimeoutId) {
  1838 + clearTimeout(setTimeoutId);
  1839 + }
  1840 + $.get('add_stationroute_step2.html', function(m){
  1841 + $(pjaxContainer).append(m);
  1842 + $('#add_stationroute_step2_modal').trigger('modal.show');
  1843 + });
  1844 + },
  1845 + /**
  1846 + * 添加站点前初始化
  1847 + */
  1848 + addStationInit: function () {
  1849 + addStationRoute = {};
  1850 + for (var i = 0;i < overlays.length;i++) {
  1851 + baiduMap.removeOverlay(overlays[i]);
  1852 + }
  1853 + overlays = new Array();
  1854 + },
  1855 +
  1856 + /***************************************************function*******************************************************/
  1857 + /** 初始化线路标题与ID */
  1858 + setTiteText : function(lineId) {
  1859 + // 根据线路ID获取线路名称
  1860 + RoutesService.getIdLineName(lineId,function(data) {
  1861 + // 定义线路名称
  1862 + var lineNameV = data.name;
  1863 + $('.portlet-title .caption').text(lineNameV);
  1864 + });
  1865 + },
  1866 + /** @param direction 方向 @return array */
  1867 + getCurrSelNode : function(direction){
  1868 + // 定义Obj
  1869 + var array = [];
  1870 + try {
  1871 + // 上行
  1872 + if(direction=='0'){
  1873 + // 获取上行选中节点
  1874 + array = $.jstree.reference("#station_Up_tree").get_selected(true);
  1875 + // 下行
  1876 + }else if(direction=='1'){
  1877 + // 获取下行选中节点
  1878 + array = $.jstree.reference("#station_Down_tree").get_selected(true);
  1879 + }
  1880 + } catch (e) {
  1881 + console.log(e);
  1882 + }
  1883 + // 返回Obj
  1884 + return array;
  1885 + },
  1886 + startOrEndPoint: function(points, carpark) {
  1887 + var harr = new Array, i = 0;
  1888 + for (i = 0;i < points.length;i++) {
  1889 + harr.push('<option value="', points[i].stationName, '_station">', points[i].stationName, '</option>');
  1890 + points[i].bdPoint = points[i].station.bJwpoints;
  1891 + points[i].bdPoints = points[i].station.bdPolygon;
  1892 + points[i].shapesType = points[i].station.shapesType;
  1893 + points[i].radius = points[i].station.radius;
  1894 + name2Point[points[i].stationName + '_station'] = points[i];
  1895 + }
  1896 + harr.push('<option value="', carpark.parkName, '_park">', carpark.parkName, '</option>');
  1897 + carpark.bdPoint = carpark.bCenterPoint;
  1898 + carpark.bdPoints = carpark.bParkPoint;
  1899 + carpark.stationName = carpark.parkName;
  1900 + name2Point[carpark.parkName + '_park'] = carpark;
  1901 +
  1902 + return harr.join('');
  1903 + },
  1904 + /** @param id:线路ID ;directionData:方向 */
  1905 + resjtreeDate : function(id, direction, version){
  1906 + if(!version){
  1907 + version = $("#versions").val();
  1908 + }
  1909 +
  1910 + var status = $($("#versions").find("option:selected")[0]).attr("status");
  1911 + if (direction == 3) {
  1912 + // 隐藏上行规划
  1913 + $('#upToolsMobal').hide();
  1914 + // 隐藏上行树
  1915 + $('#uptreeMobal').hide();
  1916 + // 隐藏下行规划
  1917 + $('#downToolsMobal').hide();
  1918 + // 隐藏下行树
  1919 + $('#DowntreeMobal').hide();
  1920 + //
  1921 + $('#InoutCarparktreeMobal .table-toolbar').hide();
  1922 +
  1923 + RoutesService.getStartEndByLine(id, version, function (result) {
  1924 + if (result.data) {
  1925 + $('#InoutCarparktreeMobal').show();
  1926 + var formHtml = template('inout-carpark-search-form');
  1927 + $('.inout-search').html(formHtml);
  1928 +
  1929 + $('#startPoint').html(operation.startOrEndPoint(result.data.start, result.data.carpark));
  1930 + $('#endPoint').html(operation.startOrEndPoint(result.data.end, result.data.carpark));
  1931 + $('#startPoint').on('change', function () {
  1932 + $('#InoutCarparktreeMobal .table-toolbar').hide();
  1933 + });
  1934 + $('#endPoint').on('change', function () {
  1935 + $('#InoutCarparktreeMobal .table-toolbar').hide();
  1936 + });
  1937 + $('#inoutSearch').on('click', function () {
  1938 + var start = $('#startPoint').val().split('_'), end = $('#endPoint').val().split('_');
  1939 + if (start[1] == end[1]) {
  1940 + layer.msg('进出场的站点不可能同时为站点或停车场');
  1941 + return;
  1942 + }
  1943 +
  1944 + $('#inout_carpark_tree').show();
  1945 + $('#InoutCarparktreeMobal .table-toolbar').show();
  1946 +
  1947 + RoutesService.getRouteByStartEnd(id, version, start[0], end[0], (result1) => {
  1948 + var routes = result1.data.routes, rootNode;
  1949 + operation.clearMarkAndOverlays();
  1950 + var startPoint = name2Point[start.join('_')], endPoint = name2Point[end.join('_')], point, points;
  1951 + if (startPoint.shapesType === 'r') {
  1952 + point = startPoint.bdPoint.split(' ');
  1953 + operation.drawCircle({lng : point[0], lat : point[1]}, startPoint.radius, startPoint.stationName, true);
  1954 + } else if (startPoint.shapesType === 'd') {
  1955 + points = startPoint.bdPoints;
  1956 + points = points.replace('POLYGON ((', '').replace('POLYGON((', '').replaceAll(', ', ',').replace('))', '');
  1957 + points = points.split(',')
  1958 + operation.drawPolygon(points, startPoint.stationName, true);
  1959 + }
  1960 +
  1961 + if (endPoint.shapesType === 'r') {
  1962 + point = endPoint.bdPoint.split(' ');
  1963 + operation.drawCircle({lng : point[0], lat : point[1]}, endPoint.radius, endPoint.stationName, true);
  1964 + } else if (endPoint.shapesType === 'd') {
  1965 + points = endPoint.bdPoints;
  1966 + points = points.replace('POLYGON ((', '').replace('POLYGON((', '').replaceAll(', ', ',').replace('))', '');
  1967 + points = points.split(',')
  1968 + operation.drawPolygon(points, endPoint.stationName, true);
  1969 + }
  1970 +
  1971 + rootNode = {id: -1, pId: null, name: '路段', text: '路段', icon: null, groupType: 2, container : 'pjax-container', enable : true};
  1972 + if (routes.length > 0) {
  1973 + for (var i = 0,route;i < routes.length;i++) {
  1974 + route = routes[i];
  1975 + points = route.section.bsectionVectorWkt.replace('LINESTRING(', '').replace(')', '');
  1976 + points = points.split(',');
  1977 + operation.drawPolyLine(points, route, start[0], end[0]);
  1978 + }
  1979 + rootNode.children = operation.formatSectionRoutes(routes, '-1');
  1980 + } else {
  1981 + rootNode.children = [{id: 0, pId: -1, name: '添加路段', text: '添加路段', lineId: id, lineCode: id, versions: version, dir: 3, start: start[0], end: end[0], icon: null, groupType: 3, enable : true, type: 'addSection', sectionBsectionVector: 'LINESTRING(' + startPoint.bdPoint + ')'}];
  1982 + }
  1983 + operation.inoutInit([rootNode]);
  1984 + operation.inoutreloadeTree([rootNode]);
  1985 + });
  1986 + });
  1987 + } else {
  1988 + layer.msg(result.msg);
  1989 + }
  1990 + });
  1991 + } else {
  1992 + $('#InoutCarparktreeMobal').hide();
  1993 + $('#inout_carpark_tree').hide();
  1994 + }
  1995 +
  1996 + // 获取树数据
  1997 + RoutesService.getStation(id, direction, version, function(routes) {
  1998 + // 获取数据长度
  1999 + var len = routes.stationRoutes.length;
  2000 + // 上行
  2001 + if(direction == 0){
  2002 + // 长度大于零
  2003 + if (len > 0) {
  2004 + // 隐藏上行规划
  2005 + $('#upToolsMobal').hide();
  2006 + // 显示树
  2007 + $('#uptreeMobal').show();
  2008 + // 刷新树
  2009 + operation.reloadUp(routes);
  2010 + } else {
  2011 + if (status > 0) {
  2012 + // 显示上行规划
  2013 + $('#upToolsMobal').show();
  2014 + } else {
  2015 + $('#upToolsMobal').hide();
  2016 + }
  2017 + // 隐藏上行树
  2018 + $('#uptreeMobal').hide();
  2019 + }
  2020 + } else if (direction == 1) {
  2021 + // 如果长度大于
  2022 + if(len > 0) {
  2023 + // 隐藏下行规划
  2024 + $('#downToolsMobal').hide();
  2025 + // 显示下行树
  2026 + $('#DowntreeMobal').show();
  2027 + // 跟新树
  2028 + operation.reloadDown(routes);
  2029 + } else {
  2030 + if (status > 0) {
  2031 + // 显示下行规划
  2032 + $('#downToolsMobal').show();
  2033 + } else {
  2034 + $('#downToolsMobal').hide();
  2035 + }
  2036 + // 隐藏下行树
  2037 + $('#DowntreeMobal').hide();
  2038 + }
  2039 + }
  2040 +
  2041 + operation.linePanlThree(id, routes, direction, version, function (center) {
  2042 + baiduMap.panTo(center);
  2043 + });
  2044 + });
  2045 + },
  2046 +
  2047 + /** 修正线路名称 @param:<directionUpValue:方向(0:上行;1:下行)> */
  2048 + lineNameIsHaveInterval : function(direction) {
  2049 + var lineName = $('.portlet-title .caption').text();
  2050 + if (lineName.indexOf('区间') > 0 || lineName.indexOf('定班') > 0) {
  2051 + lineName = lineName.replace('区间','').replace('定班', '');
  2052 + layer.confirm('系统无法生成该线路【'+lineName+'】的站点与路段!自动修改为如下线路名称【' + lineName + '】生成', {
  2053 + btn : [ '确认提示并提交', '取消' ]
  2054 + }, function(index) {
  2055 + layer.close(index);
  2056 + operation.systemLineStation(lineName,direction);
  2057 + },function(){
  2058 + layer.closeAll();
  2059 + if(direction==0){
  2060 + // 显示上行规划
  2061 + $('#upToolsMobal').show();
  2062 + }else if(direction==1){
  2063 + // 显示下行规划
  2064 + $('#downToolsMobal').show();
  2065 + }
  2066 + });
  2067 + } else {
  2068 + operation.systemLineStation(lineName,direction);
  2069 + }
  2070 + },
  2071 +
  2072 + locations2LinestringWkt: function (locations) {
  2073 + var wkt = new Array();
  2074 + wkt.push('LINESTRING(')
  2075 + for (var i = 0,len = locations.length;i < len;i++) {
  2076 + wkt.push(locations[i].lng);
  2077 + wkt.push(' ');
  2078 + wkt.push(locations[i].lat);
  2079 + if (i != len - 1) { wkt.push(','); }
  2080 + }
  2081 + wkt.push(')');
  2082 +
  2083 + return wkt.join('');
  2084 + },
  2085 +
  2086 + systemLineStation: function(lineName, direction) {
  2087 + operation.getBmapStationNames(lineName, direction,function(busLine){
  2088 + // 如果线路信息不为空
  2089 + if(busLine && busLine.getNumBusStations()) {
  2090 + var sectionRoutes = new Array(), stations = new Array();
  2091 + sectionRoutes.push({sectionrouteCode: 100, section: {sectionName: lineName, bsectionVectorWkt: operation.locations2LinestringWkt(busLine.getPath())}})
  2092 + var stationNumber = busLine.getNumBusStations();
  2093 + // 遍历
  2094 + for(var i = 0 ; i < stationNumber; i++) {
  2095 + var station = busLine.getBusStation(i), station1 = {stationName: station.name, centerPointWkt: 'POINT(' + station.position.lng + ' ' + station.position.lat + ')'};
  2096 + stations.push(station1);
  2097 + }
  2098 + // 获取站点之间的距离与时间
  2099 + operation.getDistanceAndDuration(stations,function(stationRoutes) {
  2100 + // 参数集合
  2101 + var params = {lineId: lineId, directions: direction, versions: versions, stationRoutes: stationRoutes, sectionRoutes: sectionRoutes};
  2102 + if (!params.versions) {
  2103 + params.versions = '1';
  2104 + }
  2105 + RoutesService.collectionSave(params,function(rd) {
  2106 + // 关闭弹出层
  2107 + layer.closeAll();
  2108 + if (rd.status == 'SUCCESS') {
  2109 + layer.msg('保存成功!');
  2110 + } else {
  2111 + layer.msg('保存失败!');
  2112 + }
  2113 + // 刷新树
  2114 + operation.resjtreeDate(lineId, direction, versions);
  2115 + });
  2116 + });
  2117 + } else {
  2118 + layer.msg('百度地图中没有此线路,无法系统规划!');
  2119 + setTimeout(function() {
  2120 + // 关闭弹出层
  2121 + layer.closeAll();
  2122 + // 上行
  2123 + if(direction==0){
  2124 + // 显示上行规划
  2125 + $('#upToolsMobal').show();
  2126 + // 下行
  2127 + }else if(direction==1){
  2128 + // 显示下行规划
  2129 + $('#downToolsMobal').show();
  2130 + }
  2131 + }, 3000);
  2132 + }
  2133 + });
  2134 + },
  2135 +
  2136 + // @弃用
  2137 + /*stationRevoke : function(directionV_) {
  2138 + // 获取树选中节点对象
  2139 + var obj = operation.getCurrSelNode(directionV_);
  2140 + // 是否选中,选中节点是否为站点
  2141 + if(obj.length == 0 || obj[0].original.chaildredType !='station'){
  2142 + // 弹出提示层
  2143 + layer.msg('请先选择要删除的站点!');
  2144 + return;
  2145 + }
  2146 + // 弹出是否撤销提示框
  2147 + layer.confirm('你确定要撤销【'+obj[0].text+'】站点吗?', {btn : [ '确定撤销','返回' ],icon: 3, title:'提示' }, function(index){
  2148 +
  2149 +
  2150 + // 站点路由ID
  2151 + var stationRouteId = obj[0].original.stationRouteId;
  2152 +
  2153 + var Line = LineObj.getLineObj();
  2154 +
  2155 + clonsole.log(Line);
  2156 +
  2157 + // 撤销参数集合
  2158 + var params = {stationRouteId:stationRouteId,destroy:'1',status:Line.status};
  2159 + // 方向
  2160 + var stationRouteDirections = obj[0].original.stationRouteDirections;
  2161 + // 撤销
  2162 + RoutesService.stationRouteIsDestroy(params,function(result) {
  2163 + // 关闭弹出框
  2164 + layer.close(index);
  2165 + if(result.status=='SUCCESS'){
  2166 + layer.msg('撤销'+(directionV_==0?"上行":"下行")+'站点【'+obj[0].text+'】成功!');
  2167 + }else{
  2168 + layer.msg('撤销'+(directionV_==0?"上行":"下行")+'站点【'+obj[0].text+'】失败!');
  2169 + }
  2170 + WorldsBMap.clearMarkAndOverlays();
  2171 +
  2172 + var ver = $("#versions").val();
  2173 +
  2174 + operation.resjtreeDate(Line.id,stationRouteDirections,ver);
  2175 + });
  2176 + });
  2177 + },*/
  2178 +
  2179 + // @弃用
  2180 + /*editLinePlan : function(direction_) {
  2181 + var sel = operation.getCurrSelNode(direction_);
  2182 + if(sel.length==0 || sel[0].original.chaildredType !='section'){
  2183 + if(direction_=='0') {
  2184 + layer.msg('请先选中要编辑的上行路段!');
  2185 + }else if(direction_=='1') {
  2186 + layer.msg('请先选中要编辑的下行路段!');
  2187 + }
  2188 + return;
  2189 + }
  2190 + $('#downLine').addClass('btn disabled');
  2191 + $('.btn-circle').addClass('disabled');
  2192 + $('#upLine').addClass('btn disabled');
  2193 + var editSectionV = sel[0].original;
  2194 + EditSectionObj.setEitdSection(editSectionV);
  2195 + // 弹出添加失败提示消息,2秒关闭(如果不配置,默认是3秒)
  2196 + var yindex = layer.msg('编辑完线路走向后,请双击线路走向区域保存',{ offset: '126px',shift: 0,time: 10000});
  2197 + WorldsBMap.editPolyUpline();
  2198 + },*/
  2199 +
  2200 + setFormValue : function(editStationRoute) {
  2201 + $('#edit_stationroute_form input,select,textarea').each(function () {
  2202 + if (this.name) {
  2203 + $(this).val(eval('editStationRoute.' + this.name));
  2204 + if ('shapedType' === this.name) {
  2205 + $(this).val(editStationRoute.shapedType == 'r' ? '圆形' : '多边形')
  2206 + }
  2207 + if ('radius' === this.name) {
  2208 + $(this).val(editStationRoute.radius ? editStationRoute.radius : 80);
  2209 + }
  2210 + }
  2211 + })
  2212 + },
  2213 +
  2214 + setSectionFormValue : function(sectionRoute) {
  2215 + $('#edit_sectionroute_form input').each(function() {
  2216 + if (this.name) {
  2217 + $(this).val(eval('sectionRoute.' + this.name));
  2218 + }
  2219 + });
  2220 + },
  2221 +
  2222 + /** 在地图上画出线路走向 @param:<Line.id:线路Id;0:上行;data:路段数据> */
  2223 + linePanlThree : function(lineId, routes, direction, version, callback) {
  2224 + operation.clearMarkAndOverlays();
  2225 + var i = 0, center;
  2226 + if (routes.stationRoutes.length > 0) {
  2227 + var centerPointWkt = routes.stationRoutes[0].station.centerPointWkt;
  2228 + centerPointWkt = centerPointWkt.substring(6, centerPointWkt.length - 1);
  2229 + var coordinates = centerPointWkt.split(' ');
  2230 + center = new BMap.Point(coordinates[0], coordinates[1]);
  2231 + for (;i < routes.stationRoutes.length;i++) {
  2232 + operation.drawingUpStationPoint(routes.stationRoutes[i], i + 1);
  2233 + }
  2234 + }
  2235 + if (routes.sectionRoutes.length > 0) {
  2236 + operation.drawingUpline01(routes.sectionRoutes);
  2237 + }
  2238 +
  2239 + callback && center && callback(center);
  2240 + },
  2241 +
  2242 + /** 加载树 @param:<lineId:线路ID;direction:方向(0:上行;1:下行)> */
  2243 + TreeUpOrDown : function(lineId,direction,version) {
  2244 + /** 获取树结果数据 @param:<lineId:线路ID;direction:方向;callback:回调函数> */
  2245 + RoutesService.getStation(lineId,direction,version,function(result) {
  2246 + var len = result.stationRoutes.length;
  2247 + if(direction == 0) {
  2248 + operation.upInit(result);
  2249 + if(len>0) {
  2250 + $('#upToolsMobal').hide();
  2251 + $('#uptreeMobal').show();
  2252 + }else {
  2253 + $('#upToolsMobal').show();
  2254 + $('#uptreeMobal').hide();
  2255 + }
  2256 +
  2257 + operation.linePanlThree(lineId, result, direction, version, function (center) {
  2258 + baiduMap.panTo(center);
  2259 + });
  2260 + }else if(direction ==1) {
  2261 + operation.downInit(result);
  2262 + if(len>0) {
  2263 + $('#downToolsMobal').hide();
  2264 + $('#DowntreeMobal').show();
  2265 + }else {
  2266 + $('#downToolsMobal').show();
  2267 + $('#DowntreeMobal').hide();
  2268 + }
  2269 + }
  2270 + });
  2271 + },
  2272 +
  2273 + isHaveStationName : function(data) {
  2274 + if(data.length>0) {
  2275 + layer.confirm('系统已存在【'+ data[0].stationName +'】该站点位置名称,请选择【系统引用】或者更改站点名称进行新增!', {btn : [ '返回' ],icon: 3, title:'提示' }, function(index){
  2276 + layer.close(index);
  2277 + });
  2278 + return false;
  2279 + }else {
  2280 + return true;
  2281 + }
  2282 + },
  2283 +
  2284 + // 地图处于编辑状态
  2285 + editMapStatus : function (dir) {
  2286 + operation.setMap_status(1);
  2287 + // 有方向就显示退出编辑模式按钮
  2288 + if (dir != null && dir != 'null') {
  2289 + $('#esc_edit_div').show();
  2290 + }
  2291 + $('.protlet-box-layer').show();
  2292 + },
  2293 +
  2294 + // 地图处于编辑状态
  2295 + editMapStatusRemove : function () {
  2296 + operation.setMap_status(0);
  2297 + $('.protlet-box-layer').hide();
  2298 + $('#esc_edit_div').hide();
  2299 + // 退出绘画模式
  2300 + operation.exitDrawStatus();
  2301 + },
  2302 +
  2303 + // 选项鎖死解除
  2304 + editAChangeCssRemoveDisabled : function() {
  2305 + $('#downLine').removeClass('btn disabled');
  2306 + $('.btn-circle').removeClass('disabled');
  2307 + $('#upLine').removeClass('btn disabled');
  2308 + },
  2309 +
  2310 + // 方向代码转名称.
  2311 + dirdmToName : function(value){
  2312 + var srStr = '';
  2313 + if(value=='0')
  2314 + srStr = '上行';
  2315 + else if(value=='1')
  2316 + srStr = '下行';
  2317 + return srStr;
  2318 + },
  2319 +
  2320 + /***************************************************drawingmanager*******************************************************/
  2321 + initStationDrawingManager: function() {
  2322 + stationDrawingManager = new BMapLib.DrawingManager(baiduMap, {
  2323 + //是否开启绘制模式
  2324 + isOpen : false,
  2325 + //是否显示工具栏
  2326 + enableDrawingTool : false,
  2327 + drawingToolOptions : {
  2328 + //位置
  2329 + anchor : BMAP_ANCHOR_TOP_RIGHT,
  2330 + //偏离值
  2331 + offset : new BMap.Size(5, 5),
  2332 + //工具栏缩放比例
  2333 + scale : 0.8
  2334 + },
  2335 + //线的样式
  2336 + polygonOptions : styleOptions
  2337 + });
  2338 +
  2339 + // 添加绘画完成事件
  2340 + stationDrawingManager.addEventListener('polygoncomplete', function(polygon) {
  2341 + stationDrawingManager.close();
  2342 + var points = polygon.getPath();
  2343 + if (points.length < 3) {
  2344 + layer.msg('坐标点不能小于三个,请点击"退出编辑"后重新修改');
  2345 + baiduMap.removeOverlay(polygon);
  2346 +
  2347 + return false;
  2348 + } else {
  2349 + var bufferPolygonWkt = new Array();
  2350 + for(var i = 0;i < points.length;i++) {
  2351 + bufferPolygonWkt.push(points[i].lng + ' ' + points[i].lat)
  2352 + }
  2353 + bufferPolygonWkt.push(points[0].lng + ' ' + points[0].lat)
  2354 + if(!$.isEmptyObject(addStationRoute)){
  2355 + addStationRoute.shapedType = 'd';
  2356 + addStationRoute.radius = 0;
  2357 + addStationRoute.bufferPolygonWkt = bufferPolygonWkt.join(',');
  2358 +
  2359 + $.get('add_stationroute_step2.html', function (m) {
  2360 + $(pjaxContainer).append(m);
  2361 + $('#add_stationroute_step2_modal').trigger('modal.show');
  2362 + });
  2363 + }
  2364 +
  2365 + if(!$.isEmptyObject(editStationRoute)){
  2366 + editStationRoute.shapedType = 'd';
  2367 + editStationRoute.radius = 0;
  2368 + editStationRoute.bufferPolygonWkt = bufferPolygonWkt.join(',');
  2369 +
  2370 + $.get('edit_stationroute_step2.html', function(m){
  2371 + $(pjaxContainer).append(m);
  2372 + $('#edit_stationroute_step2_modal').trigger('modal.show');
  2373 + });
  2374 + }
  2375 + }
  2376 + });
  2377 +
  2378 + return stationDrawingManager;
  2379 + },
  2380 +
  2381 + openDrawingManager : function() {
  2382 + stationDrawingManager.open();
  2383 + stationDrawingManager.setDrawingMode(BMAP_DRAWING_POLYGON);
  2384 + },
  2385 +
  2386 + closeDrawingManager : function() {
  2387 + stationDrawingManager.close();
  2388 + },
  2389 +
  2390 + /***************************************************treedata*******************************************************/
  2391 + TreeOnclickEvent: function (nodes) {
  2392 + if(nodes == null || nodes.length < 1) {
  2393 + return;
  2394 + }
  2395 +
  2396 + var original = nodes[0].original, type = original.type;
  2397 +
  2398 + if (type == "section") {
  2399 + operation.focusSection(original.cdata.id);
  2400 + } else if(type == "station") {
  2401 + operation.openStationRouteInfoWin(original.cdata);
  2402 + } else if(type == "addSection") {
  2403 + operation.addSection(original);
  2404 + }
  2405 + },
  2406 + format: function(routes) {
  2407 + var sectionRoutes = operation.formatSectionRoutes(routes.sectionRoutes, 'section-routes');
  2408 + if (sectionRoutes.length == 0) {
  2409 + sectionRoutes = [{id: 0, pId: -1, name: '添加路段', text: '添加路段', groupType: 3, enable : true, type: 'addSection'}];
  2410 + }
  2411 + return {
  2412 + groupType: 1,
  2413 + enable: true,
  2414 + name: '站点与路段',
  2415 + id: 'root',
  2416 + text: '站点与路段',
  2417 + children: [{
  2418 + groupType: 2,
  2419 + enable: true,
  2420 + name: '站点',
  2421 + id: 'station-routes',
  2422 + pid: 'root',
  2423 + text: '站点',
  2424 + children: operation.formatStationRoutes(routes.stationRoutes, 'station-routes')
  2425 + }, {
  2426 + groupType: 2,
  2427 + enable: true,
  2428 + name: '路段',
  2429 + id: 'section-routes',
  2430 + pid: 'root',
  2431 + text: '路段',
  2432 + children: sectionRoutes
  2433 + }]};
  2434 + },
  2435 + formatStationRoutes: function(stationRoutes, pid) {
  2436 + var result = new Array(), i = 0;
  2437 + for (;i < stationRoutes.length;i++) {
  2438 + var stationRoute = stationRoutes[i];
  2439 + result.push({
  2440 + groupType: 3,
  2441 + enable: true,
  2442 + id: stationRoute.id,
  2443 + pid: pid,
  2444 + text: stationRoute.stationName,
  2445 + type: 'station',
  2446 + cdata: stationRoute
  2447 + })
  2448 + }
  2449 +
  2450 + return result;
  2451 + },
  2452 + formatSectionRoutes: function(sectionRoutes, pid) {
  2453 + var result = new Array(), i = 0;
  2454 + for (;i < sectionRoutes.length;i++) {
  2455 + var sectionRoute = sectionRoutes[i];
  2456 + result.push({
  2457 + groupType: 3,
  2458 + enable: true,
  2459 + id: sectionRoute.id,
  2460 + pid: pid,
  2461 + text: sectionRoute.section.sectionName,
  2462 + type: 'section',
  2463 + cdata: sectionRoute
  2464 + })
  2465 + }
  2466 +
  2467 + return result;
  2468 + },
  2469 + upInit: function(routes) {
  2470 + if(routes) {
  2471 + $('#station_Up_tree').on('loaded.jstree', function(e, data){
  2472 + $.jstree.reference("#station_Up_tree").open_all();
  2473 + }).jstree({
  2474 + 'core' : {
  2475 + 'themes' : {
  2476 + 'responsive': false
  2477 + },
  2478 + 'data': operation.format(routes),
  2479 + 'multiple':false
  2480 + },
  2481 + 'types' : {
  2482 + "default" : {
  2483 + "icon" : false
  2484 + },
  2485 + 'enable_true' : {
  2486 + "icon" : 'fa fa-check icon-lg'
  2487 + },
  2488 + 'enable_false' : {
  2489 + 'icon' : 'fa fa-close icon-lg'
  2490 + },
  2491 + 'group':{
  2492 + 'icon' : 'fa fa-object-group icon-lg'
  2493 + }
  2494 + },
  2495 + 'plugins': ['types']
  2496 + }).bind('click.jstree', function(event) {
  2497 + var nodes = $.jstree.reference("#station_Up_tree").get_selected(true);
  2498 + operation.TreeOnclickEvent(nodes);
  2499 + });
  2500 + }
  2501 + },
  2502 + downInit: function(routes) {
  2503 + if(routes) {
  2504 + $('#station_Down_tree').on('loaded.jstree', function(e, data){
  2505 + $.jstree.reference("#station_Down_tree").open_all();
  2506 + }).jstree({
  2507 + 'core' : {
  2508 + 'themes' : {
  2509 + 'responsive': false
  2510 + },
  2511 + 'data': this.format(routes),
  2512 + 'multiple':false
  2513 + },
  2514 + 'types' : {
  2515 + "default" : {
  2516 + "icon" : false
  2517 + },
  2518 + 'enable_true' : {
  2519 + "icon" : 'fa fa-check icon-lg'
  2520 + },
  2521 + 'enable_false' : {
  2522 + 'icon' : 'fa fa-close icon-lg'
  2523 + },
  2524 + 'group':{
  2525 + 'icon' : 'fa fa-object-group icon-lg'
  2526 + }
  2527 + },
  2528 + 'plugins': ['types']
  2529 + }).bind('click.jstree', function(event) {
  2530 + var treeOjb = $.jstree.reference("#station_Down_tree").get_selected(true);
  2531 + operation.TreeOnclickEvent(treeOjb);
  2532 + });
  2533 + }
  2534 + },
  2535 + inoutInit : function(treeDateJson) {
  2536 + if(treeDateJson) {
  2537 + $('#inout_carpark_tree').on('loaded.jstree', function(e, data){
  2538 + $.jstree.reference("#inout_carpark_tree").open_all();
  2539 + }).jstree({
  2540 + 'core' : {
  2541 + 'themes' : {
  2542 + 'responsive': false
  2543 + },
  2544 + 'data': treeDateJson,
  2545 + 'multiple':false
  2546 + },
  2547 + 'types' : {
  2548 + "default" : {
  2549 + "icon" : false
  2550 + },
  2551 + 'enable_true' : {
  2552 + "icon" : 'fa fa-check icon-lg'
  2553 + },
  2554 + 'enable_false' : {
  2555 + 'icon' : 'fa fa-close icon-lg'
  2556 + },
  2557 + 'group':{
  2558 + 'icon' : 'fa fa-object-group icon-lg'
  2559 + }
  2560 + },
  2561 + 'plugins': ['types']
  2562 + }).bind('click.jstree', function(event) {
  2563 + var treeOjb = $.jstree.reference("#inout_carpark_tree").get_selected(true);
  2564 + operation.TreeOnclickEvent(treeOjb);
  2565 + });
  2566 + }
  2567 + },
  2568 + reloadUp : function (routes) {
  2569 + // 获取上行树
  2570 + var tree = $.jstree.reference('#station_Up_tree');
  2571 + // 赋值数据
  2572 + tree.settings.core.data = this.format(routes);
  2573 + // 刷新上行树
  2574 + tree.refresh();
  2575 + // 展开树
  2576 + setTimeout(function () {
  2577 + tree.open_all();
  2578 + },500);
  2579 + },
  2580 + reloadDown : function (routes) {
  2581 + // 获取下行树
  2582 + var tree = $.jstree.reference('#station_Down_tree');
  2583 + // 赋值数据
  2584 + tree.settings.core.data = this.format(routes);
  2585 + // 刷行下行树
  2586 + tree.refresh();
  2587 + // 展开树
  2588 + setTimeout(function () {
  2589 + tree.open_all();
  2590 + },500);
  2591 + },
  2592 + inoutreloadeTree : function (treeDateJson) {
  2593 + // 获取下行树
  2594 + var tree = $.jstree.reference('#inout_carpark_tree');
  2595 + // 赋值数据
  2596 + tree.settings.core.data = treeDateJson;
  2597 + // 刷行下行树
  2598 + tree.refresh();
  2599 + // 展开树
  2600 + setTimeout(function () {
  2601 + tree.open_all();
  2602 + },500);
  2603 + }
  2604 + }
  2605 +
  2606 + return operation;
  2607 +})()
  2608 +
  2609 +proxy.emit('routes-operation-loaded');
... ...
src/main/resources/static/pages/base/stationroute/js/routes-service.js 0 → 100644
  1 +var RoutesService = (function(){
  2 +
  3 + var service = {
  4 + /**
  5 + * 系统规划保存
  6 + * @param params
  7 + * @param cb
  8 + */
  9 + collectionSave: function (params, cb) {
  10 + $.ajax('/api/lsstationroute/addRoutes', {
  11 + method: 'POST',
  12 + data: JSON.stringify(params),
  13 + contentType: 'application/json',
  14 + success: function (res) {
  15 + cb && cb(res);
  16 + }
  17 + });
  18 + },
  19 +
  20 + /**
  21 + * 获取站点和路段路由信息
  22 + * @param id_
  23 + * @param dir_
  24 + * @param version
  25 + * @param callback
  26 + */
  27 + getStation: function(id_,dir_,version,callback) {
  28 + $get('/stationroute/findStations', {'line.id_eq': id_ , 'directions_eq': dir_, 'versions_eq': version}, function(result) {
  29 + callback && callback(result);
  30 + });
  31 + },
  32 +
  33 + /**
  34 + * 获取站点路由信息
  35 + * @param params
  36 + * @param callback
  37 + */
  38 + getzdlyInfo: function(params,callback) {
  39 + $get('/api/lsstationroute/findAllByParams', params, function(result) {
  40 + callback && callback(result);
  41 + });
  42 + },
  43 +
  44 + /**
  45 + * 按线路和方向查询所有站点的信息 用于调整上一站
  46 + * @param id_
  47 + * @param dir_
  48 + * @param version
  49 + * @param callback
  50 + */
  51 + getStationRoutePoint: function(id_,dir_,version,callback) {
  52 + $get('/stationroute/getStationRouteList',{'line.id_eq': id_, directions_eq: dir_, versions_eq:version},function(result) {
  53 + callback && callback(result);
  54 + });
  55 + },
  56 +
  57 + /**
  58 + * 查询是否有已存在站点名称
  59 + * @param stationName
  60 + * @param callback
  61 + */
  62 + getLikeStationName: function (stationName,callback) {
  63 + $get('/station/all', {stationName_eq: stationName}, function(array){
  64 + callback && callback(array);
  65 + });
  66 + },
  67 +
  68 + /**
  69 + * 获取最新站点ID
  70 + * @param callback
  71 + */
  72 + getStationCode: function(callback) {
  73 + $get('/station/findStationCode',null,function(stationCode) {
  74 + if(stationCode>0) {
  75 + callback && callback(stationCode);
  76 + }
  77 + });
  78 + },
  79 +
  80 + /**
  81 + * 获取最新路段ID
  82 + * @param callback
  83 + */
  84 + getSectionCode: function(callback) {
  85 + $get('/section/getSectionCode',null,function(sectionCode) {
  86 + callback && callback(sectionCode);
  87 + });
  88 + },
  89 +
  90 + /**
  91 + * 获取所有线路版本信息
  92 + * @param lineId
  93 + * @param callback
  94 + */
  95 + getAllLineVersions:function(lineId,callback){
  96 + $get('/lineVersions/findAllHistroyLineVersionsById',{lineId:lineId},function(result) {
  97 + callback && callback(result);
  98 + });
  99 + },
  100 +
  101 + /**
  102 + *
  103 + * @param lineId
  104 + * @param direction
  105 + * @param stationRouteCode
  106 + * @param callback
  107 + */
  108 + findUpStationRouteCode : function(lineId, direction, stationRouteCode, callback) {
  109 + $get('/stationroute/findUpStationRouteCode',{lineId: lineId, direction: direction, stationRouteCode: stationRouteCode},function(result) {
  110 + callback && callback(result);
  111 + });
  112 + },
  113 +
  114 + /**
  115 + *
  116 + * @param lineId
  117 + * @param diraction
  118 + * @param sectionRouteCode
  119 + * @param version
  120 + * @param callback
  121 + */
  122 + findUpSectionRouteCode : function(lineId,diraction,sectionRouteCode,version,callback) {
  123 + $get('/sectionroute/findUpSectionRouteCode',{lineId:lineId,direction:diraction,sectionRouteCode:sectionRouteCode,versions:version},function(result) {
  124 + callback && callback(result);
  125 + });
  126 + },
  127 +
  128 + /**
  129 + * 新增站点路由
  130 + * @param stationRoute
  131 + * @param callback
  132 + */
  133 + addStationRoute : function(stationRoute, callback) {
  134 + $post('/api/lsstationroute/add', stationRoute, function(data) {
  135 + callback && callback(data);
  136 + });
  137 + },
  138 +
  139 + /**
  140 + * 站点路由更新
  141 + * @param stationRoute
  142 + * @param callback
  143 + */
  144 + modifyStationRoute : function(stationRoute, callback) {
  145 + $post('/api/lsstationroute/modify', stationRoute, function(data) {
  146 + callback && callback(data);
  147 + });
  148 + },
  149 +
  150 + /**
  151 + * 撤销站点
  152 + * @param stationRoute
  153 + * @param callback
  154 + */
  155 + stationRouteIsDestroy : function(stationRoute,callback) {
  156 + $post('/stationroute/stationRouteIsDestroy',stationRoute,function(data) {
  157 + callback && callback(data);
  158 + })
  159 +
  160 + },
  161 +
  162 + /**
  163 + * 编辑线路走向保存
  164 + * @param section
  165 + * @param callback
  166 + */
  167 + sectionUpdate:function(section, callback) {
  168 + $post('/api/lssectionroute/modify', section, function(data) {
  169 + callback && callback(data);
  170 + })
  171 + },
  172 +
  173 + /**
  174 + * 生成线路走向
  175 + * @param section
  176 + * @param callback
  177 + */
  178 + sectionSave:function(section, callback){
  179 + $post('/api/lssectionroute/add',section,function(data) {
  180 + callback && callback(data);
  181 + })
  182 + },
  183 +
  184 + /**
  185 + * 获取线路名称
  186 + * @param id
  187 + * @param callback
  188 + */
  189 + getIdLineName : function (id,callback) {
  190 + $get('/line/' + id ,null, function(result){
  191 + callback && callback(result);
  192 + });
  193 + },
  194 +
  195 + /**
  196 + * 查询站点信息
  197 + * @param lineId
  198 + * @param direction
  199 + * @param callback
  200 + */
  201 + getStationRouteInfo : function(lineId,direction,callback) {
  202 + $get('/stationroute/all',{'line.id_eq' : lineId , 'directions_eq' : direction},function(resultdata) {
  203 + callback && callback(resultdata);
  204 + });
  205 + },
  206 +
  207 + /**
  208 + * 查询路段信息
  209 + * @param lineId
  210 + * @param direction
  211 + * @param version
  212 + * @param callback
  213 + */
  214 + getSectionRouteInfo : function(lineId, direction, version, callback) {
  215 + $get('/api/lssectionroute/findAll',{'line.id_eq': lineId , 'directions_eq': direction, 'versions_eq': version, 'destroy_eq': 0},function(sectionRoutes) {
  216 + callback && callback(sectionRoutes);
  217 + });
  218 + },
  219 +
  220 + /**
  221 + * 根据ID查询路段信息
  222 + * @param sectionRouteId
  223 + * @param callback
  224 + */
  225 + getSectionRouteInfoById : function(sectionRouteId, callback){
  226 + $get('/api/lssectionroute/' + sectionRouteId, {}, function(r) {
  227 + return callback && callback(r);
  228 + });
  229 + },
  230 +
  231 + /**
  232 + * 手动规划线路保存
  233 + * @param params
  234 + * @param cb
  235 + */
  236 + manualSave : function(params, cb) {
  237 + $.ajax('/api/lsstationroute/addRoutes', {
  238 + method: 'POST',
  239 + data: JSON.stringify(params),
  240 + contentType: 'application/json',
  241 + success: function (res) {
  242 + cb && cb(res);
  243 + }
  244 + });
  245 + },
  246 +
  247 + /**
  248 + * 编辑线路走向保存
  249 + * @param section
  250 + * @param callback
  251 + */
  252 + inoutSectionUpdate:function(section,callback) {
  253 + $post('/inout/sectionUpdate',section,function(data) {
  254 + callback && callback(data);
  255 + })
  256 + },
  257 +
  258 + /**
  259 + * 生成线路走向
  260 + * @param section
  261 + * @param callback
  262 + */
  263 + inoutSectionSave:function(section,callback){
  264 + $post('/inout/sectionSave',section,function(data) {
  265 + callback && callback(data);
  266 + })
  267 + },
  268 +
  269 + /**
  270 + * 根据线路查找进出场的起终点信息
  271 + * @param lineId
  272 + * @param version
  273 + * @param cb
  274 + */
  275 + getStartEndByLine: function (lineId, version, cb) {
  276 + $get('/inout/getStartEndByLine', {lineId : lineId, version : version}, function (r) {
  277 + return cb && cb(r);
  278 + });
  279 + },
  280 +
  281 + /**
  282 + * 根据起终点查找对应的路段信息
  283 + * @param lineId
  284 + * @param version
  285 + * @param start
  286 + * @param end
  287 + * @param cb
  288 + */
  289 + getRouteByStartEnd: function (lineId, version, start, end, cb) {
  290 + $get('/inout/getRouteByStartEnd', {lineId : lineId, version : version, start : start, end : end}, function (r) {
  291 + return cb && cb(r);
  292 + });
  293 + },
  294 +
  295 + /**
  296 + * 根据ID查询路段信息
  297 + * @param sectionRouteId
  298 + * @param callback
  299 + */
  300 + getRouteInfoById : function(sectionRouteId,callback){
  301 + $get('/inout/' + sectionRouteId,{},function(r) {
  302 + return callback && callback(r);
  303 + });
  304 + },
  305 +
  306 + /**
  307 + *
  308 + * @param stationName
  309 + * @param cb
  310 + */
  311 + findStationByName: function(stationName, cb) {
  312 + $get('/station/findStationByName', {stationName: stationName}, function(stations) {
  313 + cb && cb(stations);
  314 + });
  315 + },
  316 +
  317 + /**
  318 + *
  319 + * @param sectionName
  320 + * @param cb
  321 + */
  322 + findSectionByName: function(sectionName, cb) {
  323 + $get('/section/findSectionByName', {sectionName: sectionName}, function(res) {
  324 + cb && cb(res.data);
  325 + });
  326 + },
  327 +
  328 + /**
  329 + *
  330 + * @param lineId
  331 + * @param version
  332 + * @param callback
  333 + */
  334 + circularRouteHandle: function (lineId, version, callback) {
  335 + $post('/api/lsstationroute/circularRouteHandle', {lineId: lineId, version: version}, function() {
  336 + callback && callback();
  337 + });
  338 + }
  339 + };
  340 +
  341 + return service;
  342 +})();
  343 +
  344 +proxy.emit('routes-service-loaded');
0 345 \ No newline at end of file
... ...
src/main/resources/static/pages/base/stationroute/js/stationroute-ajax-getdata.js deleted 100644 → 0
1   -/**
2   - * GetAjaxData :ajax异步请求
3   - *
4   - * - - - - - -》 collectionSave :系统规划保存请求
5   - *
6   - * - - - - - -》 getStation :树数据获取
7   - *
8   - * - - - - - -》 getStationRoutePoint :查询线路某方向下所有站点的中心百度坐标
9   - *
10   - * - - - - - -》 getLikeStationName :查询是否有已存在站点名称
11   - *
12   - * - - - - - -》 getStationCode:查询站点编码
13   - *
14   - * - - - - - -》 addStationRoute:新增站点保存
15   - *
16   - * - - - - - -》 modifyStationRoute:站点更新
17   - *
18   - * - - - - - -》 stationRouteIsDestroy:撤销站点
19   - *
20   - * - - - - - -》 sectionUpdate : 编辑线路走向保存
21   - *
22   - * - - - - - -》 sectionSave : 生成线路走向
23   - *
24   - * - - - - - -》 getIdLineName:获取线路名称
25   - *
26   - * - - - - - -》 getSectionRouteInfo:查询路段信息
27   - */
28   -
29   -var GetAjaxData = function(){
30   -
31   - var ajaxData = {
32   - // 系统规划保存请求
33   - collectionSave : function (params, cb) {
34   - $.ajax('/api/lsstationroute/addRoutes', {
35   - method: 'POST',
36   - data: JSON.stringify(params),
37   - contentType: 'application/json',
38   - success: function (res) {
39   - cb && cb(res);
40   - }
41   - });
42   - },
43   -
44   - // 树数据获取
45   - getStation : function(id_,dir_,version,callback) {
46   - $get('/stationroute/findStations', {'line.id_eq': id_ , 'directions_eq': dir_, 'versions_eq': version}, function(result) {
47   - callback && callback(result);
48   - });
49   - },
50   - getzdlyInfo : function(params,callback) {
51   - $get('/api/lsstationroute/findAllByParams',params,function(result) {
52   - callback && callback(result);
53   - });
54   - },
55   - // 查询线路某方向下所有站点的中心百度坐标
56   - getStationRoutePoint : function(id_,dir_,version,callback) {
57   - $get('/stationroute/getStationRouteList',{'line.id_eq': id_, directions_eq: dir_, versions_eq:version},function(result) {
58   - callback && callback(result);
59   - });
60   - },
61   -
62   - // 查询是否有已存在站点名称
63   - getLikeStationName : function (stationName,callback) {
64   - $get('/station/all', {stationName_eq: stationName}, function(array){
65   - callback && callback(array);
66   - });
67   - },
68   -
69   - // 查询站点编码
70   - getStationCode : function(callback) {
71   - $get('/station/findStationCode',null,function(stationCode) {
72   - if(stationCode>0) {
73   - callback && callback(stationCode);
74   - }
75   - });
76   - },
77   - // 查询路段编码
78   - getSectionCode : function(callback) {
79   - $get('/section/getSectionCode',null,function(sectionCode) {
80   - callback && callback(sectionCode);
81   - });
82   - },
83   - getAllLineVersions:function(lineId,callback){
84   - $get('/lineVersions/findAllHistroyLineVersionsById',{lineId:lineId},function(result) {
85   - callback && callback(result);
86   - });
87   - },
88   - findUpStationRouteCode : function(lineId, direction, stationRouteCode, callback) {
89   - $get('/stationroute/findUpStationRouteCode',{lineId: lineId, direction: direction, stationRouteCode: stationRouteCode},function(result) {
90   - callback && callback(result);
91   - });
92   - },
93   - findUpSectionRouteCode : function(lineId,diraction,sectionRouteCode,version,callback) {
94   - $get('/sectionroute/findUpSectionRouteCode',{lineId:lineId,direction:diraction,sectionRouteCode:sectionRouteCode,versions:version},function(result) {
95   - callback && callback(result);
96   - });
97   - },
98   - // 新增站点路由
99   - addStationRoute : function(stationRoute, callback) {
100   - $post('/api/lsstationroute/add', stationRoute, function(data) {
101   - callback && callback(data);
102   - });
103   - },
104   - // 站点路由更新
105   - modifyStationRoute : function(stationRoute, callback) {
106   - $post('/api/lsstationroute/modify', stationRoute, function(data) {
107   - callback && callback(data);
108   - });
109   - },
110   -
111   - // 撤销站点
112   - stationRouteIsDestroy : function(stationRoute,callback) {
113   - $post('/stationroute/stationRouteIsDestroy',stationRoute,function(data) {
114   - callback && callback(data);
115   - })
116   -
117   - },
118   -
119   - // 编辑线路走向保存
120   - sectionUpdate:function(section, callback) {
121   - $post('/api/lssectionroute/modify', section, function(data) {
122   - callback && callback(data);
123   - })
124   - },
125   -
126   - // 生成线路走向
127   - sectionSave:function(section, callback){
128   - $post('/api/lssectionroute/add',section,function(data) {
129   - callback && callback(data);
130   - })
131   - },
132   -
133   - // 获取线路名称
134   - getIdLineName : function (id,callback) {
135   - $get('/line/' + id ,null, function(result){
136   - callback && callback(result);
137   - });
138   - },
139   -
140   - // 查询站点信息
141   - getStationRouteInfo : function(lineId,direction,callback) {
142   - $get('/stationroute/all',{'line.id_eq' : lineId , 'directions_eq' : direction},function(resultdata) {
143   - callback && callback(resultdata);
144   - });
145   - },
146   -
147   - // 查询路段信息
148   - getSectionRouteInfo : function(lineId, direction, version, callback) {
149   - $get('/api/lssectionroute/findAll',{'line.id_eq': lineId , 'directions_eq': direction, 'versions_eq': version, 'destroy_eq': 0},function(sectionRoutes) {
150   - callback && callback(sectionRoutes);
151   - });
152   - },
153   - // 根据ID查询路段信息.
154   - getSectionRouteInfoById : function(sectionRouteId, callback){
155   - $get('/api/lssectionroute/' + sectionRouteId, {}, function(r) {
156   - return callback && callback(r);
157   - });
158   - },
159   -
160   - // 手动规划线路保存
161   - manualSave : function(params, cb) {
162   - $.ajax('/api/lsstationroute/addRoutes', {
163   - method: 'POST',
164   - data: JSON.stringify(params),
165   - contentType: 'application/json',
166   - success: function (res) {
167   - cb && cb(res);
168   - }
169   - });
170   - },
171   -
172   - // 编辑线路走向保存
173   - inoutSectionUpdate:function(section,callback) {
174   - $post('/inout/sectionUpdate',section,function(data) {
175   - callback && callback(data);
176   - })
177   - },
178   -
179   - // 生成线路走向
180   - inoutSectionSave:function(section,callback){
181   - $post('/inout/sectionSave',section,function(data) {
182   - callback && callback(data);
183   - })
184   - },
185   -
186   - // 根据线路查找进出场的起终点信息
187   - getStartEndByLine: function (lineId, version, cb) {
188   - $get('/inout/getStartEndByLine', {lineId : lineId, version : version}, function (r) {
189   - return cb && cb(r);
190   - });
191   - },
192   -
193   - // 根据起终点查找对应的路段信息
194   - getRouteByStartEnd: function (lineId, version, start, end, cb) {
195   - $get('/inout/getRouteByStartEnd', {lineId : lineId, version : version, start : start, end : end}, function (r) {
196   - return cb && cb(r);
197   - });
198   - },
199   -
200   - // 根据ID查询路段信息.
201   - getRouteInfoById : function(sectionRouteId,callback){
202   - $get('/inout/' + sectionRouteId,{},function(r) {
203   - return callback && callback(r);
204   - });
205   - },
206   -
207   - findStationByName: function(stationName, cb) {
208   - $get('/station/findStationByName', {stationName: stationName}, function(stations) {
209   - cb && cb(stations);
210   - });
211   - },
212   -
213   - findSectionByName: function(sectionName, cb) {
214   - $get('/section/findSectionByName', {sectionName: sectionName}, function(res) {
215   - cb && cb(res.data);
216   - });
217   - },
218   -
219   - circularRouteHandle: function (lineId, version, callback) {
220   - $post('/api/lsstationroute/circularRouteHandle', {lineId: lineId, version: version}, function() {
221   - callback && callback();
222   - });
223   - }
224   - };
225   - return ajaxData;
226   -
227   -}();
228 0 \ No newline at end of file
src/main/resources/static/pages/base/stationroute/js/stationroute-list-events.js deleted 100644 → 0
1   -$(function(){
2   -
3   - // 上行方向(0:上行;1:下行)
4   - var directionUpValue = $('#stationUp').data('direction');
5   -
6   - // 下行方向 (0:上行;1:下行)
7   - var directionDownValue = $('.downSystem').data('direction');
8   -
9   - // 系统规划上行站点点击事件
10   - $('.upSystem').on('click',function() {
11   - // 隐藏上行规划
12   - $('#upToolsMobal').hide();
13   - // 弹出正在加载层
14   - var i = layer.load(0,{offset:['200px', '280px']});
15   - /** 修正线路名称 @param:<directionUpValue:方向(上行)> */
16   - PublicFunctions.lineNameIsHaveInterval(directionUpValue);
17   -
18   - });
19   -
20   - $('.gpsRoute').on('click',function() {
21   - // 加载其它规划选择弹出层modal页面
22   - $.get('add_routes_template.html', function(m){
23   - $(pjaxContainer).append(m);
24   - $('#add_routes_template_modal').trigger('modal.show', [WorldsBMap,GetAjaxData,LineObj,PublicFunctions]);
25   - });
26   - });
27   -
28   - // 上行站点新增事件
29   - $('.module_tools #addUpStation').on('click', function() {
30   - /** 设置新增站点对象方向属性值 @param:<directionUpValue:方向(0:上行;1:下行)> */
31   - AddStationObj.setAddStationDiraction(directionUpValue);
32   - WorldsBMap.addStationInit();
33   - // 加载选择新增方式mobal
34   - $.get('add_stationroute_step1.html', function(m){
35   - $(pjaxContainer).append(m);
36   - $('#add_stationroute_step1_modal').trigger('modal.show', [WorldsBMap,DrawingManagerObj,GetAjaxData,AddStationObj,LineObj,PublicFunctions]);
37   - });
38   - });
39   -
40   - // 修改上行站点mobal页面
41   - $('.module_tools #editUpStation').on('click', function(){
42   - var sel = PublicFunctions.getCurrSelNode(directionUpValue);
43   - if(sel.length==0 || sel[0].original.chaildredType !='station'){
44   - layer.msg('请先选择要编辑的上行站点!');
45   - return;
46   - }
47   - $.get('edit_select.html', function(m){
48   - $(pjaxContainer).append(m);
49   - $('#edit_select_mobal').trigger('editSelectMobal_show', [WorldsBMap,DrawingManagerObj,GetAjaxData,EditStationObj,LineObj,PublicFunctions,directionUpValue]);
50   - });
51   - });
52   -
53   - // 撤销上行站点
54   - $('.module_tools #deleteUpStation').on('click', function() {
55   - PublicFunctions.stationRevoke(directionUpValue);
56   - });
57   -
58   - // 上行批量撤销事件
59   - $('.module_tools #batchUpDelete').on('click', function() {
60   - var Line = LineObj.getLineObj();
61   - /** 设置批量删除的线路方向 @param:<directionUpValue:方向(0:上行;1:下行)> */
62   - DeleteBatchObj.setDeteleBatchDiraction(directionUpValue);
63   - // 加载选择新增方式mobal
64   - $.get('destroy_routes.html', function(m){
65   - $(pjaxContainer).append(m);
66   - $('#delete_select_mobal').trigger('deleteSelectMobal.show',[GetAjaxData,Line,PublicFunctions,DeleteBatchObj]);
67   - });
68   - });
69   -
70   - // 切换上下行.
71   - $('.retweet').on('click',function() {
72   - layer.confirm('您是否确定将【上、下】行站点和路段进行对换!', {
73   - btn : [ '确认提示并提交', '取消' ]
74   - },function () {
75   - // 关闭所有提示弹出层.
76   - layer.closeAll();
77   - // 弹出提示层.
78   - var index = layer.load(1, {
79   - shade: [0.1,'#fff'] // 透明度的白色背景
80   - });
81   - var Line = LineObj.getLineObj();
82   - $post('/api/lsstationroute/exchangeDirection', {lineId: Line.id, version: $('#versions').val()}, function(data) {
83   - layer.close(index);
84   - if(data.status=='SUCCESS') {
85   - // 弹出操作成功提示消息
86   - layer.msg('操作成功...');
87   - }else {
88   - // 弹出操作失败提示消息
89   - layer.msg('操作成功...');
90   - }
91   - WorldsBMap.clearMarkAndOverlays();
92   - $('#stationDown').removeClass('active');
93   - $('#stationDown').removeClass('in');
94   - $('#stationDown').addClass('fade');
95   - $('#stationUp').addClass('active in');
96   - $('#downLine').parent().removeClass('active');
97   - $('#upLine').parent().addClass('active');
98   - // 刷新左边树
99   - PublicFunctions.resjtreeDate(Line.id,0,$("#versions").val());
100   - /** 查询上行路段信息 @param:<Line.id:线路Id;0:上行> @return:data:路段数据 */
101   -// GetAjaxData.getSectionRouteInfo(Line.id,0,function(data) {
102   -// /** 在地图上画出线路走向 @param:<Line.id:线路Id;0:上行;data:路段数据> */
103   -// PublicFunctions.linePanlThree(Line.id,data,0);
104   -// });
105   - });
106   - });
107   - });
108   -
109   - $('#wrenchUpDis').on('click',function() {
110   - var Line = LineObj.getLineObj();
111   - GetAjaxData.getStation(Line.id,directionUpValue,$("#versions").val(),function(rd) {
112   - // 加载其它规划选择弹出层mobal页面
113   - $.get('tzzj.html', function(m){
114   - $(pjaxContainer).append(m);
115   - $('#tzzj_mobal').trigger('tzzjMobal.show', [WorldsBMap,GetAjaxData,0,Line.id,PublicFunctions,rd[0].children[0].children]);
116   - });
117   - });
118   - })
119   -
120   - $('#wrenchDownDis').on('click',function() {
121   - var Line = LineObj.getLineObj();
122   - GetAjaxData.getStation(Line.id,directionDownValue,$("#versions").val(),function(rd) {
123   - // 加载其它规划选择弹出层mobal页面
124   - $.get('tzzj.html', function(m){
125   - $(pjaxContainer).append(m);
126   - $('#tzzj_mobal').trigger('tzzjMobal.show', [WorldsBMap,GetAjaxData,1,Line.id,PublicFunctions,rd[0].children[0].children]);
127   - });
128   - });
129   - });
130   -
131   - $('#quoteDown').on('click',function() {
132   - // 弹出提示层.
133   - var index = layer.load(1, {
134   - shade: [0.1,'#fff'] // 透明度的白色背景
135   - });
136   - var Line = LineObj.getLineObj();
137   - var params = {lineId: Line.id, version: $('#versions').val(), direction: 0, otherDirection: 1};
138   - quote(params,index);
139   - });
140   -
141   - $('#quoteUp').on('click',function() {
142   - // 弹出提示层.
143   - var index = layer.load(1, {
144   - shade: [0.1,'#fff'] // 透明度的白色背景
145   - });
146   - var Line = LineObj.getLineObj();
147   - console.log($($("#versions").find("option:selected")[0]).attr("status"));
148   - var params = {lineId: Line.id, version: $('#versions').val(), direction: 1, otherDirection: 0};
149   - quote(params,index);
150   - });
151   -
152   - function quote(params,index) {
153   - $post('/api/lssectionroute/quoteOtherSide', params, function(data) {
154   - layer.close(index);
155   - if(data.status=='SUCCESS') {
156   - // 弹出操作成功提示消息
157   - layer.msg('操作成功...');
158   - }else {
159   - // 弹出操作失败提示消息
160   - layer.msg('操作成功...');
161   - }
162   - WorldsBMap.clearMarkAndOverlays();
163   -
164   - var dir = params.direction;
165   - if(dir == 0){
166   - dir = 1;
167   - }else{
168   - dir = 0;
169   - }
170   - // 刷新左边树
171   - PublicFunctions.resjtreeDate(params.lineId,dir,$("#versions").val());
172   - /** 查询上行路段信息 @param:<Line.id:线路Id;0:上行> @return:data:路段数据 */
173   -// GetAjaxData.getSectionRouteInfo(params.lineId,params.dir,function(data) {
174   -// /** 在地图上画出线路走向 @param:<Line.id:线路Id;0:上行;data:路段数据> */
175   -// PublicFunctions.linePanlThree(params.lineId,data,params.dir);
176   -// });
177   - });
178   - }
179   - // 编辑线路上行走向
180   - $('.module_tools #editUplineTrend').on('click', function() {PublicFunctions.editLinePlan(directionUpValue);});
181   -
182   - // 线路上行
183   - $('#leftUpOrDown #upLine').on('click', function(){
184   - var lineIdEvents = LineObj.getLineObj();
185   -
186   - var val = $("#versions").val();
187   -
188   - /** 初始化上行树 @param:<Line.id:线路Id;0:上行> */
189   - PublicFunctions.resjtreeDate(lineIdEvents.id,'0',val);
190   - WorldsBMap.setStatus(lineIdEvents.id, val, 0);
191   - });
192   -
193   - // 系统规划下行站点
194   - $('.downSystem').on('click',function() {
195   - // 隐藏下行规划
196   - $('#downToolsMobal').hide();
197   - // 弹出正在加载层
198   - var i = layer.load(0,{offset:['200px', '280px']});
199   - /** 修正线路名称 @param:<directionUpValue:方向(上行)> */
200   - PublicFunctions.lineNameIsHaveInterval(directionDownValue);
201   - });
202   -
203   - // 下行站点新增事件
204   - $('.module_tools #addDownStation').on('click', function() {
205   - /** 设置新增站点对象方向属性值 @param:<directionUpValue:方向(0:上行;1:下行)> */
206   - AddStationObj.setAddStationDiraction(directionDownValue);
207   - WorldsBMap.addStationInit();
208   - // 加载选择新增方式mobal
209   - $.get('add_stationroute_step1.html', function(m){
210   - $(pjaxContainer).append(m);
211   - $('#add_stationroute_step1_modal').trigger('modal.show', [WorldsBMap,DrawingManagerObj,GetAjaxData,AddStationObj,LineObj,PublicFunctions]);
212   - });
213   - });
214   -
215   - // 修改下行站点mobal页面
216   - $('.module_tools #editDownStation').on('click', function(){
217   - var sel = PublicFunctions.getCurrSelNode(directionDownValue);
218   - if(sel.length==0 || sel[0].original.chaildredType !='station'){
219   - layer.msg('请先选择要编辑的下行站点!');
220   - return;
221   - }
222   - $.get('edit_select.html', function(m){
223   - $(pjaxContainer).append(m);
224   - $('#edit_select_mobal').trigger('editSelectMobal_show', [WorldsBMap,DrawingManagerObj,GetAjaxData,EditStationObj,LineObj,PublicFunctions,directionDownValue]);
225   - });
226   - });
227   -
228   - // 撤销下行站点
229   - $('.module_tools #deleteDownStation').on('click', function() {
230   - PublicFunctions.stationRevoke(directionDownValue);
231   - });
232   -
233   - // 下行批量撤销事件
234   - $('.module_tools #batchDownDelete').on('click', function() {
235   - var Line = LineObj.getLineObj();
236   - /** 设置批量删除的线路方向 @param:<directionDownValue:方向(0:上行;1:下行)> */
237   - DeleteBatchObj.setDeteleBatchDiraction(directionDownValue);
238   - // 加载选择新增方式mobal
239   - $.get('destroy_routes.html', function(m){
240   - $(pjaxContainer).append(m);
241   - $('#delete_select_mobal').trigger('deleteSelectMobal.show',[GetAjaxData,Line,PublicFunctions,DeleteBatchObj]);
242   - });
243   - });
244   -
245   - // 编辑线路下行走向
246   - $('.module_tools #editDownlineTrend').on('click', function() {
247   - PublicFunctions.editLinePlan(directionDownValue);
248   - });
249   -
250   - // 线路下行
251   - $('#leftUpOrDown #downLine').on('click', function(){
252   - var lineIdEvents = LineObj.getLineObj();
253   -
254   -
255   - var val = $("#versions").val();
256   - /** 初始化下行树 @param:<Line.id:线路Id;1:下行> */
257   - PublicFunctions.resjtreeDate(lineIdEvents.id,'1',val);
258   - WorldsBMap.setStatus(lineIdEvents.id, val, 0);
259   - });
260   -
261   - // 生成行单
262   - $('.module_tools #createUsingSingle').on('click', function() {
263   - var lineIdEvents = LineObj.getLineObj();
264   - var params = {lineId:lineIdEvents.id};
265   - GetAjaxData.createUsingSingle(params,function(data) {
266   - if(data.status=='SUCCESS') {
267   - // 弹出生成成功提示消息
268   - layer.msg('生成成功...');
269   - }else {
270   - // 弹出生成失败提示消息
271   - layer.msg('生成失败...');
272   - }
273   - });
274   - });
275   - $('#scrllmouseEvent').on('mousemove',function() {
276   - $('.defeat-scroll').css('overflow','auto');
277   - }).on('mouseleave',function() {
278   - $('.defeat-scroll').css('overflow','hidden');
279   - });
280   -
281   - // 进出场规划
282   - $('#leftUpOrDown #inoutLine').on('click', function(){
283   - var lineIdEvents = LineObj.getLineObj();
284   -
285   - var val = $("#versions").val();
286   -
287   - /** 初始化上行树 @param:<Line.id:线路Id;0:上行> */
288   - PublicFunctions.resjtreeDate(lineIdEvents.id,'3',val);
289   - });
290   -
291   - $('#circularRouteHandle').on('click', function() {
292   - var line = LineObj.getLineObj(), version = $("#versions").val();
293   - GetAjaxData.circularRouteHandle(line.id, version, function() {
294   - layer.msg('操作成功');
295   - PublicFunctions.resjtreeDate(line.id, '0', version);
296   - })
297   - })
298   -});
299 0 \ No newline at end of file
src/main/resources/static/pages/base/stationroute/js/stationroute-list-function.js deleted 100644 → 0
1   -/**
2   - * 函数
3   - *
4   - * - - - - - - - 》 getCurrSelNode : 获取选中树节点数据函数
5   - *
6   - * - - - - - - - 》 resjtreeDate : 刷新树函数函数
7   - *
8   - * - - - - - - - 》 setFormInputValue : 新增站点参数集合赋值函数
9   - *
10   - * - - - - - - - 》 editSetStationParmas : 编辑站点参数集合赋值函数
11   - *
12   - * - - - - - - - 》 editSeteditStationParmasValue:编辑站点范围图形参数集合赋值函数
13   - *
14   - * - - - - - - - 》 lineNameIsHaveInterval : 系统规划时修正线路名称
15   - *
16   - * - - - - - - - 》 systemLineStation:系统规划保存函数
17   - *
18   - * - - - - - - - 》 stationRevoke :撤销站点
19   - *
20   - * - - - - - - - 》 editLinePlan :编辑线路走向
21   - *
22   - * - - - - - - - 》 setFormValue :编辑站点设置表单元素值
23   - *
24   - * - - - - - - - 》 eachSectionList:路段折线百度坐标转WGS坐标
25   - */
26   -
27   -var PublicFunctions = function () {
28   - var mapData = {};
29   - var PubFun = {
30   - /** 初始化线路标题与ID */
31   - setTiteText : function(lineId) {
32   - // 根据线路ID获取线路名称
33   - GetAjaxData.getIdLineName(lineId,function(data) {
34   - // 定义线路名称
35   - var lineNameV = data.name;
36   - $('.portlet-title .caption').text(lineNameV);
37   - });
38   - },
39   - /** @param direction 方向 @return array */
40   - getCurrSelNode : function(direction){
41   - // 定义Obj
42   - var array = [];
43   - try {
44   - // 上行
45   - if(direction=='0'){
46   - // 获取上行选中节点
47   - array = $.jstree.reference("#station_Up_tree").get_selected(true);
48   - // 下行
49   - }else if(direction=='1'){
50   - // 获取下行选中节点
51   - array = $.jstree.reference("#station_Down_tree").get_selected(true);
52   - }
53   - } catch (e) {
54   - console.log(e);
55   - }
56   - // 返回Obj
57   - return array;
58   - },
59   - startOrEndPoint: function(points, carpark) {
60   - var harr = new Array, i = 0;
61   - for (i = 0;i < points.length;i++) {
62   - harr.push('<option value="', points[i].stationName, '_station">', points[i].stationName, '</option>');
63   - points[i].bdPoint = points[i].station.bJwpoints;
64   - points[i].bdPoints = points[i].station.bdPolygon;
65   - points[i].shapesType = points[i].station.shapesType;
66   - points[i].radius = points[i].station.radius;
67   - mapData[points[i].stationName + '_station'] = points[i];
68   - }
69   - harr.push('<option value="', carpark.parkName, '_park">', carpark.parkName, '</option>');
70   - carpark.bdPoint = carpark.bCenterPoint;
71   - carpark.bdPoints = carpark.bParkPoint;
72   - carpark.stationName = carpark.parkName;
73   - mapData[carpark.parkName + '_park'] = carpark;
74   -
75   - return harr.join('');
76   - },
77   - /** @param id:线路ID ;directionData:方向 */
78   - resjtreeDate : function(id, direction, version){
79   - if(!version){
80   - version = $("#versions").val();
81   - }
82   -
83   - var status = $($("#versions").find("option:selected")[0]).attr("status");
84   - if (direction == 3) {
85   - // 隐藏上行规划
86   - $('#upToolsMobal').hide();
87   - // 隐藏上行树
88   - $('#uptreeMobal').hide();
89   - // 隐藏下行规划
90   - $('#downToolsMobal').hide();
91   - // 隐藏下行树
92   - $('#DowntreeMobal').hide();
93   - //
94   - $('#InoutCarparktreeMobal .table-toolbar').hide();
95   -
96   - GetAjaxData.getStartEndByLine(id, version, function (result) {
97   - if (result.data) {
98   - $('#InoutCarparktreeMobal').show();
99   - var formHtml = template('inout-carpark-search-form');
100   - $('.inout-search').html(formHtml);
101   -
102   - $('#startPoint').html(PubFun.startOrEndPoint(result.data.start, result.data.carpark));
103   - $('#endPoint').html(PubFun.startOrEndPoint(result.data.end, result.data.carpark));
104   - $('#startPoint').on('change', function () {
105   - $('#InoutCarparktreeMobal .table-toolbar').hide();
106   - });
107   - $('#endPoint').on('change', function () {
108   - $('#InoutCarparktreeMobal .table-toolbar').hide();
109   - });
110   - $('#inoutSearch').on('click', function () {
111   - var start = $('#startPoint').val().split('_'), end = $('#endPoint').val().split('_');
112   - if (start[1] == end[1]) {
113   - layer.msg('进出场的站点不可能同时为站点或停车场');
114   - return;
115   - }
116   -
117   - $('#inout_carpark_tree').show();
118   - $('#InoutCarparktreeMobal .table-toolbar').show();
119   -
120   - GetAjaxData.getRouteByStartEnd(id, version, start[0], end[0], (result1) => {
121   - var routes = result1.data.routes, rootNode;
122   - WorldsBMap.clearMarkAndOverlays();
123   - var startPoint = mapData[start.join('_')], endPoint = mapData[end.join('_')], point, points;
124   - if (startPoint.shapesType === 'r') {
125   - point = startPoint.bdPoint.split(' ');
126   - WorldsBMap.drawCircle({lng : point[0], lat : point[1]}, startPoint.radius, startPoint.stationName, true);
127   - } else if (startPoint.shapesType === 'd') {
128   - points = startPoint.bdPoints;
129   - points = points.replace('POLYGON ((', '').replace('POLYGON((', '').replaceAll(', ', ',').replace('))', '');
130   - points = points.split(',')
131   - WorldsBMap.drawPolygon(points, startPoint.stationName, true);
132   - }
133   -
134   - if (endPoint.shapesType === 'r') {
135   - point = endPoint.bdPoint.split(' ');
136   - WorldsBMap.drawCircle({lng : point[0], lat : point[1]}, endPoint.radius, endPoint.stationName, true);
137   - } else if (endPoint.shapesType === 'd') {
138   - points = endPoint.bdPoints;
139   - points = points.replace('POLYGON ((', '').replace('POLYGON((', '').replaceAll(', ', ',').replace('))', '');
140   - points = points.split(',')
141   - WorldsBMap.drawPolygon(points, endPoint.stationName, true);
142   - }
143   -
144   - rootNode = {id: -1, pId: null, name: '路段', text: '路段', icon: null, groupType: 2, container : 'pjax-container', enable : true, children: routes};
145   - if (routes.length > 0) {
146   - for (var i = 0,route;i < routes.length;i++) {
147   - route = routes[i];
148   - route.pId = 1;
149   - route.name = route.section.sectionName;
150   - route.text = route.section.sectionName;
151   - route.icon = null;
152   - route.groupType = 3;
153   - route.chaildredType = 'section';
154   - route.enable = true;
155   - route.lineId = id;
156   - route.lineCode = id;
157   - route.versions = version;
158   - route.dir = 3;
159   - route.start = start[0];
160   - route.end = end[0];
161   - points = route.section.bsectionVectorWkt.replace('LINESTRING(', '').replace(')', '');
162   - points = points.split(',');
163   - WorldsBMap.drawPolyLine(points, route, start[0], end[0]);
164   - }
165   - } else {
166   - rootNode.children = [{id: 0, pId: -1, name: '添加路段', text: '添加路段', lineId: id, lineCode: id, versions: version, dir: 3, start: start[0], end: end[0], icon: null, groupType: 3, container : 'pjax-container', enable : true, chaildredType: status > 0 ? 'addSection' : '', sectionBsectionVector: 'LINESTRING(' + startPoint.bdPoint + ')'}];
167   - }
168   - StationTreeData.inoutInit([rootNode]);
169   - StationTreeData.inoutreloadeTree([rootNode]);
170   - });
171   - });
172   - } else {
173   - layer.msg(result.msg);
174   - }
175   - });
176   - } else {
177   - $('#InoutCarparktreeMobal').hide();
178   - $('#inout_carpark_tree').hide();
179   - }
180   -
181   - // 获取树数据
182   - GetAjaxData.getStation(id, direction, version, function(routes) {
183   - // 获取数据长度
184   - var len = routes.stationRoutes.length;
185   - // 上行
186   - if(direction == 0){
187   - // 长度大于零
188   - if (len > 0) {
189   - // 隐藏上行规划
190   - $('#upToolsMobal').hide();
191   - // 显示树
192   - $('#uptreeMobal').show();
193   - // 刷新树
194   - StationTreeData.reloadUp(routes);
195   - } else {
196   - if (status > 0) {
197   - // 显示上行规划
198   - $('#upToolsMobal').show();
199   - } else {
200   - $('#upToolsMobal').hide();
201   - }
202   - // 隐藏上行树
203   - $('#uptreeMobal').hide();
204   - }
205   - } else if (direction == 1) {
206   - // 如果长度大于
207   - if(len > 0) {
208   - // 隐藏下行规划
209   - $('#downToolsMobal').hide();
210   - // 显示下行树
211   - $('#DowntreeMobal').show();
212   - // 跟新树
213   - StationTreeData.reloadDown(routes);
214   - } else {
215   - if (status > 0) {
216   - // 显示下行规划
217   - $('#downToolsMobal').show();
218   - } else {
219   - $('#downToolsMobal').hide();
220   - }
221   - // 隐藏下行树
222   - $('#DowntreeMobal').hide();
223   - }
224   - }
225   -
226   - PublicFunctions.linePanlThree(id, routes, direction, version, function (center) {
227   - var map = WorldsBMap.getmapBValue();
228   - map.panTo(center);
229   - });
230   - });
231   - },
232   -
233   - /** 修正线路名称 @param:<directionUpValue:方向(0:上行;1:下行)> */
234   - lineNameIsHaveInterval : function(direction) {
235   - var lineName = $('.portlet-title .caption').text();
236   - if (lineName.indexOf('区间') > 0 || lineName.indexOf('定班') > 0) {
237   - lineName = lineName.replace('区间','').replace('定班', '');
238   - layer.confirm('系统无法生成该线路【'+lineName+'】的站点与路段!自动修改为如下线路名称【' + lineName + '】生成', {
239   - btn : [ '确认提示并提交', '取消' ]
240   - }, function(index) {
241   - layer.close(index);
242   - PublicFunctions.systemLineStation(lineName,direction);
243   - },function(){
244   - layer.closeAll();
245   - if(direction==0){
246   - // 显示上行规划
247   - $('#upToolsMobal').show();
248   - }else if(direction==1){
249   - // 显示下行规划
250   - $('#downToolsMobal').show();
251   - }
252   - });
253   - } else {
254   - PublicFunctions.systemLineStation(lineName,direction);
255   - }
256   - },
257   -
258   - locations2LinestringWkt: function (locations) {
259   - var wkt = new Array();
260   - wkt.push('LINESTRING(')
261   - for (var i = 0,len = locations.length;i < len;i++) {
262   - wkt.push(locations[i].lng);
263   - wkt.push(' ');
264   - wkt.push(locations[i].lat);
265   - if (i != len - 1) { wkt.push(','); }
266   - }
267   - wkt.push(')');
268   -
269   - return wkt.join('');
270   - },
271   -
272   - systemLineStation: function(lineName, direction) {
273   - WorldsBMap.getBmapStationNames(lineName, direction,function(busLine){
274   - // 如果线路信息不为空
275   - if(busLine && busLine.getNumBusStations()) {
276   - var line = LineObj.getLineObj();
277   - var sectionRoutes = new Array(), stations = new Array();
278   - sectionRoutes.push({sectionrouteCode: 100, section: {sectionName: lineName, bsectionVectorWkt: PubFun.locations2LinestringWkt(busLine.getPath())}})
279   - var stationNumber = busLine.getNumBusStations();
280   - // 遍历
281   - for(var i = 0 ; i < stationNumber; i++) {
282   - var station = busLine.getBusStation(i), station1 = {stationName: station.name, centerPointWkt: 'POINT(' + station.position.lng + ' ' + station.position.lat + ')'};
283   - stations.push(station1);
284   - }
285   - // 获取站点之间的距离与时间
286   - WorldsBMap.getDistanceAndDuration(stations,function(stationRoutes) {
287   - // 参数集合
288   - var params = {lineId: line.id, directions: direction, versions: $('#versions').val(), stationRoutes: stationRoutes, sectionRoutes: sectionRoutes};
289   - if (!params.versions) {
290   - params.versions = '1';
291   - }
292   - GetAjaxData.collectionSave(params,function(rd) {
293   - // 关闭弹出层
294   - layer.closeAll();
295   - if (rd.status == 'SUCCESS') {
296   - layer.msg('保存成功!');
297   - } else {
298   - layer.msg('保存失败!');
299   - }
300   - // 刷新树
301   - PublicFunctions.resjtreeDate(line.id, direction, params.versions);
302   - });
303   - });
304   - /*// 关闭弹出层
305   - layer.closeAll();
306   - // 上行
307   - if(direction==0){
308   - $('#stationDown').removeClass('active');
309   - $('#stationDown').removeClass('in');
310   - $('#stationDown').addClass('fade');
311   - $('#stationUp').addClass('active in');
312   - $('#downLine').parent().removeClass('active');
313   - $('#upLine').parent().addClass('active');
314   - // 下行
315   - }else if(direction==1){
316   - $('#stationUp').removeClass('active');
317   - $('#stationUp').removeClass('in');
318   - $('#stationUp').addClass('fade');
319   - $('#stationDown').addClass('active in');
320   - $('#upLine').parent().removeClass('active');
321   - $('#downLine').parent().addClass('active');
322   - }*/
323   - } else {
324   - layer.msg('百度地图中没有此线路,无法系统规划!');
325   - setTimeout(function() {
326   - // 关闭弹出层
327   - layer.closeAll();
328   - // 上行
329   - if(direction==0){
330   - // 显示上行规划
331   - $('#upToolsMobal').show();
332   - // 下行
333   - }else if(direction==1){
334   - // 显示下行规划
335   - $('#downToolsMobal').show();
336   - }
337   - }, 3000);
338   - }
339   - });
340   - },
341   -
342   - /** @param directionV_ :方向 */
343   - stationRevoke : function(directionV_) {
344   - // 获取树选中节点对象
345   - var obj = PublicFunctions.getCurrSelNode(directionV_);
346   - // 是否选中,选中节点是否为站点
347   - if(obj.length == 0 || obj[0].original.chaildredType !='station'){
348   - // 弹出提示层
349   - layer.msg('请先选择要删除的站点!');
350   - return;
351   - }
352   - // 弹出是否撤销提示框
353   - layer.confirm('你确定要撤销【'+obj[0].text+'】站点吗?', {btn : [ '确定撤销','返回' ],icon: 3, title:'提示' }, function(index){
354   -
355   - debugger;
356   - // 站点路由ID
357   - var stationRouteId = obj[0].original.stationRouteId;
358   -
359   - var Line = LineObj.getLineObj();
360   -
361   - clonsole.log(Line);
362   -
363   - // 撤销参数集合
364   - var params = {stationRouteId:stationRouteId,destroy:'1',status:Line.status};
365   - // 方向
366   - var stationRouteDirections = obj[0].original.stationRouteDirections;
367   - // 撤销
368   - GetAjaxData.stationRouteIsDestroy(params,function(result) {
369   - // 关闭弹出框
370   - layer.close(index);
371   - if(result.status=='SUCCESS'){
372   - layer.msg('撤销'+(directionV_==0?"上行":"下行")+'站点【'+obj[0].text+'】成功!');
373   - }else{
374   - layer.msg('撤销'+(directionV_==0?"上行":"下行")+'站点【'+obj[0].text+'】失败!');
375   - }
376   - WorldsBMap.clearMarkAndOverlays();
377   -
378   - var ver = $("#versions").val();
379   -
380   - // 刷行左边树
381   - PublicFunctions.resjtreeDate(Line.id,stationRouteDirections,ver);
382   - /** 查询上行路段信息 @param:<Line.id:线路Id;0:上行> @return:data:路段数据 */
383   -// GetAjaxData.getSectionRouteInfo(Line.id,stationRouteDirections,ver,function(data) {
384   -// /** 在地图上画出线路走向 @param:<Line.id:线路Id;0:上行;data:路段数据> */
385   -// PublicFunctions.linePanlThree(Line.id,data,stationRouteDirections);
386   -// });
387   - });
388   - });
389   - },
390   -
391   - /** @param direction_ :方向 */
392   - editLinePlan : function(direction_) {
393   - var sel = PublicFunctions.getCurrSelNode(direction_);
394   - if(sel.length==0 || sel[0].original.chaildredType !='section'){
395   - if(direction_=='0') {
396   - layer.msg('请先选中要编辑的上行路段!');
397   - }else if(direction_=='1') {
398   - layer.msg('请先选中要编辑的下行路段!');
399   - }
400   - return;
401   - }
402   - $('#downLine').addClass('btn disabled');
403   - $('.btn-circle').addClass('disabled');
404   - $('#upLine').addClass('btn disabled');
405   - var editSectionV = sel[0].original;
406   - EditSectionObj.setEitdSection(editSectionV);
407   - // 弹出添加失败提示消息,2秒关闭(如果不配置,默认是3秒)
408   - var yindex = layer.msg('编辑完线路走向后,请双击线路走向区域保存',{ offset: '126px',shift: 0,time: 10000});
409   - WorldsBMap.editPolyUpline();
410   - },
411   -
412   - setFormValue : function(editStationRoute) {
413   - $('#edit_stationroute_form input,select,textarea').each(function () {
414   - if (this.name) {
415   - $(this).val(eval('editStationRoute.' + this.name));
416   - if ('shapedType' === this.name) {
417   - $(this).val(editStationRoute.shapedType == 'r' ? '圆形' : '多边形')
418   - }
419   - if ('radius' === this.name) {
420   - $(this).val(editStationRoute.radius ? editStationRoute.radius : 80);
421   - }
422   - }
423   - })
424   - },
425   -
426   - setSectionFormValue : function(sectionRoute) {
427   - $('#edit_sectionroute_form input').each(function() {
428   - if (this.name) {
429   - $(this).val(eval('sectionRoute.' + this.name));
430   - }
431   - });
432   - },
433   -
434   - /** 在地图上画出线路走向 @param:<Line.id:线路Id;0:上行;data:路段数据> */
435   - linePanlThree : function(lineId, routes, direction, version, callback) {
436   - WorldsBMap.clearMarkAndOverlays();
437   - var i = 0, center;
438   - if (routes.stationRoutes.length > 0) {
439   - var centerPointWkt = routes.stationRoutes[0].station.centerPointWkt;
440   - centerPointWkt = centerPointWkt.substring(6, centerPointWkt.length - 1);
441   - var coordinates = centerPointWkt.split(' ');
442   - center = new BMap.Point(coordinates[0], coordinates[1]);
443   - for (;i < routes.stationRoutes.length;i++) {
444   - WorldsBMap.drawingUpStationPoint(routes.stationRoutes[i], i + 1);
445   - }
446   - }
447   - if (routes.sectionRoutes.length > 0) {
448   - WorldsBMap.drawingUpline01(routes.sectionRoutes);
449   - }
450   -
451   - callback && center && callback(center);
452   - },
453   - /** 加载树 @param:<lineId:线路ID;direction:方向(0:上行;1:下行)> */
454   - TreeUpOrDown : function(lineId,direction,version) {
455   - /** 获取树结果数据 @param:<lineId:线路ID;direction:方向;callback:回调函数> */
456   - GetAjaxData.getStation(lineId,direction,version,function(result) {
457   - // 获取返回数据长度
458   - var len = result.stationRoutes.length;
459   - // 上行
460   - if(direction == 0) {
461   - /** 初始化上行树 @param:<treeDateJson:树数据结构> */
462   - StationTreeData.upInit(result);
463   - if(len>0) {
464   - $('#upToolsMobal').hide();
465   - $('#uptreeMobal').show();
466   - }else {
467   - $('#upToolsMobal').show();
468   - $('#uptreeMobal').hide();
469   - }
470   -
471   - PublicFunctions.linePanlThree(lineId, result, direction, version, function (center) {
472   - var map = WorldsBMap.getmapBValue();
473   - map.panTo(center);
474   - });
475   -
476   - // 下行
477   - }else if(direction ==1) {
478   - /** 出事画下行树 @param:<treeDateJson:树数据结构> */
479   - StationTreeData.downInit(result);
480   - if(len>0) {
481   - $('#downToolsMobal').hide();
482   - $('#DowntreeMobal').show();
483   - }else {
484   - $('#downToolsMobal').show();
485   - $('#DowntreeMobal').hide();
486   - }
487   - }
488   - });
489   - },
490   - isHaveStationName : function(data) {
491   - if(data.length>0) {
492   - layer.confirm('系统已存在【'+ data[0].stationName +'】该站点位置名称,请选择【系统引用】或者更改站点名称进行新增!', {btn : [ '返回' ],icon: 3, title:'提示' }, function(index){
493   - layer.close(index);
494   - });
495   - return false;
496   - }else {
497   - return true;
498   - }
499   - },
500   - // 地图处于编辑状态
501   - editMapStatus : function (dir) {
502   - WorldsBMap.setMap_status(1);
503   - // 有方向就显示退出编辑模式按钮
504   - if (dir != null && dir != 'null') {
505   - WorldsBMap.setDir(dir);
506   - $('#esc_edit_div').show();
507   - }
508   - $('.protlet-box-layer').show();
509   - },
510   - // 地图处于编辑状态
511   - editMapStatusRemove : function () {
512   - WorldsBMap.setMap_status(0);
513   - $('.protlet-box-layer').hide();
514   - $('#esc_edit_div').hide();
515   - // 退出绘画模式
516   - WorldsBMap.exitDrawStatus();
517   - },
518   - // 选项鎖死解除
519   - editAChangeCssRemoveDisabled : function() {
520   - $('#downLine').removeClass('btn disabled');
521   - $('.btn-circle').removeClass('disabled');
522   - $('#upLine').removeClass('btn disabled');
523   - },
524   - // 方向代码转名称.
525   - dirdmToName : function(value){
526   - var srStr = '';
527   - if(value=='0')
528   - srStr = '上行';
529   - else if(value=='1')
530   - srStr = '下行';
531   - return srStr;
532   - },
533   - }
534   - return PubFun ;
535   -}();
536 0 \ No newline at end of file
src/main/resources/static/pages/base/stationroute/js/stationroute-list-map.js deleted 100644 → 0
1   -/**
2   - * 百度地图
3   - *
4   - * - - - - - -》init:地图初始化
5   - *
6   - * - - - - - -》lineInfoPanl:从百度地图抓去站点与路段数据
7   - *
8   - * - - - - - -》getDistanceAndDuration:获取距离与时间
9   - *
10   - * - - - - - -》pointsPolygon:地图画多边行
11   - *
12   - * - - - - - -》pointsCircle:画圆
13   - *
14   - * - - - - - -》localSearchFromAdreesToPoint:根据地理名称获取百度经纬度坐标
15   - *
16   - * - - - - - -》drawingUpline:在地图上画出上行线路走向
17   - *
18   - * - - - - - -》stationsNameToPoints:站点名称获取百度坐标(手动规划)
19   - *
20   - * - - - - - -》getDistanceAndTotime:根据坐标点获取两点之间的时间与距离(手动规划)
21   - *
22   - * - - - - - -》getSectionListPlonly:根据坐标点获取两点之间的折线路段(手动规划)
23   - */
24   -
25   -window.WorldsBMap = function () {
26   -
27   - /** WorldsBMap 全局变量定义 mapBValue:地图对象; road_win_show_p:信息窗口打开状态的路段,
28   - * sectionArray: 路段集合,stationArray: 站点集合
29   - * map_status:地图编辑状态,drawingManager:绘画工具, topOverlay:置顶视图*/
30   - var mapBValue = '', iseditStatus = false, road_win_show_p = '', editPolyline = '', matchStation = '',dir = 0, versions, lineId,
31   - sectionArray = [], stationArray = new Map(),
32   - map_status = 0,drawingManager,topOverlay;
33   -
34   - var currentSection = {};
35   -
36   - var setTimeoutId;
37   -
38   - var overlays = new Array();
39   -
40   - /**
41   - * 编辑缓冲区
42   - * stationMarkers: 站点图标集合
43   - */
44   - var editCircle, editPolygon, dragMarker, stationMarkers = new Map(),centerPoint;
45   -
46   - var styleOptions = {
47   - strokeColor:"blue", //边线颜色。
48   - fillColor:"blue", //填充颜色。当参数为空时,圆形将没有填充效果。
49   - strokeWeight: 6, //边线的宽度,以像素为单位。
50   - strokeOpacity: 0.7, //边线透明度,取值范围0 - 1。
51   - fillOpacity: 0.6, //填充的透明度,取值范围0 - 1。
52   - strokeStyle: 'solid' //边线的样式,solid或dashed。
53   - };
54   -
55   - // 覆盖物置顶
56   - var setTop = function(overlay) {
57   - if (topOverlay)
58   - topOverlay.setTop(false);
59   - overlay.setTop(true);
60   - topOverlay = overlay;
61   - };
62   -
63   - var setDragMarker = function (marker) {
64   - marker.enableDragging();
65   - dragMarker = marker;
66   - dragMarker._old_point = dragMarker._position;
67   - centerPoint = dragMarker._position;
68   - //监听拖拽事件 dragging
69   - dragMarker.addEventListener('dragging', dragMarkerDragEvent);
70   - };
71   -
72   - var dragMarkerDragEvent = function (e) {
73   - if (editPolygon) {
74   - // 中心点是否超出多边形
75   - // if (!BMapLib.GeoUtils.isPointInPolygon(e.target._position, editPolygon)) {
76   - // dragMarker.setPosition(dragMarker._old_point);//还原位置
77   - // }
78   - centerPoint = e.target._position;
79   - }
80   - else if (editCircle) {
81   - editCircle.disableEditing();
82   - //缓冲区跟随点位运动
83   - editCircle.setCenter(e.target._position);
84   - editCircle.enableEditing();
85   - centerPoint = e.target._position;
86   - }
87   - };
88   -
89   - var Bmap = {
90   -
91   - init: function () {
92   - // 设置中心点,
93   - var CENTER_POINT = {lng: 121.528733, lat: 31.237425};
94   - // 百度API Key
95   - var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT';
96   - // 初始化百度地图
97   - mapBValue = new BMap.Map("routes_list_map_container" , {enableMapClick: false});
98   - //中心点和缩放级别
99   - mapBValue.centerAndZoom(new BMap.Point(CENTER_POINT.lng, CENTER_POINT.lat), 14);
100   - //启用地图拖拽事件,默认启用(可不写)
101   - mapBValue.enableDragging();
102   - //启用地图滚轮放大缩小
103   - mapBValue.enableScrollWheelZoom();
104   - //禁用鼠标双击放大
105   - mapBValue.disableDoubleClickZoom();
106   - //启用键盘上下左右键移动地图
107   - mapBValue.enableKeyboard();
108   - return mapBValue;
109   - },
110   -
111   - /** 获取地图对象 @return 地图对象map */
112   - getmapBValue: function () {
113   - return mapBValue;
114   - },
115   - getDir:function(){
116   - return dir;
117   - },
118   - setDir:function (val) {
119   - dir = val;
120   - },
121   - setVersions: function (val) {
122   - versions = val;
123   - },
124   - setLineId: function (val) {
125   - lineId = val;
126   - },
127   - setStatus: function(_lineId, _versions, _dir) {
128   - lineId = _lineId;
129   - versions = _versions;
130   - dir = _dir;
131   - },
132   - setMap_status : function (i) {
133   - map_status = i;
134   - },
135   - getIsEditStatus: function () {
136   - return iseditStatus;
137   - },
138   - setIsEditStatus: function (v) {
139   - iseditStatus = v;
140   - },
141   - getStationArray: function () {
142   - return stationArray;
143   - },
144   - setStationArray : function (s) {
145   - stationArray = s;
146   - },
147   - /*initDrawingManager: function (map, styleOptions) {
148   - },*/
149   - getDrawingManagerObj: function () {
150   - return drawingManagerInitV;
151   - },
152   -
153   - // 打开站点路由信息窗口
154   - openStationRouteInfoWin : function (stationRoute) {
155   - // 将视图切换到指定的缩放等级,中心点坐标不变。注意:当有信息窗口在地图上打开时,地图缩放将保证信息窗口所在的坐标位置不动。(自1.2新增)
156   - if (stationRoute) {
157   - // 站点形状
158   - var shapes = stationRoute.stationShapesType;
159   - // 获取中心坐标点字符串分割
160   - var centerPointWkt = stationRoute.station.centerPointWkt;
161   - centerPointWkt = centerPointWkt.substring(6, centerPointWkt.length - 1);
162   - var coordinates = centerPointWkt.split(' ');
163   - // 中心坐标点
164   - var point = new BMap.Point(coordinates[0], coordinates[1]);
165   - var width = WorldsBMap.strGetLength(stationRoute.stationName) * 11;
166   - // 信息窗口参数属性
167   - var opts = {
168   - // 信息窗口宽度
169   - width: (width < 240 ? 240 : width),
170   - // 信息窗口高度
171   - // height: shapes=="r" ?380:350,
172   - // 信息窗位置偏移值。
173   - offset: new BMap.Size(10,-20),
174   - //设置不允许信窗发送短息
175   - enableMessage: false,
176   - //是否开启点击地图关闭信息窗口
177   - enableCloseOnClick: false,
178   - // 是否开启信息窗口打开时地图自动移动(默认开启)。(自 1.1 新增)
179   - enableAutoPan: false
180   - };
181   -
182   - var stationMark = '';
183   - if (stationRoute.stationMark == 'B') {
184   - stationMark = '起点站';
185   - } else if (stationRoute.stationMark == 'Z') {
186   - stationMark = '中途站';
187   - } else if (stationRoute.stationMark == 'E') {
188   - stationMark = '终点站';
189   - }
190   - var htm = '<span style="color: #ff8355;font-size: 20px; overflow: hidden; white-space: nowrap; text-overflow:ellipsis;display: -webkit-box; -webkit-box-orient: vertical;">' + stationRoute.stationName + '</span>' +
191   - '<span class="help-block" >站点编码:' + stationRoute.stationCode + '</span>' +
192   - '<span class="help-block" >行业编号:' + (stationRoute.industryCode == null ? "":stationRoute.industryCode)+ '</span>' +
193   - '<span class="help-block" >站点序号:' + stationRoute.stationRouteCode + '</span>' +
194   - '<span class="help-block" >站点类型:' + stationMark + '</span>' +
195   - '<span class="help-block" >经度:&nbsp&nbsp' + coordinates[0] + '</span>' +
196   - '<span class="help-block" >纬度:&nbsp&nbsp' + coordinates[1] + '</span>' +
197   - '<span class="help-block" >到站时间:' + stationRoute.toTime + '&nbsp;分钟</span>' +
198   - '<span class="help-block" >到站距离:' + stationRoute.distances + '&nbsp;公里</span>' +
199   - '<span class="help-block" >缓冲区形状:' + (shapes == 'r' ? '圆形' : '多边形') + '</span>' +
200   - (shapes=="r" ? ("<span class='help-block' >半径&nbsp&nbsp:" + stationRoute.radius + "</span>") : " ")+
201   - '<span class="help-block" >版本号&nbsp&nbsp:' + stationRoute.versions + '</span>';
202   -
203   - if($($("#versions").find("option:selected")[0]).attr("status") > 0){
204   - htm += '<div>' +
205   - '<button class="info_win_btn" id="editStation" onclick="WorldsBMap.editStation(' + stationRoute.id+','+stationRoute.directions + ')">修改</button>' +
206   - '<button class="info_win_btn" onclick="WorldsBMap.destroyStation('+ stationRoute.id + ','+stationRoute.line.id+','+stationRoute.directions+')">撤销</button>' +
207   - '<button class="info_win_btn" id="addBetweenStationRoad" onclick="WorldsBMap.addBetweenStationRoad(' + stationRoute.id + ')">添加站点间路段</button>' +
208   - '</div>';
209   - }
210   - // 创建信息窗口
211   - var infoWindow_target = new BMap.InfoWindow(htm, opts);
212   - setTimeout(function () {
213   - //开启信息窗口
214   - mapBValue.openInfoWindow(infoWindow_target, point);
215   - }, 100);
216   - // 将地图的中心点更改为给定的点。
217   - mapBValue.panTo(point);
218   - }
219   - },
220   -
221   - /**
222   - * 打开站点信息窗口
223   - * @param station
224   - */
225   - openStationInfoWin: function(station) {
226   - if (station) {
227   - var centerPointWkt = station.centerPointWkt;
228   - centerPointWkt = centerPointWkt.substring(6, centerPointWkt.length - 1);
229   - var coordinates = centerPointWkt.split(' ');
230   - var centerPoint = new BMap.Point(coordinates[0], coordinates[1]);
231   - var width = WorldsBMap.strGetLength(station.stationName) * 11;
232   - // 信息窗口参数属性
233   - var opts = {
234   - // 信息窗口宽度
235   - width: (width < 240 ? 240 : width),
236   - // 信息窗口高度
237   - // height: shapes=="r" ?380:350,
238   - // 信息窗位置偏移值。
239   - offset: new BMap.Size(10,-20),
240   - //设置不允许信窗发送短息
241   - enableMessage: false,
242   - //是否开启点击地图关闭信息窗口
243   - enableCloseOnClick: false,
244   - // 是否开启信息窗口打开时地图自动移动(默认开启)。(自 1.1 新增)
245   - enableAutoPan: false
246   - };
247   -
248   - var html = new Array();
249   - html.push('<span style="color: #ff8355;font-size: 20px; overflow: hidden; white-space: nowrap; text-overflow:ellipsis;display: -webkit-box; -webkit-box-orient: vertical;">' + station.stationName + '</span>');
250   - html.push('<span class="help-block" >站点编号:' + (station.stationCode ? station.stationCode : '')+ '</span>');
251   - html.push('<span class="help-block" >途经线路:' + (station.passLines ? station.passLines : '') + '</span>');
252   -
253   - // 创建信息窗口
254   - var infoWindow = new BMap.InfoWindow(html.join(''), opts);
255   - setTimeout(function () {
256   - //开启信息窗口
257   - mapBValue.openInfoWindow(infoWindow, centerPoint);
258   - }, 100);
259   - mapBValue.panTo(centerPoint);
260   - }
261   - },
262   -
263   - // 根据地理名称获取百度经纬度坐标
264   - localSearchFromAdreesToPoint: function (Address, callback) {
265   - // 创建一个搜索类实例
266   - var localSearch = new BMap.LocalSearch(mapBValue);
267   - // 检索完成后的回调函数。
268   - localSearch.setSearchCompleteCallback(function (searchResult) {
269   - var resultPoints = '';
270   - if (searchResult) {
271   - // 返回索引指定的结果。索引0表示第1条结果
272   - var poi = searchResult.getPoi(0);
273   - if (poi) {
274   - //获取经度和纬度
275   - resultPoints = poi.point.lng + ' ' + poi.point.lat;
276   - callback && callback(resultPoints);
277   - } else {
278   - callback && callback(false);
279   - }
280   - } else {
281   - callback && callback(false);
282   - }
283   - });
284   - // 根据检索词发起检索。
285   - localSearch.search(Address);
286   - },
287   -
288   - // 站点编辑
289   - editShapes: function (obj) {
290   - // 关闭信息窗口
291   - mapBValue.closeInfoWindow();
292   - var stationRoute = obj.getEditStation();
293   - var shapedType = stationRoute.shapedType;
294   - setDragMarker(stationMarkers[stationRoute.id]);
295   -
296   - // 获取中心坐标点字符串分割
297   - var centerPointWkt = stationRoute.station.centerPointWkt;
298   - centerPointWkt = centerPointWkt.substring(6, centerPointWkt.length - 1);
299   - var coordinates = centerPointWkt.split(' ');
300   - // 中心坐标点
301   - var center = new BMap.Point(coordinates[0], coordinates[1]);
302   -
303   - // 编辑圆
304   - if (shapedType == 'r') {
305   - //创建圆
306   - var circle = new BMap.Circle(center, stationRoute.radius, {
307   - strokeColor: "blue",
308   - strokeWeight: 2,
309   - strokeOpacity: 0.7
310   - });
311   - mapBValue.centerAndZoom(center, 18);
312   - editCircle = circle;
313   - // 允许覆盖物在map.clearOverlays方法中被清除
314   - // circle.enableMassClear();
315   - // 百度地图添加覆盖物圆
316   - mapBValue.addOverlay(circle);
317   - // 开启编辑功能
318   - circle.enableEditing();
319   - // 编辑圆监听事件
320   - circle.addEventListener('dblclick', function () {
321   - // 返回圆形的半径,单位为米。
322   - var newRadius = circle.getRadius();
323   - // 返回圆形的中心点坐标。
324   - var newCenter = circle.getCenter().lng + ' ' + circle.getCenter().lat;
325   - // var centre_points = [{potion: {lng: circle.getCenter().lng, lat: circle.getCenter().lat}}];
326   - /** 设置修改站点集合对象站点中心点百度坐标属性值 @param:<bJwpoints:中心点百度坐标) */
327   - EditStationObj.setEditStationJwpoints(newCenter);
328   - /** 设置修改站点集合对象范围图形类型属性值 @param:<shapesType:范围图形类型) */
329   - EditStationObj.setEditStationShapesType('r');
330   - /** 设置修改站点集合对象圆形半径属性值 @param:<radius:圆形半径) */
331   - EditStationObj.setEditStationRadius(Math.round(newRadius));
332   - /** 设置修改站点集合对象图形百度坐标集合属性值 @param:<bPolygonGrid:图形百度坐标集合) */
333   - EditStationObj.setEitdBPolygonGrid('');
334   - // 清除正在编辑的站点
335   - editCircle = null;
336   - // 加载编辑页面
337   - $.get('edit_stationroute_step2.html', function (m) {
338   - $(pjaxContainer).append(m);
339   - $('#edit_stationroute_step2_modal').trigger('modal.show', [WorldsBMap, GetAjaxData, EditStationObj, LineObj, PublicFunctions]);
340   - });
341   - });
342   - // 编辑多边行
343   - } else if (shapedType == 'd') {
344   - // 获取多边形坐标字符串
345   - var bufferPolygonWkt = stationRoute.bufferPolygonWkt;
346   - bufferPolygonWkt = bufferPolygonWkt.substring(9, bufferPolygonWkt.length - 2);
347   - var points = bufferPolygonWkt.split(',');
348   - var polygonPoints = new Array();
349   - for (var i = 0; i < points.length; i++) {
350   - var coordinates = points[i].split(' ');
351   - polygonPoints.push(new BMap.Point(coordinates[0], coordinates[1]));
352   - }
353   - // 画多边形
354   - var polygon = new BMap.Polygon(polygonPoints, {
355   - // 线条显色
356   - strokeColor: "blue",
357   - // 边线的宽度,以像素为单位。
358   - strokeWeight: 2,
359   - // 边线透明度,取值范围0 - 1。
360   - strokeOpacity: 0.7
361   - });
362   - mapBValue.centerAndZoom(center, 18);
363   - // 增加地图覆盖物多边形
364   - mapBValue.addOverlay(polygon);
365   - // 开启编辑功能(自 1.1 新增)
366   - polygon.enableEditing();
367   - //禁止覆盖物在map.clearOverlays方法中被清除
368   - // polygon.disableMassClear();
369   - // 添加多边形编辑事件
370   - polygon.addEventListener('dblclick', function (e) {
371   - var bufferPolygonWkt = new Array(), points = polygon.getPath();
372   - for(var i = 0;i < points.length;i++) {
373   - bufferPolygonWkt.push(points[i].lng + ' ' + points[i].lat)
374   - }
375   - bufferPolygonWkt.push(points[0].lng + ' ' + points[0].lat)
376   - // 多边形中心点
377   - /** 设置修改站点集合对象站点中心点百度坐标属性值 @param:<bJwpoints:中心点百度坐标) centerPoint可拖动点 */
378   - EditStationObj.setEditStationJwpoints(center.lng + ' ' + center.lat);
379   - /** 设置修改站点集合对象范围图形类型属性值 @param:<shapesType:范围图形类型) */
380   - EditStationObj.setEditStationShapesType('d');
381   - /** 设置修改站点集合对象圆形半径属性值 @param:<radius:圆形半径) */
382   - EditStationObj.setEditStationRadius('');
383   - /** 设置修改站点集合对象图形百度坐标集合属性值 @param:<bPolygonGrid:图形百度坐标集合) */
384   - EditStationObj.setEitdBPolygonGrid(bufferPolygonWkt.join(','));
385   - $.get('edit_stationroute_step2.html', function (m) {
386   - $(pjaxContainer).append(m);
387   - $('#edit_stationroute_step2_modal').trigger('modal.show', [WorldsBMap, GetAjaxData, EditStationObj, LineObj, PublicFunctions]);
388   - });
389   - });
390   - }
391   - },
392   -
393   - // 画路段走向
394   - drawingUpline01: function (sectionRoutes) {
395   - if (sectionRoutes) {
396   - // 编辑路段数据
397   - sectionArray = [];
398   - for (var d = 0; d < sectionRoutes.length; d++) {
399   - var data = sectionRoutes[d];
400   - // 地图折线坐标点集合
401   - var polylineArray = [];
402   - // 获取路段折线坐标字符串
403   - var sectionBsectionVectorStr = data.section.bsectionVectorWkt;
404   - if (sectionBsectionVectorStr == null)
405   - continue;
406   - // 切割段折线坐标字符串
407   - var tempStr = sectionBsectionVectorStr.substring(11, sectionBsectionVectorStr.length - 1);
408   - // 分割折线坐标字符串
409   - var lineArray = tempStr.split(',');
410   - for (var i = 0; i < lineArray.length; i++) {
411   - polylineArray.push(new BMap.Point(lineArray[i].split(' ')[0], lineArray[i].split(' ')[1]));
412   - }
413   - var polyUpline01 = 'polyline' + '_' + data.id;
414   - // 创建线路走向
415   - polyUpline01 = new BMap.Polyline(polylineArray, {
416   - strokeColor: "red",
417   - strokeWeight: 6,
418   - strokeOpacity: 0.7
419   - });
420   - polyUpline01.data = data;
421   - polyUpline01.ct_source = '1';
422   - // 把折线添加到地图上
423   - mapBValue.addOverlay(polyUpline01);
424   - // 聚焦事件
425   - polyUpline01.addEventListener('mousemove', function (e) {
426   - if (this != editPolyline)
427   - this.setStrokeColor("#20bd26");
428   - });
429   - // 失去焦点
430   - polyUpline01.addEventListener('mouseout', function (e) {
431   - if (this != editPolyline && this != road_win_show_p)
432   - this.setStrokeColor("red");
433   - });
434   - // 添加单击事件
435   - polyUpline01.addEventListener('onclick', function (e) {
436   - // 打开信息窗口
437   - if (map_status != 1)
438   - WorldsBMap.openSectionInfoWin(this);
439   - });
440   - sectionArray.push(polyUpline01);
441   - }
442   - // mapBValue.setCenter(polyline_center);
443   - // mapBValue.panTo(polyline_center);
444   - // mapBValue.setZoom(14);
445   - // 禁止覆盖物在map.clearOverlays方法中被清除。(自 1.1 新增)
446   - // polyUpline01.disableMassClear();
447   - }
448   - },
449   -
450   - /** 在地图上画点 @param:<point_center:中心坐标点> */
451   - drawingUpStationPoint: function (stationRoute, seq, isView) {
452   - // 中心点坐标字符串
453   - var centerPointWkt = stationRoute.station.centerPointWkt;
454   - centerPointWkt = centerPointWkt.substring(6, centerPointWkt.length - 1);
455   - var coordinates = centerPointWkt.split(' ');
456   - var stationName = stationRoute.stationName;
457   - // 设置中心点
458   - var center = new BMap.Point(coordinates[0], coordinates[1]);
459   - var html2 = '<div style="position: absolute; margin: 0pt; padding: 0pt; width: 160px; height: 26px; left: -10px; top: -35px; overflow: hidden;">'
460   - + '<img class="rm3_image" style="border:none;left:0px; top:0px; position:absolute;" src="/pages/base/stationroute/css/img/back160.png">'
461   - + '</div>'
462   - + '<label class=" BMapLabel" unselectable="on" style="position: absolute; -moz-user-select: none; display: inline; cursor: inherit; border: 0px none; padding: 2px 1px 1px; white-space: nowrap; font: 12px arial,simsun; z-index: 80; color: rgb(255, 102, 0); left: 15px; top: -35px;"><span style="float: left; color: #fdfdfd; margin-left: -22px; font-size: 6px;">' + seq + '</span>' + stationName + '</label>';
463   -
464   - var myRichMarker1 = new BMapLib.RichMarker(html2, center, {
465   - "title": stationName,
466   - "anchor": new BMap.Size(-10, 8),
467   - "enableDragging": true
468   - });
469   - myRichMarker1.disableDragging();
470   - myRichMarker1.ct_source = '1';
471   - mapBValue.addOverlay(myRichMarker1);
472   - myRichMarker1.addEventListener('click', function () {
473   - if(map_status != 1 && !isView)
474   - WorldsBMap.openStationRouteInfoWin(stationRoute);
475   - });
476   - stationArray[stationRoute.id] = stationRoute;
477   - stationMarkers[stationRoute.id] = myRichMarker1;
478   - },
479   -
480   - // 站点名称获取百度坐标(手动规划)
481   - stationsNameToPoints: function (arra, callback) {
482   - // 获取长度
483   - var len = arra.length;
484   - var stationList = [];
485   - (function () {
486   - if (!arguments.callee.count) {
487   - arguments.callee.count = 0;
488   - }
489   - arguments.callee.count++;
490   - var index = parseInt(arguments.callee.count) - 1;
491   - if (index >= len) {
492   - callback && callback(stationList);
493   - return;
494   - }
495   - var f = arguments.callee;
496   - if (arra[index].name != '') {
497   - var localSearch = new BMap.LocalSearch(mapBValue);
498   - localSearch.search(arra[index].name);
499   - localSearch.setSearchCompleteCallback(function (searchResult) {
500   - var poi = searchResult.getPoi(0);
501   - if (poi) {
502   - stationList.push({
503   - name: arra[index].name.replace('公交车站', ''),
504   - wgs: arra[index].wgs,
505   - potion: {lng: poi.point.lng, lat: poi.point.lat}
506   - });
507   - } else {
508   - stationList.push({
509   - name: arra[index].name.replace('公交车站', ''),
510   - wgs: arra[index].wgs,
511   - potion: {lng: arra[index].wgs.x, lat: arra[index].wgs.y}
512   - });
513   - }
514   - f();
515   - });
516   - } else {
517   - f();
518   - }
519   - })();
520   - },
521   -
522   - // 根据坐标点获取两点之间的时间与距离(手动规划)
523   - getDistanceAndTotime: function (stationList, cb) {
524   - stationList[0].distance = '';
525   - stationList[0].duration = '';
526   - // var sectionList = [];
527   - // 获取长度
528   - var len = stationList.length;
529   - (function () {
530   - if (!arguments.callee.count) {
531   - arguments.callee.count = 0;
532   - }
533   - arguments.callee.count++;
534   - var index = parseInt(arguments.callee.count) - 1;
535   - if (index >= len - 1) {
536   - // cb && cb(stationList,sectionList);
537   - cb && cb(stationList);
538   - return;
539   - }
540   - var f = arguments.callee;
541   - var poiOne = new BMap.Point(stationList[index].potion.lng, stationList[index].potion.lat);
542   - var poiTwo = new BMap.Point(stationList[index + 1].potion.lng, stationList[index + 1].potion.lat);
543   - var transit = new BMap.TransitRoute(mapBValue, {
544   - renderOptions: {map: mapBValue},
545   - onSearchComplete: searchComplete
546   - });
547   -
548   - transit.search(poiOne, poiTwo);
549   - function searchComplete(results) {
550   - var plan = results.getPlan(0);
551   - if (transit.getStatus() != BMAP_STATUS_SUCCESS) {
552   - stationList[index + 1].distance = '';
553   - stationList[index + 1].duration = '';
554   - // sectionList.push({sectionName:stationList[index].name+stationList[index+1].name,points:''});
555   - } else {
556   - stationList[index + 1].distance = plan.getDistance(true);
557   - stationList[index + 1].duration = plan.getDuration(true);
558   - // var line = plan.getRoute(0);
559   - // sectionList.push({sectionName:stationList[index].name+stationList[index+1].name,points:line.getPath()});
560   - }
561   - f();
562   - }
563   - })();
564   - },
565   -
566   - // 根据坐标点获取两点之间的折线路段(手动规划)
567   - getSectionListPlonly: function (stationsPoint, cb) {
568   - var len = stationsPoint.length;
569   - var sectionList = [];
570   - (function () {
571   - if (!arguments.callee.count) {
572   - arguments.callee.count = 0;
573   - }
574   - arguments.callee.count++;
575   - var index = parseInt(arguments.callee.count) - 1;
576   - if (index >= len - 1) {
577   - cb && cb(sectionList);
578   - return;
579   - }
580   - var f = arguments.callee;
581   - var poiOne = new BMap.Point(stationsPoint[index].potion.lng, stationsPoint[index].potion.lat);
582   - var poiTwo = new BMap.Point(stationsPoint[index + 1].potion.lng, stationsPoint[index + 1].potion.lat);
583   - /* var transit = new BMap.TransitRoute(mapB, {renderOptions: {map: mapB},onPolylinesSet: searchPolylinesSet});*/
584   - var transit = new BMap.DrivingRoute(mapBValue, {
585   - renderOptions: {map: mapBValue},
586   - onPolylinesSet: searchPolylinesSet
587   - });
588   - function searchPolylinesSet(results) {
589   - if (transit.getStatus() != BMAP_STATUS_SUCCESS) {
590   - } else {
591   - var sectionArrayList = [];
592   - for (i = 0; i < results.length; i++) {
593   - // console.log(results[i].getPolyline().getPath());
594   - sectionArrayList = sectionArrayList.concat(results[i].getPolyline().getPath());
595   - }
596   - var sectionName = stationsPoint[index].name + '至' + stationsPoint[index + 1].name;
597   - sectionList.push({sectionName: sectionName, points: sectionArrayList});
598   - }
599   - f();
600   - }
601   - transit.search(poiOne, poiTwo);
602   - })();
603   - },
604   -
605   - localtionPoint: function (stationName, cb) {
606   - // 关闭信息窗口
607   - mapBValue.closeInfoWindow();
608   - GetAjaxData.findStationByName(stationName, function (stations) {
609   - var marker;
610   - if (stations.length > 0) {
611   - var points = new Array();
612   - for (var i = 0;i < stations.length;i++) {
613   - var station = stations[i];
614   - var centerPointWkt = station.centerPointWkt;
615   - centerPointWkt = centerPointWkt.substring(6, centerPointWkt.length - 1);
616   - var stationName = station.stationName;
617   - var coordinates = centerPointWkt.split(' ');
618   - var centerPoint = new BMap.Point(coordinates[0], coordinates[1]);
619   - points.push(centerPoint);
620   - var stationMarker = new BMap.Marker(centerPoint, {
621   - title: stationName,
622   - icon: new BMap.Icon('/pages/base/stationroute/css/img/back160.png', new BMap.Size(160, 26)),
623   - offset: new BMap.Size(60, -16),
624   - enableDragging: false
625   - });
626   - var label = new BMap.Label(stationName, {offset: new BMap.Size(25, 0)});
627   - label.setStyle({border: '0px'});
628   - stationMarker.setLabel(label);
629   - stationMarker.ct_source = '1';
630   - stationMarker.station = station;
631   - mapBValue.addOverlay(stationMarker);
632   - overlays.push(stationMarker);
633   - stationMarker.addEventListener('click', function (event) {
634   - event.domEvent.stopPropagation();
635   - if (setTimeoutId) {
636   - clearTimeout(setTimeoutId);
637   - }
638   - setTimeoutId = setTimeout(function(){
639   - WorldsBMap.openStationInfoWin(event.target.station);
640   - }, 200);
641   - });
642   - stationMarker.addEventListener('rightclick', Bmap.confirmCenterPointHandler);
643   - }
644   - var center = new BMap.Polyline(points).getBounds().getCenter();
645   - mapBValue.panTo(center);
646   - }
647   -
648   - mapBValue.removeEventListener('click', Bmap.pickCenterPointHandler);
649   - mapBValue.addEventListener('click', Bmap.pickCenterPointHandler);
650   - cb && cb(marker);
651   - });
652   - },
653   -
654   - localtionRoad: function (sectionName, callback) {
655   - // 关闭信息窗口
656   - mapBValue.closeInfoWindow();
657   - GetAjaxData.findSectionByName(sectionName, function (sections) {
658   - var marker;
659   - if (sections.length > 0) {
660   - var points = new Array();
661   - for (var i = 0;i < sections.length;i++) {
662   - var section = sections[i];
663   - var bsectionVectorWkt = section.bsectionVectorWkt;
664   - bsectionVectorWkt = bsectionVectorWkt.substring(11, bsectionVectorWkt.length - 1);
665   - var sectionName = section.sectionName;
666   - var polyline = WorldsBMap.wkt2Polyline(bsectionVectorWkt);
667   - polyline.section = section;
668   - mapBValue.addOverlay(polyline);
669   - overlays.push(polyline);
670   - polyline.addEventListener('click', function (event) {
671   - alert(event.target.section.id)
672   - });
673   - polyline.addEventListener('rightclick', Bmap.confirmCenterPointHandler);
674   - }
675   - var center = polyline.getBounds().getCenter();
676   - mapBValue.panTo(center);
677   - }
678   - });
679   - },
680   -
681   - wkt2Polyline: function (wkt) {
682   - var points = new Array(), pointWkts = wkt.split(',');
683   - for (var i = 0;i < pointWkts.length;i++) {
684   - var coordinates = pointWkts[i].split(' ');
685   - points.push(new BMap.Point(coordinates[0], coordinates[1]));
686   - }
687   -
688   - return new BMap.Polyline(points)
689   - },
690   -
691   - pickCenterPointHandler: function(e) {
692   - mapBValue.removeEventListener('click', Bmap.pickCenterPointHandler);
693   - var marker = new BMap.Marker(e.point, {enableDragging: true});
694   - overlays.push(marker);
695   - mapBValue.panTo(e.point);
696   - mapBValue.addOverlay(marker);
697   - marker.addEventListener('rightclick', Bmap.confirmCenterPointHandler);
698   - marker.setAnimation(BMAP_ANIMATION_BOUNCE);
699   - },
700   -
701   - /** 系统规划抓去数据 @param lineNameValue:线路名称;i:方向*/
702   - getBmapStationNames: function (lineName, i, cb) {
703   - var busline = new BMap.BusLineSearch(mapBValue, {
704   - onGetBusListComplete: function (busListResult) {
705   - if (busListResult) {
706   - var first = busListResult.getBusListItem(i);
707   - busline.getBusLine(first);
708   - }
709   - },
710   - onGetBusLineComplete: function (busLine) {
711   - if (busLine) {
712   - cb && cb(busLine);
713   - }
714   - }
715   - });
716   - busline.getBusList(lineName);
717   - },
718   - // 修改站点
719   - editStation: function (stationRouteId) {
720   - $.get('edit_stationroute_step1.html', function (m) {
721   - $(pjaxContainer).append(m);
722   - $('#edit_stationroute_step1_modal').trigger('modal.show', [WorldsBMap, DrawingManagerObj, GetAjaxData, EditStationObj, LineObj, PublicFunctions, stationArray[stationRouteId]]);
723   - });
724   - },
725   - addBetweenStationRoad: function (stationRouteId) {
726   - var version = $("#versions").val();
727   - // 关闭信息窗口
728   - mapBValue.closeInfoWindow();
729   - // 查询下一个站点
730   - $.get("/api/lsstationroute/findCurrentAndNext", {id: stationRouteId}, function(stationRoutes) {
731   - if (stationRoutes.length < 2) {
732   - layer.msg("您选择的站点后没有站点了,不能生成站点间路段!");
733   - } else {
734   - var startStationRoute = stationRoutes[0], endStationRoute = stationRoutes[1];
735   - var startWkt = startStationRoute.station.centerPointWkt, endWkt = endStationRoute.station.centerPointWkt;
736   - var startCoordinates = startWkt.substring(6, startWkt.length - 1).split(" "), endCoordinates = endWkt.substring(6, endWkt.length - 1).split(" ")
737   - var sectionList = [];
738   - var startPoint = new BMap.Point(startCoordinates[0], startCoordinates[1]);
739   - var endPoint = new BMap.Point(endCoordinates[0], endCoordinates[1]);
740   - // 路径规划保存按钮
741   - var label = new BMap.Label("保存路段", {
742   - offset: new BMap.Size(13, -53)
743   - });
744   - label.setStyle({
745   - color: '#fff',
746   - background: "url(/pages/base/stationroute/css/img/bg.png)",
747   - border: '0px solid',
748   - textAlign: "center",
749   - height: "28px",
750   - lineHeight: "26px",
751   - width: "80px",
752   - maxWidth: "none"
753   - });
754   - label.addEventListener('click', function () {
755   - var params = {};
756   - params.lineId = startStationRoute.line.id;
757   - params.lineCode = startStationRoute.lineCode;
758   - params.directions = startStationRoute.directions;
759   - params.stationRouteBegin = startStationRoute.stationName;
760   - params.stationRouteFinish = endStationRoute.stationName;
761   - layer.confirm('确定保存', {
762   - btn : [ '路段调整好了','继续调整','退出'], icon: 3, title:'提示'
763   - ,btn3: function(index, layero){
764   - PublicFunctions.resjtreeDate(params.lineId,params.directions);
765   - PublicFunctions.editAChangeCssRemoveDisabled();
766   - PublicFunctions.editMapStatusRemove();
767   - }
768   - }, function(index, layero){
769   - layer.close(index);
770   - params.route = $("#routePlanning").val();
771   - $.get('doublename_road.html', function (m) {
772   - $(pjaxContainer).append(m);
773   - $('#doublename_road_mobal').trigger('doubleNameRoadMobal_show', [params, WorldsBMap, GetAjaxData, PublicFunctions]);
774   - });
775   - PublicFunctions.editMapStatusRemove();
776   - });
777   - });
778   - // 路径规划
779   - var transit = new BMap.DrivingRoute(mapBValue, {
780   - renderOptions: {
781   - map: mapBValue,
782   - enableDragging: true
783   - },
784   - onPolylinesSet: searchPolylinesSet
785   - });
786   -
787   - function searchPolylinesSet(results) {
788   - if (transit.getStatus() == BMAP_STATUS_SUCCESS) {
789   - var sectionArrayList = [];
790   - for (i = 0; i < results.length; i++) {
791   - sectionArrayList = sectionArrayList.concat(results[i].getPolyline().getPath());
792   - }
793   - sectionList = sectionArrayList;//JSON.stringify()
794   - $("#routePlanning").val(JSON.stringify(sectionArrayList));
795   - var pointMap = new Map();
796   - pointMap = sectionArrayList[sectionArrayList.length - 1];
797   - var pointLabel = new BMap.Point(pointMap.lng, pointMap.lat);
798   - label.enableMassClear();
799   - label.setPosition(pointLabel);
800   - mapBValue.addOverlay(label);
801   - }
802   - }
803   - transit.search(startPoint, endPoint);
804   - transit.disableAutoViewport();
805   - // 地图编辑状态
806   - PublicFunctions.editMapStatus(endStationRoute.directions);
807   - }
808   - });
809   - },
810   - // 清楚覆盖物,定位站点
811   - closeMobleSetClean: function(station) {
812   - var dir = station.directions;
813   - var lineId = station.lineId; // map.clearMarkAndOverlays();
814   -
815   - Bmap.clearMarkAndOverlays();
816   - // 刷新左边树
817   - PublicFunctions.resjtreeDate(lineId,dir,$("#versions").val());
818   - /** 查询上行路段信息 @param:<Line.id:线路Id;0:上行> @return:data:路段数据 */
819   -// GetAjaxData.getSectionRouteInfo(lineId,dir,function(data1) {
820   -// /** 在地图上画出线路走向 @param:<Line.id:线路Id;0:上行;data:路段数据> */
821   -// PublicFunctions.linePanlThree(lineId,data1,dir);
822   -// });
823   -
824   - // 退出编辑状态
825   - PublicFunctions.editMapStatusRemove();
826   - },
827   - // 定位路段
828   - focusSection: function(sectionRouteId) {
829   - for (var i = 0, p; p = sectionArray[i++];) {
830   - if (p.data.id == sectionRouteId) {
831   - switch (p.data.dir) {
832   - case 3:
833   - WorldsBMap.openSectionInfoWin_inout(p);
834   - break;
835   - default:
836   - WorldsBMap.openSectionInfoWin(p);
837   - break;
838   - }
839   -
840   - }
841   - }
842   - },
843   - // 路段编辑
844   - editSection : function(sectionRouteId, dir) {
845   - layer.confirm('进入编辑状态', {
846   - btn : [ '确定','返回' ], icon: 3, title:'提示'
847   - }, function() {
848   - PublicFunctions.editMapStatus(dir);
849   - layer.msg('双击保存路段');
850   - var p;
851   - for (var i = 0; p = sectionArray[i++];) {
852   - if (p.data.id == sectionRouteId) {
853   - mapBValue.closeInfoWindow();//关闭infoWindow
854   - p.enableEditing();
855   - p.setStrokeColor('blue');
856   - editPolyline = p;
857   - break;
858   - }
859   - }
860   - // 路段中间点为中心
861   - var section = p.data;
862   - var sectionStr = section.section.bsectionVectorWkt.substring(11, section.section.bsectionVectorWkt.length - 1);
863   - // 分割折线坐标字符串
864   - var lineArray = sectionStr.split(',');
865   - var sectionPointArray = [];
866   - for (var i = 0; i < lineArray.length; i++) {
867   - sectionPointArray.push(new BMap.Point(lineArray[i].split(' ')[0], lineArray[i].split(' ')[1]));
868   - }
869   - // 计算中间点
870   - var index = parseInt(sectionPointArray.length / 2);
871   - var centerPoint = sectionPointArray[index];
872   - mapBValue.centerAndZoom(centerPoint, 17);
873   - // var c = p.ia[Math.floor(p.ia.length/2)];
874   - // mapBValue.centerAndZoom(new BMap.Point(c.lng, c.lat), 18);
875   - p.addEventListener('dblclick', function () {
876   - /** 设置修改路段集合对象为空 */
877   - editPolyline = '';
878   - PublicFunctions.editMapStatusRemove();
879   - $.get('edit_sectionroute.html', function(m){
880   - $('body').append(m);
881   - $('#edit_sectionroute_modal').trigger('modal.show', [WorldsBMap,GetAjaxData,p,PublicFunctions]);
882   - });
883   - });
884   - });
885   - },
886   - // 添加第一个路段
887   - addSection : function(stecion) {
888   - PublicFunctions.editMapStatus();
889   - // 把数据填充到模版中
890   - var addSectionHTML = template('add_draw_polyline-temp');
891   - $('body .mian-portlet-body').append(addSectionHTML);
892   - //暂停和开始绘制
893   - $('.draw_polyline_switch>a').on('click', function () {
894   - var t = $(this).text();
895   - if(t=='暂停绘制'){
896   - WorldsBMap.exitDrawStatus();
897   - $(this).text('开始绘制');
898   - }
899   - else{
900   - WorldsBMap.openDrawStatus();
901   - $(this).text('暂停绘制');
902   - }
903   - });
904   - // 开启绘制事件
905   - WorldsBMap.showAddSectionPanel(stecion);
906   -
907   - //取消
908   - $('#addSectionCancelBtn').on('click', function () {
909   - $('.main_left_panel_m_layer').hide();
910   - $(this).parents('.buffer_edit_body').parent().remove();
911   - WorldsBMap.exitDrawStatus();
912   - PublicFunctions.editMapStatusRemove();
913   - });
914   -
915   - //确定
916   - $('#addSectionSbmintBtn').on('click', function () {
917   - var btn = this;
918   - $('#addSectionSbmintBtn').addClass("disabled");
919   - var sectionName = $('#sectionNameInput').val();
920   - var bsectionVector = $('#bsectionVectorInput').val();
921   - if(sectionName && bsectionVector) {
922   - WorldsBMap.exitDrawStatus();
923   - GetAjaxData.getSectionCode(function(sectionCode) {
924   - var status = $($("#versions").find("option:selected")[0]).attr("status");
925   - var sectionRoute = {};
926   - sectionRoute.line = lineId;
927   - sectionRoute.sectionCode = sectionCode;
928   - sectionRoute.roadCoding = '';
929   - sectionRoute.sectionrouteCode = 1;
930   - sectionRoute.sectionTime = 0;
931   - sectionRoute.sectionDistance = 0;
932   - sectionRoute.speedLimit = 60;
933   - sectionRoute.versions = versions;
934   - sectionRoute.destroy = 0;
935   - sectionRoute.directions = dir;
936   - sectionRoute.status = status;
937   - sectionRoute['section.id'] = sectionCode;
938   - sectionRoute['section.sectionCode'] = sectionCode;
939   - sectionRoute['section.sectionName'] = sectionName;
940   - sectionRoute['section.bsectionVectorWkt'] = bsectionVector;
941   -
942   - GetAjaxData.sectionSave(sectionRoute, function (result) {
943   - if(result.status == "SUCCESS"){
944   - $('.main_left_panel_m_layer').hide();
945   - $(btn).parents('.buffer_edit_body').parent().remove();
946   - PublicFunctions.editMapStatusRemove();
947   - PublicFunctions.resjtreeDate(lineId, dir, versions);
948   - PublicFunctions.editAChangeCssRemoveDisabled();
949   - layer.msg("添加成功!");
950   - } else if(result.status =="ERROR") {
951   - layer.msg("添加失败!");
952   - }
953   - });
954   - });
955   - } else if(!sectionName){
956   - layer.msg('请填写路段名字!');
957   - } else if(!bsectionVector){
958   - layer.msg('请先绘制路段!');
959   - }
960   - setTimeout(function () {
961   - $("#addSectionSbmintBtn").removeClass("disabled");
962   - },1000);
963   - });
964   - },
965   - // 添加在路段之后
966   - addSectionAfter : function(sectionRouteId) {
967   - /*$.get('add_sectionroute_step1.html', function(m){
968   - $(pjaxContainer).append(m);
969   - $('#add_sectionroute_step1_modal').trigger('modal.show', [WorldsBMap,DrawingManagerObj,GetAjaxData,AddStationObj,LineObj,PublicFunctions]);
970   - });*/
971   - var lastSectionRoute;
972   - // 关闭信息窗口
973   - mapBValue.closeInfoWindow();
974   - PublicFunctions.editMapStatus();
975   - // 把数据填充到模版中
976   - var addSectionHTML = template('add_draw_polyline-temp',{ 'id': sectionRouteId});
977   - $('body .mian-portlet-body').append(addSectionHTML);
978   - //暂停和开始绘制
979   - $('.draw_polyline_switch>a').on('click', function () {
980   - var t = $(this).text();
981   - if(t=='暂停绘制'){
982   - WorldsBMap.exitDrawStatus();
983   - $(this).text('开始绘制');
984   - } else {
985   - WorldsBMap.openDrawStatus();
986   - $(this).text('暂停绘制');
987   - }
988   - });
989   -
990   - //取消
991   - $('#addSectionCancelBtn').on('click', function () {
992   - $('.main_left_panel_m_layer').hide();
993   - $(this).parents('.buffer_edit_body').parent().remove();
994   - WorldsBMap.exitDrawStatus();
995   - PublicFunctions.editMapStatusRemove();
996   - });
997   - GetAjaxData.getSectionRouteInfoById(sectionRouteId, function(data) {
998   - WorldsBMap.showAddSectionPanel(data);
999   - lastSectionRoute = data;
1000   - });
1001   -
1002   - //确定
1003   - $('#addSectionSbmintBtn').on('click', function () {
1004   - var btn = this;
1005   - $('#addSectionSbmintBtn').addClass("disabled");
1006   - var sectionName = $('#sectionNameInput').val();
1007   - var bsectionVectorWkt = $('#bsectionVectorInput').val();
1008   - var params = {};
1009   - if(sectionName && bsectionVectorWkt) {
1010   - WorldsBMap.exitDrawStatus();
1011   - GetAjaxData.getSectionCode(function(sectionCode) {
1012   - params = {'section.id': sectionCode, 'section.sectionCode': sectionCode, 'section.sectionName': sectionName, 'section.bsectionVectorWkt': bsectionVectorWkt, 'section.speedLimit': 0, 'section.distance': 0, 'line.id': lastSectionRoute.line.id, sectionCode: sectionCode, lineCode: lastSectionRoute.lineCode, roadCoding: '', sectionrouteCode: parseInt(lastSectionRoute.sectionrouteCode) + 1, versions: lastSectionRoute.versions, destroy: 0, directions: lastSectionRoute.directions};
1013   -
1014   - GetAjaxData.sectionSave(params, function (result) {
1015   - if(result.status =="SUCCESS"){
1016   - $('.main_left_panel_m_layer').hide();
1017   - $(btn).parents('.buffer_edit_body').parent().remove();
1018   - PublicFunctions.editMapStatusRemove();
1019   - PublicFunctions.resjtreeDate(lastSectionRoute.line.id, lastSectionRoute.directions, $("#versions").val());
1020   - PublicFunctions.editAChangeCssRemoveDisabled();
1021   - layer.msg("添加成功!");
1022   - } else if(result.status =="ERROR") {
1023   - layer.msg("添加失败!");
1024   - }
1025   - });
1026   - });
1027   - } else if(!sectionName){
1028   - layer.msg('请填写路段名字!');
1029   - } else if(!bsectionVector)
1030   - layer.msg('请先绘制路段!');
1031   - setTimeout(function () {
1032   - $("#addSectionSbmintBtn").removeClass("disabled");
1033   - },1000);
1034   - });
1035   - },
1036   - // 撤销站点
1037   - destroyStation : function(stationRouteId, lineId, dir) {
1038   - layer.confirm('你确定要撤销此站点吗?', {
1039   - btn : [ '撤销','返回' ], icon: 3, title:'提示'
1040   - }, function(){
1041   - $.post('/api/lsstationroute/destroy', {id: stationRouteId}, function(res) {
1042   - if (res.status == 'SUCCESS') {
1043   - // 弹出添加成功提示消息
1044   - layer.msg('撤销成功!');
1045   - } else {
1046   - // 弹出添加失败提示消息
1047   - layer.msg('撤销失败!');
1048   - }
1049   - // 刷新左边树
1050   - var version = $("#verions").val();
1051   - PublicFunctions.resjtreeDate(lineId, dir, version);
1052   - });
1053   - });
1054   - },
1055   - // 撤销路段
1056   - destroySection : function(sectionRouteId,lineId,dir) {
1057   - layer.confirm('你确定要撤销此路段吗?', {
1058   - btn : [ '撤销','返回' ], icon: 3, title:'提示'
1059   - }, function(){
1060   - $.post('/api/lssectionroute/destroy',{id: sectionRouteId},function(res) {
1061   - if (res.status == 'SUCCESS') {
1062   - // 弹出添加成功提示消息
1063   - layer.msg('撤销成功!');
1064   - } else {
1065   - // 弹出添加失败提示消息
1066   - layer.msg('撤销失败!');
1067   - }
1068   - // 刷新左边树
1069   - var version = $("#verions").val();
1070   - PublicFunctions.resjtreeDate(lineId, dir, version);
1071   - });
1072   - });
1073   - },
1074   - // 打开路段信息窗口
1075   - openSectionInfoWin : function(p) {
1076   - var sectionRoute = p.data;
1077   - var dir = sectionRoute.directions;
1078   - var width = WorldsBMap.strGetLength(sectionRoute.section.sectionName) * 10;
1079   - // 信息窗口参数属性
1080   - var opts = {
1081   - // 信息窗口宽度
1082   - width: (width < 200 ? 200 : width),
1083   - // 信息窗口高度
1084   - height: 150,
1085   - //设置不允许信窗发送短息
1086   - enableMessage: false,
1087   - //是否开启点击地图关闭信息窗口
1088   - enableCloseOnClick: false,
1089   - // 是否开启信息窗口打开时地图自动移动(默认开启)。(自 1.1 新增)
1090   - enableAutoPan: false
1091   - };
1092   - var htm = '<span style="color: #ff8355;font-size: 18px;">' + sectionRoute.section.sectionName + '</span>' +
1093   - '<span class="help-block" >路段编码:' + sectionRoute.sectionCode + '</span>' +
1094   - '<span class="help-block" >路段序号:' + sectionRoute.sectionrouteCode + '</span>' +
1095   - '<span class="help-block" >版本号&nbsp&nbsp:' + sectionRoute.versions + '</span>' +
1096   - '<div >';
1097   -
1098   - if($($("#versions").find("option:selected")[0]).attr("status") > 0){
1099   - htm += '<button class="info_win_btn" id="editStation" onclick="WorldsBMap.editSection(' + sectionRoute.id +','+dir+ ')">修改</button>' +
1100   - '<button class="info_win_btn" id="addBetweenStationRoad" onclick="WorldsBMap.destroySection('+ sectionRoute.id + ','+sectionRoute.line.id+','+sectionRoute.directions+')">撤销</button>' +
1101   - '<button class="info_win_btn" id="addSectionAfter" onclick="WorldsBMap.addSectionAfter('+sectionRoute.id+')">添加路段(之后)</button>' +
1102   - '</div>';
1103   - }
1104   -
1105   - // 创建信息窗口
1106   - var infoWindow_target = new BMap.InfoWindow(htm, opts);
1107   - // 切割段折线坐标字符串
1108   - var sectionStr = sectionRoute.section.bsectionVectorWkt.substring(11, sectionRoute.section.bsectionVectorWkt.length - 1);
1109   - // 分割折线坐标字符串
1110   - var lineArray = sectionStr.split(',');
1111   - var sectionArray = [];
1112   - for (var i = 0; i < lineArray.length; i++) {
1113   - sectionArray.push(new BMap.Point(lineArray[i].split(' ')[0], lineArray[i].split(' ')[1]));
1114   - }
1115   - // 计算中间点
1116   - var index = parseInt(sectionArray.length / 2);
1117   - var centerPoint = sectionArray[index];
1118   - //close event
1119   - infoWindow_target.addEventListener('close', function (e) {
1120   - p.setStrokeColor("red");
1121   - road_win_show_p = null;
1122   - });
1123   - //open event
1124   - infoWindow_target.addEventListener('open', function (e) {
1125   - p.setStrokeColor("#20bd26");
1126   - road_win_show_p = p;
1127   - });
1128   - //开启信息窗口
1129   - mapBValue.openInfoWindow(infoWindow_target, centerPoint);
1130   - mapBValue.panTo(centerPoint);
1131   - },
1132   - /**
1133   - * 绘制新增路段
1134   - * @param section
1135   - */
1136   - showAddSectionPanel : function (section) {
1137   - var point;
1138   - if(section){
1139   - var sectionBsectionVectorStr = section.section.bsectionVectorWkt;
1140   - var line = sectionBsectionVectorStr.substring(11, sectionBsectionVectorStr.length - 1),
1141   - points = line.split(','),
1142   - pointStr = points[points.length-1].split(' ');
1143   -
1144   - point = new BMap.Point(pointStr[0], pointStr[1]);
1145   - }
1146   -
1147   - mapBValue.centerAndZoom(point, 18);
1148   -
1149   - //开启鼠标绘制
1150   - drawingManager = new BMapLib.DrawingManager(mapBValue, {
1151   - polylineOptions: styleOptions
1152   - });
1153   -
1154   - drawingManager.open();
1155   - //drawingManager.enableCalculate();
1156   - drawingManager.setDrawingMode('polyline');
1157   -
1158   - //绘制完成
1159   - drawingManager.addEventListener('polylinecomplete', function (e) {
1160   - drawingManager.close();
1161   - var polyline = new BMap.Polyline(e.getPath(), {strokeWeight: 7, strokeColor: 'blue', strokeOpacity: 0.7});
1162   - mapBValue.removeOverlay(e);
1163   - mapBValue.addOverlay(polyline);
1164   - polyline.enableEditing();
1165   - editPolyline = polyline;
1166   -
1167   - $('#bsectionVectorInput').val(Bmap.points2Wkt(e.getPath()));
1168   - });
1169   - },
1170   - points2Wkt: function (points) {
1171   - var wkt = new Array();
1172   - for (var i = 0;i < points.length;i++) {
1173   - wkt.push(points[i].lng + ' ' + points[i].lat);
1174   - }
1175   -
1176   - return 'LINESTRING(' + wkt.join(',') + ')';
1177   - },
1178   - exitDrawStatus : function () {
1179   - if (drawingManager) {
1180   - $('#bsectionVectorInput').val("");
1181   - WorldsBMap.clearOtherOverlay();
1182   - drawingManager.close();
1183   - }
1184   - },
1185   - openDrawStatus : function () {
1186   - if (drawingManager) {
1187   - $('#bsectionVectorInput').val("");
1188   - WorldsBMap.clearOtherOverlay();
1189   - drawingManager.open();
1190   - }
1191   - },
1192   - /** 清楚无需要的覆盖物(非站点/路段数据源)*/
1193   - clearOtherOverlay : function () {
1194   - var all = mapBValue.getOverlays();
1195   - for (var i = 0, obj; obj = all[i++];) {
1196   - if (obj.ct_source && obj.ct_source == '1')
1197   - continue;
1198   - mapBValue.removeOverlay(obj);
1199   - }
1200   - },
1201   - clearMarkAndOverlays: function () {
1202   - // 清楚地图覆盖物
1203   - mapBValue.clearOverlays();
1204   - mapBValue.removeOverlay();
1205   - sectionArray = [];
1206   - },
1207   - clearMark: function () {
1208   - // 清楚地图覆盖物
1209   - mapBValue.removeOverlay();
1210   - },
1211   - strGetLength: function (str) {
1212   - return str.replace(/[\u0391-\uFFE5]/g, "aa").length; //先把中文替换成两个字节的英文,在计算长度
1213   - },
1214   - stationsPointsToLibraryPoint : function(stations, callback) {
1215   - $.ajax('/station/matchStation', {
1216   - method: 'POST',
1217   - data: JSON.stringify(stations),
1218   - contentType: 'application/json',
1219   - success: function (res) {
1220   - callback && callback(res.data);
1221   - return;
1222   - }
1223   - });
1224   - },
1225   - /** 获取距离与时间 @param <points:坐标点集合> */
1226   - getDistanceAndDuration : function(stations,callback){
1227   - var stationRoutes = new Array();
1228   - stations.forEach(function (item) {
1229   - var stationRoute = { stationName: item.stationName, station: item };
1230   - item.distance = 0;
1231   - item.duration = 0;
1232   - stationRoutes.push(stationRoute);
1233   - });
1234   - callback(stationRoutes);
1235   - },
1236   -
1237   - /**
1238   - * 画圆
1239   - * point(lng,lat) 中心点
1240   - * radius 半径(m)
1241   - * isMark 是否加站名
1242   - */
1243   - drawCircle: function (point, radius, stationName, isMark) {
1244   - var center = new BMap.Point(point.lng, point.lat);
1245   - var circle = new BMap.Circle(center, radius ,{strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5});
1246   - mapBValue.addOverlay(circle);
1247   - if (isMark) {
1248   - var html = '<div style="position: absolute; margin: 0pt; padding: 0pt; width: 160px; height: 26px; left: -3px; top: -30px; overflow: hidden;">'
1249   - + '<img class="rm3_image" style="border:none;left:0px; top:0px; position:absolute;" src="/pages/base/stationroute/css/img/back160.png">'
1250   - + '</div>'
1251   - + '<label class=" BMapLabel" unselectable="on" style="position: absolute; -moz-user-select: none; display: inline; cursor: inherit; border: 0px none; padding: 2px 1px 1px; white-space: nowrap; font: 12px arial,simsun; z-index: 80; color: rgb(255, 102, 0); left: 20px; top: -30px;">' + stationName + '</label>';
1252   -
1253   - var myRichMarker = new BMapLib.RichMarker(html, center, {
1254   - "title": stationName,
1255   - "anchor": new BMap.Size(-10, 8),
1256   - "enableDragging": true
1257   - });
1258   - myRichMarker.disableDragging();
1259   - myRichMarker.ct_source = '1';
1260   - mapBValue.addOverlay(myRichMarker);
1261   - }
1262   - },
1263   -
1264   - /**
1265   - * 画多边形
1266   - * points 点数组
1267   - */
1268   - drawPolygon: function (points, stationName, isMark) {
1269   - var bdPoints = new Array(), i = 0, point;
1270   - for (i = 0;i < points.length;i++) {
1271   - point = points[i].split(' ');
1272   - bdPoints.push(new BMap.Point(point[0], point[1]));
1273   - }
1274   - var polygon = new BMap.Polygon(bdPoints), center = bdPoints[0];
1275   - mapBValue.addOverlay(polygon);
1276   - if (isMark) {
1277   - var html = '<div style="position: absolute; margin: 0pt; padding: 0pt; width: 160px; height: 26px; left: -3px; top: -30px; overflow: hidden;">'
1278   - + '<img class="rm3_image" style="border:none;left:0px; top:0px; position:absolute;" src="/pages/base/stationroute/css/img/back160.png">'
1279   - + '</div>'
1280   - + '<label class=" BMapLabel" unselectable="on" style="position: absolute; -moz-user-select: none; display: inline; cursor: inherit; border: 0px none; padding: 2px 1px 1px; white-space: nowrap; font: 12px arial,simsun; z-index: 80; color: rgb(255, 102, 0); left: 20px; top: -30px;">' + stationName + '</label>';
1281   -
1282   - var myRichMarker = new BMapLib.RichMarker(html, center, {
1283   - "title": stationName,
1284   - "anchor": new BMap.Size(-10, 8),
1285   - "enableDragging": true
1286   - });
1287   - myRichMarker.disableDragging();
1288   - myRichMarker.ct_source = '1';
1289   - mapBValue.addOverlay(myRichMarker);
1290   - }
1291   - },
1292   -
1293   - drawPolyLine: function (points, data, start, end) {
1294   - var bdPoints = new Array(), i = 0, point, polyline;
1295   - for (i = 0;i < points.length;i++) {
1296   - point = points[i].split(' ');
1297   - bdPoints.push(new BMap.Point(point[0], point[1]));
1298   - }
1299   - // 创建线路走向
1300   - polyline = new BMap.Polyline(bdPoints, {
1301   - strokeColor: 'red',
1302   - strokeWeight: 6,
1303   - strokeOpacity: 0.7
1304   - });
1305   -
1306   - polyline.data = data;
1307   - polyline.start = start;
1308   - polyline.end = end;
1309   - polyline.ct_source = '1';
1310   - // 把折线添加到地图上
1311   - mapBValue.addOverlay(polyline);
1312   - // 聚焦事件
1313   - polyline.addEventListener('mousemove', function (e) {
1314   - if (this != editPolyline)
1315   - this.setStrokeColor("#20bd26");
1316   - });
1317   - // 失去焦点
1318   - polyline.addEventListener('mouseout', function (e) {
1319   - if (this != editPolyline && this != road_win_show_p)
1320   - this.setStrokeColor("red");
1321   - });
1322   - // 添加单击事件
1323   - polyline.addEventListener('onclick', function (e) {
1324   - // 打开信息窗口
1325   - if (map_status != 1)
1326   - WorldsBMap.openSectionInfoWin_inout(this);
1327   - });
1328   - // 添加右击事件
1329   - polyline.addEventListener('rightclick', function (e) {
1330   - if (currentSection.enableEditing) {
1331   - this.disableEditing();
1332   - WorldsBMap.saveSection_inout(this);
1333   - }
1334   - });
1335   - sectionArray.push(polyline);
1336   - },
1337   -
1338   - // 打开路段信息窗口
1339   - openSectionInfoWin_inout: function(p) {
1340   - var sectionRoute = p.data;
1341   - var dir = sectionRoute.directions;
1342   - var width = WorldsBMap.strGetLength(sectionRoute.section.sectionName) * 10;
1343   - // 信息窗口参数属性
1344   - var opts = {
1345   - // 信息窗口宽度
1346   - width: (width < 200 ? 200 : width),
1347   - // 信息窗口高度
1348   - height: 150,
1349   - //设置不允许信窗发送短息
1350   - enableMessage: false,
1351   - //是否开启点击地图关闭信息窗口
1352   - enableCloseOnClick: false,
1353   - // 是否开启信息窗口打开时地图自动移动(默认开启)。(自 1.1 新增)
1354   - enableAutoPan: false
1355   - };
1356   - var htm = '<span style="color: #ff8355;font-size: 18px;">' + sectionRoute.section.sectionName + '</span>' +
1357   - '<span class="help-block" >路段编码:' + sectionRoute.sectionCode + '</span>' +
1358   - '<span class="help-block" >路段序号:' + sectionRoute.sectionrouteCode + '</span>' +
1359   - '<span class="help-block" >版本号&nbsp&nbsp:' + sectionRoute.versions + '</span>' +
1360   - '<div >';
1361   -
1362   - if($($("#versions").find("option:selected")[0]).attr("status") > 0){
1363   - htm += '<button class="info_win_btn" id="editStation" onclick="WorldsBMap.editSection_inout(' + sectionRoute.id +','+dir+ ')">修改</button>' +
1364   - '<button class="info_win_btn" id="addBetweenStationRoad" onclick="WorldsBMap.destroySection_inout('+ sectionRoute.id + ','+sectionRoute.line.id+','+sectionRoute.directions+')">撤销</button>' +
1365   - '<button class="info_win_btn" id="addSectionAfter" onclick="WorldsBMap.addSectionAfter_inout('+sectionRoute.id+')">添加路段(之后)</button>' +
1366   - '</div>';
1367   - }
1368   -
1369   - // 创建信息窗口
1370   - var infoWindow_target = new BMap.InfoWindow(htm, opts);
1371   - // 切割段折线坐标字符串
1372   - var sectionStr = section.section.bsectionVectorWkt.substring(11, section.section.bsectionVectorWkt.length - 1);
1373   - // 分割折线坐标字符串
1374   - var lineArray = sectionStr.split(',');
1375   - var sectionArray = [];
1376   - for (var i = 0; i < lineArray.length; i++) {
1377   - sectionArray.push(new BMap.Point(lineArray[i].split(' ')[0], lineArray[i].split(' ')[1]));
1378   - }
1379   - // 计算中间点
1380   - var index = parseInt(sectionArray.length / 2);
1381   - var centerPoint = sectionArray[index];
1382   - //close event
1383   - infoWindow_target.addEventListener('close', function (e) {
1384   - p.setStrokeColor("red");
1385   - road_win_show_p = null;
1386   - });
1387   - //open event
1388   - infoWindow_target.addEventListener('open', function (e) {
1389   - p.setStrokeColor("#20bd26");
1390   - road_win_show_p = p;
1391   - });
1392   - //开启信息窗口
1393   - mapBValue.openInfoWindow(infoWindow_target, centerPoint);
1394   - mapBValue.panTo(centerPoint);
1395   - },
1396   -
1397   - /**
1398   - * 进出场路段设置为编辑状态
1399   - */
1400   - editSection_inout: function(sectionRouteId) {
1401   - layer.confirm('进入编辑状态', {
1402   - btn : [ '确定','返回' ], icon: 3, title:'提示'
1403   - }, function() {
1404   - PublicFunctions.editMapStatus(dir);
1405   - layer.msg('双击保存路段');
1406   - var p;
1407   - for (var i = 0; p = sectionArray[i++];) {
1408   - if (p.data.id == sectionRouteId) {
1409   - mapBValue.closeInfoWindow();//关闭infoWindow
1410   - p.enableEditing();
1411   - p.setStrokeColor('blue');
1412   - editPolyline = p;
1413   - break;
1414   - }
1415   - }
1416   - // 路段中间点为中心
1417   - var section = p.data;
1418   - var sectionStr = section.section.bsectionVectorWkt.substring(11, section.section.bsectionVectorWkt.length - 1);
1419   - // 分割折线坐标字符串
1420   - var lineArray = sectionStr.split(',');
1421   - var sectionPointArray = [];
1422   - for (var i = 0; i < lineArray.length; i++) {
1423   - sectionPointArray.push(new BMap.Point(lineArray[i].split(' ')[0], lineArray[i].split(' ')[1]));
1424   - }
1425   - // 计算中间点
1426   - var index = parseInt(sectionPointArray.length / 2);
1427   - var centerPoint = sectionPointArray[index];
1428   - mapBValue.centerAndZoom(centerPoint, 17);
1429   - // var c = p.ia[Math.floor(p.ia.length/2)];
1430   - // mapBValue.centerAndZoom(new BMap.Point(c.lng, c.lat), 18);
1431   - p.addEventListener('dblclick', function () {
1432   - /** 设置修改路段集合对象为空 */
1433   - editPolyline = '';
1434   - PublicFunctions.editMapStatusRemove();
1435   - $.get('editsection_inout.html', function(m){
1436   - $('body').append(m);
1437   - $('#edit_section_mobal').trigger('editSectionMobal_show', [WorldsBMap,GetAjaxData,p,PublicFunctions]);
1438   - });
1439   - });
1440   - });
1441   - },
1442   -
1443   - // 撤销路段
1444   - destroySection_inout : function(sectionRouteId) {
1445   - layer.confirm('你确定要撤销此路段吗?', {
1446   - btn : [ '撤销','返回' ], icon: 3, title:'提示'
1447   - }, function(){
1448   - var status = $($("#versions").find("option:selected")[0]).attr("status");
1449   - $.post('/inout/destroy',{'id': sectionRouteId,status:status},function(resuntDate) {
1450   - if (resuntDate.status == 'SUCCESS') {
1451   - // 弹出添加成功提示消息
1452   - layer.msg('撤销成功!');
1453   - } else {
1454   - // 弹出添加失败提示消息
1455   - layer.msg('撤销失败!');
1456   - }
1457   - // 刷新左边树
1458   - $('#inoutSearch').click();
1459   - /** 查询路段信息 @param:<Line.id:线路Id;delBatch.dir:方向> @return:data:路段数据 */
1460   -// GetAjaxData.getSectionRouteInfo(lineId,dir,function(data) {
1461   -// /** 在地图上画出线路走向 @param:<Line.id:线路Id;delBatch.dir:方向;data:路段数据> */
1462   -// PublicFunctions.linePanlThree(lineId,data,dir);
1463   -// });
1464   - });
1465   - });
1466   - },
1467   -
1468   - // 添加在路段之后
1469   - addSectionAfter_inout : function(sectionRouteId) {
1470   - //order = after before;
1471   - var beforeSection;
1472   - // 关闭信息窗口
1473   - mapBValue.closeInfoWindow();
1474   - PublicFunctions.editMapStatus();
1475   - // 把数据填充到模版中
1476   - var addSectionHTML = template('add_draw_polyline-temp',{ 'id': sectionRouteId});
1477   - $('body .mian-portlet-body').append(addSectionHTML);
1478   - //暂停和开始绘制
1479   - $('.draw_polyline_switch>a').on('click', function () {
1480   - var t = $(this).text();
1481   - if(t=='暂停绘制'){
1482   - WorldsBMap.exitDrawStatus();
1483   - $(this).text('开始绘制');
1484   - }
1485   - else{
1486   - WorldsBMap.openDrawStatus();
1487   - $(this).text('暂停绘制');
1488   - }
1489   - });
1490   -
1491   - //取消
1492   - $('#addSectionCancelBtn').on('click', function () {
1493   - $('.main_left_panel_m_layer').hide();
1494   - $(this).parents('.buffer_edit_body').parent().remove();
1495   - WorldsBMap.exitDrawStatus();
1496   - PublicFunctions.editMapStatusRemove();
1497   - });
1498   - GetAjaxData.getRouteInfoById(sectionRouteId, function(data){
1499   - beforeSection = data;
1500   - beforeSection.sectionBsectionVector = beforeSection.section.bsectionVectorWkt;
1501   - WorldsBMap.showAddSectionPanel(beforeSection);
1502   - });
1503   -
1504   - //确定
1505   - $('#addSectionSbmintBtn').on('click', function () {
1506   - var btn = this;
1507   - $('#addSectionSbmintBtn').addClass("disabled");
1508   - var sectionName = $('#sectionNameInput').val();
1509   - var bsectionVector = $('#bsectionVectorInput').val();
1510   - var params = {};
1511   - if(sectionName && bsectionVector) {
1512   - WorldsBMap.exitDrawStatus();
1513   - GetAjaxData.getSectionCode(function(sectionCode) {
1514   - params.lineId = beforeSection.line.id;
1515   - params.lineCode = beforeSection.lineCode;
1516   - params.sectionCode = sectionCode;// 设值路段编码.
1517   - params.sectionName = sectionName;
1518   - params.roadCoding = '';
1519   - params.dbType = 'b';
1520   - params.bsectionVector = bsectionVector;
1521   - params.sectionrouteCode = beforeSection.sectionrouteCode+"_0";
1522   - params.sectionTime = 0;
1523   - params.sectionDistance = 60;
1524   - params.speedLimit = 0;
1525   - params.versions = beforeSection.versions;
1526   - params.destroy = 0;
1527   - params.directions = beforeSection.directions;
1528   - params.descriptions = '';
1529   - params.start = beforeSection.start;
1530   - params.end = beforeSection.end;
1531   - params.status=$($("#versions").find("option:selected")[0]).attr("status");
1532   -
1533   - GetAjaxData.inoutSectionSave(params, function (result) {
1534   - if(result.status =="SUCCESS"){
1535   - $('.main_left_panel_m_layer').hide();
1536   - $(btn).parents('.buffer_edit_body').parent().remove();
1537   - PublicFunctions.editMapStatusRemove();
1538   - $('#inoutSearch').click();
1539   - PublicFunctions.editAChangeCssRemoveDisabled();
1540   -// GetAjaxData.getSectionRouteInfo(lineId,dir,function(data) {
1541   -// PublicFunctions.linePanlThree(lineId,data,dir);
1542   -// });
1543   - layer.msg("添加成功!");
1544   - } else if(result.status =="ERROR") {
1545   - layer.msg("添加失败!");
1546   - }
1547   - });
1548   - });
1549   - } else if(!sectionName){
1550   - layer.msg('请填写路段名字!');
1551   - } else if(!bsectionVector)
1552   - layer.msg('请先绘制路段!');
1553   - setTimeout(function () {
1554   - $("#addSectionSbmintBtn").removeClass("disabled");
1555   - },1000);
1556   - });
1557   - },
1558   - /**
1559   - * 保存进出场路段
1560   - */
1561   - saveSection_inout: function () {
1562   - $.get('editsection_inout.html', function(m){
1563   - $('body').append(m);
1564   - $('#edit_section_mobal').trigger('editSectionMobal_show', [WorldsBMap,GetAjaxData,currentSection,PublicFunctions]);
1565   - });
1566   - },
1567   - /**
1568   - * 添加站点时marker右键事件监听
1569   - * 确认站点中心点
1570   - */
1571   - confirmCenterPointHandler: function (event) {
1572   - // 清除覆盖物
1573   - mapBValue.closeInfoWindow();
1574   - mapBValue.clearOverlays();
1575   - mapBValue.removeEventListener('click', Bmap.pickCenterPointHandler);
1576   -
1577   - var marker = event.target;
1578   - var position = marker.getPosition(), station = marker.station;
1579   - marker.disableDragging();
1580   - mapBValue.addOverlay(marker);
1581   - if (marker.station) {
1582   - var label = new BMap.Label(station.stationName, {offset: new BMap.Size(25, 0)});
1583   - label.setStyle({border: '0px'});
1584   - marker.setLabel(label);
1585   - AddStationObj.setPhysicalStation(station);
1586   - layer.msg('已选定站点!');
1587   - } else {
1588   - /** 设置新增站点集合对象站点中心点百度坐标属性值 @param:<bJwpoints:中心点百度坐标) */
1589   - AddStationObj.resetPhysicalStation();
1590   - AddStationObj.setAddStationJwpoints(position.lng + " " + position.lat);
1591   - layer.msg('已确定中心点!');
1592   - }
1593   - marker.removeEventListener('rightclick', Bmap.confirmCenterPointHandler);
1594   - if (AddStationObj.getAddStation().shapesType === 'd') {
1595   - // 打开绘制工具
1596   - DrawingManagerObj.openDrawingManager();
1597   - PublicFunctions.editMapStatus(AddStationObj.getAddStation().dir);
1598   - layer.msg('请点击选择多边形区域');
1599   - } else {
1600   - marker.addEventListener('dblclick', Bmap.formCenterPointHandler);
1601   - layer.msg('请双击中心点图标进行下一步操作');
1602   - }
1603   - },
1604   - /**
1605   - * 确认中心点之后 填写附加字段
1606   - */
1607   - formCenterPointHandler: function () {
1608   - if (setTimeoutId) {
1609   - clearTimeout(setTimeoutId);
1610   - }
1611   - $.get('add_stationroute_step2.html', function(m){
1612   - $(pjaxContainer).append(m);
1613   - $('#add_stationroute_step2_modal').trigger('modal.show', [Bmap,GetAjaxData,AddStationObj,LineObj,PublicFunctions]);
1614   - });
1615   - },
1616   - addStationInit: function () {
1617   - for (var i = 0;i < overlays.length;i++) {
1618   - mapBValue.removeOverlay(overlays[i]);
1619   - }
1620   - overlays = new Array();
1621   - }
1622   - };
1623   -
1624   - return Bmap;
1625   -}();
1626 0 \ No newline at end of file
src/main/resources/static/pages/base/stationroute/js/stationroute-list-reload.js deleted 100644 → 0
1   -/**
2   - * reload事件
3   - *
4   - *
5   - */
6   -$(function() {
7   - // 关闭左侧栏
8   - if (!$('body').hasClass('page-sidebar-closed')) {
9   - $('.menu-toggler.sidebar-toggler').click();
10   - }
11   - // 获取参数线路ID
12   - var idAndDir = $.url().param('no');
13   - var param = idAndDir.split(",");
14   - var dir = 0, id;
15   - if (param.length == 1) {
16   - id = param[0];
17   - } else {
18   - id = param[0];
19   - dir = param[1];
20   - }
21   - if (dir == 1) {
22   - $('#stationUp').removeClass('active');
23   - $('#stationUp').removeClass('in');
24   - $('#stationUp').addClass('fade');
25   - $('#stationDown').addClass('active in');
26   - $('#upLine').parent().removeClass('active');
27   - $('#downLine').parent().addClass('active');
28   - }
29   - // 如果线路ID不为空
30   - if (id) {
31   - var styleOptions = {
32   - strokeColor : "blue",// 边线颜色。
33   - fillColor : "blue",// 填充颜色。当参数为空时,圆形将没有填充效果。
34   - strokeWeight : 3,// 边线的宽度,以像素为单位。
35   - strokeOpacity : 0.8,// 边线透明度,取值范围0 - 1。
36   - fillOpacity : 0.6,// 填充的透明度,取值范围0 - 1。
37   - strokeStyle : 'solid' // 边线的样式,solid或dashed。
38   - };
39   -
40   - // 等候500毫秒执行
41   - setTimeout(function() {
42   -
43   - /**
44   - * 初始化线路对象,这里只初始化线路Id属性
45   - *
46   - * @param:<id:线路ID>
47   - * @return:Line
48   - */
49   - var Line = LineObj.init(id);
50   -
51   - WorldsBMap.setLineId(Line.id);
52   - $("#versions").change(
53   - function() {
54   - var val = $(this).val();
55   -
56   - WorldsBMap.setStatus(Line.id, val, 0);
57   - /**
58   - * 初始化上行树
59   - *
60   - * @param:<Line.id:线路Id;0:上行>
61   - */
62   - PublicFunctions.resjtreeDate(Line.id, '0', val);
63   -
64   -
65   - LineObj.setStatus($($("#versions").find("option:selected")[0]).attr("status"));
66   - /**
67   - * 初始化下行树
68   - *
69   - * @param:<Line.id:线路Id;1:下行>
70   - */
71   - // PublicFunctions.resjtreeDate(Line.id,'1',val);
72   - $('#stationDown').removeClass('active');
73   - $('#stationDown').removeClass('in');
74   - $('#stationDown').addClass('fade');
75   - $('#inoutCarpark').removeClass('active');
76   - $('#inoutCarpark').removeClass('in');
77   - $('#inoutCarpark').addClass('fade');
78   - $('#stationUp').addClass('active in');
79   - $('#downLine').parent().removeClass('active');
80   - $('#inoutLine').parent().removeClass('active');
81   - $('#upLine').parent().addClass('active');
82   -
83   - if ($($("#versions").find("option:selected")[0]).attr("status") > 0) {
84   - $(".table-toolbar").show();
85   - } else {
86   - $(".table-toolbar").hide();
87   - }
88   -
89   - });
90   -
91   - /**
92   - * 初始化线路标题
93   - *
94   - * @param:<Line.id:线路ID>
95   - */
96   - PublicFunctions.setTiteText(Line.id);
97   -
98   - /**
99   - * 初始化地图对象map
100   - *
101   - * @return:Map对象
102   - */
103   - var map_ = WorldsBMap.init();
104   -
105   - /**
106   - * 初始化绘图工具类
107   - *
108   - * @param:<map_:map对象;styleOptions:绘图样式对象>
109   - * @return:DrawingManager对象
110   - */
111   - DrawingManagerObj.init(map_, styleOptions);
112   -
113   - GetAjaxData.getAllLineVersions(Line.id, function(data) {
114   - $("#versions option").remove();
115   - var reqData = false;
116   - for (var i = 0; i < data.length; i++) {
117   - var ver = data[i];
118   - if (ver.status == 1) {
119   - PublicFunctions.TreeUpOrDown(Line.id, '0', ver.versions);
120   - PublicFunctions.TreeUpOrDown(Line.id, '1', ver.versions);
121   - reqData = true;
122   -
123   - var option = "<option value=" + ver.versions + " status=" + ver.status + " selected>" + ver.name + " (" + ver.versions + ")" + "</option>"
124   - $("#versions").append(option);
125   - LineObj.setStatus(ver.status);
126   - continue;
127   - }
128   - var option = "<option value=" + ver.versions + " status=" + ver.status + ">" + ver.name + " (" + ver.versions + ")" + "</option>"
129   - $("#versions").append(option);
130   - }
131   -
132   - if (!reqData) {
133   - for (var i = 0; i < data.length; i++) {
134   - if (ver.status == 2) {
135   - PublicFunctions.TreeUpOrDown(Line.id, '0', ver.versions);
136   - PublicFunctions.TreeUpOrDown(Line.id, '1', ver.versions);
137   - LineObj.setStatus(ver.status);
138   - break;
139   - }
140   - }
141   - }
142   - });
143   -
144   - $('#esc_edit_div').on('click', function() {
145   - var index = layer.open({
146   - title: '退出提示',
147   - content: '退出编辑模式后,当前没有保存的所有操作将被还原,确定要退出吗!',
148   - btn: [ '确定', '取消' ],
149   - yes: function(index) {
150   - var dir = WorldsBMap.getDir();
151   -
152   - PublicFunctions.resjtreeDate(Line.id, dir, $("#versions").val());
153   - PublicFunctions.editMapStatusRemove();
154   - layer.msg("已退出编辑模式!");
155   - layer.close(index);
156   - },
157   - btn2: function() {
158   - layer.closeAll(index); // 关闭当前窗口
159   - layer.msg("您没有退出编辑模式,请继续完成您未完成的操作!")
160   - }
161   - });
162   - });
163   - }, 500);
164   -
165   - } else {
166   - // 缺少ID
167   - layer.confirm('【ID缺失,请点击返回,重新进行操作】', {
168   - btn : [ '返回' ],
169   - icon : 3,
170   - title : '提示'
171   - }, function(index) {
172   -
173   - // 关闭提示弹出层
174   - layer.close(index);
175   -
176   - // 返回线路list页面
177   - loadPage('/pages/base/line/list.html');
178   -
179   - });
180   -
181   - }
182   - $('.green-seagreen dropdown-toggle').click(function() {
183   - $('.dropdown-menu').css("display", "block");
184   - });
185   -});
186 0 \ No newline at end of file
src/main/resources/static/pages/base/stationroute/js/stationroute-list-treedata.js deleted 100644 → 0
1   -/**
2   - *
3   - * 左边树Obj : StationTreeData
4   - *
5   - * - - - - - - 》 upInit : 初始化上行树
6   - *
7   - * - - - - - - 》 downInit : 初始化下行树
8   - *
9   - * - - - - - - 》 reloadUp : 刷行上行树
10   - *
11   - * - - - - - - 》 reloadDown : 刷行下行树
12   - */
13   -
14   -var StationTreeData = function(){
15   -
16   - function parmasObj() {
17   -
18   - AddStationObj.setAddStation({});
19   -
20   - EditStationObj.setEditStation({});
21   -
22   - EditSectionObj.setEitdSection({});
23   -
24   - }
25   -
26   - function TreeOnclickEvent(nodes) {
27   - if(nodes == null || nodes.length < 1) {
28   - return;
29   - }
30   -
31   - var original = nodes[0].original, type = original.type;
32   -
33   - if (type == "section") {
34   - WorldsBMap.focusSection(original.cdata.id);
35   - } else if(type == "station") {
36   - WorldsBMap.openStationRouteInfoWin(original.cdata);
37   - } else if(type == "addSection") {
38   - WorldsBMap.addSection(original.cdata);
39   - }
40   - }
41   - var stationTree = {
42   - format: function(routes) {
43   - var sectionRoutes = this.formatSectionRoutes(routes.sectionRoutes, 'section-routes');
44   - if (sectionRoutes.length == 0) {
45   - sectionRoutes = [{id: 0, pId: -1, name: '添加路段', text: '添加路段', groupType: 3, enable : true, type: 'addSection'}];
46   - }
47   - return {
48   - groupType: 1,
49   - enable: true,
50   - name: '站点与路段',
51   - id: 'root',
52   - text: '站点与路段',
53   - children: [{
54   - groupType: 2,
55   - enable: true,
56   - name: '站点',
57   - id: 'station-routes',
58   - pid: 'root',
59   - text: '站点',
60   - children: this.formatStationRoutes(routes.stationRoutes, 'station-routes')
61   - }, {
62   - groupType: 2,
63   - enable: true,
64   - name: '路段',
65   - id: 'section-routes',
66   - pid: 'root',
67   - text: '路段',
68   - children: sectionRoutes
69   - }]};
70   - },
71   - formatStationRoutes: function(stationRoutes, pid) {
72   - var result = new Array(), i = 0;
73   - for (;i < stationRoutes.length;i++) {
74   - var stationRoute = stationRoutes[i];
75   - result.push({
76   - groupType: 3,
77   - enable: true,
78   - id: stationRoute.id,
79   - pid: pid,
80   - text: stationRoute.stationName,
81   - type: 'station',
82   - cdata: stationRoute
83   - })
84   - }
85   -
86   - return result;
87   - },
88   - formatSectionRoutes: function(sectionRoutes, pid) {
89   - var result = new Array(), i = 0;
90   - for (;i < sectionRoutes.length;i++) {
91   - var sectionRoute = sectionRoutes[i];
92   - result.push({
93   - groupType: 3,
94   - enable: true,
95   - id: sectionRoute.id,
96   - pid: pid,
97   - text: sectionRoute.section.sectionName,
98   - type: 'section',
99   - cdata: sectionRoute
100   - })
101   - }
102   -
103   - return result;
104   - },
105   - upInit : function(routes) {
106   - // 如果不为空
107   - if(routes) {
108   - // 加载树load事件
109   - $('#station_Up_tree').on('loaded.jstree', function(e, data){
110   - // 展开树
111   - $.jstree.reference("#station_Up_tree").open_all();
112   - }).jstree({
113   - 'core' : {
114   - 'themes' : {
115   - 'responsive': false
116   - },
117   -
118   - 'data': this.format(routes),
119   -
120   - 'multiple':false
121   -
122   - },
123   -
124   - 'types' : {
125   -
126   - "default" : {
127   -
128   - "icon" : false
129   -
130   - },
131   -
132   - 'enable_true' : {
133   -
134   - "icon" : 'fa fa-check icon-lg'
135   -
136   - },
137   -
138   - 'enable_false' : {
139   -
140   - 'icon' : 'fa fa-close icon-lg'
141   -
142   - },
143   -
144   - 'group':{
145   -
146   - 'icon' : 'fa fa-object-group icon-lg'
147   -
148   - }
149   - },
150   -
151   - 'plugins': ['types']
152   -
153   - // 树节点单击事件
154   - }).bind('click.jstree', function(event) {
155   - // 获取上行选中树节点
156   - var nodes = $.jstree.reference("#station_Up_tree").get_selected(true);
157   - TreeOnclickEvent(nodes);
158   - });
159   - }
160   - },
161   - downInit : function(routes) {
162   - // 如果不为空
163   - if(routes) {
164   - // 树初始化load事件
165   - $('#station_Down_tree').on('loaded.jstree', function(e, data){
166   - // 展开树
167   - $.jstree.reference("#station_Down_tree").open_all();
168   - }).jstree({
169   - 'core' : {
170   - 'themes' : {
171   -
172   - 'responsive': false
173   -
174   - },
175   -
176   - 'data': this.format(routes),
177   -
178   - 'multiple':false
179   -
180   - },
181   -
182   - 'types' : {
183   -
184   - "default" : {
185   -
186   - "icon" : false
187   -
188   - },
189   -
190   - 'enable_true' : {
191   -
192   - "icon" : 'fa fa-check icon-lg'
193   -
194   - },
195   -
196   - 'enable_false' : {
197   -
198   - 'icon' : 'fa fa-close icon-lg'
199   -
200   - },
201   -
202   - 'group':{
203   -
204   - 'icon' : 'fa fa-object-group icon-lg'
205   -
206   - }
207   - },
208   - 'plugins': ['types']
209   - // 树节点单击事件
210   - }).bind('click.jstree', function(event) {
211   - // 获取下行选中树节点
212   - var treeOjb = $.jstree.reference("#station_Down_tree").get_selected(true);
213   - TreeOnclickEvent(treeOjb);
214   - });
215   - }
216   - },
217   - inoutInit : function(treeDateJson) {
218   - // 如果不为空
219   - if(treeDateJson) {
220   - // 树初始化load事件
221   - $('#inout_carpark_tree').on('loaded.jstree', function(e, data){
222   - // 展开树
223   - $.jstree.reference("#inout_carpark_tree").open_all();
224   - }).jstree({
225   - 'core' : {
226   - 'themes' : {
227   - 'responsive': false
228   - },
229   - 'data': treeDateJson,
230   - 'multiple':false
231   - },
232   - 'types' : {
233   - "default" : {
234   - "icon" : false
235   - },
236   - 'enable_true' : {
237   - "icon" : 'fa fa-check icon-lg'
238   - },
239   - 'enable_false' : {
240   - 'icon' : 'fa fa-close icon-lg'
241   - },
242   - 'group':{
243   - 'icon' : 'fa fa-object-group icon-lg'
244   - }
245   - },
246   - 'plugins': ['types']
247   - // 树节点单击事件
248   - }).bind('click.jstree', function(event) {
249   - // 获取下行选中树节点
250   - var treeOjb = $.jstree.reference("#inout_carpark_tree").get_selected(true);
251   - TreeOnclickEvent(treeOjb);
252   - });
253   - }
254   - },
255   - reloadUp : function (routes) {
256   - // 获取上行树
257   - var tree = $.jstree.reference('#station_Up_tree');
258   - // 赋值数据
259   - tree.settings.core.data = this.format(routes);
260   - // 刷新上行树
261   - tree.refresh();
262   - // 展开树
263   - setTimeout(function () {
264   - tree.open_all();
265   - },500);
266   - },
267   - reloadDown : function (routes) {
268   - // 获取下行树
269   - var tree = $.jstree.reference('#station_Down_tree');
270   - // 赋值数据
271   - tree.settings.core.data = this.format(routes);
272   - // 刷行下行树
273   - tree.refresh();
274   - // 展开树
275   - setTimeout(function () {
276   - tree.open_all();
277   - },500);
278   - },
279   - inoutreloadeTree : function (treeDateJson) {
280   - // 获取下行树
281   - var tree = $.jstree.reference('#inout_carpark_tree');
282   - // 赋值数据
283   - tree.settings.core.data = treeDateJson;
284   - // 刷行下行树
285   - tree.refresh();
286   - // 展开树
287   - setTimeout(function () {
288   - tree.open_all();
289   - },500);
290   - }
291   - }
292   -
293   - return stationTree;
294   -
295   -}();
296 0 \ No newline at end of file
src/main/resources/static/pages/base/stationroute/list.html
... ... @@ -308,30 +308,9 @@
308 308 </div>
309 309 </div>
310 310 </div>
311   -<!-- 线路类 -->
312   -<script src="/pages/base/stationroute/js/line.js"></script>
313   -<!-- 新增站点对象类 -->
314   -<script src="/pages/base/stationroute/js/addstationobj.js"></script>
315   -<!-- 修改站点对象类 -->
316   -<script src="/pages/base/stationroute/js/editstationobj.js"></script>
317   -<!-- 修改路段对象类 -->
318   -<script src="/pages/base/stationroute/js/editsection.js"></script>
319   -<!-- 批量撤销对象类 -->
320   -<script src="/pages/base/stationroute/js/deletebatch.js"></script>
321   -<!-- 绘图类 -->
322   -<script src="/pages/base/stationroute/js/drawingManager.js"></script>
323   -<!-- 地图类 -->
324   -<script src="/pages/base/stationroute/js/stationroute-list-map.js"></script>
325   -<!-- 函数与方法 -->
326   -<script src="/pages/base/stationroute/js/stationroute-list-function.js"></script>
327   -<!-- ajax请求类 -->
328   -<script src="/pages/base/stationroute/js/stationroute-ajax-getdata.js"></script>
329   -<!-- 树对类 -->
330   -<script src="/pages/base/stationroute/js/stationroute-list-treedata.js"></script>
331   -<!-- reload事件 -->
332   -<script src="/pages/base/stationroute/js/stationroute-list-reload.js"></script>
333   -<!-- 事件监听 -->
334   -<script src="/pages/base/stationroute/js/stationroute-list-events.js"></script>
  311 +<script src="/pages/base/stationroute/js/routes-operation.js"></script>
  312 +<script src="/pages/base/stationroute/js/routes-service.js"></script>
  313 +
335 314  
336 315 <script id="add_draw_polyline-temp" type="text/html">
337 316 <div class="add_road_search_point_wrap ">
... ... @@ -387,79 +366,80 @@
387 366 </div>
388 367 </div>
389 368 </script>
390   -
391 369 <script type="text/javascript">
392   - setTimeout(function () {
393   - // 百度地图API功能
394   - function G(id) {
395   - return document.getElementById(id);
396   - }
397   -
398   - var myMap = WorldsBMap.getmapBValue();
  370 + var proxy = EventProxy.create('routes-operation-loaded', 'routes-service-loaded', function() {
  371 + RoutesOperation.initPage();
  372 + RoutesOperation.initMap();
  373 + RoutesOperation.initStationDrawingManager();
399 374  
400   - var ac = new BMap.Autocomplete({"input": "searchInput" ,"location": myMap});
  375 + // 百度地图API功能
  376 + function G(id) {
  377 + return document.getElementById(id);
  378 + }
  379 + var baiduMap = RoutesOperation.getBaiduMap();
  380 + var ac = new BMap.Autocomplete({"input": "searchInput" ,"location": baiduMap});
401 381  
402   - ac.addEventListener("onhighlight", function(e) { //鼠标放在下拉列表上的事件
403   - var str = "";
404   - var _value = e.fromitem.value;
405   - var value = "";
406   - if (e.fromitem.index > -1) {
407   - value = _value.province + _value.city + _value.district + _value.street + _value.business;
408   - }
409   - str = "FromItem<br />index = " + e.fromitem.index + "<br />value = " + value;
  382 + ac.addEventListener("onhighlight", function(e) { //鼠标放在下拉列表上的事件
  383 + var str = "";
  384 + var _value = e.fromitem.value;
  385 + var value = "";
  386 + if (e.fromitem.index > -1) {
  387 + value = _value.province + _value.city + _value.district + _value.street + _value.business;
  388 + }
  389 + str = "FromItem<br />index = " + e.fromitem.index + "<br />value = " + value;
410 390  
411   - value = "";
412   - if (e.toitem.index > -1) {
413   - _value = e.toitem.value;
414   - value = _value.province + _value.city + _value.district + _value.street + _value.business;
415   - }
416   - str += "<br />ToItem<br />index = " + e.toitem.index + "<br />value = " + value;
417   - G("searchResultPanel").innerHTML = str;
418   - });
  391 + value = "";
  392 + if (e.toitem.index > -1) {
  393 + _value = e.toitem.value;
  394 + value = _value.province + _value.city + _value.district + _value.street + _value.business;
  395 + }
  396 + str += "<br />ToItem<br />index = " + e.toitem.index + "<br />value = " + value;
  397 + G("searchResultPanel").innerHTML = str;
  398 + });
419 399  
420   - var myValue;
421   - ac.addEventListener("onconfirm", function(e) { //鼠标点击下拉列表后的事件
422   - var _value = e.item.value;
423   - myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
424   - G("searchResultPanel").innerHTML ="onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue;
  400 + var myValue;
  401 + ac.addEventListener("onconfirm", function(e) { //鼠标点击下拉列表后的事件
  402 + var _value = e.item.value;
  403 + myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
  404 + G("searchResultPanel").innerHTML ="onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue;
425 405  
426   - setPlace();
427   - });
  406 + setPlace();
  407 + });
428 408  
429   - function setPlace(){
430   - // myMap.clearOverlays(); //清除地图上所有覆盖物
431   - var local = new BMap.LocalSearch(myMap, { //智能搜索
432   - onSearchComplete: myFun
433   - });
434   - function myFun(){
435   - var pp = local.getResults().getPoi(0) == undefined? null:local.getResults().getPoi(0).point;
436   - if(pp) {
437   - myMap.centerAndZoom(pp, 20);
438   - myMap.addOverlay(new BMap.Marker(pp)); //添加标注
439   - } else {
440   - layer.msg('找不到您输入的位置!')
441   - }
442   - }
443   - local.search(myValue);
444   - }
445   - $("#searchInput").on('input propertychange change', function () {
446   - if($("#searchInput").val() != null && $("#searchInput").val() != "")
447   - $('.search_panel .clear').removeClass('hide');
448   - else {
449   - // WorldsBMap.clearOtherOverlay();
450   - $('.search_panel .clear').addClass('hide');
451   - }
452   - });
  409 + function setPlace(){
  410 + // myMap.clearOverlays(); //清除地图上所有覆盖物
  411 + var local = new BMap.LocalSearch(myMap, { //智能搜索
  412 + onSearchComplete: myFun
  413 + });
  414 + function myFun(){
  415 + var pp = local.getResults().getPoi(0) == undefined? null:local.getResults().getPoi(0).point;
  416 + if(pp) {
  417 + myMap.centerAndZoom(pp, 20);
  418 + myMap.addOverlay(new BMap.Marker(pp)); //添加标注
  419 + } else {
  420 + layer.msg('找不到您输入的位置!')
  421 + }
  422 + }
  423 + local.search(myValue);
  424 + }
  425 + $("#searchInput").on('input propertychange change', function () {
  426 + if($("#searchInput").val() != null && $("#searchInput").val() != "")
  427 + $('.search_panel .clear').removeClass('hide');
  428 + else {
  429 + // WorldsBMap.clearOtherOverlay();
  430 + $('.search_panel .clear').addClass('hide');
  431 + }
  432 + });
453 433  
454   - $('.search_panel .clear').on('click',function () {
455   - // WorldsBMap.clearOtherOverlay();
456   - $("#searchInput").val('');
457   - $("#searchInput").change();
458   - });
459   - $('.search_panel .search_button').on('click',function () {
460   - myValue = $("#searchInput").val();
461   - setPlace();
462   - });
  434 + $('.search_panel .clear').on('click',function () {
  435 + // WorldsBMap.clearOtherOverlay();
  436 + $("#searchInput").val('');
  437 + $("#searchInput").change();
  438 + });
  439 + $('.search_panel .search_button').on('click',function () {
  440 + myValue = $("#searchInput").val();
  441 + setPlace();
  442 + });
463 443  
464 444 $('#historyGps').on('click', function() {
465 445 $.get('/pages/base/stationroute/list_template.html', function (content) {
... ... @@ -476,5 +456,5 @@
476 456 });
477 457 });
478 458 });
479   - },1000);
  459 + });
480 460 </script>
481 461 \ No newline at end of file
... ...
src/main/resources/static/pages/base/stationroute/tzzj.html
... ... @@ -9,7 +9,7 @@
9 9 <div class="modal-body">
10 10 <form class="form-horizontal" action="/" method="post" id="tzbcForm" role="form">
11 11 <!-- alert-danger 组件START -->
12   - <div class="alert alert-danger display-hide" id="tzbcAlert">
  12 + <div class="alert alert-danger display-hide" id="error">
13 13 <button class="close" data-close="alert"></button>
14 14 您的输入有误,请检查下面的输入项
15 15 </div>
... ... @@ -47,10 +47,10 @@
47 47 </td>
48 48 <td>
49 49 <!-- <input type="text" readonly class="form-control form-filter input-sm" name="station_{{i+1}}" value="{{obj.name}}">-->
50   - {{obj.stationRouteName}}
  50 + {{obj.stationName}}
51 51 </td>
52 52 <td>
53   - <input type="text" class="form-control form-filter input-sm" name="dis_{{obj.stationRouteId}}" value="{{obj.stationRouteDistances * 1000}}">
  53 + <input type="text" class="form-control form-filter input-sm" name="dis_{{obj.id}}" value="{{obj.distances * 1000}}">
54 54 </td>
55 55 </tr>
56 56 {{/each}}
... ... @@ -61,23 +61,21 @@
61 61 {{/if}}
62 62 </script>
63 63 <script type="text/javascript">
64   -$('#tzzj_mobal').on('tzzjMobal.show', function(e,map,gd,dir,lineid,pf,rd){
  64 +$('#tzzj_mobal').on('modal.show', function(event, stationRoutes){
  65 + var properties = RoutesOperation.getProperties();
65 66 setTimeout(function(){
66 67 // 加载延迟200毫秒显示mobal
67 68 $('#tzzj_mobal').modal({show : true,backdrop: 'static', keyboard: false});
68 69 },200);
69 70 // 当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。
70 71 $('#tzzj_mobal').on('show.bs.modal', function () {
71   - console.log(rd);
72   - // 把数据填充到模版中
73   - var tbodyHtml = template('tzzj_temp',{list:rd});
74   - // 把渲染好的模版html文本追加到表格中
  72 + var tbodyHtml = template('tzzj_temp', {list: stationRoutes});
75 73 $('#datatable_bctz tbody').html(tbodyHtml);
76 74 });
77 75 // 获取表单元素
78 76 var form = $('#tzbcForm');
79 77 // 错误提示元素
80   - var tzbcAlert = $('#tzbcAlert', form);
  78 + var error = $('#error', form);
81 79 // 下一步点击事件
82 80 $('#tzbcnext').on('click', function() {
83 81 form.submit();// 表单提交
... ... @@ -90,7 +88,7 @@ $(&#39;#tzzj_mobal&#39;).on(&#39;tzzjMobal.show&#39;, function(e,map,gd,dir,lineid,pf,rd){
90 88 rules : {
91 89 },
92 90 invalidHandler : function(event, validator) {
93   - tzbcAlert.show();
  91 + error.show();
94 92 App.scrollTo(reladplusname, -200);
95 93 },
96 94 highlight : function(element) {
... ... @@ -103,26 +101,15 @@ $(&#39;#tzzj_mobal&#39;).on(&#39;tzzjMobal.show&#39;, function(e,map,gd,dir,lineid,pf,rd){
103 101 label.closest('.form-group').removeClass('has-error');
104 102 },
105 103 submitHandler : function(f) {
106   - // 获取表单内容,并序列化
107 104 var params = form.serializeJSON();
108 105 $post('/api/lsstationroute/modifyDistance', params, function(data) {
109   - // 隐藏错误提示
110   - tzbcAlert.hide();
111   - // 隐藏 reladplus_mobal 弹出层
  106 + error.hide();
112 107 $('#tzzj_mobal').modal('hide');
113 108 if(data.status=='SUCCESS') {
114   - // 弹出添加成功提示消息
115 109 layer.msg('修改成功...');
116   - map.clearMarkAndOverlays();
117   - // 刷新左边树
118   - pf.resjtreeDate(lineid,dir,$("#versions").val());
119   - /** 查询上行路段信息 @param:<Line.id:线路Id;0:上行> @return:data:路段数据 */
120   - //gd.getSectionRouteInfo(lineid,dir,function(data) {
121   - // /** 在地图上画出线路走向 @param:<Line.id:线路Id;0:上行;data:路段数据> */
122   - // pf.linePanlThree(lineid,data,dir);
123   - //});
  110 + RoutesOperation.clearMarkAndOverlays();
  111 + RoutesOperation.resjtreeDate(properties.lineId, properties.directions, properties.versions);
124 112 }else {
125   - // 弹出添加失败提示消息
126 113 layer.msg('修改失败...');
127 114 }
128 115 });
... ...