Commit 05e6889a3203c57cf6380083ec88f274740518e7
1 parent
95ca65ab
Update
Showing
6 changed files
with
1098 additions
and
29 deletions
src/main/resources/static/pages/scheduleApp/Gruntfile.js
| ... | ... | @@ -87,7 +87,8 @@ module.exports = function (grunt) { |
| 87 | 87 | 'module/common/dts2/bcGroup/saBcgroup.js', // 班次选择整合指令 |
| 88 | 88 | 'module/common/dts2/ttinfotable/saTimeTable.js', // 时刻表显示指令 |
| 89 | 89 | 'module/common/dts2/scheduleplan/saScpdate.js', // saScpdate指令(非通用指令,只在排版计划form中使用) |
| 90 | - 'module/common/dts2/scheduleplan/saPlaninfoedit.js' // saPlaninfoedit指令(非通用指令,只在调度执勤日报中使用) | |
| 90 | + 'module/common/dts2/scheduleplan/saPlaninfoedit.js', // saPlaninfoedit指令(非通用指令,只在调度执勤日报中使用) | |
| 91 | + 'module/common/dts2/scheduleplan/saPlaninfoedit2.js' // saPlaninfoedit2指令(非通用指令,只在调度执勤日报中使用) | |
| 91 | 92 | ], |
| 92 | 93 | dest: 'module/common/prj-common-directive.js' |
| 93 | 94 | }, | ... | ... |
src/main/resources/static/pages/scheduleApp/module/common/dts1/select/saSelect5.js
| ... | ... | @@ -196,8 +196,8 @@ angular.module('ScheduleApp').directive('saSelect5', [ |
| 196 | 196 | */ |
| 197 | 197 | scope[ctrlAs].$$internal_validate_model = function() { |
| 198 | 198 | // TODO: |
| 199 | - console.log(scope[ctrlAs].$$internal_select_value); | |
| 200 | - console.log(scope[ctrlAs].$$data_real); | |
| 199 | + //console.log(scope[ctrlAs].$$internal_select_value); | |
| 200 | + //console.log(scope[ctrlAs].$$data_real); | |
| 201 | 201 | |
| 202 | 202 | if (scope[ctrlAs].$$internal_select_value) { |
| 203 | 203 | var select_value_temp = scope[ctrlAs].$$internal_select_value; | ... | ... |
src/main/resources/static/pages/scheduleApp/module/common/dts2/scheduleplan/saPlanInfoEdit2.js
0 → 100644
| 1 | +/** | |
| 2 | + * saPlaninfoedit2指令,排班明细编辑控件,用在调度执勤日报的修改功能 | |
| 3 | + * name(必须),控件的名字 | |
| 4 | + * ds,外部数据源 | |
| 5 | + * fd, 表单数据源 | |
| 6 | + */ | |
| 7 | +angular.module('ScheduleApp').directive( | |
| 8 | + 'saPlaninfoedit2', | |
| 9 | + [ | |
| 10 | + function() { | |
| 11 | + return { | |
| 12 | + restrict: 'E', | |
| 13 | + templateUrl: '/pages/scheduleApp/module/common/dts2/scheduleplan/saPlaninfoeditTemplate.html', | |
| 14 | + scope: { // 独立作用域 | |
| 15 | + ds: '=ngModel', // 时刻明细数据源头 | |
| 16 | + fd: '=formData' // 表单数据源(车辆、驾驶员、售票员信息) | |
| 17 | + }, | |
| 18 | + controllerAs: '$saPlanInfoEditCtrl', | |
| 19 | + bindToController: true, | |
| 20 | + controller: function() { | |
| 21 | + //var self = this; | |
| 22 | + | |
| 23 | + }, | |
| 24 | + | |
| 25 | + compile: function(tElem, tAttrs) { | |
| 26 | + // 获取属性 | |
| 27 | + var $attr_name = tAttrs["name"]; // 控件的名字 | |
| 28 | + if (!$attr_name) { | |
| 29 | + throw {msg: "saPlaninfoedit2指令name属性不能为空"}; | |
| 30 | + } | |
| 31 | + | |
| 32 | + // 内部controlAs名字 | |
| 33 | + var ctrlAs = '$saPlanInfoEditCtrl'; | |
| 34 | + | |
| 35 | + | |
| 36 | + // 内部变量,原始车辆,人员数据 | |
| 37 | + var old_cl = {}; // key:{车辆id_车辆自编号},value:所在list下标数组 | |
| 38 | + var old_j = {}; // key:{驾驶员id_姓名_工号}, value:所在list下标数组 | |
| 39 | + var old_s = {}; // key:{售票员id_姓名_工号}, value:所在list下标数组 | |
| 40 | + var old_isfb = false; // 是否有分班 | |
| 41 | + var old_isfb_index = 0; // 分班开始索引 | |
| 42 | + var old_hasJCBC = false; // 是否有进场班次 | |
| 43 | + var old_max_fcno = 0; // 最大发车顺序号 | |
| 44 | + var old_firstJCBCFcno = 0; // 第一个进场班次发车顺序号 | |
| 45 | + var old_half_bcs = 0; // 一般的班次数量 | |
| 46 | + | |
| 47 | + // 内部变量,变更的车辆,变更的人员 | |
| 48 | + var new_cl1 = undefined; // 新的车辆1(车辆id_车辆自编号) | |
| 49 | + var new_cl2 = undefined; // 新的车辆2(车辆id_车辆自编号) | |
| 50 | + var new_j1 = undefined; // 新的驾驶员1(驾驶员id_姓名_工号) | |
| 51 | + var new_j2 = undefined; // 新的驾驶员2(驾驶员id_姓名_工号) | |
| 52 | + var new_s1 = undefined; // 新的售票员1(售票员id_姓名_工号) | |
| 53 | + var new_s2 = undefined; // 新的售票员2(售票员id_姓名_工号) | |
| 54 | + | |
| 55 | + | |
| 56 | + // 表单值,被赋值的次数 | |
| 57 | + var form_data_assign_count = { | |
| 58 | + cl1 : 1, | |
| 59 | + cl2 : 1, | |
| 60 | + j1 : 1, | |
| 61 | + j2 : 1, | |
| 62 | + j3 : 1, | |
| 63 | + s1 : 1, | |
| 64 | + s2 : 1, | |
| 65 | + s3 : 1 | |
| 66 | + }; | |
| 67 | + | |
| 68 | + return { | |
| 69 | + pre: function(scope, element, attr) { | |
| 70 | + | |
| 71 | + }, | |
| 72 | + post: function(scope, element, attr) { | |
| 73 | + | |
| 74 | + /** | |
| 75 | + * 刷新车辆数据。 | |
| 76 | + */ | |
| 77 | + scope[ctrlAs].$$internal_refresh_dsdata_cl = function() { | |
| 78 | + if (new_cl1) { | |
| 79 | + var new_cl1_id = new_cl1.split("_")[0]; | |
| 80 | + var new_cl1_zbh = new_cl1.split("_")[1]; | |
| 81 | + | |
| 82 | + if (new_cl2) { | |
| 83 | + var new_cl2_id = new_cl2.split("_")[0]; | |
| 84 | + var new_cl2_zbh = new_cl2.split("_")[1]; | |
| 85 | + | |
| 86 | + if (old_isfb) { // 使用分班判定 | |
| 87 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 88 | + if (index < old_isfb_index) { | |
| 89 | + obj.cl = new_cl1_id; | |
| 90 | + obj.clZbh = new_cl1_zbh; | |
| 91 | + } else { | |
| 92 | + obj.cl = new_cl2_id; | |
| 93 | + obj.clZbh = new_cl2_zbh; | |
| 94 | + } | |
| 95 | + }); | |
| 96 | + | |
| 97 | + } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定 | |
| 98 | + angular.forEach(scope[ctrlAs].ds, function(obj) { | |
| 99 | + if (obj.fcno <= old_firstJCBCFcno) { | |
| 100 | + obj.cl = new_cl1_id; | |
| 101 | + obj.clZbh = new_cl1_zbh; | |
| 102 | + } else { | |
| 103 | + obj.cl = new_cl2_id; | |
| 104 | + obj.clZbh = new_cl2_zbh; | |
| 105 | + } | |
| 106 | + }); | |
| 107 | + } else { // 使用一半一半班次判定 | |
| 108 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 109 | + if (index < old_half_bcs) { | |
| 110 | + obj.cl = new_cl1_id; | |
| 111 | + obj.clZbh = new_cl1_zbh; | |
| 112 | + } else { | |
| 113 | + obj.cl = new_cl2_id; | |
| 114 | + obj.clZbh = new_cl2_zbh; | |
| 115 | + } | |
| 116 | + }); | |
| 117 | + } | |
| 118 | + | |
| 119 | + } else { | |
| 120 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 121 | + obj.cl = new_cl1_id; | |
| 122 | + obj.clZbh = new_cl1_zbh; | |
| 123 | + }); | |
| 124 | + } | |
| 125 | + | |
| 126 | + } else { | |
| 127 | + // 清空,不使用旧的 | |
| 128 | + angular.forEach(old_cl, function(value, key) { | |
| 129 | + angular.forEach(value, function(i) { | |
| 130 | + //scope[ctrlAs].ds[i].cl = key.split("_")[0]; | |
| 131 | + //scope[ctrlAs].ds[i].clZbh = key.split("_")[1]; | |
| 132 | + scope[ctrlAs].ds[i].cl = undefined; | |
| 133 | + scope[ctrlAs].ds[i].clZbh = undefined; | |
| 134 | + }); | |
| 135 | + }); | |
| 136 | + } | |
| 137 | + }; | |
| 138 | + | |
| 139 | + /** | |
| 140 | + * 刷新驾驶员数据。 | |
| 141 | + */ | |
| 142 | + scope[ctrlAs].$$internal_refresh_dsdata_j = function() { | |
| 143 | + if (new_j1) { | |
| 144 | + var new_j1_id = new_j1.split("_")[0]; | |
| 145 | + var new_j1_name = new_j1.split("_")[1]; | |
| 146 | + var new_j1_gh = new_j1.split("_")[2]; | |
| 147 | + if (new_j1_gh && new_j1_gh.indexOf("-") > 0) { | |
| 148 | + new_j1_gh = new_j1_gh.substr(3); // 修正工号,把 55- 这种前缀去掉 | |
| 149 | + } | |
| 150 | + | |
| 151 | + if (new_j2) { | |
| 152 | + var new_j2_id = new_j2.split("_")[0]; | |
| 153 | + var new_j2_name = new_j2.split("_")[1]; | |
| 154 | + var new_j2_gh = new_j2.split("_")[2]; | |
| 155 | + if (new_j2_gh && new_j2_gh.indexOf("-") > 0) { | |
| 156 | + new_j2_gh = new_j2_gh.substr(3); // 修正工号,把 55- 这种前缀去掉 | |
| 157 | + } | |
| 158 | + | |
| 159 | + if (old_isfb) { // 使用分班判定 | |
| 160 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 161 | + if (index < old_isfb_index) { | |
| 162 | + obj.j = new_j1_id; | |
| 163 | + obj.jGh = new_j1_gh; | |
| 164 | + obj.jName = new_j1_name; | |
| 165 | + } else { | |
| 166 | + obj.j = new_j2_id; | |
| 167 | + obj.jGh = new_j2_gh; | |
| 168 | + obj.jName = new_j2_name; | |
| 169 | + } | |
| 170 | + }); | |
| 171 | + | |
| 172 | + } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定 | |
| 173 | + angular.forEach(scope[ctrlAs].ds, function(obj) { | |
| 174 | + if (obj.fcno <= old_firstJCBCFcno) { | |
| 175 | + obj.j = new_j1_id; | |
| 176 | + obj.jGh = new_j1_gh; | |
| 177 | + obj.jName = new_j1_name; | |
| 178 | + } else { | |
| 179 | + obj.j = new_j2_id; | |
| 180 | + obj.jGh = new_j2_gh; | |
| 181 | + obj.jName = new_j2_name; | |
| 182 | + } | |
| 183 | + }); | |
| 184 | + } else { // 使用一半一半班次判定 | |
| 185 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 186 | + if (index < old_half_bcs) { | |
| 187 | + obj.j = new_j1_id; | |
| 188 | + obj.jGh = new_j1_gh; | |
| 189 | + obj.jName = new_j1_name; | |
| 190 | + } else { | |
| 191 | + obj.j = new_j2_id; | |
| 192 | + obj.jGh = new_j2_gh; | |
| 193 | + obj.jName = new_j2_name; | |
| 194 | + } | |
| 195 | + }); | |
| 196 | + } | |
| 197 | + | |
| 198 | + } else { | |
| 199 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 200 | + obj.j = new_j1_id; | |
| 201 | + obj.jGh = new_j1_gh; | |
| 202 | + obj.jName = new_j1_name; | |
| 203 | + }); | |
| 204 | + } | |
| 205 | + | |
| 206 | + } else { | |
| 207 | + // 清空,不使用使用旧的 | |
| 208 | + angular.forEach(old_j, function(value, key) { | |
| 209 | + angular.forEach(value, function(i) { | |
| 210 | + //scope[ctrlAs].ds[i].j = key.split("_")[0]; | |
| 211 | + //scope[ctrlAs].ds[i].jName = key.split("_")[1]; | |
| 212 | + //scope[ctrlAs].ds[i].jGh = key.split("_")[2]; | |
| 213 | + scope[ctrlAs].ds[i].j = undefined; | |
| 214 | + scope[ctrlAs].ds[i].jName = undefined; | |
| 215 | + scope[ctrlAs].ds[i].jGh = undefined; | |
| 216 | + }); | |
| 217 | + }); | |
| 218 | + } | |
| 219 | + }; | |
| 220 | + | |
| 221 | + /** | |
| 222 | + * 刷新售票员数据(和驾驶员配对的,有驾驶员,才有售票员)。 | |
| 223 | + */ | |
| 224 | + scope[ctrlAs].$$internal_refresh_dsdata_s = function() { | |
| 225 | + var j_id = undefined; | |
| 226 | + var s_id = undefined; | |
| 227 | + var s_gh = undefined; | |
| 228 | + var s_name = undefined; | |
| 229 | + | |
| 230 | + if (new_j1) { | |
| 231 | + j_id = new_j1.split("_")[0]; | |
| 232 | + if (new_s1) { | |
| 233 | + s_id = new_s1.split("_")[0]; | |
| 234 | + s_name = new_s1.split("_")[1]; | |
| 235 | + s_gh = new_s1.split("_")[2]; | |
| 236 | + if (s_gh && s_gh.indexOf("-") > 0) { // 修正工号,把 55- 这种前缀去掉 | |
| 237 | + s_gh = s_gh.substr(3); | |
| 238 | + } | |
| 239 | + } else { | |
| 240 | + s_id = undefined; | |
| 241 | + s_gh = undefined; | |
| 242 | + s_name = undefined | |
| 243 | + } | |
| 244 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 245 | + if (obj.j == j_id) { | |
| 246 | + obj.s = s_id; | |
| 247 | + obj.sGh = s_gh; | |
| 248 | + obj.sName = s_name; | |
| 249 | + } | |
| 250 | + }); | |
| 251 | + } | |
| 252 | + if (new_j2) { | |
| 253 | + j_id = new_j2.split("_")[0]; | |
| 254 | + if (new_s2) { | |
| 255 | + s_id = new_s2.split("_")[0]; | |
| 256 | + s_name = new_s2.split("_")[1]; | |
| 257 | + s_gh = new_s2.split("_")[2]; | |
| 258 | + if (s_gh && s_gh.indexOf("-") > 0) { // 修正工号,把 55- 这种前缀去掉 | |
| 259 | + s_gh = s_gh.substr(3); | |
| 260 | + } | |
| 261 | + } else { | |
| 262 | + s_id = undefined; | |
| 263 | + s_gh = undefined; | |
| 264 | + s_name = undefined | |
| 265 | + } | |
| 266 | + | |
| 267 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 268 | + if (obj.j == j_id) { | |
| 269 | + obj.s = s_id; | |
| 270 | + obj.sGh = s_gh; | |
| 271 | + obj.sName = s_name; | |
| 272 | + } | |
| 273 | + }); | |
| 274 | + } | |
| 275 | + }; | |
| 276 | + | |
| 277 | + | |
| 278 | + //-------------- 监控表单车辆1的变化 ----------------// | |
| 279 | + scope.$watch( | |
| 280 | + function() { | |
| 281 | + return scope[ctrlAs].fd.cl1; | |
| 282 | + }, | |
| 283 | + function(newValue, oldValue) { | |
| 284 | + // 初始化new_cl1 | |
| 285 | + if (newValue.id) { | |
| 286 | + if (newValue.id && newValue.zbh) { | |
| 287 | + new_cl1 = newValue.id + "_" + newValue.zbh; | |
| 288 | + } else { | |
| 289 | + new_cl1 = undefined; | |
| 290 | + } | |
| 291 | + } else { | |
| 292 | + new_cl1 = undefined; | |
| 293 | + } | |
| 294 | + | |
| 295 | + scope[ctrlAs].$$internal_refresh_dsdata_cl(); | |
| 296 | + }, | |
| 297 | + true | |
| 298 | + ); | |
| 299 | + | |
| 300 | + //-------------- 监控表单车辆2的变化 ----------------// | |
| 301 | + scope.$watch( | |
| 302 | + function() { | |
| 303 | + return scope[ctrlAs].fd.cl2; | |
| 304 | + }, | |
| 305 | + function(newValue, oldValue) { | |
| 306 | + // 初始化new_cl2 | |
| 307 | + if (newValue.id) { | |
| 308 | + if (newValue.id && newValue.zbh) { | |
| 309 | + new_cl2 = newValue.id + "_" + newValue.zbh; | |
| 310 | + } else { | |
| 311 | + new_cl2 = undefined; | |
| 312 | + } | |
| 313 | + } else { | |
| 314 | + new_cl2 = undefined; | |
| 315 | + } | |
| 316 | + | |
| 317 | + scope[ctrlAs].$$internal_refresh_dsdata_cl(); | |
| 318 | + }, | |
| 319 | + true | |
| 320 | + ); | |
| 321 | + | |
| 322 | + //-------------- 监控表单驾驶员1的变化 ----------------// | |
| 323 | + scope.$watch( | |
| 324 | + function() { | |
| 325 | + return scope[ctrlAs].fd.j1; | |
| 326 | + }, | |
| 327 | + function(newValue, oldValue) { | |
| 328 | + // 初始化j1 | |
| 329 | + if (newValue.id) { | |
| 330 | + if (newValue.id && newValue.name && newValue.jobCode) { | |
| 331 | + new_j1 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode; | |
| 332 | + } else { | |
| 333 | + new_j1 = undefined; | |
| 334 | + } | |
| 335 | + } else { | |
| 336 | + new_j1 = undefined; | |
| 337 | + } | |
| 338 | + | |
| 339 | + scope[ctrlAs].$$internal_refresh_dsdata_j(); | |
| 340 | + scope[ctrlAs].$$internal_refresh_dsdata_s(); | |
| 341 | + }, | |
| 342 | + true | |
| 343 | + ); | |
| 344 | + | |
| 345 | + //-------------- 监控表单售票员1的变化 ----------------// | |
| 346 | + scope.$watch( | |
| 347 | + function() { | |
| 348 | + return scope[ctrlAs].fd.s1; | |
| 349 | + }, | |
| 350 | + function(newValue, oldValue) { | |
| 351 | + // 初始化s1 | |
| 352 | + if (newValue.id) { | |
| 353 | + if (newValue.id && newValue.name && newValue.jobCode) { | |
| 354 | + new_s1 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode; | |
| 355 | + } else { | |
| 356 | + new_s1 = undefined; | |
| 357 | + } | |
| 358 | + } else { | |
| 359 | + new_s1 = undefined; | |
| 360 | + } | |
| 361 | + scope[ctrlAs].$$internal_refresh_dsdata_j(); | |
| 362 | + scope[ctrlAs].$$internal_refresh_dsdata_s(); | |
| 363 | + }, | |
| 364 | + true | |
| 365 | + ); | |
| 366 | + | |
| 367 | + //-------------- 监控表单驾驶员2的变化 ----------------// | |
| 368 | + scope.$watch( | |
| 369 | + function() { | |
| 370 | + return scope[ctrlAs].fd.j2; | |
| 371 | + }, | |
| 372 | + function(newValue, oldValue) { | |
| 373 | + // 初始化j2 | |
| 374 | + if (newValue.id) { | |
| 375 | + if (newValue.id && newValue.name && newValue.jobCode) { | |
| 376 | + new_j2 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode; | |
| 377 | + } else { | |
| 378 | + new_j2 = undefined; | |
| 379 | + } | |
| 380 | + } else { | |
| 381 | + new_j2 = undefined; | |
| 382 | + } | |
| 383 | + | |
| 384 | + scope[ctrlAs].$$internal_refresh_dsdata_j(); | |
| 385 | + scope[ctrlAs].$$internal_refresh_dsdata_s(); | |
| 386 | + }, | |
| 387 | + true | |
| 388 | + ); | |
| 389 | + | |
| 390 | + //-------------- 监控表单售票员2的变化 ----------------// | |
| 391 | + scope.$watch( | |
| 392 | + function() { | |
| 393 | + return scope[ctrlAs].fd.s2; | |
| 394 | + }, | |
| 395 | + function(newValue, oldValue) { | |
| 396 | + // 初始化s2 | |
| 397 | + if (newValue && newValue.id) { | |
| 398 | + if (newValue.id && newValue.name && newValue.jobCode) { | |
| 399 | + new_s2 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode; | |
| 400 | + } else { | |
| 401 | + new_s2 = undefined; | |
| 402 | + } | |
| 403 | + } else { | |
| 404 | + new_s2 = undefined; | |
| 405 | + } | |
| 406 | + | |
| 407 | + scope[ctrlAs].$$internal_refresh_dsdata_j(); | |
| 408 | + scope[ctrlAs].$$internal_refresh_dsdata_s(); | |
| 409 | + }, | |
| 410 | + true | |
| 411 | + ); | |
| 412 | + | |
| 413 | + //-------------------- 监控ds的变化,更新数据源,初始化formdata的数据 ---------------// | |
| 414 | + scope.$watch( | |
| 415 | + function() { | |
| 416 | + return scope[ctrlAs].ds; | |
| 417 | + }, | |
| 418 | + function(newValue, oldValue) { | |
| 419 | + if (newValue && newValue.length > 0) { | |
| 420 | + var j1 = newValue[0].j; | |
| 421 | + | |
| 422 | + var cl_ids = []; // 车辆ids数组(有顺序) | |
| 423 | + var j_s_ids = []; // 驾驶员ids,售票员ids,[{j:id,s:id},...](有顺序) | |
| 424 | + var isRepeat = false; | |
| 425 | + var i = 0; | |
| 426 | + | |
| 427 | + angular.forEach(newValue, function(obj, index) { | |
| 428 | + var k1 = obj.cl + "_" + obj.clZbh; | |
| 429 | + var k2 = !obj.j? undefined: obj.j + "_" + obj.jName + "_" + obj.jGh; | |
| 430 | + var k3 = !obj.s? undefined: obj.s + "_" + obj.sName + "_" + obj.sGh; | |
| 431 | + | |
| 432 | + if (!old_cl[k1]) { | |
| 433 | + old_cl[k1] = []; | |
| 434 | + } | |
| 435 | + if (!old_j[k2] && k2) { | |
| 436 | + old_j[k2] = []; | |
| 437 | + } | |
| 438 | + if (!old_s[k3] && k3) { | |
| 439 | + old_s[k3] = []; | |
| 440 | + } | |
| 441 | + | |
| 442 | + // 闭包 | |
| 443 | + (function(i) { | |
| 444 | + old_cl[k1].push(i); | |
| 445 | + if (k2) { | |
| 446 | + old_j[k2].push(i); | |
| 447 | + } | |
| 448 | + if (k3) { | |
| 449 | + old_s[k3].push(i); | |
| 450 | + } | |
| 451 | + })(index); | |
| 452 | + | |
| 453 | + // 判断是否分班 | |
| 454 | + if (j1 != obj.j && !old_isfb) { | |
| 455 | + old_isfb = true; | |
| 456 | + old_isfb_index = index; | |
| 457 | + } | |
| 458 | + | |
| 459 | + // 判断进出场 | |
| 460 | + if (obj.bcType == 'in' && !old_hasJCBC) { | |
| 461 | + old_hasJCBC = true; | |
| 462 | + old_firstJCBCFcno = obj.fcno; | |
| 463 | + } | |
| 464 | + | |
| 465 | + //-------------- formdata用数据处理 -------------// | |
| 466 | + // 车辆处理 | |
| 467 | + isRepeat = false; | |
| 468 | + if (obj.cl) { | |
| 469 | + for (i = 0; i < cl_ids.length; i++) { | |
| 470 | + if (cl_ids[i] == obj.cl) { | |
| 471 | + isRepeat = true; | |
| 472 | + break; | |
| 473 | + } | |
| 474 | + } | |
| 475 | + if (!isRepeat) { | |
| 476 | + cl_ids.push(obj.cl); | |
| 477 | + } | |
| 478 | + } | |
| 479 | + | |
| 480 | + // 人员处理(以驾驶员id为主,没有的话,售票员不管了) | |
| 481 | + isRepeat = false; | |
| 482 | + if (obj.j) { | |
| 483 | + for (i = 0; i < j_s_ids.length; i++) { | |
| 484 | + if (j_s_ids[i].j == obj.j) { | |
| 485 | + isRepeat = true; | |
| 486 | + break; | |
| 487 | + } | |
| 488 | + } | |
| 489 | + if (!isRepeat) { | |
| 490 | + j_s_ids.push({ | |
| 491 | + j: obj.j, | |
| 492 | + s: !obj.s? undefined: obj.s | |
| 493 | + }); | |
| 494 | + } | |
| 495 | + } | |
| 496 | + }); | |
| 497 | + | |
| 498 | + old_max_fcno = newValue[newValue.length - 1].fcno; | |
| 499 | + old_half_bcs = newValue.length / 2; | |
| 500 | + | |
| 501 | + // 更新formdata | |
| 502 | + for (i = 0; i < cl_ids.length; i++) { // 车辆更新前两辆 | |
| 503 | + if (i >= 2) { | |
| 504 | + break; | |
| 505 | + } else { | |
| 506 | + form_data_assign_count["cl" + (i + 1)] = 0; | |
| 507 | + scope[ctrlAs].fd["cl" + (i + 1)].id = cl_ids[i]; | |
| 508 | + } | |
| 509 | + } | |
| 510 | + for (i = 0; i < j_s_ids.length; i++) { // 人员更新 | |
| 511 | + if (i >= 3) { | |
| 512 | + break; | |
| 513 | + } else { | |
| 514 | + form_data_assign_count["j" + (i + 1)] = 0; | |
| 515 | + scope[ctrlAs].fd["j" + (i + 1)].id = j_s_ids[i].j; | |
| 516 | + | |
| 517 | + form_data_assign_count["s" + (i + 1)] = 0; | |
| 518 | + scope[ctrlAs].fd["s" + (i + 1)].id = j_s_ids[i].s; | |
| 519 | + } | |
| 520 | + } | |
| 521 | + } | |
| 522 | + } | |
| 523 | + ); | |
| 524 | + } | |
| 525 | + } | |
| 526 | + } | |
| 527 | + }; | |
| 528 | + } | |
| 529 | + ] | |
| 530 | +); | |
| 0 | 531 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/scheduleApp/module/common/prj-common-directive.js
| ... | ... | @@ -1501,8 +1501,8 @@ angular.module('ScheduleApp').directive('saSelect5', [ |
| 1501 | 1501 | */ |
| 1502 | 1502 | scope[ctrlAs].$$internal_validate_model = function() { |
| 1503 | 1503 | // TODO: |
| 1504 | - console.log(scope[ctrlAs].$$internal_select_value); | |
| 1505 | - console.log(scope[ctrlAs].$$data_real); | |
| 1504 | + //console.log(scope[ctrlAs].$$internal_select_value); | |
| 1505 | + //console.log(scope[ctrlAs].$$data_real); | |
| 1506 | 1506 | |
| 1507 | 1507 | if (scope[ctrlAs].$$internal_select_value) { |
| 1508 | 1508 | var select_value_temp = scope[ctrlAs].$$internal_select_value; |
| ... | ... | @@ -1515,7 +1515,7 @@ angular.module('ScheduleApp').directive('saSelect5', [ |
| 1515 | 1515 | } |
| 1516 | 1516 | } |
| 1517 | 1517 | if (obj) { // 在data中判定有没有 |
| 1518 | - // TODO: | |
| 1518 | + // 初始化的时候,模拟选中uiselect | |
| 1519 | 1519 | scope[ctrlAs].$$internal_select_fn(obj); |
| 1520 | 1520 | |
| 1521 | 1521 | for (var k = 0; k < scope[ctrlAs].$$data.length; k++) { |
| ... | ... | @@ -4771,4 +4771,534 @@ angular.module('ScheduleApp').directive( |
| 4771 | 4771 | }; |
| 4772 | 4772 | } |
| 4773 | 4773 | ] |
| 4774 | +); | |
| 4775 | +/** | |
| 4776 | + * saPlaninfoedit2指令,排班明细编辑控件,用在调度执勤日报的修改功能 | |
| 4777 | + * name(必须),控件的名字 | |
| 4778 | + * ds,外部数据源 | |
| 4779 | + * fd, 表单数据源 | |
| 4780 | + */ | |
| 4781 | +angular.module('ScheduleApp').directive( | |
| 4782 | + 'saPlaninfoedit2', | |
| 4783 | + [ | |
| 4784 | + function() { | |
| 4785 | + return { | |
| 4786 | + restrict: 'E', | |
| 4787 | + templateUrl: '/pages/scheduleApp/module/common/dts2/scheduleplan/saPlaninfoeditTemplate.html', | |
| 4788 | + scope: { // 独立作用域 | |
| 4789 | + ds: '=ngModel', // 时刻明细数据源头 | |
| 4790 | + fd: '=formData' // 表单数据源(车辆、驾驶员、售票员信息) | |
| 4791 | + }, | |
| 4792 | + controllerAs: '$saPlanInfoEditCtrl', | |
| 4793 | + bindToController: true, | |
| 4794 | + controller: function() { | |
| 4795 | + //var self = this; | |
| 4796 | + | |
| 4797 | + }, | |
| 4798 | + | |
| 4799 | + compile: function(tElem, tAttrs) { | |
| 4800 | + // 获取属性 | |
| 4801 | + var $attr_name = tAttrs["name"]; // 控件的名字 | |
| 4802 | + if (!$attr_name) { | |
| 4803 | + throw {msg: "saPlaninfoedit2指令name属性不能为空"}; | |
| 4804 | + } | |
| 4805 | + | |
| 4806 | + // 内部controlAs名字 | |
| 4807 | + var ctrlAs = '$saPlanInfoEditCtrl'; | |
| 4808 | + | |
| 4809 | + | |
| 4810 | + // 内部变量,原始车辆,人员数据 | |
| 4811 | + var old_cl = {}; // key:{车辆id_车辆自编号},value:所在list下标数组 | |
| 4812 | + var old_j = {}; // key:{驾驶员id_姓名_工号}, value:所在list下标数组 | |
| 4813 | + var old_s = {}; // key:{售票员id_姓名_工号}, value:所在list下标数组 | |
| 4814 | + var old_isfb = false; // 是否有分班 | |
| 4815 | + var old_isfb_index = 0; // 分班开始索引 | |
| 4816 | + var old_hasJCBC = false; // 是否有进场班次 | |
| 4817 | + var old_max_fcno = 0; // 最大发车顺序号 | |
| 4818 | + var old_firstJCBCFcno = 0; // 第一个进场班次发车顺序号 | |
| 4819 | + var old_half_bcs = 0; // 一般的班次数量 | |
| 4820 | + | |
| 4821 | + // 内部变量,变更的车辆,变更的人员 | |
| 4822 | + var new_cl1 = undefined; // 新的车辆1(车辆id_车辆自编号) | |
| 4823 | + var new_cl2 = undefined; // 新的车辆2(车辆id_车辆自编号) | |
| 4824 | + var new_j1 = undefined; // 新的驾驶员1(驾驶员id_姓名_工号) | |
| 4825 | + var new_j2 = undefined; // 新的驾驶员2(驾驶员id_姓名_工号) | |
| 4826 | + var new_s1 = undefined; // 新的售票员1(售票员id_姓名_工号) | |
| 4827 | + var new_s2 = undefined; // 新的售票员2(售票员id_姓名_工号) | |
| 4828 | + | |
| 4829 | + | |
| 4830 | + // 表单值,被赋值的次数 | |
| 4831 | + var form_data_assign_count = { | |
| 4832 | + cl1 : 1, | |
| 4833 | + cl2 : 1, | |
| 4834 | + j1 : 1, | |
| 4835 | + j2 : 1, | |
| 4836 | + j3 : 1, | |
| 4837 | + s1 : 1, | |
| 4838 | + s2 : 1, | |
| 4839 | + s3 : 1 | |
| 4840 | + }; | |
| 4841 | + | |
| 4842 | + return { | |
| 4843 | + pre: function(scope, element, attr) { | |
| 4844 | + | |
| 4845 | + }, | |
| 4846 | + post: function(scope, element, attr) { | |
| 4847 | + | |
| 4848 | + /** | |
| 4849 | + * 刷新车辆数据。 | |
| 4850 | + */ | |
| 4851 | + scope[ctrlAs].$$internal_refresh_dsdata_cl = function() { | |
| 4852 | + if (new_cl1) { | |
| 4853 | + var new_cl1_id = new_cl1.split("_")[0]; | |
| 4854 | + var new_cl1_zbh = new_cl1.split("_")[1]; | |
| 4855 | + | |
| 4856 | + if (new_cl2) { | |
| 4857 | + var new_cl2_id = new_cl2.split("_")[0]; | |
| 4858 | + var new_cl2_zbh = new_cl2.split("_")[1]; | |
| 4859 | + | |
| 4860 | + if (old_isfb) { // 使用分班判定 | |
| 4861 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 4862 | + if (index < old_isfb_index) { | |
| 4863 | + obj.cl = new_cl1_id; | |
| 4864 | + obj.clZbh = new_cl1_zbh; | |
| 4865 | + } else { | |
| 4866 | + obj.cl = new_cl2_id; | |
| 4867 | + obj.clZbh = new_cl2_zbh; | |
| 4868 | + } | |
| 4869 | + }); | |
| 4870 | + | |
| 4871 | + } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定 | |
| 4872 | + angular.forEach(scope[ctrlAs].ds, function(obj) { | |
| 4873 | + if (obj.fcno <= old_firstJCBCFcno) { | |
| 4874 | + obj.cl = new_cl1_id; | |
| 4875 | + obj.clZbh = new_cl1_zbh; | |
| 4876 | + } else { | |
| 4877 | + obj.cl = new_cl2_id; | |
| 4878 | + obj.clZbh = new_cl2_zbh; | |
| 4879 | + } | |
| 4880 | + }); | |
| 4881 | + } else { // 使用一半一半班次判定 | |
| 4882 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 4883 | + if (index < old_half_bcs) { | |
| 4884 | + obj.cl = new_cl1_id; | |
| 4885 | + obj.clZbh = new_cl1_zbh; | |
| 4886 | + } else { | |
| 4887 | + obj.cl = new_cl2_id; | |
| 4888 | + obj.clZbh = new_cl2_zbh; | |
| 4889 | + } | |
| 4890 | + }); | |
| 4891 | + } | |
| 4892 | + | |
| 4893 | + } else { | |
| 4894 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 4895 | + obj.cl = new_cl1_id; | |
| 4896 | + obj.clZbh = new_cl1_zbh; | |
| 4897 | + }); | |
| 4898 | + } | |
| 4899 | + | |
| 4900 | + } else { | |
| 4901 | + // 清空,不使用旧的 | |
| 4902 | + angular.forEach(old_cl, function(value, key) { | |
| 4903 | + angular.forEach(value, function(i) { | |
| 4904 | + //scope[ctrlAs].ds[i].cl = key.split("_")[0]; | |
| 4905 | + //scope[ctrlAs].ds[i].clZbh = key.split("_")[1]; | |
| 4906 | + scope[ctrlAs].ds[i].cl = undefined; | |
| 4907 | + scope[ctrlAs].ds[i].clZbh = undefined; | |
| 4908 | + }); | |
| 4909 | + }); | |
| 4910 | + } | |
| 4911 | + }; | |
| 4912 | + | |
| 4913 | + /** | |
| 4914 | + * 刷新驾驶员数据。 | |
| 4915 | + */ | |
| 4916 | + scope[ctrlAs].$$internal_refresh_dsdata_j = function() { | |
| 4917 | + if (new_j1) { | |
| 4918 | + var new_j1_id = new_j1.split("_")[0]; | |
| 4919 | + var new_j1_name = new_j1.split("_")[1]; | |
| 4920 | + var new_j1_gh = new_j1.split("_")[2]; | |
| 4921 | + if (new_j1_gh && new_j1_gh.indexOf("-") > 0) { | |
| 4922 | + new_j1_gh = new_j1_gh.substr(3); // 修正工号,把 55- 这种前缀去掉 | |
| 4923 | + } | |
| 4924 | + | |
| 4925 | + if (new_j2) { | |
| 4926 | + var new_j2_id = new_j2.split("_")[0]; | |
| 4927 | + var new_j2_name = new_j2.split("_")[1]; | |
| 4928 | + var new_j2_gh = new_j2.split("_")[2]; | |
| 4929 | + if (new_j2_gh && new_j2_gh.indexOf("-") > 0) { | |
| 4930 | + new_j2_gh = new_j2_gh.substr(3); // 修正工号,把 55- 这种前缀去掉 | |
| 4931 | + } | |
| 4932 | + | |
| 4933 | + if (old_isfb) { // 使用分班判定 | |
| 4934 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 4935 | + if (index < old_isfb_index) { | |
| 4936 | + obj.j = new_j1_id; | |
| 4937 | + obj.jGh = new_j1_gh; | |
| 4938 | + obj.jName = new_j1_name; | |
| 4939 | + } else { | |
| 4940 | + obj.j = new_j2_id; | |
| 4941 | + obj.jGh = new_j2_gh; | |
| 4942 | + obj.jName = new_j2_name; | |
| 4943 | + } | |
| 4944 | + }); | |
| 4945 | + | |
| 4946 | + } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定 | |
| 4947 | + angular.forEach(scope[ctrlAs].ds, function(obj) { | |
| 4948 | + if (obj.fcno <= old_firstJCBCFcno) { | |
| 4949 | + obj.j = new_j1_id; | |
| 4950 | + obj.jGh = new_j1_gh; | |
| 4951 | + obj.jName = new_j1_name; | |
| 4952 | + } else { | |
| 4953 | + obj.j = new_j2_id; | |
| 4954 | + obj.jGh = new_j2_gh; | |
| 4955 | + obj.jName = new_j2_name; | |
| 4956 | + } | |
| 4957 | + }); | |
| 4958 | + } else { // 使用一半一半班次判定 | |
| 4959 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 4960 | + if (index < old_half_bcs) { | |
| 4961 | + obj.j = new_j1_id; | |
| 4962 | + obj.jGh = new_j1_gh; | |
| 4963 | + obj.jName = new_j1_name; | |
| 4964 | + } else { | |
| 4965 | + obj.j = new_j2_id; | |
| 4966 | + obj.jGh = new_j2_gh; | |
| 4967 | + obj.jName = new_j2_name; | |
| 4968 | + } | |
| 4969 | + }); | |
| 4970 | + } | |
| 4971 | + | |
| 4972 | + } else { | |
| 4973 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 4974 | + obj.j = new_j1_id; | |
| 4975 | + obj.jGh = new_j1_gh; | |
| 4976 | + obj.jName = new_j1_name; | |
| 4977 | + }); | |
| 4978 | + } | |
| 4979 | + | |
| 4980 | + } else { | |
| 4981 | + // 清空,不使用使用旧的 | |
| 4982 | + angular.forEach(old_j, function(value, key) { | |
| 4983 | + angular.forEach(value, function(i) { | |
| 4984 | + //scope[ctrlAs].ds[i].j = key.split("_")[0]; | |
| 4985 | + //scope[ctrlAs].ds[i].jName = key.split("_")[1]; | |
| 4986 | + //scope[ctrlAs].ds[i].jGh = key.split("_")[2]; | |
| 4987 | + scope[ctrlAs].ds[i].j = undefined; | |
| 4988 | + scope[ctrlAs].ds[i].jName = undefined; | |
| 4989 | + scope[ctrlAs].ds[i].jGh = undefined; | |
| 4990 | + }); | |
| 4991 | + }); | |
| 4992 | + } | |
| 4993 | + }; | |
| 4994 | + | |
| 4995 | + /** | |
| 4996 | + * 刷新售票员数据(和驾驶员配对的,有驾驶员,才有售票员)。 | |
| 4997 | + */ | |
| 4998 | + scope[ctrlAs].$$internal_refresh_dsdata_s = function() { | |
| 4999 | + var j_id = undefined; | |
| 5000 | + var s_id = undefined; | |
| 5001 | + var s_gh = undefined; | |
| 5002 | + var s_name = undefined; | |
| 5003 | + | |
| 5004 | + if (new_j1) { | |
| 5005 | + j_id = new_j1.split("_")[0]; | |
| 5006 | + if (new_s1) { | |
| 5007 | + s_id = new_s1.split("_")[0]; | |
| 5008 | + s_name = new_s1.split("_")[1]; | |
| 5009 | + s_gh = new_s1.split("_")[2]; | |
| 5010 | + if (s_gh && s_gh.indexOf("-") > 0) { // 修正工号,把 55- 这种前缀去掉 | |
| 5011 | + s_gh = s_gh.substr(3); | |
| 5012 | + } | |
| 5013 | + } else { | |
| 5014 | + s_id = undefined; | |
| 5015 | + s_gh = undefined; | |
| 5016 | + s_name = undefined | |
| 5017 | + } | |
| 5018 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 5019 | + if (obj.j == j_id) { | |
| 5020 | + obj.s = s_id; | |
| 5021 | + obj.sGh = s_gh; | |
| 5022 | + obj.sName = s_name; | |
| 5023 | + } | |
| 5024 | + }); | |
| 5025 | + } | |
| 5026 | + if (new_j2) { | |
| 5027 | + j_id = new_j2.split("_")[0]; | |
| 5028 | + if (new_s2) { | |
| 5029 | + s_id = new_s2.split("_")[0]; | |
| 5030 | + s_name = new_s2.split("_")[1]; | |
| 5031 | + s_gh = new_s2.split("_")[2]; | |
| 5032 | + if (s_gh && s_gh.indexOf("-") > 0) { // 修正工号,把 55- 这种前缀去掉 | |
| 5033 | + s_gh = s_gh.substr(3); | |
| 5034 | + } | |
| 5035 | + } else { | |
| 5036 | + s_id = undefined; | |
| 5037 | + s_gh = undefined; | |
| 5038 | + s_name = undefined | |
| 5039 | + } | |
| 5040 | + | |
| 5041 | + angular.forEach(scope[ctrlAs].ds, function(obj, index) { | |
| 5042 | + if (obj.j == j_id) { | |
| 5043 | + obj.s = s_id; | |
| 5044 | + obj.sGh = s_gh; | |
| 5045 | + obj.sName = s_name; | |
| 5046 | + } | |
| 5047 | + }); | |
| 5048 | + } | |
| 5049 | + }; | |
| 5050 | + | |
| 5051 | + | |
| 5052 | + //-------------- 监控表单车辆1的变化 ----------------// | |
| 5053 | + scope.$watch( | |
| 5054 | + function() { | |
| 5055 | + return scope[ctrlAs].fd.cl1; | |
| 5056 | + }, | |
| 5057 | + function(newValue, oldValue) { | |
| 5058 | + // 初始化new_cl1 | |
| 5059 | + if (newValue.id) { | |
| 5060 | + if (newValue.id && newValue.zbh) { | |
| 5061 | + new_cl1 = newValue.id + "_" + newValue.zbh; | |
| 5062 | + } else { | |
| 5063 | + new_cl1 = undefined; | |
| 5064 | + } | |
| 5065 | + } else { | |
| 5066 | + new_cl1 = undefined; | |
| 5067 | + } | |
| 5068 | + | |
| 5069 | + scope[ctrlAs].$$internal_refresh_dsdata_cl(); | |
| 5070 | + }, | |
| 5071 | + true | |
| 5072 | + ); | |
| 5073 | + | |
| 5074 | + //-------------- 监控表单车辆2的变化 ----------------// | |
| 5075 | + scope.$watch( | |
| 5076 | + function() { | |
| 5077 | + return scope[ctrlAs].fd.cl2; | |
| 5078 | + }, | |
| 5079 | + function(newValue, oldValue) { | |
| 5080 | + // 初始化new_cl2 | |
| 5081 | + if (newValue.id) { | |
| 5082 | + if (newValue.id && newValue.zbh) { | |
| 5083 | + new_cl2 = newValue.id + "_" + newValue.zbh; | |
| 5084 | + } else { | |
| 5085 | + new_cl2 = undefined; | |
| 5086 | + } | |
| 5087 | + } else { | |
| 5088 | + new_cl2 = undefined; | |
| 5089 | + } | |
| 5090 | + | |
| 5091 | + scope[ctrlAs].$$internal_refresh_dsdata_cl(); | |
| 5092 | + }, | |
| 5093 | + true | |
| 5094 | + ); | |
| 5095 | + | |
| 5096 | + //-------------- 监控表单驾驶员1的变化 ----------------// | |
| 5097 | + scope.$watch( | |
| 5098 | + function() { | |
| 5099 | + return scope[ctrlAs].fd.j1; | |
| 5100 | + }, | |
| 5101 | + function(newValue, oldValue) { | |
| 5102 | + // 初始化j1 | |
| 5103 | + if (newValue.id) { | |
| 5104 | + if (newValue.id && newValue.name && newValue.jobCode) { | |
| 5105 | + new_j1 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode; | |
| 5106 | + } else { | |
| 5107 | + new_j1 = undefined; | |
| 5108 | + } | |
| 5109 | + } else { | |
| 5110 | + new_j1 = undefined; | |
| 5111 | + } | |
| 5112 | + | |
| 5113 | + scope[ctrlAs].$$internal_refresh_dsdata_j(); | |
| 5114 | + scope[ctrlAs].$$internal_refresh_dsdata_s(); | |
| 5115 | + }, | |
| 5116 | + true | |
| 5117 | + ); | |
| 5118 | + | |
| 5119 | + //-------------- 监控表单售票员1的变化 ----------------// | |
| 5120 | + scope.$watch( | |
| 5121 | + function() { | |
| 5122 | + return scope[ctrlAs].fd.s1; | |
| 5123 | + }, | |
| 5124 | + function(newValue, oldValue) { | |
| 5125 | + // 初始化s1 | |
| 5126 | + if (newValue.id) { | |
| 5127 | + if (newValue.id && newValue.name && newValue.jobCode) { | |
| 5128 | + new_s1 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode; | |
| 5129 | + } else { | |
| 5130 | + new_s1 = undefined; | |
| 5131 | + } | |
| 5132 | + } else { | |
| 5133 | + new_s1 = undefined; | |
| 5134 | + } | |
| 5135 | + scope[ctrlAs].$$internal_refresh_dsdata_j(); | |
| 5136 | + scope[ctrlAs].$$internal_refresh_dsdata_s(); | |
| 5137 | + }, | |
| 5138 | + true | |
| 5139 | + ); | |
| 5140 | + | |
| 5141 | + //-------------- 监控表单驾驶员2的变化 ----------------// | |
| 5142 | + scope.$watch( | |
| 5143 | + function() { | |
| 5144 | + return scope[ctrlAs].fd.j2; | |
| 5145 | + }, | |
| 5146 | + function(newValue, oldValue) { | |
| 5147 | + // 初始化j2 | |
| 5148 | + if (newValue.id) { | |
| 5149 | + if (newValue.id && newValue.name && newValue.jobCode) { | |
| 5150 | + new_j2 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode; | |
| 5151 | + } else { | |
| 5152 | + new_j2 = undefined; | |
| 5153 | + } | |
| 5154 | + } else { | |
| 5155 | + new_j2 = undefined; | |
| 5156 | + } | |
| 5157 | + | |
| 5158 | + scope[ctrlAs].$$internal_refresh_dsdata_j(); | |
| 5159 | + scope[ctrlAs].$$internal_refresh_dsdata_s(); | |
| 5160 | + }, | |
| 5161 | + true | |
| 5162 | + ); | |
| 5163 | + | |
| 5164 | + //-------------- 监控表单售票员2的变化 ----------------// | |
| 5165 | + scope.$watch( | |
| 5166 | + function() { | |
| 5167 | + return scope[ctrlAs].fd.s2; | |
| 5168 | + }, | |
| 5169 | + function(newValue, oldValue) { | |
| 5170 | + // 初始化s2 | |
| 5171 | + if (newValue && newValue.id) { | |
| 5172 | + if (newValue.id && newValue.name && newValue.jobCode) { | |
| 5173 | + new_s2 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode; | |
| 5174 | + } else { | |
| 5175 | + new_s2 = undefined; | |
| 5176 | + } | |
| 5177 | + } else { | |
| 5178 | + new_s2 = undefined; | |
| 5179 | + } | |
| 5180 | + | |
| 5181 | + scope[ctrlAs].$$internal_refresh_dsdata_j(); | |
| 5182 | + scope[ctrlAs].$$internal_refresh_dsdata_s(); | |
| 5183 | + }, | |
| 5184 | + true | |
| 5185 | + ); | |
| 5186 | + | |
| 5187 | + //-------------------- 监控ds的变化,更新数据源,初始化formdata的数据 ---------------// | |
| 5188 | + scope.$watch( | |
| 5189 | + function() { | |
| 5190 | + return scope[ctrlAs].ds; | |
| 5191 | + }, | |
| 5192 | + function(newValue, oldValue) { | |
| 5193 | + if (newValue && newValue.length > 0) { | |
| 5194 | + var j1 = newValue[0].j; | |
| 5195 | + | |
| 5196 | + var cl_ids = []; // 车辆ids数组(有顺序) | |
| 5197 | + var j_s_ids = []; // 驾驶员ids,售票员ids,[{j:id,s:id},...](有顺序) | |
| 5198 | + var isRepeat = false; | |
| 5199 | + var i = 0; | |
| 5200 | + | |
| 5201 | + angular.forEach(newValue, function(obj, index) { | |
| 5202 | + var k1 = obj.cl + "_" + obj.clZbh; | |
| 5203 | + var k2 = !obj.j? undefined: obj.j + "_" + obj.jName + "_" + obj.jGh; | |
| 5204 | + var k3 = !obj.s? undefined: obj.s + "_" + obj.sName + "_" + obj.sGh; | |
| 5205 | + | |
| 5206 | + if (!old_cl[k1]) { | |
| 5207 | + old_cl[k1] = []; | |
| 5208 | + } | |
| 5209 | + if (!old_j[k2] && k2) { | |
| 5210 | + old_j[k2] = []; | |
| 5211 | + } | |
| 5212 | + if (!old_s[k3] && k3) { | |
| 5213 | + old_s[k3] = []; | |
| 5214 | + } | |
| 5215 | + | |
| 5216 | + // 闭包 | |
| 5217 | + (function(i) { | |
| 5218 | + old_cl[k1].push(i); | |
| 5219 | + if (k2) { | |
| 5220 | + old_j[k2].push(i); | |
| 5221 | + } | |
| 5222 | + if (k3) { | |
| 5223 | + old_s[k3].push(i); | |
| 5224 | + } | |
| 5225 | + })(index); | |
| 5226 | + | |
| 5227 | + // 判断是否分班 | |
| 5228 | + if (j1 != obj.j && !old_isfb) { | |
| 5229 | + old_isfb = true; | |
| 5230 | + old_isfb_index = index; | |
| 5231 | + } | |
| 5232 | + | |
| 5233 | + // 判断进出场 | |
| 5234 | + if (obj.bcType == 'in' && !old_hasJCBC) { | |
| 5235 | + old_hasJCBC = true; | |
| 5236 | + old_firstJCBCFcno = obj.fcno; | |
| 5237 | + } | |
| 5238 | + | |
| 5239 | + //-------------- formdata用数据处理 -------------// | |
| 5240 | + // 车辆处理 | |
| 5241 | + isRepeat = false; | |
| 5242 | + if (obj.cl) { | |
| 5243 | + for (i = 0; i < cl_ids.length; i++) { | |
| 5244 | + if (cl_ids[i] == obj.cl) { | |
| 5245 | + isRepeat = true; | |
| 5246 | + break; | |
| 5247 | + } | |
| 5248 | + } | |
| 5249 | + if (!isRepeat) { | |
| 5250 | + cl_ids.push(obj.cl); | |
| 5251 | + } | |
| 5252 | + } | |
| 5253 | + | |
| 5254 | + // 人员处理(以驾驶员id为主,没有的话,售票员不管了) | |
| 5255 | + isRepeat = false; | |
| 5256 | + if (obj.j) { | |
| 5257 | + for (i = 0; i < j_s_ids.length; i++) { | |
| 5258 | + if (j_s_ids[i].j == obj.j) { | |
| 5259 | + isRepeat = true; | |
| 5260 | + break; | |
| 5261 | + } | |
| 5262 | + } | |
| 5263 | + if (!isRepeat) { | |
| 5264 | + j_s_ids.push({ | |
| 5265 | + j: obj.j, | |
| 5266 | + s: !obj.s? undefined: obj.s | |
| 5267 | + }); | |
| 5268 | + } | |
| 5269 | + } | |
| 5270 | + }); | |
| 5271 | + | |
| 5272 | + old_max_fcno = newValue[newValue.length - 1].fcno; | |
| 5273 | + old_half_bcs = newValue.length / 2; | |
| 5274 | + | |
| 5275 | + // 更新formdata | |
| 5276 | + for (i = 0; i < cl_ids.length; i++) { // 车辆更新前两辆 | |
| 5277 | + if (i >= 2) { | |
| 5278 | + break; | |
| 5279 | + } else { | |
| 5280 | + form_data_assign_count["cl" + (i + 1)] = 0; | |
| 5281 | + scope[ctrlAs].fd["cl" + (i + 1)].id = cl_ids[i]; | |
| 5282 | + } | |
| 5283 | + } | |
| 5284 | + for (i = 0; i < j_s_ids.length; i++) { // 人员更新 | |
| 5285 | + if (i >= 3) { | |
| 5286 | + break; | |
| 5287 | + } else { | |
| 5288 | + form_data_assign_count["j" + (i + 1)] = 0; | |
| 5289 | + scope[ctrlAs].fd["j" + (i + 1)].id = j_s_ids[i].j; | |
| 5290 | + | |
| 5291 | + form_data_assign_count["s" + (i + 1)] = 0; | |
| 5292 | + scope[ctrlAs].fd["s" + (i + 1)].id = j_s_ids[i].s; | |
| 5293 | + } | |
| 5294 | + } | |
| 5295 | + } | |
| 5296 | + } | |
| 5297 | + ); | |
| 5298 | + } | |
| 5299 | + } | |
| 5300 | + } | |
| 5301 | + }; | |
| 5302 | + } | |
| 5303 | + ] | |
| 4774 | 5304 | ); |
| 4775 | 5305 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/report/ext/edit.html
| ... | ... | @@ -59,14 +59,14 @@ |
| 59 | 59 | iterobjexp="item.insideCode" |
| 60 | 60 | searchph="请输拼音..." |
| 61 | 61 | searchexp="this.insideCode" |
| 62 | - <!--required --> | |
| 62 | + required | |
| 63 | 63 | > |
| 64 | 64 | </sa-Select5> |
| 65 | 65 | </div> |
| 66 | - <!--<!– 隐藏块,显示验证信息 –>--> | |
| 67 | - <!--<div class="alert alert-danger well-sm" ng-show="myForm.cl1.$error.required">--> | |
| 68 | - <!--车辆1必须选择--> | |
| 69 | - <!--</div>--> | |
| 66 | + <!-- 隐藏块,显示验证信息 --> | |
| 67 | + <div class="alert alert-danger well-sm" ng-show="myForm.cl1.$error.required"> | |
| 68 | + 车辆1必须选择 | |
| 69 | + </div> | |
| 70 | 70 | </div> |
| 71 | 71 | <div class="form-group has-success has-feedback"> |
| 72 | 72 | <label class="col-md-5 control-label">车辆2:</label> |
| ... | ... | @@ -99,14 +99,14 @@ |
| 99 | 99 | iterobjexp="item.personnelName + '(' + item.jobCode + ')'" |
| 100 | 100 | searchph="请输拼音..." |
| 101 | 101 | searchexp="this.personnelName" |
| 102 | - <!--required --> | |
| 102 | + required | |
| 103 | 103 | > |
| 104 | 104 | </sa-Select5> |
| 105 | 105 | </div> |
| 106 | - <!--<!– 隐藏块,显示验证信息 –>--> | |
| 107 | - <!--<div class="alert alert-danger well-sm" ng-show="myForm.j1.$error.required">--> | |
| 108 | - <!--驾驶员必须选择--> | |
| 109 | - <!--</div>--> | |
| 106 | + <!-- 隐藏块,显示验证信息 --> | |
| 107 | + <div class="alert alert-danger well-sm" ng-show="myForm.j1.$error.required"> | |
| 108 | + 驾驶员必须选择 | |
| 109 | + </div> | |
| 110 | 110 | </div> |
| 111 | 111 | |
| 112 | 112 | <div class="form-group has-success has-feedback"> |
| ... | ... | @@ -204,18 +204,26 @@ |
| 204 | 204 | <div class="form-group has-success has-feedback"> |
| 205 | 205 | <label class="col-md-2 control-label">排班明细:</label> |
| 206 | 206 | <div class="col-md-10"> |
| 207 | - <sa-Planinfoedit name="spi" | |
| 208 | - ng-model="ctrl.formData.planInfos" | |
| 209 | - ng-model-options="{ getterSetter: true }" | |
| 210 | - cl1="{{ctrl.formData.cl1}}" | |
| 211 | - cl2="{{ctrl.formData.cl2}}" | |
| 212 | - j1="{{ctrl.formData.j1}}" | |
| 213 | - j2="{{ctrl.formData.j2}}" | |
| 214 | - s1="{{ctrl.formData.s1}}" | |
| 215 | - s2="{{ctrl.formData.s2}}" | |
| 207 | + <!--<sa-Planinfoedit name="spi"--> | |
| 208 | + <!--ng-model="ctrl.planInfos"--> | |
| 209 | + <!--ng-model-options="{ getterSetter: true }"--> | |
| 210 | + <!--cl1="{{ctrl.formData.cl1}}"--> | |
| 211 | + <!--cl2="{{ctrl.formData.cl2}}"--> | |
| 212 | + <!--j1="{{ctrl.formData.j1}}"--> | |
| 213 | + <!--j2="{{ctrl.formData.j2}}"--> | |
| 214 | + <!--s1="{{ctrl.formData.s1}}"--> | |
| 215 | + <!--s2="{{ctrl.formData.s2}}"--> | |
| 216 | + <!--> | |
| 217 | + | |
| 218 | + <!--</sa-Planinfoedit>--> | |
| 219 | + | |
| 220 | + <sa-Planinfoedit2 name="spi" | |
| 221 | + ng-model="ctrl.planInfos" | |
| 222 | + ng-model-options="{ getterSetter: true }" | |
| 223 | + form-data="ctrl.formData" | |
| 216 | 224 | > |
| 217 | 225 | |
| 218 | - </sa-Planinfoedit> | |
| 226 | + </sa-Planinfoedit2> | |
| 219 | 227 | </div> |
| 220 | 228 | </div> |
| 221 | 229 | </div> | ... | ... |
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/report/ext/module.js
| ... | ... | @@ -264,7 +264,7 @@ angular.module('ScheduleApp').controller( |
| 264 | 264 | self.formData.j3 = {}; // 驾驶员3 |
| 265 | 265 | self.formData.s3 = {}; // 售票员3 |
| 266 | 266 | |
| 267 | - self.formData.planInfos = undefined; // 排班明细 | |
| 267 | + self.planInfos = undefined; // 排班明细 | |
| 268 | 268 | |
| 269 | 269 | var sdd = new Date(); |
| 270 | 270 | sdd.setTime(self.sd); |
| ... | ... | @@ -277,12 +277,12 @@ angular.module('ScheduleApp').controller( |
| 277 | 277 | |
| 278 | 278 | // 获取排班明细数据 |
| 279 | 279 | SPlanInfo.list(params, function(rst) { |
| 280 | - self.formData.planInfos = rst.content; | |
| 280 | + self.planInfos = rst.content; | |
| 281 | 281 | }); |
| 282 | 282 | |
| 283 | 283 | // 提交方法 |
| 284 | 284 | self.submit = function() { |
| 285 | - service.batchUpdatePlanInfo(self.formData.planInfos).then( | |
| 285 | + service.batchUpdatePlanInfo(self.planInfos).then( | |
| 286 | 286 | function() { |
| 287 | 287 | $state.go("schedulePlanReportExtManage"); |
| 288 | 288 | }, | ... | ... |