Commit 9833366baab11204fc4004deefe153f18fb82853

Authored by 徐烜
2 parents ad34a2ee 048bc1fd

PSM-8

src/main/java/com/bsth/controller/schedule/SchedulePlanController.java
... ... @@ -4,11 +4,10 @@ import com.bsth.controller.BaseController;
4 4 import com.bsth.entity.schedule.SchedulePlan;
5 5 import com.bsth.service.schedule.SchedulePlanService;
6 6 import org.springframework.beans.factory.annotation.Autowired;
7   -import org.springframework.web.bind.annotation.RequestBody;
8   -import org.springframework.web.bind.annotation.RequestMapping;
9   -import org.springframework.web.bind.annotation.RequestMethod;
10   -import org.springframework.web.bind.annotation.RestController;
  7 +import org.springframework.web.bind.annotation.*;
11 8  
  9 +import java.util.Date;
  10 +import java.util.List;
12 11 import java.util.Map;
13 12  
14 13 /**
... ... @@ -35,5 +34,21 @@ public class SchedulePlanController extends BaseController<SchedulePlan, Long> {
35 34 return baseService.save(t);
36 35 }
37 36  
  37 + // TODO:
  38 +// @RequestMapping(value = "/groupinfos/{xlid}/{date}", method = RequestMethod.GET)
  39 +// public List<Map<String, Object>> findGroupInfo(
  40 +// Integer xlid, Date scheduleDate) {
  41 +//
  42 +// }
  43 +
  44 + @RequestMapping(value = "/groupinfos/{xlid}/{date}", method = RequestMethod.GET)
  45 + public List<Map<String, Object>> findGroupInfo(
  46 + @PathVariable(value = "xlid") Integer xlid,
  47 + @PathVariable(value = "date") Date scheduleDate) {
  48 + return schedulePlanService.findGroupInfo(xlid, scheduleDate);
  49 + }
  50 +
  51 +// public int updateGroupInfo
  52 +
38 53  
39 54 }
... ...
src/main/java/com/bsth/repository/schedule/SchedulePlanRepository.java
... ... @@ -6,8 +6,15 @@ import org.springframework.data.domain.Page;
6 6 import org.springframework.data.domain.Pageable;
7 7 import org.springframework.data.jpa.domain.Specification;
8 8 import org.springframework.data.jpa.repository.EntityGraph;
  9 +import org.springframework.data.jpa.repository.Query;
  10 +import org.springframework.data.repository.query.Param;
9 11 import org.springframework.stereotype.Repository;
10 12  
  13 +import javax.persistence.SqlResultSetMapping;
  14 +import java.util.Date;
  15 +import java.util.List;
  16 +import java.util.Map;
  17 +
11 18 /**
12 19 * Created by xu on 16/6/16.
13 20 */
... ... @@ -17,4 +24,37 @@ public interface SchedulePlanRepository extends BaseRepository&lt;SchedulePlan, Lon
17 24 @Override
18 25 Page<SchedulePlan> findAll(Specification<SchedulePlan> spec, Pageable pageable);
19 26  
  27 + @Query(value = " select " +
  28 + "xl_name as xlName, " +
  29 + "schedule_date as scheduleDate, " +
  30 + "lp_name as lpName, " +
  31 + "cl_zbh as clZbh, " +
  32 + "group_concat(distinct fcsj) ccsj, " +
  33 + "group_concat(distinct j_gh) jsyGh, " +
  34 + "group_concat(distinct j_name) jsyName, " +
  35 + "group_concat(distinct s_gh) spyGh, " +
  36 + "group_concat(distinct s_name) spyName, " +
  37 + "max(create_date) as createDate " +
  38 + "from bsth_c_s_sp_info " +
  39 + "where bc_type = 'out' and " +
  40 + "xl = ?1 and " +
  41 + "schedule_date = ?2 " +
  42 + "group by xl_name, schedule_date, lp_name " +
  43 + "order by xl_name, schedule_date, lp ", nativeQuery = true)
  44 + List<Object[]> findGroupInfo(Integer xlid, Date scheduleDate);
  45 +
  46 + @Query(value = "update " +
  47 + "bsth_c_s_sp_info " +
  48 + "set cl = :p1, cl_zbh = :p2 " +
  49 + "where xl = :p3 and " +
  50 + "schedule_date = :p4 and " +
  51 + "lp_name = :p5 ",
  52 + nativeQuery = true)
  53 + int updateGroupInfo_clinfo(
  54 + @Param("p1") Integer clid,
  55 + @Param("p2") String clZbh,
  56 + @Param("p3") Integer xlid,
  57 + @Param("p4") Date scheduleDate,
  58 + @Param("p5") String lpName);
  59 +
20 60 }
... ...
src/main/java/com/bsth/service/schedule/SchedulePlanService.java
... ... @@ -3,8 +3,31 @@ package com.bsth.service.schedule;
3 3 import com.bsth.entity.schedule.SchedulePlan;
4 4 import com.bsth.service.BaseService;
5 5  
  6 +import java.util.Date;
  7 +import java.util.List;
  8 +import java.util.Map;
  9 +
6 10 /**
7 11 * Created by xu on 16/6/16.
8 12 */
9 13 public interface SchedulePlanService extends BaseService<SchedulePlan, Long> {
  14 +
  15 + /**
  16 + * 查找分组排班信息。
  17 + * @param xlid 线路Id
  18 + * @param scheduleDate 排班日期
  19 + * @return
  20 + */
  21 + List<Map<String, Object>> findGroupInfo(Integer xlid, Date scheduleDate);
  22 +
  23 + /**
  24 + * 更新分组排班信息。
  25 + * @param clid 车辆id
  26 + * @param clZbh 车辆自编号
  27 + * @param xlid 线路id
  28 + * @param scheduleDate 排班日期
  29 + * @param lpName 路牌名字
  30 + * @return
  31 + */
  32 + int updateGroupInfo_clinfo(Integer clid, String clZbh, Integer xlid, Date scheduleDate, String lpName);
10 33 }
... ...
src/main/java/com/bsth/service/schedule/SchedulePlanServiceImpl.java
... ... @@ -5,7 +5,6 @@ import com.bsth.entity.schedule.*;
5 5 import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
6 6 import com.bsth.repository.schedule.SchedulePlanInfoRepository;
7 7 import com.bsth.repository.schedule.SchedulePlanRepository;
8   -import com.bsth.service.LineService;
9 8 import com.bsth.service.impl.BaseServiceImpl;
10 9 import com.bsth.service.schedule.rules.shiftloop.ScheduleCalcuParam_input;
11 10 import com.bsth.service.schedule.rules.shiftloop.ScheduleResult_output;
... ... @@ -31,10 +30,6 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt;
31 30 @Autowired
32 31 private KieBase kieBase;
33 32 @Autowired
34   - private ScheduleRule1FlatService scheduleRule1FlatService;
35   - @Autowired
36   - private LineService lineService;
37   - @Autowired
38 33 private IStrategy strategy;
39 34 @Autowired
40 35 private SchedulePlanRepository schedulePlanRepository;
... ... @@ -126,5 +121,91 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt;
126 121 return super.save(schedulePlan);
127 122 }
128 123  
  124 + @Override
  125 + public List<Map<String, Object>> findGroupInfo(Integer xlid, Date scheduleDate) {
  126 + List<Object[]> groupInfos = schedulePlanRepository.findGroupInfo(xlid, scheduleDate);
  127 + List<Map<String, Object>> ret = new ArrayList<>();
  128 + for (Object[] datas : groupInfos) {
  129 + // TODO:貌似springdata没有优雅的方式把List<Object[]>转换成List<Map<String, Object>>方法,
  130 + // TODO:可能jpa有相关标注,以后找到,此方法就作废
  131 +
  132 + Map<String, Object> map = new HashMap<>();
  133 +
  134 + // 线路名称
  135 + map.put("xlName", datas[0]);
  136 + // 排班时间
  137 + map.put("scheduleDate", datas[1]);
  138 + // 路牌名字
  139 + map.put("lpName", datas[2]);
  140 + // 车辆自编号
  141 + map.put("clZbh", datas[3]);
  142 + // 出场时间,如果有多个,需要分开
  143 + Object ccsj = datas[4];
  144 + if (ccsj != null) {
  145 + String[] ccsj_array = ((String) ccsj).split(",");
  146 + if (ccsj_array.length > 1) {
  147 + map.put("ccsj1", ccsj_array[0]);
  148 + map.put("ccsj2", ccsj_array[1]);
  149 + } else {
  150 + map.put("ccsj1", ccsj_array[0]);
  151 + }
  152 + }
  153 + // 驾驶员工号,如果有多个,需要分开
  154 + Object jsyGh = datas[5];
  155 + if (jsyGh != null) {
  156 + String[] jsyGh_array = ((String) jsyGh).split(",");
  157 + if (jsyGh_array.length > 1) {
  158 + map.put("jsy1Gh", jsyGh_array[0]);
  159 + map.put("jsy2Gh", jsyGh_array[1]);
  160 + } else {
  161 + map.put("jsy1Gh", jsyGh_array[0]);
  162 + }
  163 + }
  164 + // 驾驶员名字,如果有多个,需要分开
  165 + Object jsyName = datas[6];
  166 + if (jsyName != null) {
  167 + String[] jsyName_array = ((String) jsyName).split(",");
  168 + if (jsyName_array.length > 1) {
  169 + map.put("jsy1Name", jsyName_array[0]);
  170 + map.put("jsy2Name", jsyName_array[1]);
  171 + } else {
  172 + map.put("jsy1Name", jsyName_array[0]);
  173 + }
  174 + }
  175 + // 售票员工号,如果有多个,需要分开
  176 + Object spyGh = datas[7];
  177 + if (spyGh != null) {
  178 + String[] spyGh_array = ((String) spyGh).split(",");
  179 + if (spyGh_array.length > 1) {
  180 + map.put("spy1Gh", spyGh_array[0]);
  181 + map.put("spy2Gh", spyGh_array[1]);
  182 + } else {
  183 + map.put("spy1Gh", spyGh_array[0]);
  184 + }
  185 + }
  186 + // 售票员名字,如果有多个,需要分开
  187 + Object spyName = datas[8];
  188 + if (spyName != null) {
  189 + String[] spyName_array = ((String) spyName).split(",");
  190 + if (spyName_array.length > 1) {
  191 + map.put("spy1Name", spyName_array[0]);
  192 + map.put("spy2Name", spyName_array[1]);
  193 + } else {
  194 + map.put("spy1Name", spyName_array[0]);
  195 + }
  196 + }
  197 + // 创建时间
  198 + map.put("createDate", datas[9]);
  199 +
  200 + // TODO:可能还有其他字段
  201 +
  202 + ret.add(map);
  203 + }
  204 + return ret;
  205 + }
129 206  
  207 + @Override
  208 + public int updateGroupInfo_clinfo(Integer clid, String clZbh, Integer xlid, Date scheduleDate, String lpName) {
  209 + return schedulePlanRepository.updateGroupInfo_clinfo(clid, clZbh, xlid, scheduleDate, lpName);
  210 + }
130 211 }
... ...
src/main/java/com/bsth/service/schedule/rules/ttinfo/TTInfo_input.java
1   -package com.bsth.service.schedule.rules.ttinfo;
2   -
3   -import com.bsth.entity.schedule.TTInfo;
4   -import org.apache.commons.lang3.StringUtils;
5   -import org.joda.time.DateTime;
6   -import org.joda.time.format.DateTimeFormat;
7   -
8   -import java.util.ArrayList;
9   -import java.util.List;
10   -
11   -/**
12   - * 时刻表_输入
13   - */
14   -public class TTInfo_input implements Comparable<TTInfo_input> {
15   - /** 时刻表id */
16   - private String ttInfoId;
17   - /** 线路Id */
18   - private String xlId;
19   - /** 周一到周日是否启用 */
20   - private List<Boolean> weekdays = new ArrayList<>();
21   - /** 特殊节假日 */
22   - private List<DateTime> specialDays = new ArrayList<>();
23   - /** 最新修改时间 */
24   - private DateTime updateDate;
25   - /** 是否启用 */
26   - private Boolean isEnable;
27   - /** 启用日期 */
28   - private DateTime qyDate;
29   -
30   - public TTInfo_input() {
31   -
32   - }
33   -
34   - @Override
35   - public int compareTo(TTInfo_input ttInfo_input) {
36   - if (ttInfo_input != null) {
37   - if (ttInfo_input.updateDate != null && this.updateDate != null)
38   - return - this.updateDate.compareTo(ttInfo_input.updateDate);
39   - }
40   - return -1;
41   - }
42   -
43   - public TTInfo_input(TTInfo ttInfo) {
44   - this.ttInfoId = String.valueOf(ttInfo.getId());
45   - this.xlId = String.valueOf(ttInfo.getXl().getId());
46   - String[] days = ttInfo.getRule_days().split(",");
47   - System.out.println(days.length);
48   - for (int i = 0; i < 7; i++) {
49   - if ("1".equals(days[i])) {
50   - weekdays.add(true);
51   - } else {
52   - weekdays.add(false);
53   - }
54   - }
55   - if (StringUtils.isNotEmpty(ttInfo.getSpecial_days())) {
56   - String[] sdays = ttInfo.getSpecial_days().split(",");
57   - for (int i = 0; i < sdays.length; i++) {
58   - specialDays.add(DateTimeFormat.forPattern("yyyy-MM-dd").
59   - parseDateTime(sdays[i]));
60   - }
61   - }
62   -
63   - this.updateDate = new DateTime(ttInfo.getUpdateDate());
64   - this.isEnable = ttInfo.getIsEnableDisTemplate();
65   - this.qyDate = new DateTime(ttInfo.getQyrq());
66   -
67   - }
68   -
69   - public String getTtInfoId() {
70   - return ttInfoId;
71   - }
72   -
73   - public void setTtInfoId(String ttInfoId) {
74   - this.ttInfoId = ttInfoId;
75   - }
76   -
77   - public String getXlId() {
78   - return xlId;
79   - }
80   -
81   - public void setXlId(String xlId) {
82   - this.xlId = xlId;
83   - }
84   -
85   - public List<Boolean> getWeekdays() {
86   - return weekdays;
87   - }
88   -
89   - public void setWeekdays(List<Boolean> weekdays) {
90   - this.weekdays = weekdays;
91   - }
92   -
93   - public List<DateTime> getSpecialDays() {
94   - return specialDays;
95   - }
96   -
97   - public void setSpecialDays(List<DateTime> specialDays) {
98   - this.specialDays = specialDays;
99   - }
100   -
101   - public DateTime getUpdateDate() {
102   - return updateDate;
103   - }
104   -
105   - public void setUpdateDate(DateTime updateDate) {
106   - this.updateDate = updateDate;
107   - }
108   -
109   - public Boolean getIsEnable() {
110   - return isEnable;
111   - }
112   -
113   - public void setIsEnable(Boolean isEnable) {
114   - this.isEnable = isEnable;
115   - }
116   -
117   - public DateTime getQyDate() {
118   - return qyDate;
119   - }
120   -
121   - public void setQyDate(DateTime qyDate) {
122   - this.qyDate = qyDate;
123   - }
124   -}
  1 +package com.bsth.service.schedule.rules.ttinfo;
  2 +
  3 +import com.bsth.entity.schedule.TTInfo;
  4 +import org.apache.commons.lang3.StringUtils;
  5 +import org.joda.time.DateTime;
  6 +import org.joda.time.format.DateTimeFormat;
  7 +
  8 +import java.util.ArrayList;
  9 +import java.util.List;
  10 +
  11 +/**
  12 + * 时刻表_输入
  13 + */
  14 +public class TTInfo_input implements Comparable<TTInfo_input> {
  15 + /** 时刻表id */
  16 + private String ttInfoId;
  17 + /** 线路Id */
  18 + private String xlId;
  19 + /** 周一到周日是否启用 */
  20 + private List<Boolean> weekdays = new ArrayList<>();
  21 + /** 特殊节假日 */
  22 + private List<DateTime> specialDays = new ArrayList<>();
  23 + /** 最新修改时间 */
  24 + private DateTime updateDate;
  25 + /** 是否启用 */
  26 + private Boolean isEnable;
  27 + /** 启用日期 */
  28 + private DateTime qyDate;
  29 +
  30 + public TTInfo_input() {
  31 +
  32 + }
  33 +
  34 + @Override
  35 + public int compareTo(TTInfo_input ttInfo_input) {
  36 + if (ttInfo_input != null) {
  37 + if (ttInfo_input.updateDate != null && this.updateDate != null)
  38 + return - this.updateDate.compareTo(ttInfo_input.updateDate);
  39 + }
  40 + return -1;
  41 + }
  42 +
  43 + public TTInfo_input(TTInfo ttInfo) {
  44 + this.ttInfoId = String.valueOf(ttInfo.getId());
  45 + this.xlId = String.valueOf(ttInfo.getXl().getId());
  46 + String[] days = ttInfo.getRule_days().split(",");
  47 + System.out.println(days.length);
  48 + for (int i = 0; i < 7; i++) {
  49 + if ("1".equals(days[i])) {
  50 + weekdays.add(true);
  51 + } else {
  52 + weekdays.add(false);
  53 + }
  54 + }
  55 +
  56 + if (StringUtils.isNotEmpty(ttInfo.getSpecial_days())) {
  57 + String[] sdays = ttInfo.getSpecial_days().split(",");
  58 + for (int i = 0; i < sdays.length; i++) {
  59 + specialDays.add(DateTimeFormat.forPattern("yyyy-MM-dd").
  60 + parseDateTime(sdays[i]));
  61 + }
  62 + }
  63 +
  64 + this.updateDate = new DateTime(ttInfo.getUpdateDate());
  65 + this.isEnable = ttInfo.getIsEnableDisTemplate();
  66 + this.qyDate = new DateTime(ttInfo.getQyrq());
  67 +
  68 + }
  69 +
  70 + public String getTtInfoId() {
  71 + return ttInfoId;
  72 + }
  73 +
  74 + public void setTtInfoId(String ttInfoId) {
  75 + this.ttInfoId = ttInfoId;
  76 + }
  77 +
  78 + public String getXlId() {
  79 + return xlId;
  80 + }
  81 +
  82 + public void setXlId(String xlId) {
  83 + this.xlId = xlId;
  84 + }
  85 +
  86 + public List<Boolean> getWeekdays() {
  87 + return weekdays;
  88 + }
  89 +
  90 + public void setWeekdays(List<Boolean> weekdays) {
  91 + this.weekdays = weekdays;
  92 + }
  93 +
  94 + public List<DateTime> getSpecialDays() {
  95 + return specialDays;
  96 + }
  97 +
  98 + public void setSpecialDays(List<DateTime> specialDays) {
  99 + this.specialDays = specialDays;
  100 + }
  101 +
  102 + public DateTime getUpdateDate() {
  103 + return updateDate;
  104 + }
  105 +
  106 + public void setUpdateDate(DateTime updateDate) {
  107 + this.updateDate = updateDate;
  108 + }
  109 +
  110 + public Boolean getIsEnable() {
  111 + return isEnable;
  112 + }
  113 +
  114 + public void setIsEnable(Boolean isEnable) {
  115 + this.isEnable = isEnable;
  116 + }
  117 +
  118 + public DateTime getQyDate() {
  119 + return qyDate;
  120 + }
  121 +
  122 + public void setQyDate(DateTime qyDate) {
  123 + this.qyDate = qyDate;
  124 + }
  125 +}
... ...
src/main/resources/static/pages/scheduleApp/module/common/prj-common-globalservice.js
1   -// 项目通用的全局service服务,供不同的controller使用,自定义指令不使用
2   -
3   -// 文件下载服务
4   -angular.module('ScheduleApp').factory('FileDownload_g', function() {
5   - return {
6   - downloadFile: function (data, mimeType, fileName) {
7   - var success = false;
8   - var blob = new Blob([data], { type: mimeType });
9   - try {
10   - if (navigator.msSaveBlob)
11   - navigator.msSaveBlob(blob, fileName);
12   - else {
13   - // Try using other saveBlob implementations, if available
14   - var saveBlob = navigator.webkitSaveBlob || navigator.mozSaveBlob || navigator.saveBlob;
15   - if (saveBlob === undefined) throw "Not supported";
16   - saveBlob(blob, fileName);
17   - }
18   - success = true;
19   - } catch (ex) {
20   - console.log("saveBlob method failed with the following exception:");
21   - console.log(ex);
22   - }
23   -
24   - if (!success) {
25   - // Get the blob url creator
26   - var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;
27   - if (urlCreator) {
28   - // Try to use a download link
29   - var link = document.createElement('a');
30   - if ('download' in link) {
31   - // Try to simulate a click
32   - try {
33   - // Prepare a blob URL
34   - var url = urlCreator.createObjectURL(blob);
35   - link.setAttribute('href', url);
36   -
37   - // Set the download attribute (Supported in Chrome 14+ / Firefox 20+)
38   - link.setAttribute("download", fileName);
39   -
40   - // Simulate clicking the download link
41   - var event = document.createEvent('MouseEvents');
42   - event.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
43   - link.dispatchEvent(event);
44   - success = true;
45   -
46   - } catch (ex) {
47   - console.log("Download link method with simulated click failed with the following exception:");
48   - console.log(ex);
49   - }
50   - }
51   -
52   - if (!success) {
53   - // Fallback to window.location method
54   - try {
55   - // Prepare a blob URL
56   - // Use application/octet-stream when using window.location to force download
57   - var url = urlCreator.createObjectURL(blob);
58   - window.location = url;
59   - console.log("Download link method with window.location succeeded");
60   - success = true;
61   - } catch (ex) {
62   - console.log("Download link method with window.location failed with the following exception:");
63   - console.log(ex);
64   - }
65   - }
66   - }
67   - }
68   -
69   - if (!success) {
70   - // Fallback to window.open method
71   - console.log("No methods worked for saving the arraybuffer, using last resort window.open");
72   - window.open("", '_blank', '');
73   - }
74   - }
75   - };
76   -});
77   -
78   -// 车辆信息service
79   -angular.module('ScheduleApp').factory('BusInfoManageService_g', ['$resource', function($resource) {
80   - return {
81   - rest: $resource(
82   - '/cars/:id',
83   - {order: 'carCode', direction: 'ASC', id: '@id_route'},
84   - {
85   - list: {
86   - method: 'GET',
87   - params: {
88   - page: 0
89   - }
90   - },
91   - get: {
92   - method: 'GET'
93   - },
94   - save: {
95   - method: 'POST'
96   - }
97   - }
98   - ),
99   - validate: $resource(
100   - '/cars/validate/:type',
101   - {},
102   - {
103   - insideCode: {
104   - method: 'GET'
105   - }
106   - }
107   - ),
108   - dataTools: $resource(
109   - '/cars/:type',
110   - {},
111   - {
112   - dataExport: {
113   - method: 'GET',
114   - responseType: "arraybuffer",
115   - params: {
116   - type: "dataExport"
117   - },
118   - transformResponse: function(data, headers){
119   - return {data : data};
120   - }
121   - }
122   - }
123   - )
124   - };
125   -}]);
126   -// 人员信息service
127   -angular.module('ScheduleApp').factory('EmployeeInfoManageService_g', ['$resource', function($resource) {
128   - return {
129   - rest : $resource(
130   - '/personnel/:id',
131   - {order: 'jobCode', direction: 'ASC', id: '@id_route'},
132   - {
133   - list: {
134   - method: 'GET',
135   - params: {
136   - page: 0
137   - }
138   - },
139   - get: {
140   - method: 'GET'
141   - },
142   - save: {
143   - method: 'POST'
144   - }
145   - }
146   - ),
147   - validate: $resource(
148   - '/personnel/validate/:type',
149   - {},
150   - {
151   - jobCode: {
152   - method: 'GET'
153   - }
154   - }
155   - ),
156   - dataTools: $resource(
157   - '/personnel/:type',
158   - {},
159   - {
160   - dataExport: {
161   - method: 'GET',
162   - responseType: "arraybuffer",
163   - params: {
164   - type: "dataExport"
165   - },
166   - transformResponse: function(data, headers){
167   - return {data : data};
168   - }
169   - }
170   - }
171   - )
172   - };
173   -}]);
174   -// 车辆设备信息service
175   -angular.module('ScheduleApp').factory('DeviceInfoManageService_g', ['$resource', function($resource) {
176   - return $resource(
177   - '/carDevice/:id',
178   - {order: 'createDate', direction: 'DESC', id: '@id_route'},
179   - {
180   - list: {
181   - method: 'GET',
182   - params: {
183   - page: 0
184   - }
185   - },
186   - get: {
187   - method: 'GET'
188   - },
189   - save: {
190   - method: 'POST'
191   - }
192   - }
193   - );
194   -}]);
195   -
196   -// 车辆配置service
197   -angular.module('ScheduleApp').factory('BusConfigService_g', ['$resource', function($resource) {
198   - return {
199   - rest : $resource(
200   - '/cci/:id',
201   - {order: 'createDate', direction: 'ASC', id: '@id_route'},
202   - {
203   - list: {
204   - method: 'GET',
205   - params: {
206   - page: 0
207   - }
208   - },
209   - get: {
210   - method: 'GET'
211   - },
212   - save: {
213   - method: 'POST'
214   - }
215   - }
216   - )
217   - };
218   -}]);
219   -
220   -// 人员配置service
221   -angular.module('ScheduleApp').factory('EmployeeConfigService_g', ['$resource', function($resource) {
222   - return {
223   - rest : $resource(
224   - '/eci/:id',
225   - {order: 'xl.id,dbbmFormula', direction: 'ASC', id: '@id_route'},
226   - {
227   - list: {
228   - method: 'GET',
229   - params: {
230   - page: 0
231   - }
232   - },
233   - get: {
234   - method: 'GET'
235   - },
236   - save: {
237   - method: 'POST'
238   - }
239   - }
240   - ),
241   - validate: $resource( // TODO:
242   - '/personnel/validate/:type',
243   - {},
244   - {
245   - jobCode: {
246   - method: 'GET'
247   - }
248   - }
249   - )
250   - };
251   -}]);
252   -
253   -// 路牌管理service
254   -angular.module('ScheduleApp').factory('GuideboardManageService_g', ['$resource', function($resource) {
255   - return {
256   - rest: $resource(
257   - '/gic/:id',
258   - {order: 'createDate', direction: 'DESC', id: '@id_route'},
259   - {
260   - list: {
261   - method: 'GET',
262   - params: {
263   - page: 0
264   - }
265   - },
266   - get: {
267   - method: 'GET'
268   - },
269   - save: {
270   - method: 'POST'
271   - }
272   - }
273   - )
274   - };
275   -}]);
276   -
277   -// 排班管理service
278   -angular.module('ScheduleApp').factory('ScheduleRuleManageService_g', ['$resource', function($resource) {
279   - return {
280   - rest: $resource(
281   - '/sr1fc/:id',
282   - {order: 'createDate', direction: 'DESC', id: '@id_route'},
283   - {
284   - list: {
285   - method: 'GET',
286   - params: {
287   - page: 0
288   - }
289   - },
290   - get: {
291   - method: 'GET'
292   - },
293   - save: {
294   - method: 'POST'
295   - },
296   - delete: {
297   - method: 'DELETE'
298   - }
299   - }
300   - )
301   - };
302   -}]);
303   -
304   -// 时刻表管理service
305   -angular.module('ScheduleApp').factory('TimeTableManageService_g', ['$resource', function($resource) {
306   - return {
307   - rest: $resource(
308   - '/tic/:id',
309   - {order: 'createDate', direction: 'DESC', id: '@id_route'},
310   - {
311   - list: {
312   - method: 'GET',
313   - params: {
314   - page: 0,
315   - isCancel_eq: 'false'
316   - }
317   - },
318   - get: {
319   - method: 'GET'
320   - },
321   - save: {
322   - method: 'POST'
323   - },
324   - delete: {
325   - method: 'DELETE'
326   - }
327   - }
328   - ),
329   - validate: $resource(
330   - '/tic/validate/:type',
331   - {},
332   - {
333   - ttinfoname: {
334   - method: 'GET'
335   - }
336   - }
337   - )
338   - };
339   -}]);
340   -// 时刻表明细管理service
341   -angular.module('ScheduleApp').factory('TimeTableDetailManageService_g', ['$resource', function($resource) {
342   - return {
343   - rest: $resource(
344   - '/tidc/:id',
345   - {order: 'createDate', direction: 'DESC', id: '@id_route'},
346   - {
347   - get: {
348   - method: 'GET'
349   - },
350   - save: {
351   - method: 'POST'
352   - }
353   - }
354   - ),
355   - edit: $resource(
356   - '/tidc/edit/:xlid/:ttid',
357   - {},
358   - {
359   - list: {
360   - method: 'GET'
361   - }
362   - }
363   - )
364   - };
365   -}]);
366   -
367   -
368   -
369   -// 排班计划管理service
370   -angular.module('ScheduleApp').factory('SchedulePlanManageService_g', ['$resource', function($resource) {
371   - return {
372   - rest : $resource(
373   - '/spc/:id',
374   - {order: 'createDate', direction: 'DESC', id: '@id_route'},
375   - {
376   - list: {
377   - method: 'GET',
378   - params: {
379   - page: 0
380   - }
381   - },
382   - get: {
383   - method: 'GET'
384   - },
385   - save: {
386   - method: 'POST'
387   - },
388   - delete: {
389   - method: 'DELETE'
390   - }
391   - }
392   - )
393   - };
394   -}]);
395   -
396   -// 排班计划明细管理service
397   -angular.module('ScheduleApp').factory('SchedulePlanInfoManageService_g', ['$resource', function($resource) {
398   - return {
399   - rest : $resource(
400   - '/spic/:id',
401   - {order: 'scheduleDate,lp,fcno', direction: 'ASC', id: '@id_route'},
402   - {
403   - list: {
404   - method: 'GET',
405   - params: {
406   - page: 0
407   - }
408   - },
409   - get: {
410   - method: 'GET'
411   - },
412   - save: {
413   - method: 'POST'
414   - }
415   - }
416   - )
417   - };
418   -}]);
419   -
420   -// 线路运营统计service
421   -angular.module('ScheduleApp').factory('BusLineInfoStatService_g', ['$resource', function($resource) {
422   - return $resource(
423   - '/bic/:id',
424   - {order: 'createDate', direction: 'DESC', id: '@id_route'}, // TODO:以后需要根据属性对象的属性查询
425   - {
426   - list: {
427   - method: 'GET',
428   - params: {
429   - page: 0
430   - }
431   - }
432   - }
433   - );
434   -}]);
435   -
436   -
  1 +// 项目通用的全局service服务,供不同的controller使用,自定义指令不使用
  2 +
  3 +// 文件下载服务
  4 +angular.module('ScheduleApp').factory('FileDownload_g', function() {
  5 + return {
  6 + downloadFile: function (data, mimeType, fileName) {
  7 + var success = false;
  8 + var blob = new Blob([data], { type: mimeType });
  9 + try {
  10 + if (navigator.msSaveBlob)
  11 + navigator.msSaveBlob(blob, fileName);
  12 + else {
  13 + // Try using other saveBlob implementations, if available
  14 + var saveBlob = navigator.webkitSaveBlob || navigator.mozSaveBlob || navigator.saveBlob;
  15 + if (saveBlob === undefined) throw "Not supported";
  16 + saveBlob(blob, fileName);
  17 + }
  18 + success = true;
  19 + } catch (ex) {
  20 + console.log("saveBlob method failed with the following exception:");
  21 + console.log(ex);
  22 + }
  23 +
  24 + if (!success) {
  25 + // Get the blob url creator
  26 + var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;
  27 + if (urlCreator) {
  28 + // Try to use a download link
  29 + var link = document.createElement('a');
  30 + if ('download' in link) {
  31 + // Try to simulate a click
  32 + try {
  33 + // Prepare a blob URL
  34 + var url = urlCreator.createObjectURL(blob);
  35 + link.setAttribute('href', url);
  36 +
  37 + // Set the download attribute (Supported in Chrome 14+ / Firefox 20+)
  38 + link.setAttribute("download", fileName);
  39 +
  40 + // Simulate clicking the download link
  41 + var event = document.createEvent('MouseEvents');
  42 + event.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
  43 + link.dispatchEvent(event);
  44 + success = true;
  45 +
  46 + } catch (ex) {
  47 + console.log("Download link method with simulated click failed with the following exception:");
  48 + console.log(ex);
  49 + }
  50 + }
  51 +
  52 + if (!success) {
  53 + // Fallback to window.location method
  54 + try {
  55 + // Prepare a blob URL
  56 + // Use application/octet-stream when using window.location to force download
  57 + var url = urlCreator.createObjectURL(blob);
  58 + window.location = url;
  59 + console.log("Download link method with window.location succeeded");
  60 + success = true;
  61 + } catch (ex) {
  62 + console.log("Download link method with window.location failed with the following exception:");
  63 + console.log(ex);
  64 + }
  65 + }
  66 + }
  67 + }
  68 +
  69 + if (!success) {
  70 + // Fallback to window.open method
  71 + console.log("No methods worked for saving the arraybuffer, using last resort window.open");
  72 + window.open("", '_blank', '');
  73 + }
  74 + }
  75 + };
  76 +});
  77 +
  78 +// 车辆信息service
  79 +angular.module('ScheduleApp').factory('BusInfoManageService_g', ['$resource', function($resource) {
  80 + return {
  81 + rest: $resource(
  82 + '/cars/:id',
  83 + {order: 'carCode', direction: 'ASC', id: '@id_route'},
  84 + {
  85 + list: {
  86 + method: 'GET',
  87 + params: {
  88 + page: 0
  89 + }
  90 + },
  91 + get: {
  92 + method: 'GET'
  93 + },
  94 + save: {
  95 + method: 'POST'
  96 + }
  97 + }
  98 + ),
  99 + validate: $resource(
  100 + '/cars/validate/:type',
  101 + {},
  102 + {
  103 + insideCode: {
  104 + method: 'GET'
  105 + }
  106 + }
  107 + ),
  108 + dataTools: $resource(
  109 + '/cars/:type',
  110 + {},
  111 + {
  112 + dataExport: {
  113 + method: 'GET',
  114 + responseType: "arraybuffer",
  115 + params: {
  116 + type: "dataExport"
  117 + },
  118 + transformResponse: function(data, headers){
  119 + return {data : data};
  120 + }
  121 + }
  122 + }
  123 + )
  124 + };
  125 +}]);
  126 +// 人员信息service
  127 +angular.module('ScheduleApp').factory('EmployeeInfoManageService_g', ['$resource', function($resource) {
  128 + return {
  129 + rest : $resource(
  130 + '/personnel/:id',
  131 + {order: 'jobCode', direction: 'ASC', id: '@id_route'},
  132 + {
  133 + list: {
  134 + method: 'GET',
  135 + params: {
  136 + page: 0
  137 + }
  138 + },
  139 + get: {
  140 + method: 'GET'
  141 + },
  142 + save: {
  143 + method: 'POST'
  144 + }
  145 + }
  146 + ),
  147 + validate: $resource(
  148 + '/personnel/validate/:type',
  149 + {},
  150 + {
  151 + jobCode: {
  152 + method: 'GET'
  153 + }
  154 + }
  155 + ),
  156 + dataTools: $resource(
  157 + '/personnel/:type',
  158 + {},
  159 + {
  160 + dataExport: {
  161 + method: 'GET',
  162 + responseType: "arraybuffer",
  163 + params: {
  164 + type: "dataExport"
  165 + },
  166 + transformResponse: function(data, headers){
  167 + return {data : data};
  168 + }
  169 + }
  170 + }
  171 + )
  172 + };
  173 +}]);
  174 +// 车辆设备信息service
  175 +angular.module('ScheduleApp').factory('DeviceInfoManageService_g', ['$resource', function($resource) {
  176 + return $resource(
  177 + '/carDevice/:id',
  178 + {order: 'createDate', direction: 'DESC', id: '@id_route'},
  179 + {
  180 + list: {
  181 + method: 'GET',
  182 + params: {
  183 + page: 0
  184 + }
  185 + },
  186 + get: {
  187 + method: 'GET'
  188 + },
  189 + save: {
  190 + method: 'POST'
  191 + }
  192 + }
  193 + );
  194 +}]);
  195 +
  196 +// 车辆配置service
  197 +angular.module('ScheduleApp').factory('BusConfigService_g', ['$resource', function($resource) {
  198 + return {
  199 + rest : $resource(
  200 + '/cci/:id',
  201 + {order: 'createDate', direction: 'ASC', id: '@id_route'},
  202 + {
  203 + list: {
  204 + method: 'GET',
  205 + params: {
  206 + page: 0
  207 + }
  208 + },
  209 + get: {
  210 + method: 'GET'
  211 + },
  212 + save: {
  213 + method: 'POST'
  214 + }
  215 + }
  216 + )
  217 + };
  218 +}]);
  219 +
  220 +// 人员配置service
  221 +angular.module('ScheduleApp').factory('EmployeeConfigService_g', ['$resource', function($resource) {
  222 + return {
  223 + rest : $resource(
  224 + '/eci/:id',
  225 + {order: 'createDate', direction: 'ASC', id: '@id_route'},
  226 + {
  227 + list: {
  228 + method: 'GET',
  229 + params: {
  230 + page: 0
  231 + }
  232 + },
  233 + get: {
  234 + method: 'GET'
  235 + },
  236 + save: {
  237 + method: 'POST'
  238 + }
  239 + }
  240 + ),
  241 + validate: $resource( // TODO:
  242 + '/personnel/validate/:type',
  243 + {},
  244 + {
  245 + jobCode: {
  246 + method: 'GET'
  247 + }
  248 + }
  249 + )
  250 + };
  251 +}]);
  252 +
  253 +// 路牌管理service
  254 +angular.module('ScheduleApp').factory('GuideboardManageService_g', ['$resource', function($resource) {
  255 + return {
  256 + rest: $resource(
  257 + '/gic/:id',
  258 + {order: 'createDate', direction: 'DESC', id: '@id_route'},
  259 + {
  260 + list: {
  261 + method: 'GET',
  262 + params: {
  263 + page: 0
  264 + }
  265 + },
  266 + get: {
  267 + method: 'GET'
  268 + },
  269 + save: {
  270 + method: 'POST'
  271 + }
  272 + }
  273 + )
  274 + };
  275 +}]);
  276 +
  277 +// 排班管理service
  278 +angular.module('ScheduleApp').factory('ScheduleRuleManageService_g', ['$resource', function($resource) {
  279 + return {
  280 + rest: $resource(
  281 + '/sr1fc/:id',
  282 + {order: 'createDate', direction: 'DESC', id: '@id_route'},
  283 + {
  284 + list: {
  285 + method: 'GET',
  286 + params: {
  287 + page: 0
  288 + }
  289 + },
  290 + get: {
  291 + method: 'GET'
  292 + },
  293 + save: {
  294 + method: 'POST'
  295 + },
  296 + delete: {
  297 + method: 'DELETE'
  298 + }
  299 + }
  300 + )
  301 + };
  302 +}]);
  303 +
  304 +// 时刻表管理service
  305 +angular.module('ScheduleApp').factory('TimeTableManageService_g', ['$resource', function($resource) {
  306 + return {
  307 + rest: $resource(
  308 + '/tic/:id',
  309 + {order: 'createDate', direction: 'DESC', id: '@id_route'},
  310 + {
  311 + list: {
  312 + method: 'GET',
  313 + params: {
  314 + page: 0,
  315 + isCancel_eq: 'false'
  316 + }
  317 + },
  318 + get: {
  319 + method: 'GET'
  320 + },
  321 + save: {
  322 + method: 'POST'
  323 + },
  324 + delete: {
  325 + method: 'DELETE'
  326 + }
  327 + }
  328 + ),
  329 + validate: $resource(
  330 + '/tic/validate/:type',
  331 + {},
  332 + {
  333 + ttinfoname: {
  334 + method: 'GET'
  335 + }
  336 + }
  337 + )
  338 + };
  339 +}]);
  340 +// 时刻表明细管理service
  341 +angular.module('ScheduleApp').factory('TimeTableDetailManageService_g', ['$resource', function($resource) {
  342 + return {
  343 + rest: $resource(
  344 + '/tidc/:id',
  345 + {order: 'createDate', direction: 'DESC', id: '@id_route'},
  346 + {
  347 + get: {
  348 + method: 'GET'
  349 + },
  350 + save: {
  351 + method: 'POST'
  352 + }
  353 + }
  354 + ),
  355 + edit: $resource(
  356 + '/tidc/edit/:xlid/:ttid',
  357 + {},
  358 + {
  359 + list: {
  360 + method: 'GET'
  361 + }
  362 + }
  363 + )
  364 + };
  365 +}]);
  366 +
  367 +
  368 +
  369 +// 排班计划管理service
  370 +angular.module('ScheduleApp').factory('SchedulePlanManageService_g', ['$resource', function($resource) {
  371 + return {
  372 + rest : $resource(
  373 + '/spc/:id',
  374 + {order: 'createDate', direction: 'DESC', id: '@id_route'},
  375 + {
  376 + list: {
  377 + method: 'GET',
  378 + params: {
  379 + page: 0
  380 + }
  381 + },
  382 + get: {
  383 + method: 'GET'
  384 + },
  385 + save: {
  386 + method: 'POST'
  387 + },
  388 + delete: {
  389 + method: 'DELETE'
  390 + }
  391 + }
  392 + ),
  393 + groupinfo : $resource(
  394 + '/spc/groupinfos/:xlid/:sdate',
  395 + {},
  396 + {
  397 + list: {
  398 + method: 'GET',
  399 + isArray: true
  400 + }
  401 + }
  402 + )
  403 + };
  404 +}]);
  405 +
  406 +// 排班计划明细管理service
  407 +angular.module('ScheduleApp').factory('SchedulePlanInfoManageService_g', ['$resource', function($resource) {
  408 + return {
  409 + rest : $resource(
  410 + '/spic/:id',
  411 + {order: 'scheduleDate,lp,fcno', direction: 'ASC', id: '@id_route'},
  412 + {
  413 + list: {
  414 + method: 'GET',
  415 + params: {
  416 + page: 0
  417 + }
  418 + },
  419 + get: {
  420 + method: 'GET'
  421 + },
  422 + save: {
  423 + method: 'POST'
  424 + }
  425 + }
  426 + )
  427 + };
  428 +}]);
  429 +
  430 +// 线路运营统计service
  431 +angular.module('ScheduleApp').factory('BusLineInfoStatService_g', ['$resource', function($resource) {
  432 + return $resource(
  433 + '/bic/:id',
  434 + {order: 'createDate', direction: 'DESC', id: '@id_route'}, // TODO:以后需要根据属性对象的属性查询
  435 + {
  436 + list: {
  437 + method: 'GET',
  438 + params: {
  439 + page: 0
  440 + }
  441 + }
  442 + }
  443 + );
  444 +}]);
  445 +
... ...
src/main/resources/static/pages/scheduleApp/module/common/prj-common-ui-route-state.js
1   -// ui route 配置
2   -
3   -/** 配置所有模块页面route */
4   -ScheduleApp.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
5   - // 默认路由
6   - //$urlRouterProvider.otherwise('/busConfig.html');
7   -
8   - $stateProvider
9   - // 车辆基础信息模块配置
10   - .state("busInfoManage", {
11   - url: '/busInfoManage',
12   - views: {
13   - "": {
14   - templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/index.html'
15   - },
16   - "busInfoManage_list@busInfoManage": {
17   - templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/list.html'
18   - }
19   - },
20   -
21   - resolve: {
22   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
23   - return $ocLazyLoad.load({
24   - name: 'busInfoManage_module',
25   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
26   - files: [
27   - "assets/bower_components/angular-ui-select/dist/select.min.css",
28   - "assets/bower_components/angular-ui-select/dist/select.min.js",
29   - "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",
30   - "pages/scheduleApp/module/basicInfo/busInfoManage/busInfoManage.js"
31   - ]
32   - });
33   - }]
34   - }
35   - })
36   - .state("busInfoManage_form", {
37   - url: '/busInfoManage_form',
38   - views: {
39   - "": {templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/form.html'}
40   - },
41   - resolve: {
42   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
43   - return $ocLazyLoad.load({
44   - name: 'busInfoManage_form_module',
45   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
46   - files: [
47   - "assets/bower_components/angular-ui-select/dist/select.min.css",
48   - "assets/bower_components/angular-ui-select/dist/select.min.js",
49   - "pages/scheduleApp/module/basicInfo/busInfoManage/busInfoManage.js"
50   - ]
51   - });
52   - }]
53   - }
54   - })
55   - .state("busInfoManage_edit", {
56   - url: '/busInfoManage_edit/:id',
57   - views: {
58   - "": {templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/edit.html'}
59   - },
60   - resolve: {
61   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
62   - return $ocLazyLoad.load({
63   - name: 'busInfoManage_edit_module',
64   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
65   - files: [
66   - "assets/bower_components/angular-ui-select/dist/select.min.css",
67   - "assets/bower_components/angular-ui-select/dist/select.min.js",
68   - "pages/scheduleApp/module/basicInfo/busInfoManage/busInfoManage.js"
69   - ]
70   - });
71   - }]
72   - }
73   - })
74   - .state("busInfoManage_detail", {
75   - url: '/busInfoManage_detail/:id',
76   - views: {
77   - "": {templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/detail.html'}
78   - },
79   - resolve: {
80   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
81   - return $ocLazyLoad.load({
82   - name: 'busInfoManage_detail_module',
83   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
84   - files: [
85   - "pages/scheduleApp/module/basicInfo/busInfoManage/busInfoManage.js"
86   - ]
87   - });
88   - }]
89   - }
90   - })
91   -
92   - // 人员基础信息模块配置
93   - .state("employeeInfoManage", {
94   - url: '/employeeInfoManage',
95   - views: {
96   - "": {
97   - templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/index.html'
98   - },
99   - "employeeInfoManage_list@employeeInfoManage": {
100   - templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/list.html'
101   - }
102   - },
103   -
104   - resolve: {
105   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
106   - return $ocLazyLoad.load({
107   - name: 'employeeInfoManage_module',
108   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
109   - files: [
110   - "assets/bower_components/angular-ui-select/dist/select.min.css",
111   - "assets/bower_components/angular-ui-select/dist/select.min.js",
112   - "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",
113   - "pages/scheduleApp/module/basicInfo/employeeInfoManage/employeeInfoManage.js"
114   - ]
115   - });
116   - }]
117   - }
118   - })
119   - .state("employeeInfoManage_form", {
120   - url: '/employeeInfoManage_form',
121   - views: {
122   - "": {templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/form.html'}
123   - },
124   - resolve: {
125   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
126   - return $ocLazyLoad.load({
127   - name: 'employeeInfoManage_form_module',
128   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
129   - files: [
130   - "assets/bower_components/angular-ui-select/dist/select.min.css",
131   - "assets/bower_components/angular-ui-select/dist/select.min.js",
132   - "pages/scheduleApp/module/basicInfo/employeeInfoManage/employeeInfoManage.js"
133   - ]
134   - });
135   - }]
136   - }
137   - })
138   - .state("employeeInfoManage_edit", {
139   - url: '/employeeInfoManage_edit/:id',
140   - views: {
141   - "": {templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/edit.html'}
142   - },
143   - resolve: {
144   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
145   - return $ocLazyLoad.load({
146   - name: 'employeeInfoManage_edit_module',
147   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
148   - files: [
149   - "assets/bower_components/angular-ui-select/dist/select.min.css",
150   - "assets/bower_components/angular-ui-select/dist/select.min.js",
151   - "pages/scheduleApp/module/basicInfo/employeeInfoManage/employeeInfoManage.js"
152   - ]
153   - });
154   - }]
155   - }
156   - })
157   - .state("employeeInfoManage_detail", {
158   - url: '/employeeInfoManage_detail/:id',
159   - views: {
160   - "": {templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/detail.html'}
161   - },
162   - resolve: {
163   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
164   - return $ocLazyLoad.load({
165   - name: 'employeeInfoManage_detail_module',
166   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
167   - files: [
168   - "pages/scheduleApp/module/basicInfo/employeeInfoManage/employeeInfoManage.js"
169   - ]
170   - });
171   - }]
172   - }
173   - })
174   -
175   - // 车辆设备信息模块配置
176   - .state("deviceInfoManage", {
177   - url: '/deviceInfoManage',
178   - views: {
179   - "": {
180   - templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/index.html'
181   - },
182   - "deviceInfoManage_list@deviceInfoManage": {
183   - templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/list.html'
184   - }
185   - },
186   -
187   - resolve: {
188   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
189   - return $ocLazyLoad.load({
190   - name: 'deviceInfoManage_module',
191   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
192   - files: [
193   - "pages/scheduleApp/module/basicInfo/deviceInfoManage/deviceInfoManage.js"
194   - ]
195   - });
196   - }]
197   - }
198   - })
199   - .state("deviceInfoManage_form", {
200   - url: '/deviceInfoManage_form',
201   - views: {
202   - "": {templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/form.html'}
203   - },
204   - resolve: {
205   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
206   - return $ocLazyLoad.load({
207   - name: 'deviceInfoManage_form_module',
208   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
209   - files: [
210   - "assets/bower_components/angular-ui-select/dist/select.min.css",
211   - "assets/bower_components/angular-ui-select/dist/select.min.js",
212   - "pages/scheduleApp/module/basicInfo/deviceInfoManage/deviceInfoManage.js"
213   - ]
214   - });
215   - }]
216   - }
217   - })
218   - .state("deviceInfoManage_edit", {
219   - url: '/deviceInfoManage_edit/:id',
220   - views: {
221   - "": {templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/edit.html'}
222   - },
223   - resolve: {
224   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
225   - return $ocLazyLoad.load({
226   - name: 'deviceInfoManage_edit_module',
227   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
228   - files: [
229   - "assets/bower_components/angular-ui-select/dist/select.min.css",
230   - "assets/bower_components/angular-ui-select/dist/select.min.js",
231   - "pages/scheduleApp/module/basicInfo/deviceInfoManage/deviceInfoManage.js"
232   - ]
233   - });
234   - }]
235   - }
236   - })
237   - .state("deviceInfoManage_detail", {
238   - url: '/deviceInfoManage_detail/:id',
239   - views: {
240   - "": {templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/detail.html'}
241   - },
242   - resolve: {
243   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
244   - return $ocLazyLoad.load({
245   - name: 'deviceInfoManage_detail_module',
246   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
247   - files: [
248   - "pages/scheduleApp/module/basicInfo/deviceInfoManage/deviceInfoManage.js"
249   - ]
250   - });
251   - }]
252   - }
253   - })
254   -
255   - // 车辆配置模块
256   - .state("busConfig", {
257   - url: '/busConfig',
258   - views: {
259   - "": {
260   - templateUrl: 'pages/scheduleApp/module/core/busConfig/index.html'
261   - },
262   - "busConfig_list@busConfig": {
263   - templateUrl: 'pages/scheduleApp/module/core/busConfig/list.html'
264   - }
265   - },
266   -
267   - resolve: {
268   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
269   - return $ocLazyLoad.load({
270   - name: 'busConfig_module',
271   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
272   - files: [
273   - "assets/bower_components/angular-ui-select/dist/select.min.css",
274   - "assets/bower_components/angular-ui-select/dist/select.min.js",
275   - "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",
276   - "pages/scheduleApp/module/core/busConfig/busConfig.js"
277   - ]
278   - });
279   - }]
280   - }
281   - })
282   - .state("busConfig_form", {
283   - url: '/busConfig_form',
284   - views: {
285   - "": {templateUrl: 'pages/scheduleApp/module/core/busConfig/form.html'}
286   - },
287   - resolve: {
288   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
289   - return $ocLazyLoad.load({
290   - name: 'busConfig_form_module',
291   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
292   - files: [
293   - "assets/bower_components/angular-ui-select/dist/select.min.css",
294   - "assets/bower_components/angular-ui-select/dist/select.min.js",
295   - "pages/scheduleApp/module/core/busConfig/busConfig.js"
296   - ]
297   - });
298   - }]
299   - }
300   - })
301   - .state("busConfig_edit", {
302   - url: '/busConfig_edit/:id',
303   - views: {
304   - "": {templateUrl: 'pages/scheduleApp/module/core/busConfig/edit.html'}
305   - },
306   - resolve: {
307   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
308   - return $ocLazyLoad.load({
309   - name: 'busConfig_edit_module',
310   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
311   - files: [
312   - "assets/bower_components/angular-ui-select/dist/select.min.css",
313   - "assets/bower_components/angular-ui-select/dist/select.min.js",
314   - "pages/scheduleApp/module/core/busConfig/busConfig.js"
315   - ]
316   - });
317   - }]
318   - }
319   - })
320   - .state("busConfig_detail", {
321   - url: '/busConfig_detail/:id',
322   - views: {
323   - "": {templateUrl: 'pages/scheduleApp/module/core/busConfig/detail.html'}
324   - },
325   - resolve: {
326   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
327   - return $ocLazyLoad.load({
328   - name: 'busConfig_detail_module',
329   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
330   - files: [
331   - "pages/scheduleApp/module/core/busConfig/busConfig.js"
332   - ]
333   - });
334   - }]
335   - }
336   - })
337   -
338   - // 人员配置模块
339   - .state("employeeConfig", {
340   - url: '/employeeConfig',
341   - views: {
342   - "": {
343   - templateUrl: 'pages/scheduleApp/module/core/employeeConfig/index.html'
344   - },
345   - "employeeConfig_list@employeeConfig": {
346   - templateUrl: 'pages/scheduleApp/module/core/employeeConfig/list.html'
347   - }
348   - },
349   -
350   - resolve: {
351   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
352   - return $ocLazyLoad.load({
353   - name: 'employeeConfig_module',
354   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
355   - files: [
356   - "assets/bower_components/angular-ui-select/dist/select.min.css",
357   - "assets/bower_components/angular-ui-select/dist/select.min.js",
358   - "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",
359   - "pages/scheduleApp/module/core/employeeConfig/employeeConfig.js"
360   - ]
361   - });
362   - }]
363   - }
364   - })
365   - .state("employeeConfig_form", {
366   - url: '/employeeConfig_form',
367   - views: {
368   - "": {templateUrl: 'pages/scheduleApp/module/core/employeeConfig/form.html'}
369   - },
370   - resolve: {
371   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
372   - return $ocLazyLoad.load({
373   - name: 'employeeConfig_form_module',
374   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
375   - files: [
376   - "assets/bower_components/angular-ui-select/dist/select.min.css",
377   - "assets/bower_components/angular-ui-select/dist/select.min.js",
378   - "pages/scheduleApp/module/core/employeeConfig/employeeConfig.js"
379   - ]
380   - });
381   - }]
382   - }
383   - })
384   - .state("employeeConfig_edit", {
385   - url: '/employeeConfig_edit/:id',
386   - views: {
387   - "": {templateUrl: 'pages/scheduleApp/module/core/employeeConfig/edit.html'}
388   - },
389   - resolve: {
390   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
391   - return $ocLazyLoad.load({
392   - name: 'employeeConfig_edit_module',
393   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
394   - files: [
395   - "assets/bower_components/angular-ui-select/dist/select.min.css",
396   - "assets/bower_components/angular-ui-select/dist/select.min.js",
397   - "pages/scheduleApp/module/core/employeeConfig/employeeConfig.js"
398   - ]
399   - });
400   - }]
401   - }
402   - })
403   - .state("employeeConfig_detail", {
404   - url: '/employeeConfig_detail/:id',
405   - views: {
406   - "": {templateUrl: 'pages/scheduleApp/module/core/employeeConfig/detail.html'}
407   - },
408   - resolve: {
409   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
410   - return $ocLazyLoad.load({
411   - name: 'employeeConfig_detail_module',
412   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
413   - files: [
414   - "pages/scheduleApp/module/core/employeeConfig/employeeConfig.js"
415   - ]
416   - });
417   - }]
418   - }
419   - })
420   -
421   - // 路牌管理
422   - .state("guideboardManage", {
423   - url: '/guideboardManage',
424   - views: {
425   - "": {
426   - templateUrl: 'pages/scheduleApp/module/core/guideboardManage/index.html'
427   - },
428   - "guideboardManage_list@guideboardManage": {
429   - templateUrl: 'pages/scheduleApp/module/core/guideboardManage/list.html'
430   - }
431   - },
432   -
433   - resolve: {
434   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
435   - return $ocLazyLoad.load({
436   - name: 'guideboardManage_module',
437   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
438   - files: [
439   - "assets/bower_components/angular-ui-select/dist/select.min.css",
440   - "assets/bower_components/angular-ui-select/dist/select.min.js",
441   - "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",
442   - "pages/scheduleApp/module/core/guideboardManage/guideboardManage.js"
443   - ]
444   - });
445   - }]
446   - }
447   - })
448   - .state("guideboardManage_detail", {
449   - url: '/guideboardManage_detail/:id',
450   - views: {
451   - "": {templateUrl: 'pages/scheduleApp/module/core/guideboardManage/detail.html'}
452   - },
453   - resolve: {
454   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
455   - return $ocLazyLoad.load({
456   - name: 'guideboardManage_detail_module',
457   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
458   - files: [
459   - "pages/scheduleApp/module/core/guideboardManage/guideboardManage.js"
460   - ]
461   - });
462   - }]
463   - }
464   - })
465   -
466   -
467   - // 时刻表管理
468   - .state("timeTableManage", {
469   - url: '/timeTableManage',
470   - views: {
471   - "": {
472   - templateUrl: 'pages/scheduleApp/module/core/timeTableManage/index.html'
473   - },
474   - "timeTableManage_list@timeTableManage": {
475   - templateUrl: 'pages/scheduleApp/module/core/timeTableManage/list.html'
476   - }
477   - },
478   -
479   - resolve: {
480   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
481   - return $ocLazyLoad.load({
482   - name: 'timeTableManage_module',
483   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
484   - files: [
485   - "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",
486   - "pages/scheduleApp/module/core/timeTableManage/timeTableManage.js"
487   - ]
488   - });
489   - }]
490   - }
491   - })
492   - .state("timeTableManage_form", {
493   - url: '/timeTableManage_form',
494   - views: {
495   - "": {templateUrl: 'pages/scheduleApp/module/core/timeTableManage/form.html'}
496   - },
497   - resolve: {
498   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
499   - return $ocLazyLoad.load({
500   - name: 'timeTableManage_form_module',
501   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
502   - files: [
503   - "assets/bower_components/angular-ui-select/dist/select.min.css",
504   - "assets/bower_components/angular-ui-select/dist/select.min.js",
505   - "pages/scheduleApp/module/core/timeTableManage/timeTableManage.js"
506   - ]
507   - });
508   - }]
509   - }
510   - })
511   - .state("timeTableManage_edit", {
512   - url: '/timeTableManage_edit/:id',
513   - views: {
514   - "": {templateUrl: 'pages/scheduleApp/module/core/timeTableManage/edit.html'}
515   - },
516   - resolve: {
517   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
518   - return $ocLazyLoad.load({
519   - name: 'timeTableManage_edit_module',
520   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
521   - files: [
522   - "assets/bower_components/angular-ui-select/dist/select.min.css",
523   - "assets/bower_components/angular-ui-select/dist/select.min.js",
524   - "pages/scheduleApp/module/core/timeTableManage/timeTableManage.js"
525   - ]
526   - });
527   - }]
528   - }
529   - })
530   - .state("timeTableManage_detail", {
531   - url: '/timeTableManage_detail/:id',
532   - views: {
533   - "": {templateUrl: 'pages/scheduleApp/module/core/timeTableManage/detail.html'}
534   - },
535   - resolve: {
536   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
537   - return $ocLazyLoad.load({
538   - name: 'timeTableManage_detail_module',
539   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
540   - files: [
541   - "pages/scheduleApp/module/core/timeTableManage/timeTableManage.js"
542   - ]
543   - });
544   - }]
545   - }
546   - })
547   - .state("timeTableDetailInfoManage", {
548   - url: '/timeTableDetailInfoManage/:xlid/:ttid/:xlname/:ttname',
549   - views: {
550   - "": {templateUrl: 'pages/scheduleApp/module/core/timeTableManage/detail_info.html'}
551   - },
552   - resolve: {
553   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
554   - return $ocLazyLoad.load({
555   - name: 'timeTableDetailInfoManage_module',
556   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
557   - files: [
558   - "pages/scheduleApp/module/core/timeTableManage/timeTableDetailManage.js"
559   - ]
560   - });
561   - }]
562   - }
563   - })
564   - .state("timeTableDetailInfoManage_detail_edit", {
565   - url: '/timeTableDetailInfoManage_detail_edit/:id/:xlid/:ttid/:xlname/:ttname',
566   - views: {
567   - "": {templateUrl: 'pages/scheduleApp/module/core/timeTableManage/detail_info_edit.html'}
568   - },
569   - resolve: {
570   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
571   - return $ocLazyLoad.load({
572   - name: 'timeTableDetailInfoManage_module',
573   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
574   - files: [
575   - "assets/bower_components/angular-ui-select/dist/select.min.css",
576   - "assets/bower_components/angular-ui-select/dist/select.min.js",
577   - "pages/scheduleApp/module/core/timeTableManage/timeTableDetailManage.js"
578   - ]
579   - });
580   - }]
581   - }
582   - })
583   -
584   - // 排班规则管理模块
585   - .state("scheduleRuleManage", {
586   - url: '/scheduleRuleManage',
587   - views: {
588   - "": {
589   - templateUrl: 'pages/scheduleApp/module/core/scheduleRuleManage/index.html'
590   - },
591   - "scheduleRuleManage_list@scheduleRuleManage": {
592   - templateUrl: 'pages/scheduleApp/module/core/scheduleRuleManage/list.html'
593   - }
594   - },
595   -
596   - resolve: {
597   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
598   - return $ocLazyLoad.load({
599   - name: 'scheduleRuleManage_module',
600   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
601   - files: [
602   - "assets/bower_components/angular-ui-select/dist/select.min.css",
603   - "assets/bower_components/angular-ui-select/dist/select.min.js",
604   - "pages/scheduleApp/module/core/scheduleRuleManage/scheduleRuleManage.js"
605   - ]
606   - });
607   - }]
608   - }
609   - })
610   - .state("scheduleRuleManage_form", {
611   - url: '/scheduleRuleManage_form',
612   - views: {
613   - "": {templateUrl: 'pages/scheduleApp/module/core/scheduleRuleManage/form.html'}
614   - },
615   - resolve: {
616   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
617   - return $ocLazyLoad.load({
618   - name: 'scheduleRuleManage_form_module',
619   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
620   - files: [
621   - "assets/bower_components/angular-ui-select/dist/select.min.css",
622   - "assets/bower_components/angular-ui-select/dist/select.min.js",
623   - "pages/scheduleApp/module/core/scheduleRuleManage/scheduleRuleManage.js"
624   - ]
625   - });
626   - }]
627   - }
628   - })
629   - .state("scheduleRuleManage_edit", {
630   - url: '/scheduleRuleManage_edit/:id',
631   - views: {
632   - "": {templateUrl: 'pages/scheduleApp/module/core/scheduleRuleManage/edit.html'}
633   - },
634   - resolve: {
635   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
636   - return $ocLazyLoad.load({
637   - name: 'scheduleRuleManage_edit_module',
638   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
639   - files: [
640   - "assets/bower_components/angular-ui-select/dist/select.min.css",
641   - "assets/bower_components/angular-ui-select/dist/select.min.js",
642   - "pages/scheduleApp/module/core/scheduleRuleManage/scheduleRuleManage.js"
643   - ]
644   - });
645   - }]
646   - }
647   - })
648   - .state("scheduleRuleManage_detail", {
649   - url: '/scheduleRuleManage_detail/:id',
650   - views: {
651   - "": {templateUrl: 'pages/scheduleApp/module/core/scheduleRuleManage/detail.html'}
652   - },
653   - resolve: {
654   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
655   - return $ocLazyLoad.load({
656   - name: 'scheduleRuleManage_detail_module',
657   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
658   - files: [
659   - "pages/scheduleApp/module/core/scheduleRuleManage/scheduleRuleManage.js"
660   - ]
661   - });
662   - }]
663   - }
664   - })
665   -
666   - // 排班计划管理模块
667   - .state("schedulePlanManage", {
668   - url: '/schedulePlanManage',
669   - views: {
670   - "": {
671   - templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/index.html'
672   - },
673   - "schedulePlanManage_list@schedulePlanManage": {
674   - templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/list.html'
675   - }
676   - },
677   -
678   - resolve: {
679   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
680   - return $ocLazyLoad.load({
681   - name: 'schedulePlanManage_module',
682   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
683   - files: [
684   - "assets/bower_components/angular-ui-select/dist/select.min.css",
685   - "assets/bower_components/angular-ui-select/dist/select.min.js",
686   - "pages/scheduleApp/module/core/schedulePlanManage/schedulePlanManage.js"
687   - ]
688   - });
689   - }]
690   - }
691   - })
692   - .state("schedulePlanManage_form", {
693   - url: '/schedulePlanManage_form',
694   - views: {
695   - "": {
696   - templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/form.html'
697   - }
698   - },
699   -
700   - resolve: {
701   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
702   - return $ocLazyLoad.load({
703   - name: 'schedulePlanManage_form_module',
704   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
705   - files: [
706   - "assets/bower_components/angular-ui-select/dist/select.min.css",
707   - "assets/bower_components/angular-ui-select/dist/select.min.js",
708   - "pages/scheduleApp/module/core/schedulePlanManage/schedulePlanManage.js"
709   - ]
710   - });
711   - }]
712   - }
713   - })
714   -
715   - // 排班计划明细管理模块
716   - .state("schedulePlanInfoManage", {
717   - url: '/schedulePlanInfoManage/:spid/:xlname/:ttname/:stime/:etime',
718   - views: {
719   - "": {
720   - templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/index_info.html'
721   - },
722   - "schedulePlanInfoManage_list@schedulePlanInfoManage": {
723   - templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/list_info.html'
724   - }
725   - },
726   -
727   - resolve: {
728   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
729   - return $ocLazyLoad.load({
730   - name: 'schedulePlanInfoManage_module',
731   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
732   - files: [
733   - "pages/scheduleApp/module/core/schedulePlanManage/schedulePlanInfoManage.js"
734   - ]
735   - });
736   - }]
737   - }
738   - })
739   -
740   - // 线路运营概览模块
741   - .state("busLineInfoStat", {
742   - url: '/busLineInfoStat',
743   - views: {
744   - "": {
745   - templateUrl: 'pages/scheduleApp/module/core/busLineInfoStat/index.html'
746   - },
747   - "busLineInfoStat_list@busLineInfoStat": {
748   - templateUrl: 'pages/scheduleApp/module/core/busLineInfoStat/list.html'
749   - }
750   - },
751   -
752   - resolve: {
753   - deps: ['$ocLazyLoad', function($ocLazyLoad) {
754   - return $ocLazyLoad.load({
755   - name: 'busLineInfoStat_module',
756   - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
757   - files: [
758   - "pages/scheduleApp/module/core/busLineInfoStat/busLineInfoStat.js"
759   - ]
760   - });
761   - }]
762   - }
763   - })
764   -
765   -
766   -
767   -
768   -
769   - // TODO:
770   -
771   - ;
  1 +// ui route 配置
  2 +
  3 +/** 配置所有模块页面route */
  4 +ScheduleApp.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
  5 + // 默认路由
  6 + //$urlRouterProvider.otherwise('/busConfig.html');
  7 +
  8 + $stateProvider
  9 + // 车辆基础信息模块配置
  10 + .state("busInfoManage", {
  11 + url: '/busInfoManage',
  12 + views: {
  13 + "": {
  14 + templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/index.html'
  15 + },
  16 + "busInfoManage_list@busInfoManage": {
  17 + templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/list.html'
  18 + }
  19 + },
  20 +
  21 + resolve: {
  22 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  23 + return $ocLazyLoad.load({
  24 + name: 'busInfoManage_module',
  25 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  26 + files: [
  27 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  28 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  29 + "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",
  30 + "pages/scheduleApp/module/basicInfo/busInfoManage/busInfoManage.js"
  31 + ]
  32 + });
  33 + }]
  34 + }
  35 + })
  36 + .state("busInfoManage_form", {
  37 + url: '/busInfoManage_form',
  38 + views: {
  39 + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/form.html'}
  40 + },
  41 + resolve: {
  42 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  43 + return $ocLazyLoad.load({
  44 + name: 'busInfoManage_form_module',
  45 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  46 + files: [
  47 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  48 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  49 + "pages/scheduleApp/module/basicInfo/busInfoManage/busInfoManage.js"
  50 + ]
  51 + });
  52 + }]
  53 + }
  54 + })
  55 + .state("busInfoManage_edit", {
  56 + url: '/busInfoManage_edit/:id',
  57 + views: {
  58 + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/edit.html'}
  59 + },
  60 + resolve: {
  61 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  62 + return $ocLazyLoad.load({
  63 + name: 'busInfoManage_edit_module',
  64 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  65 + files: [
  66 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  67 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  68 + "pages/scheduleApp/module/basicInfo/busInfoManage/busInfoManage.js"
  69 + ]
  70 + });
  71 + }]
  72 + }
  73 + })
  74 + .state("busInfoManage_detail", {
  75 + url: '/busInfoManage_detail/:id',
  76 + views: {
  77 + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/busInfoManage/detail.html'}
  78 + },
  79 + resolve: {
  80 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  81 + return $ocLazyLoad.load({
  82 + name: 'busInfoManage_detail_module',
  83 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  84 + files: [
  85 + "pages/scheduleApp/module/basicInfo/busInfoManage/busInfoManage.js"
  86 + ]
  87 + });
  88 + }]
  89 + }
  90 + })
  91 +
  92 + // 人员基础信息模块配置
  93 + .state("employeeInfoManage", {
  94 + url: '/employeeInfoManage',
  95 + views: {
  96 + "": {
  97 + templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/index.html'
  98 + },
  99 + "employeeInfoManage_list@employeeInfoManage": {
  100 + templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/list.html'
  101 + }
  102 + },
  103 +
  104 + resolve: {
  105 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  106 + return $ocLazyLoad.load({
  107 + name: 'employeeInfoManage_module',
  108 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  109 + files: [
  110 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  111 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  112 + "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",
  113 + "pages/scheduleApp/module/basicInfo/employeeInfoManage/employeeInfoManage.js"
  114 + ]
  115 + });
  116 + }]
  117 + }
  118 + })
  119 + .state("employeeInfoManage_form", {
  120 + url: '/employeeInfoManage_form',
  121 + views: {
  122 + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/form.html'}
  123 + },
  124 + resolve: {
  125 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  126 + return $ocLazyLoad.load({
  127 + name: 'employeeInfoManage_form_module',
  128 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  129 + files: [
  130 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  131 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  132 + "pages/scheduleApp/module/basicInfo/employeeInfoManage/employeeInfoManage.js"
  133 + ]
  134 + });
  135 + }]
  136 + }
  137 + })
  138 + .state("employeeInfoManage_edit", {
  139 + url: '/employeeInfoManage_edit/:id',
  140 + views: {
  141 + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/edit.html'}
  142 + },
  143 + resolve: {
  144 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  145 + return $ocLazyLoad.load({
  146 + name: 'employeeInfoManage_edit_module',
  147 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  148 + files: [
  149 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  150 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  151 + "pages/scheduleApp/module/basicInfo/employeeInfoManage/employeeInfoManage.js"
  152 + ]
  153 + });
  154 + }]
  155 + }
  156 + })
  157 + .state("employeeInfoManage_detail", {
  158 + url: '/employeeInfoManage_detail/:id',
  159 + views: {
  160 + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/employeeInfoManage/detail.html'}
  161 + },
  162 + resolve: {
  163 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  164 + return $ocLazyLoad.load({
  165 + name: 'employeeInfoManage_detail_module',
  166 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  167 + files: [
  168 + "pages/scheduleApp/module/basicInfo/employeeInfoManage/employeeInfoManage.js"
  169 + ]
  170 + });
  171 + }]
  172 + }
  173 + })
  174 +
  175 + // 车辆设备信息模块配置
  176 + .state("deviceInfoManage", {
  177 + url: '/deviceInfoManage',
  178 + views: {
  179 + "": {
  180 + templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/index.html'
  181 + },
  182 + "deviceInfoManage_list@deviceInfoManage": {
  183 + templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/list.html'
  184 + }
  185 + },
  186 +
  187 + resolve: {
  188 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  189 + return $ocLazyLoad.load({
  190 + name: 'deviceInfoManage_module',
  191 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  192 + files: [
  193 + "pages/scheduleApp/module/basicInfo/deviceInfoManage/deviceInfoManage.js"
  194 + ]
  195 + });
  196 + }]
  197 + }
  198 + })
  199 + .state("deviceInfoManage_form", {
  200 + url: '/deviceInfoManage_form',
  201 + views: {
  202 + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/form.html'}
  203 + },
  204 + resolve: {
  205 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  206 + return $ocLazyLoad.load({
  207 + name: 'deviceInfoManage_form_module',
  208 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  209 + files: [
  210 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  211 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  212 + "pages/scheduleApp/module/basicInfo/deviceInfoManage/deviceInfoManage.js"
  213 + ]
  214 + });
  215 + }]
  216 + }
  217 + })
  218 + .state("deviceInfoManage_edit", {
  219 + url: '/deviceInfoManage_edit/:id',
  220 + views: {
  221 + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/edit.html'}
  222 + },
  223 + resolve: {
  224 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  225 + return $ocLazyLoad.load({
  226 + name: 'deviceInfoManage_edit_module',
  227 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  228 + files: [
  229 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  230 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  231 + "pages/scheduleApp/module/basicInfo/deviceInfoManage/deviceInfoManage.js"
  232 + ]
  233 + });
  234 + }]
  235 + }
  236 + })
  237 + .state("deviceInfoManage_detail", {
  238 + url: '/deviceInfoManage_detail/:id',
  239 + views: {
  240 + "": {templateUrl: 'pages/scheduleApp/module/basicInfo/deviceInfoManage/detail.html'}
  241 + },
  242 + resolve: {
  243 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  244 + return $ocLazyLoad.load({
  245 + name: 'deviceInfoManage_detail_module',
  246 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  247 + files: [
  248 + "pages/scheduleApp/module/basicInfo/deviceInfoManage/deviceInfoManage.js"
  249 + ]
  250 + });
  251 + }]
  252 + }
  253 + })
  254 +
  255 + // 车辆配置模块
  256 + .state("busConfig", {
  257 + url: '/busConfig',
  258 + views: {
  259 + "": {
  260 + templateUrl: 'pages/scheduleApp/module/core/busConfig/index.html'
  261 + },
  262 + "busConfig_list@busConfig": {
  263 + templateUrl: 'pages/scheduleApp/module/core/busConfig/list.html'
  264 + }
  265 + },
  266 +
  267 + resolve: {
  268 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  269 + return $ocLazyLoad.load({
  270 + name: 'busConfig_module',
  271 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  272 + files: [
  273 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  274 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  275 + "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",
  276 + "pages/scheduleApp/module/core/busConfig/busConfig.js"
  277 + ]
  278 + });
  279 + }]
  280 + }
  281 + })
  282 + .state("busConfig_form", {
  283 + url: '/busConfig_form',
  284 + views: {
  285 + "": {templateUrl: 'pages/scheduleApp/module/core/busConfig/form.html'}
  286 + },
  287 + resolve: {
  288 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  289 + return $ocLazyLoad.load({
  290 + name: 'busConfig_form_module',
  291 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  292 + files: [
  293 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  294 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  295 + "pages/scheduleApp/module/core/busConfig/busConfig.js"
  296 + ]
  297 + });
  298 + }]
  299 + }
  300 + })
  301 + .state("busConfig_edit", {
  302 + url: '/busConfig_edit/:id',
  303 + views: {
  304 + "": {templateUrl: 'pages/scheduleApp/module/core/busConfig/edit.html'}
  305 + },
  306 + resolve: {
  307 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  308 + return $ocLazyLoad.load({
  309 + name: 'busConfig_edit_module',
  310 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  311 + files: [
  312 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  313 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  314 + "pages/scheduleApp/module/core/busConfig/busConfig.js"
  315 + ]
  316 + });
  317 + }]
  318 + }
  319 + })
  320 + .state("busConfig_detail", {
  321 + url: '/busConfig_detail/:id',
  322 + views: {
  323 + "": {templateUrl: 'pages/scheduleApp/module/core/busConfig/detail.html'}
  324 + },
  325 + resolve: {
  326 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  327 + return $ocLazyLoad.load({
  328 + name: 'busConfig_detail_module',
  329 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  330 + files: [
  331 + "pages/scheduleApp/module/core/busConfig/busConfig.js"
  332 + ]
  333 + });
  334 + }]
  335 + }
  336 + })
  337 +
  338 + // 人员配置模块
  339 + .state("employeeConfig", {
  340 + url: '/employeeConfig',
  341 + views: {
  342 + "": {
  343 + templateUrl: 'pages/scheduleApp/module/core/employeeConfig/index.html'
  344 + },
  345 + "employeeConfig_list@employeeConfig": {
  346 + templateUrl: 'pages/scheduleApp/module/core/employeeConfig/list.html'
  347 + }
  348 + },
  349 +
  350 + resolve: {
  351 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  352 + return $ocLazyLoad.load({
  353 + name: 'employeeConfig_module',
  354 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  355 + files: [
  356 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  357 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  358 + "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",
  359 + "pages/scheduleApp/module/core/employeeConfig/employeeConfig.js"
  360 + ]
  361 + });
  362 + }]
  363 + }
  364 + })
  365 + .state("employeeConfig_form", {
  366 + url: '/employeeConfig_form',
  367 + views: {
  368 + "": {templateUrl: 'pages/scheduleApp/module/core/employeeConfig/form.html'}
  369 + },
  370 + resolve: {
  371 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  372 + return $ocLazyLoad.load({
  373 + name: 'employeeConfig_form_module',
  374 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  375 + files: [
  376 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  377 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  378 + "pages/scheduleApp/module/core/employeeConfig/employeeConfig.js"
  379 + ]
  380 + });
  381 + }]
  382 + }
  383 + })
  384 + .state("employeeConfig_edit", {
  385 + url: '/employeeConfig_edit/:id',
  386 + views: {
  387 + "": {templateUrl: 'pages/scheduleApp/module/core/employeeConfig/edit.html'}
  388 + },
  389 + resolve: {
  390 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  391 + return $ocLazyLoad.load({
  392 + name: 'employeeConfig_edit_module',
  393 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  394 + files: [
  395 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  396 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  397 + "pages/scheduleApp/module/core/employeeConfig/employeeConfig.js"
  398 + ]
  399 + });
  400 + }]
  401 + }
  402 + })
  403 + .state("employeeConfig_detail", {
  404 + url: '/employeeConfig_detail/:id',
  405 + views: {
  406 + "": {templateUrl: 'pages/scheduleApp/module/core/employeeConfig/detail.html'}
  407 + },
  408 + resolve: {
  409 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  410 + return $ocLazyLoad.load({
  411 + name: 'employeeConfig_detail_module',
  412 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  413 + files: [
  414 + "pages/scheduleApp/module/core/employeeConfig/employeeConfig.js"
  415 + ]
  416 + });
  417 + }]
  418 + }
  419 + })
  420 +
  421 + // 路牌管理
  422 + .state("guideboardManage", {
  423 + url: '/guideboardManage',
  424 + views: {
  425 + "": {
  426 + templateUrl: 'pages/scheduleApp/module/core/guideboardManage/index.html'
  427 + },
  428 + "guideboardManage_list@guideboardManage": {
  429 + templateUrl: 'pages/scheduleApp/module/core/guideboardManage/list.html'
  430 + }
  431 + },
  432 +
  433 + resolve: {
  434 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  435 + return $ocLazyLoad.load({
  436 + name: 'guideboardManage_module',
  437 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  438 + files: [
  439 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  440 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  441 + "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",
  442 + "pages/scheduleApp/module/core/guideboardManage/guideboardManage.js"
  443 + ]
  444 + });
  445 + }]
  446 + }
  447 + })
  448 + .state("guideboardManage_detail", {
  449 + url: '/guideboardManage_detail/:id',
  450 + views: {
  451 + "": {templateUrl: 'pages/scheduleApp/module/core/guideboardManage/detail.html'}
  452 + },
  453 + resolve: {
  454 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  455 + return $ocLazyLoad.load({
  456 + name: 'guideboardManage_detail_module',
  457 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  458 + files: [
  459 + "pages/scheduleApp/module/core/guideboardManage/guideboardManage.js"
  460 + ]
  461 + });
  462 + }]
  463 + }
  464 + })
  465 +
  466 +
  467 + // 时刻表管理
  468 + .state("timeTableManage", {
  469 + url: '/timeTableManage',
  470 + views: {
  471 + "": {
  472 + templateUrl: 'pages/scheduleApp/module/core/timeTableManage/index.html'
  473 + },
  474 + "timeTableManage_list@timeTableManage": {
  475 + templateUrl: 'pages/scheduleApp/module/core/timeTableManage/list.html'
  476 + }
  477 + },
  478 +
  479 + resolve: {
  480 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  481 + return $ocLazyLoad.load({
  482 + name: 'timeTableManage_module',
  483 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  484 + files: [
  485 + "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",
  486 + "pages/scheduleApp/module/core/timeTableManage/timeTableManage.js"
  487 + ]
  488 + });
  489 + }]
  490 + }
  491 + })
  492 + .state("timeTableManage_form", {
  493 + url: '/timeTableManage_form',
  494 + views: {
  495 + "": {templateUrl: 'pages/scheduleApp/module/core/timeTableManage/form.html'}
  496 + },
  497 + resolve: {
  498 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  499 + return $ocLazyLoad.load({
  500 + name: 'timeTableManage_form_module',
  501 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  502 + files: [
  503 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  504 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  505 + "pages/scheduleApp/module/core/timeTableManage/timeTableManage.js"
  506 + ]
  507 + });
  508 + }]
  509 + }
  510 + })
  511 + .state("timeTableManage_edit", {
  512 + url: '/timeTableManage_edit/:id',
  513 + views: {
  514 + "": {templateUrl: 'pages/scheduleApp/module/core/timeTableManage/edit.html'}
  515 + },
  516 + resolve: {
  517 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  518 + return $ocLazyLoad.load({
  519 + name: 'timeTableManage_edit_module',
  520 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  521 + files: [
  522 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  523 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  524 + "pages/scheduleApp/module/core/timeTableManage/timeTableManage.js"
  525 + ]
  526 + });
  527 + }]
  528 + }
  529 + })
  530 + .state("timeTableManage_detail", {
  531 + url: '/timeTableManage_detail/:id',
  532 + views: {
  533 + "": {templateUrl: 'pages/scheduleApp/module/core/timeTableManage/detail.html'}
  534 + },
  535 + resolve: {
  536 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  537 + return $ocLazyLoad.load({
  538 + name: 'timeTableManage_detail_module',
  539 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  540 + files: [
  541 + "pages/scheduleApp/module/core/timeTableManage/timeTableManage.js"
  542 + ]
  543 + });
  544 + }]
  545 + }
  546 + })
  547 + .state("timeTableDetailInfoManage", {
  548 + url: '/timeTableDetailInfoManage/:xlid/:ttid/:xlname/:ttname',
  549 + views: {
  550 + "": {templateUrl: 'pages/scheduleApp/module/core/timeTableManage/detail_info.html'}
  551 + },
  552 + resolve: {
  553 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  554 + return $ocLazyLoad.load({
  555 + name: 'timeTableDetailInfoManage_module',
  556 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  557 + files: [
  558 + "pages/scheduleApp/module/core/timeTableManage/timeTableDetailManage.js"
  559 + ]
  560 + });
  561 + }]
  562 + }
  563 + })
  564 + .state("timeTableDetailInfoManage_detail_edit", {
  565 + url: '/timeTableDetailInfoManage_detail_edit/:id/:xlid/:ttid/:xlname/:ttname',
  566 + views: {
  567 + "": {templateUrl: 'pages/scheduleApp/module/core/timeTableManage/detail_info_edit.html'}
  568 + },
  569 + resolve: {
  570 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  571 + return $ocLazyLoad.load({
  572 + name: 'timeTableDetailInfoManage_module',
  573 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  574 + files: [
  575 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  576 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  577 + "pages/scheduleApp/module/core/timeTableManage/timeTableDetailManage.js"
  578 + ]
  579 + });
  580 + }]
  581 + }
  582 + })
  583 +
  584 + // 排班规则管理模块
  585 + .state("scheduleRuleManage", {
  586 + url: '/scheduleRuleManage',
  587 + views: {
  588 + "": {
  589 + templateUrl: 'pages/scheduleApp/module/core/scheduleRuleManage/index.html'
  590 + },
  591 + "scheduleRuleManage_list@scheduleRuleManage": {
  592 + templateUrl: 'pages/scheduleApp/module/core/scheduleRuleManage/list.html'
  593 + }
  594 + },
  595 +
  596 + resolve: {
  597 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  598 + return $ocLazyLoad.load({
  599 + name: 'scheduleRuleManage_module',
  600 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  601 + files: [
  602 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  603 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  604 + "pages/scheduleApp/module/core/scheduleRuleManage/scheduleRuleManage.js"
  605 + ]
  606 + });
  607 + }]
  608 + }
  609 + })
  610 + .state("scheduleRuleManage_form", {
  611 + url: '/scheduleRuleManage_form',
  612 + views: {
  613 + "": {templateUrl: 'pages/scheduleApp/module/core/scheduleRuleManage/form.html'}
  614 + },
  615 + resolve: {
  616 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  617 + return $ocLazyLoad.load({
  618 + name: 'scheduleRuleManage_form_module',
  619 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  620 + files: [
  621 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  622 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  623 + "pages/scheduleApp/module/core/scheduleRuleManage/scheduleRuleManage.js"
  624 + ]
  625 + });
  626 + }]
  627 + }
  628 + })
  629 + .state("scheduleRuleManage_edit", {
  630 + url: '/scheduleRuleManage_edit/:id',
  631 + views: {
  632 + "": {templateUrl: 'pages/scheduleApp/module/core/scheduleRuleManage/edit.html'}
  633 + },
  634 + resolve: {
  635 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  636 + return $ocLazyLoad.load({
  637 + name: 'scheduleRuleManage_edit_module',
  638 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  639 + files: [
  640 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  641 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  642 + "pages/scheduleApp/module/core/scheduleRuleManage/scheduleRuleManage.js"
  643 + ]
  644 + });
  645 + }]
  646 + }
  647 + })
  648 + .state("scheduleRuleManage_detail", {
  649 + url: '/scheduleRuleManage_detail/:id',
  650 + views: {
  651 + "": {templateUrl: 'pages/scheduleApp/module/core/scheduleRuleManage/detail.html'}
  652 + },
  653 + resolve: {
  654 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  655 + return $ocLazyLoad.load({
  656 + name: 'scheduleRuleManage_detail_module',
  657 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  658 + files: [
  659 + "pages/scheduleApp/module/core/scheduleRuleManage/scheduleRuleManage.js"
  660 + ]
  661 + });
  662 + }]
  663 + }
  664 + })
  665 +
  666 + // 排班计划管理模块
  667 + .state("schedulePlanManage", {
  668 + url: '/schedulePlanManage',
  669 + views: {
  670 + "": {
  671 + templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/index.html'
  672 + },
  673 + "schedulePlanManage_list@schedulePlanManage": {
  674 + templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/list.html'
  675 + }
  676 + },
  677 +
  678 + resolve: {
  679 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  680 + return $ocLazyLoad.load({
  681 + name: 'schedulePlanManage_module',
  682 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  683 + files: [
  684 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  685 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  686 + "pages/scheduleApp/module/core/schedulePlanManage/schedulePlanManage.js"
  687 + ]
  688 + });
  689 + }]
  690 + }
  691 + })
  692 + .state("schedulePlanManage_form", {
  693 + url: '/schedulePlanManage_form',
  694 + views: {
  695 + "": {
  696 + templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/form.html'
  697 + }
  698 + },
  699 +
  700 + resolve: {
  701 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  702 + return $ocLazyLoad.load({
  703 + name: 'schedulePlanManage_form_module',
  704 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  705 + files: [
  706 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  707 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  708 + "pages/scheduleApp/module/core/schedulePlanManage/schedulePlanManage.js"
  709 + ]
  710 + });
  711 + }]
  712 + }
  713 + })
  714 +
  715 + // 排班计划明细管理模块
  716 + .state("schedulePlanInfoManage", {
  717 + url: '/schedulePlanInfoManage/:spid/:xlname/:ttname/:stime/:etime',
  718 + views: {
  719 + "": {
  720 + templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/index_info.html'
  721 + },
  722 + "schedulePlanInfoManage_list@schedulePlanInfoManage": {
  723 + templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/list_info.html'
  724 + }
  725 + },
  726 +
  727 + resolve: {
  728 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  729 + return $ocLazyLoad.load({
  730 + name: 'schedulePlanInfoManage_module',
  731 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  732 + files: [
  733 + "pages/scheduleApp/module/core/schedulePlanManage/schedulePlanInfoManage.js"
  734 + ]
  735 + });
  736 + }]
  737 + }
  738 + })
  739 +
  740 + // 排班调度值勤日报模块
  741 + .state("schedulePlanReportManage", {
  742 + url: '/schedulePlanReportManage',
  743 + views: {
  744 + "": {
  745 + templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/index_report.html'
  746 + },
  747 + "schedulePlanReportManage_list@schedulePlanReportManage": {
  748 + templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/list_report.html'
  749 + }
  750 + },
  751 +
  752 + resolve: {
  753 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  754 + return $ocLazyLoad.load({
  755 + name: 'schedulePlanManage_module',
  756 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  757 + files: [
  758 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  759 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  760 + "pages/scheduleApp/module/core/schedulePlanManage/schedulePlanReportManage.js"
  761 + ]
  762 + });
  763 + }]
  764 + }
  765 + })
  766 +
  767 + .state("schedulePlanReportManage_edit", {
  768 + url: '/schedulePlanReportManage_edit/:xlid/:sdate/:lp',
  769 + views: {
  770 + "": {
  771 + templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/edit_report.html'
  772 + }
  773 + },
  774 +
  775 + resolve: {
  776 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  777 + return $ocLazyLoad.load({
  778 + name: 'schedulePlanReportManage_edit_module',
  779 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  780 + files: [
  781 + "assets/bower_components/angular-ui-select/dist/select.min.css",
  782 + "assets/bower_components/angular-ui-select/dist/select.min.js",
  783 + "pages/scheduleApp/module/core/schedulePlanManage/schedulePlanReportManage.js"
  784 + ]
  785 + });
  786 + }]
  787 + }
  788 + })
  789 +
  790 + // 线路运营概览模块
  791 + .state("busLineInfoStat", {
  792 + url: '/busLineInfoStat',
  793 + views: {
  794 + "": {
  795 + templateUrl: 'pages/scheduleApp/module/core/busLineInfoStat/index.html'
  796 + },
  797 + "busLineInfoStat_list@busLineInfoStat": {
  798 + templateUrl: 'pages/scheduleApp/module/core/busLineInfoStat/list.html'
  799 + }
  800 + },
  801 +
  802 + resolve: {
  803 + deps: ['$ocLazyLoad', function($ocLazyLoad) {
  804 + return $ocLazyLoad.load({
  805 + name: 'busLineInfoStat_module',
  806 + insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置
  807 + files: [
  808 + "pages/scheduleApp/module/core/busLineInfoStat/busLineInfoStat.js"
  809 + ]
  810 + });
  811 + }]
  812 + }
  813 + })
  814 +
  815 +
  816 +
  817 +
  818 +
  819 + // TODO:
  820 +
  821 + ;
  822 +
772 823 }]);
773 824 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/listInfo.html renamed to src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/edit_report.html
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/index_report.html 0 → 100644
  1 +<div class="page-head">
  2 + <div class="page-title">
  3 + <h1>调度值勤日报</h1>
  4 + </div>
  5 +</div>
  6 +
  7 +<ul class="page-breadcrumb breadcrumb">
  8 + <li>
  9 + <a href="/pages/home.html" data-pjax="">首页</a>
  10 + <i class="fa fa-circle"></i>
  11 + </li>
  12 + <li>
  13 + <span class="active">运营计划管理</span>
  14 + <i class="fa fa-circle"></i>
  15 + </li>
  16 + <li>
  17 + <span class="active">调度值勤日报</span>
  18 + </li>
  19 +</ul>
  20 +
  21 +<div class="row">
  22 + <div class="col-md-12" ng-controller="SchedulePlanReportManageCtrl as ctrl">
  23 + <div class="portlet light bordered">
  24 + <div class="portlet-title">
  25 + <div class="caption font-dark">
  26 + <i class="fa fa-database font-dark"></i>
  27 + <span class="caption-subject bold uppercase">排班计划</span>
  28 + </div>
  29 + <div class="actions">
  30 + <div class="btn-group">
  31 + <a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown">
  32 + <i class="fa fa-share"></i>
  33 + <span>数据工具</span>
  34 + <i class="fa fa-angle-down"></i>
  35 + </a>
  36 + <ul class="dropdown-menu pull-right">
  37 + <li>
  38 + <a href="javascript:" class="tool-action">
  39 + <i class="fa fa-file-excel-o"></i>
  40 + 导出excel
  41 + </a>
  42 + </li>
  43 + <li class="divider"></li>
  44 + <li>
  45 + <a href="javascript:" class="tool-action">
  46 + <i class="fa fa-refresh"></i>
  47 + 刷行数据
  48 + </a>
  49 + </li>
  50 + </ul>
  51 + </div>
  52 + </div>
  53 + </div>
  54 +
  55 + <div class="portlet-body">
  56 + <div ui-view="schedulePlanReportManage_list"></div>
  57 + </div>
  58 + </div>
  59 + </div>
  60 +</div>
0 61 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/list_report.html 0 → 100644
  1 +<!-- ui-route employeeInfoManage.list -->
  2 +<div ng-controller="SchedulePlanReportManageListCtrl as ctrl">
  3 + <div class="fixDiv">
  4 + <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column" style="width: 2000px">
  5 + <thead>
  6 + <tr role="row" class="heading">
  7 + <th style="width: 50px;">序号</th>
  8 + <th style="width: 230px;">线路</th>
  9 + <th style="width: 180px">日期</th>
  10 + <th style="width: 60px">路牌</th>
  11 + <th style="width: 100px;">车辆</th>
  12 + <th style="width: 80px;">出场1</th>
  13 + <th style="width: 100px;">驾工1</th>
  14 + <th style="width: 100px;">驾1</th>
  15 + <th style="width: 100px;">售工1</th>
  16 + <th style="width: 100px;">售1</th>
  17 + <th style="width: 80px;">出场2</th>
  18 + <th style="width: 100px;">驾工2</th>
  19 + <th style="width: 100px;">驾2</th>
  20 + <th style="width: 100px;">售工2</th>
  21 + <th style="width: 100px;">售2</th>
  22 + <th style="width: 150px;">排班时间</th>
  23 + <th>时刻表</th>
  24 + </tr>
  25 + <tr role="row" class="filter">
  26 + <td></td>
  27 + <td>
  28 + <sa-Select3 model="ctrl.searchCondition()"
  29 + name="xl"
  30 + placeholder="请输拼音..."
  31 + dcvalue="{{ctrl.searchCondition()['xlid']}}"
  32 + dcname="xlid"
  33 + icname="id"
  34 + icnames="name"
  35 + datatype="xl">
  36 + </sa-Select3>
  37 + </td>
  38 + <td>
  39 + <div class="input-group">
  40 + <input type="text" class="form-control"
  41 + name="scheduleDate" placeholder="选择日期..."
  42 + uib-datepicker-popup="yyyy-MM-dd"
  43 + is-open="ctrl.scheduleDateOpen"
  44 + ng-model="ctrl.searchCondition().sdate" readonly/>
  45 + <span class="input-group-btn">
  46 + <button type="button" class="btn btn-default" ng-click="ctrl.scheduleDate_open()">
  47 + <i class="glyphicon glyphicon-calendar"></i>
  48 + </button>
  49 + </span>
  50 + </div>
  51 + </td>
  52 + <td></td>
  53 + <td></td>
  54 + <td></td>
  55 + <td></td>
  56 + <td></td>
  57 + <td></td>
  58 + <td></td>
  59 + <td></td>
  60 + <td></td>
  61 + <td></td>
  62 + <td></td>
  63 + <td></td>
  64 + <td></td>
  65 + </tr>
  66 + </thead>
  67 + <tbody>
  68 + <tr ng-repeat="info in ctrl.pageInfo.infos" class="odd gradeX">
  69 + <td>
  70 + <span ng-bind="$index + 1"></span>
  71 + </td>
  72 + <td>
  73 + <span ng-bind="info.xlName"></span>
  74 + </td>
  75 + <td>
  76 + <span ng-bind="info.scheduleDate | date: 'yyyy-MM-dd'"></span>
  77 + </td>
  78 + <td>
  79 + <span ng-bind="info.lpName"></span>
  80 + </td>
  81 + <td>
  82 + <a class="btn btn-success" ng-click="ctrl.goEditForm()">
  83 + <span ng-bind="info.clZbh"></span>
  84 + </a>
  85 + </td>
  86 + <td>
  87 + <a class="btn btn-success" ng-show="info.ccsj1">
  88 + <span ng-bind="info.ccsj1"></span>
  89 + </a>
  90 + </td>
  91 + <td>
  92 + <a class="btn btn-success" ng-show="info.jsy1Gh">
  93 + <span ng-bind="info.jsy1Gh"></span>
  94 + </a>
  95 + </td>
  96 + <td>
  97 + <a class="btn btn-success" ng-show="info.jsy1Name">
  98 + <span ng-bind="info.jsy1Name"></span>
  99 + </a>
  100 + </td>
  101 + <td>
  102 + <a class="btn btn-success" ng-show="info.spy1Gh">
  103 + <span ng-bind="info.spy1Gh"></span>
  104 + </a>
  105 + </td>
  106 + <td>
  107 + <a class="btn btn-success" ng-show="info.spy1Name">
  108 + <span ng-bind="info.spy1Name"></span>
  109 + </a>
  110 + </td>
  111 + <td>
  112 + <a class="btn btn-success" ng-show="info.ccsj2">
  113 + <span ng-bind="info.ccsj2"></span>
  114 + </a>
  115 + </td>
  116 + <td>
  117 + <a class="btn btn-success" ng-show="info.jsy2Gh">
  118 + <span ng-bind="info.jsy2Gh"></span>
  119 + </a>
  120 + </td>
  121 + <td>
  122 + <a class="btn btn-success" ng-show="info.jsy2Name">
  123 + <span ng-bind="info.jsy2Name"></span>
  124 + </a>
  125 + </td>
  126 + <td>
  127 + <a class="btn btn-success" ng-show="info.spy2Gh">
  128 + <span ng-bind="info.spy2Gh"></span>
  129 + </a>
  130 + </td>
  131 + <td>
  132 + <a class="btn btn-success" ng-show="info.spy2Name">
  133 + <span ng-bind="info.spy2Name"></span>
  134 + </a>
  135 + </td>
  136 + <td>
  137 + <span ng-bind="info.createDate | date: 'yyyy-MM-dd HH:mm:ss'"></span>
  138 + </td>
  139 + <td>
  140 + <span ng-bind="info.ttinfoName"></span>
  141 + </td>
  142 + </tr>
  143 + </tbody>
  144 + </table>
  145 + </div>
  146 +
  147 +</div>
0 148 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/schedulePlanReportManage.js 0 → 100644
  1 +// 调度值勤日报管理 service controller 等写在一起
  2 +// TODO:使用的global服务需要修正
  3 +angular.module('ScheduleApp').factory('SchedulePlanReportManageService', ['SchedulePlanManageService_g', function(service) {
  4 + /** 当前的查询条件信息 */
  5 + var currentSearchCondition = {};
  6 +
  7 + return {
  8 + /**
  9 + * 获取查询条件信息,
  10 + * 用于给controller用来和页面数据绑定。
  11 + */
  12 + getSearchCondition: function() {
  13 + return currentSearchCondition;
  14 + },
  15 + /**
  16 + * 重置查询条件信息。
  17 + */
  18 + resetSearchCondition: function() {
  19 + var key;
  20 + for (key in currentSearchCondition) {
  21 + currentSearchCondition[key] = undefined;
  22 + }
  23 + },
  24 + /**
  25 + * 组装查询参数,返回一个promise查询结果。
  26 + * @param params 查询参数
  27 + * @return 返回一个 promise
  28 + */
  29 + getPage: function() {
  30 + var params = currentSearchCondition; // 查询条件
  31 +
  32 + // TODO:如果没有选中线路、日期,默认选中一个
  33 + if (!params.xlid) {
  34 + currentSearchCondition.xlid = 2;
  35 + }
  36 + if (!params.sdate) {
  37 + currentSearchCondition.sdate = new Date();
  38 + currentSearchCondition.sdate.setTime(1472140800000);
  39 + }
  40 +
  41 + return service.groupinfo.list(params).$promise;
  42 + },
  43 + /**
  44 + * 获取明细信息。
  45 + * @param id 车辆id
  46 + * @return 返回一个 promise
  47 + */
  48 + getDetail: function(id) {
  49 + var params = {id: id};
  50 + return service.get(params).$promise;
  51 + },
  52 + /**
  53 + * 保存信息。
  54 + * @param obj 车辆详细信息
  55 + * @return 返回一个 promise
  56 + */
  57 + saveDetail: function(obj) {
  58 + return service.save(obj).$promise;
  59 + }
  60 + };
  61 +
  62 +}]);
  63 +
  64 +angular.module('ScheduleApp').controller('SchedulePlanReportManageCtrl', [
  65 + 'SchedulePlanReportManageService', '$state',
  66 + function(schedulePlanReportManageService, $state) {
  67 + var self = this;
  68 +
  69 + // 切换到form状态
  70 + self.goForm = function() {
  71 + alert("切换");
  72 + }
  73 + }
  74 +]);
  75 +
  76 +angular.module('ScheduleApp').controller('SchedulePlanReportManageListCtrl', [
  77 + 'SchedulePlanReportManageService', '$scope', '$state',
  78 + function(schedulePlanReportManageService, $scope, $state) {
  79 +
  80 + var self = this;
  81 + self.pageInfo = {
  82 + infos: []
  83 + };
  84 +
  85 + // 日期 日期控件开关
  86 + self.scheduleDateOpen = false;
  87 + self.scheduleDate_open = function() {
  88 + self.scheduleDateOpen = true;
  89 + };
  90 +
  91 + // 初始创建的时候,获取一次列表数据
  92 + schedulePlanReportManageService.getPage().then(
  93 + function(result) {
  94 + self.pageInfo.infos = result;
  95 + },
  96 + function(result) {
  97 + alert("出错啦!");
  98 + }
  99 + );
  100 +
  101 + // 翻页的时候调用
  102 + self.pageChanaged = function() {
  103 + schedulePlanReportManageService.getPage().then(
  104 + function(result) {
  105 + self.pageInfo.infos = result;
  106 + },
  107 + function(result) {
  108 + alert("出错啦!");
  109 + }
  110 + );
  111 + };
  112 + // 获取查询条件数据
  113 + self.searchCondition = function() {
  114 + return schedulePlanReportManageService.getSearchCondition();
  115 + };
  116 + // 重置查询条件
  117 + self.resetSearchCondition = function() {
  118 + return schedulePlanReportManageService.resetSearchCondition();
  119 + };
  120 +
  121 + // 监控条件变化,触发查询
  122 + $scope.$watch(
  123 + function() {
  124 + return schedulePlanReportManageService.getSearchCondition();
  125 + },
  126 + function(newValue, oldValue) {
  127 + if (newValue) {
  128 + if (newValue.xlid && newValue.sdate) {
  129 + self.pageChanaged();
  130 + }
  131 + }
  132 + },
  133 + true
  134 + );
  135 +
  136 + // 切换到修改页面
  137 + self.goEditForm = function() {
  138 + //$state.go("schedulePlanReportManage_edit");
  139 + }
  140 +
  141 + }
  142 +]);
  143 +
  144 +angular.module('ScheduleApp').controller('SchedulePlanReportManageFormCtrl', ['SchedulePlanReportManageService', '$stateParams', '$state', function(schedulePlanReportManageService, $stateParams, $state) {
  145 + // TODO:
  146 +}]);
  147 +
  148 +angular.module('ScheduleApp').controller('SchedulePlanReportManageDetailCtrl', ['SchedulePlanReportManageService', '$stateParams', function(schedulePlanReportManageService, $stateParams) {
  149 + // TODO:
  150 +}]);
  151 +
  152 +
  153 +
... ...