Commit 97935ee130ea8686d4dec2f83682e4c325720237

Authored by 徐烜
1 parent 09b4ba4b

Update

src/main/resources/static/pages/scheduleApp/Gruntfile.js
... ... @@ -86,7 +86,8 @@ module.exports = function (grunt) {
86 86 'module/common/dts2/employeeGroup/saEmployeegroup.js', // 人员选饿整合指令
87 87 'module/common/dts2/bcGroup/saBcgroup.js', // 班次选择整合指令
88 88 'module/common/dts2/ttinfotable/saTimeTable.js', // 时刻表显示指令
89   - 'module/common/dts2/scheduleplan/saScpdate.js' // saScpdate指令(非通用指令,只在排版计划form中使用)
  89 + 'module/common/dts2/scheduleplan/saScpdate.js', // saScpdate指令(非通用指令,只在排版计划form中使用)
  90 + 'module/common/dts2/scheduleplan/saPlaninfoedit.js' // saPlaninfoedit指令(非通用指令,只在调度执勤日报中使用)
90 91 ],
91 92 dest: 'module/common/prj-common-directive.js'
92 93 },
... ...
src/main/resources/static/pages/scheduleApp/module/common/dts2/scheduleplan/saPlanInfoEdit.js 0 → 100644
  1 +/**
  2 + * saPlaninfoedit指令,排班明细编辑控件,用在调度执勤日报的修改功能
  3 + * name(必须),控件的名字
  4 + * ds,外部数据源
  5 + * cl1,车辆1属性
  6 + * cl2,车辆2属性
  7 + * j1,驾驶员1属性
  8 + * j2,驾驶员2属性
  9 + * s1,售票员1属性
  10 + * s2,售票员2属性
  11 + */
  12 +angular.module('ScheduleApp').directive(
  13 + 'saPlaninfoedit',
  14 + [
  15 + function() {
  16 + return {
  17 + restrict: 'E',
  18 + templateUrl: '/pages/scheduleApp/module/common/dts2/scheduleplan/saPlaninfoeditTemplate.html',
  19 + scope: { // 独立作用域
  20 + ds: '=ngModel'
  21 + },
  22 + controllerAs: '$saPlanInfoEditCtrl',
  23 + bindToController: true,
  24 + controller: function() {
  25 + var self = this;
  26 +
  27 + // TODO:
  28 + },
  29 +
  30 + compile: function(tElem, tAttrs) {
  31 + // 获取属性
  32 + var $attr_name = tAttrs["name"]; // 控件的名字
  33 + if (!$attr_name) {
  34 + throw {msg: "saPlaninfoedit指令name属性不能为空"};
  35 + }
  36 +
  37 + // 内部controlAs名字
  38 + var ctrlAs = '$saPlanInfoEditCtrl';
  39 +
  40 +
  41 + // 内部变量,原始车辆,人员数据
  42 + var old_cl = {}; // key:{车辆id_车辆自编号},value:所在list下标数组
  43 + var old_j = {}; // key:{驾驶员id_姓名_工号}, value:所在list下标数组
  44 + var old_s = {}; // key:{售票员id_姓名_工号}, value:所在list下标数组
  45 +
  46 + // 内部变量,变更的车辆,变更的人员
  47 +
  48 + return {
  49 + pre: function(scope, element, attr) {
  50 +
  51 + },
  52 + post: function(scope, element, attr) {
  53 +
  54 + // -------------- 监控function ---------------//
  55 + scope.$watch(
  56 + function() {
  57 + return scope[ctrlAs].ds;
  58 + },
  59 + function(newValue, oldValue) {
  60 + if (newValue && newValue.length > 0) {
  61 + angular.forEach(newValue, function(obj, index) {
  62 + var k1 = obj.cl + "_" + obj.clZbh;
  63 + var k2 = obj.j + "_" + obj.jName + "_" + obj.jGh;
  64 + var k3 = obj.s + "_" + obj.sName + "_" + obj.sGh;
  65 +
  66 + if (!old_cl.k1) {
  67 + old_cl[k1] = [];
  68 + }
  69 + if (!old_j.k2) {
  70 + old_j[k2] = [];
  71 + }
  72 + if (!old_s.k3) {
  73 + old_s[k3] = [];
  74 + }
  75 +
  76 + old_cl[k1].push(index);
  77 + old_j[k2].push(index);
  78 + old_s[k3].push(index);
  79 +
  80 + })
  81 + }
  82 + }
  83 + );
  84 + }
  85 + }
  86 + }
  87 + };
  88 + }
  89 + ]
  90 +);
0 91 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/common/dts2/scheduleplan/saPlaninfoeditTemplate.html 0 → 100644
  1 +<style>
  2 +
  3 +</style>
  4 +
  5 +<div>
  6 + <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column">
  7 + <thead>
  8 + <tr role="row" class="heading">
  9 + <th style="width: 50px;">序号</th>
  10 + <th style="width: 80px;">发车时间</th>
  11 + <th style="width: 60px;">驾驶员</th>
  12 + <th style="width: 60px;">售票员</th>
  13 + <th style="width: 100px;">停车场</th>
  14 + </tr>
  15 + </thead>
  16 + <tbody>
  17 + <tr ng-repeat="info in $saPlanInfoEditCtrl.ds">
  18 + <td>
  19 + <span ng-bind="$index + 1"></span>
  20 + </td>
  21 + <td>
  22 + <a href="#">
  23 + <span ng-bind="info.fcsj"></span>
  24 + </a>
  25 + </td>
  26 + <td>
  27 + <a href="#">
  28 + <span ng-bind="info.jName"></span>
  29 + </a>
  30 + </td>
  31 + <td>
  32 + <a href="#">
  33 + <span ng-bind="info.sName"></span>
  34 + </a>
  35 + </td>
  36 + <td>
  37 + <a href="#">
  38 + <span ng-bind="info.zdzName"></span>
  39 + </a>
  40 + </td>
  41 + </tr>
  42 + </tbody>
  43 + </table>
  44 +</div>
... ...
src/main/resources/static/pages/scheduleApp/module/common/prj-common-directive.js
... ... @@ -4277,4 +4277,94 @@ angular.module(&#39;ScheduleApp&#39;).directive(
4277 4277 };
4278 4278 }
4279 4279 ]
  4280 +);
  4281 +/**
  4282 + * saPlaninfoedit指令,排班明细编辑控件,用在调度执勤日报的修改功能
  4283 + * name(必须),控件的名字
  4284 + * ds,外部数据源
  4285 + * cl1,车辆1属性
  4286 + * cl2,车辆2属性
  4287 + * j1,驾驶员1属性
  4288 + * j2,驾驶员2属性
  4289 + * s1,售票员1属性
  4290 + * s2,售票员2属性
  4291 + */
  4292 +angular.module('ScheduleApp').directive(
  4293 + 'saPlaninfoedit',
  4294 + [
  4295 + function() {
  4296 + return {
  4297 + restrict: 'E',
  4298 + templateUrl: '/pages/scheduleApp/module/common/dts2/scheduleplan/saPlaninfoeditTemplate.html',
  4299 + scope: { // 独立作用域
  4300 + ds: '=ngModel'
  4301 + },
  4302 + controllerAs: '$saPlanInfoEditCtrl',
  4303 + bindToController: true,
  4304 + controller: function() {
  4305 + var self = this;
  4306 +
  4307 + // TODO:
  4308 + },
  4309 +
  4310 + compile: function(tElem, tAttrs) {
  4311 + // 获取属性
  4312 + var $attr_name = tAttrs["name"]; // 控件的名字
  4313 + if (!$attr_name) {
  4314 + throw {msg: "saPlaninfoedit指令name属性不能为空"};
  4315 + }
  4316 +
  4317 + // 内部controlAs名字
  4318 + var ctrlAs = '$saPlanInfoEditCtrl';
  4319 +
  4320 +
  4321 + // 内部变量,原始车辆,人员数据
  4322 + var old_cl = {}; // key:{车辆id_车辆自编号},value:所在list下标数组
  4323 + var old_j = {}; // key:{驾驶员id_姓名_工号}, value:所在list下标数组
  4324 + var old_s = {}; // key:{售票员id_姓名_工号}, value:所在list下标数组
  4325 +
  4326 + // 内部变量,变更的车辆,变更的人员
  4327 +
  4328 + return {
  4329 + pre: function(scope, element, attr) {
  4330 +
  4331 + },
  4332 + post: function(scope, element, attr) {
  4333 +
  4334 + // -------------- 监控function ---------------//
  4335 + scope.$watch(
  4336 + function() {
  4337 + return scope[ctrlAs].ds;
  4338 + },
  4339 + function(newValue, oldValue) {
  4340 + if (newValue && newValue.length > 0) {
  4341 + angular.forEach(newValue, function(obj, index) {
  4342 + var k1 = obj.cl + "_" + obj.clZbh;
  4343 + var k2 = obj.j + "_" + obj.jName + "_" + obj.jGh;
  4344 + var k3 = obj.s + "_" + obj.sName + "_" + obj.sGh;
  4345 +
  4346 + if (!old_cl.k1) {
  4347 + old_cl[k1] = [];
  4348 + }
  4349 + if (!old_j.k2) {
  4350 + old_j[k2] = [];
  4351 + }
  4352 + if (!old_s.k3) {
  4353 + old_s[k3] = [];
  4354 + }
  4355 +
  4356 + old_cl[k1].push(index);
  4357 + old_j[k2].push(index);
  4358 + old_s[k3].push(index);
  4359 +
  4360 + })
  4361 + }
  4362 + }
  4363 + );
  4364 + }
  4365 + }
  4366 + }
  4367 + };
  4368 + }
  4369 + ]
4280 4370 );
4281 4371 \ No newline at end of file
... ...
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/report/ext/edit.html
... ... @@ -44,167 +44,180 @@
44 44  
45 45 <!-- 其他信息放置在这里 -->
46 46 <div class="form-body">
47   -
48   - <div class="col-md-5">
49   - <div class="form-group has-success has-feedback">
50   - <label class="col-md-5 control-label">车辆1*:</label>
51   - <div class="col-md-7">
52   - <sa-Select5 name="cl1"
53   - model="ctrl.formData"
54   - cmaps="{'cl1.id': 'id'}"
55   - dcname="cl1.id"
56   - icname="id"
57   - dsparams="{{ {type: 'local', param: 'cl' } | json }}"
58   - iterobjname="item"
59   - iterobjexp="item.insideCode"
60   - searchph="请输拼音..."
61   - searchexp="this.insideCode"
62   - required >
63   - </sa-Select5>
64   - </div>
65   - <!-- 隐藏块,显示验证信息 -->
66   - <div class="alert alert-danger well-sm" ng-show="myForm.cl1.$error.required">
67   - 车辆1必须选择
  47 + <div class="form-group">
  48 + <div class="col-md-5">
  49 + <div class="form-group has-success has-feedback">
  50 + <label class="col-md-5 control-label">车辆1*:</label>
  51 + <div class="col-md-7">
  52 + <sa-Select5 name="cl1"
  53 + model="ctrl.formData"
  54 + cmaps="{'cl1.id': 'id'}"
  55 + dcname="cl1.id"
  56 + icname="id"
  57 + dsparams="{{ {type: 'local', param: 'cl' } | json }}"
  58 + iterobjname="item"
  59 + iterobjexp="item.insideCode"
  60 + searchph="请输拼音..."
  61 + searchexp="this.insideCode"
  62 + required >
  63 + </sa-Select5>
  64 + </div>
  65 + <!-- 隐藏块,显示验证信息 -->
  66 + <div class="alert alert-danger well-sm" ng-show="myForm.cl1.$error.required">
  67 + 车辆1必须选择
  68 + </div>
68 69 </div>
69   - </div>
70   - <div class="form-group has-success has-feedback">
71   - <label class="col-md-5 control-label">车辆2:</label>
72   - <div class="col-md-7">
73   - <sa-Select5 name="cl2"
74   - model="ctrl.formData"
75   - cmaps="{'cl2.id': 'id'}"
76   - dcname="cl2.id"
77   - icname="id"
78   - dsparams="{{ {type: 'local', param: 'cl' } | json }}"
79   - iterobjname="item"
80   - iterobjexp="item.insideCode"
81   - searchph="请输拼音..."
82   - searchexp="this.insideCode"
83   - >
84   - </sa-Select5>
  70 + <div class="form-group has-success has-feedback">
  71 + <label class="col-md-5 control-label">车辆2:</label>
  72 + <div class="col-md-7">
  73 + <sa-Select5 name="cl2"
  74 + model="ctrl.formData"
  75 + cmaps="{'cl2.id': 'id'}"
  76 + dcname="cl2.id"
  77 + icname="id"
  78 + dsparams="{{ {type: 'local', param: 'cl' } | json }}"
  79 + iterobjname="item"
  80 + iterobjexp="item.insideCode"
  81 + searchph="请输拼音..."
  82 + searchexp="this.insideCode"
  83 + >
  84 + </sa-Select5>
  85 + </div>
85 86 </div>
86   - </div>
87 87  
88   - <div class="form-group has-success has-feedback">
89   - <label class="col-md-5 control-label">驾驶员1*:</label>
90   - <div class="col-md-7">
91   - <sa-Select5 name="j1"
92   - model="ctrl.formData"
93   - cmaps="{'j1.id' : 'id'}"
94   - dcname="j1.id"
95   - icname="id"
96   - dsparams="{{ {type: 'local', param: 'ry' } | json }}"
97   - iterobjname="item"
98   - iterobjexp="item.personnelName"
99   - searchph="请输拼音..."
100   - searchexp="this.personnelName"
101   - required >
102   - </sa-Select5>
103   - </div>
104   - <!-- 隐藏块,显示验证信息 -->
105   - <div class="alert alert-danger well-sm" ng-show="myForm.j1.$error.required">
106   - 驾驶员必须选择
  88 + <div class="form-group has-success has-feedback">
  89 + <label class="col-md-5 control-label">驾驶员1*:</label>
  90 + <div class="col-md-7">
  91 + <sa-Select5 name="j1"
  92 + model="ctrl.formData"
  93 + cmaps="{'j1.id' : 'id'}"
  94 + dcname="j1.id"
  95 + icname="id"
  96 + dsparams="{{ {type: 'local', param: 'ry' } | json }}"
  97 + iterobjname="item"
  98 + iterobjexp="item.personnelName"
  99 + searchph="请输拼音..."
  100 + searchexp="this.personnelName"
  101 + required >
  102 + </sa-Select5>
  103 + </div>
  104 + <!-- 隐藏块,显示验证信息 -->
  105 + <div class="alert alert-danger well-sm" ng-show="myForm.j1.$error.required">
  106 + 驾驶员必须选择
  107 + </div>
107 108 </div>
108   - </div>
109   - <div class="form-group has-success has-feedback">
110   - <label class="col-md-5 control-label">售票员1:</label>
111   - <div class="col-md-7">
112   - <sa-Select5 name="s1"
113   - model="ctrl.formData"
114   - cmaps="{'s1.id' : 'id'}"
115   - dcname="s1.id"
116   - icname="id"
117   - dsparams="{{ {type: 'local', param: 'ry' } | json }}"
118   - iterobjname="item"
119   - iterobjexp="item.personnelName"
120   - searchph="请输拼音..."
121   - searchexp="this.personnelName"
122   - >
123   - </sa-Select5>
  109 + <div class="form-group has-success has-feedback">
  110 + <label class="col-md-5 control-label">售票员1:</label>
  111 + <div class="col-md-7">
  112 + <sa-Select5 name="s1"
  113 + model="ctrl.formData"
  114 + cmaps="{'s1.id' : 'id'}"
  115 + dcname="s1.id"
  116 + icname="id"
  117 + dsparams="{{ {type: 'local', param: 'ry' } | json }}"
  118 + iterobjname="item"
  119 + iterobjexp="item.personnelName"
  120 + searchph="请输拼音..."
  121 + searchexp="this.personnelName"
  122 + >
  123 + </sa-Select5>
  124 + </div>
124 125 </div>
125   - </div>
126 126  
127   - <div class="form-group has-success has-feedback">
128   - <label class="col-md-5 control-label">驾驶员2:</label>
129   - <div class="col-md-7">
130   - <sa-Select5 name="j2"
131   - model="ctrl.formData"
132   - cmaps="{'j2.id' : 'id'}"
133   - dcname="j2.id"
134   - icname="id"
135   - dsparams="{{ {type: 'local', param: 'ry' } | json }}"
136   - iterobjname="item"
137   - iterobjexp="item.personnelName"
138   - searchph="请输拼音..."
139   - searchexp="this.personnelName"
140   - >
141   - </sa-Select5>
  127 + <div class="form-group has-success has-feedback">
  128 + <label class="col-md-5 control-label">驾驶员2:</label>
  129 + <div class="col-md-7">
  130 + <sa-Select5 name="j2"
  131 + model="ctrl.formData"
  132 + cmaps="{'j2.id' : 'id'}"
  133 + dcname="j2.id"
  134 + icname="id"
  135 + dsparams="{{ {type: 'local', param: 'ry' } | json }}"
  136 + iterobjname="item"
  137 + iterobjexp="item.personnelName"
  138 + searchph="请输拼音..."
  139 + searchexp="this.personnelName"
  140 + >
  141 + </sa-Select5>
  142 + </div>
142 143 </div>
143   - </div>
144   - <div class="form-group has-success has-feedback">
145   - <label class="col-md-5 control-label">售票员2:</label>
146   - <div class="col-md-7">
147   - <sa-Select5 name="s2"
148   - model="ctrl.formData"
149   - cmaps="{'s2.id' : 'id'}"
150   - dcname="s2.id"
151   - icname="id"
152   - dsparams="{{ {type: 'local', param: 'ry' } | json }}"
153   - iterobjname="item"
154   - iterobjexp="item.personnelName"
155   - searchph="请输拼音..."
156   - searchexp="this.personnelName"
157   - >
158   - </sa-Select5>
  144 + <div class="form-group has-success has-feedback">
  145 + <label class="col-md-5 control-label">售票员2:</label>
  146 + <div class="col-md-7">
  147 + <sa-Select5 name="s2"
  148 + model="ctrl.formData"
  149 + cmaps="{'s2.id' : 'id'}"
  150 + dcname="s2.id"
  151 + icname="id"
  152 + dsparams="{{ {type: 'local', param: 'ry' } | json }}"
  153 + iterobjname="item"
  154 + iterobjexp="item.personnelName"
  155 + searchph="请输拼音..."
  156 + searchexp="this.personnelName"
  157 + >
  158 + </sa-Select5>
  159 + </div>
159 160 </div>
160   - </div>
161 161  
162   - <div class="form-group has-success has-feedback">
163   - <label class="col-md-5 control-label">驾驶员3:</label>
164   - <div class="col-md-7">
165   - <sa-Select5 name="j3"
166   - model="ctrl.formData"
167   - cmaps="{'j3.id' : 'id'}"
168   - dcname="j3.id"
169   - icname="id"
170   - dsparams="{{ {type: 'local', param: 'ry' } | json }}"
171   - iterobjname="item"
172   - iterobjexp="item.personnelName"
173   - searchph="请输拼音..."
174   - searchexp="this.personnelName"
175   - >
176   - </sa-Select5>
  162 + <div class="form-group has-success has-feedback">
  163 + <label class="col-md-5 control-label">驾驶员3:</label>
  164 + <div class="col-md-7">
  165 + <sa-Select5 name="j3"
  166 + model="ctrl.formData"
  167 + cmaps="{'j3.id' : 'id'}"
  168 + dcname="j3.id"
  169 + icname="id"
  170 + dsparams="{{ {type: 'local', param: 'ry' } | json }}"
  171 + iterobjname="item"
  172 + iterobjexp="item.personnelName"
  173 + searchph="请输拼音..."
  174 + searchexp="this.personnelName"
  175 + >
  176 + </sa-Select5>
  177 + </div>
177 178 </div>
178   - </div>
179   - <div class="form-group has-success has-feedback">
180   - <label class="col-md-5 control-label">售票员3:</label>
181   - <div class="col-md-7">
182   - <sa-Select5 name="s3"
183   - model="ctrl.formData"
184   - cmaps="{'s3.id' : 'id'}"
185   - dcname="s3.id"
186   - icname="id"
187   - dsparams="{{ {type: 'local', param: 'ry' } | json }}"
188   - iterobjname="item"
189   - iterobjexp="item.personnelName"
190   - searchph="请输拼音..."
191   - searchexp="this.personnelName"
192   - >
193   - </sa-Select5>
  179 + <div class="form-group has-success has-feedback">
  180 + <label class="col-md-5 control-label">售票员3:</label>
  181 + <div class="col-md-7">
  182 + <sa-Select5 name="s3"
  183 + model="ctrl.formData"
  184 + cmaps="{'s3.id' : 'id'}"
  185 + dcname="s3.id"
  186 + icname="id"
  187 + dsparams="{{ {type: 'local', param: 'ry' } | json }}"
  188 + iterobjname="item"
  189 + iterobjexp="item.personnelName"
  190 + searchph="请输拼音..."
  191 + searchexp="this.personnelName"
  192 + >
  193 + </sa-Select5>
  194 + </div>
194 195 </div>
195 196 </div>
196   - </div>
197 197  
198   - <div class="col-md-7">
199   - <div class="form-group has-success has-feedback">
200   - <label class="col-md-2 control-label">排班明细:</label>
201   - <div class="col-md-10">
202   - TODO
  198 + <div class="col-md-7">
  199 + <div class="form-group has-success has-feedback">
  200 + <label class="col-md-2 control-label">排班明细:</label>
  201 + <div class="col-md-10">
  202 + <sa-Planinfoedit name="spi"
  203 + ng-model="ctrl.formData.planInfos"
  204 + ng-model-options="{ getterSetter: true }"
  205 + cl1="{{ctrl.formData.cl1}}"
  206 + cl2="{{ctrl.formData.cl2}}"
  207 + j1="{{ctrl.formData.j1}}"
  208 + j2="{{ctrl.formData.j2}}"
  209 + s1="{{ctrl.formData.s1}}"
  210 + s2="{{ctrl.formData.s2}}"
  211 + >
  212 +
  213 + </sa-Planinfoedit>
  214 + </div>
203 215 </div>
204 216 </div>
205 217 </div>
206 218  
207 219  
  220 +
208 221 </div>
209 222  
210 223 <!-- TODO:!myForm.$valid 在这里有点问题,改用以下方法验证 -->
... ...
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/report/ext/module.js
... ... @@ -179,10 +179,13 @@ angular.module(&#39;ScheduleApp&#39;).controller(
179 179  
180 180 self.formData.planInfos = undefined; // 排班明细
181 181  
  182 + var sdd = new Date();
  183 + sdd.setTime(self.sd);
182 184 var params = {
183   - xl: self.xlId,
184   - scheduleDate: self.sd,
185   - lp: self.lpId
  185 + xl_eq: self.xlId,
  186 + scheduleDate_eq: sdd,
  187 + lp_eq: self.lpId,
  188 + size: 100
186 189 };
187 190  
188 191 // 获取排班明细数据
... ...