Commit 1d7c777b77a74e4d9512475c51ecb9fab1c3b9f1

Authored by 徐烜
2 parents df10f672 68f4c8cc

Merge branch 'minhang' of http://192.168.168.201:8888/panzhaov5/bsth_control into minhang

src/main/resources/static/real_control_v2/fragments/geo/calc_station_space.html
1 -<!-- 嵌入下抽屉 -->  
2 -<div id="cal_station_space_drawer" style="width: 100%;height: 100%;">  
3 -  
4 - <div style="text-align: center;padding-top: 30px;" class="calcBeforePanel">  
5 - <p style="margin: 9px 0 9px 0;">当前站点间里程数据取自 <a target="_blank" id="stationRouteLink">基础信息->线路信息->站点详细</a>  
6 - 你可以手动编辑。</p>  
7 - <p style="margin: 9px 0 9px 0;">此外,我们提供另一种选择,根据路段和站点空间坐标计算站间距。计算后的数据将存储在本地。  
8 - </p>  
9 - <p style="margin: 0px 0 9px 0;">  
10 - <span style="color: grey;font-size: 12px;">该操作会借用本地计算能力进行,如果你同意,请点击下方按钮!</span>  
11 - </p>  
12 - <p style="margin: 9px 0 9px 0;">  
13 - <button class="uk-button uk-button-large uk-button-primary" type="button" id="startCalcBtn">开始计算</button>  
14 - </p>  
15 - </div>  
16 -  
17 - <div class="pace pace-active" style="display: none;">  
18 - <div class="pace-progress" data-progress="50" data-progress-text="50%"  
19 - style="-webkit-transform: translate3d(50%, 0px, 0px); -ms-transform: translate3d(50%, 0px, 0px); transform: translate3d(50%, 0px, 0px);">  
20 - <div class="pace-progress-inner"></div>  
21 - </div>  
22 - <div class="pace-activity"></div>  
23 - <span class="text"></span>  
24 - </div>  
25 -  
26 - <script>  
27 -  
28 - (function () {  
29 - var drawer = '#cal_station_space_drawer'  
30 - , sch, line;  
31 -  
32 - $(drawer).on('drawer-init', function (e, data) {  
33 - sch = data.sch;  
34 - line = gb_data_basic.codeToLine[sch.xlBm];  
35 - //线路路由信息调整链接  
36 - $('#stationRouteLink', drawer).attr('href', '/pages/base/stationroute/list.html?no=' + line.id);  
37 -  
38 - $('#startCalcBtn', drawer).on('click', startCalc);  
39 - });  
40 -  
41 -  
42 - function startCalc() {  
43 - $(this).attr('disabled', 'disabled');  
44 -  
45 - gb_common.$get('/realMap/findRouteAndStationByLine', {lineCode: line.lineCode}, function (spatialData) {  
46 - $('.calcBeforePanel', drawer).hide();  
47 - $('.pace', drawer).show();  
48 -  
49 - startGeoCalc(spatialData);  
50 - });  
51 - }  
52 -  
53 - function startGeoCalc(spatialData) {  
54 - setCalcText('初始化数据');  
55 - //console.log('spatialData', spatialData);  
56 - //路段上下行分组排序  
57 - var sections = gb_common.groupBy(spatialData.section, 'DIRECTIONS');  
58 - sections[0].sort(sectionArrSort);  
59 - sections[1].sort(sectionArrSort);  
60 -  
61 - //站点上下行分组排序  
62 - var stations = gb_common.groupBy(spatialData.station, 'DIRECTIONS');  
63 - stations[0].sort(stationArrSort);  
64 - stations[1].sort(stationArrSort);  
65 -  
66 - setCalcText('拼接路段,计算重叠区域');  
67 - var fullSections = [  
68 - connectSections(sections[0]),  
69 - connectSections(sections[1])  
70 - ];  
71 -  
72 - setCalcText('计算上行数据');  
73 - var upCalcRs = calcStationSpace(stations[0], fullSections[0]);  
74 -  
75 - setCalcText('计算下行数据');  
76 - var downCalcRs = calcStationSpace(stations[1], fullSections[1]);  
77 -  
78 - var locData={  
79 - stations: {up: upCalcRs,down: downCalcRs},  
80 - sections: {up: fullSections[0], down: fullSections[1]}  
81 - };  
82 -  
83 - window.localStorage.setItem('control_route_distance_'+sch.xlBm, JSON.stringify(locData));  
84 - //console.log('结果', locData);  
85 - }  
86 -  
87 - function sectionArrSort(s1, s2) {  
88 - return s1.SECTIONROUTE_CODE - s2.SECTIONROUTE_CODE;  
89 - }  
90 -  
91 - function stationArrSort(s1, s2) {  
92 - return s1.STATION_ROUTE_CODE - s2.STATION_ROUTE_CODE;  
93 - }  
94 -  
95 - function setCalcText(t) {  
96 - $('.pace .text', drawer).text(t);  
97 - }  
98 -  
99 - //连接路段数组  
100 - function connectSections(sectionArray) {  
101 - var coords = [];  
102 -  
103 - var vs, temps;  
104 - for (var i = 0, section; section = sectionArray[i++];) {  
105 - vs = section.GSECTION_VECTOR;  
106 - temps = vs.substr(11, vs.length - 2).split(',');  
107 -  
108 - connectCoords(coords, temps);  
109 - }  
110 - return coords;  
111 - }  
112 -  
113 - function connectCoords(all, subArr) {  
114 -  
115 - var point, ts, len = all.length, inLine, sIndex = 0;  
116 - if (len > 0) {  
117 - $.each(subArr, function (i, p) {  
118 - ts = p.split(' ');  
119 - point = {latitude: parseFloat(ts[1]), longitude: parseFloat(ts[0])};  
120 - //找到起始点  
121 - sIndex = 0;  
122 - for (var j = 1; j < len; j++) {  
123 - inLine = geolib.isPointInLine(point, all[j - 1], all[j]);  
124 -  
125 - if (inLine)  
126 - break;  
127 - else  
128 - sIndex = i;  
129 - }  
130 - });  
131 - }  
132 -  
133 - //拼接  
134 - for (var i = sIndex; i < subArr.length; i++) {  
135 - ts = subArr[i].split(' ');  
136 - all.push({  
137 - latitude: parseFloat(ts[1]), longitude: parseFloat(ts[0])  
138 - });  
139 - }  
140 - }  
141 -  
142 - //计算站点间距  
143 - function calcStationSpace(stations, coords) {  
144 -  
145 - var nearArray = [];  
146 - for (var i = 1; i < stations.length; i++) {  
147 -  
148 - //点到线的最短距离 并计算交点坐标  
149 - var rs = calcPointToLineNearPoint({  
150 - latitude: stations[i].G_LATY,  
151 - longitude: stations[i].G_LONX  
152 - }, coords);  
153 - rs.station = stations[i];  
154 -  
155 - //将交点插入线路中  
156 - coords.splice(rs.index, 0, rs.intersection);  
157 -  
158 - nearArray.push(rs);  
159 - //console.log('站点' + i + '计算结果', rs.intersection, rs);  
160 - }  
161 -  
162 - //根据交点截断line,并计算距离  
163 - var s = 0, e, distance;  
164 - $.each(nearArray, function (i) {  
165 - e = this.index;  
166 - distance = 0;  
167 - for (; s < e; s++) {  
168 - distance += geolib.getDistance(coords[s], coords[s + 1]);  
169 - }  
170 -  
171 - this.toDistance = distance;  
172 - s = e;  
173 - });  
174 - return nearArray;  
175 - }  
176 -  
177 - function calcPointToLineNearPoint(point, coords) {  
178 - var minRs, rs;  
179 - for (var i = 1; i < coords.length; i++) {  
180 -  
181 - var start = coords[i - 1], end = coords[i];  
182 - var d1 = geolib.getDistance(start, point, 1, 3);  
183 - var d2 = geolib.getDistance(point, end, 1, 3);  
184 - var d3 = geolib.getDistance(start, end, 1, 3);  
185 -  
186 - var alpha = Math.acos((d1 * d1 + d3 * d3 - d2 * d2) / (2 * d1 * d3));  
187 - var beta = Math.acos((d2 * d2 + d3 * d3 - d1 * d1) / (2 * d2 * d3));  
188 -  
189 - if (d3 < 0.5 || isNaN(alpha) || isNaN(beta))  
190 - continue;  
191 -  
192 - rs = {index: i};  
193 - if (alpha > Math.PI / 2) {  
194 - rs.distance = d1;  
195 - rs.intersection = start;  
196 - }  
197 - else if (beta > Math.PI / 2) {  
198 - rs.distance = d2;  
199 - rs.intersection = end;  
200 - }  
201 - else {  
202 - rs.distance = Math.sin(alpha) * d1;  
203 - rs.intersection = perpendularPoint(start, end, point);  
204 - }  
205 -  
206 - if (!minRs || minRs.distance > rs.distance)  
207 - minRs = rs  
208 - }  
209 -  
210 - return minRs;  
211 - }  
212 -  
213 - //获取点 到 线的垂直交点  
214 - function perpendularPoint(lp1, lp2, p) {  
215 - var a = lp1.latitude - lp2.latitude, b = lp2.longitude - lp1.longitude, c = lp1.longitude * lp2.latitude - lp2.longitude * lp1.latitude;  
216 - var lon = (Math.pow(b, 2) * p.longitude - a * b * p.latitude - a * c) / (Math.pow(a, 2) + Math.pow(b, 2));  
217 - var lat = (Math.pow(a, 2) * p.latitude - a * b * p.longitude - b * c) / (Math.pow(a, 2) + Math.pow(b, 2));  
218 - return {longitude: lon, latitude: lat};  
219 - }  
220 -  
221 - })();  
222 - </script> 1 +<!-- 嵌入下抽屉 -->
  2 +<div id="cal_station_space_drawer" style="width: 100%;height: 100%;">
  3 +
  4 + <div style="text-align: center;padding-top: 30px;" class="calcBeforePanel">
  5 + <p style="margin: 9px 0 9px 0;">当前站点间里程数据取自 <a target="_blank" id="stationRouteLink">基础信息->线路信息->站点详细</a>
  6 + 你可以手动编辑。</p>
  7 + <p style="margin: 9px 0 9px 0;">此外,我们提供另一种选择,根据路段和站点空间坐标计算站间距。计算后的数据将存储在本地。
  8 + </p>
  9 + <p style="margin: 0px 0 9px 0;">
  10 + <span style="color: grey;font-size: 12px;">该操作会借用本地计算能力进行,如果你同意,请点击下方按钮!</span>
  11 + </p>
  12 + <p style="margin: 9px 0 9px 0;">
  13 + <button class="uk-button uk-button-large uk-button-primary" type="button" id="startCalcBtn">开始计算</button>
  14 + </p>
  15 + </div>
  16 +
  17 + <div class="pace pace-active" style="display: none;">
  18 + <div class="pace-progress" data-progress="50" data-progress-text="50%"
  19 + style="-webkit-transform: translate3d(50%, 0px, 0px); -ms-transform: translate3d(50%, 0px, 0px); transform: translate3d(50%, 0px, 0px);">
  20 + <div class="pace-progress-inner"></div>
  21 + </div>
  22 + <div class="pace-activity"></div>
  23 + <span class="text"></span>
  24 + </div>
  25 +
  26 + <script>
  27 +
  28 + (function () {
  29 + var drawer = '#cal_station_space_drawer'
  30 + , sch, line;
  31 +
  32 + $(drawer).on('drawer-init', function (e, data) {
  33 + sch = data.sch;
  34 + line = gb_data_basic.codeToLine[sch.xlBm];
  35 + //线路路由信息调整链接
  36 + $('#stationRouteLink', drawer).attr('href', '/pages/base/stationroute/list.html?no=' + line.id);
  37 +
  38 + $('#startCalcBtn', drawer).on('click', startCalc);
  39 + });
  40 +
  41 +
  42 + function startCalc() {
  43 + $(this).attr('disabled', 'disabled');
  44 +
  45 + gb_common.$get('/realMap/findRouteAndStationByLine', {lineCode: line.lineCode}, function (spatialData) {
  46 + $('.calcBeforePanel', drawer).hide();
  47 + $('.pace', drawer).show();
  48 +
  49 + startGeoCalc(spatialData);
  50 + });
  51 + }
  52 +
  53 + function startGeoCalc(spatialData) {
  54 + setCalcText('初始化数据');
  55 + //console.log('spatialData', spatialData);
  56 + //路段上下行分组排序
  57 + var sections = gb_common.groupBy(spatialData.section, 'DIRECTIONS');
  58 + sections[0].sort(sectionArrSort);
  59 + sections[1].sort(sectionArrSort);
  60 +
  61 + //站点上下行分组排序
  62 + var stations = gb_common.groupBy(spatialData.station, 'DIRECTIONS');
  63 + stations[0].sort(stationArrSort);
  64 + stations[1].sort(stationArrSort);
  65 +
  66 + setCalcText('拼接路段,计算重叠区域');
  67 + var fullSections = [
  68 + connectSections(sections[0]),
  69 + connectSections(sections[1])
  70 + ];
  71 +
  72 + setCalcText('计算上行数据');
  73 + var upCalcRs = calcStationSpace(stations[0], fullSections[0]);
  74 +
  75 + setCalcText('计算下行数据');
  76 + var downCalcRs = calcStationSpace(stations[1], fullSections[1]);
  77 +
  78 + var locData = {
  79 + stations: {up: upCalcRs, down: downCalcRs},
  80 + sections: {up: fullSections[0], down: fullSections[1]}
  81 + };
  82 +
  83 + window.localStorage.setItem('control_route_distance_' + sch.xlBm, JSON.stringify(locData));
  84 + //console.log('结果', locData);
  85 + }
  86 +
  87 + function sectionArrSort(s1, s2) {
  88 + return s1.SECTIONROUTE_CODE - s2.SECTIONROUTE_CODE;
  89 + }
  90 +
  91 + function stationArrSort(s1, s2) {
  92 + return s1.STATION_ROUTE_CODE - s2.STATION_ROUTE_CODE;
  93 + }
  94 +
  95 + function setCalcText(t) {
  96 + $('.pace .text', drawer).text(t);
  97 + }
  98 +
  99 + //连接路段数组
  100 + function connectSections(sectionArray) {
  101 + var coords = [];
  102 +
  103 + var vs, temps;
  104 + for (var i = 0, section; section = sectionArray[i++];) {
  105 + vs = section.GSECTION_VECTOR;
  106 + temps = vs.substr(11, vs.length - 2).split(',');
  107 +
  108 + connectCoords(coords, temps);
  109 + }
  110 + return coords;
  111 + }
  112 +
  113 + function connectCoords(all, subArr) {
  114 +
  115 + var point, ts, len = all.length, inLine, sIndex = 0;
  116 + if (len > 0) {
  117 + $.each(subArr, function (i, p) {
  118 + ts = p.split(' ');
  119 + point = {latitude: parseFloat(ts[1]), longitude: parseFloat(ts[0])};
  120 + //找到起始点
  121 + sIndex = 0;
  122 + for (var j = 1; j < len; j++) {
  123 + inLine = geolib.isPointInLine(point, all[j - 1], all[j]);
  124 +
  125 + if (inLine)
  126 + break;
  127 + else
  128 + sIndex = i;
  129 + }
  130 + });
  131 + }
  132 +
  133 + //拼接
  134 + for (var i = sIndex; i < subArr.length; i++) {
  135 + ts = subArr[i].split(' ');
  136 + all.push({
  137 + latitude: parseFloat(ts[1]), longitude: parseFloat(ts[0])
  138 + });
  139 + }
  140 + }
  141 +
  142 + //计算站点间距
  143 + function calcStationSpace(stations, coords) {
  144 +
  145 + var nearArray = [];
  146 + for (var i = 1; i < stations.length; i++) {
  147 +
  148 + //点到线的最短距离 并计算交点坐标
  149 + var rs = calcPointToLineNearPoint({
  150 + latitude: stations[i].G_LATY,
  151 + longitude: stations[i].G_LONX
  152 + }, coords);
  153 + rs.station = stations[i];
  154 +
  155 + //将交点插入线路中
  156 + coords.splice(rs.index, 0, rs.intersection);
  157 +
  158 + nearArray.push(rs);
  159 + //console.log('站点' + i + '计算结果', rs.intersection, rs);
  160 + }
  161 +
  162 + //根据交点截断line,并计算距离
  163 + var s = 0, e, distance;
  164 + $.each(nearArray, function (i) {
  165 + e = this.index;
  166 + distance = 0;
  167 + for (; s < e; s++) {
  168 + distance += geolib.getDistance(coords[s], coords[s + 1]);
  169 + }
  170 +
  171 + this.toDistance = distance;
  172 + s = e;
  173 + });
  174 +
  175 + //首站
  176 + nearArray.splice(0, 0, {
  177 + distance: 0,
  178 + station: stations[0],
  179 + toDistance: 0
  180 + });
  181 + return nearArray;
  182 + }
  183 +
  184 + function calcPointToLineNearPoint(point, coords) {
  185 + var minRs, rs;
  186 + for (var i = 1; i < coords.length; i++) {
  187 +
  188 + var start = coords[i - 1], end = coords[i];
  189 + var d1 = geolib.getDistance(start, point, 1, 3);
  190 + var d2 = geolib.getDistance(point, end, 1, 3);
  191 + var d3 = geolib.getDistance(start, end, 1, 3);
  192 +
  193 + var alpha = Math.acos((d1 * d1 + d3 * d3 - d2 * d2) / (2 * d1 * d3));
  194 + var beta = Math.acos((d2 * d2 + d3 * d3 - d1 * d1) / (2 * d2 * d3));
  195 +
  196 + if (d3 < 0.5 || isNaN(alpha) || isNaN(beta))
  197 + continue;
  198 +
  199 + rs = {index: i};
  200 + if (alpha > Math.PI / 2) {
  201 + rs.distance = d1;
  202 + rs.intersection = start;
  203 + }
  204 + else if (beta > Math.PI / 2) {
  205 + rs.distance = d2;
  206 + rs.intersection = end;
  207 + }
  208 + else {
  209 + rs.distance = Math.sin(alpha) * d1;
  210 + rs.intersection = perpendularPoint(start, end, point);
  211 + }
  212 +
  213 + if (!minRs || minRs.distance > rs.distance)
  214 + minRs = rs
  215 + }
  216 +
  217 + return minRs;
  218 + }
  219 +
  220 + //获取点 到 线的垂直交点
  221 + function perpendularPoint(lp1, lp2, p) {
  222 + var a = lp1.latitude - lp2.latitude, b = lp2.longitude - lp1.longitude, c = lp1.longitude * lp2.latitude - lp2.longitude * lp1.latitude;
  223 + var lon = (Math.pow(b, 2) * p.longitude - a * b * p.latitude - a * c) / (Math.pow(a, 2) + Math.pow(b, 2));
  224 + var lat = (Math.pow(a, 2) * p.latitude - a * b * p.longitude - b * c) / (Math.pow(a, 2) + Math.pow(b, 2));
  225 + return {longitude: lon, latitude: lat};
  226 + }
  227 +
  228 + })();
  229 + </script>
223 </div> 230 </div>
224 \ No newline at end of file 231 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/lj_zrw.html
@@ -322,7 +322,8 @@ @@ -322,7 +322,8 @@
322 name: "添加子任务", 322 name: "添加子任务",
323 items: { 323 items: {
324 'add_sub_task_in': { 324 'add_sub_task_in': {
325 - name: '回场' 325 + name: '回场',
  326 + disabled: true
326 }, 327 },
327 'add_sub_task_out': { 328 'add_sub_task_out': {
328 name: '出场', 329 name: '出场',
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task/add_sub_task_inpark.html
1 -<div class="uk-modal" id="add-sub-task-inpark-modal">  
2 - <div class="uk-modal-dialog">  
3 - <a href="" class="uk-modal-close uk-close"></a>  
4 - <div class="uk-modal-header">  
5 - <h2>回场子任务</h2></div>  
6 -  
7 - <div style="width: 100%;padding-left: 1%;">  
8 - <div class="sub-task-card">  
9 - <div class="uk-panel uk-panel-box uk-panel-box-primary">  
10 - <div class="uk-panel-badge uk-badge">营运</div>  
11 - <h3 class="uk-panel-title">线路上站点间</h3>  
12 - <form class="uk-form uk-form-horizontal" service_form>  
13 - <div class="uk-grid">  
14 - <div class="uk-width-3-10">  
15 - <div class="uk-form-row">  
16 - <label class="uk-form-label">起点 </label>  
17 - </div>  
18 - </div>  
19 - <div class="uk-width-7-10 pl5">  
20 - <select name="startStation" disabled></select>  
21 - </div>  
22 - </div>  
23 - <div class="uk-grid">  
24 - <div class="uk-width-3-10">  
25 - <div class="uk-form-row">  
26 - <label class="uk-form-label">终点 </label>  
27 - </div>  
28 - </div>  
29 - <div class="uk-width-7-10 pl5">  
30 - <select name="endStation" class="ct_focus"></select>  
31 - </div>  
32 - </div>  
33 - <div class="uk-grid">  
34 - <div class="uk-width-3-10">  
35 - <div class="uk-form-row">  
36 - <label class="uk-form-label">营运里程</label>  
37 - </div>  
38 - </div>  
39 - <div class="uk-width-7-10 pl5">  
40 - <input type="text" name="mileageType" required>  
41 - </div>  
42 - </div>  
43 - <div class="uk-grid">  
44 - <div class="uk-width-3-10">  
45 - <div class="uk-form-row">  
46 - <label class="uk-form-label">开始时间</label>  
47 - </div>  
48 - </div>  
49 - <div class="uk-width-7-10 pl5">  
50 - <input type="time" name="startDate" required>  
51 - </div>  
52 - </div>  
53 - <div class="uk-grid">  
54 - <div class="uk-width-3-10">  
55 - <div class="uk-form-row">  
56 - <label class="uk-form-label">结束时间</label>  
57 - </div>  
58 - </div>  
59 - <div class="uk-width-7-10 pl5">  
60 - <input type="time" name="endDate" required>  
61 - </div>  
62 - </div>  
63 - </form>  
64 - </div>  
65 - </div>  
66 - <div class="sub-task-card">  
67 - <div class="uk-panel uk-panel-box uk-panel-box-secondary">  
68 - <div class="uk-panel-badge uk-badge uk-badge-default">空驶</div>  
69 - <h3 class="uk-panel-title">进场</h3>  
70 - <form class="uk-form uk-form-horizontal" empty_form>  
71 - <div class="uk-grid">  
72 - <div class="uk-width-3-10">  
73 - <div class="uk-form-row">  
74 - <label class="uk-form-label">起点 </label>  
75 - </div>  
76 - </div>  
77 - <div class="uk-width-7-10 pl5">  
78 - <select name="startStation" disabled></select>  
79 - </div>  
80 - </div>  
81 - <div class="uk-grid">  
82 - <div class="uk-width-3-10">  
83 - <div class="uk-form-row">  
84 - <label class="uk-form-label">终点 </label>  
85 - </div>  
86 - </div>  
87 - <div class="uk-width-7-10 pl5">  
88 - <select name="endStation" class="ct_focus"></select>  
89 - </div>  
90 - </div>  
91 - <div class="uk-grid">  
92 - <div class="uk-width-3-10">  
93 - <div class="uk-form-row">  
94 - <label class="uk-form-label">空驶里程</label>  
95 - </div>  
96 - </div>  
97 - <div class="uk-width-7-10 pl5">  
98 - <input type="text" name="mileageType" required style="width: calc(100% - 62px);">  
99 - <a style="font-size: 12px;">路径(3)</a>  
100 - </div>  
101 - </div>  
102 - <div class="uk-grid">  
103 - <div class="uk-width-3-10">  
104 - <div class="uk-form-row">  
105 - <label class="uk-form-label">开始时间</label>  
106 - </div>  
107 - </div>  
108 - <div class="uk-width-7-10 pl5">  
109 - <input type="time" name="startDate" required>  
110 - </div>  
111 - </div>  
112 - <div class="uk-grid">  
113 - <div class="uk-width-3-10">  
114 - <div class="uk-form-row">  
115 - <label class="uk-form-label">结束时间</label>  
116 - </div>  
117 - </div>  
118 - <div class="uk-width-7-10 pl5">  
119 - <input type="time" name="endDate" required>  
120 - </div>  
121 - </div>  
122 - </form>  
123 - </div>  
124 - </div>  
125 - <div class="sub-task-card destroy-card uk-animation-scale">  
126 - <div class="uk-panel uk-panel-box uk-panel-box-danger">  
127 - <div class="uk-panel-badge uk-badge uk-badge-danger">烂班</div>  
128 - <h3 class="uk-panel-title">线路上站点间</h3>  
129 - <form class="uk-form uk-form-horizontal" destroy_form>  
130 - <div class="uk-grid">  
131 - <div class="uk-width-3-10">  
132 - <div class="uk-form-row">  
133 - <label class="uk-form-label">起点 </label>  
134 - </div>  
135 - </div>  
136 - <div class="uk-width-7-10 pl5">  
137 - <select name="startStation" disabled></select>  
138 - </div>  
139 - </div>  
140 - <div class="uk-grid">  
141 - <div class="uk-width-3-10">  
142 - <div class="uk-form-row">  
143 - <label class="uk-form-label">终点 </label>  
144 - </div>  
145 - </div>  
146 - <div class="uk-width-7-10 pl5">  
147 - <select name="endStation" class="ct_focus" disabled></select>  
148 - </div>  
149 - </div>  
150 - <div class="uk-grid">  
151 - <div class="uk-width-3-10">  
152 - <div class="uk-form-row">  
153 - <label class="uk-form-label">烂班里程</label>  
154 - </div>  
155 - </div>  
156 - <div class="uk-width-7-10 pl5">  
157 - <input type="text" name="mileageType" required>  
158 - </div>  
159 - </div>  
160 - <div class="uk-grid">  
161 - <div class="uk-width-3-10">  
162 - <div class="uk-form-row">  
163 - <label class="uk-form-label">开始时间</label>  
164 - </div>  
165 - </div>  
166 - <div class="uk-width-7-10 pl5">  
167 - <input type="time" name="startDate" required>  
168 - </div>  
169 - </div>  
170 - <div class="uk-grid">  
171 - <div class="uk-width-3-10">  
172 - <div class="uk-form-row">  
173 - <label class="uk-form-label">烂班原因</label>  
174 - </div>  
175 - </div>  
176 - <div class="uk-width-7-10 pl5">  
177 - <select name="destroyReason" required></select>  
178 - </div>  
179 - </div>  
180 - </form>  
181 - </div>  
182 - </div>  
183 -  
184 - <form class="uk-form" style="margin-top: 15px; padding: 0 10px 0 0;">  
185 - <textarea placeholder="备注" style="width: 100%;height: 70px;"></textarea>  
186 - </form>  
187 - </div>  
188 -  
189 - <div class="uk-modal-footer uk-text-right">  
190 - <button type="button" class="uk-button uk-modal-close">取消</button>  
191 - <button type="button" class="uk-button uk-button-primary">提交子任务</button>  
192 -  
193 - <div class="ct-footer-left">  
194 - <a id="betweenStationRangeCalc" data-drawer-id="cal_station_space_drawer">站点间公里不准?</a>  
195 - </div>  
196 - </div>  
197 - </div>  
198 -  
199 - <div class="ct-bottom-drawer">  
200 - <a class="ct-bottom-drawer-close"></a>  
201 -  
202 - <div class="ct-bottom-drawer-body"></div>  
203 - </div>  
204 -  
205 - <script id="sub-task-inpark-form-temp" type="text/html">  
206 - </script>  
207 -  
208 - <script>  
209 - (function () {  
210 - var modal = '#add-sub-task-inpark-modal',  
211 - serviceForm = $('form[service_form]', modal),  
212 - emptyForm = $('form[empty_form]', modal),  
213 - destroyForm = $('form[destroy_form]', modal),  
214 - sch, stationRoutes, parks, information, esCode;  
215 - var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '其他'];  
216 - $(modal).on('init', function (e, data) {  
217 - sch = data.sch;  
218 - //var formHtml = template('sub-task-inpark-form-temp', {sch:sch, adjustExps: adjustExps});  
219 - //$('form', modal).html(formHtml);  
220 - //字典转换  
221 - //dictionaryUtils.transformDom($('.nt-dictionary', modal));  
222 -  
223 - //站点路由  
224 - stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) {  
225 - return a.stationRouteCode - b.stationRouteCode;  
226 - }), 'directions')[sch.xlDir];  
227 - //空驶终点(停车场)  
228 - $.get('/basic/parks', function (rs) {  
229 - parks = rs;  
230 - var opts = '';  
231 - for (var code in parks) {  
232 - opts += '<option value="' + code + '">' + parks[code] + '</option>';  
233 - }  
234 - $('select[name=endStation]', emptyForm).html(opts).val(information.carPark);  
235 - });  
236 - //线路标准  
237 - information = gb_data_basic.getLineInformation(sch.xlBm);  
238 -  
239 - var routeOpts = '';  
240 - $.each(stationRoutes, function () {  
241 - routeOpts += '<option value="' + this.stationCode + '">' + this.stationName + '</option>';  
242 - });  
243 - esCode = stationRoutes[stationRoutes.length - 1].stationCode;  
244 -  
245 - //营运起终点  
246 - $('select[name=startStation],select[name=endStation]', serviceForm).html(routeOpts);  
247 - //空驶起点  
248 - $('select[name=startStation]', emptyForm).html(routeOpts).val(esCode);  
249 - //烂班起终点  
250 - $('select[name=startStation],select[name=endStation]', destroyForm).html(routeOpts).val(esCode);  
251 -  
252 - //烂班原因  
253 - var adjustExpsOpts = '<option value="">请选择...</option>';  
254 - $.each(adjustExps, function (i, str) {  
255 - adjustExpsOpts += '<option value="' + str + '">' + str + '</option>';  
256 - });  
257 - $('select[name=destroyReason]', destroyForm).html(adjustExpsOpts);  
258 -  
259 - //切换营运终点  
260 - $('select[name=endStation]', serviceForm).val(esCode).on('change', function () {  
261 - var val = $(this).val();  
262 - if (val == esCode) {  
263 - $('.uk-modal-dialog', modal).removeClass('three-children');  
264 - $('.sub-task-card.destroy-card').css("display", "none");  
265 - }  
266 - else {  
267 - $('.uk-modal-dialog', modal).addClass('three-children');  
268 - $('.sub-task-card.destroy-card').css("display", "inline-block");  
269 - }  
270 -  
271 - reClac();  
272 - });  
273 -  
274 -  
275 - //submit  
276 - /*var f = $('form', modal).formValidation({  
277 - framework: 'uikit',  
278 - locale: 'zh_CN',  
279 - });  
280 - f.on('success.form.fv', function(e) {  
281 - disabled_submit_btn(this);  
282 - e.preventDefault();  
283 - var data = $(this).serializeJSON();  
284 -  
285 - });*/  
286 - });  
287 -  
288 - function reClac() {  
289 - var serviceEnd = $('select[name=endStation]', serviceForm).val();  
290 - //空驶起点 == 营运终点  
291 - $('select[name=startStation]', emptyForm).val(serviceEnd);  
292 -  
293 - if (serviceEnd != esCode) {  
294 - //烂班起点 == 营运终点  
295 - $('select[name=startStation]', destroyForm).val(serviceEnd);  
296 - }  
297 - }  
298 -  
299 -  
300 - //------ 下抽屉 ------  
301 - $('#betweenStationRangeCalc', modal).on('click', function () {  
302 - var id = $(this).data('drawer-id');  
303 - switchBtmDrawer(id, '/real_control_v2/fragments/geo/calc_station_space.html');  
304 - });  
305 -  
306 - var btmDrawer = $('.ct-bottom-drawer', modal);  
307 - //打开事件  
308 - btmDrawer.on('drawer_show', function () {  
309 - var url = $(this).data('url');  
310 - if(!url){  
311 - alert('无效的地址');  
312 - }  
313 -  
314 - var drawerPanel=$(this).data('name');  
315 - $('.ct-bottom-drawer-body', btmDrawer).load(url, function () {  
316 - $('#'+drawerPanel).trigger('drawer-init', {sch: sch});  
317 - });  
318 - });  
319 -  
320 - function switchBtmDrawer(id, url) {  
321 - if (btmDrawer.hasClass('open') && btmDrawer.data('name') == id) {  
322 - btmDrawer.removeClass('open');  
323 - btmDrawer.removeData('name').removeData('url');  
324 - }  
325 - else {  
326 - btmDrawer.addClass('open');  
327 - btmDrawer.data('name', id).data('url', url).trigger('drawer_show');  
328 - }  
329 - }  
330 - })();  
331 - </script>  
332 -</div> 1 +<div class="uk-modal" id="add-sub-task-inpark-modal">
  2 + <div class="uk-modal-dialog">
  3 + <a href="" class="uk-modal-close uk-close"></a>
  4 + <div class="uk-modal-header">
  5 + <h2>回场子任务</h2></div>
  6 +
  7 + <div style="width: 100%;padding-left: 1%;">
  8 + <div class="sub-task-card">
  9 + <div class="uk-panel uk-panel-box uk-panel-box-primary">
  10 + <div class="uk-panel-badge uk-badge">营运</div>
  11 + <h3 class="uk-panel-title">线路上站点间</h3>
  12 + <form class="uk-form uk-form-horizontal" service_form>
  13 + <div class="uk-grid">
  14 + <div class="uk-width-3-10">
  15 + <div class="uk-form-row">
  16 + <label class="uk-form-label">起点 </label>
  17 + </div>
  18 + </div>
  19 + <div class="uk-width-7-10 pl5">
  20 + <select name="startStation" disabled></select>
  21 + </div>
  22 + </div>
  23 + <div class="uk-grid">
  24 + <div class="uk-width-3-10">
  25 + <div class="uk-form-row">
  26 + <label class="uk-form-label">终点 </label>
  27 + </div>
  28 + </div>
  29 + <div class="uk-width-7-10 pl5">
  30 + <select name="endStation" class="ct_focus"></select>
  31 + </div>
  32 + </div>
  33 + <div class="uk-grid">
  34 + <div class="uk-width-3-10">
  35 + <div class="uk-form-row">
  36 + <label class="uk-form-label">营运里程</label>
  37 + </div>
  38 + </div>
  39 + <div class="uk-width-7-10 pl5">
  40 + <input type="text" name="mileageType" required>
  41 + </div>
  42 + </div>
  43 + <div class="uk-grid">
  44 + <div class="uk-width-3-10">
  45 + <div class="uk-form-row">
  46 + <label class="uk-form-label">开始时间</label>
  47 + </div>
  48 + </div>
  49 + <div class="uk-width-7-10 pl5">
  50 + <input type="time" name="startDate" required>
  51 + </div>
  52 + </div>
  53 + <div class="uk-grid">
  54 + <div class="uk-width-3-10">
  55 + <div class="uk-form-row">
  56 + <label class="uk-form-label">结束时间</label>
  57 + </div>
  58 + </div>
  59 + <div class="uk-width-7-10 pl5">
  60 + <input type="time" name="endDate" required>
  61 + </div>
  62 + </div>
  63 + </form>
  64 + </div>
  65 + </div>
  66 + <div class="sub-task-card">
  67 + <div class="uk-panel uk-panel-box uk-panel-box-secondary">
  68 + <div class="uk-panel-badge uk-badge uk-badge-default">空驶</div>
  69 + <h3 class="uk-panel-title">进场</h3>
  70 + <form class="uk-form uk-form-horizontal" empty_form>
  71 + <div class="uk-grid">
  72 + <div class="uk-width-3-10">
  73 + <div class="uk-form-row">
  74 + <label class="uk-form-label">起点 </label>
  75 + </div>
  76 + </div>
  77 + <div class="uk-width-7-10 pl5">
  78 + <select name="startStation" disabled></select>
  79 + </div>
  80 + </div>
  81 + <div class="uk-grid">
  82 + <div class="uk-width-3-10">
  83 + <div class="uk-form-row">
  84 + <label class="uk-form-label">终点 </label>
  85 + </div>
  86 + </div>
  87 + <div class="uk-width-7-10 pl5">
  88 + <select name="endStation" class="ct_focus"></select>
  89 + </div>
  90 + </div>
  91 + <div class="uk-grid">
  92 + <div class="uk-width-3-10">
  93 + <div class="uk-form-row">
  94 + <label class="uk-form-label">空驶里程</label>
  95 + </div>
  96 + </div>
  97 + <div class="uk-width-7-10 pl5">
  98 + <input type="text" name="mileageType" required style="width: calc(100% - 62px);">
  99 + <a style="font-size: 12px;">路径(3)</a>
  100 + </div>
  101 + </div>
  102 + <div class="uk-grid">
  103 + <div class="uk-width-3-10">
  104 + <div class="uk-form-row">
  105 + <label class="uk-form-label">开始时间</label>
  106 + </div>
  107 + </div>
  108 + <div class="uk-width-7-10 pl5">
  109 + <input type="time" name="startDate" required>
  110 + </div>
  111 + </div>
  112 + <div class="uk-grid">
  113 + <div class="uk-width-3-10">
  114 + <div class="uk-form-row">
  115 + <label class="uk-form-label">结束时间</label>
  116 + </div>
  117 + </div>
  118 + <div class="uk-width-7-10 pl5">
  119 + <input type="time" name="endDate" required>
  120 + </div>
  121 + </div>
  122 + </form>
  123 + </div>
  124 + </div>
  125 + <div class="sub-task-card destroy-card uk-animation-scale">
  126 + <div class="uk-panel uk-panel-box uk-panel-box-danger">
  127 + <div class="uk-panel-badge uk-badge uk-badge-danger">烂班</div>
  128 + <h3 class="uk-panel-title">线路上站点间</h3>
  129 + <form class="uk-form uk-form-horizontal" destroy_form>
  130 + <div class="uk-grid">
  131 + <div class="uk-width-3-10">
  132 + <div class="uk-form-row">
  133 + <label class="uk-form-label">起点 </label>
  134 + </div>
  135 + </div>
  136 + <div class="uk-width-7-10 pl5">
  137 + <select name="startStation" disabled></select>
  138 + </div>
  139 + </div>
  140 + <div class="uk-grid">
  141 + <div class="uk-width-3-10">
  142 + <div class="uk-form-row">
  143 + <label class="uk-form-label">终点 </label>
  144 + </div>
  145 + </div>
  146 + <div class="uk-width-7-10 pl5">
  147 + <select name="endStation" class="ct_focus" disabled></select>
  148 + </div>
  149 + </div>
  150 + <div class="uk-grid">
  151 + <div class="uk-width-3-10">
  152 + <div class="uk-form-row">
  153 + <label class="uk-form-label">烂班里程</label>
  154 + </div>
  155 + </div>
  156 + <div class="uk-width-7-10 pl5">
  157 + <input type="text" name="mileageType" required>
  158 + </div>
  159 + </div>
  160 + <div class="uk-grid">
  161 + <div class="uk-width-3-10">
  162 + <div class="uk-form-row">
  163 + <label class="uk-form-label">开始时间</label>
  164 + </div>
  165 + </div>
  166 + <div class="uk-width-7-10 pl5">
  167 + <input type="time" name="startDate" required>
  168 + </div>
  169 + </div>
  170 + <div class="uk-grid">
  171 + <div class="uk-width-3-10">
  172 + <div class="uk-form-row">
  173 + <label class="uk-form-label">烂班原因</label>
  174 + </div>
  175 + </div>
  176 + <div class="uk-width-7-10 pl5">
  177 + <select name="destroyReason" required></select>
  178 + </div>
  179 + </div>
  180 + </form>
  181 + </div>
  182 + </div>
  183 +
  184 + <form class="uk-form" style="margin-top: 15px; padding: 0 10px 0 0;">
  185 + <textarea placeholder="备注" style="width: 100%;height: 70px;"></textarea>
  186 + </form>
  187 + </div>
  188 +
  189 + <div class="uk-modal-footer uk-text-right">
  190 + <button type="button" class="uk-button uk-modal-close">取消</button>
  191 + <button type="button" class="uk-button uk-button-primary">提交子任务</button>
  192 +
  193 + <div class="ct-footer-left">
  194 + <a id="betweenStationRangeCalc" data-drawer-id="station_route_spacing_chart_drawer">站点间公里不准?</a>
  195 + </div>
  196 + </div>
  197 + </div>
  198 +
  199 + <div class="ct-bottom-drawer">
  200 + <a class="ct-bottom-drawer-close"></a>
  201 +
  202 + <div class="ct-bottom-drawer-body"></div>
  203 + </div>
  204 +
  205 + <script id="sub-task-inpark-form-temp" type="text/html">
  206 + </script>
  207 +
  208 + <script>
  209 + (function () {
  210 + var modal = '#add-sub-task-inpark-modal',
  211 + serviceForm = $('form[service_form]', modal),
  212 + emptyForm = $('form[empty_form]', modal),
  213 + destroyForm = $('form[destroy_form]', modal),
  214 + sch, stationRoutes, parks, information, esCode, timeLocStations;
  215 + var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '其他'];
  216 + $(modal).on('init', function (e, data) {
  217 + sch = data.sch;
  218 + //var formHtml = template('sub-task-inpark-form-temp', {sch:sch, adjustExps: adjustExps});
  219 + //$('form', modal).html(formHtml);
  220 + //字典转换
  221 + //dictionaryUtils.transformDom($('.nt-dictionary', modal));
  222 +
  223 + //站点路由
  224 + stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) {
  225 + return a.stationRouteCode - b.stationRouteCode;
  226 + }), 'directions')[sch.xlDir];
  227 + //空驶终点(停车场)
  228 + $.get('/basic/parks', function (rs) {
  229 + parks = rs;
  230 + var opts = '';
  231 + for (var code in parks) {
  232 + opts += '<option value="' + code + '">' + parks[code] + '</option>';
  233 + }
  234 + $('select[name=endStation]', emptyForm).html(opts).val(information.carPark);
  235 + });
  236 + //线路标准
  237 + information = gb_data_basic.getLineInformation(sch.xlBm);
  238 + //本地存储的站点耗时
  239 + try {
  240 + timeLocStations = window.localStorage.getItem('control_route_distance_' + sch.xlBm);
  241 + if (timeLocStations)
  242 + timeLocStations = JSON.parse(timeLocStations).stations[sch.xlDir == 0 ? 'up' : 'down'];
  243 + } catch (e) {
  244 + console.log(e);
  245 + }
  246 +
  247 + //设置默认值
  248 + setDefaultVal();
  249 +
  250 + //切换营运终点
  251 + $('select[name=endStation]', serviceForm).val(esCode).on('change', function () {
  252 + var val = $(this).val();
  253 + if (val == esCode) {
  254 + $('.uk-modal-dialog', modal).removeClass('three-children');
  255 + $('.sub-task-card.destroy-card').css("display", "none");
  256 + }
  257 + else {
  258 + $('.uk-modal-dialog', modal).addClass('three-children');
  259 + $('.sub-task-card.destroy-card').css("display", "inline-block");
  260 + }
  261 +
  262 + reClac();
  263 + }).trigger('change');
  264 +
  265 +
  266 + //submit
  267 + /*var f = $('form', modal).formValidation({
  268 + framework: 'uikit',
  269 + locale: 'zh_CN',
  270 + });
  271 + f.on('success.form.fv', function(e) {
  272 + disabled_submit_btn(this);
  273 + e.preventDefault();
  274 + var data = $(this).serializeJSON();
  275 +
  276 + });*/
  277 + });
  278 +
  279 + function setDefaultVal() {
  280 + var routeOpts = '';
  281 + $.each(stationRoutes, function () {
  282 + routeOpts += '<option value="' + this.stationCode + '">' + this.stationName + '</option>';
  283 + });
  284 + esCode = stationRoutes[stationRoutes.length - 1].stationCode;
  285 +
  286 + //营运起终点
  287 + $('select[name=startStation],select[name=endStation]', serviceForm).html(routeOpts);
  288 + //空驶起点
  289 + $('select[name=startStation]', emptyForm).html(routeOpts).val(esCode);
  290 + //烂班起终点
  291 + $('select[name=startStation],select[name=endStation]', destroyForm).html(routeOpts).val(esCode);
  292 +
  293 + //烂班原因
  294 + var adjustExpsOpts = '<option value="">请选择...</option>';
  295 + $.each(adjustExps, function (i, str) {
  296 + adjustExpsOpts += '<option value="' + str + '">' + str + '</option>';
  297 + });
  298 + $('select[name=destroyReason]', destroyForm).html(adjustExpsOpts);
  299 +
  300 + //营运开始时间
  301 + $('input[name=startDate]', serviceForm).val(sch.dfsj);
  302 + }
  303 +
  304 + function reClac() {
  305 + var serviceEnd = $('select[name=endStation]', serviceForm).val();
  306 + //空驶起点 == 营运终点
  307 + $('select[name=startStation]', emptyForm).val(serviceEnd);
  308 +
  309 + //计算营运里程
  310 + var s = $('select[name=startStation]', serviceForm).val(),
  311 + e = $('select[name=endStation]', serviceForm).val();
  312 + var sMileage = calcMileage(s, e);
  313 + if(sMileage >= 0)
  314 + $('input[name=mileageType]', serviceForm).val(sMileage);
  315 +
  316 + if (serviceEnd != esCode) {
  317 + //烂班起点 == 营运终点
  318 + $('select[name=startStation]', destroyForm).val(serviceEnd);
  319 + }
  320 + }
  321 +
  322 + function calcMileage(s, e) {
  323 + var mileage = 0, flag, code;
  324 + if (timeLocStations) {
  325 + $.each(timeLocStations, function () {
  326 + code = this.station.STATION_CODE;
  327 + if (code == s) {
  328 + flag = true;
  329 + }
  330 +
  331 + if (flag)
  332 + mileage += this.toDistance;
  333 +
  334 + if (code == e)
  335 + return false;
  336 + });
  337 + }
  338 + return mileage / 1000;
  339 + }
  340 +
  341 +
  342 + //------ 下抽屉 ------
  343 + $('#betweenStationRangeCalc', modal).on('click', function () {
  344 + var id = $(this).data('drawer-id');
  345 + switchBtmDrawer(id, '/real_control_v2/fragments/line_schedule/context_menu/sub_task/station_route_spacing_chart.html');
  346 + });
  347 +
  348 + var btmDrawer = $('.ct-bottom-drawer', modal);
  349 + //打开事件
  350 + btmDrawer.on('drawer_show', function () {
  351 + var url = $(this).data('url');
  352 + if (!url) {
  353 + alert('无效的地址');
  354 + }
  355 +
  356 + var drawerPanel = $(this).data('name');
  357 + $('.ct-bottom-drawer-body', btmDrawer).load(url, function () {
  358 + $('#' + drawerPanel).trigger('drawer-init', {sch: sch});
  359 + });
  360 + });
  361 +
  362 + function switchBtmDrawer(id, url) {
  363 + if (btmDrawer.hasClass('open') && btmDrawer.data('name') == id) {
  364 + btmDrawer.removeClass('open');
  365 + btmDrawer.removeData('name').removeData('url');
  366 + }
  367 + else {
  368 + btmDrawer.addClass('open');
  369 + btmDrawer.data('name', id).data('url', url).trigger('drawer_show');
  370 + }
  371 + }
  372 + })();
  373 + </script>
  374 +</div>
333 \ No newline at end of file 375 \ No newline at end of file
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task/station_route_spacing_chart.html 0 → 100644
  1 +<!-- 站点路由间距图 -->
  2 +<div id="station_route_spacing_chart_drawer" style="width: 100%;height: 100%;font-size: 0;">
  3 + <div style="width: 80%;height: 100%;display: inline-block;font-size: 14px;">
  4 +
  5 + </div>
  6 +
  7 + <div style="width: 20%;height: 100%;display: inline-block;">
  8 +
  9 + </div>
  10 +
  11 + <script>
  12 +
  13 + (function () {
  14 + var drawer = '#station_route_spacing_chart_drawer'
  15 + , sch, locData;
  16 +
  17 + $(drawer).on('drawer-init', function (e, data) {
  18 + //console.log('data', data);
  19 + sch = data.sch;
  20 + locData = window.localStorage.getItem('control_route_distance_' + sch.xlBm);
  21 +
  22 + if(locData)
  23 + drawCharts();
  24 + else
  25 + drawerLoadPage('/real_control_v2/fragments/geo/calc_station_space.html','cal_station_space_drawer');
  26 + });
  27 +
  28 + function drawCharts() {
  29 + //console.log('开始绘图', locData);
  30 + var stations;
  31 + try {
  32 + stations = JSON.parse(locData).stations[sch.xlDir == 0 ? 'up' : 'down'];
  33 + }catch (e){
  34 + alert('数据异常!!');
  35 + return;
  36 + }
  37 +
  38 + console.log('stations..', stations);
  39 + }
  40 +
  41 + //页面切换
  42 + function drawerLoadPage(url, id) {
  43 + $(drawer).parent('.ct-bottom-drawer-body').load(url, function () {
  44 + $('#' + id).trigger('drawer-init', {sch: sch});
  45 + });
  46 + }
  47 + })();
  48 + </script>
  49 +</div>
0 \ No newline at end of file 50 \ No newline at end of file