Commit 41a2f539def5f4bd8f03d035d21b6fc1bad3b6f8
1 parent
ad9fc980
1、排班明细修改班次时,驾驶员售票员工号问题修正
2、排班明细修改页面保存搜索条件
Showing
3 changed files
with
382 additions
and
361 deletions
src/main/resources/static/pages/scheduleApp/module/common/prj-common-directive.js
| ... | ... | @@ -4451,177 +4451,177 @@ angular.module('ScheduleApp').directive( |
| 4451 | 4451 | } |
| 4452 | 4452 | ] |
| 4453 | 4453 | ); |
| 4454 | -/** | |
| 4455 | - * saOrderoption指令,搜索时的排序选项(在搜索时可以使用,通用的) | |
| 4456 | - * 属性如下: | |
| 4457 | - * name(必须):控件的名字 | |
| 4458 | - * columns(必须,独立作用域):字段名字列表,格式:[{name:[字段名],desc:[字段描述]}...] | |
| 4459 | - * ordercolumns(必须,独立作用域):字段排序列表,格式:{order: '字段1,字段2',direction: 'ASC,DESC'} | |
| 4460 | - */ | |
| 4461 | -angular.module('ScheduleApp').directive( | |
| 4462 | - 'saOrderoption', | |
| 4463 | - [ | |
| 4464 | - function() { | |
| 4465 | - return { | |
| 4466 | - restrict: 'E', | |
| 4467 | - templateUrl: '/pages/scheduleApp/module/common/dts2/queryOption/saOrderOptionTemplate.html', | |
| 4468 | - scope: { | |
| 4469 | - columns: '=', | |
| 4470 | - ordercolumns: '=' | |
| 4471 | - }, | |
| 4472 | - controllerAs: '$saOrderOptionCtrl', | |
| 4473 | - bindToController: true, | |
| 4474 | - controller: function() { | |
| 4475 | - var self = this; | |
| 4476 | - | |
| 4477 | - // 字段列表是否预载入 | |
| 4478 | - self.$$columns_loaded = false; | |
| 4479 | - // 字段排序是否预载入 | |
| 4480 | - self.$$ordercolumns_loaded = false; | |
| 4481 | - | |
| 4482 | - | |
| 4483 | - // 每组选项内部数据源 | |
| 4484 | - // 格式:[{column:[选中的字段名],dir:[ASC/DESC]}] | |
| 4485 | - self.$$selectgroupds = []; | |
| 4486 | - | |
| 4487 | - // TODO:选择事件 | |
| 4488 | - | |
| 4489 | - self.$$select_column_change = function() { | |
| 4490 | - self.$$refresh_selectgroupds(); | |
| 4491 | - }; | |
| 4492 | - | |
| 4493 | - self.$$select_dir_change = function() { | |
| 4494 | - self.$$refresh_selectgroupds(); | |
| 4495 | - }; | |
| 4496 | - | |
| 4497 | - self.$$add_option_click = function(index) { | |
| 4498 | - self.$$selectgroupds.splice(index, 0, { | |
| 4499 | - column: self.columns[0].name, | |
| 4500 | - dir: "ASC" | |
| 4501 | - }); | |
| 4502 | - self.$$refresh_selectgroupds(); | |
| 4503 | - }; | |
| 4504 | - self.$$del_option_click = function(index) { | |
| 4505 | - self.$$selectgroupds.splice(index, 1); | |
| 4506 | - self.$$refresh_selectgroupds(); | |
| 4507 | - }; | |
| 4508 | - | |
| 4509 | - // 刷新选项内部数据源 | |
| 4510 | - self.$$refresh_selectgroupds = function() { | |
| 4511 | - if (!self.$$columns_loaded || !self.$$ordercolumns_loaded || self.columns.length == 0) { | |
| 4512 | - // 没有载入完成,或者字段列表为空 | |
| 4513 | - return; | |
| 4514 | - } | |
| 4515 | - | |
| 4516 | - if (self.$$selectgroupds.length == 0) { // 默认添加一组排序 | |
| 4517 | - self.$$selectgroupds.push({ | |
| 4518 | - column: self.columns[0].name, | |
| 4519 | - dir: "ASC" | |
| 4520 | - }); | |
| 4521 | - } | |
| 4522 | - | |
| 4523 | - // 重新计算ordercolumns | |
| 4524 | - | |
| 4525 | - var aColumn = []; | |
| 4526 | - var aDir = []; | |
| 4527 | - for (var i = 0; i < self.$$selectgroupds.length; i++) { | |
| 4528 | - aColumn.push(self.$$selectgroupds[i].column); | |
| 4529 | - aDir.push(self.$$selectgroupds[i].dir); | |
| 4530 | - } | |
| 4531 | - if (self.ordercolumns) { | |
| 4532 | - self.ordercolumns.order = aColumn.join(","); | |
| 4533 | - self.ordercolumns.direction = aDir.join(","); | |
| 4534 | - } else { | |
| 4535 | - self.ordercolumns = {order: aColumn.join(","), direction: aDir.join(",")} | |
| 4536 | - } | |
| 4537 | - | |
| 4538 | - } | |
| 4539 | - }, | |
| 4540 | - compile: function(tElem, tAttrs) { | |
| 4541 | - // 获取所有属性,并验证 | |
| 4542 | - var $name_attr = tAttrs['name']; // 控件的名字 | |
| 4543 | - if (!$name_attr) { | |
| 4544 | - throw "必须有名称属性"; | |
| 4545 | - } | |
| 4546 | - | |
| 4547 | - // controlAs名字 | |
| 4548 | - var ctrlAs = '$saOrderOptionCtrl'; | |
| 4549 | - | |
| 4550 | - // TODO: | |
| 4551 | - | |
| 4552 | - | |
| 4553 | - | |
| 4554 | - return { | |
| 4555 | - pre: function(scope, element, attr) { | |
| 4556 | - | |
| 4557 | - }, | |
| 4558 | - | |
| 4559 | - post: function(scope, element, attr) { | |
| 4560 | - | |
| 4561 | - //--------------------- 监控属性方法 -------------------// | |
| 4562 | - // 监控字段名字列表 | |
| 4563 | - scope.$watch( | |
| 4564 | - function() { | |
| 4565 | - return scope[ctrlAs].columns; | |
| 4566 | - }, | |
| 4567 | - function(newValue, oldValue) { | |
| 4568 | - if (!scope[ctrlAs].$$columns_loaded) { | |
| 4569 | - // TODO:格式判定以后做,假设格式是对的 | |
| 4570 | - | |
| 4571 | - | |
| 4572 | - } | |
| 4573 | - | |
| 4574 | - scope[ctrlAs].$$columns_loaded = true; | |
| 4575 | - scope[ctrlAs].$$refresh_selectgroupds(); | |
| 4576 | - }, | |
| 4577 | - true | |
| 4578 | - ); | |
| 4579 | - // 监控字段排序列表 | |
| 4580 | - scope.$watch( | |
| 4581 | - function() { | |
| 4582 | - return scope[ctrlAs].ordercolumns; | |
| 4583 | - }, | |
| 4584 | - function(newValue, oldValue) { | |
| 4585 | - if (!scope[ctrlAs].$$ordercolumns_loaded) { | |
| 4586 | - if (newValue) { | |
| 4587 | - var aColumns = []; // 排序的字段 | |
| 4588 | - var aDirs = []; // 排序字段对应的排序方向 | |
| 4589 | - | |
| 4590 | - if (newValue.order) { | |
| 4591 | - aColumns = newValue.order.split(","); | |
| 4592 | - } | |
| 4593 | - if (newValue.direction) { | |
| 4594 | - aDirs = newValue.direction.split(","); | |
| 4595 | - } | |
| 4596 | - | |
| 4597 | - for (var i = 0; i < aColumns.length; i++) { | |
| 4598 | - if (i < aDirs.length) { | |
| 4599 | - scope[ctrlAs].$$selectgroupds.push({ | |
| 4600 | - column: aColumns[i], | |
| 4601 | - dir: aDirs[i] | |
| 4602 | - }); | |
| 4603 | - } else { | |
| 4604 | - scope[ctrlAs].$$selectgroupds.push({ | |
| 4605 | - column: aColumns[i], | |
| 4606 | - dir: 'ASC' | |
| 4607 | - }); | |
| 4608 | - } | |
| 4609 | - } | |
| 4610 | - } | |
| 4611 | - } | |
| 4612 | - scope[ctrlAs].$$ordercolumns_loaded = true; | |
| 4613 | - scope[ctrlAs].$$refresh_selectgroupds(); | |
| 4614 | - | |
| 4615 | - }, | |
| 4616 | - true | |
| 4617 | - ); | |
| 4618 | - } | |
| 4619 | - | |
| 4620 | - }; | |
| 4621 | - } | |
| 4622 | - }; | |
| 4623 | - } | |
| 4624 | - ] | |
| 4454 | +/** | |
| 4455 | + * saOrderoption指令,搜索时的排序选项(在搜索时可以使用,通用的) | |
| 4456 | + * 属性如下: | |
| 4457 | + * name(必须):控件的名字 | |
| 4458 | + * columns(必须,独立作用域):字段名字列表,格式:[{name:[字段名],desc:[字段描述]}...] | |
| 4459 | + * ordercolumns(必须,独立作用域):字段排序列表,格式:{order: '字段1,字段2',direction: 'ASC,DESC'} | |
| 4460 | + */ | |
| 4461 | +angular.module('ScheduleApp').directive( | |
| 4462 | + 'saOrderoption', | |
| 4463 | + [ | |
| 4464 | + function() { | |
| 4465 | + return { | |
| 4466 | + restrict: 'E', | |
| 4467 | + templateUrl: '/pages/scheduleApp/module/common/dts2/queryOption/saOrderOptionTemplate.html', | |
| 4468 | + scope: { | |
| 4469 | + columns: '=', | |
| 4470 | + ordercolumns: '=' | |
| 4471 | + }, | |
| 4472 | + controllerAs: '$saOrderOptionCtrl', | |
| 4473 | + bindToController: true, | |
| 4474 | + controller: function() { | |
| 4475 | + var self = this; | |
| 4476 | + | |
| 4477 | + // 字段列表是否预载入 | |
| 4478 | + self.$$columns_loaded = false; | |
| 4479 | + // 字段排序是否预载入 | |
| 4480 | + self.$$ordercolumns_loaded = false; | |
| 4481 | + | |
| 4482 | + | |
| 4483 | + // 每组选项内部数据源 | |
| 4484 | + // 格式:[{column:[选中的字段名],dir:[ASC/DESC]}] | |
| 4485 | + self.$$selectgroupds = []; | |
| 4486 | + | |
| 4487 | + // TODO:选择事件 | |
| 4488 | + | |
| 4489 | + self.$$select_column_change = function() { | |
| 4490 | + self.$$refresh_selectgroupds(); | |
| 4491 | + }; | |
| 4492 | + | |
| 4493 | + self.$$select_dir_change = function() { | |
| 4494 | + self.$$refresh_selectgroupds(); | |
| 4495 | + }; | |
| 4496 | + | |
| 4497 | + self.$$add_option_click = function(index) { | |
| 4498 | + self.$$selectgroupds.splice(index, 0, { | |
| 4499 | + column: self.columns[0].name, | |
| 4500 | + dir: "ASC" | |
| 4501 | + }); | |
| 4502 | + self.$$refresh_selectgroupds(); | |
| 4503 | + }; | |
| 4504 | + self.$$del_option_click = function(index) { | |
| 4505 | + self.$$selectgroupds.splice(index, 1); | |
| 4506 | + self.$$refresh_selectgroupds(); | |
| 4507 | + }; | |
| 4508 | + | |
| 4509 | + // 刷新选项内部数据源 | |
| 4510 | + self.$$refresh_selectgroupds = function() { | |
| 4511 | + if (!self.$$columns_loaded || !self.$$ordercolumns_loaded || self.columns.length == 0) { | |
| 4512 | + // 没有载入完成,或者字段列表为空 | |
| 4513 | + return; | |
| 4514 | + } | |
| 4515 | + | |
| 4516 | + if (self.$$selectgroupds.length == 0) { // 默认添加一组排序 | |
| 4517 | + self.$$selectgroupds.push({ | |
| 4518 | + column: self.columns[0].name, | |
| 4519 | + dir: "ASC" | |
| 4520 | + }); | |
| 4521 | + } | |
| 4522 | + | |
| 4523 | + // 重新计算ordercolumns | |
| 4524 | + | |
| 4525 | + var aColumn = []; | |
| 4526 | + var aDir = []; | |
| 4527 | + for (var i = 0; i < self.$$selectgroupds.length; i++) { | |
| 4528 | + aColumn.push(self.$$selectgroupds[i].column); | |
| 4529 | + aDir.push(self.$$selectgroupds[i].dir); | |
| 4530 | + } | |
| 4531 | + if (self.ordercolumns) { | |
| 4532 | + self.ordercolumns.order = aColumn.join(","); | |
| 4533 | + self.ordercolumns.direction = aDir.join(","); | |
| 4534 | + } else { | |
| 4535 | + self.ordercolumns = {order: aColumn.join(","), direction: aDir.join(",")} | |
| 4536 | + } | |
| 4537 | + | |
| 4538 | + } | |
| 4539 | + }, | |
| 4540 | + compile: function(tElem, tAttrs) { | |
| 4541 | + // 获取所有属性,并验证 | |
| 4542 | + var $name_attr = tAttrs['name']; // 控件的名字 | |
| 4543 | + if (!$name_attr) { | |
| 4544 | + throw "必须有名称属性"; | |
| 4545 | + } | |
| 4546 | + | |
| 4547 | + // controlAs名字 | |
| 4548 | + var ctrlAs = '$saOrderOptionCtrl'; | |
| 4549 | + | |
| 4550 | + // TODO: | |
| 4551 | + | |
| 4552 | + | |
| 4553 | + | |
| 4554 | + return { | |
| 4555 | + pre: function(scope, element, attr) { | |
| 4556 | + | |
| 4557 | + }, | |
| 4558 | + | |
| 4559 | + post: function(scope, element, attr) { | |
| 4560 | + | |
| 4561 | + //--------------------- 监控属性方法 -------------------// | |
| 4562 | + // 监控字段名字列表 | |
| 4563 | + scope.$watch( | |
| 4564 | + function() { | |
| 4565 | + return scope[ctrlAs].columns; | |
| 4566 | + }, | |
| 4567 | + function(newValue, oldValue) { | |
| 4568 | + if (!scope[ctrlAs].$$columns_loaded) { | |
| 4569 | + // TODO:格式判定以后做,假设格式是对的 | |
| 4570 | + | |
| 4571 | + | |
| 4572 | + } | |
| 4573 | + | |
| 4574 | + scope[ctrlAs].$$columns_loaded = true; | |
| 4575 | + scope[ctrlAs].$$refresh_selectgroupds(); | |
| 4576 | + }, | |
| 4577 | + true | |
| 4578 | + ); | |
| 4579 | + // 监控字段排序列表 | |
| 4580 | + scope.$watch( | |
| 4581 | + function() { | |
| 4582 | + return scope[ctrlAs].ordercolumns; | |
| 4583 | + }, | |
| 4584 | + function(newValue, oldValue) { | |
| 4585 | + if (!scope[ctrlAs].$$ordercolumns_loaded) { | |
| 4586 | + if (newValue) { | |
| 4587 | + var aColumns = []; // 排序的字段 | |
| 4588 | + var aDirs = []; // 排序字段对应的排序方向 | |
| 4589 | + | |
| 4590 | + if (newValue.order) { | |
| 4591 | + aColumns = newValue.order.split(","); | |
| 4592 | + } | |
| 4593 | + if (newValue.direction) { | |
| 4594 | + aDirs = newValue.direction.split(","); | |
| 4595 | + } | |
| 4596 | + | |
| 4597 | + for (var i = 0; i < aColumns.length; i++) { | |
| 4598 | + if (i < aDirs.length) { | |
| 4599 | + scope[ctrlAs].$$selectgroupds.push({ | |
| 4600 | + column: aColumns[i], | |
| 4601 | + dir: aDirs[i] | |
| 4602 | + }); | |
| 4603 | + } else { | |
| 4604 | + scope[ctrlAs].$$selectgroupds.push({ | |
| 4605 | + column: aColumns[i], | |
| 4606 | + dir: 'ASC' | |
| 4607 | + }); | |
| 4608 | + } | |
| 4609 | + } | |
| 4610 | + } | |
| 4611 | + } | |
| 4612 | + scope[ctrlAs].$$ordercolumns_loaded = true; | |
| 4613 | + scope[ctrlAs].$$refresh_selectgroupds(); | |
| 4614 | + | |
| 4615 | + }, | |
| 4616 | + true | |
| 4617 | + ); | |
| 4618 | + } | |
| 4619 | + | |
| 4620 | + }; | |
| 4621 | + } | |
| 4622 | + }; | |
| 4623 | + } | |
| 4624 | + ] | |
| 4625 | 4625 | ); |
| 4626 | 4626 | /** |
| 4627 | 4627 | * saScpdate指令(非通用指令,只在排班计划form中使用)。 |
| ... | ... | @@ -4854,193 +4854,193 @@ angular.module('ScheduleApp').directive( |
| 4854 | 4854 | } |
| 4855 | 4855 | ] |
| 4856 | 4856 | ); |
| 4857 | -/** | |
| 4858 | - * saSrule指令(非通用指令,只在排班计划form中使用)。 | |
| 4859 | - * 属性如下: | |
| 4860 | - * name(必须):控件的名字 | |
| 4861 | - * xlid(必须):线路id | |
| 4862 | - * from(必须):独立作用域-绑定的开始时间属性名 | |
| 4863 | - * to(必须):独立作用域-绑定的结束时间属性名 | |
| 4864 | - * error(必须):独立作用域-绑定的错误描述属性名 | |
| 4865 | - */ | |
| 4866 | -angular.module('ScheduleApp').directive( | |
| 4867 | - 'saSrule', | |
| 4868 | - [ | |
| 4869 | - 'SchedulePlanManageService_g', | |
| 4870 | - function(service) { | |
| 4871 | - return { | |
| 4872 | - restrict: 'E', | |
| 4873 | - templateUrl: '/pages/scheduleApp/module/common/dts2/scheduleplan/saSruleTemplate.html', | |
| 4874 | - scope: { | |
| 4875 | - from: '=', | |
| 4876 | - to: '=', | |
| 4877 | - xlid: '=', | |
| 4878 | - error: '=' | |
| 4879 | - }, | |
| 4880 | - controllerAs: '$saSruleCtrl', | |
| 4881 | - bindToController: true, | |
| 4882 | - controller: function() { | |
| 4883 | - var self = this; | |
| 4884 | - | |
| 4885 | - // 内部ng-model值,用于和required配对 | |
| 4886 | - self.$$internalmodel = undefined; | |
| 4887 | - | |
| 4888 | - // 内部数据源(时刻表的一些信息) | |
| 4889 | - self.$$count = 0; | |
| 4890 | - self.$$qyCount = 0; | |
| 4891 | - self.$$qyErrorCount = 0; | |
| 4892 | - self.$$errorInfos = []; | |
| 4893 | - | |
| 4894 | - }, | |
| 4895 | - compile: function(tElem, tAttrs) { | |
| 4896 | - // 获取所有属性,并验证 | |
| 4897 | - var $name_attr = tAttrs['name']; // 控件的名字 | |
| 4898 | - if (!$name_attr) { | |
| 4899 | - throw "必须有名称属性"; | |
| 4900 | - } | |
| 4901 | - | |
| 4902 | - // controlAs名字 | |
| 4903 | - var ctrlAs = '$saSruleCtrl'; | |
| 4904 | - | |
| 4905 | - // 线路id | |
| 4906 | - var xl_id = undefined; | |
| 4907 | - // 开始时间 | |
| 4908 | - var from_date = undefined; | |
| 4909 | - // 结束时间 | |
| 4910 | - var to_date = undefined; | |
| 4911 | - | |
| 4912 | - // 内部添加required验证,将所有的错误应用到required验证上去 | |
| 4913 | - tElem.find("div").attr("required", ""); | |
| 4914 | - | |
| 4915 | - return { | |
| 4916 | - pre: function(scope, element, attr) { | |
| 4917 | - | |
| 4918 | - }, | |
| 4919 | - | |
| 4920 | - post: function(scope, element, attr) { | |
| 4921 | - // 属性值 | |
| 4922 | - if ($name_attr) { | |
| 4923 | - scope[ctrlAs]["$name_attr"] = $name_attr; | |
| 4924 | - } | |
| 4925 | - | |
| 4926 | - // 开始日期open属性,及方法 | |
| 4927 | - scope[ctrlAs].$$fromDateOpen = false; | |
| 4928 | - scope[ctrlAs].$$fromDate_open = function() { | |
| 4929 | - scope[ctrlAs].$$fromDateOpen = true; | |
| 4930 | - }; | |
| 4931 | - | |
| 4932 | - // 结束日期open属性,及方法 | |
| 4933 | - scope[ctrlAs].$$toDateOpen = false; | |
| 4934 | - scope[ctrlAs].$$toDate_open = function() { | |
| 4935 | - scope[ctrlAs].$$toDateOpen = true; | |
| 4936 | - }; | |
| 4937 | - | |
| 4938 | - // 内部模型刷新 | |
| 4939 | - scope[ctrlAs].$$internal_model_refresh = function() { | |
| 4940 | - if (!xl_id) { | |
| 4941 | - scope[ctrlAs].$$internalmodel = undefined; | |
| 4942 | - scope[ctrlAs].error = "线路必须选择"; | |
| 4943 | - return; | |
| 4944 | - } | |
| 4945 | - if (!from_date) { | |
| 4946 | - scope[ctrlAs].$$internalmodel = undefined; | |
| 4947 | - scope[ctrlAs].error = "开始日期必须选择"; | |
| 4948 | - return; | |
| 4949 | - } | |
| 4950 | - if (!to_date) { | |
| 4951 | - scope[ctrlAs].$$internalmodel = undefined; | |
| 4952 | - scope[ctrlAs].error = "结束日期必须选择"; | |
| 4953 | - return; | |
| 4954 | - } | |
| 4955 | - if (from_date > to_date) { | |
| 4956 | - scope[ctrlAs].$$internalmodel = undefined; | |
| 4957 | - scope[ctrlAs].error = "开始日期必须在结束日期之前"; | |
| 4958 | - return; | |
| 4959 | - } | |
| 4960 | - | |
| 4961 | - scope[ctrlAs].$$count = 0; | |
| 4962 | - scope[ctrlAs].$$qyCount = 0; | |
| 4963 | - scope[ctrlAs].$$qyErrorCount = 0; | |
| 4964 | - scope[ctrlAs].$$errorInfos = []; | |
| 4965 | - | |
| 4966 | - if (scope[ctrlAs].$$qyCount == 0) { | |
| 4967 | - scope[ctrlAs].$$internalmodel = undefined; | |
| 4968 | - scope[ctrlAs].error = "无可启用的规则数"; | |
| 4969 | - } | |
| 4970 | - | |
| 4971 | - var QClass = service.v_rules; | |
| 4972 | - QClass.val({xlid: xl_id, from: from_date, to: to_date}, | |
| 4973 | - function(result) { | |
| 4974 | - scope[ctrlAs].$$count = result.data.count; | |
| 4975 | - scope[ctrlAs].$$qyCount = result.data.qyCount; | |
| 4976 | - scope[ctrlAs].$$qyErrorCount = result.data.qyErrorCount; | |
| 4977 | - | |
| 4978 | - angular.forEach(result.data.errorInfos, function(obj) { | |
| 4979 | - scope[ctrlAs].$$errorInfos.push({ | |
| 4980 | - ruleId: obj.ruleId, | |
| 4981 | - clZbh: obj.clZbh, | |
| 4982 | - qyrq: moment(obj.qyrq).format("YYYY年MM月DD日"), | |
| 4983 | - infos: obj.errorDescList.join("") | |
| 4984 | - }); | |
| 4985 | - }); | |
| 4986 | - | |
| 4987 | - if (scope[ctrlAs].$$qyErrorCount > 0) { | |
| 4988 | - scope[ctrlAs].$$internalmodel = undefined; | |
| 4989 | - scope[ctrlAs].error = "有错误的规则"; | |
| 4990 | - } else { | |
| 4991 | - scope[ctrlAs].$$internalmodel = "ok"; | |
| 4992 | - scope[ctrlAs].$$errorInfos = []; | |
| 4993 | - } | |
| 4994 | - }, | |
| 4995 | - function() { | |
| 4996 | - scope[ctrlAs].$$internalmodel = undefined; | |
| 4997 | - scope[ctrlAs].error = "获取规则数据失败!"; | |
| 4998 | - } | |
| 4999 | - ); | |
| 5000 | - | |
| 5001 | - scope[ctrlAs].$$internalmodel = "ok"; | |
| 5002 | - }; | |
| 5003 | - | |
| 5004 | - scope[ctrlAs].$$internal_model_refresh(); // 初始执行 | |
| 5005 | - | |
| 5006 | - //--------------------- 监控属性方法 -------------------// | |
| 5007 | - // 监控线路id模型值变化 | |
| 5008 | - scope.$watch( | |
| 5009 | - function() { | |
| 5010 | - return scope[ctrlAs].xlid; | |
| 5011 | - }, | |
| 5012 | - function(newValue, oldValue) { | |
| 5013 | - xl_id = newValue; | |
| 5014 | - scope[ctrlAs].$$internal_model_refresh(); | |
| 5015 | - } | |
| 5016 | - ); | |
| 5017 | - | |
| 5018 | - // 监控开始时间模型值变化 | |
| 5019 | - scope.$watch( | |
| 5020 | - function() { | |
| 5021 | - return scope[ctrlAs].from; | |
| 5022 | - }, | |
| 5023 | - function(newValue, oldValue) { | |
| 5024 | - from_date = newValue; | |
| 5025 | - scope[ctrlAs].$$internal_model_refresh(); | |
| 5026 | - } | |
| 5027 | - ); | |
| 5028 | - // 监控结束时间模型值变化 | |
| 5029 | - scope.$watch( | |
| 5030 | - function() { | |
| 5031 | - return scope[ctrlAs].to; | |
| 5032 | - }, | |
| 5033 | - function(newValue, oldValue) { | |
| 5034 | - to_date = newValue; | |
| 5035 | - scope[ctrlAs].$$internal_model_refresh(); | |
| 5036 | - } | |
| 5037 | - ); | |
| 5038 | - } | |
| 5039 | - }; | |
| 5040 | - } | |
| 5041 | - }; | |
| 5042 | - } | |
| 5043 | - ] | |
| 4857 | +/** | |
| 4858 | + * saSrule指令(非通用指令,只在排班计划form中使用)。 | |
| 4859 | + * 属性如下: | |
| 4860 | + * name(必须):控件的名字 | |
| 4861 | + * xlid(必须):线路id | |
| 4862 | + * from(必须):独立作用域-绑定的开始时间属性名 | |
| 4863 | + * to(必须):独立作用域-绑定的结束时间属性名 | |
| 4864 | + * error(必须):独立作用域-绑定的错误描述属性名 | |
| 4865 | + */ | |
| 4866 | +angular.module('ScheduleApp').directive( | |
| 4867 | + 'saSrule', | |
| 4868 | + [ | |
| 4869 | + 'SchedulePlanManageService_g', | |
| 4870 | + function(service) { | |
| 4871 | + return { | |
| 4872 | + restrict: 'E', | |
| 4873 | + templateUrl: '/pages/scheduleApp/module/common/dts2/scheduleplan/saSruleTemplate.html', | |
| 4874 | + scope: { | |
| 4875 | + from: '=', | |
| 4876 | + to: '=', | |
| 4877 | + xlid: '=', | |
| 4878 | + error: '=' | |
| 4879 | + }, | |
| 4880 | + controllerAs: '$saSruleCtrl', | |
| 4881 | + bindToController: true, | |
| 4882 | + controller: function() { | |
| 4883 | + var self = this; | |
| 4884 | + | |
| 4885 | + // 内部ng-model值,用于和required配对 | |
| 4886 | + self.$$internalmodel = undefined; | |
| 4887 | + | |
| 4888 | + // 内部数据源(时刻表的一些信息) | |
| 4889 | + self.$$count = 0; | |
| 4890 | + self.$$qyCount = 0; | |
| 4891 | + self.$$qyErrorCount = 0; | |
| 4892 | + self.$$errorInfos = []; | |
| 4893 | + | |
| 4894 | + }, | |
| 4895 | + compile: function(tElem, tAttrs) { | |
| 4896 | + // 获取所有属性,并验证 | |
| 4897 | + var $name_attr = tAttrs['name']; // 控件的名字 | |
| 4898 | + if (!$name_attr) { | |
| 4899 | + throw "必须有名称属性"; | |
| 4900 | + } | |
| 4901 | + | |
| 4902 | + // controlAs名字 | |
| 4903 | + var ctrlAs = '$saSruleCtrl'; | |
| 4904 | + | |
| 4905 | + // 线路id | |
| 4906 | + var xl_id = undefined; | |
| 4907 | + // 开始时间 | |
| 4908 | + var from_date = undefined; | |
| 4909 | + // 结束时间 | |
| 4910 | + var to_date = undefined; | |
| 4911 | + | |
| 4912 | + // 内部添加required验证,将所有的错误应用到required验证上去 | |
| 4913 | + tElem.find("div").attr("required", ""); | |
| 4914 | + | |
| 4915 | + return { | |
| 4916 | + pre: function(scope, element, attr) { | |
| 4917 | + | |
| 4918 | + }, | |
| 4919 | + | |
| 4920 | + post: function(scope, element, attr) { | |
| 4921 | + // 属性值 | |
| 4922 | + if ($name_attr) { | |
| 4923 | + scope[ctrlAs]["$name_attr"] = $name_attr; | |
| 4924 | + } | |
| 4925 | + | |
| 4926 | + // 开始日期open属性,及方法 | |
| 4927 | + scope[ctrlAs].$$fromDateOpen = false; | |
| 4928 | + scope[ctrlAs].$$fromDate_open = function() { | |
| 4929 | + scope[ctrlAs].$$fromDateOpen = true; | |
| 4930 | + }; | |
| 4931 | + | |
| 4932 | + // 结束日期open属性,及方法 | |
| 4933 | + scope[ctrlAs].$$toDateOpen = false; | |
| 4934 | + scope[ctrlAs].$$toDate_open = function() { | |
| 4935 | + scope[ctrlAs].$$toDateOpen = true; | |
| 4936 | + }; | |
| 4937 | + | |
| 4938 | + // 内部模型刷新 | |
| 4939 | + scope[ctrlAs].$$internal_model_refresh = function() { | |
| 4940 | + if (!xl_id) { | |
| 4941 | + scope[ctrlAs].$$internalmodel = undefined; | |
| 4942 | + scope[ctrlAs].error = "线路必须选择"; | |
| 4943 | + return; | |
| 4944 | + } | |
| 4945 | + if (!from_date) { | |
| 4946 | + scope[ctrlAs].$$internalmodel = undefined; | |
| 4947 | + scope[ctrlAs].error = "开始日期必须选择"; | |
| 4948 | + return; | |
| 4949 | + } | |
| 4950 | + if (!to_date) { | |
| 4951 | + scope[ctrlAs].$$internalmodel = undefined; | |
| 4952 | + scope[ctrlAs].error = "结束日期必须选择"; | |
| 4953 | + return; | |
| 4954 | + } | |
| 4955 | + if (from_date > to_date) { | |
| 4956 | + scope[ctrlAs].$$internalmodel = undefined; | |
| 4957 | + scope[ctrlAs].error = "开始日期必须在结束日期之前"; | |
| 4958 | + return; | |
| 4959 | + } | |
| 4960 | + | |
| 4961 | + scope[ctrlAs].$$count = 0; | |
| 4962 | + scope[ctrlAs].$$qyCount = 0; | |
| 4963 | + scope[ctrlAs].$$qyErrorCount = 0; | |
| 4964 | + scope[ctrlAs].$$errorInfos = []; | |
| 4965 | + | |
| 4966 | + if (scope[ctrlAs].$$qyCount == 0) { | |
| 4967 | + scope[ctrlAs].$$internalmodel = undefined; | |
| 4968 | + scope[ctrlAs].error = "无可启用的规则数"; | |
| 4969 | + } | |
| 4970 | + | |
| 4971 | + var QClass = service.v_rules; | |
| 4972 | + QClass.val({xlid: xl_id, from: from_date, to: to_date}, | |
| 4973 | + function(result) { | |
| 4974 | + scope[ctrlAs].$$count = result.data.count; | |
| 4975 | + scope[ctrlAs].$$qyCount = result.data.qyCount; | |
| 4976 | + scope[ctrlAs].$$qyErrorCount = result.data.qyErrorCount; | |
| 4977 | + | |
| 4978 | + angular.forEach(result.data.errorInfos, function(obj) { | |
| 4979 | + scope[ctrlAs].$$errorInfos.push({ | |
| 4980 | + ruleId: obj.ruleId, | |
| 4981 | + clZbh: obj.clZbh, | |
| 4982 | + qyrq: moment(obj.qyrq).format("YYYY年MM月DD日"), | |
| 4983 | + infos: obj.errorDescList.join("") | |
| 4984 | + }); | |
| 4985 | + }); | |
| 4986 | + | |
| 4987 | + if (scope[ctrlAs].$$qyErrorCount > 0) { | |
| 4988 | + scope[ctrlAs].$$internalmodel = undefined; | |
| 4989 | + scope[ctrlAs].error = "有错误的规则"; | |
| 4990 | + } else { | |
| 4991 | + scope[ctrlAs].$$internalmodel = "ok"; | |
| 4992 | + scope[ctrlAs].$$errorInfos = []; | |
| 4993 | + } | |
| 4994 | + }, | |
| 4995 | + function() { | |
| 4996 | + scope[ctrlAs].$$internalmodel = undefined; | |
| 4997 | + scope[ctrlAs].error = "获取规则数据失败!"; | |
| 4998 | + } | |
| 4999 | + ); | |
| 5000 | + | |
| 5001 | + scope[ctrlAs].$$internalmodel = "ok"; | |
| 5002 | + }; | |
| 5003 | + | |
| 5004 | + scope[ctrlAs].$$internal_model_refresh(); // 初始执行 | |
| 5005 | + | |
| 5006 | + //--------------------- 监控属性方法 -------------------// | |
| 5007 | + // 监控线路id模型值变化 | |
| 5008 | + scope.$watch( | |
| 5009 | + function() { | |
| 5010 | + return scope[ctrlAs].xlid; | |
| 5011 | + }, | |
| 5012 | + function(newValue, oldValue) { | |
| 5013 | + xl_id = newValue; | |
| 5014 | + scope[ctrlAs].$$internal_model_refresh(); | |
| 5015 | + } | |
| 5016 | + ); | |
| 5017 | + | |
| 5018 | + // 监控开始时间模型值变化 | |
| 5019 | + scope.$watch( | |
| 5020 | + function() { | |
| 5021 | + return scope[ctrlAs].from; | |
| 5022 | + }, | |
| 5023 | + function(newValue, oldValue) { | |
| 5024 | + from_date = newValue; | |
| 5025 | + scope[ctrlAs].$$internal_model_refresh(); | |
| 5026 | + } | |
| 5027 | + ); | |
| 5028 | + // 监控结束时间模型值变化 | |
| 5029 | + scope.$watch( | |
| 5030 | + function() { | |
| 5031 | + return scope[ctrlAs].to; | |
| 5032 | + }, | |
| 5033 | + function(newValue, oldValue) { | |
| 5034 | + to_date = newValue; | |
| 5035 | + scope[ctrlAs].$$internal_model_refresh(); | |
| 5036 | + } | |
| 5037 | + ); | |
| 5038 | + } | |
| 5039 | + }; | |
| 5040 | + } | |
| 5041 | + }; | |
| 5042 | + } | |
| 5043 | + ] | |
| 5044 | 5044 | ); |
| 5045 | 5045 | /** |
| 5046 | 5046 | * saPlaninfoedit指令,排班明细编辑控件,用在调度执勤日报的修改功能 | ... | ... |
src/main/resources/static/pages/scheduleApp/module/common/prj-common-globalservice.js
| ... | ... | @@ -344,7 +344,7 @@ angular.module('ScheduleApp').factory('GuideboardManageService_g', ['$resource', |
| 344 | 344 | return { |
| 345 | 345 | rest: $resource( |
| 346 | 346 | '/gic/:id', |
| 347 | - {order: 'xl,isCancel,lpNo', direction: 'DESC,ASC,ASC', id: '@id'}, | |
| 347 | + {order: 'xl.name,isCancel,lpNo', direction: 'DESC,ASC,ASC', id: '@id'}, | |
| 348 | 348 | { |
| 349 | 349 | list: { |
| 350 | 350 | method: 'GET', |
| ... | ... | @@ -417,7 +417,7 @@ angular.module('ScheduleApp').factory('rerunManageService_g', ['$resource', func |
| 417 | 417 | return { |
| 418 | 418 | rest: $resource( |
| 419 | 419 | '/rms/:id', |
| 420 | - {order: 'rerunXl.id,isCancel', direction: 'ASC', id: '@id'}, | |
| 420 | + {order: 'rerunXl.name,isCancel', direction: 'ASC', id: '@id'}, | |
| 421 | 421 | { |
| 422 | 422 | list: { |
| 423 | 423 | method: 'GET', | ... | ... |
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/info/module.js
| ... | ... | @@ -140,7 +140,7 @@ angular.module('ScheduleApp').controller( |
| 140 | 140 | // query类 |
| 141 | 141 | var SPlanInfo = service.getQueryClass(); |
| 142 | 142 | |
| 143 | - service.resetStatus(); | |
| 143 | + // service.resetStatus(); | |
| 144 | 144 | |
| 145 | 145 | var spid = $scope.spid; |
| 146 | 146 | |
| ... | ... | @@ -251,6 +251,27 @@ angular.module("ScheduleApp").controller( |
| 251 | 251 | // 提交方法 |
| 252 | 252 | self.submit = function() { |
| 253 | 253 | // 保存或者更新 |
| 254 | + // 1、修改驾驶员工号问题(去除带-) | |
| 255 | + var temp = []; | |
| 256 | + var obj = self.schedulePlanInfoForSave; | |
| 257 | + if (obj.jGh) { | |
| 258 | + temp = obj.jGh.split("-"); | |
| 259 | + if (temp.length > 1) { | |
| 260 | + obj.jGh = temp[1]; | |
| 261 | + } else { | |
| 262 | + obj.jGh = temp[0]; | |
| 263 | + } | |
| 264 | + } | |
| 265 | + // 2、修改售票员工号问题(去除带-) | |
| 266 | + if (obj.sGh) { | |
| 267 | + temp = obj.sGh.split("-"); | |
| 268 | + if (temp.length > 1) { | |
| 269 | + obj.sGh = temp[1]; | |
| 270 | + } else { | |
| 271 | + obj.sGh = temp[0]; | |
| 272 | + } | |
| 273 | + } | |
| 274 | + | |
| 254 | 275 | self.schedulePlanInfoForSave.$save(function() { |
| 255 | 276 | self.toPlanInfoListPage(); |
| 256 | 277 | }); | ... | ... |