Commit 878448d5fc989b6575e6875d1674701ee0671106

Authored by 徐烜
1 parent cc455696

1、修正修改车辆信息报错bug,修正是否报废信息设定

2、调度执勤日报修正:
1)、修改班次中取消售票员选项
2)、新视图中,图例文字居中,烂班班次颜色改成红色,单个路牌全部烂班时,整行路牌(包括驾驶员信息)全部改成红色
3)、新视图中,上行班次加底色,下行班次用白色,并添加对应图例,图例文字中包含上行/下行起点站名
4)、新视图中,标题栏的站点后面的数字使用圈组数字,一圈报行一个上行一个下行,从1开始计数
5)、新视图中,不要有下拉框,指令内部自动计算整个高度,方便整个截图
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/edit.html
@@ -244,15 +244,20 @@ @@ -244,15 +244,20 @@
244 </div> 244 </div>
245 </div> 245 </div>
246 246
247 - <div class="form-group" ng-if="ctrl.busInfoForSave.scrapState == 1"> 247 + <div class="form-group" ng-if="ctrl.busInfoForSave.scrapState">
248 <label class="col-md-2 control-label">报废号:</label> 248 <label class="col-md-2 control-label">报废号:</label>
249 <div class="col-md-4"> 249 <div class="col-md-4">
250 - <input type="text" class="form-control" ng-model="ctrl.busInfoForSave.scrapCode"  
251 - placeholder="请输入报废号"/> 250 + <input type="text" name="scrapCode" class="form-control" ng-model="ctrl.busInfoForSave.scrapCode"
  251 + required placeholder="请输入报废号"/>
  252 + </div>
  253 +
  254 + <!-- 隐藏块,显示验证信息 -->
  255 + <div class="alert alert-danger well-sm" ng-show="myForm.scrapCode.$error.required">
  256 + 报废号必须填写
252 </div> 257 </div>
253 </div> 258 </div>
254 259
255 - <div class="form-group" ng-if="ctrl.busInfoForSave.scrapState == 1"> 260 + <div class="form-group" ng-if="ctrl.busInfoForSave.scrapState">
256 <label class="col-md-2 control-label">报废日期:</label> 261 <label class="col-md-2 control-label">报废日期:</label>
257 <div class="col-md-4"> 262 <div class="col-md-4">
258 <div class="input-group"> 263 <div class="input-group">
@@ -260,7 +265,7 @@ @@ -260,7 +265,7 @@
260 name="scrapDate" placeholder="请选择报废日期..." 265 name="scrapDate" placeholder="请选择报废日期..."
261 uib-datepicker-popup="yyyy年MM月dd日" 266 uib-datepicker-popup="yyyy年MM月dd日"
262 is-open="ctrl.scrapDateOpen" 267 is-open="ctrl.scrapDateOpen"
263 - ng-model="ctrl.busInfoForSave.scrapDate" readonly/> 268 + ng-model="ctrl.busInfoForSave.scrapDate" readonly required/>
264 <span class="input-group-btn"> 269 <span class="input-group-btn">
265 <button type="button" class="btn btn-default" ng-click="ctrl.scrapDate_open()"> 270 <button type="button" class="btn btn-default" ng-click="ctrl.scrapDate_open()">
266 <i class="glyphicon glyphicon-calendar"></i> 271 <i class="glyphicon glyphicon-calendar"></i>
@@ -268,6 +273,11 @@ @@ -268,6 +273,11 @@
268 </span> 273 </span>
269 </div> 274 </div>
270 </div> 275 </div>
  276 +
  277 + <!-- 隐藏块,显示验证信息 -->
  278 + <div class="alert alert-danger well-sm" ng-show="myForm.scrapDate.$error.required">
  279 + 报废日期必须填写
  280 + </div>
271 </div> 281 </div>
272 <div class="form-group"> 282 <div class="form-group">
273 <label class="col-md-2 control-label">厂牌型号1:</label> 283 <label class="col-md-2 control-label">厂牌型号1:</label>
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/module.js
@@ -361,7 +361,8 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -361,7 +361,8 @@ angular.module(&#39;ScheduleApp&#39;).controller(
361 '$stateParams', 361 '$stateParams',
362 '$state', 362 '$state',
363 'DataStore', 363 'DataStore',
364 - function(service, $stateParams, $state, DataStore) { 364 + '$scope',
  365 + function(service, $stateParams, $state, DataStore, $scope) {
365 var self = this; 366 var self = this;
366 var Cars = service.getQueryClass(); 367 var Cars = service.getQueryClass();
367 368
@@ -387,19 +388,26 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -387,19 +388,26 @@ angular.module(&#39;ScheduleApp&#39;).controller(
387 388
388 // 获取传过来的id,有的话就是修改,获取一遍数据 389 // 获取传过来的id,有的话就是修改,获取一遍数据
389 var id = $stateParams.id; 390 var id = $stateParams.id;
  391 + var _equipmentCode_temp;
390 if (id) { 392 if (id) {
391 - self.busInfoForSave = Cars.get({id: id}, function() {}); 393 + self.busInfoForSave = Cars.get({id: id}, function(obj) {
  394 + if (!obj.scrapState) { // 防止null值
  395 + obj.scrapState = false;
  396 + }
  397 + _equipmentCode_temp = obj.equipmentCode;
  398 + });
  399 + } else {
  400 + self.busInfoForSave.scrapState = false;
392 } 401 }
393 402
394 // 提交方法 403 // 提交方法
395 self.submit = function() { 404 self.submit = function() {
396 console.log(self.busInfoForSave); 405 console.log(self.busInfoForSave);
397 406
398 - // // 报废的车辆,修改原来的车辆终端号  
399 - // if (self.busInfoForSave.scrapState == true) {  
400 - // self.busInfoForSave.equipmentCode = "BF-" + self.busInfoForSave.equipmentCode;  
401 - // self.busInfoForSave.scrapCode = "BF-" + self.busInfoForSave.equipmentCode;  
402 - // } 407 + // 报废的车辆,修改原来的车辆终端号
  408 + if (self.busInfoForSave.scrapState) {
  409 + self.busInfoForSave.equipmentCode = "BF-" + _equipmentCode_temp;
  410 + }
403 411
404 412
405 // 保存或者更新 413 // 保存或者更新
@@ -408,6 +416,17 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -408,6 +416,17 @@ angular.module(&#39;ScheduleApp&#39;).controller(
408 $state.go("busInfoManage"); 416 $state.go("busInfoManage");
409 }); 417 });
410 }; 418 };
  419 +
  420 + $scope.$watch(
  421 + function() {
  422 + return self.busInfoForSave.scrapState;
  423 + },
  424 + function(n) {
  425 + if (!n) {
  426 + self.busInfoForSave.scrapCode = "BF-" + _equipmentCode_temp;
  427 + }
  428 + }
  429 + );
411 } 430 }
412 ] 431 ]
413 ); 432 );
src/main/resources/static/pages/scheduleApp/module/common/dts2/scheduleplan/saPlanInfoView.js
@@ -20,7 +20,19 @@ angular.module(&#39;ScheduleApp&#39;).directive( @@ -20,7 +20,19 @@ angular.module(&#39;ScheduleApp&#39;).directive(
20 bindToController: true, 20 bindToController: true,
21 controller: function() { 21 controller: function() {
22 var self = this; 22 var self = this;
23 - // TODO: 23 + // .ttInfo_detail高度
  24 + self.ttInfo_detail_height = 800;
  25 + // ds绑定的数据-路牌扩展数据
  26 + self.ds_ext_lp_info = {"路牌名字" : {allLb : "关联的班次是否全部烂班(true/false)"}};
  27 + // ds绑定的数据-线路扩展数据
  28 + self.ds_ext_xl_info = {"dir0_qdzName" : "上线起点站名字", "dir0_tip_width" : "上行图标宽度",
  29 + "dir1_qdzName" : "下行起点站名字", "dir1_tip_width" : "下行图标宽度"};
  30 + // ds绑定的数据-标题扩展数据1
  31 + self.ds_head_info1 = ["路牌", "驾驶员", "自编号", "车牌号"];
  32 + // ds绑定的数据-标题扩展数据2
  33 + self.ds_head_info2 = [];
  34 +
  35 + // TODO:后面可能还有其他扩展信息
24 36
25 }, 37 },
26 /** 38 /**
@@ -73,6 +85,105 @@ angular.module(&#39;ScheduleApp&#39;).directive( @@ -73,6 +85,105 @@ angular.module(&#39;ScheduleApp&#39;).directive(
73 } 85 }
74 86
75 }; 87 };
  88 +
  89 + // ------------------- 监控function ------------------//
  90 + // 监控 ds: "=ngModel" 数据
  91 + scope.$watch(
  92 + function() {
  93 + return scope[ctrlAs].ds;
  94 + },
  95 + function(newValue) {
  96 + // 创建ds绑定的数据-路牌扩展数据
  97 + if (newValue["contents"]) {
  98 + angular.forEach(newValue["contents"], function(value) {
  99 + var _lpName = value[0]["lpName"];
  100 + scope[ctrlAs]["ds_ext_lp_info"][_lpName] = {allLb : false};
  101 + var _bcCounts = 0; // 班次总数
  102 + var _lbBcCounts = 0; // 烂班班次总数
  103 + angular.forEach(value, function(bc) {
  104 + if (bc.id) {
  105 + _bcCounts ++;
  106 + if (bc.status == -1) {
  107 + _lbBcCounts ++;
  108 + }
  109 + }
  110 + });
  111 + if (_bcCounts > 0 && _bcCounts == _lbBcCounts) {
  112 + scope[ctrlAs]["ds_ext_lp_info"][_lpName].allLb = true;
  113 + }
  114 + });
  115 + }
  116 +
  117 + // 创建ds绑定数据-线路扩展数据
  118 + scope[ctrlAs]["ds_ext_xl_info"] = {};
  119 + scope[ctrlAs]["ds_ext_xl_info"].dir0_qdzName = "";
  120 + scope[ctrlAs]["ds_ext_xl_info"].dir1_qdzName = "";
  121 + scope[ctrlAs]["ds_ext_xl_info"].dir0_tip_width = 50;
  122 + scope[ctrlAs]["ds_ext_xl_info"].dir1_tip_width = 50;
  123 + if (newValue["contents"]) {
  124 + angular.forEach(newValue["contents"], function(value) {
  125 + if (scope[ctrlAs]["ds_ext_xl_info"].dir0_qdzName
  126 + && scope[ctrlAs]["ds_ext_xl_info"].dir1_qdzName) {
  127 + return;
  128 + }
  129 + angular.forEach(value, function (bc) {
  130 + if (bc.id && bc.bcType == 'normal') {
  131 + if (bc.xlDir == '0' && bc.qdzName && !scope[ctrlAs]["ds_ext_xl_info"].dir0_qdzName) {
  132 + scope[ctrlAs]["ds_ext_xl_info"].dir0_qdzName = bc.qdzName;
  133 + scope[ctrlAs]["ds_ext_xl_info"].dir0_tip_width += bc.qdzName.length * 15;
  134 + } else if (bc.xlDir == '1' && bc.qdzName && !scope[ctrlAs]["ds_ext_xl_info"].dir1_qdzName) {
  135 + scope[ctrlAs]["ds_ext_xl_info"].dir1_qdzName = bc.qdzName;
  136 + scope[ctrlAs]["ds_ext_xl_info"].dir1_tip_width += bc.qdzName.length * 15;
  137 + }
  138 + }
  139 +
  140 + })
  141 + });
  142 + }
  143 +
  144 + // 计算 .ttInfo_detail高度
  145 + scope[ctrlAs]["ttInfo_detail_height"] = 0;
  146 + var toolbar_height = 31; // 工具栏高度(参见template css)
  147 + var tt_table_head_height = 36; // 表格标题高度(参见template css)
  148 + var table_info_height = 30; // 表格行高度(参见template css)
  149 + var table_extra_height = 30; // 表格修正高度
  150 + if (newValue["contents"]) {
  151 + scope[ctrlAs]["ttInfo_detail_height"] =
  152 + toolbar_height +
  153 + tt_table_head_height +
  154 + table_info_height * newValue["contents"].length +
  155 + table_extra_height;
  156 + }
  157 +
  158 + // 创建ds绑定的数据-标题扩展数据2
  159 + scope[ctrlAs]["ds_head_info2"] = [];
  160 + angular.forEach(newValue["header"], function(head) {
  161 + if (head != '路牌' && head != '驾驶员' && head != '自编号' && head != '车牌号') {
  162 + scope[ctrlAs]["ds_head_info2"].push(head);
  163 + }
  164 + });
  165 + // 2个班次一组 [上行group_no,下行group_no],从1开始
  166 + var group_num = 1;
  167 + var group_num_array = [1, 1];
  168 + for (var i = 0; i < scope[ctrlAs]["ds_head_info2"].length; i++) {
  169 + var head = scope[ctrlAs]["ds_head_info2"][i];
  170 + if (head == scope[ctrlAs]["ds_ext_xl_info"].dir0_qdzName) {
  171 + scope[ctrlAs]["ds_head_info2"][i] = head.substr(0, 1) + group_num_array[0];
  172 + } else {
  173 + scope[ctrlAs]["ds_head_info2"][i] = head.substr(0, 1) + group_num_array[1];
  174 + group_num ++ ;
  175 + group_num_array = [group_num, group_num];
  176 + }
  177 +
  178 + // TODO:如果是环线的话,目前group_num都是1,后面如果有变化再修正
  179 + }
  180 +
  181 + // TODO:
  182 +
  183 + },
  184 + true
  185 + );
  186 +
76 } 187 }
77 188
78 }; 189 };
src/main/resources/static/pages/scheduleApp/module/common/dts2/scheduleplan/saPlanInfoViewTemplate.html
@@ -236,6 +236,14 @@ @@ -236,6 +236,14 @@
236 background: #e43a45 !important; 236 background: #e43a45 !important;
237 color: white; 237 color: white;
238 } 238 }
  239 + .tt_table dd.isDir_0 {
  240 + background: #81b9e9 !important;
  241 + color: white;
  242 + }
  243 + .tt_table dd.isDir_1 {
  244 + background: white !important;
  245 + color: black;
  246 + }
239 .tt_table dd.ists { 247 .tt_table dd.ists {
240 background: #105383 !important; 248 background: #105383 !important;
241 color: white; 249 color: white;
@@ -260,8 +268,8 @@ @@ -260,8 +268,8 @@
260 } 268 }
261 269
262 .tt_table dd.islb { 270 .tt_table dd.islb {
263 - background: #53ff34 !important;  
264 - color: #501a1a; 271 + background: #df0808 !important;
  272 + color: white;
265 } 273 }
266 274
267 .tt_table dd.isModify { 275 .tt_table dd.isModify {
@@ -362,7 +370,7 @@ @@ -362,7 +370,7 @@
362 </style> 370 </style>
363 371
364 372
365 -<div class="ttInfo_detail"> 373 +<div class="ttInfo_detail" style="height: {{$saPlanInfoViewCtrl.ttInfo_detail_height}}px;">
366 <div class="container-fluid top-container"> 374 <div class="container-fluid top-container">
367 <div class="col-md-12 container-fluid schedule-wrap"> 375 <div class="col-md-12 container-fluid schedule-wrap">
368 <div class="col-md-12" style="height: 100%"> 376 <div class="col-md-12" style="height: 100%">
@@ -378,10 +386,12 @@ @@ -378,10 +386,12 @@
378 </div> 386 </div>
379 387
380 <div style="float: right; padding-right: 10px;"> 388 <div style="float: right; padding-right: 10px;">
381 - <span style="padding-right: 10px;background: #337ab7;color: white;text-align: center;">出场班次</span>  
382 - <span style="padding-right: 10px;background: #4e6477;color: white;text-align: center;">进场班次</span>  
383 - <span style="padding-right: 10px;background: #53ff34;color: #501a1a;text-align: center;">烂班班次</span>  
384 - <span style="padding-right: 10px;outline: 2px solid #541aff; outline-offset: -3px; text-align: center;">班次修改过</span> 389 + <div style="display: inline-block;background: #81b9e9;color: white;text-align: center;height: 25px;line-height: 25px;width: {{$saPlanInfoViewCtrl.ds_ext_xl_info.dir0_tip_width}}px;">上行-{{$saPlanInfoViewCtrl.ds_ext_xl_info.dir0_qdzName}}</div>
  390 + <div style="display: inline-block;background: white;color: black;text-align: center;height: 25px;line-height: 25px;width: {{$saPlanInfoViewCtrl.ds_ext_xl_info.dir1_tip_width}}px;">下行-{{$saPlanInfoViewCtrl.ds_ext_xl_info.dir1_qdzName}}</div>
  391 + <div style="display: inline-block;background: #337ab7;color: white;text-align: center;height: 25px;line-height: 25px;width: 90px;">出场班次</div>
  392 + <div style="display: inline-block;background: #4e6477;color: white;text-align: center;height: 25px;line-height: 25px;width: 90px;">进场班次</div>
  393 + <div style="display: inline-block;background: #df0808;color: white;text-align: center;height: 25px;line-height: 25px;width: 90px;">烂班班次</div>
  394 + <div style="display: inline-block;outline: 2px solid #541aff;outline-offset: -3px;text-align: center;height: 25px;line-height: 25px;width: 90px;">班次修改过</div>
385 </div> 395 </div>
386 </div> 396 </div>
387 397
@@ -421,9 +431,13 @@ @@ -421,9 +431,13 @@
421 序号 431 序号
422 </dt> 432 </dt>
423 433
424 - <dt ng-repeat="head in $saPlanInfoViewCtrl.ds.header track by $index">  
425 - {{(head != '路牌' && head != '驾驶员' && head != '自编号' && head != '车牌号') ? (head.substr(0, 1) + ($index)): head}} 434 + <dt ng-repeat="head1 in $saPlanInfoViewCtrl.ds_head_info1 track by $index">
  435 + {{head1}}
  436 + </dt>
  437 + <dt ng-repeat="head2 in $saPlanInfoViewCtrl.ds_head_info2 track by $index">
  438 + {{head2}}
426 </dt> 439 </dt>
  440 +
427 </dl> 441 </dl>
428 </div> 442 </div>
429 443
@@ -437,23 +451,27 @@ @@ -437,23 +451,27 @@
437 451
438 <dd ng-repeat="cell in info track by $index" 452 <dd ng-repeat="cell in info track by $index"
439 ng-init="colIndex = $index" 453 ng-init="colIndex = $index"
440 - ng-if="$index == 0" > 454 + ng-if="$index == 0"
  455 + ng-class="{islb : $saPlanInfoViewCtrl.ds_ext_lp_info[info[0].lpName].allLb}">
441 {{cell.lpName}} 456 {{cell.lpName}}
442 </dd> 457 </dd>
443 <dd ng-repeat="cell in info track by $index" 458 <dd ng-repeat="cell in info track by $index"
444 ng-init="colIndex = $index" 459 ng-init="colIndex = $index"
445 - ng-if="$index == 1" > 460 + ng-if="$index == 1"
  461 + ng-class="{islb : $saPlanInfoViewCtrl.ds_ext_lp_info[info[0].lpName].allLb}">
446 {{cell.jName}} 462 {{cell.jName}}
447 </dd> 463 </dd>
448 <dd ng-repeat="cell in info track by $index" 464 <dd ng-repeat="cell in info track by $index"
449 ng-init="colIndex = $index" 465 ng-init="colIndex = $index"
450 - ng-if="$index == 2" > 466 + ng-if="$index == 2"
  467 + ng-class="{islb : $saPlanInfoViewCtrl.ds_ext_lp_info[info[0].lpName].allLb}">
451 {{cell.clZbh}} 468 {{cell.clZbh}}
452 </dd> 469 </dd>
453 470
454 <dd ng-repeat="cell in info track by $index" 471 <dd ng-repeat="cell in info track by $index"
455 ng-init="colIndex = $index" 472 ng-init="colIndex = $index"
456 - ng-if="$index == 3" style="border-right: 2px solid #96b9d7;"> 473 + ng-if="$index == 3" style="border-right: 2px solid #96b9d7;"
  474 + ng-class="{islb : $saPlanInfoViewCtrl.ds_ext_lp_info[info[0].lpName].allLb}">
457 {{cell.clZbh}} 475 {{cell.clZbh}}
458 </dd> 476 </dd>
459 477
@@ -490,6 +508,8 @@ @@ -490,6 +508,8 @@
490 lpName: true, 508 lpName: true,
491 error: false, 509 error: false,
492 active: cell.sel, 510 active: cell.sel,
  511 + isDir_0: cell.xlDir == '0',
  512 + isDir_1: cell.xlDir == '1',
493 ists: false, 513 ists: false,
494 region: false, 514 region: false,
495 isfb: false, 515 isfb: false,
src/main/resources/static/pages/scheduleApp/module/common/prj-common-directive.js
@@ -6630,7 +6630,19 @@ angular.module(&#39;ScheduleApp&#39;).directive( @@ -6630,7 +6630,19 @@ angular.module(&#39;ScheduleApp&#39;).directive(
6630 bindToController: true, 6630 bindToController: true,
6631 controller: function() { 6631 controller: function() {
6632 var self = this; 6632 var self = this;
6633 - // TODO: 6633 + // .ttInfo_detail高度
  6634 + self.ttInfo_detail_height = 800;
  6635 + // ds绑定的数据-路牌扩展数据
  6636 + self.ds_ext_lp_info = {"路牌名字" : {allLb : "关联的班次是否全部烂班(true/false)"}};
  6637 + // ds绑定的数据-线路扩展数据
  6638 + self.ds_ext_xl_info = {"dir0_qdzName" : "上线起点站名字", "dir0_tip_width" : "上行图标宽度",
  6639 + "dir1_qdzName" : "下行起点站名字", "dir1_tip_width" : "下行图标宽度"};
  6640 + // ds绑定的数据-标题扩展数据1
  6641 + self.ds_head_info1 = ["路牌", "驾驶员", "自编号", "车牌号"];
  6642 + // ds绑定的数据-标题扩展数据2
  6643 + self.ds_head_info2 = [];
  6644 +
  6645 + // TODO:后面可能还有其他扩展信息
6634 6646
6635 }, 6647 },
6636 /** 6648 /**
@@ -6683,6 +6695,105 @@ angular.module(&#39;ScheduleApp&#39;).directive( @@ -6683,6 +6695,105 @@ angular.module(&#39;ScheduleApp&#39;).directive(
6683 } 6695 }
6684 6696
6685 }; 6697 };
  6698 +
  6699 + // ------------------- 监控function ------------------//
  6700 + // 监控 ds: "=ngModel" 数据
  6701 + scope.$watch(
  6702 + function() {
  6703 + return scope[ctrlAs].ds;
  6704 + },
  6705 + function(newValue) {
  6706 + // 创建ds绑定的数据-路牌扩展数据
  6707 + if (newValue["contents"]) {
  6708 + angular.forEach(newValue["contents"], function(value) {
  6709 + var _lpName = value[0]["lpName"];
  6710 + scope[ctrlAs]["ds_ext_lp_info"][_lpName] = {allLb : false};
  6711 + var _bcCounts = 0; // 班次总数
  6712 + var _lbBcCounts = 0; // 烂班班次总数
  6713 + angular.forEach(value, function(bc) {
  6714 + if (bc.id) {
  6715 + _bcCounts ++;
  6716 + if (bc.status == -1) {
  6717 + _lbBcCounts ++;
  6718 + }
  6719 + }
  6720 + });
  6721 + if (_bcCounts > 0 && _bcCounts == _lbBcCounts) {
  6722 + scope[ctrlAs]["ds_ext_lp_info"][_lpName].allLb = true;
  6723 + }
  6724 + });
  6725 + }
  6726 +
  6727 + // 创建ds绑定数据-线路扩展数据
  6728 + scope[ctrlAs]["ds_ext_xl_info"] = {};
  6729 + scope[ctrlAs]["ds_ext_xl_info"].dir0_qdzName = "";
  6730 + scope[ctrlAs]["ds_ext_xl_info"].dir1_qdzName = "";
  6731 + scope[ctrlAs]["ds_ext_xl_info"].dir0_tip_width = 50;
  6732 + scope[ctrlAs]["ds_ext_xl_info"].dir1_tip_width = 50;
  6733 + if (newValue["contents"]) {
  6734 + angular.forEach(newValue["contents"], function(value) {
  6735 + if (scope[ctrlAs]["ds_ext_xl_info"].dir0_qdzName
  6736 + && scope[ctrlAs]["ds_ext_xl_info"].dir1_qdzName) {
  6737 + return;
  6738 + }
  6739 + angular.forEach(value, function (bc) {
  6740 + if (bc.id && bc.bcType == 'normal') {
  6741 + if (bc.xlDir == '0' && bc.qdzName && !scope[ctrlAs]["ds_ext_xl_info"].dir0_qdzName) {
  6742 + scope[ctrlAs]["ds_ext_xl_info"].dir0_qdzName = bc.qdzName;
  6743 + scope[ctrlAs]["ds_ext_xl_info"].dir0_tip_width += bc.qdzName.length * 15;
  6744 + } else if (bc.xlDir == '1' && bc.qdzName && !scope[ctrlAs]["ds_ext_xl_info"].dir1_qdzName) {
  6745 + scope[ctrlAs]["ds_ext_xl_info"].dir1_qdzName = bc.qdzName;
  6746 + scope[ctrlAs]["ds_ext_xl_info"].dir1_tip_width += bc.qdzName.length * 15;
  6747 + }
  6748 + }
  6749 +
  6750 + })
  6751 + });
  6752 + }
  6753 +
  6754 + // 计算 .ttInfo_detail高度
  6755 + scope[ctrlAs]["ttInfo_detail_height"] = 0;
  6756 + var toolbar_height = 31; // 工具栏高度(参见template css)
  6757 + var tt_table_head_height = 36; // 表格标题高度(参见template css)
  6758 + var table_info_height = 30; // 表格行高度(参见template css)
  6759 + var table_extra_height = 30; // 表格修正高度
  6760 + if (newValue["contents"]) {
  6761 + scope[ctrlAs]["ttInfo_detail_height"] =
  6762 + toolbar_height +
  6763 + tt_table_head_height +
  6764 + table_info_height * newValue["contents"].length +
  6765 + table_extra_height;
  6766 + }
  6767 +
  6768 + // 创建ds绑定的数据-标题扩展数据2
  6769 + scope[ctrlAs]["ds_head_info2"] = [];
  6770 + angular.forEach(newValue["header"], function(head) {
  6771 + if (head != '路牌' && head != '驾驶员' && head != '自编号' && head != '车牌号') {
  6772 + scope[ctrlAs]["ds_head_info2"].push(head);
  6773 + }
  6774 + });
  6775 + // 2个班次一组 [上行group_no,下行group_no],从1开始
  6776 + var group_num = 1;
  6777 + var group_num_array = [1, 1];
  6778 + for (var i = 0; i < scope[ctrlAs]["ds_head_info2"].length; i++) {
  6779 + var head = scope[ctrlAs]["ds_head_info2"][i];
  6780 + if (head == scope[ctrlAs]["ds_ext_xl_info"].dir0_qdzName) {
  6781 + scope[ctrlAs]["ds_head_info2"][i] = head.substr(0, 1) + group_num_array[0];
  6782 + } else {
  6783 + scope[ctrlAs]["ds_head_info2"][i] = head.substr(0, 1) + group_num_array[1];
  6784 + group_num ++ ;
  6785 + group_num_array = [group_num, group_num];
  6786 + }
  6787 +
  6788 + // TODO:如果是环线的话,目前group_num都是1,后面如果有变化再修正
  6789 + }
  6790 +
  6791 + // TODO:
  6792 +
  6793 + },
  6794 + true
  6795 + );
  6796 +
6686 } 6797 }
6687 6798
6688 }; 6799 };
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/report/ext/edit.html
@@ -222,44 +222,44 @@ @@ -222,44 +222,44 @@
222 222
223 </div> 223 </div>
224 224
225 - <div class="form-group">  
226 - <label class="col-md-5 control-label">售票员1:</label>  
227 - <div class="col-md-7">  
228 - <sa-Select5 name="s1"  
229 - model="ctrl.formData"  
230 - cmaps="{'s1.id' : 'id', 's1.jobCode': 'workId', 's1.name': 'name'}"  
231 - dcname="s1.id"  
232 - icname="id"  
233 - dsparams="{{ {type: 'local', param: 'ry' } | json }}"  
234 - iterobjname="item"  
235 - iterobjexp="item.name + '(' + item.workId + ')'"  
236 - searchph="请输拼音..."  
237 - searchexp="this.name"  
238 - >  
239 - </sa-Select5>  
240 - </div>  
241 -  
242 - <!-- 公司权限 -->  
243 - <input type="hidden" name="s1_h_gs" ng-model="ctrl.formData.s1.id"  
244 - remote-Validation  
245 - remotevtype="ec_spy_gs"  
246 - remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s1.id} | json}}" />  
247 - <div class="alert alert-danger well-sm" ng-show="myForm.s1_h_gs.$error.remote">  
248 - <i class="fa fa-times-circle" aria-hidden="true"></i>  
249 - {{$remote_msg}}  
250 - </div>  
251 - <!-- 分公司权限 -->  
252 - <input type="hidden" name="s1_h_fgs" ng-model="ctrl.formData.s1.id"  
253 - remote-Warn  
254 - remotewtype="ec_spy_fgs"  
255 - remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s1.id} | json}}"  
256 - remotewmsgprop="ec_spy1_fgs_warn"  
257 - />  
258 - <div class="alert alert-warning well-sm" ng-show="ctrl.ec_spy1_fgs_warn">  
259 - <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>  
260 - {{ctrl.ec_spy1_fgs_warn}}  
261 - </div>  
262 - </div> 225 + <!--<div class="form-group">-->
  226 + <!--<label class="col-md-5 control-label">售票员1:</label>-->
  227 + <!--<div class="col-md-7">-->
  228 + <!--<sa-Select5 name="s1"-->
  229 + <!--model="ctrl.formData"-->
  230 + <!--cmaps="{'s1.id' : 'id', 's1.jobCode': 'workId', 's1.name': 'name'}"-->
  231 + <!--dcname="s1.id"-->
  232 + <!--icname="id"-->
  233 + <!--dsparams="{{ {type: 'local', param: 'ry' } | json }}"-->
  234 + <!--iterobjname="item"-->
  235 + <!--iterobjexp="item.name + '(' + item.workId + ')'"-->
  236 + <!--searchph="请输拼音..."-->
  237 + <!--searchexp="this.name"-->
  238 + <!--&gt;-->
  239 + <!--</sa-Select5>-->
  240 + <!--</div>-->
  241 +
  242 + <!--&lt;!&ndash; 公司权限 &ndash;&gt;-->
  243 + <!--<input type="hidden" name="s1_h_gs" ng-model="ctrl.formData.s1.id"-->
  244 + <!--remote-Validation-->
  245 + <!--remotevtype="ec_spy_gs"-->
  246 + <!--remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s1.id} | json}}" />-->
  247 + <!--<div class="alert alert-danger well-sm" ng-show="myForm.s1_h_gs.$error.remote">-->
  248 + <!--<i class="fa fa-times-circle" aria-hidden="true"></i>-->
  249 + <!--{{$remote_msg}}-->
  250 + <!--</div>-->
  251 + <!--&lt;!&ndash; 分公司权限 &ndash;&gt;-->
  252 + <!--<input type="hidden" name="s1_h_fgs" ng-model="ctrl.formData.s1.id"-->
  253 + <!--remote-Warn-->
  254 + <!--remotewtype="ec_spy_fgs"-->
  255 + <!--remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s1.id} | json}}"-->
  256 + <!--remotewmsgprop="ec_spy1_fgs_warn"-->
  257 + <!--/>-->
  258 + <!--<div class="alert alert-warning well-sm" ng-show="ctrl.ec_spy1_fgs_warn">-->
  259 + <!--<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>-->
  260 + <!--{{ctrl.ec_spy1_fgs_warn}}-->
  261 + <!--</div>-->
  262 + <!--</div>-->
263 263
264 <div class="form-group"> 264 <div class="form-group">
265 <label class="col-md-5 control-label">驾驶员2:</label> 265 <label class="col-md-5 control-label">驾驶员2:</label>
@@ -301,45 +301,45 @@ @@ -301,45 +301,45 @@
301 301
302 </div> 302 </div>
303 303
304 - <div class="form-group">  
305 - <label class="col-md-5 control-label">售票员2:</label>  
306 - <div class="col-md-7">  
307 - <sa-Select5 name="s2"  
308 - model="ctrl.formData"  
309 - cmaps="{'s2.id' : 'id', 's2.jobCode': 'workId', 's2.name': 'name'}"  
310 - dcname="s2.id"  
311 - icname="id"  
312 - dsparams="{{ {type: 'local', param: 'ry' } | json }}"  
313 - iterobjname="item"  
314 - iterobjexp="item.name + '(' + item.workId + ')'"  
315 - searchph="请输拼音..."  
316 - searchexp="this.name"  
317 - >  
318 - </sa-Select5>  
319 - </div>  
320 -  
321 - <!-- 公司权限 -->  
322 - <input type="hidden" name="s2_h_gs" ng-model="ctrl.formData.s2.id"  
323 - remote-Validation  
324 - remotevtype="ec_spy_gs"  
325 - remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s2.id} | json}}" />  
326 - <div class="alert alert-danger well-sm" ng-show="myForm.s2_h_gs.$error.remote">  
327 - <i class="fa fa-times-circle" aria-hidden="true"></i>  
328 - {{$remote_msg}}  
329 - </div>  
330 - <!-- 分公司权限 -->  
331 - <input type="hidden" name="s2_h_fgs" ng-model="ctrl.formData.s2.id"  
332 - remote-Warn  
333 - remotewtype="ec_spy_fgs"  
334 - remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s2.id} | json}}"  
335 - remotewmsgprop="ec_spy2_fgs_warn"  
336 - />  
337 - <div class="alert alert-warning well-sm" ng-show="ctrl.ec_spy2_fgs_warn">  
338 - <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>  
339 - {{ctrl.ec_spy2_fgs_warn}}  
340 - </div>  
341 -  
342 - </div> 304 + <!--<div class="form-group">-->
  305 + <!--<label class="col-md-5 control-label">售票员2:</label>-->
  306 + <!--<div class="col-md-7">-->
  307 + <!--<sa-Select5 name="s2"-->
  308 + <!--model="ctrl.formData"-->
  309 + <!--cmaps="{'s2.id' : 'id', 's2.jobCode': 'workId', 's2.name': 'name'}"-->
  310 + <!--dcname="s2.id"-->
  311 + <!--icname="id"-->
  312 + <!--dsparams="{{ {type: 'local', param: 'ry' } | json }}"-->
  313 + <!--iterobjname="item"-->
  314 + <!--iterobjexp="item.name + '(' + item.workId + ')'"-->
  315 + <!--searchph="请输拼音..."-->
  316 + <!--searchexp="this.name"-->
  317 + <!--&gt;-->
  318 + <!--</sa-Select5>-->
  319 + <!--</div>-->
  320 +
  321 + <!--&lt;!&ndash; 公司权限 &ndash;&gt;-->
  322 + <!--<input type="hidden" name="s2_h_gs" ng-model="ctrl.formData.s2.id"-->
  323 + <!--remote-Validation-->
  324 + <!--remotevtype="ec_spy_gs"-->
  325 + <!--remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s2.id} | json}}" />-->
  326 + <!--<div class="alert alert-danger well-sm" ng-show="myForm.s2_h_gs.$error.remote">-->
  327 + <!--<i class="fa fa-times-circle" aria-hidden="true"></i>-->
  328 + <!--{{$remote_msg}}-->
  329 + <!--</div>-->
  330 + <!--&lt;!&ndash; 分公司权限 &ndash;&gt;-->
  331 + <!--<input type="hidden" name="s2_h_fgs" ng-model="ctrl.formData.s2.id"-->
  332 + <!--remote-Warn-->
  333 + <!--remotewtype="ec_spy_fgs"-->
  334 + <!--remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s2.id} | json}}"-->
  335 + <!--remotewmsgprop="ec_spy2_fgs_warn"-->
  336 + <!--/>-->
  337 + <!--<div class="alert alert-warning well-sm" ng-show="ctrl.ec_spy2_fgs_warn">-->
  338 + <!--<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>-->
  339 + <!--{{ctrl.ec_spy2_fgs_warn}}-->
  340 + <!--</div>-->
  341 +
  342 + <!--</div>-->
343 343
344 <div class="form-group"> 344 <div class="form-group">
345 <label class="col-md-5 control-label">驾驶员3:</label> 345 <label class="col-md-5 control-label">驾驶员3:</label>
@@ -381,45 +381,45 @@ @@ -381,45 +381,45 @@
381 381
382 </div> 382 </div>
383 383
384 - <div class="form-group">  
385 - <label class="col-md-5 control-label">售票员3:</label>  
386 - <div class="col-md-7">  
387 - <sa-Select5 name="s3"  
388 - model="ctrl.formData"  
389 - cmaps="{'s3.id' : 'id', 's3.jobCode': 'workId', 's3.name': 'name'}"  
390 - dcname="s3.id"  
391 - icname="id"  
392 - dsparams="{{ {type: 'local', param: 'ry' } | json }}"  
393 - iterobjname="item"  
394 - iterobjexp="item.name + '(' + item.workId + ')'"  
395 - searchph="请输拼音..."  
396 - searchexp="this.name"  
397 - >  
398 - </sa-Select5>  
399 - </div>  
400 -  
401 - <!-- 公司权限 -->  
402 - <input type="hidden" name="s3_h_gs" ng-model="ctrl.formData.s3.id"  
403 - remote-Validation  
404 - remotevtype="ec_spy_gs"  
405 - remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s3.id} | json}}" />  
406 - <div class="alert alert-danger well-sm" ng-show="myForm.s3_h_gs.$error.remote">  
407 - <i class="fa fa-times-circle" aria-hidden="true"></i>  
408 - {{$remote_msg}}  
409 - </div>  
410 - <!-- 分公司权限 -->  
411 - <input type="hidden" name="s3_h_fgs" ng-model="ctrl.formData.s3.id"  
412 - remote-Warn  
413 - remotewtype="ec_spy_fgs"  
414 - remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s3.id} | json}}"  
415 - remotewmsgprop="ec_spy3_fgs_warn"  
416 - />  
417 - <div class="alert alert-warning well-sm" ng-show="ctrl.ec_spy3_fgs_warn">  
418 - <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>  
419 - {{ctrl.ec_spy3_fgs_warn}}  
420 - </div>  
421 -  
422 - </div> 384 + <!--<div class="form-group">-->
  385 + <!--<label class="col-md-5 control-label">售票员3:</label>-->
  386 + <!--<div class="col-md-7">-->
  387 + <!--<sa-Select5 name="s3"-->
  388 + <!--model="ctrl.formData"-->
  389 + <!--cmaps="{'s3.id' : 'id', 's3.jobCode': 'workId', 's3.name': 'name'}"-->
  390 + <!--dcname="s3.id"-->
  391 + <!--icname="id"-->
  392 + <!--dsparams="{{ {type: 'local', param: 'ry' } | json }}"-->
  393 + <!--iterobjname="item"-->
  394 + <!--iterobjexp="item.name + '(' + item.workId + ')'"-->
  395 + <!--searchph="请输拼音..."-->
  396 + <!--searchexp="this.name"-->
  397 + <!--&gt;-->
  398 + <!--</sa-Select5>-->
  399 + <!--</div>-->
  400 +
  401 + <!--&lt;!&ndash; 公司权限 &ndash;&gt;-->
  402 + <!--<input type="hidden" name="s3_h_gs" ng-model="ctrl.formData.s3.id"-->
  403 + <!--remote-Validation-->
  404 + <!--remotevtype="ec_spy_gs"-->
  405 + <!--remotevparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s3.id} | json}}" />-->
  406 + <!--<div class="alert alert-danger well-sm" ng-show="myForm.s3_h_gs.$error.remote">-->
  407 + <!--<i class="fa fa-times-circle" aria-hidden="true"></i>-->
  408 + <!--{{$remote_msg}}-->
  409 + <!--</div>-->
  410 + <!--&lt;!&ndash; 分公司权限 &ndash;&gt;-->
  411 + <!--<input type="hidden" name="s3_h_fgs" ng-model="ctrl.formData.s3.id"-->
  412 + <!--remote-Warn-->
  413 + <!--remotewtype="ec_spy_fgs"-->
  414 + <!--remotewparam="{{ {'xl.id_eq': ctrl.xlId, 'xl.name_eq': ctrl.xlName, 'spy.id_eq': ctrl.formData.s3.id} | json}}"-->
  415 + <!--remotewmsgprop="ec_spy3_fgs_warn"-->
  416 + <!--/>-->
  417 + <!--<div class="alert alert-warning well-sm" ng-show="ctrl.ec_spy3_fgs_warn">-->
  418 + <!--<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>-->
  419 + <!--{{ctrl.ec_spy3_fgs_warn}}-->
  420 + <!--</div>-->
  421 +
  422 + <!--</div>-->
423 423
424 <div class="form-group"> 424 <div class="form-group">
425 <label class="col-md-5 control-label">备注:</label> 425 <label class="col-md-5 control-label">备注:</label>
@@ -488,4 +488,4 @@ @@ -488,4 +488,4 @@
488 </div> 488 </div>
489 489
490 490
491 -</div>  
492 \ No newline at end of file 491 \ No newline at end of file
  492 +</div>
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/report/ext/list.html
@@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
24 </div> 24 </div>
25 </div> 25 </div>
26 26
27 - <div ng-if="ctrl.viewId == 1" style="height: {{ctrl.ttHeight}}px;"> 27 + <div class="fixDiv" ng-if="ctrl.viewId == 1">
28 <sa-Planinfoview name="saPlanView" ng-model="ctrl.saPlanInfoViewData.infos" ng-model-options="{ getterSetter: true }" 28 <sa-Planinfoview name="saPlanView" ng-model="ctrl.saPlanInfoViewData.infos" ng-model-options="{ getterSetter: true }"
29 celldbclick="ctrl.singleEditBcDetail" toolbarlplbclick="ctrl.routeToLpLbView"> 29 celldbclick="ctrl.singleEditBcDetail" toolbarlplbclick="ctrl.routeToLpLbView">
30 </sa-Planinfoview> 30 </sa-Planinfoview>
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/report/ext/module.js
@@ -345,7 +345,7 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -345,7 +345,7 @@ angular.module(&#39;ScheduleApp&#39;).controller(
345 }); 345 });
346 }; 346 };
347 347
348 - self.ttHeight = 350; // sa-Planinfoview组件的高度 348 + self.ttHeight = 800; // sa-Planinfoview组件的高度
349 349
350 350
351 351