Commit 77217ea7fd1a095c29a99146e2e769d908232f4e

Authored by liujun001
2 parents 59dcfaa9 f7f6dfda

Merge remote-tracking branch 'origin/pudong_jdk8_wvp' into pudong_jdk8_wvp

Showing 24 changed files with 3466 additions and 2944 deletions
src/main/resources/static/pages/scheduleApp/language/en.js
@@ -2,10 +2,52 @@ @@ -2,10 +2,52 @@
2 // 英文资源 2 // 英文资源
3 3
4 var ScheduleApp_en_language = { 4 var ScheduleApp_en_language = {
  5 + // main.js
  6 + "main_js_line_82_txt-3966" : "Operation",
  7 + "main_js_line_83_txt-3958" : "Lack of vehicles",
  8 + "main_js_line_84_txt-3960" : "Climate",
  9 + "main_js_line_85_txt-3837" : "Accident",
  10 + "main_js_line_86_txt-3838" : "Dispute",
  11 + "main_js_line_87_txt-3876" : "Reduction",
  12 + "main_js_line_88_txt-4026" : "Vehicle allocation",
  13 + "main_js_line_89_txt-3840" : "Fault",
  14 + "main_js_line_90_txt-3961" : "Road obstruction",
  15 + "main_js_line_91_txt-3962" : "Few passengers",
  16 + "main_js_line_92_txt-3963" : "Slow hanging",
  17 + "main_js_line_93_txt-4197" : "Other",
  18 + "main_js_line_94_txt-4102" : "Maintenance",
  19 + "main_js_line_95_txt-3957" : "Lack of manpower",
  20 + "main_js_line_96_txt-3956" : "Foreign aid",
  21 + "main_js_line_99_txt-2790" : "Current version",
  22 + "main_js_line_100_txt-168" : "All Versions (To be Updated, Current, Historical)",
  23 + "main_js_line_301_txt-1805" : "Please Log in Again!",
  24 + "main_js_line_304_txt-2284" : "Status Code:",
  25 + "main_js_line_305_txt-2285" : "Access Path:",
  26 + "main_js_line_306_txt-2286" : "Error Message:",
  27 + "main_js_line_307_txt-1807" : "Server Error:",
  28 + "main_js_line_325_txt-695" : "It seems that the server cannot connect",
  29 + "main_js_line_327_txt-2284" : "Status Code:",
  30 + "main_js_line_330_txt-2325" : "Error Content:",
  31 + "main_js_line_332_txt-2325" : "Error Content:",
  32 + "main_js_line_336_txt-1807" : "Server Error:",
  33 + "main_js_line_338_txt-1838" : "Please Log in Again:",
  34 + "main_js_line_340_txt-2333" : "Other Errors:",
  35 + "main_js_line_383_txt-1149" : "Subpages Loaded:",
  36 +
  37 + //------------ 自定义指令 --------------//
  38 + // 指令位置:../module/common/dts2/queryOption
  39 + // 页面:saOrderOptionTemplate.html
  40 + "queryOption_saOrderOptionTemplate_line93_txt-4157" : "Ascending order",
  41 + "queryOption_saOrderOptionTemplate_line94_txt-4156" : "Descending order",
  42 +
  43 + // 指令位置:../module/common/dts1/select
  44 + // js:saSelect5.js
  45 + "saSelect5_js_line375_txt-1275" : "Dictionary data is not available=",
  46 +
5 //------------ 车辆信息管理模块 -----------// 47 //------------ 车辆信息管理模块 -----------//
6 // 模块位置:../module/basicInfo/busInfoManage 48 // 模块位置:../module/basicInfo/busInfoManage
7 - // 页面;index.html  
8 49
  50 + // 页面;index.html
9 // line3 51 // line3
10 "busInfoManage_index_page-title" : "vehicle information management", 52 "busInfoManage_index_page-title" : "vehicle information management",
11 // line9 53 // line9
@@ -57,11 +99,11 @@ var ScheduleApp_en_language = { @@ -57,11 +99,11 @@ var ScheduleApp_en_language = {
57 "busInfoManage_list_page_line142_txt-4257" : "Yes", 99 "busInfoManage_list_page_line142_txt-4257" : "Yes",
58 "busInfoManage_list_page_line142_txt-3817" : "Cancel", 100 "busInfoManage_list_page_line142_txt-3817" : "Cancel",
59 "busInfoManage_list_page_line144_txt-3868" : "Delete", 101 "busInfoManage_list_page_line144_txt-3868" : "Delete",
60 - "busInfoManage_list_page_line153_txt-3053" : "Showing {{from}} to {{to}} of {{total}}entries.10 entries per page",  
61 - "busInfoManage_list_page_line163_txt-4430" : "First",  
62 - "busInfoManage_list_page_line164_txt-3613" : "Previous",  
63 - "busInfoManage_list_page_line165_txt-3614" : "Next",  
64 - "busInfoManage_list_page_line166_txt-4068" : "Last", 102 + "busInfoManage_list_page_line156_txt-3053" : "Showing {{from}} to {{to}} of {{total}}entries.10 entries per page",
  103 + "busInfoManage_list_page_line169_txt-4430" : "First",
  104 + "busInfoManage_list_page_line170_txt-3613" : "Previous",
  105 + "busInfoManage_list_page_line171_txt-3614" : "Next",
  106 + "busInfoManage_list_page_line172_txt-4068" : "Last",
65 107
66 // 页面:detail.html 108 // 页面:detail.html
67 "busInfoManage_detail_page_line3_txt-1656" : "vehicle details", 109 "busInfoManage_detail_page_line3_txt-1656" : "vehicle details",
@@ -287,8 +329,273 @@ var ScheduleApp_en_language = { @@ -287,8 +329,273 @@ var ScheduleApp_en_language = {
287 "busInfoManage_module_js_line434_txt-4009" : "Vehicles", 329 "busInfoManage_module_js_line434_txt-4009" : "Vehicles",
288 "busInfoManage_module_js_line434_txt-3066" : "Details", 330 "busInfoManage_module_js_line434_txt-3066" : "Details",
289 331
  332 + //------------ 人员信息管理模块 -----------//
  333 + // 模块位置:../module/basicInfo/employeeInfoManage
  334 + // 页面;index.html
  335 + "employeeInfoManage_index_page_line3_txt-1658" : "Personnel information management",
  336 + "employeeInfoManage_index_page_line9_txt-3807" : "Home page",
  337 + "employeeInfoManage_index_page_line13_txt-2398" : "Basic information",
  338 + "employeeInfoManage_index_page_line17_txt-1658" : "Personnel information management",
  339 + "employeeInfoManage_index_page_line36_txt-2234" : "Personnel information table",
  340 + "employeeInfoManage_index_page_line41_txt-1648" : "Add personnel information",
  341 + "employeeInfoManage_index_page_line47_txt-3339" : "Data tool",
  342 + "employeeInfoManage_index_page_line54_txt-4493" : "Export to excel",
  343 +
  344 + // 页面:orderOptionOpen.html
  345 + "employeeInfoManage_orderOptionOpen_page_line5_txt-1682" : "Sort field selection",
  346 + "employeeInfoManage_orderOptionOpen_page_line17_txt-4018" : "Yes",
  347 +
  348 + // 页面:list.html
  349 + "employeeInfoManage_list_page_line7_txt-3934" : "Serial number",
  350 + "employeeInfoManage_list_page_line8_txt-3949" : "Name",
  351 + "employeeInfoManage_list_page_line9_txt-3955" : "No.",
  352 + "employeeInfoManage_list_page_line10_txt-3940" : "Employee number",
  353 + "employeeInfoManage_list_page_line11_txt-3095" : "Kingdee employee number",
  354 + "employeeInfoManage_list_page_line12_txt-4086" : "Gender",
  355 + "employeeInfoManage_list_page_line13_txt-3096" : "Company",
  356 + "employeeInfoManage_list_page_line14_txt-3777" : "Branch company",
  357 + "employeeInfoManage_list_page_line15_txt-4093" : "Occupation type",
  358 + "employeeInfoManage_list_page_line16_txt-4085" : "Deactivate",
  359 + "employeeInfoManage_list_page_line17_txt-3942" : "Operation",
  360 + "employeeInfoManage_list_page_line23_txt-3231" : "Enter name",
  361 + "employeeInfoManage_list_page_line26_txt-3233" : "Enter number",
  362 + "employeeInfoManage_list_page_line29_txt-3232" : "Enter employee number",
  363 + "employeeInfoManage_list_page_line32_txt-3232" : "Enter employee number",
  364 + "employeeInfoManage_list_page_line45_txt-3364" : "Please enter pinyin",
  365 + "employeeInfoManage_list_page_line60_txt-3364" : "Please enter pinyin",
  366 + "employeeInfoManage_list_page_line75_txt-3364" : "Please enter pinyin",
  367 + "employeeInfoManage_list_page_line82_txt-4085" : "Deactivate",
  368 + "employeeInfoManage_list_page_line89_txt-4001" : "Search",
  369 + "employeeInfoManage_list_page_line99_txt-3385" : "Sorting options",
  370 + "employeeInfoManage_list_page_line107_txt-4000" : "Reset",
  371 + "employeeInfoManage_list_page_line120_txt-4426" : "Name/Job-code:",
  372 + "employeeInfoManage_list_page_line142_txt-4058" : "Unknown",
  373 + "employeeInfoManage_list_page_line163_txt-4058" : "Unknown",
  374 + "employeeInfoManage_list_page_line171_txt-3866" : "Details",
  375 + "employeeInfoManage_list_page_line172_txt-4028" : "Modify",
  376 + "employeeInfoManage_list_page_line174_txt-675" : "Do you want to delete personnel information?",
  377 + "employeeInfoManage_list_page_line175_txt-3719" : "Name:",
  378 + "employeeInfoManage_list_page_line175_txt-3761" : "Employee number:",
  379 + "employeeInfoManage_list_page_line175_txt-40" : "If there is personnel configuration information associated, an error will be reported. It is recommended not to delete it casually!",
  380 + "employeeInfoManage_list_page_line177_txt-4257" : "Yes",
  381 + "employeeInfoManage_list_page_line178_txt-3817" : "Cancel",
  382 + "employeeInfoManage_list_page_line180_txt-3868" : "Delete",
  383 + "employeeInfoManage_list_page_line189_txt-3053" : "Showing {{from}} to {{to}} of {{total}}entries.10 entries per page",
  384 + "employeeInfoManage_list_page_line202_txt-4430" : "First",
  385 + "employeeInfoManage_list_page_line203_txt-3613" : "Previous",
  386 + "employeeInfoManage_list_page_line204_txt-3614" : "Next",
  387 + "employeeInfoManage_list_page_line205_txt-4068" : "Last",
  388 +
  389 + // 页面:detail.html
  390 + "employeeInfoManage_detail_page_line3_txt-1650" : "Personnel details",
  391 + "employeeInfoManage_detail_page_line9_txt-3807" : "Home page",
  392 + "employeeInfoManage_detail_page_line13_txt-2398" : "Basic information",
  393 + "employeeInfoManage_detail_page_line17_txt-1658" : "Personnel information management",
  394 + "employeeInfoManage_detail_page_line21_txt-1650" : "Personnel details",
  395 + "employeeInfoManage_detail_page_line38_txt-2686" : "Company",
  396 + "employeeInfoManage_detail_page_line45_txt-1765" : "Affiliated branch:",
  397 + "employeeInfoManage_detail_page_line52_txt-3955" : "No.",
  398 + "employeeInfoManage_detail_page_line59_txt-3949" : "Name",
  399 + "employeeInfoManage_detail_page_line66_txt-902" : "Operation service certificate number:",
  400 + "employeeInfoManage_detail_page_line73_txt-903" : "One-card work card number:",
  401 + "employeeInfoManage_detail_page_line80_txt-3698" : "Gender:",
  402 + "employeeInfoManage_detail_page_line86_txt-3703" : "Occupation type:",
  403 + "employeeInfoManage_detail_page_line89_txt-4058" : "Unknown",
  404 +
  405 + // 页面:edit.html
  406 + "employeeInfoManage_edit_page_line3_txt-1643" : "Modify personnel information",
  407 + "employeeInfoManage_edit_page_line9_txt-3807" : "Home page",
  408 + "employeeInfoManage_edit_page_line13_txt-2398" : "Basic information",
  409 + "employeeInfoManage_edit_page_line17_txt-1658" : "Personnel information management",
  410 + "employeeInfoManage_edit_page_line21_txt-1643" : "Modify personnel information",
  411 + "employeeInfoManage_edit_page_line29_txt-3849" : "Form",
  412 + "employeeInfoManage_edit_page_line37_txt-2686" : "Company",
  413 + "employeeInfoManage_edit_page_line47_txt-973" : "Please select the company",
  414 + "employeeInfoManage_edit_page_line55_txt-1792" : "Company must be selected",
  415 + "employeeInfoManage_edit_page_line60_txt-3777" : "Branch company",
  416 + "employeeInfoManage_edit_page_line70_txt-973" : "Please select the branch",
  417 + "employeeInfoManage_edit_page_line79_txt-923" : "Branch must also be selected",
  418 + "employeeInfoManage_edit_page_line84_txt-3940" : "Employee number",
  419 + "employeeInfoManage_edit_page_line88_txt-2346" : "Please enter employee number",
  420 + "employeeInfoManage_edit_page_line95_txt-1793" : "Employee number must be filled in",
  421 + "employeeInfoManage_edit_page_line103_txt-3949" : "Name",
  422 + "employeeInfoManage_edit_page_line107_txt-2345" : "Please enter name",
  423 + "employeeInfoManage_edit_page_line111_txt-1787" : "Name must be filled in",
  424 + "employeeInfoManage_edit_page_line116_txt-902" : "Operation service certificate number:",
  425 + "employeeInfoManage_edit_page_line119_txt-516" : "Please enter the operation service certificate number",
  426 + "employeeInfoManage_edit_page_line124_txt-2244" : "One-card number:",
  427 + "employeeInfoManage_edit_page_line127_txt-517" : "Please enter your work card number",
  428 + "employeeInfoManage_edit_page_line132_txt-3698" : "Gender:",
  429 + "employeeInfoManage_edit_page_line139_txt-3703" : "Occupation type:",
  430 + "employeeInfoManage_edit_page_line149_txt-3364" : "Please enter pinyin",
  431 + "employeeInfoManage_edit_page_line157_txt-3449" : "Remarks:",
  432 + "employeeInfoManage_edit_page_line174_txt-4173" : "Submit",
  433 + "employeeInfoManage_edit_page_line175_txt-3817" : "Cancel",
  434 +
  435 + // 页面:form.html
  436 + "employeeInfoManage_form_page_line3_txt-1648" : "Add personnel information",
  437 + "employeeInfoManage_form_page_line9_txt-3807" : "Home page",
  438 + "employeeInfoManage_form_page_line13_txt-2398" : "Basic information",
  439 + "employeeInfoManage_form_page_line17_txt-1658" : "Personnel information management",
  440 + "employeeInfoManage_form_page_line21_txt-1648" : "Add personnel information",
  441 + "employeeInfoManage_form_page_line29_txt-3849" : "Form",
  442 + "employeeInfoManage_form_page_line37_txt-2686" : "Company",
  443 + "employeeInfoManage_form_page_line47_txt-973" : "Please select the company",
  444 + "employeeInfoManage_form_page_line55_txt-1792" : "Company must be selected",
  445 + "employeeInfoManage_form_page_line60_txt-3777" : "Branch company",
  446 + "employeeInfoManage_form_page_line70_txt-973" : "Please select the branch",
  447 + "employeeInfoManage_form_page_line79_txt-923" : "Branch must also be selected",
  448 + "employeeInfoManage_form_page_line84_txt-3940" : "Employee number",
  449 + "employeeInfoManage_form_page_line88_txt-2346" : "Please enter employee number",
  450 + "employeeInfoManage_form_page_line95_txt-1793" : "Employee number must be filled in",
  451 + "employeeInfoManage_form_page_line103_txt-3949" : "Name",
  452 + "employeeInfoManage_form_page_line107_txt-2345" : "Please enter name",
  453 + "employeeInfoManage_form_page_line111_txt-1787" : "Name must be filled in",
  454 + "employeeInfoManage_form_page_line116_txt-902" : "Operation service certificate number:",
  455 + "employeeInfoManage_form_page_line119_txt-516" : "Please enter the operation service certificate number",
  456 + "employeeInfoManage_form_page_line124_txt-2244" : "One-card number:",
  457 + "employeeInfoManage_form_page_line127_txt-517" : "Please enter your work card number",
  458 + "employeeInfoManage_form_page_line132_txt-3698" : "Gender:",
  459 + "employeeInfoManage_form_page_line139_txt-3703" : "Occupation type:",
  460 + "employeeInfoManage_form_page_line149_txt-3364" : "Please enter pinyin",
  461 + "employeeInfoManage_form_page_line157_txt-3449" : "Remarks:",
  462 + "employeeInfoManage_form_page_line174_txt-4173" : "Submit",
  463 + "employeeInfoManage_form_page_line175_txt-3817" : "Cancel",
  464 +
  465 + // module.js
  466 + "employeeInfoManage_module_js_line33_txt-3949" : "Name",
  467 + "employeeInfoManage_module_js_line34_txt-3940" : "Worker number",
  468 + "employeeInfoManage_module_js_line35_txt-4086" : "Gender",
  469 + "employeeInfoManage_module_js_line36_txt-3096" : "Company",
  470 + "employeeInfoManage_module_js_line37_txt-3777" : "Branch company",
  471 + "employeeInfoManage_module_js_line38_txt-4093" : "Occupation type",
  472 + "employeeInfoManage_module_js_line182_txt-1614" : "Basic information of personnel",
  473 + "employeeInfoManage_module_js_line286_txt-3729" : "Failed:",
  474 + "employeeInfoManage_module_js_line411_txt-4081" : "Employee",
  475 + "employeeInfoManage_module_js_line413_txt-3066" : "Details",
  476 +
  477 + //------------ 车辆设备信息管理模块 -----------//
  478 + // 模块位置:../module/basicInfo/deviceInfoManage
  479 + // 页面;index.html
  480 + "deviceInfoManage_index_page_line3_txt-848" : "Vehicle equipment information management",
  481 + "deviceInfoManage_index_page_line9_txt-3807" : "Home page",
  482 + "deviceInfoManage_index_page_line13_txt-2398" : "Basic information",
  483 + "deviceInfoManage_index_page_line17_txt-848" : "Vehicle equipment information management",
  484 + "deviceInfoManage_index_page_line27_txt-2233" : "Equipment information table",
  485 + "deviceInfoManage_index_page_line32_txt-1791" : "Add equipment information",
  486 +
  487 + // 页面:orderOptionOpen.html
  488 + "deviceInfoManage_orderOptionOpen_page_line5_txt-1682" : "Sort field selection",
  489 + "deviceInfoManage_orderOptionOpen_page_line17_txt-4018" : "Yes",
  490 +
  491 + // 页面:list.html
  492 + "deviceInfoManage_list_page_line17_txt-3934" : "Serial number",
  493 + "deviceInfoManage_list_page_line18_txt-3347" : "Route name",
  494 + "deviceInfoManage_list_page_line19_txt-2597" : "Internal number",
  495 + "deviceInfoManage_list_page_line20_txt-3211" : "Activation date",
  496 + "deviceInfoManage_list_page_line21_txt-2185" : "Old equipment number",
  497 + "deviceInfoManage_list_page_line22_txt-2184" : "New equipment number",
  498 + "deviceInfoManage_list_page_line23_txt-4389" : "Operator/Operation time",
  499 + "deviceInfoManage_list_page_line24_txt-3874" : "Status",
  500 + "deviceInfoManage_list_page_line25_txt-3942" : "Operation",
  501 + "deviceInfoManage_list_page_line38_txt-3364" : "Please enter pinyin",
  502 + "deviceInfoManage_list_page_line44_txt-1773" : "Enter internal number",
  503 + "deviceInfoManage_list_page_line52_txt-4162" : "Scrapped",
  504 + "deviceInfoManage_list_page_line59_txt-4001" : "Search",
  505 + "deviceInfoManage_list_page_line69_txt-3385" : "Sorting options",
  506 + "deviceInfoManage_list_page_line77_txt-4000" : "Reset",
  507 + "deviceInfoManage_list_page_line122_txt-4058" : "Unknown",
  508 + "deviceInfoManage_list_page_line127_txt-3866" : "Details",
  509 + "deviceInfoManage_list_page_line144_txt-3053" : "Showing {{from}} to {{to}} of {{total}}entries.10 entries per page",
  510 + "deviceInfoManage_list_page_line157_txt-4430" : "First",
  511 + "deviceInfoManage_list_page_line158_txt-3613" : "Previous",
  512 + "deviceInfoManage_list_page_line159_txt-3614" : "Next",
  513 + "deviceInfoManage_list_page_line160_txt-4068" : "Last",
  514 +
  515 + // 页面:detail.html
  516 + "deviceInfoManage_detail_page_line3_txt-847" : "Vehicle equipment details",
  517 + "deviceInfoManage_detail_page_line9_txt-3807" : "Home page",
  518 + "deviceInfoManage_detail_page_line13_txt-2398" : "Basic information",
  519 + "deviceInfoManage_detail_page_line17_txt-848" : "Vehicle equipment information management",
  520 + "deviceInfoManage_detail_page_line21_txt-847" : "Vehicle equipment details",
  521 + "deviceInfoManage_detail_page_line38_txt-1476" : "Vehicle internal number",
  522 + "deviceInfoManage_detail_page_line45_txt-3347" : "Route name",
  523 + "deviceInfoManage_detail_page_line52_txt-3216" : "Old terminal number",
  524 + "deviceInfoManage_detail_page_line59_txt-3201" : "New terminal number",
  525 + "deviceInfoManage_detail_page_line67_txt-4422" : "Old SIM card number:",
  526 + "deviceInfoManage_detail_page_line74_txt-3701" : "New SIM card number:",
  527 + "deviceInfoManage_detail_page_line82_txt-2258" : "Fault description:",
  528 + "deviceInfoManage_detail_page_line90_txt-4403" : "Description:",
  529 + "deviceInfoManage_detail_page_line98_txt-3211" : "Activation date",
  530 +
  531 + // 页面:edit.html
  532 + "deviceInfoManage_edit_page_line3_txt-836" : "Modify vehicle equipment information",
  533 + "deviceInfoManage_edit_page_line9_txt-3807" : "Home page",
  534 + "deviceInfoManage_edit_page_line13_txt-2398" : "Basic information",
  535 + "deviceInfoManage_edit_page_line17_txt-848" : "Vehicle equipment information management",
  536 + "deviceInfoManage_edit_page_line21_txt-836" : "Modify vehicle equipment information",
  537 + "deviceInfoManage_edit_page_line29_txt-3849" : "Form",
  538 + "deviceInfoManage_edit_page_line38_txt-3347" : "Route name",
  539 + "deviceInfoManage_edit_page_line48_txt-3364" : "Please enter pinyin",
  540 + "deviceInfoManage_edit_page_line55_txt-1788" : "Line must be selected",
  541 + "deviceInfoManage_edit_page_line60_txt-3469" : "Vehicle:",
  542 + "deviceInfoManage_edit_page_line71_txt-3364" : "Please enter pinyin",
  543 + "deviceInfoManage_edit_page_line78_txt-1794" : "Vehicle must be selected",
  544 + "deviceInfoManage_edit_page_line83_txt-3216" : "Old terminal number",
  545 + "deviceInfoManage_edit_page_line91_txt-3201" : "New terminal number",
  546 + "deviceInfoManage_edit_page_line98_txt-1264" : "Please enter the new terminal number",
  547 + "deviceInfoManage_edit_page_line102_txt-910" : "The new terminal number must be filled in",
  548 + "deviceInfoManage_edit_page_line110_txt-4422" : "Old SIM card number:",
  549 + "deviceInfoManage_edit_page_line113_txt-3357" : "Please enter your old SIM card number",
  550 + "deviceInfoManage_edit_page_line118_txt-3701" : "New SIM card number:",
  551 + "deviceInfoManage_edit_page_line121_txt-3356" : "Please enter the new SIM card number",
  552 + "deviceInfoManage_edit_page_line126_txt-2258" : "Fault description:",
  553 + "deviceInfoManage_edit_page_line134_txt-4403" : "Description:",
  554 + "deviceInfoManage_edit_page_line170_txt-2252" : "Activation date:",
  555 + "deviceInfoManage_edit_page_line183_txt-146" : "Activation date must be selected, accurate to the specific time",
  556 + "deviceInfoManage_edit_page_line197_txt-4173" : "Submit",
  557 + "deviceInfoManage_edit_page_line198_txt-3817" : "Cancel",
  558 +
  559 + // 页面:form.html
  560 + "deviceInfoManage_form_page_line3_txt-845" : "Add vehicle equipment information",
  561 + "deviceInfoManage_form_page_line9_txt-3807" : "Home page",
  562 + "deviceInfoManage_form_page_line13_txt-2398" : "Basic information",
  563 + "deviceInfoManage_form_page_line17_txt-848" : "Vehicle equipment information management",
  564 + "deviceInfoManage_form_page_line21_txt-845" : "Add vehicle equipment information",
  565 + "deviceInfoManage_form_page_line29_txt-3849" : "Form",
  566 + "deviceInfoManage_form_page_line38_txt-3347" : "Route name",
  567 + "deviceInfoManage_form_page_line48_txt-3364" : "Please enter pinyin",
  568 + "deviceInfoManage_form_page_line55_txt-1788" : "Line must be selected",
  569 + "deviceInfoManage_form_page_line60_txt-3469" : "Vehicle:",
  570 + "deviceInfoManage_form_page_line71_txt-3364" : "Please enter pinyin",
  571 + "deviceInfoManage_form_page_line78_txt-1794" : "Vehicle must be selected",
  572 + "deviceInfoManage_form_page_line83_txt-3216" : "Old terminal number",
  573 + "deviceInfoManage_form_page_line91_txt-3201" : "New terminal number",
  574 + "deviceInfoManage_form_page_line98_txt-1264" : "Please enter the new terminal number",
  575 + "deviceInfoManage_form_page_line102_txt-910" : "The new terminal number must be filled in",
  576 + "deviceInfoManage_form_page_line110_txt-4422" : "Old SIM card number:",
  577 + "deviceInfoManage_form_page_line113_txt-3357" : "Please enter your old SIM card number",
  578 + "deviceInfoManage_form_page_line118_txt-3701" : "New SIM card number:",
  579 + "deviceInfoManage_form_page_line121_txt-3356" : "Please enter the new SIM card number",
  580 + "deviceInfoManage_form_page_line126_txt-2258" : "Fault description:",
  581 + "deviceInfoManage_form_page_line134_txt-4403" : "Description:",
  582 + "deviceInfoManage_form_page_line197_txt-4173" : "Submit",
  583 + "deviceInfoManage_form_page_line198_txt-3817" : "Cancel",
  584 +
  585 + // module.js
  586 + "deviceInfoManage_module_js_line26_txt-3347" : "Route name",
  587 + "deviceInfoManage_module_js_line27_txt-1476" : "Vehicle internal number",
  588 + "deviceInfoManage_module_js_line28_txt-3211" : "Activation date",
  589 + "deviceInfoManage_module_js_line29_txt-2185" : "Old equipment number",
  590 + "deviceInfoManage_module_js_line30_txt-3201" : "New terminal number",
  591 + "deviceInfoManage_module_js_line148_txt-3729" : "Failed:",
  592 + "deviceInfoManage_module_js_line269_txt-3243" : "{{clZbh}} Equipment information",
290 593
291 594
  595 + // TODO;
  596 +
292 }; 597 };
293 598
294 -// TODO; 599 +
  600 +
  601 +
src/main/resources/static/pages/scheduleApp/language/zh.js
@@ -2,10 +2,53 @@ @@ -2,10 +2,53 @@
2 // 中文资源 2 // 中文资源
3 3
4 var ScheduleApp_zh_language = { 4 var ScheduleApp_zh_language = {
  5 + // main.js
  6 + "main_js_line_82_txt-3966" : "营运",
  7 + "main_js_line_83_txt-3958" : "缺车",
  8 + "main_js_line_84_txt-3960" : "气候",
  9 + "main_js_line_85_txt-3837" : "肇事",
  10 + "main_js_line_86_txt-3838" : "纠纷",
  11 + "main_js_line_87_txt-3876" : "抽减",
  12 + "main_js_line_88_txt-4026" : "配车",
  13 + "main_js_line_89_txt-3840" : "故障",
  14 + "main_js_line_90_txt-3961" : "路阻",
  15 + "main_js_line_91_txt-3962" : "客稀",
  16 + "main_js_line_92_txt-3963" : "吊慢",
  17 + "main_js_line_93_txt-4197" : "其他",
  18 + "main_js_line_94_txt-4102" : "保养",
  19 + "main_js_line_95_txt-3957" : "缺人",
  20 + "main_js_line_96_txt-3956" : "援外",
  21 + "main_js_line_99_txt-2790" : "当前版本",
  22 + "main_js_line_100_txt-168" : "所有版本(待更新,当前,历史)",
  23 + "main_js_line_301_txt-1805" : "请重新登录!",
  24 + "main_js_line_304_txt-2284" : "状态编码:",
  25 + "main_js_line_305_txt-2285" : "访问路径:",
  26 + "main_js_line_306_txt-2286" : "错误消息:",
  27 + "main_js_line_307_txt-1807" : "服务端错误:",
  28 + "main_js_line_325_txt-695" : "貌似服务端连接不上",
  29 + "main_js_line_327_txt-2284" : "状态编码:",
  30 + "main_js_line_330_txt-2325" : "错误内容:",
  31 + "main_js_line_332_txt-2325" : "错误内容:",
  32 + "main_js_line_336_txt-1807" : "服务端错误:",
  33 + "main_js_line_338_txt-1838" : "请重新登录:",
  34 + "main_js_line_340_txt-2333" : "其他错误:",
  35 + "main_js_line_383_txt-1149" : "子页面已载入:",
  36 +
  37 + //------------ 自定义指令 --------------//
  38 + // 指令位置:../module/common/dts2/queryOption
  39 + // 页面:saOrderOptionTemplate.html
  40 + "queryOption_saOrderOptionTemplate_line93_txt-4157" : "升序",
  41 + "queryOption_saOrderOptionTemplate_line94_txt-4156" : "降序",
  42 +
  43 + // 指令位置:../module/common/dts1/select
  44 + // js:saSelect5.js
  45 + "saSelect5_js_line375_txt-1275" : "字典数据不存在=",
  46 +
  47 +
5 //------------ 车辆信息管理模块 -----------// 48 //------------ 车辆信息管理模块 -----------//
6 // 模块位置:../module/basicInfo/busInfoManage 49 // 模块位置:../module/basicInfo/busInfoManage
7 - // 页面;index.html  
8 50
  51 + // 页面;index.html
9 // line3 52 // line3
10 "busInfoManage_index_page-title" : "车辆信息管理", 53 "busInfoManage_index_page-title" : "车辆信息管理",
11 // line9 54 // line9
@@ -57,11 +100,11 @@ var ScheduleApp_zh_language = { @@ -57,11 +100,11 @@ var ScheduleApp_zh_language = {
57 "busInfoManage_list_page_line142_txt-4257" : "是", 100 "busInfoManage_list_page_line142_txt-4257" : "是",
58 "busInfoManage_list_page_line142_txt-3817" : "取消", 101 "busInfoManage_list_page_line142_txt-3817" : "取消",
59 "busInfoManage_list_page_line144_txt-3868" : "删除", 102 "busInfoManage_list_page_line144_txt-3868" : "删除",
60 - "busInfoManage_list_page_line153_txt-3053" : "显示从{{from}}到{{to}} 共{{total}}条 每页显示10条",  
61 - "busInfoManage_list_page_line163_txt-4430" : "首页",  
62 - "busInfoManage_list_page_line164_txt-3613" : "上一页",  
63 - "busInfoManage_list_page_line165_txt-3614" : "下一页",  
64 - "busInfoManage_list_page_line166_txt-4068" : "尾页", 103 + "busInfoManage_list_page_line156_txt-3053" : "显示从{{from}}到{{to}} 共{{total}}条 每页显示10条",
  104 + "busInfoManage_list_page_line169_txt-4430" : "首页",
  105 + "busInfoManage_list_page_line170_txt-3613" : "上一页",
  106 + "busInfoManage_list_page_line171_txt-3614" : "下一页",
  107 + "busInfoManage_list_page_line172_txt-4068" : "尾页",
65 108
66 // 页面:detail.html 109 // 页面:detail.html
67 "busInfoManage_detail_page_line3_txt-1656" : "车辆详细信息", 110 "busInfoManage_detail_page_line3_txt-1656" : "车辆详细信息",
@@ -287,6 +330,267 @@ var ScheduleApp_zh_language = { @@ -287,6 +330,267 @@ var ScheduleApp_zh_language = {
287 "busInfoManage_module_js_line434_txt-4009" : "车辆", 330 "busInfoManage_module_js_line434_txt-4009" : "车辆",
288 "busInfoManage_module_js_line434_txt-3066" : "详细信息", 331 "busInfoManage_module_js_line434_txt-3066" : "详细信息",
289 332
  333 + //------------ 人员信息管理模块 -----------//
  334 + // 模块位置:../module/basicInfo/employeeInfoManage
  335 + // 页面;index.html
  336 + "employeeInfoManage_index_page_line3_txt-1658" : "人员信息管理",
  337 + "employeeInfoManage_index_page_line9_txt-3807" : "首页",
  338 + "employeeInfoManage_index_page_line13_txt-2398" : "基础信息",
  339 + "employeeInfoManage_index_page_line17_txt-1658" : "人员信息管理",
  340 + "employeeInfoManage_index_page_line36_txt-2234" : "人员信息表",
  341 + "employeeInfoManage_index_page_line41_txt-1648" : "添加人员信息",
  342 + "employeeInfoManage_index_page_line47_txt-3339" : "数据工具",
  343 + "employeeInfoManage_index_page_line54_txt-4493" : "导出Excel",
  344 +
  345 + // 页面:orderOptionOpen.html
  346 + "employeeInfoManage_orderOptionOpen_page_line5_txt-1682" : "排序字段选择",
  347 + "employeeInfoManage_orderOptionOpen_page_line17_txt-4018" : "确定",
  348 +
  349 + // 页面:list.html
  350 + "employeeInfoManage_list_page_line7_txt-3934" : "序号",
  351 + "employeeInfoManage_list_page_line8_txt-3949" : "姓名",
  352 + "employeeInfoManage_list_page_line9_txt-3955" : "编号",
  353 + "employeeInfoManage_list_page_line10_txt-3940" : "工号",
  354 + "employeeInfoManage_list_page_line11_txt-3095" : "金蝶工号",
  355 + "employeeInfoManage_list_page_line12_txt-4086" : "性别",
  356 + "employeeInfoManage_list_page_line13_txt-3096" : "所在公司",
  357 + "employeeInfoManage_list_page_line14_txt-3777" : "分公司",
  358 + "employeeInfoManage_list_page_line15_txt-4093" : "工种",
  359 + "employeeInfoManage_list_page_line16_txt-4085" : "停用",
  360 + "employeeInfoManage_list_page_line17_txt-3942" : "操作",
  361 + "employeeInfoManage_list_page_line23_txt-3231" : "输入姓名",
  362 + "employeeInfoManage_list_page_line26_txt-3233" : "输入编号",
  363 + "employeeInfoManage_list_page_line29_txt-3232" : "输入工号",
  364 + "employeeInfoManage_list_page_line32_txt-3232" : "输入工号",
  365 + "employeeInfoManage_list_page_line45_txt-3364" : "请输拼音",
  366 + "employeeInfoManage_list_page_line60_txt-3364" : "请输拼音",
  367 + "employeeInfoManage_list_page_line75_txt-3364" : "请输拼音",
  368 + "employeeInfoManage_list_page_line82_txt-4085" : "停用",
  369 + "employeeInfoManage_list_page_line89_txt-4001" : "搜索",
  370 + "employeeInfoManage_list_page_line99_txt-3385" : "排序选项",
  371 + "employeeInfoManage_list_page_line107_txt-4000" : "重置",
  372 + "employeeInfoManage_list_page_line120_txt-4426" : "姓名/工号:",
  373 + "employeeInfoManage_list_page_line142_txt-4058" : "未知",
  374 + "employeeInfoManage_list_page_line163_txt-4058" : "未知",
  375 + "employeeInfoManage_list_page_line171_txt-3866" : "详细",
  376 + "employeeInfoManage_list_page_line172_txt-4028" : "修改",
  377 + "employeeInfoManage_list_page_line174_txt-675" : "是否删除人员信息?",
  378 + "employeeInfoManage_list_page_line175_txt-3719" : "姓名:",
  379 + "employeeInfoManage_list_page_line175_txt-3761" : "工号:",
  380 + "employeeInfoManage_list_page_line175_txt-40" : "如果有人员配置信息关联,会报错,建议不要随便删除!",
  381 + "employeeInfoManage_list_page_line177_txt-4257" : "是",
  382 + "employeeInfoManage_list_page_line178_txt-3817" : "取消",
  383 + "employeeInfoManage_list_page_line180_txt-3868" : "删除",
  384 + "employeeInfoManage_list_page_line189_txt-3053" : "显示从{{from}}到{{to}} 共{{total}}条 每页显示10条",
  385 + "employeeInfoManage_list_page_line202_txt-4430" : "首页",
  386 + "employeeInfoManage_list_page_line203_txt-3613" : "上一页",
  387 + "employeeInfoManage_list_page_line204_txt-3614" : "下一页",
  388 + "employeeInfoManage_list_page_line205_txt-4068" : "尾页",
  389 +
  390 + // 页面:detail.html
  391 + "employeeInfoManage_detail_page_line3_txt-1650" : "人员详细信息",
  392 + "employeeInfoManage_detail_page_line9_txt-3807" : "首页",
  393 + "employeeInfoManage_detail_page_line13_txt-2398" : "基础信息",
  394 + "employeeInfoManage_detail_page_line17_txt-1658" : "人员信息管理",
  395 + "employeeInfoManage_detail_page_line21_txt-1650" : "人员详细信息",
  396 + "employeeInfoManage_detail_page_line38_txt-2686" : "所属公司",
  397 + "employeeInfoManage_detail_page_line45_txt-1765" : "所属分公司:",
  398 + "employeeInfoManage_detail_page_line52_txt-3955" : "编号",
  399 + "employeeInfoManage_detail_page_line59_txt-3949" : "姓名",
  400 + "employeeInfoManage_detail_page_line66_txt-902" : "运营服务证书号:",
  401 + "employeeInfoManage_detail_page_line73_txt-903" : "一卡通工作卡号:",
  402 + "employeeInfoManage_detail_page_line80_txt-3698" : "性别:",
  403 + "employeeInfoManage_detail_page_line86_txt-3703" : "工种:",
  404 + "employeeInfoManage_detail_page_line89_txt-4058" : "未知",
  405 +
  406 + // 页面:edit.html
  407 + "employeeInfoManage_edit_page_line3_txt-1643" : "修改人员信息",
  408 + "employeeInfoManage_edit_page_line9_txt-3807" : "首页",
  409 + "employeeInfoManage_edit_page_line13_txt-2398" : "基础信息",
  410 + "employeeInfoManage_edit_page_line17_txt-1658" : "人员信息管理",
  411 + "employeeInfoManage_edit_page_line21_txt-1643" : "修改人员信息",
  412 + "employeeInfoManage_edit_page_line29_txt-3849" : "表单",
  413 + "employeeInfoManage_edit_page_line37_txt-2686" : "所属公司",
  414 + "employeeInfoManage_edit_page_line47_txt-973" : "请选择所属公司",
  415 + "employeeInfoManage_edit_page_line55_txt-1792" : "公司必须选择",
  416 + "employeeInfoManage_edit_page_line60_txt-3777" : "分公司",
  417 + "employeeInfoManage_edit_page_line70_txt-973" : "请选择所属分公司",
  418 + "employeeInfoManage_edit_page_line79_txt-923" : "分公司也必须选择",
  419 + "employeeInfoManage_edit_page_line84_txt-3940" : "工号",
  420 + "employeeInfoManage_edit_page_line88_txt-2346" : "请输入工号",
  421 + "employeeInfoManage_edit_page_line95_txt-1793" : "工号必须填写",
  422 + "employeeInfoManage_edit_page_line103_txt-3949" : "姓名",
  423 + "employeeInfoManage_edit_page_line107_txt-2345" : "请输入姓名",
  424 + "employeeInfoManage_edit_page_line111_txt-1787" : "姓名必须填写",
  425 + "employeeInfoManage_edit_page_line116_txt-902" : "运营服务证书号:",
  426 + "employeeInfoManage_edit_page_line119_txt-516" : "请输入运营服务证书号",
  427 + "employeeInfoManage_edit_page_line124_txt-2244" : "一卡通号:",
  428 + "employeeInfoManage_edit_page_line127_txt-517" : "请输入一卡通工作卡号",
  429 + "employeeInfoManage_edit_page_line132_txt-3698" : "性别:",
  430 + "employeeInfoManage_edit_page_line139_txt-3703" : "工种:",
  431 + "employeeInfoManage_edit_page_line149_txt-3364" : "请输拼音",
  432 + "employeeInfoManage_edit_page_line157_txt-3449" : "备注:",
  433 + "employeeInfoManage_edit_page_line174_txt-4173" : "提交",
  434 + "employeeInfoManage_edit_page_line175_txt-3817" : "取消",
  435 +
  436 + // 页面:form.html
  437 + "employeeInfoManage_form_page_line3_txt-1648" : "添加人员信息",
  438 + "employeeInfoManage_form_page_line9_txt-3807" : "首页",
  439 + "employeeInfoManage_form_page_line13_txt-2398" : "基础信息",
  440 + "employeeInfoManage_form_page_line17_txt-1658" : "人员信息管理",
  441 + "employeeInfoManage_form_page_line21_txt-1648" : "添加人员信息",
  442 + "employeeInfoManage_form_page_line29_txt-3849" : "表单",
  443 + "employeeInfoManage_form_page_line37_txt-2686" : "所属公司",
  444 + "employeeInfoManage_form_page_line47_txt-973" : "请选择所属公司",
  445 + "employeeInfoManage_form_page_line55_txt-1792" : "公司必须选择",
  446 + "employeeInfoManage_form_page_line60_txt-3777" : "分公司",
  447 + "employeeInfoManage_form_page_line70_txt-973" : "请选择所属分公司",
  448 + "employeeInfoManage_form_page_line79_txt-923" : "分公司也必须选择",
  449 + "employeeInfoManage_form_page_line84_txt-3940" : "工号",
  450 + "employeeInfoManage_form_page_line88_txt-2346" : "请输入工号",
  451 + "employeeInfoManage_form_page_line95_txt-1793" : "工号必须填写",
  452 + "employeeInfoManage_form_page_line103_txt-3949" : "姓名",
  453 + "employeeInfoManage_form_page_line107_txt-2345" : "请输入姓名",
  454 + "employeeInfoManage_form_page_line111_txt-1787" : "姓名必须填写",
  455 + "employeeInfoManage_form_page_line116_txt-902" : "运营服务证书号:",
  456 + "employeeInfoManage_form_page_line119_txt-516" : "请输入运营服务证书号",
  457 + "employeeInfoManage_form_page_line124_txt-2244" : "一卡通号:",
  458 + "employeeInfoManage_form_page_line127_txt-517" : "请输入一卡通工作卡号",
  459 + "employeeInfoManage_form_page_line132_txt-3698" : "性别:",
  460 + "employeeInfoManage_form_page_line139_txt-3703" : "工种:",
  461 + "employeeInfoManage_form_page_line149_txt-3364" : "请输拼音",
  462 + "employeeInfoManage_form_page_line157_txt-3449" : "备注:",
  463 + "employeeInfoManage_form_page_line174_txt-4173" : "提交",
  464 + "employeeInfoManage_form_page_line175_txt-3817" : "取消",
  465 +
  466 + // module.js
  467 + "employeeInfoManage_module_js_line33_txt-3949" : "姓名",
  468 + "employeeInfoManage_module_js_line34_txt-3940" : "工号",
  469 + "employeeInfoManage_module_js_line35_txt-4086" : "性别",
  470 + "employeeInfoManage_module_js_line36_txt-3096" : "所在公司",
  471 + "employeeInfoManage_module_js_line37_txt-3777" : "分公司",
  472 + "employeeInfoManage_module_js_line38_txt-4093" : "工种",
  473 + "employeeInfoManage_module_js_line182_txt-1614" : "人员基础信息",
  474 + "employeeInfoManage_module_js_line286_txt-3729" : "失败:",
  475 + "employeeInfoManage_module_js_line411_txt-4081" : "员工",
  476 + "employeeInfoManage_module_js_line413_txt-3066" : "详细信息",
  477 +
  478 + //------------ 车辆设备信息管理模块 -----------//
  479 + // 模块位置:../module/basicInfo/deviceInfoManage
  480 + // 页面;index.html
  481 + "deviceInfoManage_index_page_line3_txt-848" : "车辆设备信息管理",
  482 + "deviceInfoManage_index_page_line9_txt-3807" : "首页",
  483 + "deviceInfoManage_index_page_line13_txt-2398" : "基础信息",
  484 + "deviceInfoManage_index_page_line17_txt-848" : "车辆设备信息管理",
  485 + "deviceInfoManage_index_page_line27_txt-2233" : "设备信息表",
  486 + "deviceInfoManage_index_page_line32_txt-1791" : "添加设备信息",
  487 +
  488 + // 页面:orderOptionOpen.html
  489 + "deviceInfoManage_orderOptionOpen_page_line5_txt-1682" : "排序字段选择",
  490 + "deviceInfoManage_orderOptionOpen_page_line17_txt-4018" : "确定",
  491 +
  492 + // 页面:list.html
  493 + "deviceInfoManage_list_page_line17_txt-3934" : "序号",
  494 + "deviceInfoManage_list_page_line18_txt-3347" : "线路名称",
  495 + "deviceInfoManage_list_page_line19_txt-2597" : "内部编号",
  496 + "deviceInfoManage_list_page_line20_txt-3211" : "启用日期",
  497 + "deviceInfoManage_list_page_line21_txt-2185" : "旧设备编号",
  498 + "deviceInfoManage_list_page_line22_txt-2184" : "新设备编号",
  499 + "deviceInfoManage_list_page_line23_txt-4389" : "操作人/操作时间",
  500 + "deviceInfoManage_list_page_line24_txt-3874" : "状态",
  501 + "deviceInfoManage_list_page_line25_txt-3942" : "操作",
  502 + "deviceInfoManage_list_page_line38_txt-3364" : "请输拼音",
  503 + "deviceInfoManage_list_page_line44_txt-1773" : "输入内部编号",
  504 + "deviceInfoManage_list_page_line52_txt-4162" : "报废",
  505 + "deviceInfoManage_list_page_line59_txt-4001" : "搜索",
  506 + "deviceInfoManage_list_page_line69_txt-3385" : "排序选项",
  507 + "deviceInfoManage_list_page_line77_txt-4000" : "重置",
  508 + "deviceInfoManage_list_page_line122_txt-4058" : "未知",
  509 + "deviceInfoManage_list_page_line127_txt-3866" : "详细",
  510 + "deviceInfoManage_list_page_line144_txt-3053" : "显示从{{from}}到{{to}} 共{{total}}条 每页显示10条",
  511 + "deviceInfoManage_list_page_line157_txt-4430" : "首页",
  512 + "deviceInfoManage_list_page_line158_txt-3613" : "上一页",
  513 + "deviceInfoManage_list_page_line159_txt-3614" : "下一页",
  514 + "deviceInfoManage_list_page_line160_txt-4068" : "尾页",
  515 +
  516 + // 页面:detail.html
  517 + "deviceInfoManage_detail_page_line3_txt-847" : "车辆设备详细信息",
  518 + "deviceInfoManage_detail_page_line9_txt-3807" : "首页",
  519 + "deviceInfoManage_detail_page_line13_txt-2398" : "基础信息",
  520 + "deviceInfoManage_detail_page_line17_txt-848" : "车辆设备信息管理",
  521 + "deviceInfoManage_detail_page_line21_txt-847" : "车辆设备详细信息",
  522 + "deviceInfoManage_detail_page_line38_txt-1476" : "车辆内部编号",
  523 + "deviceInfoManage_detail_page_line45_txt-3347" : "线路名称",
  524 + "deviceInfoManage_detail_page_line52_txt-3216" : "旧终端号",
  525 + "deviceInfoManage_detail_page_line59_txt-3201" : "新终端号",
  526 + "deviceInfoManage_detail_page_line67_txt-4422" : "旧SIM卡号:",
  527 + "deviceInfoManage_detail_page_line74_txt-3701" : "新SIM卡号:",
  528 + "deviceInfoManage_detail_page_line82_txt-2258" : "故障描述:",
  529 + "deviceInfoManage_detail_page_line90_txt-4403" : "保修描述:",
  530 + "deviceInfoManage_detail_page_line98_txt-3211" : "启用日期",
  531 +
  532 + // 页面:edit.html
  533 + "deviceInfoManage_edit_page_line3_txt-836" : "修改车辆设备信息",
  534 + "deviceInfoManage_edit_page_line9_txt-3807" : "首页",
  535 + "deviceInfoManage_edit_page_line13_txt-2398" : "基础信息",
  536 + "deviceInfoManage_edit_page_line17_txt-848" : "车辆设备信息管理",
  537 + "deviceInfoManage_edit_page_line21_txt-836" : "修改车辆设备信息",
  538 + "deviceInfoManage_edit_page_line29_txt-3849" : "表单",
  539 + "deviceInfoManage_edit_page_line38_txt-3347" : "线路名称",
  540 + "deviceInfoManage_edit_page_line48_txt-3364" : "请输拼音",
  541 + "deviceInfoManage_edit_page_line55_txt-1788" : "线路必须选择",
  542 + "deviceInfoManage_edit_page_line60_txt-3469" : "车辆:",
  543 + "deviceInfoManage_edit_page_line71_txt-3364" : "请输拼音",
  544 + "deviceInfoManage_edit_page_line78_txt-1794" : "车辆必须选择",
  545 + "deviceInfoManage_edit_page_line83_txt-3216" : "旧终端号",
  546 + "deviceInfoManage_edit_page_line91_txt-3201" : "新终端号",
  547 + "deviceInfoManage_edit_page_line98_txt-1264" : "请输入新终端号",
  548 + "deviceInfoManage_edit_page_line102_txt-910" : "新终端号必须填写",
  549 + "deviceInfoManage_edit_page_line110_txt-4422" : "旧SIM卡号:",
  550 + "deviceInfoManage_edit_page_line113_txt-3357" : "请输入旧SIM卡号",
  551 + "deviceInfoManage_edit_page_line118_txt-3701" : "新SIM卡号:",
  552 + "deviceInfoManage_edit_page_line121_txt-3356" : "请输入新SIM卡号",
  553 + "deviceInfoManage_edit_page_line126_txt-2258" : "故障描述:",
  554 + "deviceInfoManage_edit_page_line134_txt-4403" : "保修描述:",
  555 + "deviceInfoManage_edit_page_line170_txt-2252" : "启用日期:",
  556 + "deviceInfoManage_edit_page_line183_txt-146" : "启用日期必须选择,精确到具体时间",
  557 + "deviceInfoManage_edit_page_line197_txt-4173" : "提交",
  558 + "deviceInfoManage_edit_page_line198_txt-3817" : "取消",
  559 +
  560 + // 页面:form.html
  561 + "deviceInfoManage_form_page_line3_txt-845" : "添加车辆设备信息",
  562 + "deviceInfoManage_form_page_line9_txt-3807" : "首页",
  563 + "deviceInfoManage_form_page_line13_txt-2398" : "基础信息",
  564 + "deviceInfoManage_form_page_line17_txt-848" : "车辆设备信息管理",
  565 + "deviceInfoManage_form_page_line21_txt-845" : "添加车辆设备信息",
  566 + "deviceInfoManage_form_page_line29_txt-3849" : "表单",
  567 + "deviceInfoManage_form_page_line38_txt-3347" : "线路名称",
  568 + "deviceInfoManage_form_page_line48_txt-3364" : "请输拼音",
  569 + "deviceInfoManage_form_page_line55_txt-1788" : "线路必须选择",
  570 + "deviceInfoManage_form_page_line60_txt-3469" : "车辆:",
  571 + "deviceInfoManage_form_page_line71_txt-3364" : "请输拼音",
  572 + "deviceInfoManage_form_page_line78_txt-1794" : "车辆必须选择",
  573 + "deviceInfoManage_form_page_line83_txt-3216" : "旧终端号",
  574 + "deviceInfoManage_form_page_line91_txt-3201" : "新终端号",
  575 + "deviceInfoManage_form_page_line98_txt-1264" : "请输入新终端号",
  576 + "deviceInfoManage_form_page_line102_txt-910" : "新终端号必须填写",
  577 + "deviceInfoManage_form_page_line110_txt-4422" : "旧SIM卡号:",
  578 + "deviceInfoManage_form_page_line113_txt-3357" : "请输入旧SIM卡号",
  579 + "deviceInfoManage_form_page_line118_txt-3701" : "新SIM卡号:",
  580 + "deviceInfoManage_form_page_line121_txt-3356" : "请输入新SIM卡号",
  581 + "deviceInfoManage_form_page_line126_txt-2258" : "故障描述:",
  582 + "deviceInfoManage_form_page_line134_txt-4403" : "保修描述:",
  583 + "deviceInfoManage_form_page_line197_txt-4173" : "提交",
  584 + "deviceInfoManage_form_page_line198_txt-3817" : "取消",
  585 +
  586 + // module.js
  587 + "deviceInfoManage_module_js_line26_txt-3347" : "线路名称",
  588 + "deviceInfoManage_module_js_line27_txt-1476" : "车辆内部编号",
  589 + "deviceInfoManage_module_js_line28_txt-3211" : "启用日期",
  590 + "deviceInfoManage_module_js_line29_txt-2185" : "旧设备编号",
  591 + "deviceInfoManage_module_js_line30_txt-3201" : "新终端号",
  592 + "deviceInfoManage_module_js_line148_txt-3729" : "失败:",
  593 + "deviceInfoManage_module_js_line269_txt-3243" : "车辆 {{clZbh}} 设备信息",
290 594
291 595
292 // TODO: 596 // TODO:
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/list.html
@@ -5,15 +5,15 @@ @@ -5,15 +5,15 @@
5 <thead> 5 <thead>
6 <tr role="row" class="heading"> 6 <tr role="row" class="heading">
7 <th style="width: 70px; max-width: 70px;white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line7_txt-3934" | translate}}</th> 7 <th style="width: 70px; max-width: 70px;white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line7_txt-3934" | translate}}</th>
8 - <th style="width: 110px;white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line8_txt-2479" | translate}}</th>  
9 - <th style="width: 110px;white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line9_txt-2597" | translate}}</th>  
10 - <th style="width: 110px;white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line10_txt-3094" | translate}}</th>  
11 - <th style="width: 110px;white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line11_txt-3704" | translate}}</th>  
12 - <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line12_txt-3096" | translate}}</th>  
13 - <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line13_txt-2188" | translate}}</th>  
14 - <th style="width: 60px;white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line14_txt-4087" | translate}}</th>  
15 - <th style="width: 80px;white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;" >{{"busInfoManage_list_page_line15_txt-3874" | translate}}</th>  
16 - <th style="width: 230px;white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line16_txt-3942" | translate}}</th> 8 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line8_txt-2479" | translate}}</th>
  9 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line9_txt-2597" | translate}}</th>
  10 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line10_txt-3094" | translate}}</th>
  11 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line11_txt-3704" | translate}}</th>
  12 + <th style="width: 130px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line12_txt-3096" | translate}}</th>
  13 + <th style="width: 130px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line13_txt-2188" | translate}}</th>
  14 + <th style="width: 60px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line14_txt-4087" | translate}}</th>
  15 + <th style="width: 80px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;" >{{"busInfoManage_list_page_line15_txt-3874" | translate}}</th>
  16 + <th style="width: 230px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"busInfoManage_list_page_line16_txt-3942" | translate}}</th>
17 </tr> 17 </tr>
18 <tr role="row" class="filter"> 18 <tr role="row" class="filter">
19 <td></td> 19 <td></td>
@@ -40,6 +40,7 @@ @@ -40,6 +40,7 @@
40 iterobjexp="item.businessName" 40 iterobjexp="item.businessName"
41 searchph="{{'busInfoManage_list_page_line41_txt-3364' | translate}}" 41 searchph="{{'busInfoManage_list_page_line41_txt-3364' | translate}}"
42 searchexp="this.businessName" 42 searchexp="this.businessName"
  43 + width="100"
43 required 44 required
44 > 45 >
45 </sa-Select5> 46 </sa-Select5>
@@ -55,6 +56,7 @@ @@ -55,6 +56,7 @@
55 iterobjexp="item.businessName" 56 iterobjexp="item.businessName"
56 searchph="{{'busInfoManage_list_page_line56_txt-3364' | translate}}" 57 searchph="{{'busInfoManage_list_page_line56_txt-3364' | translate}}"
57 searchexp="this.businessName" 58 searchexp="this.businessName"
  59 + width="100"
58 required 60 required
59 > 61 >
60 </sa-Select5> 62 </sa-Select5>
@@ -153,7 +155,7 @@ @@ -153,7 +155,7 @@
153 155
154 <div class="pageBar"> 156 <div class="pageBar">
155 <div class="pageBarLeft" 157 <div class="pageBarLeft"
156 - translate="busInfoManage_list_page_line153_txt-3053" 158 + translate="busInfoManage_list_page_line156_txt-3053"
157 translate-value-from="{{ ctrl.page()['uiFromRecord'] }}" 159 translate-value-from="{{ ctrl.page()['uiFromRecord'] }}"
158 translate-value-to="{{ ctrl.page()['uiToRecord'] }}" 160 translate-value-to="{{ ctrl.page()['uiToRecord'] }}"
159 translate-value-total="{{ ctrl.page()['totalElements'] }}"> 161 translate-value-total="{{ ctrl.page()['totalElements'] }}">
@@ -166,10 +168,10 @@ @@ -166,10 +168,10 @@
166 rotate="false" 168 rotate="false"
167 max-size="10" 169 max-size="10"
168 boundary-links="true" 170 boundary-links="true"
169 - first-text="{{'busInfoManage_list_page_line163_txt-4430' | translate}}"  
170 - previous-text="{{'busInfoManage_list_page_line164_txt-3613' | translate}}"  
171 - next-text="{{'busInfoManage_list_page_line165_txt-3614' | translate}}"  
172 - last-text="{{'busInfoManage_list_page_line166_txt-4068' | translate}}"> 171 + first-text="{{'busInfoManage_list_page_line169_txt-4430' | translate}}"
  172 + previous-text="{{'busInfoManage_list_page_line170_txt-3613' | translate}}"
  173 + next-text="{{'busInfoManage_list_page_line171_txt-3614' | translate}}"
  174 + last-text="{{'busInfoManage_list_page_line172_txt-4068' | translate}}">
173 </uib-pagination> 175 </uib-pagination>
174 </div> 176 </div>
175 </div> 177 </div>
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/detail.html
1 <div class="page-head"> 1 <div class="page-head">
2 <div class="page-title"> 2 <div class="page-title">
3 - <h1>$$$$$${txt-847}</h1> 3 + <h1>{{"deviceInfoManage_detail_page_line3_txt-847" | translate}}</h1>
4 </div> 4 </div>
5 </div> 5 </div>
6 6
7 <ul class="page-breadcrumb breadcrumb"> 7 <ul class="page-breadcrumb breadcrumb">
8 <li> 8 <li>
9 - <a href="/pages/home.html" data-pjax>$$$$$${txt-3807}</a> 9 + <a href="/pages/home.html" data-pjax>{{"deviceInfoManage_detail_page_line9_txt-3807" | translate}}</a>
10 <i class="fa fa-circle"></i> 10 <i class="fa fa-circle"></i>
11 </li> 11 </li>
12 <li> 12 <li>
13 - <span class="active">$$$$$${txt-2398}</span> 13 + <span class="active">{{"deviceInfoManage_detail_page_line13_txt-2398" | translate}}</span>
14 <i class="fa fa-circle"></i> 14 <i class="fa fa-circle"></i>
15 </li> 15 </li>
16 <li> 16 <li>
17 - <a ui-sref="deviceInfoManage">$$$$$${txt-848}</a> 17 + <a ui-sref="deviceInfoManage">{{"deviceInfoManage_detail_page_line17_txt-848" | translate}}</a>
18 <i class="fa fa-circle"></i> 18 <i class="fa fa-circle"></i>
19 </li> 19 </li>
20 <li> 20 <li>
21 - <span class="active">$$$$$${txt-847}</span> 21 + <span class="active">{{"deviceInfoManage_detail_page_line21_txt-847" | translate}}</span>
22 </li> 22 </li>
23 </ul> 23 </ul>
24 24
@@ -35,28 +35,28 @@ @@ -35,28 +35,28 @@
35 <form class="form-horizontal" novalidate name="myForm"> 35 <form class="form-horizontal" novalidate name="myForm">
36 <div class="form-body"> 36 <div class="form-body">
37 <div class="form-group has-success has-feedback"> 37 <div class="form-group has-success has-feedback">
38 - <label class="col-md-2 control-label">$$$$$${txt-1476}*:</label> 38 + <label class="col-md-2 control-label">{{"deviceInfoManage_detail_page_line38_txt-1476" | translate}}*:</label>
39 <div class="col-md-3"> 39 <div class="col-md-3">
40 <input type="text" class="form-control" name="clZbh" 40 <input type="text" class="form-control" name="clZbh"
41 ng-model="ctrl.deviceInfoForDetail.clZbh" readonly/> 41 ng-model="ctrl.deviceInfoForDetail.clZbh" readonly/>
42 </div> 42 </div>
43 </div> 43 </div>
44 <div class="form-group has-success has-feedback"> 44 <div class="form-group has-success has-feedback">
45 - <label class="col-md-2 control-label">$$$$$${txt-3815}*:</label> 45 + <label class="col-md-2 control-label">{{"deviceInfoManage_detail_page_line45_txt-3347" | translate}}*:</label>
46 <div class="col-md-3"> 46 <div class="col-md-3">
47 <input type="text" class="form-control" name="xlName" 47 <input type="text" class="form-control" name="xlName"
48 ng-model="ctrl.deviceInfoForDetail.xlName" readonly/> 48 ng-model="ctrl.deviceInfoForDetail.xlName" readonly/>
49 </div> 49 </div>
50 </div> 50 </div>
51 <div class="form-group has-success has-feedback"> 51 <div class="form-group has-success has-feedback">
52 - <label class="col-md-2 control-label">$$$$$${txt-3216}*:</label> 52 + <label class="col-md-2 control-label">{{"deviceInfoManage_detail_page_line52_txt-3216" | translate}}*:</label>
53 <div class="col-md-3"> 53 <div class="col-md-3">
54 <input type="text" class="form-control" name="oldDeviceNo" 54 <input type="text" class="form-control" name="oldDeviceNo"
55 ng-model="ctrl.deviceInfoForDetail.oldDeviceNo" readonly/> 55 ng-model="ctrl.deviceInfoForDetail.oldDeviceNo" readonly/>
56 </div> 56 </div>
57 </div> 57 </div>
58 <div class="form-group has-success has-feedback"> 58 <div class="form-group has-success has-feedback">
59 - <label class="col-md-2 control-label">$$$$$${txt-3201}*:</label> 59 + <label class="col-md-2 control-label">{{"deviceInfoManage_detail_page_line59_txt-3201" | translate}}*:</label>
60 <div class="col-md-3"> 60 <div class="col-md-3">
61 <input type="text" class="form-control" name="newDeviceNo" 61 <input type="text" class="form-control" name="newDeviceNo"
62 ng-model="ctrl.deviceInfoForDetail.newDeviceNo" readonly/> 62 ng-model="ctrl.deviceInfoForDetail.newDeviceNo" readonly/>
@@ -64,14 +64,14 @@ @@ -64,14 +64,14 @@
64 </div> 64 </div>
65 65
66 <div class="form-group"> 66 <div class="form-group">
67 - <label class="col-md-2 control-label">$$$$$${txt-4422}</label> 67 + <label class="col-md-2 control-label">{{"deviceInfoManage_detail_page_line67_txt-4422" | translate}}</label>
68 <div class="col-md-4"> 68 <div class="col-md-4">
69 <input type="text" class="form-control" name="oldSimNo" 69 <input type="text" class="form-control" name="oldSimNo"
70 ng-model="ctrl.deviceInfoForDetail.oldSimNo" readonly/> 70 ng-model="ctrl.deviceInfoForDetail.oldSimNo" readonly/>
71 </div> 71 </div>
72 </div> 72 </div>
73 <div class="form-group"> 73 <div class="form-group">
74 - <label class="col-md-2 control-label">$$$$$${txt-3701}</label> 74 + <label class="col-md-2 control-label">{{"deviceInfoManage_detail_page_line74_txt-3701" | translate}}</label>
75 <div class="col-md-4"> 75 <div class="col-md-4">
76 <input type="text" class="form-control" name="newSimNo" 76 <input type="text" class="form-control" name="newSimNo"
77 ng-model="ctrl.deviceInfoForDetail.newSimNo" readonly/> 77 ng-model="ctrl.deviceInfoForDetail.newSimNo" readonly/>
@@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
79 </div> 79 </div>
80 80
81 <div class="form-group"> 81 <div class="form-group">
82 - <label class="col-md-2 control-label">$$$$$${txt-2258}</label> 82 + <label class="col-md-2 control-label">{{"deviceInfoManage_detail_page_line82_txt-2258" | translate}}</label>
83 <div class="col-md-10"> 83 <div class="col-md-10">
84 <textarea rows="3" class="form-control" name="troubleDesc" 84 <textarea rows="3" class="form-control" name="troubleDesc"
85 ng-model="ctrl.deviceInfoForDetail.troubleDesc" readonly></textarea> 85 ng-model="ctrl.deviceInfoForDetail.troubleDesc" readonly></textarea>
@@ -87,7 +87,7 @@ @@ -87,7 +87,7 @@
87 </div> 87 </div>
88 88
89 <div class="form-group"> 89 <div class="form-group">
90 - <label class="col-md-2 control-label">$$$$$${txt-4403}</label> 90 + <label class="col-md-2 control-label">{{"deviceInfoManage_detail_page_line90_txt-4403" | translate}}</label>
91 <div class="col-md-10"> 91 <div class="col-md-10">
92 <textarea rows="3" class="form-control" name="guaranteeDesc" 92 <textarea rows="3" class="form-control" name="guaranteeDesc"
93 ng-model="ctrl.deviceInfoForDetail.guaranteeDesc" readonly></textarea> 93 ng-model="ctrl.deviceInfoForDetail.guaranteeDesc" readonly></textarea>
@@ -95,7 +95,7 @@ @@ -95,7 +95,7 @@
95 </div> 95 </div>
96 96
97 <div class="form-group has-success has-feedback"> 97 <div class="form-group has-success has-feedback">
98 - <label class="col-md-2 control-label">$$$$$${txt-3211}*:</label> 98 + <label class="col-md-2 control-label">{{"deviceInfoManage_detail_page_line98_txt-3211" | translate}}*:</label>
99 <div class="col-md-3"> 99 <div class="col-md-3">
100 <input type="text" class="form-control" 100 <input type="text" class="form-control"
101 name="qyrq" uib-datepicker-popup="yyyy年MM月dd日 HH:mm" 101 name="qyrq" uib-datepicker-popup="yyyy年MM月dd日 HH:mm"
@@ -109,4 +109,4 @@ @@ -109,4 +109,4 @@
109 </form> 109 </form>
110 </div> 110 </div>
111 111
112 -</div>  
113 \ No newline at end of file 112 \ No newline at end of file
  113 +</div>
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/edit.html
1 <div class="page-head"> 1 <div class="page-head">
2 <div class="page-title"> 2 <div class="page-title">
3 - <h1>$$$$$${txt-845}</h1> 3 + <h1>{{"deviceInfoManage_edit_page_line3_txt-845" | translate}}</h1>
4 </div> 4 </div>
5 </div> 5 </div>
6 6
7 <ul class="page-breadcrumb breadcrumb"> 7 <ul class="page-breadcrumb breadcrumb">
8 <li> 8 <li>
9 - <a href="/pages/home.html" data-pjax>$$$$$${txt-3807}</a> 9 + <a href="/pages/home.html" data-pjax>{{"deviceInfoManage_edit_page_line9_txt-3807" | translate}}</a>
10 <i class="fa fa-circle"></i> 10 <i class="fa fa-circle"></i>
11 </li> 11 </li>
12 <li> 12 <li>
13 - <span class="active">$$$$$${txt-2398}</span> 13 + <span class="active">{{"deviceInfoManage_edit_page_line13_txt-2398" | translate}}</span>
14 <i class="fa fa-circle"></i> 14 <i class="fa fa-circle"></i>
15 </li> 15 </li>
16 <li> 16 <li>
17 - <a ui-sref="deviceInfoManage">$$$$$${txt-848}</a> 17 + <a ui-sref="deviceInfoManage">{{"deviceInfoManage_edit_page_line17_txt-848" | translate}}</a>
18 <i class="fa fa-circle"></i> 18 <i class="fa fa-circle"></i>
19 </li> 19 </li>
20 <li> 20 <li>
21 - <span class="active">$$$$$${txt-836}</span> 21 + <span class="active">{{"deviceInfoManage_edit_page_line21_txt-836" | translate}}</span>
22 </li> 22 </li>
23 </ul> 23 </ul>
24 24
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 <div class="portlet-title"> 26 <div class="portlet-title">
27 <div class="caption"> 27 <div class="caption">
28 <i class="icon-equalizer font-red-sunglo"></i> <span 28 <i class="icon-equalizer font-red-sunglo"></i> <span
29 - class="caption-subject font-red-sunglo bold uppercase">$$$$$${txt-3849}</span> 29 + class="caption-subject font-red-sunglo bold uppercase">{{"deviceInfoManage_edit_page_line29_txt-3849" | translate}}</span>
30 </div> 30 </div>
31 </div> 31 </div>
32 32
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
35 <div class="form-body"> 35 <div class="form-body">
36 36
37 <div class="form-group has-success has-feedback"> 37 <div class="form-group has-success has-feedback">
38 - <label class="col-md-2 control-label">$$$$$${txt-3815}*:</label> 38 + <label class="col-md-2 control-label">{{"deviceInfoManage_edit_page_line38_txt-3347" | translate}}*:</label>
39 <div class="col-md-3"> 39 <div class="col-md-3">
40 <sa-Select5 name="xl" 40 <sa-Select5 name="xl"
41 model="ctrl.deviceInfoForSave" 41 model="ctrl.deviceInfoForSave"
@@ -45,19 +45,19 @@ @@ -45,19 +45,19 @@
45 dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" 45 dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}"
46 iterobjname="item" 46 iterobjname="item"
47 iterobjexp="item.name" 47 iterobjexp="item.name"
48 - searchph="$$$$$${txt-3364}" 48 + searchph="{{'deviceInfoManage_edit_page_line48_txt-3364' | translate}}"
49 searchexp="this.name" 49 searchexp="this.name"
50 required > 50 required >
51 </sa-Select5> 51 </sa-Select5>
52 </div> 52 </div>
53 <!-- 隐藏块,显示验证信息 --> 53 <!-- 隐藏块,显示验证信息 -->
54 <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> 54 <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required">
55 - $$$$$${txt-1788} 55 + {{"deviceInfoManage_edit_page_line55_txt-1788" | translate}}
56 </div> 56 </div>
57 </div> 57 </div>
58 58
59 <div class="form-group has-success has-feedback"> 59 <div class="form-group has-success has-feedback">
60 - <label class="col-md-2 control-label">$$$$$${txt-3469}</label> 60 + <label class="col-md-2 control-label">{{"deviceInfoManage_edit_page_line60_txt-3469" | translate}}</label>
61 <div class="col-md-3"> 61 <div class="col-md-3">
62 <sa-Select5 name="cl" 62 <sa-Select5 name="cl"
63 model="ctrl.deviceInfoForSave" 63 model="ctrl.deviceInfoForSave"
@@ -68,19 +68,19 @@ @@ -68,19 +68,19 @@
68 dsparamsextra="{'type':'all', 'isCancel_eq': false}" 68 dsparamsextra="{'type':'all', 'isCancel_eq': false}"
69 iterobjname="item" 69 iterobjname="item"
70 iterobjexp="item.cl.insideCode + '<' + item.xl.name + '>'" 70 iterobjexp="item.cl.insideCode + '<' + item.xl.name + '>'"
71 - searchph="$$$$$${txt-3364}" 71 + searchph="{{'deviceInfoManage_edit_page_line71_txt-3364' | translate}}"
72 searchexp="this.cl.insideCode + '<' + this.xl.name + '>'" 72 searchexp="this.cl.insideCode + '<' + this.xl.name + '>'"
73 required > 73 required >
74 </sa-Select5> 74 </sa-Select5>
75 </div> 75 </div>
76 <!-- 隐藏块,显示验证信息 --> 76 <!-- 隐藏块,显示验证信息 -->
77 <div class="alert alert-danger well-sm" ng-show="myForm.cl.$error.required"> 77 <div class="alert alert-danger well-sm" ng-show="myForm.cl.$error.required">
78 - $$$$$${txt-1794} 78 + {{"deviceInfoManage_edit_page_line78_txt-1794" | translate}}
79 </div> 79 </div>
80 </div> 80 </div>
81 81
82 <div class="form-group has-success has-feedback"> 82 <div class="form-group has-success has-feedback">
83 - <label class="col-md-2 control-label">$$$$$${txt-3216}*:</label> 83 + <label class="col-md-2 control-label">{{"deviceInfoManage_edit_page_line83_txt-3216" | translate}}*:</label>
84 <div class="col-md-3"> 84 <div class="col-md-3">
85 <input type="text" class="form-control" name="oldDeviceNo" 85 <input type="text" class="form-control" name="oldDeviceNo"
86 ng-model="ctrl.deviceInfoForSave.oldDeviceNo" readonly/> 86 ng-model="ctrl.deviceInfoForSave.oldDeviceNo" readonly/>
@@ -88,18 +88,18 @@ @@ -88,18 +88,18 @@
88 </div> 88 </div>
89 89
90 <div class="form-group has-success has-feedback"> 90 <div class="form-group has-success has-feedback">
91 - <label class="col-md-2 control-label">$$$$$${txt-3201}*:</label> 91 + <label class="col-md-2 control-label">{{"deviceInfoManage_edit_page_line91_txt-3201" | translate}}*:</label>
92 <div class="col-md-3"> 92 <div class="col-md-3">
93 <input type="text" class="form-control" 93 <input type="text" class="form-control"
94 name="newDeviceNo" ng-model="ctrl.deviceInfoForSave.newDeviceNo" 94 name="newDeviceNo" ng-model="ctrl.deviceInfoForSave.newDeviceNo"
95 remote-Validation 95 remote-Validation
96 remotevtype="cars_sbbh" 96 remotevtype="cars_sbbh"
97 remotevparam="{{ {'id_eq': null, 'equipmentCode_eq': ctrl.deviceInfoForSave.newDeviceNo} | json}}" 97 remotevparam="{{ {'id_eq': null, 'equipmentCode_eq': ctrl.deviceInfoForSave.newDeviceNo} | json}}"
98 - required placeholder="$$$$$${txt-1264}"/> 98 + required placeholder="{{'deviceInfoManage_edit_page_line98_txt-1264' | translate}}"/>
99 </div> 99 </div>
100 <!-- 隐藏块,显示验证信息 --> 100 <!-- 隐藏块,显示验证信息 -->
101 <div class="alert alert-danger well-sm" ng-show="myForm.newDeviceNo.$error.required"> 101 <div class="alert alert-danger well-sm" ng-show="myForm.newDeviceNo.$error.required">
102 - $$$$$${txt-910} 102 + {{"deviceInfoManage_edit_page_line102_txt-910" | translate}}
103 </div> 103 </div>
104 <div class="alert alert-danger well-sm" ng-show="myForm.newDeviceNo.$error.remote"> 104 <div class="alert alert-danger well-sm" ng-show="myForm.newDeviceNo.$error.remote">
105 {{$remote_msg}} 105 {{$remote_msg}}
@@ -107,23 +107,23 @@ @@ -107,23 +107,23 @@
107 </div> 107 </div>
108 108
109 <div class="form-group"> 109 <div class="form-group">
110 - <label class="col-md-2 control-label">$$$$$${txt-4422}</label> 110 + <label class="col-md-2 control-label">{{"deviceInfoManage_edit_page_line110_txt-4422" | translate}}</label>
111 <div class="col-md-4"> 111 <div class="col-md-4">
112 <input type="text" class="form-control" ng-model="ctrl.deviceInfoForSave.oldSimNo" 112 <input type="text" class="form-control" ng-model="ctrl.deviceInfoForSave.oldSimNo"
113 - placeholder="$$$$$${txt-3357}"/> 113 + placeholder="{{'deviceInfoManage_edit_page_line113_txt-3357' | translate}}"/>
114 </div> 114 </div>
115 </div> 115 </div>
116 116
117 <div class="form-group"> 117 <div class="form-group">
118 - <label class="col-md-2 control-label">$$$$$${txt-3701}</label> 118 + <label class="col-md-2 control-label">{{"deviceInfoManage_edit_page_line118_txt-3701" | translate}}</label>
119 <div class="col-md-4"> 119 <div class="col-md-4">
120 <input type="text" class="form-control" ng-model="ctrl.deviceInfoForSave.newSimNo" 120 <input type="text" class="form-control" ng-model="ctrl.deviceInfoForSave.newSimNo"
121 - placeholder="$$$$$${txt-3356}"/> 121 + placeholder="{{'deviceInfoManage_edit_page_line121_txt-3356' | translate}}"/>
122 </div> 122 </div>
123 </div> 123 </div>
124 124
125 <div class="form-group"> 125 <div class="form-group">
126 - <label class="col-md-2 control-label">$$$$$${txt-2258}</label> 126 + <label class="col-md-2 control-label">{{"deviceInfoManage_edit_page_line126_txt-2258" | translate}}</label>
127 <div class="col-md-10"> 127 <div class="col-md-10">
128 <textarea rows="3" class="form-control" name="descriptions" 128 <textarea rows="3" class="form-control" name="descriptions"
129 ng-model="ctrl.deviceInfoForSave.troubleDesc"></textarea> 129 ng-model="ctrl.deviceInfoForSave.troubleDesc"></textarea>
@@ -131,7 +131,7 @@ @@ -131,7 +131,7 @@
131 </div> 131 </div>
132 132
133 <div class="form-group"> 133 <div class="form-group">
134 - <label class="col-md-2 control-label">$$$$$${txt-4403}</label> 134 + <label class="col-md-2 control-label">{{"deviceInfoManage_edit_page_line134_txt-4403" | translate}}</label>
135 <div class="col-md-10"> 135 <div class="col-md-10">
136 <textarea rows="3" class="form-control" name="descriptions" 136 <textarea rows="3" class="form-control" name="descriptions"
137 ng-model="ctrl.deviceInfoForSave.guaranteeDesc"></textarea> 137 ng-model="ctrl.deviceInfoForSave.guaranteeDesc"></textarea>
@@ -167,7 +167,7 @@ @@ -167,7 +167,7 @@
167 <!--</div>--> 167 <!--</div>-->
168 168
169 <div class="form-group has-success has-feedback"> 169 <div class="form-group has-success has-feedback">
170 - <label class="col-md-2 control-label">$$$$$${txt-2252}</label> 170 + <label class="col-md-2 control-label">{{"deviceInfoManage_edit_page_line170_txt-2252" | translate}}</label>
171 <div class="col-md-3"> 171 <div class="col-md-3">
172 <div class="input-group"> 172 <div class="input-group">
173 <input type="datetime-local" class="form-control" name="qyrq" 173 <input type="datetime-local" class="form-control" name="qyrq"
@@ -180,7 +180,7 @@ @@ -180,7 +180,7 @@
180 </div> 180 </div>
181 <!-- 隐藏块,显示验证信息 --> 181 <!-- 隐藏块,显示验证信息 -->
182 <div class="alert alert-danger well-sm" ng-show="myForm.qyrq.$error.required"> 182 <div class="alert alert-danger well-sm" ng-show="myForm.qyrq.$error.required">
183 - $$$$$${txt-146} 183 + {{"deviceInfoManage_edit_page_line183_txt-146" | translate}}
184 </div> 184 </div>
185 <div class="alert alert-danger well-sm" ng-show="myForm.qyrq.$error.remote"> 185 <div class="alert alert-danger well-sm" ng-show="myForm.qyrq.$error.remote">
186 {{$remote_msg}} 186 {{$remote_msg}}
@@ -194,12 +194,12 @@ @@ -194,12 +194,12 @@
194 <div class="form-actions"> 194 <div class="form-actions">
195 <div class="row"> 195 <div class="row">
196 <div class="col-md-offset-3 col-md-4"> 196 <div class="col-md-offset-3 col-md-4">
197 - <button type="submit" class="btn green" ng-disabled="!myForm.$valid"><i class="fa fa-check"></i> 提交</button>  
198 - <a type="button" class="btn default" ui-sref="deviceInfoManage" ><i class="fa fa-times"></i> $$$$$${txt-3817}</a> 197 + <button type="submit" class="btn green" ng-disabled="!myForm.$valid"><i class="fa fa-check"></i> {{"deviceInfoManage_edit_page_line197_txt-4173" | translate}}</button>
  198 + <a type="button" class="btn default" ui-sref="deviceInfoManage" ><i class="fa fa-times"></i> {{"deviceInfoManage_edit_page_line198_txt-3817" | translate}}</a>
199 </div> 199 </div>
200 </div> 200 </div>
201 </div> 201 </div>
202 </form> 202 </form>
203 </div> 203 </div>
204 204
205 -</div>  
206 \ No newline at end of file 205 \ No newline at end of file
  206 +</div>
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/form.html
1 <div class="page-head"> 1 <div class="page-head">
2 <div class="page-title"> 2 <div class="page-title">
3 - <h1>$$$$$${txt-845}</h1> 3 + <h1>{{"deviceInfoManage_form_page_line3_txt-845" | translate}}</h1>
4 </div> 4 </div>
5 </div> 5 </div>
6 6
7 <ul class="page-breadcrumb breadcrumb"> 7 <ul class="page-breadcrumb breadcrumb">
8 <li> 8 <li>
9 - <a href="/pages/home.html" data-pjax>$$$$$${txt-3807}</a> 9 + <a href="/pages/home.html" data-pjax>{{"deviceInfoManage_form_page_line9_txt-3807" | translate}}</a>
10 <i class="fa fa-circle"></i> 10 <i class="fa fa-circle"></i>
11 </li> 11 </li>
12 <li> 12 <li>
13 - <span class="active">$$$$$${txt-2398}</span> 13 + <span class="active">{{"deviceInfoManage_form_page_line13_txt-2398" | translate}}</span>
14 <i class="fa fa-circle"></i> 14 <i class="fa fa-circle"></i>
15 </li> 15 </li>
16 <li> 16 <li>
17 - <a ui-sref="deviceInfoManage">$$$$$${txt-848}</a> 17 + <a ui-sref="deviceInfoManage">{{"deviceInfoManage_form_page_line17_txt-848" | translate}}</a>
18 <i class="fa fa-circle"></i> 18 <i class="fa fa-circle"></i>
19 </li> 19 </li>
20 <li> 20 <li>
21 - <span class="active">$$$$$${txt-845}</span> 21 + <span class="active">{{"deviceInfoManage_form_page_line21_txt-845" | translate}}</span>
22 </li> 22 </li>
23 </ul> 23 </ul>
24 24
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 <div class="portlet-title"> 26 <div class="portlet-title">
27 <div class="caption"> 27 <div class="caption">
28 <i class="icon-equalizer font-red-sunglo"></i> <span 28 <i class="icon-equalizer font-red-sunglo"></i> <span
29 - class="caption-subject font-red-sunglo bold uppercase">$$$$$${txt-3849}</span> 29 + class="caption-subject font-red-sunglo bold uppercase">{{"deviceInfoManage_form_page_line29_txt-3849" | translate}}</span>
30 </div> 30 </div>
31 </div> 31 </div>
32 32
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
35 <div class="form-body"> 35 <div class="form-body">
36 36
37 <div class="form-group has-success has-feedback"> 37 <div class="form-group has-success has-feedback">
38 - <label class="col-md-2 control-label">$$$$$${txt-3815}*:</label> 38 + <label class="col-md-2 control-label">{{"deviceInfoManage_form_page_line38_txt-3347" | translate}}*:</label>
39 <div class="col-md-3"> 39 <div class="col-md-3">
40 <sa-Select5 name="xl" 40 <sa-Select5 name="xl"
41 model="ctrl.deviceInfoForSave" 41 model="ctrl.deviceInfoForSave"
@@ -45,19 +45,19 @@ @@ -45,19 +45,19 @@
45 dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}" 45 dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}"
46 iterobjname="item" 46 iterobjname="item"
47 iterobjexp="item.name" 47 iterobjexp="item.name"
48 - searchph="$$$$$${txt-3364}" 48 + searchph="{{'deviceInfoManage_form_page_line48_txt-3364' | translate}}"
49 searchexp="this.name" 49 searchexp="this.name"
50 required > 50 required >
51 </sa-Select5> 51 </sa-Select5>
52 </div> 52 </div>
53 <!-- 隐藏块,显示验证信息 --> 53 <!-- 隐藏块,显示验证信息 -->
54 <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required"> 54 <div class="alert alert-danger well-sm" ng-show="myForm.xl.$error.required">
55 - $$$$$${txt-1788} 55 + {{"deviceInfoManage_form_page_line55_txt-1788" | translate}}
56 </div> 56 </div>
57 </div> 57 </div>
58 58
59 <div class="form-group has-success has-feedback"> 59 <div class="form-group has-success has-feedback">
60 - <label class="col-md-2 control-label">$$$$$${txt-3469}</label> 60 + <label class="col-md-2 control-label">{{"deviceInfoManage_form_page_line60_txt-3469" | translate}}</label>
61 <div class="col-md-3"> 61 <div class="col-md-3">
62 <sa-Select5 name="cl" 62 <sa-Select5 name="cl"
63 model="ctrl.deviceInfoForSave" 63 model="ctrl.deviceInfoForSave"
@@ -68,19 +68,19 @@ @@ -68,19 +68,19 @@
68 dsparamsextra="{'type':'all', 'isCancel_eq': false}" 68 dsparamsextra="{'type':'all', 'isCancel_eq': false}"
69 iterobjname="item" 69 iterobjname="item"
70 iterobjexp="item.cl.insideCode + '<' + item.xl.name + '>'" 70 iterobjexp="item.cl.insideCode + '<' + item.xl.name + '>'"
71 - searchph="$$$$$${txt-3364}" 71 + searchph="{{'deviceInfoManage_form_page_line71_txt-3364' | translate}}"
72 searchexp="this.cl.insideCode + '<' + this.xl.name + '>'" 72 searchexp="this.cl.insideCode + '<' + this.xl.name + '>'"
73 required > 73 required >
74 </sa-Select5> 74 </sa-Select5>
75 </div> 75 </div>
76 <!-- 隐藏块,显示验证信息 --> 76 <!-- 隐藏块,显示验证信息 -->
77 <div class="alert alert-danger well-sm" ng-show="myForm.cl.$error.required"> 77 <div class="alert alert-danger well-sm" ng-show="myForm.cl.$error.required">
78 - $$$$$${txt-1794} 78 + {{"deviceInfoManage_form_page_line78_txt-1794" | translate}}
79 </div> 79 </div>
80 </div> 80 </div>
81 81
82 <div class="form-group has-success has-feedback"> 82 <div class="form-group has-success has-feedback">
83 - <label class="col-md-2 control-label">$$$$$${txt-3216}*:</label> 83 + <label class="col-md-2 control-label">{{"deviceInfoManage_form_page_line83_txt-3216" | translate}}*:</label>
84 <div class="col-md-3"> 84 <div class="col-md-3">
85 <input type="text" class="form-control" name="oldDeviceNo" 85 <input type="text" class="form-control" name="oldDeviceNo"
86 ng-model="ctrl.deviceInfoForSave.oldDeviceNo" readonly/> 86 ng-model="ctrl.deviceInfoForSave.oldDeviceNo" readonly/>
@@ -88,18 +88,18 @@ @@ -88,18 +88,18 @@
88 </div> 88 </div>
89 89
90 <div class="form-group has-success has-feedback"> 90 <div class="form-group has-success has-feedback">
91 - <label class="col-md-2 control-label">$$$$$${txt-3201}*:</label> 91 + <label class="col-md-2 control-label">{{"deviceInfoManage_form_page_line91_txt-3201" | translate}}*:</label>
92 <div class="col-md-3"> 92 <div class="col-md-3">
93 <input type="text" class="form-control" 93 <input type="text" class="form-control"
94 name="newDeviceNo" ng-model="ctrl.deviceInfoForSave.newDeviceNo" 94 name="newDeviceNo" ng-model="ctrl.deviceInfoForSave.newDeviceNo"
95 remote-Validation 95 remote-Validation
96 remotevtype="cars_sbbh" 96 remotevtype="cars_sbbh"
97 remotevparam="{{ {'id_eq': null, 'equipmentCode_eq': ctrl.deviceInfoForSave.newDeviceNo} | json}}" 97 remotevparam="{{ {'id_eq': null, 'equipmentCode_eq': ctrl.deviceInfoForSave.newDeviceNo} | json}}"
98 - required placeholder="$$$$$${txt-1264}"/> 98 + required placeholder="{{'deviceInfoManage_form_page_line98_txt-1264' | translate}}"/>
99 </div> 99 </div>
100 <!-- 隐藏块,显示验证信息 --> 100 <!-- 隐藏块,显示验证信息 -->
101 <div class="alert alert-danger well-sm" ng-show="myForm.newDeviceNo.$error.required"> 101 <div class="alert alert-danger well-sm" ng-show="myForm.newDeviceNo.$error.required">
102 - $$$$$${txt-910} 102 + {{"deviceInfoManage_form_page_line102_txt-910" | translate}}
103 </div> 103 </div>
104 <div class="alert alert-danger well-sm" ng-show="myForm.newDeviceNo.$error.remote"> 104 <div class="alert alert-danger well-sm" ng-show="myForm.newDeviceNo.$error.remote">
105 {{$remote_msg}} 105 {{$remote_msg}}
@@ -107,23 +107,23 @@ @@ -107,23 +107,23 @@
107 </div> 107 </div>
108 108
109 <div class="form-group"> 109 <div class="form-group">
110 - <label class="col-md-2 control-label">$$$$$${txt-4422}</label> 110 + <label class="col-md-2 control-label">{{"deviceInfoManage_form_page_line110_txt-4422" | translate}}</label>
111 <div class="col-md-4"> 111 <div class="col-md-4">
112 <input type="text" class="form-control" ng-model="ctrl.deviceInfoForSave.oldSimNo" 112 <input type="text" class="form-control" ng-model="ctrl.deviceInfoForSave.oldSimNo"
113 - placeholder="$$$$$${txt-3357}"/> 113 + placeholder="{{'deviceInfoManage_form_page_line113_txt-3357' | translate}}"/>
114 </div> 114 </div>
115 </div> 115 </div>
116 116
117 <div class="form-group"> 117 <div class="form-group">
118 - <label class="col-md-2 control-label">$$$$$${txt-3701}</label> 118 + <label class="col-md-2 control-label">{{"deviceInfoManage_form_page_line118_txt-3701" | translate}}</label>
119 <div class="col-md-4"> 119 <div class="col-md-4">
120 <input type="text" class="form-control" ng-model="ctrl.deviceInfoForSave.newSimNo" 120 <input type="text" class="form-control" ng-model="ctrl.deviceInfoForSave.newSimNo"
121 - placeholder="$$$$$${txt-3356}"/> 121 + placeholder="{{'deviceInfoManage_form_page_line121_txt-3356' | translate}}"/>
122 </div> 122 </div>
123 </div> 123 </div>
124 124
125 <div class="form-group"> 125 <div class="form-group">
126 - <label class="col-md-2 control-label">$$$$$${txt-2258}</label> 126 + <label class="col-md-2 control-label">{{"deviceInfoManage_form_page_line126_txt-2258" | translate}}</label>
127 <div class="col-md-10"> 127 <div class="col-md-10">
128 <textarea rows="3" class="form-control" name="descriptions" 128 <textarea rows="3" class="form-control" name="descriptions"
129 ng-model="ctrl.deviceInfoForSave.troubleDesc"></textarea> 129 ng-model="ctrl.deviceInfoForSave.troubleDesc"></textarea>
@@ -131,7 +131,7 @@ @@ -131,7 +131,7 @@
131 </div> 131 </div>
132 132
133 <div class="form-group"> 133 <div class="form-group">
134 - <label class="col-md-2 control-label">$$$$$${txt-4403}</label> 134 + <label class="col-md-2 control-label">{{"deviceInfoManage_form_page_line134_txt-4403" | translate}}</label>
135 <div class="col-md-10"> 135 <div class="col-md-10">
136 <textarea rows="3" class="form-control" name="descriptions" 136 <textarea rows="3" class="form-control" name="descriptions"
137 ng-model="ctrl.deviceInfoForSave.guaranteeDesc"></textarea> 137 ng-model="ctrl.deviceInfoForSave.guaranteeDesc"></textarea>
@@ -194,12 +194,12 @@ @@ -194,12 +194,12 @@
194 <div class="form-actions"> 194 <div class="form-actions">
195 <div class="row"> 195 <div class="row">
196 <div class="col-md-offset-3 col-md-4"> 196 <div class="col-md-offset-3 col-md-4">
197 - <button type="submit" class="btn green" ng-disabled="!myForm.$valid"><i class="fa fa-check"></i> 提交</button>  
198 - <a type="button" class="btn default" ui-sref="deviceInfoManage" ><i class="fa fa-times"></i> $$$$$${txt-3817}</a> 197 + <button type="submit" class="btn green" ng-disabled="!myForm.$valid"><i class="fa fa-check"></i> {{"deviceInfoManage_form_page_line197_txt-4173" | translate}}</button>
  198 + <a type="button" class="btn default" ui-sref="deviceInfoManage" ><i class="fa fa-times"></i> {{"deviceInfoManage_form_page_line198_txt-3817" | translate}}</a>
199 </div> 199 </div>
200 </div> 200 </div>
201 </div> 201 </div>
202 </form> 202 </form>
203 </div> 203 </div>
204 204
205 -</div>  
206 \ No newline at end of file 205 \ No newline at end of file
  206 +</div>
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/index.html
1 <div class="page-head"> 1 <div class="page-head">
2 <div class="page-title"> 2 <div class="page-title">
3 - <h1>$$$$$${txt-848}</h1> 3 + <h1>{{"deviceInfoManage_index_page_line3_txt-848" | translate}}</h1>
4 </div> 4 </div>
5 </div> 5 </div>
6 6
7 <ul class="page-breadcrumb breadcrumb"> 7 <ul class="page-breadcrumb breadcrumb">
8 <li> 8 <li>
9 - <a href="/pages/home.html" data-pjax>$$$$$${txt-3807}</a> 9 + <a href="/pages/home.html" data-pjax>{{"deviceInfoManage_index_page_line9_txt-3807" | translate}}</a>
10 <i class="fa fa-circle"></i> 10 <i class="fa fa-circle"></i>
11 </li> 11 </li>
12 <li> 12 <li>
13 - <span class="active">$$$$$${txt-2398}</span> 13 + <span class="active">{{"deviceInfoManage_index_page_line13_txt-2398" | translate}}</span>
14 <i class="fa fa-circle"></i> 14 <i class="fa fa-circle"></i>
15 </li> 15 </li>
16 <li> 16 <li>
17 - <span class="active">$$$$$${txt-848}</span> 17 + <span class="active">{{"deviceInfoManage_index_page_line17_txt-848" | translate}}</span>
18 </li> 18 </li>
19 </ul> 19 </ul>
20 20
@@ -24,12 +24,12 @@ @@ -24,12 +24,12 @@
24 <div class="portlet-title"> 24 <div class="portlet-title">
25 <div class="caption font-dark"> 25 <div class="caption font-dark">
26 <i class="fa fa-database font-dark"></i> 26 <i class="fa fa-database font-dark"></i>
27 - <span class="caption-subject bold uppercase">$$$$$${txt-2233}</span> 27 + <span class="caption-subject bold uppercase">{{"deviceInfoManage_index_page_line27_txt-2233" | translate}}</span>
28 </div> 28 </div>
29 <div class="actions"> 29 <div class="actions">
30 <a href="javascript:" class="btn blue" ng-click="ctrl.goForm()"> 30 <a href="javascript:" class="btn blue" ng-click="ctrl.goForm()">
31 <i class="fa fa-plus"></i> 31 <i class="fa fa-plus"></i>
32 - $$$$$${txt-1791} 32 + {{"deviceInfoManage_index_page_line32_txt-1791" | translate}}
33 </a> 33 </a>
34 34
35 <!--<div class="btn-group">--> 35 <!--<div class="btn-group">-->
@@ -55,4 +55,4 @@ @@ -55,4 +55,4 @@
55 </div> 55 </div>
56 </div> 56 </div>
57 </div> 57 </div>
58 -</div>  
59 \ No newline at end of file 58 \ No newline at end of file
  59 +</div>
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/list.html
@@ -10,19 +10,19 @@ @@ -10,19 +10,19 @@
10 </style> 10 </style>
11 11
12 12
13 - <div style="width: 100%; height: 100%; overflow: auto"> 13 + <div class="fixDiv">
14 <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> 14 <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column">
15 <thead> 15 <thead>
16 <tr role="row" class="heading"> 16 <tr role="row" class="heading">
17 - <th style="width: 70px;">$$$$$${txt-3934}</th>  
18 - <th style="width: 15%;">$$$$$${txt-3347}</th>  
19 - <th style="width: 10%;">$$$$$${txt-2597}</th>  
20 - <th style="width: 160px;">$$$$$${txt-3211}</th>  
21 - <th>$$$$$${txt-2185}</th>  
22 - <th>$$$$$${txt-2184}</th>  
23 - <th style="width: 180px;">$$$$$${txt-4389}</th>  
24 - <th style="width: 80px;" >$$$$$${txt-3874}</th>  
25 - <th style="width: 150pt;">$$$$$${txt-3942}</th> 17 + <th style="width: 70px; max-width: 70px;white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"deviceInfoManage_list_page_line17_txt-3934" | translate}}</th>
  18 + <th style="width: 170px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"deviceInfoManage_list_page_line18_txt-3347" | translate}}</th>
  19 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"deviceInfoManage_list_page_line19_txt-2597" | translate}}</th>
  20 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"deviceInfoManage_list_page_line20_txt-3211" | translate}}</th>
  21 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"deviceInfoManage_list_page_line21_txt-2185" | translate}}</th>
  22 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"deviceInfoManage_list_page_line22_txt-2184" | translate}}</th>
  23 + <th style="width: 160px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"deviceInfoManage_list_page_line23_txt-4389" | translate}}</th>
  24 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"deviceInfoManage_list_page_line24_txt-3874" | translate}}</th>
  25 + <th style="width: 200px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"deviceInfoManage_list_page_line25_txt-3942" | translate}}</th>
26 </tr> 26 </tr>
27 <tr role="row" class="filter"> 27 <tr role="row" class="filter">
28 <td></td> 28 <td></td>
@@ -35,13 +35,14 @@ @@ -35,13 +35,14 @@
35 dsparams="{{ {type: 'ajax', param:{type: 'all'}, atype:'xl' } | json }}" 35 dsparams="{{ {type: 'ajax', param:{type: 'all'}, atype:'xl' } | json }}"
36 iterobjname="item" 36 iterobjname="item"
37 iterobjexp="item.name" 37 iterobjexp="item.name"
38 - searchph="$$$$$${txt-3364}" 38 + searchph="{{'deviceInfoManage_list_page_line38_txt-3364' | translate}}"
39 searchexp="this.name" 39 searchexp="this.name"
  40 + width="140"
40 required > 41 required >
41 </sa-Select5> 42 </sa-Select5>
42 </td> 43 </td>
43 <td> 44 <td>
44 - <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition()['clZbh_like']" placeholder="$$$$$${txt-1773}"/> 45 + <input type="text" class="form-control form-filter input-sm" ng-model="ctrl.searchCondition()['clZbh_like']" placeholder="{{'deviceInfoManage_list_page_line44_txt-1773' | translate}}"/>
45 </td> 46 </td>
46 <td></td> 47 <td></td>
47 <td></td> 48 <td></td>
@@ -49,14 +50,14 @@ @@ -49,14 +50,14 @@
49 <td></td> 50 <td></td>
50 <td> 51 <td>
51 <label class="checkbox-inline input"> 52 <label class="checkbox-inline input">
52 - <input type="checkbox" ng-model="ctrl.searchCondition()['isCancel_eq']" />$$$$$${txt-4162} 53 + <input type="checkbox" ng-model="ctrl.searchCondition()['isCancel_eq']" />{{"deviceInfoManage_list_page_line52_txt-4162" | translate}}
53 </label> 54 </label>
54 </td> 55 </td>
55 <td> 56 <td>
56 <div class="btn-group"> 57 <div class="btn-group">
57 <button class="btn btn-sm green btn-outline filter-submit margin-bottom" style="margin-right: 0;" 58 <button class="btn btn-sm green btn-outline filter-submit margin-bottom" style="margin-right: 0;"
58 ng-click="ctrl.doPage()"> 59 ng-click="ctrl.doPage()">
59 - <i class="fa fa-search"></i> $$$$$${txt-4001}</button> 60 + <i class="fa fa-search"></i> {{"deviceInfoManage_list_page_line59_txt-4001" | translate}}</button>
60 <button class="btn btn-sm green btn-outline filter-submit margin-bottom dropdown-toggle" 61 <button class="btn btn-sm green btn-outline filter-submit margin-bottom dropdown-toggle"
61 data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 62 data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
62 <span class="caret"></span> 63 <span class="caret"></span>
@@ -66,7 +67,7 @@ @@ -66,7 +67,7 @@
66 <li> 67 <li>
67 <a href="javascript:" class="tool-action" ng-click="ctrl.customOrder()"> 68 <a href="javascript:" class="tool-action" ng-click="ctrl.customOrder()">
68 <i class="fa fa-sort-amount-asc" aria-hidden="true"></i> 69 <i class="fa fa-sort-amount-asc" aria-hidden="true"></i>
69 - $$$$$${txt-3385} 70 + {{"deviceInfoManage_list_page_line69_txt-3385" | translate}}
70 </a> 71 </a>
71 </li> 72 </li>
72 </ul> 73 </ul>
@@ -74,7 +75,7 @@ @@ -74,7 +75,7 @@
74 75
75 <button class="btn btn-sm red btn-outline filter-cancel" 76 <button class="btn btn-sm red btn-outline filter-cancel"
76 ng-click="ctrl.reset()"> 77 ng-click="ctrl.reset()">
77 - <i class="fa fa-times"></i> $$$$$${txt-4000}</button> 78 + <i class="fa fa-times"></i> {{"deviceInfoManage_list_page_line77_txt-4000" | translate}}</button>
78 </td> 79 </td>
79 80
80 </tr> 81 </tr>
@@ -119,12 +120,12 @@ @@ -119,12 +120,12 @@
119 120
120 </td> 121 </td>
121 <td> 122 <td>
122 - <span ng-bind="info.isCancel | dict:'truefalseType':'$$$$$${txt-4058}' "></span> 123 + <span ng-bind="info.isCancel | dict:'truefalseType':('deviceInfoManage_list_page_line122_txt-4058' | translate) "></span>
123 </td> 124 </td>
124 <td> 125 <td>
125 <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> 126 <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>-->
126 <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> 127 <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>-->
127 - <a ui-sref="deviceInfoManage_detail({id: info.id})" class="btn btn-info btn-sm"> $$$$$${txt-3866} </a> 128 + <a ui-sref="deviceInfoManage_detail({id: info.id})" class="btn btn-info btn-sm"> {{"deviceInfoManage_list_page_line127_txt-3866" | translate}} </a>
128 <!--<a ui-sref="deviceInfoManage_edit({id: info.id})" class="btn btn-info btn-sm" ng-if="info.isCancel == '0'"> 修改 </a>--> 129 <!--<a ui-sref="deviceInfoManage_edit({id: info.id})" class="btn btn-info btn-sm" ng-if="info.isCancel == '0'"> 修改 </a>-->
129 <!--<a sweetalert--> 130 <!--<a sweetalert-->
130 <!--sweet-options="{title: '是否作废车辆设备历史信息?',text: '内部编号:' + info.clZbh, html: true,type: 'warning',showCancelButton: true,confirmButtonColor: '#DD6B55',confirmButtonText: '是',cancelButtonText: '取消'}"--> 131 <!--sweet-options="{title: '是否作废车辆设备历史信息?',text: '内部编号:' + info.clZbh, html: true,type: 'warning',showCancelButton: true,confirmButtonColor: '#DD6B55',confirmButtonText: '是',cancelButtonText: '取消'}"-->
@@ -140,8 +141,11 @@ @@ -140,8 +141,11 @@
140 </div> 141 </div>
141 142
142 <div class="pageBar"> 143 <div class="pageBar">
143 - <div class="pageBarLeft">  
144 - $$$$$${txt-3053} 144 + <div class="pageBarLeft"
  145 + translate="employeeInfoManage_list_page_line189_txt-3053"
  146 + translate-value-from="{{ ctrl.page()['uiFromRecord'] }}"
  147 + translate-value-to="{{ ctrl.page()['uiToRecord'] }}"
  148 + translate-value-total="{{ ctrl.page()['totalElements'] }}">
145 </div> 149 </div>
146 150
147 <div class="pageBarRight"> 151 <div class="pageBarRight">
@@ -151,10 +155,10 @@ @@ -151,10 +155,10 @@
151 rotate="false" 155 rotate="false"
152 max-size="10" 156 max-size="10"
153 boundary-links="true" 157 boundary-links="true"
154 - first-text="$$$$$${txt-4430}"  
155 - previous-text="$$$$$${txt-3613}"  
156 - next-text="$$$$$${txt-3614}"  
157 - last-text="$$$$$${txt-4068}"> 158 + first-text="{{'deviceInfoManage_list_page_line157_txt-4430' | translate}}"
  159 + previous-text="{{'deviceInfoManage_list_page_line158_txt-3613' | translate}}"
  160 + next-text="{{'deviceInfoManage_list_page_line159_txt-3614' | translate}}"
  161 + last-text="{{'deviceInfoManage_list_page_line160_txt-4068' | translate}}">
158 </uib-pagination> 162 </uib-pagination>
159 </div> 163 </div>
160 </div> 164 </div>
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/module.js
@@ -5,7 +5,8 @@ angular.module(&#39;ScheduleApp&#39;).factory( @@ -5,7 +5,8 @@ angular.module(&#39;ScheduleApp&#39;).factory(
5 [ 5 [
6 'DeviceInfoManageService_g', 6 'DeviceInfoManageService_g',
7 'UserPrincipal', 7 'UserPrincipal',
8 - function(service, UserPrincipal) { 8 + '$translate',
  9 + function(service, UserPrincipal, translate) {
9 /** 当前的查询条件信息 */ 10 /** 当前的查询条件信息 */
10 var currentSearchCondition = {'isCancel_eq': false}; 11 var currentSearchCondition = {'isCancel_eq': false};
11 12
@@ -22,11 +23,11 @@ angular.module(&#39;ScheduleApp&#39;).factory( @@ -22,11 +23,11 @@ angular.module(&#39;ScheduleApp&#39;).factory(
22 23
23 // 字段描述 24 // 字段描述
24 var columns = [ 25 var columns = [
25 - {name: "xl", desc: i18n('txt-3347')},  
26 - {name: "clZbh", desc: i18n('txt-1476')},  
27 - {name: "qyrq", desc: i18n('txt-3211')},  
28 - {name: "oldDeviceNo", desc: i18n('txt-2185')},  
29 - {name: "newDeviceNo", desc: i18n('txt-3201')} 26 + {name: "xl", desc: translate.instant("deviceInfoManage_module_js_line26_txt-3347")},
  27 + {name: "clZbh", desc: translate.instant("deviceInfoManage_module_js_line27_txt-1476")},
  28 + {name: "qyrq", desc: translate.instant("deviceInfoManage_module_js_line28_txt-3211")},
  29 + {name: "oldDeviceNo", desc: translate.instant("deviceInfoManage_module_js_line29_txt-2185")},
  30 + {name: "newDeviceNo", desc: translate.instant("deviceInfoManage_module_js_line30_txt-3201")}
30 ]; 31 ];
31 // 排序字段 32 // 排序字段
32 var orderColumns = { 33 var orderColumns = {
@@ -117,7 +118,8 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -117,7 +118,8 @@ angular.module(&#39;ScheduleApp&#39;).controller(
117 [ 118 [
118 'DeviceInfoManageService', 119 'DeviceInfoManageService',
119 '$uibModal', 120 '$uibModal',
120 - function(service, $uibModal) { 121 + '$translate',
  122 + function(service, $uibModal, translate) {
121 var self = this; 123 var self = this;
122 var CarDevice = service.getQueryClass(); 124 var CarDevice = service.getQueryClass();
123 125
@@ -143,7 +145,7 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -143,7 +145,7 @@ angular.module(&#39;ScheduleApp&#39;).controller(
143 self.toggleCarDevice = function(id) { 145 self.toggleCarDevice = function(id) {
144 CarDevice.delete({id: id}, function(result) { 146 CarDevice.delete({id: id}, function(result) {
145 if (result.msg) { // 暂时这样做,之后全局拦截 147 if (result.msg) { // 暂时这样做,之后全局拦截
146 - alert(i18n('txt-3729') + result.msg); 148 + alert(translate.instant("deviceInfoManage_module_js_line148_txt-3729") + result.msg);
147 } else { 149 } else {
148 self.doPage(); 150 self.doPage();
149 } 151 }
@@ -252,7 +254,8 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -252,7 +254,8 @@ angular.module(&#39;ScheduleApp&#39;).controller(
252 [ 254 [
253 'DeviceInfoManageService', 255 'DeviceInfoManageService',
254 '$stateParams', 256 '$stateParams',
255 - function(service, $stateParams) { 257 + '$translate',
  258 + function(service, $stateParams, translate) {
256 var self = this; 259 var self = this;
257 var CarDevice = service.getQueryClass(); 260 var CarDevice = service.getQueryClass();
258 var id = $stateParams.id; 261 var id = $stateParams.id;
@@ -263,9 +266,9 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -263,9 +266,9 @@ angular.module(&#39;ScheduleApp&#39;).controller(
263 // 当转向到此页面时,就获取明细信息并绑定 266 // 当转向到此页面时,就获取明细信息并绑定
264 CarDevice.get({id: id}, function(value) { 267 CarDevice.get({id: id}, function(value) {
265 self.deviceInfoForDetail = value; 268 self.deviceInfoForDetail = value;
266 - self.title = i18n('txt-3243',[self.deviceInfoForDetail.clZbh]); 269 + self.title = translate.instant("deviceInfoManage_module_js_line269_txt-3243", {clZbh: self.deviceInfoForDetail.clZbh});
267 }); 270 });
268 271
269 } 272 }
270 ] 273 ]
271 -);  
272 \ No newline at end of file 274 \ No newline at end of file
  275 +);
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/orderOptionOpen.html
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <div class="modal-title"> 2 <div class="modal-title">
3 <h3> 3 <h3>
4 <i class="fa fa-sort-amount-asc" aria-hidden="true"></i> 4 <i class="fa fa-sort-amount-asc" aria-hidden="true"></i>
5 - <span class="caption-subject bold uppercase">$$$$$${txt-1682}</span> 5 + <span class="caption-subject bold uppercase">{{"deviceInfoManage_orderOptionOpen_page_line5_txt-1682" | translate}}</span>
6 </h3> 6 </h3>
7 </div> 7 </div>
8 </div> 8 </div>
@@ -14,5 +14,5 @@ @@ -14,5 +14,5 @@
14 </sa-Orderoption> 14 </sa-Orderoption>
15 </div> 15 </div>
16 <div class="modal-footer"> 16 <div class="modal-footer">
17 - <button class="btn btn-primary" ng-click="$ctrl.confirm($ctrl.orderColumns)">$$$$$${txt-4018}</button>  
18 -</div>  
19 \ No newline at end of file 17 \ No newline at end of file
  18 + <button class="btn btn-primary" ng-click="$ctrl.confirm($ctrl.orderColumns)">{{"deviceInfoManage_orderOptionOpen_page_line17_txt-4018" | translate}}</button>
  19 +</div>
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/detail.html
1 <div class="page-head"> 1 <div class="page-head">
2 <div class="page-title"> 2 <div class="page-title">
3 - <h1>$$$$$${txt-1650}</h1> 3 + <h1>{{"employeeInfoManage_detail_page_line3_txt-1650" | translate}}</h1>
4 </div> 4 </div>
5 </div> 5 </div>
6 6
7 <ul class="page-breadcrumb breadcrumb"> 7 <ul class="page-breadcrumb breadcrumb">
8 <li> 8 <li>
9 - <a href="/pages/home.html" data-pjax>$$$$$${txt-3807}</a> 9 + <a href="/pages/home.html" data-pjax>{{"employeeInfoManage_detail_page_line9_txt-3807" | translate}}</a>
10 <i class="fa fa-circle"></i> 10 <i class="fa fa-circle"></i>
11 </li> 11 </li>
12 <li> 12 <li>
13 - <span class="active">$$$$$${txt-2398}</span> 13 + <span class="active">{{"employeeInfoManage_detail_page_line13_txt-2398" | translate}}</span>
14 <i class="fa fa-circle"></i> 14 <i class="fa fa-circle"></i>
15 </li> 15 </li>
16 <li> 16 <li>
17 - <a ui-sref="employeeInfoManage">$$$$$${txt-1658}</a> 17 + <a ui-sref="employeeInfoManage">{{"employeeInfoManage_detail_page_line17_txt-1658" | translate}}</a>
18 <i class="fa fa-circle"></i> 18 <i class="fa fa-circle"></i>
19 </li> 19 </li>
20 <li> 20 <li>
21 - <span class="active">$$$$$${txt-1650}</span> 21 + <span class="active">{{"employeeInfoManage_detail_page_line21_txt-1650" | translate}}</span>
22 </li> 22 </li>
23 </ul> 23 </ul>
24 24
@@ -35,58 +35,58 @@ @@ -35,58 +35,58 @@
35 <form class="form-horizontal" novalidate name="myForm"> 35 <form class="form-horizontal" novalidate name="myForm">
36 <div class="form-body"> 36 <div class="form-body">
37 <div class="form-group has-success has-feedback"> 37 <div class="form-group has-success has-feedback">
38 - <label class="col-md-2 control-label">$$$$$${txt-2686}*:</label> 38 + <label class="col-md-2 control-label">{{"employeeInfoManage_detail_page_line38_txt-2686" | translate}}*:</label>
39 <div class="col-md-3"> 39 <div class="col-md-3">
40 <input type="text" class="form-control" name="company" 40 <input type="text" class="form-control" name="company"
41 ng-model="ctrl.employeeInfoForDetail.company" readonly/> 41 ng-model="ctrl.employeeInfoForDetail.company" readonly/>
42 </div> 42 </div>
43 </div> 43 </div>
44 <div class="form-group"> 44 <div class="form-group">
45 - <label class="col-md-2 control-label">$$$$$${txt-1765}</label> 45 + <label class="col-md-2 control-label">{{"employeeInfoManage_detail_page_line45_txt-1765" | translate}}</label>
46 <div class="col-md-3"> 46 <div class="col-md-3">
47 <input type="text" class="form-control" name="brancheCompany" 47 <input type="text" class="form-control" name="brancheCompany"
48 ng-model="ctrl.employeeInfoForDetail.brancheCompany" readonly/> 48 ng-model="ctrl.employeeInfoForDetail.brancheCompany" readonly/>
49 </div> 49 </div>
50 </div> 50 </div>
51 <div class="form-group has-success has-feedback"> 51 <div class="form-group has-success has-feedback">
52 - <label class="col-md-2 control-label">$$$$$${txt-3955}*:</label> 52 + <label class="col-md-2 control-label">{{"employeeInfoManage_detail_page_line52_txt-3955" | translate}}*:</label>
53 <div class="col-md-3"> 53 <div class="col-md-3">
54 <input type="text" class="form-control" name="jobCode" 54 <input type="text" class="form-control" name="jobCode"
55 ng-model="ctrl.employeeInfoForDetail.jobCode" readonly/> 55 ng-model="ctrl.employeeInfoForDetail.jobCode" readonly/>
56 </div> 56 </div>
57 </div> 57 </div>
58 <div class="form-group has-success has-feedback"> 58 <div class="form-group has-success has-feedback">
59 - <label class="col-md-2 control-label">$$$$$${txt-3949}*:</label> 59 + <label class="col-md-2 control-label">{{"employeeInfoManage_detail_page_line59_txt-3949" | translate}}*:</label>
60 <div class="col-md-3"> 60 <div class="col-md-3">
61 <input type="text" class="form-control" name="personnelName" 61 <input type="text" class="form-control" name="personnelName"
62 ng-model="ctrl.employeeInfoForDetail.personnelName" readonly/> 62 ng-model="ctrl.employeeInfoForDetail.personnelName" readonly/>
63 </div> 63 </div>
64 </div> 64 </div>
65 <div class="form-group"> 65 <div class="form-group">
66 - <label class="col-md-2 control-label">$$$$$${txt-902}</label> 66 + <label class="col-md-2 control-label">{{"employeeInfoManage_detail_page_line66_txt-902" | translate}}</label>
67 <div class="col-md-4"> 67 <div class="col-md-4">
68 <input type="text" class="form-control" name="papersCode" 68 <input type="text" class="form-control" name="papersCode"
69 ng-model="ctrl.employeeInfoForDetail.papersCode" readonly/> 69 ng-model="ctrl.employeeInfoForDetail.papersCode" readonly/>
70 </div> 70 </div>
71 </div> 71 </div>
72 <div class="form-group"> 72 <div class="form-group">
73 - <label class="col-md-2 control-label">$$$$$${txt-903}</label> 73 + <label class="col-md-2 control-label">{{"employeeInfoManage_detail_page_line73_txt-903" | translate}}</label>
74 <div class="col-md-4"> 74 <div class="col-md-4">
75 <input type="text" class="form-control" name="icCardCode" 75 <input type="text" class="form-control" name="icCardCode"
76 ng-model="ctrl.employeeInfoForDetail.icCardCode" readonly/> 76 ng-model="ctrl.employeeInfoForDetail.icCardCode" readonly/>
77 </div> 77 </div>
78 </div> 78 </div>
79 <div class="form-group"> 79 <div class="form-group">
80 - <label class="col-md-2 control-label">$$$$$${txt-3698}</label> 80 + <label class="col-md-2 control-label">{{"employeeInfoManage_detail_page_line80_txt-3698" | translate}}</label>
81 <div class="col-md-4"> 81 <div class="col-md-4">
82 <sa-Radiogroup model="ctrl.employeeInfoForDetail.personnelType" disabled="true" dicgroup="sexType" name="personnelType"></sa-Radiogroup> 82 <sa-Radiogroup model="ctrl.employeeInfoForDetail.personnelType" disabled="true" dicgroup="sexType" name="personnelType"></sa-Radiogroup>
83 </div> 83 </div>
84 </div> 84 </div>
85 <div class="form-group"> 85 <div class="form-group">
86 - <label class="col-md-2 control-label">$$$$$${txt-3703}</label> 86 + <label class="col-md-2 control-label">{{"employeeInfoManage_detail_page_line86_txt-3703" | translate}}</label>
87 <div class="col-md-4"> 87 <div class="col-md-4">
88 <input type="text" class="form-control" name="posts" 88 <input type="text" class="form-control" name="posts"
89 - ng-value="ctrl.employeeInfoForDetail.posts | dict:'gzType':'$$$$$${txt-4058}'" readonly/> 89 + ng-value="ctrl.employeeInfoForDetail.posts | dict:'gzType':('employeeInfoManage_detail_page_line89_txt-4058' | translate)" readonly/>
90 </div> 90 </div>
91 </div> 91 </div>
92 92
@@ -96,4 +96,4 @@ @@ -96,4 +96,4 @@
96 </form> 96 </form>
97 </div> 97 </div>
98 98
99 -</div>  
100 \ No newline at end of file 99 \ No newline at end of file
  100 +</div>
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/edit.html
1 <div class="page-head"> 1 <div class="page-head">
2 <div class="page-title"> 2 <div class="page-title">
3 - <h1>$$$$$${txt-1643}</h1> 3 + <h1>{{"employeeInfoManage_edit_page_line3_txt-1643" | translate}}</h1>
4 </div> 4 </div>
5 </div> 5 </div>
6 6
7 <ul class="page-breadcrumb breadcrumb"> 7 <ul class="page-breadcrumb breadcrumb">
8 <li> 8 <li>
9 - <a href="/pages/home.html" data-pjax>$$$$$${txt-3807}</a> 9 + <a href="/pages/home.html" data-pjax>{{"employeeInfoManage_edit_page_line9_txt-3807" | translate}}</a>
10 <i class="fa fa-circle"></i> 10 <i class="fa fa-circle"></i>
11 </li> 11 </li>
12 <li> 12 <li>
13 - <span class="active">$$$$$${txt-2398}</span> 13 + <span class="active">{{"employeeInfoManage_edit_page_line13_txt-2398" | translate}}</span>
14 <i class="fa fa-circle"></i> 14 <i class="fa fa-circle"></i>
15 </li> 15 </li>
16 <li> 16 <li>
17 - <a ui-sref="employeeInfoManage">$$$$$${txt-1658}</a> 17 + <a ui-sref="employeeInfoManage">{{"employeeInfoManage_edit_page_line17_txt-1658" | translate}}</a>
18 <i class="fa fa-circle"></i> 18 <i class="fa fa-circle"></i>
19 </li> 19 </li>
20 <li> 20 <li>
21 - <span class="active">$$$$$${txt-1643}</span> 21 + <span class="active">{{"employeeInfoManage_edit_page_line21_txt-1643" | translate}}</span>
22 </li> 22 </li>
23 </ul> 23 </ul>
24 24
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 <div class="portlet-title"> 26 <div class="portlet-title">
27 <div class="caption"> 27 <div class="caption">
28 <i class="icon-equalizer font-red-sunglo"></i> <span 28 <i class="icon-equalizer font-red-sunglo"></i> <span
29 - class="caption-subject font-red-sunglo bold uppercase">$$$$$${txt-3849}</span> 29 + class="caption-subject font-red-sunglo bold uppercase">{{"employeeInfoManage_edit_page_line29_txt-3849" | translate}}</span>
30 </div> 30 </div>
31 </div> 31 </div>
32 32
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 <form ng-submit="ctrl.submit()" class="form-horizontal" novalidate name="myForm"> 34 <form ng-submit="ctrl.submit()" class="form-horizontal" novalidate name="myForm">
35 <div class="form-body"> 35 <div class="form-body">
36 <div class="form-group has-success has-feedback"> 36 <div class="form-group has-success has-feedback">
37 - <label class="col-md-2 control-label">$$$$$${txt-2686}*:</label> 37 + <label class="col-md-2 control-label">{{"employeeInfoManage_edit_page_line37_txt-2686" | translate}}*:</label>
38 <div class="col-md-3"> 38 <div class="col-md-3">
39 <sa-Select5 name="gs" 39 <sa-Select5 name="gs"
40 model="ctrl.employeeInfoForSave" 40 model="ctrl.employeeInfoForSave"
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 dsparams="{{ {type: 'ajax', param:{'upCode_eq': '88' }, atype:'gs' } | json }}" 44 dsparams="{{ {type: 'ajax', param:{'upCode_eq': '88' }, atype:'gs' } | json }}"
45 iterobjname="item" 45 iterobjname="item"
46 iterobjexp="item.businessName" 46 iterobjexp="item.businessName"
47 - searchph="$$$$$${txt-973}" 47 + searchph="{{'employeeInfoManage_edit_page_line47_txt-973' | translate}}"
48 searchexp="this.businessName" 48 searchexp="this.businessName"
49 required 49 required
50 > 50 >
@@ -52,12 +52,12 @@ @@ -52,12 +52,12 @@
52 </div> 52 </div>
53 <!-- 隐藏块,显示验证信息 --> 53 <!-- 隐藏块,显示验证信息 -->
54 <div class="alert alert-danger well-sm" ng-show="myForm.gs.$error.required"> 54 <div class="alert alert-danger well-sm" ng-show="myForm.gs.$error.required">
55 - $$$$$${txt-1792} 55 + {{"employeeInfoManage_edit_page_line55_txt-1792" | translate}}
56 </div> 56 </div>
57 </div> 57 </div>
58 58
59 <div class="form-group has-success has-feedback"> 59 <div class="form-group has-success has-feedback">
60 - <label class="col-md-2 control-label">$$$$$${txt-3777}*:</label> 60 + <label class="col-md-2 control-label">{{"employeeInfoManage_edit_page_line60_txt-3777" | translate}}*:</label>
61 <div class="col-md-3"> 61 <div class="col-md-3">
62 <sa-Select5 name="fgs" 62 <sa-Select5 name="fgs"
63 model="ctrl.employeeInfoForSave" 63 model="ctrl.employeeInfoForSave"
@@ -67,33 +67,32 @@ @@ -67,33 +67,32 @@
67 dsparams="{{ {type: 'ajax', param:{'upCode_eq': ctrl.employeeInfoForSave.companyCode }, atype:'gs' } | json }}" 67 dsparams="{{ {type: 'ajax', param:{'upCode_eq': ctrl.employeeInfoForSave.companyCode }, atype:'gs' } | json }}"
68 iterobjname="item" 68 iterobjname="item"
69 iterobjexp="item.businessName" 69 iterobjexp="item.businessName"
70 - searchph="$$$$$${txt-973}" 70 + searchph="{{'employeeInfoManage_edit_page_line70_txt-973' | translate}}"
71 searchexp="this.businessName" 71 searchexp="this.businessName"
72 required 72 required
73 > 73 >
74 </sa-Select5> 74 </sa-Select5>
75 75
76 </div> 76 </div>
77 -  
78 <!-- 隐藏块,显示验证信息 --> 77 <!-- 隐藏块,显示验证信息 -->
79 <div class="alert alert-danger well-sm" ng-show="myForm.fgs.$error.required"> 78 <div class="alert alert-danger well-sm" ng-show="myForm.fgs.$error.required">
80 - $$$$$${txt-923} 79 + {{"employeeInfoManage_edit_page_line79_txt-923" | translate}}
81 </div> 80 </div>
82 </div> 81 </div>
83 82
84 <div class="form-group has-success has-feedback"> 83 <div class="form-group has-success has-feedback">
85 - <label class="col-md-2 control-label">$$$$$${txt-3940}*:</label> 84 + <label class="col-md-2 control-label">{{"employeeInfoManage_edit_page_line84_txt-3940" | translate}}*:</label>
86 <div class="col-md-3"> 85 <div class="col-md-3">
87 <input type="text" class="form-control" 86 <input type="text" class="form-control"
88 name="jobCode" ng-model="ctrl.employeeInfoForSave.jobCodeori" 87 name="jobCode" ng-model="ctrl.employeeInfoForSave.jobCodeori"
89 - required placeholder="$$$$$${txt-2346}" 88 + required placeholder="{{'employeeInfoManage_edit_page_line88_txt-2346' | translate}}"
90 remote-Validation 89 remote-Validation
91 remotevtype="ee_gh" 90 remotevtype="ee_gh"
92 remotevparam="{{ {'id_eq': ctrl.employeeInfoForSave.id, 'companyCode_eq' : ctrl.employeeInfoForSave.companyCode, 'jobCode_eq': ctrl.employeeInfoForSave.jobCode} | json}}"/> 91 remotevparam="{{ {'id_eq': ctrl.employeeInfoForSave.id, 'companyCode_eq' : ctrl.employeeInfoForSave.companyCode, 'jobCode_eq': ctrl.employeeInfoForSave.jobCode} | json}}"/>
93 </div> 92 </div>
94 <!-- 隐藏块,显示验证信息 --> 93 <!-- 隐藏块,显示验证信息 -->
95 <div class="alert alert-danger well-sm" ng-show="myForm.jobCode.$error.required"> 94 <div class="alert alert-danger well-sm" ng-show="myForm.jobCode.$error.required">
96 - $$$$$${txt-1793} 95 + {{"employeeInfoManage_edit_page_line95_txt-1793" | translate}}
97 </div> 96 </div>
98 <div class="alert alert-danger well-sm" ng-show="myForm.jobCode.$error.remote"> 97 <div class="alert alert-danger well-sm" ng-show="myForm.jobCode.$error.remote">
99 {{$remote_msg}} 98 {{$remote_msg}}
@@ -101,43 +100,43 @@ @@ -101,43 +100,43 @@
101 </div> 100 </div>
102 101
103 <div class="form-group has-success has-feedback"> 102 <div class="form-group has-success has-feedback">
104 - <label class="col-md-2 control-label">$$$$$${txt-3949}*:</label> 103 + <label class="col-md-2 control-label">{{"employeeInfoManage_edit_page_line103_txt-3949" | translate}}*:</label>
105 <div class="col-md-3"> 104 <div class="col-md-3">
106 <input type="text" class="form-control" 105 <input type="text" class="form-control"
107 name="personnelName" ng-model="ctrl.employeeInfoForSave.personnelName" 106 name="personnelName" ng-model="ctrl.employeeInfoForSave.personnelName"
108 - required placeholder="$$$$$${txt-2345}"/> 107 + required placeholder="{{'employeeInfoManage_edit_page_line107_txt-2345' | translate}}"/>
109 </div> 108 </div>
110 <!-- 隐藏块,显示验证信息 --> 109 <!-- 隐藏块,显示验证信息 -->
111 <div class="alert alert-danger well-sm" ng-show="myForm.personnelName.$error.required"> 110 <div class="alert alert-danger well-sm" ng-show="myForm.personnelName.$error.required">
112 - $$$$$${txt-1787} 111 + {{"employeeInfoManage_edit_page_line111_txt-1787" | translate}}
113 </div> 112 </div>
114 </div> 113 </div>
115 114
116 <div class="form-group"> 115 <div class="form-group">
117 - <label class="col-md-2 control-label">$$$$$${txt-902}</label> 116 + <label class="col-md-2 control-label">{{"employeeInfoManage_edit_page_line116_txt-902" | translate}}</label>
118 <div class="col-md-4"> 117 <div class="col-md-4">
119 <input type="text" class="form-control" ng-model="ctrl.employeeInfoForSave.papersCode" 118 <input type="text" class="form-control" ng-model="ctrl.employeeInfoForSave.papersCode"
120 - placeholder="$$$$$${txt-516}"/> 119 + placeholder="{{'employeeInfoManage_edit_page_line119_txt-516' | translate}}"/>
121 </div> 120 </div>
122 </div> 121 </div>
123 122
124 <div class="form-group"> 123 <div class="form-group">
125 - <label class="col-md-2 control-label">$$$$$${txt-2244}</label> 124 + <label class="col-md-2 control-label">{{"employeeInfoManage_edit_page_line124_txt-2244" | translate}}</label>
126 <div class="col-md-4"> 125 <div class="col-md-4">
127 <input type="text" class="form-control" ng-model="ctrl.employeeInfoForSave.icCardCode" 126 <input type="text" class="form-control" ng-model="ctrl.employeeInfoForSave.icCardCode"
128 - placeholder="$$$$$${txt-517}"/> 127 + placeholder="{{'employeeInfoManage_edit_page_line127_txt-517' | translate}}"/>
129 </div> 128 </div>
130 </div> 129 </div>
131 130
132 <div class="form-group"> 131 <div class="form-group">
133 - <label class="col-md-2 control-label">$$$$$${txt-3698}</label> 132 + <label class="col-md-2 control-label">{{"employeeInfoManage_edit_page_line132_txt-3698" | translate}}</label>
134 <div class="col-md-4"> 133 <div class="col-md-4">
135 <sa-Radiogroup model="ctrl.employeeInfoForSave.personnelType" dicgroup="sexType" name="personnelType"></sa-Radiogroup> 134 <sa-Radiogroup model="ctrl.employeeInfoForSave.personnelType" dicgroup="sexType" name="personnelType"></sa-Radiogroup>
136 </div> 135 </div>
137 </div> 136 </div>
138 137
139 <div class="form-group"> 138 <div class="form-group">
140 - <label class="col-md-2 control-label">$$$$$${txt-3703}</label> 139 + <label class="col-md-2 control-label">{{"employeeInfoManage_edit_page_line139_txt-3703" | translate}}</label>
141 <div class="col-md-4"> 140 <div class="col-md-4">
142 <sa-Select5 name="posts" 141 <sa-Select5 name="posts"
143 model="ctrl.employeeInfoForSave" 142 model="ctrl.employeeInfoForSave"
@@ -147,7 +146,7 @@ @@ -147,7 +146,7 @@
147 dsparams="{{ {type: 'dic', param: 'gzType' } | json }}" 146 dsparams="{{ {type: 'dic', param: 'gzType' } | json }}"
148 iterobjname="item" 147 iterobjname="item"
149 iterobjexp="item.name" 148 iterobjexp="item.name"
150 - searchph="$$$$$${txt-3364}" 149 + searchph="{{'employeeInfoManage_edit_page_line149_txt-3364' | translate}}"
151 searchexp="this.name" 150 searchexp="this.name"
152 > 151 >
153 </sa-Select5> 152 </sa-Select5>
@@ -155,7 +154,7 @@ @@ -155,7 +154,7 @@
155 </div> 154 </div>
156 155
157 <div class="form-group"> 156 <div class="form-group">
158 - <label class="col-md-2 control-label">$$$$$${txt-3449}</label> 157 + <label class="col-md-2 control-label">{{"employeeInfoManage_edit_page_line157_txt-3449" | translate}}</label>
159 <div class="col-md-3"> 158 <div class="col-md-3">
160 <textarea class="form-control" 159 <textarea class="form-control"
161 ng-model="ctrl.employeeInfoForSave.remark" 160 ng-model="ctrl.employeeInfoForSave.remark"
@@ -172,8 +171,8 @@ @@ -172,8 +171,8 @@
172 <div class="form-actions"> 171 <div class="form-actions">
173 <div class="row"> 172 <div class="row">
174 <div class="col-md-offset-3 col-md-4"> 173 <div class="col-md-offset-3 col-md-4">
175 - <button type="submit" class="btn green" ng-disabled="!myForm.$valid"><i class="fa fa-check"></i> 提交</button>  
176 - <a type="button" class="btn default" ui-sref="employeeInfoManage" ><i class="fa fa-times"></i> $$$$$${txt-3817}</a> 174 + <button type="submit" class="btn green" ng-disabled="!myForm.$valid"><i class="fa fa-check"></i> {{"employeeInfoManage_edit_page_line174_txt-4173" | translate}}</button>
  175 + <a type="button" class="btn default" ui-sref="employeeInfoManage" ><i class="fa fa-times"></i> {{"employeeInfoManage_edit_page_line175_txt-3817" | translate}}</a>
177 </div> 176 </div>
178 </div> 177 </div>
179 </div> 178 </div>
@@ -181,4 +180,4 @@ @@ -181,4 +180,4 @@
181 </form> 180 </form>
182 </div> 181 </div>
183 182
184 -</div>  
185 \ No newline at end of file 183 \ No newline at end of file
  184 +</div>
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/form.html
1 <div class="page-head"> 1 <div class="page-head">
2 <div class="page-title"> 2 <div class="page-title">
3 - <h1>$$$$$${txt-1648}</h1> 3 + <h1>{{"employeeInfoManage_form_page_line3_txt-1648" | translate}}</h1>
4 </div> 4 </div>
5 </div> 5 </div>
6 6
7 <ul class="page-breadcrumb breadcrumb"> 7 <ul class="page-breadcrumb breadcrumb">
8 <li> 8 <li>
9 - <a href="/pages/home.html" data-pjax>$$$$$${txt-3807}</a> 9 + <a href="/pages/home.html" data-pjax>{{"employeeInfoManage_form_page_line9_txt-3807" | translate}}</a>
10 <i class="fa fa-circle"></i> 10 <i class="fa fa-circle"></i>
11 </li> 11 </li>
12 <li> 12 <li>
13 - <span class="active">$$$$$${txt-2398}</span> 13 + <span class="active">{{"employeeInfoManage_form_page_line13_txt-2398" | translate}}</span>
14 <i class="fa fa-circle"></i> 14 <i class="fa fa-circle"></i>
15 </li> 15 </li>
16 <li> 16 <li>
17 - <a ui-sref="employeeInfoManage">$$$$$${txt-1658}</a> 17 + <a ui-sref="employeeInfoManage">{{"employeeInfoManage_form_page_line17_txt-1658" | translate}}</a>
18 <i class="fa fa-circle"></i> 18 <i class="fa fa-circle"></i>
19 </li> 19 </li>
20 <li> 20 <li>
21 - <span class="active">$$$$$${txt-1648}</span> 21 + <span class="active">{{"employeeInfoManage_form_page_line21_txt-1648" | translate}}</span>
22 </li> 22 </li>
23 </ul> 23 </ul>
24 24
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 <div class="portlet-title"> 26 <div class="portlet-title">
27 <div class="caption"> 27 <div class="caption">
28 <i class="icon-equalizer font-red-sunglo"></i> <span 28 <i class="icon-equalizer font-red-sunglo"></i> <span
29 - class="caption-subject font-red-sunglo bold uppercase">$$$$$${txt-3849}</span> 29 + class="caption-subject font-red-sunglo bold uppercase">{{"employeeInfoManage_form_page_line29_txt-3849" | translate}}</span>
30 </div> 30 </div>
31 </div> 31 </div>
32 32
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 <form ng-submit="ctrl.submit()" class="form-horizontal" novalidate name="myForm"> 34 <form ng-submit="ctrl.submit()" class="form-horizontal" novalidate name="myForm">
35 <div class="form-body"> 35 <div class="form-body">
36 <div class="form-group has-success has-feedback"> 36 <div class="form-group has-success has-feedback">
37 - <label class="col-md-2 control-label">$$$$$${txt-2686}*:</label> 37 + <label class="col-md-2 control-label">{{"employeeInfoManage_form_page_line37_txt-2686" | translate}}*:</label>
38 <div class="col-md-3"> 38 <div class="col-md-3">
39 <sa-Select5 name="gs" 39 <sa-Select5 name="gs"
40 model="ctrl.employeeInfoForSave" 40 model="ctrl.employeeInfoForSave"
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 dsparams="{{ {type: 'ajax', param:{'upCode_eq': '88' }, atype:'gs' } | json }}" 44 dsparams="{{ {type: 'ajax', param:{'upCode_eq': '88' }, atype:'gs' } | json }}"
45 iterobjname="item" 45 iterobjname="item"
46 iterobjexp="item.businessName" 46 iterobjexp="item.businessName"
47 - searchph="$$$$$${txt-973}" 47 + searchph="{{'employeeInfoManage_form_page_line47_txt-973' | translate}}"
48 searchexp="this.businessName" 48 searchexp="this.businessName"
49 required 49 required
50 > 50 >
@@ -52,12 +52,12 @@ @@ -52,12 +52,12 @@
52 </div> 52 </div>
53 <!-- 隐藏块,显示验证信息 --> 53 <!-- 隐藏块,显示验证信息 -->
54 <div class="alert alert-danger well-sm" ng-show="myForm.gs.$error.required"> 54 <div class="alert alert-danger well-sm" ng-show="myForm.gs.$error.required">
55 - $$$$$${txt-1792} 55 + {{"employeeInfoManage_form_page_line55_txt-1792" | translate}}
56 </div> 56 </div>
57 </div> 57 </div>
58 58
59 <div class="form-group has-success has-feedback"> 59 <div class="form-group has-success has-feedback">
60 - <label class="col-md-2 control-label">$$$$$${txt-3777}*:</label> 60 + <label class="col-md-2 control-label">{{"employeeInfoManage_form_page_line60_txt-3777" | translate}}*:</label>
61 <div class="col-md-3"> 61 <div class="col-md-3">
62 <sa-Select5 name="fgs" 62 <sa-Select5 name="fgs"
63 model="ctrl.employeeInfoForSave" 63 model="ctrl.employeeInfoForSave"
@@ -67,7 +67,7 @@ @@ -67,7 +67,7 @@
67 dsparams="{{ {type: 'ajax', param:{'upCode_eq': ctrl.employeeInfoForSave.companyCode }, atype:'gs' } | json }}" 67 dsparams="{{ {type: 'ajax', param:{'upCode_eq': ctrl.employeeInfoForSave.companyCode }, atype:'gs' } | json }}"
68 iterobjname="item" 68 iterobjname="item"
69 iterobjexp="item.businessName" 69 iterobjexp="item.businessName"
70 - searchph="$$$$$${txt-973}" 70 + searchph="{{'employeeInfoManage_form_page_line70_txt-973' | translate}}"
71 searchexp="this.businessName" 71 searchexp="this.businessName"
72 required 72 required
73 > 73 >
@@ -76,23 +76,23 @@ @@ -76,23 +76,23 @@
76 </div> 76 </div>
77 <!-- 隐藏块,显示验证信息 --> 77 <!-- 隐藏块,显示验证信息 -->
78 <div class="alert alert-danger well-sm" ng-show="myForm.fgs.$error.required"> 78 <div class="alert alert-danger well-sm" ng-show="myForm.fgs.$error.required">
79 - $$$$$${txt-923} 79 + {{"employeeInfoManage_form_page_line79_txt-923" | translate}}
80 </div> 80 </div>
81 </div> 81 </div>
82 82
83 <div class="form-group has-success has-feedback"> 83 <div class="form-group has-success has-feedback">
84 - <label class="col-md-2 control-label">$$$$$${txt-3940}*:</label> 84 + <label class="col-md-2 control-label">{{"employeeInfoManage_form_page_line84_txt-3940" | translate}}*:</label>
85 <div class="col-md-3"> 85 <div class="col-md-3">
86 <input type="text" class="form-control" 86 <input type="text" class="form-control"
87 name="jobCode" ng-model="ctrl.employeeInfoForSave.jobCodeori" 87 name="jobCode" ng-model="ctrl.employeeInfoForSave.jobCodeori"
88 - required placeholder="$$$$$${txt-2346}" 88 + required placeholder="{{'employeeInfoManage_form_page_line88_txt-2346' | translate}}"
89 remote-Validation 89 remote-Validation
90 remotevtype="ee_gh" 90 remotevtype="ee_gh"
91 remotevparam="{{ {'companyCode_eq' : ctrl.employeeInfoForSave.companyCode, 'jobCode_eq': ctrl.employeeInfoForSave.jobCode} | json}}"/> 91 remotevparam="{{ {'companyCode_eq' : ctrl.employeeInfoForSave.companyCode, 'jobCode_eq': ctrl.employeeInfoForSave.jobCode} | json}}"/>
92 </div> 92 </div>
93 <!-- 隐藏块,显示验证信息 --> 93 <!-- 隐藏块,显示验证信息 -->
94 <div class="alert alert-danger well-sm" ng-show="myForm.jobCode.$error.required"> 94 <div class="alert alert-danger well-sm" ng-show="myForm.jobCode.$error.required">
95 - $$$$$${txt-1793} 95 + {{"employeeInfoManage_form_page_line95_txt-1793" | translate}}
96 </div> 96 </div>
97 <div class="alert alert-danger well-sm" ng-show="myForm.jobCode.$error.remote"> 97 <div class="alert alert-danger well-sm" ng-show="myForm.jobCode.$error.remote">
98 {{$remote_msg}} 98 {{$remote_msg}}
@@ -100,43 +100,43 @@ @@ -100,43 +100,43 @@
100 </div> 100 </div>
101 101
102 <div class="form-group has-success has-feedback"> 102 <div class="form-group has-success has-feedback">
103 - <label class="col-md-2 control-label">$$$$$${txt-3949}*:</label> 103 + <label class="col-md-2 control-label">{{"employeeInfoManage_form_page_line103_txt-3949" | translate}}*:</label>
104 <div class="col-md-3"> 104 <div class="col-md-3">
105 <input type="text" class="form-control" 105 <input type="text" class="form-control"
106 name="personnelName" ng-model="ctrl.employeeInfoForSave.personnelName" 106 name="personnelName" ng-model="ctrl.employeeInfoForSave.personnelName"
107 - required placeholder="$$$$$${txt-2345}"/> 107 + required placeholder="{{'employeeInfoManage_form_page_line107_txt-2345' | translate}}"/>
108 </div> 108 </div>
109 <!-- 隐藏块,显示验证信息 --> 109 <!-- 隐藏块,显示验证信息 -->
110 <div class="alert alert-danger well-sm" ng-show="myForm.personnelName.$error.required"> 110 <div class="alert alert-danger well-sm" ng-show="myForm.personnelName.$error.required">
111 - $$$$$${txt-1787} 111 + {{"employeeInfoManage_form_page_line111_txt-1787" | translate}}
112 </div> 112 </div>
113 </div> 113 </div>
114 114
115 <div class="form-group"> 115 <div class="form-group">
116 - <label class="col-md-2 control-label">$$$$$${txt-902}</label> 116 + <label class="col-md-2 control-label">{{"employeeInfoManage_form_page_line116_txt-902" | translate}}</label>
117 <div class="col-md-4"> 117 <div class="col-md-4">
118 <input type="text" class="form-control" ng-model="ctrl.employeeInfoForSave.papersCode" 118 <input type="text" class="form-control" ng-model="ctrl.employeeInfoForSave.papersCode"
119 - placeholder="$$$$$${txt-516}"/> 119 + placeholder="{{'employeeInfoManage_form_page_line119_txt-516' | translate}}"/>
120 </div> 120 </div>
121 </div> 121 </div>
122 122
123 <div class="form-group"> 123 <div class="form-group">
124 - <label class="col-md-2 control-label">$$$$$${txt-2244}</label> 124 + <label class="col-md-2 control-label">{{"employeeInfoManage_form_page_line124_txt-2244" | translate}}</label>
125 <div class="col-md-4"> 125 <div class="col-md-4">
126 <input type="text" class="form-control" ng-model="ctrl.employeeInfoForSave.icCardCode" 126 <input type="text" class="form-control" ng-model="ctrl.employeeInfoForSave.icCardCode"
127 - placeholder="$$$$$${txt-517}"/> 127 + placeholder="{{'employeeInfoManage_form_page_line127_txt-517' | translate}}"/>
128 </div> 128 </div>
129 </div> 129 </div>
130 130
131 <div class="form-group"> 131 <div class="form-group">
132 - <label class="col-md-2 control-label">$$$$$${txt-3698}</label> 132 + <label class="col-md-2 control-label">{{"employeeInfoManage_form_page_line132_txt-3698" | translate}}</label>
133 <div class="col-md-4"> 133 <div class="col-md-4">
134 <sa-Radiogroup model="ctrl.employeeInfoForSave.personnelType" dicgroup="sexType" name="personnelType"></sa-Radiogroup> 134 <sa-Radiogroup model="ctrl.employeeInfoForSave.personnelType" dicgroup="sexType" name="personnelType"></sa-Radiogroup>
135 </div> 135 </div>
136 </div> 136 </div>
137 137
138 <div class="form-group"> 138 <div class="form-group">
139 - <label class="col-md-2 control-label">$$$$$${txt-3703}</label> 139 + <label class="col-md-2 control-label">{{"employeeInfoManage_form_page_line139_txt-3703" | translate}}</label>
140 <div class="col-md-4"> 140 <div class="col-md-4">
141 <sa-Select5 name="posts" 141 <sa-Select5 name="posts"
142 model="ctrl.employeeInfoForSave" 142 model="ctrl.employeeInfoForSave"
@@ -146,7 +146,7 @@ @@ -146,7 +146,7 @@
146 dsparams="{{ {type: 'dic', param: 'gzType' } | json }}" 146 dsparams="{{ {type: 'dic', param: 'gzType' } | json }}"
147 iterobjname="item" 147 iterobjname="item"
148 iterobjexp="item.name" 148 iterobjexp="item.name"
149 - searchph="$$$$$${txt-3364}" 149 + searchph="{{'employeeInfoManage_form_page_line149_txt-3364' | translate}}"
150 searchexp="this.name" 150 searchexp="this.name"
151 > 151 >
152 </sa-Select5> 152 </sa-Select5>
@@ -154,7 +154,7 @@ @@ -154,7 +154,7 @@
154 </div> 154 </div>
155 155
156 <div class="form-group"> 156 <div class="form-group">
157 - <label class="col-md-2 control-label">$$$$$${txt-3449}</label> 157 + <label class="col-md-2 control-label">{{'employeeInfoManage_form_page_line157_txt-3449' | translate}}</label>
158 <div class="col-md-3"> 158 <div class="col-md-3">
159 <textarea class="form-control" 159 <textarea class="form-control"
160 ng-model="ctrl.employeeInfoForSave.remark" 160 ng-model="ctrl.employeeInfoForSave.remark"
@@ -171,8 +171,8 @@ @@ -171,8 +171,8 @@
171 <div class="form-actions"> 171 <div class="form-actions">
172 <div class="row"> 172 <div class="row">
173 <div class="col-md-offset-3 col-md-4"> 173 <div class="col-md-offset-3 col-md-4">
174 - <button type="submit" class="btn green" ng-disabled="!myForm.$valid"><i class="fa fa-check"></i> 提交</button>  
175 - <a type="button" class="btn default" ui-sref="employeeInfoManage" ><i class="fa fa-times"></i> $$$$$${txt-3817}</a> 174 + <button type="submit" class="btn green" ng-disabled="!myForm.$valid"><i class="fa fa-check"></i> {{"employeeInfoManage_form_page_line174_txt-4173" | translate}}</button>
  175 + <a type="button" class="btn default" ui-sref="employeeInfoManage" ><i class="fa fa-times"></i> {{"employeeInfoManage_form_page_line175_txt-3817" | translate}}</a>
176 </div> 176 </div>
177 </div> 177 </div>
178 </div> 178 </div>
@@ -180,4 +180,4 @@ @@ -180,4 +180,4 @@
180 </form> 180 </form>
181 </div> 181 </div>
182 182
183 -</div>  
184 \ No newline at end of file 183 \ No newline at end of file
  184 +</div>
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/index.html
1 <div class="page-head"> 1 <div class="page-head">
2 <div class="page-title"> 2 <div class="page-title">
3 - <h1>$$$$$${txt-1658}</h1> 3 + <h1>{{"employeeInfoManage_index_page_line3_txt-1658" | translate}}</h1>
4 </div> 4 </div>
5 </div> 5 </div>
6 6
7 <ul class="page-breadcrumb breadcrumb"> 7 <ul class="page-breadcrumb breadcrumb">
8 <li> 8 <li>
9 - <a href="/pages/home.html" data-pjax>$$$$$${txt-3807}</a> 9 + <a href="/pages/home.html" data-pjax>{{"employeeInfoManage_index_page_line9_txt-3807" | translate}}</a>
10 <i class="fa fa-circle"></i> 10 <i class="fa fa-circle"></i>
11 </li> 11 </li>
12 <li> 12 <li>
13 - <span class="active">$$$$$${txt-2398}</span> 13 + <span class="active">{{"employeeInfoManage_index_page_line13_txt-2398" | translate}}</span>
14 <i class="fa fa-circle"></i> 14 <i class="fa fa-circle"></i>
15 </li> 15 </li>
16 <li> 16 <li>
17 - <span class="active">$$$$$${txt-1658}</span> 17 + <span class="active">{{"employeeInfoManage_index_page_line17_txt-1658" | translate}}</span>
18 </li> 18 </li>
19 </ul> 19 </ul>
20 20
@@ -33,25 +33,25 @@ @@ -33,25 +33,25 @@
33 <div class="portlet-title"> 33 <div class="portlet-title">
34 <div class="caption font-dark"> 34 <div class="caption font-dark">
35 <i class="fa fa-database font-dark"></i> 35 <i class="fa fa-database font-dark"></i>
36 - <span class="caption-subject bold uppercase">$$$$$${txt-2234}</span> 36 + <span class="caption-subject bold uppercase">{{"employeeInfoManage_index_page_line36_txt-2234" | translate}}</span>
37 </div> 37 </div>
38 <div class="actions"> 38 <div class="actions">
39 <a href="javascript:" class="btn blue" ng-click="ctrl.goForm()" ng-if="ctrl.userInfo.getRole().indexOf('_ADMIN') > -1"> 39 <a href="javascript:" class="btn blue" ng-click="ctrl.goForm()" ng-if="ctrl.userInfo.getRole().indexOf('_ADMIN') > -1">
40 <i class="fa fa-plus"></i> 40 <i class="fa fa-plus"></i>
41 - $$$$$${txt-1648}{{}} 41 + {{"employeeInfoManage_index_page_line41_txt-1648" | translate}}
42 </a> 42 </a>
43 43
44 <div class="btn-group"> 44 <div class="btn-group">
45 <a href="javascript:" class="btn red btn-outline" data-toggle="dropdown"> 45 <a href="javascript:" class="btn red btn-outline" data-toggle="dropdown">
46 <i class="fa fa-share"></i> 46 <i class="fa fa-share"></i>
47 - <span>$$$$$${txt-3339}</span> 47 + <span>{{"employeeInfoManage_index_page_line47_txt-3339" | translate}}</span>
48 <i class="fa fa-angle-down"></i> 48 <i class="fa fa-angle-down"></i>
49 </a> 49 </a>
50 <ul class="dropdown-menu pull-right"> 50 <ul class="dropdown-menu pull-right">
51 <li> 51 <li>
52 <a href="javascript:" class="tool-action" ng-click="ctrl.exportData()"> 52 <a href="javascript:" class="tool-action" ng-click="ctrl.exportData()">
53 <i class="fa fa-file-excel-o"></i> 53 <i class="fa fa-file-excel-o"></i>
54 - $$$$$${txt-4493} 54 + {{"employeeInfoManage_index_page_line54_txt-4493" | translate}}
55 </a> 55 </a>
56 </li> 56 </li>
57 <!--<li class="divider"></li>--> 57 <!--<li class="divider"></li>-->
@@ -71,4 +71,4 @@ @@ -71,4 +71,4 @@
71 </div> 71 </div>
72 </div> 72 </div>
73 </div> 73 </div>
74 -</div>  
75 \ No newline at end of file 74 \ No newline at end of file
  75 +</div>
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/list.html
@@ -4,32 +4,32 @@ @@ -4,32 +4,32 @@
4 <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> 4 <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column">
5 <thead> 5 <thead>
6 <tr role="row" class="heading"> 6 <tr role="row" class="heading">
7 - <th style="width:70px;">$$$$$${txt-3934}</th>  
8 - <th style="width: 100px;">$$$$$${txt-3949}</th>  
9 - <th style="width: 100px;">$$$$$${txt-3955}</th>  
10 - <th style="width: 100px;">$$$$$${txt-3940}</th>  
11 - <th style="width: 100px;">$$$$$${txt-3095}</th>  
12 - <th style="width: 60px;">$$$$$${txt-4086}</th>  
13 - <th style="width: 150px;">$$$$$${txt-3096}</th>  
14 - <th >$$$$$${txt-3777}</th>  
15 - <th >$$$$$${txt-4093}</th>  
16 - <th style="width: 80px;">$$$$$${txt-4085}</th>  
17 - <th >$$$$$${txt-3942}</th> 7 + <th style="width: 70px; max-width: 70px;white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"employeeInfoManage_list_page_line7_txt-3934" | translate}}</th>
  8 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"employeeInfoManage_list_page_line8_txt-3949" | translate}}</th>
  9 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"employeeInfoManage_list_page_line9_txt-3955" | translate}}</th>
  10 + <th style="width: 100px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"employeeInfoManage_list_page_line10_txt-3940" | translate}}</th>
  11 + <th style="width: 100px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"employeeInfoManage_list_page_line11_txt-3095" | translate}}</th>
  12 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"employeeInfoManage_list_page_line12_txt-4086" | translate}}</th>
  13 + <th style="width: 130px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"employeeInfoManage_list_page_line13_txt-3096" | translate}}</th>
  14 + <th style="width: 130px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"employeeInfoManage_list_page_line14_txt-3777" | translate}}</th>
  15 + <th style="width: 130px; white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"employeeInfoManage_list_page_line15_txt-4093" | translate}}</th>
  16 + <th style="white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"employeeInfoManage_list_page_line16_txt-4085" | translate}}</th>
  17 + <th style="width: 230px;white-space: pre-wrap;word-wrap: break-word;text-align: center;vertical-align: middle;">{{"employeeInfoManage_list_page_line17_txt-3942" | translate}}</th>
18 </tr> 18 </tr>
19 <tr role="row" class="filter"> 19 <tr role="row" class="filter">
20 <td> 20 <td>
21 </td> 21 </td>
22 <td> 22 <td>
23 - <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().personnelName_like" placeholder="$$$$$${txt-3231}"/> 23 + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().personnelName_like" placeholder="{{'employeeInfoManage_list_page_line23_txt-3231' | translate}}"/>
24 </td> 24 </td>
25 <td> 25 <td>
26 - <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().jobCode_like" placeholder="$$$$$${txt-3233}"/> 26 + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().jobCode_like" placeholder="{{'employeeInfoManage_list_page_line26_txt-3233' | translate}}"/>
27 </td> 27 </td>
28 <td> 28 <td>
29 - <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().jobCodeori_like" placeholder="$$$$$${txt-3232}"/> 29 + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().jobCodeori_like" placeholder="{{'employeeInfoManage_list_page_line29_txt-3232' | translate}}"/>
30 </td> 30 </td>
31 <td> 31 <td>
32 - <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().jdCodeori_like" placeholder="$$$$$${txt-3232}"/> 32 + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().jdCodeori_like" placeholder="{{'employeeInfoManage_list_page_line32_txt-3232' | translate}}"/>
33 </td> 33 </td>
34 <td> 34 <td>
35 </td> 35 </td>
@@ -42,8 +42,9 @@ @@ -42,8 +42,9 @@
42 dsparams="{{ {type: 'ajax', param:{'upCode_eq': '88' }, atype:'gs' } | json }}" 42 dsparams="{{ {type: 'ajax', param:{'upCode_eq': '88' }, atype:'gs' } | json }}"
43 iterobjname="item" 43 iterobjname="item"
44 iterobjexp="item.businessName" 44 iterobjexp="item.businessName"
45 - searchph="$$$$$${txt-3364}" 45 + searchph="{{'employeeInfoManage_list_page_line45_txt-3364' | translate}}"
46 searchexp="this.businessName" 46 searchexp="this.businessName"
  47 + width="100"
47 required 48 required
48 > 49 >
49 </sa-Select5> 50 </sa-Select5>
@@ -57,8 +58,9 @@ @@ -57,8 +58,9 @@
57 dsparams="{{ {type: 'ajax', param:{'upCode_eq': ctrl.searchCondition().companyCode_eq }, atype:'gs' } | json }}" 58 dsparams="{{ {type: 'ajax', param:{'upCode_eq': ctrl.searchCondition().companyCode_eq }, atype:'gs' } | json }}"
58 iterobjname="item" 59 iterobjname="item"
59 iterobjexp="item.businessName" 60 iterobjexp="item.businessName"
60 - searchph="$$$$$${txt-3364}" 61 + searchph="{{'employeeInfoManage_list_page_line60_txt-3364' | translate}}"
61 searchexp="this.businessName" 62 searchexp="this.businessName"
  63 + width="100"
62 required 64 required
63 > 65 >
64 </sa-Select5> 66 </sa-Select5>
@@ -72,21 +74,22 @@ @@ -72,21 +74,22 @@
72 dsparams="{{ {type: 'dic', param: 'gzType' } | json }}" 74 dsparams="{{ {type: 'dic', param: 'gzType' } | json }}"
73 iterobjname="item" 75 iterobjname="item"
74 iterobjexp="item.name" 76 iterobjexp="item.name"
75 - searchph="$$$$$${txt-3364}" 77 + searchph="{{'employeeInfoManage_list_page_line75_txt-3364' | translate}}"
  78 + width="100"
76 searchexp="this.name" 79 searchexp="this.name"
77 > 80 >
78 </sa-Select5> 81 </sa-Select5>
79 </td> 82 </td>
80 <td> 83 <td>
81 <label class="checkbox-inline"> 84 <label class="checkbox-inline">
82 - <input type="checkbox" ng-true-value="1" ng-model="ctrl.searchCondition()['destroy_eq']"/>$$$$$${txt-4085} 85 + <input type="checkbox" ng-true-value="1" ng-model="ctrl.searchCondition()['destroy_eq']"/>{{"employeeInfoManage_list_page_line82_txt-4085" | translate}}
83 </label> 86 </label>
84 </td> 87 </td>
85 <td> 88 <td>
86 <div class="btn-group"> 89 <div class="btn-group">
87 <button class="btn btn-sm green btn-outline filter-submit margin-bottom" style="margin-right: 0;" 90 <button class="btn btn-sm green btn-outline filter-submit margin-bottom" style="margin-right: 0;"
88 ng-click="ctrl.doPage()"> 91 ng-click="ctrl.doPage()">
89 - <i class="fa fa-search"></i> $$$$$${txt-4001}</button> 92 + <i class="fa fa-search"></i> {{"employeeInfoManage_list_page_line89_txt-4001" | translate}}</button>
90 <button class="btn btn-sm green btn-outline filter-submit margin-bottom dropdown-toggle" 93 <button class="btn btn-sm green btn-outline filter-submit margin-bottom dropdown-toggle"
91 data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 94 data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
92 <span class="caret"></span> 95 <span class="caret"></span>
@@ -96,7 +99,7 @@ @@ -96,7 +99,7 @@
96 <li> 99 <li>
97 <a href="javascript:" class="tool-action" ng-click="ctrl.customOrder()"> 100 <a href="javascript:" class="tool-action" ng-click="ctrl.customOrder()">
98 <i class="fa fa-sort-amount-asc" aria-hidden="true"></i> 101 <i class="fa fa-sort-amount-asc" aria-hidden="true"></i>
99 - $$$$$${txt-3385} 102 + {{"employeeInfoManage_list_page_line99_txt-3385" | translate}}
100 </a> 103 </a>
101 </li> 104 </li>
102 </ul> 105 </ul>
@@ -104,7 +107,7 @@ @@ -104,7 +107,7 @@
104 107
105 <button class="btn btn-sm red btn-outline filter-cancel" 108 <button class="btn btn-sm red btn-outline filter-cancel"
106 ng-click="ctrl.reset()"> 109 ng-click="ctrl.reset()">
107 - <i class="fa fa-times"></i> $$$$$${txt-4000}</button> 110 + <i class="fa fa-times"></i> {{"employeeInfoManage_list_page_line107_txt-4000" | translate}}</button>
108 111
109 </td> 112 </td>
110 113
@@ -117,7 +120,7 @@ @@ -117,7 +120,7 @@
117 <a href="#" 120 <a href="#"
118 tooltip-animation="false" 121 tooltip-animation="false"
119 tooltip-placement="top" 122 tooltip-placement="top"
120 - uib-tooltip="{{'$$$$$${txt-4426}' + info.personnelName + '/' + info.jobCodeori}}" 123 + uib-tooltip="{{('employeeInfoManage_list_page_line120_txt-4426' | translate) + info.personnelName + '/' + info.jobCodeori}}"
121 tooltip-class="headClass"> 124 tooltip-class="headClass">
122 125
123 <i class="fa fa-list-ol" aria-hidden="true"></i> 126 <i class="fa fa-list-ol" aria-hidden="true"></i>
@@ -139,7 +142,7 @@ @@ -139,7 +142,7 @@
139 <span ng-bind="info.jdCodeori"></span> 142 <span ng-bind="info.jdCodeori"></span>
140 </td> 143 </td>
141 <td> 144 <td>
142 - <span ng-bind="info.personnelType | dict:'sexType':'$$$$$${txt-4058}'"></span> 145 + <span ng-bind="info.personnelType | dict:'sexType':('employeeInfoManage_list_page_line142_txt-4058' | translate)"></span>
143 146
144 <!--<div ng-if="info.personnelType == '1'">--> 147 <!--<div ng-if="info.personnelType == '1'">-->
145 <!--<a href="#">--> 148 <!--<a href="#">-->
@@ -160,7 +163,7 @@ @@ -160,7 +163,7 @@
160 <span ng-bind="info.brancheCompany"></span> 163 <span ng-bind="info.brancheCompany"></span>
161 </td> 164 </td>
162 <td> 165 <td>
163 - <span ng-bind="info.posts | dict:'gzType':'$$$$$${txt-4058}'"></span> 166 + <span ng-bind="info.posts | dict:'gzType':('employeeInfoManage_list_page_line163_txt-4058' | translate)"></span>
164 </td> 167 </td>
165 <td> 168 <td>
166 <span class="glyphicon glyphicon-ok" ng-if="info.destroy != '1'"></span> 169 <span class="glyphicon glyphicon-ok" ng-if="info.destroy != '1'"></span>
@@ -168,12 +171,16 @@ @@ -168,12 +171,16 @@
168 </td> 171 </td>
169 <td> 172 <td>
170 <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> 173 <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>-->
171 - <a ui-sref="employeeInfoManage_detail({id: info.id})" class="btn btn-info btn-sm"> $$$$$${txt-3866} </a>  
172 - <a ui-sref="employeeInfoManage_edit({id: info.id})" class="btn btn-info btn-sm"> $$$$$${txt-4028} </a> 174 + <a ui-sref="employeeInfoManage_detail({id: info.id})" class="btn btn-info btn-sm"> {{"employeeInfoManage_list_page_line171_txt-3866" | translate}} </a>
  175 + <a ui-sref="employeeInfoManage_edit({id: info.id})" class="btn btn-info btn-sm"> {{"employeeInfoManage_list_page_line172_txt-4028" | translate}} </a>
173 <a sweetalert 176 <a sweetalert
174 - sweet-options="{title: '$$$$$${txt-675}',text: '$$$$$${txt-3719}' + info.personnelName + '</br>$$$$$${txt-3761}' + info.jobCode + '</br>$$$$$${txt-40}', html: true,type: 'warning',showCancelButton: true,confirmButtonColor: '#DD6B55',confirmButtonText: '$$$$$${txt-4257}',cancelButtonText: '$$$$$${txt-3817}'}" 177 + sweet-options="{title: ('employeeInfoManage_list_page_line174_txt-675' | translate),
  178 + text: ('employeeInfoManage_list_page_line175_txt-3719' | translate) + info.personnelName + '</br>' + ('employeeInfoManage_list_page_line175_txt-3761' | translate) + info.jobCode + '</br>' + ('employeeInfoManage_list_page_line175_txt-40' | translate),
  179 + html: true,type: 'warning',showCancelButton: true,confirmButtonColor: '#DD6B55',
  180 + confirmButtonText: ('employeeInfoManage_list_page_line177_txt-4257' | translate),
  181 + cancelButtonText: ('employeeInfoManage_list_page_line178_txt-3817' | translate)}"
175 sweet-on-confirm="ctrl.deleteEmp(info.id)" 182 sweet-on-confirm="ctrl.deleteEmp(info.id)"
176 - class="btn btn-danger btn-sm">$$$$$${txt-3868}</a> 183 + class="btn btn-danger btn-sm">{{"employeeInfoManage_list_page_line180_txt-3868" | translate}}</a>
177 </td> 184 </td>
178 </tr> 185 </tr>
179 </tbody> 186 </tbody>
@@ -181,8 +188,11 @@ @@ -181,8 +188,11 @@
181 </div> 188 </div>
182 189
183 <div class="pageBar"> 190 <div class="pageBar">
184 - <div class="pageBarLeft">  
185 - $$$$$${txt-3053} 191 + <div class="pageBarLeft"
  192 + translate="employeeInfoManage_list_page_line189_txt-3053"
  193 + translate-value-from="{{ ctrl.page()['uiFromRecord'] }}"
  194 + translate-value-to="{{ ctrl.page()['uiToRecord'] }}"
  195 + translate-value-total="{{ ctrl.page()['totalElements'] }}">
186 </div> 196 </div>
187 197
188 <div class="pageBarRight"> 198 <div class="pageBarRight">
@@ -192,11 +202,11 @@ @@ -192,11 +202,11 @@
192 rotate="false" 202 rotate="false"
193 max-size="10" 203 max-size="10"
194 boundary-links="true" 204 boundary-links="true"
195 - first-text="$$$$$${txt-4430}"  
196 - previous-text="$$$$$${txt-3613}"  
197 - next-text="$$$$$${txt-3614}"  
198 - last-text="$$$$$${txt-4068}"> 205 + first-text="{{'employeeInfoManage_list_page_line202_txt-4430' | translate}}"
  206 + previous-text="{{'employeeInfoManage_list_page_line203_txt-3613' | translate}}"
  207 + next-text="{{'employeeInfoManage_list_page_line204_txt-3614' | translate}}"
  208 + last-text="{{'employeeInfoManage_list_page_line205_txt-4068' | translate}}">
199 </uib-pagination> 209 </uib-pagination>
200 </div> 210 </div>
201 </div> 211 </div>
202 -</div>  
203 \ No newline at end of file 212 \ No newline at end of file
  213 +</div>
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/module.js
@@ -5,7 +5,8 @@ angular.module(&#39;ScheduleApp&#39;).factory( @@ -5,7 +5,8 @@ angular.module(&#39;ScheduleApp&#39;).factory(
5 [ 5 [
6 'EmployeeInfoManageService_g', 6 'EmployeeInfoManageService_g',
7 'UserPrincipal', 7 'UserPrincipal',
8 - function(service, UserPrincipal) { 8 + '$translate',
  9 + function(service, UserPrincipal, translate) {
9 10
10 /** 当前的查询条件信息 */ 11 /** 当前的查询条件信息 */
11 var currentSearchCondition = { 12 var currentSearchCondition = {
@@ -29,12 +30,12 @@ angular.module(&#39;ScheduleApp&#39;).factory( @@ -29,12 +30,12 @@ angular.module(&#39;ScheduleApp&#39;).factory(
29 30
30 // 字段描述 31 // 字段描述
31 var columns = [ 32 var columns = [
32 - {name: "personnelName", desc: i18n('txt-3949')},  
33 - {name: "jobCodeori", desc: i18n('txt-3940')},  
34 - {name: "personnelType", desc: i18n('txt-4086')},  
35 - {name: "company", desc: i18n('txt-3096')},  
36 - {name: "brancheCompany", desc: i18n('txt-3777')},  
37 - {name: "posts", desc: i18n('txt-4093')} 33 + {name: "personnelName", desc: translate.instant("employeeInfoManage_module_js_line33_txt-3949")},
  34 + {name: "jobCodeori", desc: translate.instant("employeeInfoManage_module_js_line34_txt-3940")},
  35 + {name: "personnelType", desc: translate.instant("employeeInfoManage_module_js_line35_txt-4086")},
  36 + {name: "company", desc: translate.instant("employeeInfoManage_module_js_line36_txt-3096")},
  37 + {name: "brancheCompany", desc: translate.instant("employeeInfoManage_module_js_line37_txt-3777")},
  38 + {name: "posts", desc: translate.instant("employeeInfoManage_module_js_line38_txt-4093")}
38 ]; 39 ];
39 // 排序字段 40 // 排序字段
40 var orderColumns = { 41 var orderColumns = {
@@ -135,7 +136,8 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -135,7 +136,8 @@ angular.module(&#39;ScheduleApp&#39;).controller(
135 '$uibModal', 136 '$uibModal',
136 'FileDownload_g', 137 'FileDownload_g',
137 'UserInfo', 138 'UserInfo',
138 - function(employeeInfoManageService, $state, $uibModal, fileDownload, userInfo) { 139 + '$translate',
  140 + function(employeeInfoManageService, $state, $uibModal, fileDownload, userInfo, translate) {
139 var self = this; 141 var self = this;
140 142
141 self.userInfo = userInfo; 143 self.userInfo = userInfo;
@@ -177,7 +179,7 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -177,7 +179,7 @@ angular.module(&#39;ScheduleApp&#39;).controller(
177 if (p) { 179 if (p) {
178 p.then( 180 p.then(
179 function(result) { 181 function(result) {
180 - fileDownload.downloadFile(result.data, "application/octet-stream", i18n('txt-1614') + ".xls"); 182 + fileDownload.downloadFile(result.data, "application/octet-stream", translate.instant("employeeInfoManage_module_js_line182_txt-1614") + ".xls");
181 }, 183 },
182 function(result) { 184 function(result) {
183 console.log("exportData failed:" + result); 185 console.log("exportData failed:" + result);
@@ -248,7 +250,8 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -248,7 +250,8 @@ angular.module(&#39;ScheduleApp&#39;).controller(
248 'EmployeeInfoManageService', 250 'EmployeeInfoManageService',
249 '$uibModal', 251 '$uibModal',
250 'UserInfo', 252 'UserInfo',
251 - function(service, $uibModal, userInfo) { 253 + '$translate',
  254 + function(service, $uibModal, userInfo, translate) {
252 var self = this; 255 var self = this;
253 self.userInfo = userInfo; 256 self.userInfo = userInfo;
254 var Employee = service.getQueryClass(); 257 var Employee = service.getQueryClass();
@@ -280,7 +283,7 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -280,7 +283,7 @@ angular.module(&#39;ScheduleApp&#39;).controller(
280 self.deleteEmp = function(id) { 283 self.deleteEmp = function(id) {
281 Employee.delete({id: id}, function(result) { 284 Employee.delete({id: id}, function(result) {
282 if (result.msg) { // 暂时这样做,之后全局拦截 285 if (result.msg) { // 暂时这样做,之后全局拦截
283 - alert(i18n('txt-3729') + result.msg); 286 + alert(translate.instant("employeeInfoManage_module_js_line286_txt-3729") + result.msg);
284 } else { 287 } else {
285 self.doPage(); 288 self.doPage();
286 } 289 }
@@ -394,7 +397,8 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -394,7 +397,8 @@ angular.module(&#39;ScheduleApp&#39;).controller(
394 [ 397 [
395 'EmployeeInfoManageService', 398 'EmployeeInfoManageService',
396 '$stateParams', 399 '$stateParams',
397 - function(service, $stateParams) { 400 + '$translate',
  401 + function(service, $stateParams, translate) {
398 var self = this; 402 var self = this;
399 var Employee = service.getQueryClass(); 403 var Employee = service.getQueryClass();
400 var id = $stateParams.id; 404 var id = $stateParams.id;
@@ -404,9 +408,9 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -404,9 +408,9 @@ angular.module(&#39;ScheduleApp&#39;).controller(
404 408
405 // 当转向到此页面时,就获取明细信息并绑定 409 // 当转向到此页面时,就获取明细信息并绑定
406 self.employeeInfoForDetail = Employee.get({id: id}, function() { 410 self.employeeInfoForDetail = Employee.get({id: id}, function() {
407 - self.title = i18n('txt-4081') + " " + 411 + self.title = translate.instant("employeeInfoManage_module_js_line411_txt-4081") + " " +
408 self.employeeInfoForDetail.personnelName + 412 self.employeeInfoForDetail.personnelName +
409 - " " + i18n('txt-3066'); 413 + " " + translate.instant("employeeInfoManage_module_js_line413_txt-3066");
410 }); 414 });
411 415
412 } 416 }
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/orderOptionOpen.html
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <div class="modal-title"> 2 <div class="modal-title">
3 <h3> 3 <h3>
4 <i class="fa fa-sort-amount-asc" aria-hidden="true"></i> 4 <i class="fa fa-sort-amount-asc" aria-hidden="true"></i>
5 - <span class="caption-subject bold uppercase">$$$$$${txt-1682}</span> 5 + <span class="caption-subject bold uppercase">{{"employeeInfoManage_orderOptionOpen_page_line5_txt-1682" | translate}}</span>
6 </h3> 6 </h3>
7 </div> 7 </div>
8 </div> 8 </div>
@@ -14,5 +14,5 @@ @@ -14,5 +14,5 @@
14 </sa-Orderoption> 14 </sa-Orderoption>
15 </div> 15 </div>
16 <div class="modal-footer"> 16 <div class="modal-footer">
17 - <button class="btn btn-primary" ng-click="$ctrl.confirm($ctrl.orderColumns)">$$$$$${txt-4018}</button>  
18 -</div>  
19 \ No newline at end of file 17 \ No newline at end of file
  18 + <button class="btn btn-primary" ng-click="$ctrl.confirm($ctrl.orderColumns)">{{"employeeInfoManage_orderOptionOpen_page_line17_txt-4018" | translate}}</button>
  19 +</div>
src/main/resources/static/pages/scheduleApp/module/common/dts1/select/saSelect5.js
@@ -15,13 +15,16 @@ @@ -15,13 +15,16 @@
15 * 15 *
16 * required(可选):是否需要form的required验证 16 * required(可选):是否需要form的required验证
17 * 17 *
  18 + * width(可选):内部自动计算select框和删除按钮的宽度,并添加对应的style
  19 + *
18 */ 20 */
19 angular.module('ScheduleApp').directive('saSelect5', [ 21 angular.module('ScheduleApp').directive('saSelect5', [
20 '$timeout', 22 '$timeout',
21 '$$SearchInfoService_g', 23 '$$SearchInfoService_g',
22 'UserPrincipal', 24 'UserPrincipal',
23 'DataStore', 25 'DataStore',
24 - function($timeout, $$searchInfoService_g, UserPrincipal, DataStore) { 26 + '$translate',
  27 + function($timeout, $$searchInfoService_g, UserPrincipal, DataStore, translate) {
25 return { 28 return {
26 restrict: 'E', 29 restrict: 'E',
27 templateUrl: '/pages/scheduleApp/module/common/dts1/select/saSelect5Template.html', 30 templateUrl: '/pages/scheduleApp/module/common/dts1/select/saSelect5Template.html',
@@ -65,6 +68,8 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [ @@ -65,6 +68,8 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
65 68
66 var $required_attr = tAttrs["required"]; // 是否需要required验证 69 var $required_attr = tAttrs["required"]; // 是否需要required验证
67 70
  71 + var $width_attr = tAttrs["width"]; // 宽度
  72 +
68 if (!$name_attr) { 73 if (!$name_attr) {
69 throw new Error("name属性必须填写"); 74 throw new Error("name属性必须填写");
70 } 75 }
@@ -111,6 +116,17 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [ @@ -111,6 +116,17 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
111 // dom,span ng-bind属性设置,TODO:暂时无法用transclude设置,先用属性设置 116 // dom,span ng-bind属性设置,TODO:暂时无法用transclude设置,先用属性设置
112 tElem.find("ui-select-choices").html("{{" + $iterobjexp_attr + "}}"); 117 tElem.find("ui-select-choices").html("{{" + $iterobjexp_attr + "}}");
113 118
  119 + // 计算宽度
  120 + if ($width_attr) {
  121 + var $button_t_b = 6; // 按钮的padding top bottom
  122 + var $button_l_r = 6; // 按钮的padding left right
  123 + var $select_width = $width_attr - $button_l_r * 2; // select的width
  124 + tElem.find("ui-select").attr("style",
  125 + "width: " + $select_width + "px!important;" +
  126 + "white-space: nowrap; overflow: hidden;");
  127 + tElem.find("button").attr("style", "padding: " + $button_t_b + "px " + $button_l_r + "px;");
  128 + }
  129 +
114 130
115 // 当前的数据模式,ajax,dic,local 131 // 当前的数据模式,ajax,dic,local
116 var dataModelType = undefined; 132 var dataModelType = undefined;
@@ -357,7 +373,7 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [ @@ -357,7 +373,7 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
357 */ 373 */
358 scope[ctrlAs].$$internal_dic_data = function(dictype) { 374 scope[ctrlAs].$$internal_dic_data = function(dictype) {
359 if (!dictionaryUtils.getByGroup(dictype)) { 375 if (!dictionaryUtils.getByGroup(dictype)) {
360 - throw new error(i18n('txt-1275', [dictype])); 376 + throw new error(translate.instant("saSelect5_js_line375_txt-1275") + dictype);
361 } 377 }
362 378
363 // 重新创建内部保存的数据 379 // 重新创建内部保存的数据
@@ -510,4 +526,4 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [ @@ -510,4 +526,4 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
510 } 526 }
511 }; 527 };
512 } 528 }
513 -]);  
514 \ No newline at end of file 529 \ No newline at end of file
  530 +]);
src/main/resources/static/pages/scheduleApp/module/common/dts1/select/saSelect5Template.html
@@ -16,4 +16,4 @@ @@ -16,4 +16,4 @@
16 <span class="glyphicon glyphicon-trash"></span> 16 <span class="glyphicon glyphicon-trash"></span>
17 </button> 17 </button>
18 </span> 18 </span>
19 -</div>  
20 \ No newline at end of file 19 \ No newline at end of file
  20 +</div>
src/main/resources/static/pages/scheduleApp/module/common/dts2/queryOption/saOrderOptionTemplate.html
@@ -90,8 +90,8 @@ @@ -90,8 +90,8 @@
90 </div> 90 </div>
91 <div class="col-md-3 option_dir"> 91 <div class="col-md-3 option_dir">
92 <select class="form-control aria-invalid="false" ng-model="$option.dir" ng-change="$saOrderOptionCtrl.$$select_dir_change()"> 92 <select class="form-control aria-invalid="false" ng-model="$option.dir" ng-change="$saOrderOptionCtrl.$$select_dir_change()">
93 - <option value="ASC" ng-selected="$option.dir=='ASC'">$$$$$${txt-4157}</option>  
94 - <option value="DESC" ng-selected="$option.dir=='DESC'">$$$$$${txt-4156}</option> 93 + <option value="ASC" ng-selected="$option.dir=='ASC'">{{"queryOption_saOrderOptionTemplate_line93_txt-4157" | translate}}</option>
  94 + <option value="DESC" ng-selected="$option.dir=='DESC'">{{"queryOption_saOrderOptionTemplate_line94_txt-4156" | translate}}</option>
95 </select> 95 </select>
96 </div> 96 </div>
97 <div class="col-md-3 btn-group option_opt"> 97 <div class="col-md-3 btn-group option_opt">
@@ -107,4 +107,4 @@ @@ -107,4 +107,4 @@
107 107
108 </div> 108 </div>
109 109
110 -</div>  
111 \ No newline at end of file 110 \ No newline at end of file
  111 +</div>
src/main/resources/static/pages/scheduleApp/module/common/main.js
@@ -72,31 +72,32 @@ ScheduleApp.factory(&#39;UserPrincipal&#39;, [ @@ -72,31 +72,32 @@ ScheduleApp.factory(&#39;UserPrincipal&#39;, [
72 ScheduleApp.factory('DataStore', [ 72 ScheduleApp.factory('DataStore', [
73 '$http', 73 '$http',
74 '$q', 74 '$q',
75 - function($http, $q) { 75 + '$translate',
  76 + function($http, $q, translate) {
76 // 本地数据存储,如车辆数据,人员数据 77 // 本地数据存储,如车辆数据,人员数据
77 var dataMap = { 78 var dataMap = {
78 "cl": [], // 车辆信息 79 "cl": [], // 车辆信息
79 "ry": [], // 人员信息 80 "ry": [], // 人员信息
80 "ddreasons": [ // 调度原因(调度执勤日报里的) 81 "ddreasons": [ // 调度原因(调度执勤日报里的)
81 - {code: "0", name: i18n('txt-3966')},  
82 - {code: "1", name: i18n('txt-3958')},  
83 - {code: "2", name: i18n('txt-3960')},  
84 - {code: "3", name: i18n('txt-3837')},  
85 - {code: "4", name: i18n('txt-3838')},  
86 - {code: "5", name: i18n('txt-3876')},  
87 - {code: "6", name: i18n('txt-4026')},  
88 - {code: "7", name: i18n('txt-3840')},  
89 - {code: "8", name: i18n('txt-3961')},  
90 - {code: "9", name: i18n('txt-3962')},  
91 - {code: "10", name: i18n('txt-3963')},  
92 - {code: "11", name: i18n('txt-4197')},  
93 - {code: "12", name: i18n('txt-4102')},  
94 - {code: "13", name: i18n('txt-3957')},  
95 - {code: "14", name: i18n('txt-3956')} 82 + {code: "0", name: translate.instant("main_js_line_82_txt-3966")},
  83 + {code: "1", name: translate.instant("main_js_line_83_txt-3958")},
  84 + {code: "2", name: translate.instant("main_js_line_84_txt-3960")},
  85 + {code: "3", name: translate.instant("main_js_line_85_txt-3837")},
  86 + {code: "4", name: translate.instant("main_js_line_86_txt-3838")},
  87 + {code: "5", name: translate.instant("main_js_line_87_txt-3876")},
  88 + {code: "6", name: translate.instant("main_js_line_88_txt-4026")},
  89 + {code: "7", name: translate.instant("main_js_line_89_txt-3840")},
  90 + {code: "8", name: translate.instant("main_js_line_90_txt-3961")},
  91 + {code: "9", name: translate.instant("main_js_line_91_txt-3962")},
  92 + {code: "10", name: translate.instant("main_js_line_92_txt-3963")},
  93 + {code: "11", name: translate.instant("main_js_line_93_txt-4197")},
  94 + {code: "12", name: translate.instant("main_js_line_94_txt-4102")},
  95 + {code: "13", name: translate.instant("main_js_line_95_txt-3957")},
  96 + {code: "14", name: translate.instant("main_js_line_96_txt-3956")}
96 ], 97 ],
97 "zdlytype" : [ // 站点路由类型 98 "zdlytype" : [ // 站点路由类型
98 - {name: i18n('txt-2790'), value: 1},  
99 - {name: i18n('txt-168'), value: 2} 99 + {name: translate.instant("main_js_line_99_txt-2790"), value: 1},
  100 + {name: translate.instant("main_js_line_100_txt-168"), value: 2}
100 ] 101 ]
101 }; 102 };
102 103
@@ -280,7 +281,8 @@ ScheduleApp.factory( @@ -280,7 +281,8 @@ ScheduleApp.factory(
280 [ 281 [
281 'requestNotificationChannel', 282 'requestNotificationChannel',
282 '$q', 283 '$q',
283 - function(requestNotificationChannel, $q) { 284 + '$translate',
  285 + function(requestNotificationChannel, $q, translate) {
284 return { 286 return {
285 request: function(config) { 287 request: function(config) {
286 requestNotificationChannel.requestStarted(config); 288 requestNotificationChannel.requestStarted(config);
@@ -296,13 +298,13 @@ ScheduleApp.factory( @@ -296,13 +298,13 @@ ScheduleApp.factory(
296 var data = response.data; 298 var data = response.data;
297 var output = []; 299 var output = [];
298 if (data.status == '407') { 300 if (data.status == '407') {
299 - alert(i18n('txt-1805')); 301 + alert(translate.instant("main_js_line_301_txt-1805"));
300 return $q.reject(response); 302 return $q.reject(response);
301 } else if (data.status == '500') { 303 } else if (data.status == '500') {
302 - output.push(i18n('txt-2284') + data.status);  
303 - output.push(i18n('txt-2285') + data.path);  
304 - output.push(i18n('txt-2286') + data.message);  
305 - alert(i18n('txt-1807') + "\n" + output.join("\n")); 304 + output.push(translate.instant("main_js_line_304_txt-2284") + data.status);
  305 + output.push(translate.instant("main_js_line_305_txt-2285") + data.path);
  306 + output.push(translate.instant("main_js_line_306_txt-2286") + data.message);
  307 + alert(translate.instant("main_js_line_307_txt-1807") + "\n" + output.join("\n"));
306 return $q.reject(response); 308 return $q.reject(response);
307 } else { 309 } else {
308 return response; 310 return response;
@@ -320,22 +322,22 @@ ScheduleApp.factory( @@ -320,22 +322,22 @@ ScheduleApp.factory(
320 } else if (rejection.status == -1) { 322 } else if (rejection.status == -1) {
321 // 服务器断开了 323 // 服务器断开了
322 // alert(i18n('txt-695')); 324 // alert(i18n('txt-695'));
323 - console.log(i18n('txt-695')); 325 + console.log(translate.instant("main_js_line_325_txt-695"));
324 } else { 326 } else {
325 - output.push(i18n('txt-2284') + rejection.status); 327 + output.push(translate.instant("main_js_line_327_txt-2284") + rejection.status);
326 // output.push("错误内容:" + angular.toJson(rejection.data)); 328 // output.push("错误内容:" + angular.toJson(rejection.data));
327 if (rejection.data) { 329 if (rejection.data) {
328 - output.push(i18n('txt-2325') + rejection.data.message); 330 + output.push(translate.instant("main_js_line_330_txt-2325") + rejection.data.message);
329 } else { 331 } else {
330 - output.push(i18n('txt-2325') + rejection.message); 332 + output.push(translate.instant("main_js_line_332_txt-2325") + rejection.message);
331 } 333 }
332 334
333 if (rejection.status == 500) { 335 if (rejection.status == 500) {
334 - alert(i18n('txt-1807') + "\n" + output.join("\n")); 336 + alert(translate.instant("main_js_line_336_txt-1807") + "\n" + output.join("\n"));
335 } else if (rejection.status == 407) { 337 } else if (rejection.status == 407) {
336 - alert(i18n('txt-1838') + "\n" + output.join("\n")); 338 + alert(translate.instant("main_js_line_338_txt-1838") + "\n" + output.join("\n"));
337 } else { 339 } else {
338 - alert(i18n('txt-2333') + "\n" + output.join("\n")); 340 + alert(translate.instant("main_js_line_340_txt-2333") + "\n" + output.join("\n"));
339 } 341 }
340 } 342 }
341 343
@@ -375,9 +377,10 @@ ScheduleApp.controller(&#39;ScheduleAppController&#39;, [ @@ -375,9 +377,10 @@ ScheduleApp.controller(&#39;ScheduleAppController&#39;, [
375 '$scope', 377 '$scope',
376 'UserPrincipal', 378 'UserPrincipal',
377 'DataStore', 379 'DataStore',
378 - function($scope, UserPrincipal, DataStore) { 380 + '$translate',
  381 + function($scope, UserPrincipal, DataStore, translate) {
379 $scope.$on('$viewContentLoaded', function(event) { 382 $scope.$on('$viewContentLoaded', function(event) {
380 - console.log(i18n('txt-1149') + event); 383 + console.log(translate.instant("main_js_line_383_txt-1149") + event);
381 }); 384 });
382 385
383 // 获取一次用户身份信息 386 // 获取一次用户身份信息
src/main/resources/static/pages/scheduleApp/module/common/prj-common-directive.js
1 -//自定义指令  
2 -/**  
3 - * loading载入中指令。  
4 - */  
5 -angular.module('ScheduleApp').directive(  
6 - 'loadingWidget',  
7 - [  
8 - 'requestNotificationChannel',  
9 - function(requestNotificationChannel) {  
10 - return {  
11 - restrict: 'A',  
12 -  
13 - compile: function(tElem, tAttrs) {  
14 - var loadingCount = 0;  
15 -  
16 - return {  
17 - pre: function(scope, element, attr) {  
18 -  
19 - },  
20 - post: function(scope, element, attr) {  
21 - // 初始隐藏loading界面  
22 - element.hide();  
23 -  
24 - // 开始请求通知处理  
25 - requestNotificationChannel.onRequestStarted(scope, function(requestInfo) {  
26 - if (loadingCount == 0) {  
27 - element.show();  
28 - }  
29 - loadingCount ++;  
30 - // TODO:以后在载入中显示requestInfo相关信息  
31 - console.log(requestInfo);  
32 - console.log(loadingCount);  
33 - });  
34 - // 请求结束通知处理  
35 - requestNotificationChannel.onRequestEnded(scope, function() {  
36 - loadingCount --;  
37 - if (loadingCount == 0) {  
38 - element.hide();  
39 - }  
40 -  
41 - console.log(loadingCount);  
42 - });  
43 - }  
44 - };  
45 - }  
46 -  
47 - };  
48 -  
49 - }  
50 - ] 1 +//自定义指令
  2 +/**
  3 + * loading载入中指令。
  4 + */
  5 +angular.module('ScheduleApp').directive(
  6 + 'loadingWidget',
  7 + [
  8 + 'requestNotificationChannel',
  9 + function(requestNotificationChannel) {
  10 + return {
  11 + restrict: 'A',
  12 +
  13 + compile: function(tElem, tAttrs) {
  14 + var loadingCount = 0;
  15 +
  16 + return {
  17 + pre: function(scope, element, attr) {
  18 +
  19 + },
  20 + post: function(scope, element, attr) {
  21 + // 初始隐藏loading界面
  22 + element.hide();
  23 +
  24 + // 开始请求通知处理
  25 + requestNotificationChannel.onRequestStarted(scope, function(requestInfo) {
  26 + if (loadingCount == 0) {
  27 + element.show();
  28 + }
  29 + loadingCount ++;
  30 + // TODO:以后在载入中显示requestInfo相关信息
  31 + console.log(requestInfo);
  32 + console.log(loadingCount);
  33 + });
  34 + // 请求结束通知处理
  35 + requestNotificationChannel.onRequestEnded(scope, function() {
  36 + loadingCount --;
  37 + if (loadingCount == 0) {
  38 + element.hide();
  39 + }
  40 +
  41 + console.log(loadingCount);
  42 + });
  43 + }
  44 + };
  45 + }
  46 +
  47 + };
  48 +
  49 + }
  50 + ]
51 ); 51 );
52 /** 52 /**
53 * remoteValidation指令,远程数据验证验证,作为属性放在某个指令上,依赖与指令的ngModel。 53 * remoteValidation指令,远程数据验证验证,作为属性放在某个指令上,依赖与指令的ngModel。
@@ -248,73 +248,73 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;remoteValidationt2&#39;, [ @@ -248,73 +248,73 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;remoteValidationt2&#39;, [
248 } 248 }
249 ]); 249 ]);
250 250
251 -/**  
252 - * remoteValidationt3 远程验证指令(监控依赖的model变化)  
253 - * 属性如下:  
254 - * remotevtype(必须):验证类型(在service中有对应映射),如rvtype="xl"  
255 - * remotemodel(必须):关联的model  
256 - * remotemodelcol(必须):关联的model属性  
257 - */  
258 -angular.module('ScheduleApp').directive(  
259 - 'remoteValidation3',  
260 - [  
261 - '$$SearchInfoService_g',  
262 - '$q',  
263 - function($$SearchInfoService_g, $q) {  
264 - return {  
265 - restrict: 'A', // 属性  
266 - require: '^ngModel', // 依赖所属指令的ngModel  
267 - compile: function(tElem, tAttrs) {  
268 - var remotevtype_attr = tAttrs['remotevtype'];  
269 - var remotemodel_attr = tAttrs['remotemodel'];  
270 - var remotemodelcol_attr = tAttrs['remotemodelcol'];  
271 - if (!remotevtype_attr) {  
272 - throw new Error("remotevtype属性必须填写");  
273 - }  
274 - if (!remotemodel_attr) {  
275 - throw new Error("remotemodel属性必须填写");  
276 - }  
277 - if (!remotemodelcol_attr) {  
278 - throw new Error("remotemodelcol属性必须填写");  
279 - }  
280 -  
281 - return {  
282 - pre: function(scope, element, attr) {  
283 -  
284 - },  
285 -  
286 - post: function(scope, element, attr, ngModelCtrl) {  
287 - ngModelCtrl.$asyncValidators.remote =  
288 - function(modelValue, viewValue) {  
289 - var deferred = $q.defer();  
290 -  
291 - // 远端验证service  
292 - var param = JSON.parse(attr['remotemodel']);  
293 - console.log(param);  
294 - param[remotemodelcol_attr] = modelValue;  
295 - $$SearchInfoService_g.validate[remotevtype_attr].remote.do(  
296 - param,  
297 - function(result) {  
298 - if (result.status == "SUCCESS") {  
299 - deferred.resolve();  
300 - } else {  
301 - scope.$remote_msg = result.msg;  
302 - deferred.reject();  
303 - }  
304 - },  
305 - function(result) {  
306 - deferred.reject();  
307 - }  
308 - );  
309 -  
310 - return deferred.promise;  
311 - };  
312 - }  
313 - };  
314 - }  
315 - }  
316 - }  
317 - ] 251 +/**
  252 + * remoteValidationt3 远程验证指令(监控依赖的model变化)
  253 + * 属性如下:
  254 + * remotevtype(必须):验证类型(在service中有对应映射),如rvtype="xl"
  255 + * remotemodel(必须):关联的model
  256 + * remotemodelcol(必须):关联的model属性
  257 + */
  258 +angular.module('ScheduleApp').directive(
  259 + 'remoteValidation3',
  260 + [
  261 + '$$SearchInfoService_g',
  262 + '$q',
  263 + function($$SearchInfoService_g, $q) {
  264 + return {
  265 + restrict: 'A', // 属性
  266 + require: '^ngModel', // 依赖所属指令的ngModel
  267 + compile: function(tElem, tAttrs) {
  268 + var remotevtype_attr = tAttrs['remotevtype'];
  269 + var remotemodel_attr = tAttrs['remotemodel'];
  270 + var remotemodelcol_attr = tAttrs['remotemodelcol'];
  271 + if (!remotevtype_attr) {
  272 + throw new Error("remotevtype属性必须填写");
  273 + }
  274 + if (!remotemodel_attr) {
  275 + throw new Error("remotemodel属性必须填写");
  276 + }
  277 + if (!remotemodelcol_attr) {
  278 + throw new Error("remotemodelcol属性必须填写");
  279 + }
  280 +
  281 + return {
  282 + pre: function(scope, element, attr) {
  283 +
  284 + },
  285 +
  286 + post: function(scope, element, attr, ngModelCtrl) {
  287 + ngModelCtrl.$asyncValidators.remote =
  288 + function(modelValue, viewValue) {
  289 + var deferred = $q.defer();
  290 +
  291 + // 远端验证service
  292 + var param = JSON.parse(attr['remotemodel']);
  293 + console.log(param);
  294 + param[remotemodelcol_attr] = modelValue;
  295 + $$SearchInfoService_g.validate[remotevtype_attr].remote.do(
  296 + param,
  297 + function(result) {
  298 + if (result.status == "SUCCESS") {
  299 + deferred.resolve();
  300 + } else {
  301 + scope.$remote_msg = result.msg;
  302 + deferred.reject();
  303 + }
  304 + },
  305 + function(result) {
  306 + deferred.reject();
  307 + }
  308 + );
  309 +
  310 + return deferred.promise;
  311 + };
  312 + }
  313 + };
  314 + }
  315 + }
  316 + }
  317 + ]
318 ); 318 );
319 /** 319 /**
320 * remoteWarn指令:远程验证警告,作为属性放在某个指令上。 320 * remoteWarn指令:远程验证警告,作为属性放在某个指令上。
@@ -431,278 +431,278 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;remoteWarn&#39;, [ @@ -431,278 +431,278 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;remoteWarn&#39;, [
431 }; 431 };
432 } 432 }
433 ]); 433 ]);
434 -  
435 -angular.module('ScheduleApp').directive("saSelect", ['$timeout', function($timeout) {  
436 - return {  
437 - restrict: 'E',  
438 - templateUrl: '/pages/scheduleApp/module/common/dts1/select/saSelectTemplate.html',  
439 - scope: {  
440 - model: "="  
441 - },  
442 - controllerAs: "$saSelectCtrl",  
443 - bindToController: true,  
444 - controller: function() {  
445 - var self = this;  
446 - self.datas = []; // 关联的字典数据,内部格式 {code:{值},name:{名字}}  
447 - },  
448 - /**  
449 - * 此阶段可以改dom结构,此时angular还没扫描指令,  
450 - * 这里就可以动态添加其他angularjs的指令字符串,如required指令字符串。  
451 - * @param tElem  
452 - * @param tAttrs  
453 - * @returns {{pre: Function, post: Function}}  
454 - */  
455 - compile: function(tElem, tAttrs) {  
456 - // 确定是否使用angularjs required验证  
457 - // 属性 required  
458 - // 如果没有填写,内部不添加验证,如果填写了,并且等于true添加验证,否则不添加  
459 - var required_attr = tAttrs["required"];  
460 - if (required_attr) {  
461 - if (required_attr == "true") {  
462 - // 添加required属性指令  
463 - tElem.find("ui-select").attr("required", "");  
464 - } else {  
465 - // 不等于true,不添加required属性指令  
466 - }  
467 - } else {  
468 - // 不添加required属性指令  
469 - }  
470 -  
471 - //console.log("saSelect" + ":compile = >" + tElem.html());  
472 -  
473 - return {  
474 - pre: function(scope, element, attr) {  
475 - // TODO:  
476 - },  
477 - /**  
478 - * 相当于link函数。  
479 - *  
480 - * 重要属性如下:  
481 - * model 是绑定外部值。  
482 - * dicgroup 字典组的类型  
483 - * name input name属性值  
484 - */  
485 - post: function(scope, element, attr) {  
486 - // 1、获取属性  
487 - var dicgroup_attr = attr['dicgroup']; // 字典组的类型  
488 - var name_attr = attr['name']; // input name属性值  
489 - var dicname_attr = attr['dicname']; // model关联的字典名字段  
490 - var codename_attr = attr['codename']; // model关联的字典值字段  
491 - var placeholder_attr = attr['placeholder']; // select placeholder提示  
492 -  
493 - // 系统的字典对象,使用dictionaryUtils类获取  
494 - var origin_dicgroup;  
495 - var dic_key; // 字典key  
496 -  
497 - if (dicgroup_attr) { // 赋值指定的字典数据  
498 - origin_dicgroup = dictionaryUtils.getByGroup(dicgroup_attr);  
499 - for (dic_key in origin_dicgroup) {  
500 - var data = {}; // 重新组合的字典元素对象  
501 - if (dic_key == "true")  
502 - data.code = true;  
503 - else  
504 - data.code = dic_key;  
505 - data.name = origin_dicgroup[dic_key];  
506 - scope["$saSelectCtrl"].datas.push(data);  
507 - }  
508 - }  
509 -  
510 - if (name_attr) {  
511 - scope["$saSelectCtrl"].nv = name_attr;  
512 - }  
513 - if (placeholder_attr) {  
514 - scope["$saSelectCtrl"].ph = placeholder_attr;  
515 - }  
516 -  
517 - scope["$saSelectCtrl"].select = function($item) {  
518 - if (codename_attr) {  
519 - scope["$saSelectCtrl"].model[codename_attr] = $item.code;  
520 - }  
521 - if (dicname_attr) {  
522 - scope["$saSelectCtrl"].model[dicname_attr] = $item.name;  
523 - }  
524 - };  
525 -  
526 - scope["$saSelectCtrl"].remove = function() {  
527 - if (codename_attr) {  
528 - scope["$saSelectCtrl"].model[codename_attr] = null;  
529 - }  
530 - if (dicname_attr) {  
531 - scope["$saSelectCtrl"].model[dicname_attr] = null;  
532 - }  
533 - scope["$saSelectCtrl"].cmodel = null;  
534 - };  
535 -  
536 - $timeout(function() {  
537 - // 创建内部使用的绑定对象  
538 - var model_code = scope["$saSelectCtrl"].model[codename_attr];  
539 - scope["$saSelectCtrl"].cmodel = model_code;  
540 - }, 0);  
541 - }  
542 - }  
543 - }  
544 - };  
545 -}]);  
546 -  
547 -  
548 -  
549 -angular.module('ScheduleApp').directive("saSelect2", [  
550 - '$timeout', '$$SearchInfoService_g',  
551 - function($timeout, $$searchInfoService_g) {  
552 - return {  
553 - restrict: 'E',  
554 - templateUrl: '/pages/scheduleApp/module/common/dts1/select/saSelect2Template.html',  
555 - scope: {  
556 - model: "=" // 独立作用域,关联外部的模型对象  
557 - },  
558 - controllerAs: "$saSelectCtrl",  
559 - bindToController: true,  
560 - controller: function($scope) {  
561 - var self = this;  
562 - self.$$data = []; // 内部关联的数据  
563 - },  
564 - /**  
565 - * 此阶段可以改dom结构,此时angular还没扫描指令,  
566 - * 这里就可以动态添加其他angularjs的指令字符串,如required指令字符串。  
567 - * @param tElem  
568 - * @param tAttrs  
569 - * @returns {{pre: Function, post: Function}}  
570 - */  
571 - compile: function(tElem, tAttrs) {  
572 - // 1、获取此阶段使用的属性  
573 - var $required_attr = tAttrs["required"]; // 用于和表单验证连接,指定成required="true"才有效。  
574 -  
575 - // 2、处理属性  
576 -  
577 - // 确定是否使用angularjs required验证  
578 - // 属性 required  
579 - // 如果没有填写,内部不添加验证,如果填写了,并且等于true添加验证,否则不添加  
580 - if ($required_attr) {  
581 - if ($required_attr == "true") {  
582 - // 添加required属性指令  
583 - tElem.find("ui-select").attr("required", "");  
584 - } else {  
585 - // 不等于true,不添加required属性指令  
586 - }  
587 - } else {  
588 - // 不添加required属性指令  
589 - }  
590 -  
591 - //console.log("saSelect" + ":compile = >" + tElem.html());  
592 -  
593 - return {  
594 - pre: function(scope, element, attr) {  
595 - // TODO:  
596 - },  
597 - /**  
598 - * 相当于link函数。  
599 - *  
600 - * 重要属性如下:  
601 - * model 是绑定外部值。  
602 - * dicgroup 字典组的类型  
603 - * name input name属性值  
604 - */  
605 - post: function(scope, element, attr) {  
606 - // 1、获取此阶段使用的属性  
607 - var $name_attr = attr["name"]; // 表单验证时需要的名字  
608 - var $type_attr = attr["type"]; // 关联的那种数据值(xl/cl/ry)-> 对应线路信息/车辆信息/人员信息,后面有的继续加  
609 - var $modelcolname1_attr = attr["modelcolname1"]; // 关联的模型字段名字1(一般应该是编码字段)  
610 - var $modelcolname2_attr = attr["modelcolname2"]; // 关联的模型字段名字2(一般应该是名字字段)  
611 - var $datacolname1_attr = attr["datacolname1"]; // 内部数据对应的字段名字1(与模型字段1对应)  
612 - var $datacolname2_attr = attr["datacolname2"]; // 内部数据对应的字段名字2(与模型字段2对应)  
613 - var $showcolname_attr = attr["showcolname"]; // 下拉框显示的内部数据字段名  
614 - var $placeholder_attr = attr["placeholder"]; // select placeholder字符串描述  
615 -  
616 - // 2、处理属性、转换成$saSelectCtrl内部使用的属性  
617 - if ($name_attr) {  
618 - scope["$saSelectCtrl"].$name_attr = $name_attr;  
619 - }  
620 - if ($placeholder_attr) {  
621 - scope["$saSelectCtrl"].$placeholder_attr = $placeholder_attr;  
622 - }  
623 - if ($showcolname_attr) {  
624 - scope["$saSelectCtrl"].$showcolname_attr = $showcolname_attr;  
625 - }  
626 -  
627 - // 2-1、添加内部方法,根据type值,改变$$data的值  
628 - scope["$saSelectCtrl"].$$internal_data_change_fn = function() {  
629 - // 根据type属性动态载入数据  
630 - if ($type_attr) {  
631 - $$searchInfoService_g[$type_attr].list(  
632 - {type: "all"},  
633 - function(result) {  
634 - scope["$saSelectCtrl"].$$data = [];  
635 - for (var i = 0; i < result.length; i ++) {  
636 - var data = {}; // data是result的一部分属性集合,根据配置来确定  
637 - if ($datacolname1_attr) {  
638 - data[$datacolname1_attr] = result[i][$datacolname1_attr];  
639 - }  
640 - if ($datacolname2_attr) {  
641 - data[$datacolname2_attr] = result[i][$datacolname2_attr];  
642 - }  
643 - if ($showcolname_attr) {  
644 - // 动态添加基于名字的拼音  
645 - data[$showcolname_attr] = result[i][$showcolname_attr];  
646 - if (data[$showcolname_attr]) {  
647 - data["fullChars"] = pinyin.getFullChars(result[i][$showcolname_attr]).toUpperCase(); // 全拼  
648 - data["camelChars"] = pinyin.getCamelChars(result[i][$showcolname_attr]); // 简拼  
649 - }  
650 - }  
651 - if (data["fullChars"])  
652 - scope["$saSelectCtrl"].$$data.push(data);  
653 - }  
654 - },  
655 - function(result) {  
656 -  
657 - }  
658 - );  
659 - }  
660 - };  
661 -  
662 - // 3、选择、删除事件映射模型和内部数据对应的字段  
663 - scope["$saSelectCtrl"].$select_fn_attr = function($item) {  
664 - if ($modelcolname1_attr && $datacolname1_attr) {  
665 - scope["$saSelectCtrl"].model[$modelcolname1_attr] = $item[$datacolname1_attr];  
666 - }  
667 - if ($modelcolname2_attr && $datacolname2_attr) {  
668 - scope["$saSelectCtrl"].model[$modelcolname2_attr] = $item[$datacolname2_attr];  
669 - }  
670 - };  
671 - scope["$saSelectCtrl"].$remove_fn_attr = function() {  
672 - if ($modelcolname1_attr) {  
673 - scope["$saSelectCtrl"].model[$modelcolname1_attr] = null;  
674 - }  
675 - if ($modelcolname2_attr) {  
676 - scope["$saSelectCtrl"].model[$modelcolname2_attr] = null;  
677 - }  
678 - scope["$saSelectCtrl"].$$cmodel = null; // 内部模型清空  
679 -  
680 - scope["$saSelectCtrl"].$$internal_data_change_fn();  
681 - };  
682 -  
683 - // 4、搜索事件  
684 - scope["$saSelectCtrl"].$refreshdata_fn_attr = function($search) {  
685 - //var fullChars = pinyin.getFullChars($search).toUpperCase();  
686 - //var camelChars = pinyin.getCamelChars($search);  
687 - //  
688 - //console.log(fullChars + " " + camelChars);  
689 - // TODO:事件暂时没用,放着以后再说  
690 - };  
691 -  
692 - // 5、全部载入后,输入的  
693 - $timeout(function() {  
694 - // 创建内部使用的绑定对象,用于确认选中那个值  
695 - scope["$saSelectCtrl"].$$cmodel = scope["$saSelectCtrl"].model[$modelcolname1_attr];  
696 -  
697 - scope["$saSelectCtrl"].$$internal_data_change_fn();  
698 - }, 0);  
699 - }  
700 - }  
701 - }  
702 - };  
703 - }  
704 -]);  
705 - 434 +
  435 +angular.module('ScheduleApp').directive("saSelect", ['$timeout', function($timeout) {
  436 + return {
  437 + restrict: 'E',
  438 + templateUrl: '/pages/scheduleApp/module/common/dts1/select/saSelectTemplate.html',
  439 + scope: {
  440 + model: "="
  441 + },
  442 + controllerAs: "$saSelectCtrl",
  443 + bindToController: true,
  444 + controller: function() {
  445 + var self = this;
  446 + self.datas = []; // 关联的字典数据,内部格式 {code:{值},name:{名字}}
  447 + },
  448 + /**
  449 + * 此阶段可以改dom结构,此时angular还没扫描指令,
  450 + * 这里就可以动态添加其他angularjs的指令字符串,如required指令字符串。
  451 + * @param tElem
  452 + * @param tAttrs
  453 + * @returns {{pre: Function, post: Function}}
  454 + */
  455 + compile: function(tElem, tAttrs) {
  456 + // 确定是否使用angularjs required验证
  457 + // 属性 required
  458 + // 如果没有填写,内部不添加验证,如果填写了,并且等于true添加验证,否则不添加
  459 + var required_attr = tAttrs["required"];
  460 + if (required_attr) {
  461 + if (required_attr == "true") {
  462 + // 添加required属性指令
  463 + tElem.find("ui-select").attr("required", "");
  464 + } else {
  465 + // 不等于true,不添加required属性指令
  466 + }
  467 + } else {
  468 + // 不添加required属性指令
  469 + }
  470 +
  471 + //console.log("saSelect" + ":compile = >" + tElem.html());
  472 +
  473 + return {
  474 + pre: function(scope, element, attr) {
  475 + // TODO:
  476 + },
  477 + /**
  478 + * 相当于link函数。
  479 + *
  480 + * 重要属性如下:
  481 + * model 是绑定外部值。
  482 + * dicgroup 字典组的类型
  483 + * name input name属性值
  484 + */
  485 + post: function(scope, element, attr) {
  486 + // 1、获取属性
  487 + var dicgroup_attr = attr['dicgroup']; // 字典组的类型
  488 + var name_attr = attr['name']; // input name属性值
  489 + var dicname_attr = attr['dicname']; // model关联的字典名字段
  490 + var codename_attr = attr['codename']; // model关联的字典值字段
  491 + var placeholder_attr = attr['placeholder']; // select placeholder提示
  492 +
  493 + // 系统的字典对象,使用dictionaryUtils类获取
  494 + var origin_dicgroup;
  495 + var dic_key; // 字典key
  496 +
  497 + if (dicgroup_attr) { // 赋值指定的字典数据
  498 + origin_dicgroup = dictionaryUtils.getByGroup(dicgroup_attr);
  499 + for (dic_key in origin_dicgroup) {
  500 + var data = {}; // 重新组合的字典元素对象
  501 + if (dic_key == "true")
  502 + data.code = true;
  503 + else
  504 + data.code = dic_key;
  505 + data.name = origin_dicgroup[dic_key];
  506 + scope["$saSelectCtrl"].datas.push(data);
  507 + }
  508 + }
  509 +
  510 + if (name_attr) {
  511 + scope["$saSelectCtrl"].nv = name_attr;
  512 + }
  513 + if (placeholder_attr) {
  514 + scope["$saSelectCtrl"].ph = placeholder_attr;
  515 + }
  516 +
  517 + scope["$saSelectCtrl"].select = function($item) {
  518 + if (codename_attr) {
  519 + scope["$saSelectCtrl"].model[codename_attr] = $item.code;
  520 + }
  521 + if (dicname_attr) {
  522 + scope["$saSelectCtrl"].model[dicname_attr] = $item.name;
  523 + }
  524 + };
  525 +
  526 + scope["$saSelectCtrl"].remove = function() {
  527 + if (codename_attr) {
  528 + scope["$saSelectCtrl"].model[codename_attr] = null;
  529 + }
  530 + if (dicname_attr) {
  531 + scope["$saSelectCtrl"].model[dicname_attr] = null;
  532 + }
  533 + scope["$saSelectCtrl"].cmodel = null;
  534 + };
  535 +
  536 + $timeout(function() {
  537 + // 创建内部使用的绑定对象
  538 + var model_code = scope["$saSelectCtrl"].model[codename_attr];
  539 + scope["$saSelectCtrl"].cmodel = model_code;
  540 + }, 0);
  541 + }
  542 + }
  543 + }
  544 + };
  545 +}]);
  546 +
  547 +
  548 +
  549 +angular.module('ScheduleApp').directive("saSelect2", [
  550 + '$timeout', '$$SearchInfoService_g',
  551 + function($timeout, $$searchInfoService_g) {
  552 + return {
  553 + restrict: 'E',
  554 + templateUrl: '/pages/scheduleApp/module/common/dts1/select/saSelect2Template.html',
  555 + scope: {
  556 + model: "=" // 独立作用域,关联外部的模型对象
  557 + },
  558 + controllerAs: "$saSelectCtrl",
  559 + bindToController: true,
  560 + controller: function($scope) {
  561 + var self = this;
  562 + self.$$data = []; // 内部关联的数据
  563 + },
  564 + /**
  565 + * 此阶段可以改dom结构,此时angular还没扫描指令,
  566 + * 这里就可以动态添加其他angularjs的指令字符串,如required指令字符串。
  567 + * @param tElem
  568 + * @param tAttrs
  569 + * @returns {{pre: Function, post: Function}}
  570 + */
  571 + compile: function(tElem, tAttrs) {
  572 + // 1、获取此阶段使用的属性
  573 + var $required_attr = tAttrs["required"]; // 用于和表单验证连接,指定成required="true"才有效。
  574 +
  575 + // 2、处理属性
  576 +
  577 + // 确定是否使用angularjs required验证
  578 + // 属性 required
  579 + // 如果没有填写,内部不添加验证,如果填写了,并且等于true添加验证,否则不添加
  580 + if ($required_attr) {
  581 + if ($required_attr == "true") {
  582 + // 添加required属性指令
  583 + tElem.find("ui-select").attr("required", "");
  584 + } else {
  585 + // 不等于true,不添加required属性指令
  586 + }
  587 + } else {
  588 + // 不添加required属性指令
  589 + }
  590 +
  591 + //console.log("saSelect" + ":compile = >" + tElem.html());
  592 +
  593 + return {
  594 + pre: function(scope, element, attr) {
  595 + // TODO:
  596 + },
  597 + /**
  598 + * 相当于link函数。
  599 + *
  600 + * 重要属性如下:
  601 + * model 是绑定外部值。
  602 + * dicgroup 字典组的类型
  603 + * name input name属性值
  604 + */
  605 + post: function(scope, element, attr) {
  606 + // 1、获取此阶段使用的属性
  607 + var $name_attr = attr["name"]; // 表单验证时需要的名字
  608 + var $type_attr = attr["type"]; // 关联的那种数据值(xl/cl/ry)-> 对应线路信息/车辆信息/人员信息,后面有的继续加
  609 + var $modelcolname1_attr = attr["modelcolname1"]; // 关联的模型字段名字1(一般应该是编码字段)
  610 + var $modelcolname2_attr = attr["modelcolname2"]; // 关联的模型字段名字2(一般应该是名字字段)
  611 + var $datacolname1_attr = attr["datacolname1"]; // 内部数据对应的字段名字1(与模型字段1对应)
  612 + var $datacolname2_attr = attr["datacolname2"]; // 内部数据对应的字段名字2(与模型字段2对应)
  613 + var $showcolname_attr = attr["showcolname"]; // 下拉框显示的内部数据字段名
  614 + var $placeholder_attr = attr["placeholder"]; // select placeholder字符串描述
  615 +
  616 + // 2、处理属性、转换成$saSelectCtrl内部使用的属性
  617 + if ($name_attr) {
  618 + scope["$saSelectCtrl"].$name_attr = $name_attr;
  619 + }
  620 + if ($placeholder_attr) {
  621 + scope["$saSelectCtrl"].$placeholder_attr = $placeholder_attr;
  622 + }
  623 + if ($showcolname_attr) {
  624 + scope["$saSelectCtrl"].$showcolname_attr = $showcolname_attr;
  625 + }
  626 +
  627 + // 2-1、添加内部方法,根据type值,改变$$data的值
  628 + scope["$saSelectCtrl"].$$internal_data_change_fn = function() {
  629 + // 根据type属性动态载入数据
  630 + if ($type_attr) {
  631 + $$searchInfoService_g[$type_attr].list(
  632 + {type: "all"},
  633 + function(result) {
  634 + scope["$saSelectCtrl"].$$data = [];
  635 + for (var i = 0; i < result.length; i ++) {
  636 + var data = {}; // data是result的一部分属性集合,根据配置来确定
  637 + if ($datacolname1_attr) {
  638 + data[$datacolname1_attr] = result[i][$datacolname1_attr];
  639 + }
  640 + if ($datacolname2_attr) {
  641 + data[$datacolname2_attr] = result[i][$datacolname2_attr];
  642 + }
  643 + if ($showcolname_attr) {
  644 + // 动态添加基于名字的拼音
  645 + data[$showcolname_attr] = result[i][$showcolname_attr];
  646 + if (data[$showcolname_attr]) {
  647 + data["fullChars"] = pinyin.getFullChars(result[i][$showcolname_attr]).toUpperCase(); // 全拼
  648 + data["camelChars"] = pinyin.getCamelChars(result[i][$showcolname_attr]); // 简拼
  649 + }
  650 + }
  651 + if (data["fullChars"])
  652 + scope["$saSelectCtrl"].$$data.push(data);
  653 + }
  654 + },
  655 + function(result) {
  656 +
  657 + }
  658 + );
  659 + }
  660 + };
  661 +
  662 + // 3、选择、删除事件映射模型和内部数据对应的字段
  663 + scope["$saSelectCtrl"].$select_fn_attr = function($item) {
  664 + if ($modelcolname1_attr && $datacolname1_attr) {
  665 + scope["$saSelectCtrl"].model[$modelcolname1_attr] = $item[$datacolname1_attr];
  666 + }
  667 + if ($modelcolname2_attr && $datacolname2_attr) {
  668 + scope["$saSelectCtrl"].model[$modelcolname2_attr] = $item[$datacolname2_attr];
  669 + }
  670 + };
  671 + scope["$saSelectCtrl"].$remove_fn_attr = function() {
  672 + if ($modelcolname1_attr) {
  673 + scope["$saSelectCtrl"].model[$modelcolname1_attr] = null;
  674 + }
  675 + if ($modelcolname2_attr) {
  676 + scope["$saSelectCtrl"].model[$modelcolname2_attr] = null;
  677 + }
  678 + scope["$saSelectCtrl"].$$cmodel = null; // 内部模型清空
  679 +
  680 + scope["$saSelectCtrl"].$$internal_data_change_fn();
  681 + };
  682 +
  683 + // 4、搜索事件
  684 + scope["$saSelectCtrl"].$refreshdata_fn_attr = function($search) {
  685 + //var fullChars = pinyin.getFullChars($search).toUpperCase();
  686 + //var camelChars = pinyin.getCamelChars($search);
  687 + //
  688 + //console.log(fullChars + " " + camelChars);
  689 + // TODO:事件暂时没用,放着以后再说
  690 + };
  691 +
  692 + // 5、全部载入后,输入的
  693 + $timeout(function() {
  694 + // 创建内部使用的绑定对象,用于确认选中那个值
  695 + scope["$saSelectCtrl"].$$cmodel = scope["$saSelectCtrl"].model[$modelcolname1_attr];
  696 +
  697 + scope["$saSelectCtrl"].$$internal_data_change_fn();
  698 + }, 0);
  699 + }
  700 + }
  701 + }
  702 + };
  703 + }
  704 +]);
  705 +
706 706
707 707
708 708
@@ -1435,13 +1435,16 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect4&#39;, [ @@ -1435,13 +1435,16 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect4&#39;, [
1435 * 1435 *
1436 * required(可选):是否需要form的required验证 1436 * required(可选):是否需要form的required验证
1437 * 1437 *
  1438 + * width(可选):内部自动计算select框和删除按钮的宽度,并添加对应的style
  1439 + *
1438 */ 1440 */
1439 angular.module('ScheduleApp').directive('saSelect5', [ 1441 angular.module('ScheduleApp').directive('saSelect5', [
1440 '$timeout', 1442 '$timeout',
1441 '$$SearchInfoService_g', 1443 '$$SearchInfoService_g',
1442 'UserPrincipal', 1444 'UserPrincipal',
1443 'DataStore', 1445 'DataStore',
1444 - function($timeout, $$searchInfoService_g, UserPrincipal, DataStore) { 1446 + '$translate',
  1447 + function($timeout, $$searchInfoService_g, UserPrincipal, DataStore, translate) {
1445 return { 1448 return {
1446 restrict: 'E', 1449 restrict: 'E',
1447 templateUrl: '/pages/scheduleApp/module/common/dts1/select/saSelect5Template.html', 1450 templateUrl: '/pages/scheduleApp/module/common/dts1/select/saSelect5Template.html',
@@ -1485,6 +1488,8 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [ @@ -1485,6 +1488,8 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
1485 1488
1486 var $required_attr = tAttrs["required"]; // 是否需要required验证 1489 var $required_attr = tAttrs["required"]; // 是否需要required验证
1487 1490
  1491 + var $width_attr = tAttrs["width"]; // 宽度
  1492 +
1488 if (!$name_attr) { 1493 if (!$name_attr) {
1489 throw new Error("name属性必须填写"); 1494 throw new Error("name属性必须填写");
1490 } 1495 }
@@ -1531,6 +1536,17 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [ @@ -1531,6 +1536,17 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
1531 // dom,span ng-bind属性设置,TODO:暂时无法用transclude设置,先用属性设置 1536 // dom,span ng-bind属性设置,TODO:暂时无法用transclude设置,先用属性设置
1532 tElem.find("ui-select-choices").html("{{" + $iterobjexp_attr + "}}"); 1537 tElem.find("ui-select-choices").html("{{" + $iterobjexp_attr + "}}");
1533 1538
  1539 + // 计算宽度
  1540 + if ($width_attr) {
  1541 + var $button_t_b = 6; // 按钮的padding top bottom
  1542 + var $button_l_r = 6; // 按钮的padding left right
  1543 + var $select_width = $width_attr - $button_l_r * 2; // select的width
  1544 + tElem.find("ui-select").attr("style",
  1545 + "width: " + $select_width + "px!important;" +
  1546 + "white-space: nowrap; overflow: hidden;");
  1547 + tElem.find("button").attr("style", "padding: " + $button_t_b + "px " + $button_l_r + "px;");
  1548 + }
  1549 +
1534 1550
1535 // 当前的数据模式,ajax,dic,local 1551 // 当前的数据模式,ajax,dic,local
1536 var dataModelType = undefined; 1552 var dataModelType = undefined;
@@ -1777,7 +1793,7 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [ @@ -1777,7 +1793,7 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
1777 */ 1793 */
1778 scope[ctrlAs].$$internal_dic_data = function(dictype) { 1794 scope[ctrlAs].$$internal_dic_data = function(dictype) {
1779 if (!dictionaryUtils.getByGroup(dictype)) { 1795 if (!dictionaryUtils.getByGroup(dictype)) {
1780 - throw new error(i18n('txt-1275', [dictype])); 1796 + throw new error(translate.instant("saSelect5_js_line375_txt-1275") + dictype);
1781 } 1797 }
1782 1798
1783 // 重新创建内部保存的数据 1799 // 重新创建内部保存的数据
@@ -1931,149 +1947,150 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [ @@ -1931,149 +1947,150 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
1931 }; 1947 };
1932 } 1948 }
1933 ]); 1949 ]);
1934 -/**  
1935 - * mySelect指令,封装uiselect指令,封装内部数据获取,只支持单选  
1936 - * cm(必须):绑定外部对象,因为关联的字段不只一个,单独使用ngModel不够  
1937 - * cmoptions(必须):描述绑定的逻辑配置对象,格式如下:  
1938 - *  
1939 - * // TODO:  
1940 - */  
1941 -angular.module('ScheduleApp').directive('mySelect', [  
1942 - function() {  
1943 - return {  
1944 - restrict: 'E',  
1945 - template: '<div>bioxuxuan</div>',  
1946 - require: 'ngModel',  
1947 - compile: function(tElem, tAttrs) {  
1948 - return {  
1949 - pre: function(scope, element, attr) {  
1950 1950
1951 - },  
1952 - post: function(scope, element, attr, ngModelCtr) {  
1953 - // model -> view  
1954 - ngModelCtr.$formatters.push(function(modelValue) {  
1955 - // 监控model的变化  
1956 - if (typeof modelValue != "undefined") {  
1957 - console.log(modelValue);  
1958 -  
1959 - return modelValue;  
1960 - }  
1961 - });  
1962 -  
1963 - ngModelCtr.$render = function() {  
1964 - if (typeof scope.ctrl.say != "undefined") {  
1965 - element.find('div').css('color', 'red');  
1966 - }  
1967 - };  
1968 -  
1969 - ngModelCtr.$setViewValue("init value");  
1970 -  
1971 -  
1972 - }  
1973 - }  
1974 - }  
1975 - }  
1976 - } 1951 +/**
  1952 + * mySelect指令,封装uiselect指令,封装内部数据获取,只支持单选
  1953 + * cm(必须):绑定外部对象,因为关联的字段不只一个,单独使用ngModel不够
  1954 + * cmoptions(必须):描述绑定的逻辑配置对象,格式如下:
  1955 + *
  1956 + * // TODO:
  1957 + */
  1958 +angular.module('ScheduleApp').directive('mySelect', [
  1959 + function() {
  1960 + return {
  1961 + restrict: 'E',
  1962 + template: '<div>bioxuxuan</div>',
  1963 + require: 'ngModel',
  1964 + compile: function(tElem, tAttrs) {
  1965 + return {
  1966 + pre: function(scope, element, attr) {
  1967 +
  1968 + },
  1969 + post: function(scope, element, attr, ngModelCtr) {
  1970 + // model -> view
  1971 + ngModelCtr.$formatters.push(function(modelValue) {
  1972 + // 监控model的变化
  1973 + if (typeof modelValue != "undefined") {
  1974 + console.log(modelValue);
  1975 +
  1976 + return modelValue;
  1977 + }
  1978 + });
  1979 +
  1980 + ngModelCtr.$render = function() {
  1981 + if (typeof scope.ctrl.say != "undefined") {
  1982 + element.find('div').css('color', 'red');
  1983 + }
  1984 + };
  1985 +
  1986 + ngModelCtr.$setViewValue("init value");
  1987 +
  1988 +
  1989 + }
  1990 + }
  1991 + }
  1992 + }
  1993 + }
1977 ]); 1994 ]);
1978 -  
1979 -/**  
1980 - * saRadiogroup指令  
1981 - * 属性如下:  
1982 - * model(必须):独立作用域,外部绑定的一个值,如:ctrl.timeTableManageForForm.isEnableDisTemplate  
1983 - * dicgroup(必须):关联的字典数据type(TODO:以后增加其他数据源)  
1984 - * name(必须):控件的名字  
1985 - * required(可选):是否要用required验证  
1986 - * disabled(可选):标示单选框是否可选  
1987 - *  
1988 - */  
1989 -angular.module('ScheduleApp').directive("saRadiogroup", [function() {  
1990 - /**  
1991 - * 使用字典数据的单选按钮组的指令。  
1992 - * 指令名称:truefalse-Dic  
1993 - */  
1994 - return {  
1995 - restrict: 'E',  
1996 - templateUrl: '/pages/scheduleApp/module/common/dts1/radioButton/saRadiogroupTemplate.html',  
1997 - scope: {  
1998 - model: "="  
1999 - },  
2000 - controllerAs: "$saRadiogroupCtrl",  
2001 - bindToController: true,  
2002 - controller: function($scope) {  
2003 - //$scope["model"] = {selectedOption: null};  
2004 - //console.log("controller");  
2005 - //console.log("controller:" + $scope["model"]);  
2006 -  
2007 - var self = this;  
2008 - self.$$data = null; // 内部数据  
2009 - },  
2010 -  
2011 - /**  
2012 - * 此阶段可以改dom结构,此时angular还没扫描指令,  
2013 - * 这里就可以动态添加其他angularjs的指令字符串,如required指令字符串。  
2014 - * @param tElem  
2015 - * @param tAttrs  
2016 - * @returns {{pre: Function, post: Function}}  
2017 - */  
2018 - compile: function(tElem, tAttrs) {  
2019 - // 获取属性  
2020 - var $dicgroup_attr = tAttrs["dicgroup"]; // 关联的字典数据type  
2021 - var $name_attr = tAttrs["name"]; // 控件的名字  
2022 - var $required_attr = tAttrs["required"]; // 是否要用required验证  
2023 - var $disabled_attr = tAttrs["disabled"]; // 标示单选框是否可选  
2024 -  
2025 - // controlAs名字  
2026 - var ctrlAs = "$saRadiogroupCtrl";  
2027 -  
2028 - // 如果有required属性,添加angularjs required验证  
2029 - if ($required_attr != undefined) {  
2030 - tElem.find("input").attr("required", "");  
2031 - }  
2032 -  
2033 - return {  
2034 - pre: function(scope, element, attr) {  
2035 -  
2036 - },  
2037 -  
2038 - /**  
2039 - * 相当于link函数。  
2040 - * @param scope  
2041 - * @param element  
2042 - * @param attr  
2043 - */  
2044 - post: function(scope, element, attr) {  
2045 - //console.log("link");  
2046 - //console.log("link:" + scope.model);  
2047 - //scope["model"] = {selectedOption: null};  
2048 -  
2049 - if ($name_attr) {  
2050 - scope[ctrlAs].nv = $name_attr;  
2051 - }  
2052 -  
2053 - if ($disabled_attr) {  
2054 - scope[ctrlAs].disabled = true;  
2055 - }  
2056 - if ($dicgroup_attr) {  
2057 - var obj = dictionaryUtils.getByGroup($dicgroup_attr);  
2058 - scope[ctrlAs].$$data = obj;  
2059 - // 处理 scope["dic"] key值  
2060 - scope[ctrlAs].dicvalueCalcu = function(value) {  
2061 - if (value == "true") {  
2062 - //console.log(value);  
2063 - return true;  
2064 - } else if (value == "false") {  
2065 - //console.log(value);  
2066 - return false;  
2067 - } else {  
2068 - return value;  
2069 - }  
2070 - };  
2071 - }  
2072 - }  
2073 - };  
2074 - }  
2075 - };  
2076 -}]); 1995 +
  1996 +/**
  1997 + * saRadiogroup指令
  1998 + * 属性如下:
  1999 + * model(必须):独立作用域,外部绑定的一个值,如:ctrl.timeTableManageForForm.isEnableDisTemplate
  2000 + * dicgroup(必须):关联的字典数据type(TODO:以后增加其他数据源)
  2001 + * name(必须):控件的名字
  2002 + * required(可选):是否要用required验证
  2003 + * disabled(可选):标示单选框是否可选
  2004 + *
  2005 + */
  2006 +angular.module('ScheduleApp').directive("saRadiogroup", [function() {
  2007 + /**
  2008 + * 使用字典数据的单选按钮组的指令。
  2009 + * 指令名称:truefalse-Dic
  2010 + */
  2011 + return {
  2012 + restrict: 'E',
  2013 + templateUrl: '/pages/scheduleApp/module/common/dts1/radioButton/saRadiogroupTemplate.html',
  2014 + scope: {
  2015 + model: "="
  2016 + },
  2017 + controllerAs: "$saRadiogroupCtrl",
  2018 + bindToController: true,
  2019 + controller: function($scope) {
  2020 + //$scope["model"] = {selectedOption: null};
  2021 + //console.log("controller");
  2022 + //console.log("controller:" + $scope["model"]);
  2023 +
  2024 + var self = this;
  2025 + self.$$data = null; // 内部数据
  2026 + },
  2027 +
  2028 + /**
  2029 + * 此阶段可以改dom结构,此时angular还没扫描指令,
  2030 + * 这里就可以动态添加其他angularjs的指令字符串,如required指令字符串。
  2031 + * @param tElem
  2032 + * @param tAttrs
  2033 + * @returns {{pre: Function, post: Function}}
  2034 + */
  2035 + compile: function(tElem, tAttrs) {
  2036 + // 获取属性
  2037 + var $dicgroup_attr = tAttrs["dicgroup"]; // 关联的字典数据type
  2038 + var $name_attr = tAttrs["name"]; // 控件的名字
  2039 + var $required_attr = tAttrs["required"]; // 是否要用required验证
  2040 + var $disabled_attr = tAttrs["disabled"]; // 标示单选框是否可选
  2041 +
  2042 + // controlAs名字
  2043 + var ctrlAs = "$saRadiogroupCtrl";
  2044 +
  2045 + // 如果有required属性,添加angularjs required验证
  2046 + if ($required_attr != undefined) {
  2047 + tElem.find("input").attr("required", "");
  2048 + }
  2049 +
  2050 + return {
  2051 + pre: function(scope, element, attr) {
  2052 +
  2053 + },
  2054 +
  2055 + /**
  2056 + * 相当于link函数。
  2057 + * @param scope
  2058 + * @param element
  2059 + * @param attr
  2060 + */
  2061 + post: function(scope, element, attr) {
  2062 + //console.log("link");
  2063 + //console.log("link:" + scope.model);
  2064 + //scope["model"] = {selectedOption: null};
  2065 +
  2066 + if ($name_attr) {
  2067 + scope[ctrlAs].nv = $name_attr;
  2068 + }
  2069 +
  2070 + if ($disabled_attr) {
  2071 + scope[ctrlAs].disabled = true;
  2072 + }
  2073 + if ($dicgroup_attr) {
  2074 + var obj = dictionaryUtils.getByGroup($dicgroup_attr);
  2075 + scope[ctrlAs].$$data = obj;
  2076 + // 处理 scope["dic"] key值
  2077 + scope[ctrlAs].dicvalueCalcu = function(value) {
  2078 + if (value == "true") {
  2079 + //console.log(value);
  2080 + return true;
  2081 + } else if (value == "false") {
  2082 + //console.log(value);
  2083 + return false;
  2084 + } else {
  2085 + return value;
  2086 + }
  2087 + };
  2088 + }
  2089 + }
  2090 + };
  2091 + }
  2092 + };
  2093 +}]);
2077 2094
2078 2095
2079 2096
@@ -2236,387 +2253,387 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saCheckboxgroup&#39;, [ @@ -2236,387 +2253,387 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saCheckboxgroup&#39;, [
2236 ]); 2253 ]);
2237 2254
2238 2255
  2256 +
  2257 +
  2258 +/**
  2259 + * saDategroup指令
  2260 + * 属性如下:
  2261 + * model(必须):指定一个外部object,独立作用域,如:model=ctrl.employeeInfoForSave
  2262 + * dcvalue(必须):绑定的model字段值,如:dcvalue={{ctrl.employeeInfoForSave.xl.id}}
  2263 + * dcname(必须):绑定的model字段名,如:dcname=xl.id
  2264 + * name(必须):控件的名字
  2265 + * required(可选):是否要用required验证
  2266 + * disabled(可选):标示框是否可选
  2267 + *
  2268 + */
  2269 +angular.module('ScheduleApp').directive('saDategroup', [
  2270 + '$filter',
  2271 + function($filter) {
  2272 + return {
  2273 + restrict: 'E',
  2274 + templateUrl: '/pages/scheduleApp/module/common/dts2/dateGroup/saDategroupTemplate.html',
  2275 + scope: {
  2276 + model: "=" // 独立作用域,关联外部的模型object
  2277 + },
  2278 + controllerAs: "$saDategroupCtrl",
  2279 + bindToController: true,
  2280 + controller: function($scope) {
  2281 + var self = this;
  2282 + self.$$data = []; // 内部的数据
  2283 + self.$$date_select; // 内部选中的日期
  2284 +
  2285 + //// 测试数据
  2286 + //self.$$data = [
  2287 + // {datestr: '2011-01-01', ischecked: true},
  2288 + // {datestr: '2011-01-01', ischecked: true},
  2289 + // {datestr: '2011-01-01', ischecked: true}
  2290 + //];
  2291 + },
  2292 +
  2293 + /**
  2294 + * 此阶段可以改dom结构,此时angular还没扫描指令,
  2295 + * 这里就可以动态添加其他angularjs的指令字符串,如required指令字符串。
  2296 + * @param tElem
  2297 + * @param tAttrs
  2298 + * @returns {{pre: Function, post: Function}}
  2299 + */
  2300 + compile: function(tElem, tAttrs) {
  2301 + // 获取所有的属性
  2302 + var $name_attr = tAttrs["name"]; // 控件的名字
  2303 + var $required_attr = tAttrs["required"]; // 是否需要required验证
  2304 + var $disabled_attr = tAttrs["disabled"]; // 是否禁用
  2305 + var $dcname_attr = tAttrs["dcname"]; // 绑定的model字段名
  2306 +
  2307 + // controlAs名字
  2308 + var ctrlAs = '$saDategroupCtrl';
  2309 +
  2310 + // 如果有required属性,添加angularjs required验证
  2311 + if ($required_attr != undefined) {
  2312 + //console.log(tElem.html());
  2313 + tElem.find("div").attr("required", "");
  2314 + }
  2315 + // 如果有disabled属性,添加禁用标志
  2316 + if ($disabled_attr != undefined) {
  2317 + tElem.find("input").attr("ng-disabled", "true");
  2318 + tElem.find("div").attr("ng-disabled", "true");
  2319 + }
  2320 +
  2321 + return {
  2322 + pre: function (scope, element, attr) {
  2323 + // TODO:
  2324 + },
  2325 + /**
  2326 + * 相当于link函数。
  2327 + * @param scope
  2328 + * @param element
  2329 + * @param attr
  2330 + */
  2331 + post: function (scope, element, attr) {
  2332 + // name属性
  2333 + if ($name_attr) {
  2334 + scope[ctrlAs]["$name_attr"] = $name_attr;
  2335 + }
  2336 +
  2337 +
  2338 + // 日期open属性,及方法
  2339 + scope[ctrlAs].$$specialDateOpen = false;
  2340 + scope[ctrlAs].$$specialDate_open = function() {
  2341 + scope[ctrlAs].$$specialDateOpen = true;
  2342 + };
  2343 +
  2344 + // 监控选择的日期
  2345 + scope.$watch(
  2346 + function() {
  2347 + return scope[ctrlAs]['$$date_select'];
  2348 + },
  2349 + function(newValue, oldValue) {
  2350 + if (newValue) {
  2351 + //console.log("saDategroup--->selectdate:" + newValue);
  2352 + // 调用内置filter,转换日期到yyyy-MM-dd格式
  2353 + var text = $filter('date')(newValue, 'yyyy-MM-dd');
  2354 + var i;
  2355 + var isexist = false; // 日期是否已经选择标识
  2356 + for (i = 0; i < scope[ctrlAs]["$$data"].length; i++) {
  2357 + if (scope[ctrlAs]["$$data"][i].datestr == text) {
  2358 + isexist = true;
  2359 + break;
  2360 + }
  2361 + }
  2362 + if (!isexist) {
  2363 + scope[ctrlAs]["$$data"].push(
  2364 + {
  2365 + datestr: text,
  2366 + ischecked: true
  2367 + }
  2368 + );
  2369 + }
  2370 +
  2371 + }
  2372 +
  2373 + }
  2374 + );
  2375 +
  2376 + /**
  2377 + * 日期点击事件处理函数。
  2378 + * @param $index 索引
  2379 + */
  2380 + scope[ctrlAs].$$internal_datestr_click = function($index) {
  2381 + scope[ctrlAs].$$data.splice($index, 1);
  2382 + };
  2383 +
  2384 + // 测试使用watch监控$$data的变化
  2385 + scope.$watch(
  2386 + function() {
  2387 + return scope[ctrlAs]['$$data'];
  2388 + },
  2389 + function(newValue, oldValue) {
  2390 + // 根据$$data生成对应的数据
  2391 + var special_days_arr = [];
  2392 + var i;
  2393 + for (i = 0; i < scope[ctrlAs]["$$data"].length; i++) {
  2394 + special_days_arr.push(scope[ctrlAs]["$$data"][i].datestr);
  2395 + }
  2396 +
  2397 + scope[ctrlAs].$$internalmodel = special_days_arr.join(",");
  2398 + console.log("bbbbbbbb--->" + scope[ctrlAs].$$internalmodel);
  2399 +
  2400 + // 更新model
  2401 + if ($dcname_attr) {
  2402 + eval("scope[ctrlAs].model" + "." + $dcname_attr + " = special_days_arr.join(',');");
  2403 + }
  2404 + },
  2405 + true
  2406 + );
  2407 +
  2408 + // 监控dcvalue model值变换
  2409 + attr.$observe("dcvalue", function(value) {
  2410 + console.log("saDategroup 监控dc1 model值变换:" + value);
  2411 + if (value) {
  2412 + // 根据value值,修改$$data里的值
  2413 + var date_array = value.split(",");
  2414 + var i;
  2415 + scope[ctrlAs]["$$data"] = [];
  2416 + for (i = 0; i < date_array.length; i++) {
  2417 + scope[ctrlAs]["$$data"].push(
  2418 + {
  2419 + datestr: date_array[i],
  2420 + ischecked: true
  2421 + }
  2422 + );
  2423 + }
  2424 +
  2425 +
  2426 +
  2427 +
  2428 +
  2429 +
  2430 +
  2431 +
  2432 +
  2433 + }
  2434 + });
  2435 +
  2436 + }
  2437 +
  2438 + };
  2439 + }
  2440 + }
  2441 + }
  2442 +]);
  2443 +
  2444 +
  2445 +/**
  2446 + * saFbgsgroup指令
  2447 + * 属性如下:
  2448 + * name(必须):控件的名字
  2449 + * model(必须):指定一个外部object,独立作用域,如:model=ctrl.employeeInfoForSave
  2450 + * fbgsvalue(必须):绑定的model翻班格式值,如:fbgsvalue={{ctrl.employeeInfoForSave.fbgs}}
  2451 + * fbgsname(必须):绑定的model翻班格式字段名,如:fbgsname=fbgs
  2452 + *
  2453 + * required(可选):是否要用required验证
  2454 + *
  2455 + */
  2456 +angular.module('ScheduleApp').directive(
  2457 + 'saFbgsgroup',
  2458 + [
  2459 + function() {
  2460 + return {
  2461 + restrict: 'E',
  2462 + templateUrl: '/pages/scheduleApp/module/common/dts2/fbgsGroup/saFbgsgroupTemplate.html',
  2463 + scope: {
  2464 + model: "=" // 独立作用域,关联外部的模型object
  2465 + },
  2466 + controllerAs: '$saFbgsgroupCtrl',
  2467 + bindToController: true,
  2468 + controller: function() {
  2469 + var self = this;
  2470 +
  2471 + self.$$dataSelected = []; // 选中的路牌列表
  2472 +
  2473 + // saFbgsgroup组件的ng-model,用于外部绑定等操作
  2474 + self.$$internalmodel = undefined;
  2475 + },
  2476 +
  2477 + /**
  2478 + * 此阶段可以改dom结构,此时angular还没扫描指令,
  2479 + * 这里就可以动态添加其他angularjs的指令字符串,如required指令字符串。
  2480 + * @param tElem
  2481 + * @param tAttrs
  2482 + * @returns {{pre: Function, post: Function}}
  2483 + */
  2484 + compile: function(tElem, tAttrs) {
  2485 + // 获取所有属性
  2486 + var $name_attr = tAttrs["name"]; // 控件的名字
  2487 + var $required_attr = tAttrs["required"]; // 是否需要required验证
  2488 + var $fbgsname_attr = tAttrs["fbgsname"]; // 绑定的model翻班格式字段名
  2489 +
  2490 + // controlAs名字
  2491 + var ctrlAs = '$saFbgsgroupCtrl';
  2492 +
  2493 + // 如果有required属性,添加angularjs required验证
  2494 + if ($required_attr != undefined) {
  2495 + //console.log(tElem.html());
  2496 + tElem.find("div").attr("required", "");
  2497 + }
  2498 +
  2499 + return {
  2500 + pre: function(scope, element, attr) {
  2501 +
  2502 + },
  2503 +
  2504 + /**
  2505 + * 相当于link函数。
  2506 + * @param scope
  2507 + * @param element
  2508 + * @param attr
  2509 + */
  2510 + post: function(scope, element, attr) {
  2511 + // name属性
  2512 + if ($name_attr) {
  2513 + scope[ctrlAs]["$name_attr"] = $name_attr;
  2514 + }
  2515 +
  2516 + /**
  2517 + * 路牌列表点击(路牌列表中选中路牌)
  2518 + * @param fbcode
  2519 + */
  2520 + scope[ctrlAs].$$internal_fb_click = function(fbcode) {
  2521 + scope[ctrlAs].$$dataSelected.push(fbcode);
  2522 + };
  2523 +
  2524 + /**
  2525 + * 选中的路牌双击(删除选中的路牌)
  2526 + * @param $index
  2527 + */
  2528 + scope[ctrlAs].$$internal_sellplist_dbclick = function($index) {
  2529 + scope[ctrlAs].$$dataSelected.splice($index, 1);
  2530 + };
  2531 +
  2532 + /**
  2533 + * 验证内部数据,更新外部model
  2534 + */
  2535 + scope[ctrlAs].$$internal_validate_model = function() {
  2536 + var data_temp = scope[ctrlAs].$$dataSelected;
  2537 +
  2538 + if (data_temp &&
  2539 + data_temp.length > 0) {
  2540 +
  2541 + // 更新内部model,用于外部验证
  2542 + // 内部model的值暂时随意,以后再改
  2543 + scope[ctrlAs].$$internalmodel = {desc: "ok"};
  2544 +
  2545 + // 更新外部model字段
  2546 + if ($fbgsname_attr) {
  2547 + console.log("$fbgsname=" + data_temp.join(','));
  2548 + eval("scope[ctrlAs].model" + "." + $fbgsname_attr + " = data_temp.join(',');");
  2549 + }
  2550 +
  2551 + } else {
  2552 + scope[ctrlAs].$$internalmodel = undefined;
  2553 + }
  2554 + };
  2555 +
  2556 + // 监控内部数据,$$data_selected 变化
  2557 + scope.$watch(
  2558 + function() {
  2559 + return scope[ctrlAs].$$dataSelected;
  2560 + },
  2561 + function(newValue, oldValue) {
  2562 + scope[ctrlAs].$$internal_validate_model();
  2563 + },
  2564 + true
  2565 + );
  2566 +
  2567 + // 监控路牌名称范围值的变化,处理初始化赋值
  2568 + attr.$observe("fbgsvalue", function(value) {
  2569 + var data_temp = scope[ctrlAs].$$dataSelected;
  2570 +
  2571 + if (value && value != "" && data_temp && data_temp.length == 0) { // 初始创建
  2572 + var data_temp = scope[ctrlAs].$$dataSelected;
  2573 + var fbgses = [];
  2574 + var i = 0;
  2575 +
  2576 + // 分隔翻班格式
  2577 + if (value.indexOf(",") >= 0) { // 以逗号分隔,如 1,1,0,1
  2578 + fbgses = value.split(",");
  2579 + } else {
  2580 + for (i = 0; i < value.length; i++) { // 字符串形式,如 1101
  2581 + fbgses.push(value.substr(i, 1));
  2582 + }
  2583 + }
  2584 +
  2585 + for (i = 0; i < fbgses.length; i++) {
  2586 + if (fbgses[i] == "1" || fbgses[i] == "0") {
  2587 + data_temp.push(fbgses[i]);
  2588 + }
  2589 + }
  2590 + }
  2591 + });
  2592 + }
  2593 + };
  2594 + }
  2595 + }
  2596 + }
  2597 + ]);
2239 2598
2240 2599
2241 /** 2600 /**
2242 - * saDategroup指令 2601 + * saGuideboardgroup指令
2243 * 属性如下: 2602 * 属性如下:
2244 - * model(必须):指定一个外部object,独立作用域,如:model=ctrl.employeeInfoForSave  
2245 - * dcvalue(必须):绑定的model字段值,如:dcvalue={{ctrl.employeeInfoForSave.xl.id}}  
2246 - * dcname(必须):绑定的model字段名,如:dcname=xl.id  
2247 * name(必须):控件的名字 2603 * name(必须):控件的名字
  2604 + * model(必须):指定一个外部object,独立作用域,如:model=ctrl.employeeInfoForSave
  2605 + * xlidvalue(必须):绑定的model线路id值,如:xlidvalue={{ctrl.employeeInfoForSave.xl.id}}
  2606 + * lprangevalue(必须):绑定的model路牌名字范围值,如:lprangevalue={{ctrl.employeeInfoForSave.lprange}}
  2607 + * lprangename(必须):绑定的model路牌名字范围字段名,如:lprangename=lprange
  2608 + * lpidrangevalue(必须):绑定的model路牌id范围值,如:lprangevalue={{ctrl.employeeInfoForSave.lprange}}
  2609 + * lpidrangename(必须):绑定的model路牌id范围字段名,如:lprangename=lprange
  2610 + * lpstartvalue(必须):绑定的model起始路牌值,如:lpstartvalue={{ctrl.employeeInfoForSave.lpstart}}
  2611 + * lpstartname(必须):绑定的model起始路牌字段名,如:lpstartname=lpstart
  2612 + *
2248 * required(可选):是否要用required验证 2613 * required(可选):是否要用required验证
2249 - * disabled(可选):标示框是否可选  
2250 * 2614 *
2251 */ 2615 */
2252 -angular.module('ScheduleApp').directive('saDategroup', [  
2253 - '$filter',  
2254 - function($filter) { 2616 +angular.module('ScheduleApp').directive('saGuideboardgroup', [
  2617 + 'GuideboardManageService_g',
  2618 + function(guideboardManageService_g) {
2255 return { 2619 return {
2256 restrict: 'E', 2620 restrict: 'E',
2257 - templateUrl: '/pages/scheduleApp/module/common/dts2/dateGroup/saDategroupTemplate.html', 2621 + templateUrl: '/pages/scheduleApp/module/common/dts2/guideboardGroup/saGuideboardgroupTemplate.html',
2258 scope: { 2622 scope: {
2259 model: "=" // 独立作用域,关联外部的模型object 2623 model: "=" // 独立作用域,关联外部的模型object
2260 }, 2624 },
2261 - controllerAs: "$saDategroupCtrl", 2625 + controllerAs: '$saGuideboardgroupCtrl',
2262 bindToController: true, 2626 bindToController: true,
2263 controller: function($scope) { 2627 controller: function($scope) {
2264 var self = this; 2628 var self = this;
2265 - self.$$data = []; // 内部的数据  
2266 - self.$$date_select; // 内部选中的日期 2629 + self.$$dataReal = []; // 选择线路后,该线路的路牌数据
  2630 + self.$$data = []; // 页面最多显示10条,可以通过$$searchText筛选
2267 2631
2268 - //// 测试数据 2632 + // 测试数据
2269 //self.$$data = [ 2633 //self.$$data = [
2270 - // {datestr: '2011-01-01', ischecked: true},  
2271 - // {datestr: '2011-01-01', ischecked: true},  
2272 - // {datestr: '2011-01-01', ischecked: true}  
2273 - //];  
2274 - },  
2275 -  
2276 - /**  
2277 - * 此阶段可以改dom结构,此时angular还没扫描指令,  
2278 - * 这里就可以动态添加其他angularjs的指令字符串,如required指令字符串。  
2279 - * @param tElem  
2280 - * @param tAttrs  
2281 - * @returns {{pre: Function, post: Function}}  
2282 - */  
2283 - compile: function(tElem, tAttrs) {  
2284 - // 获取所有的属性  
2285 - var $name_attr = tAttrs["name"]; // 控件的名字  
2286 - var $required_attr = tAttrs["required"]; // 是否需要required验证  
2287 - var $disabled_attr = tAttrs["disabled"]; // 是否禁用  
2288 - var $dcname_attr = tAttrs["dcname"]; // 绑定的model字段名  
2289 -  
2290 - // controlAs名字  
2291 - var ctrlAs = '$saDategroupCtrl';  
2292 -  
2293 - // 如果有required属性,添加angularjs required验证  
2294 - if ($required_attr != undefined) {  
2295 - //console.log(tElem.html());  
2296 - tElem.find("div").attr("required", "");  
2297 - }  
2298 - // 如果有disabled属性,添加禁用标志  
2299 - if ($disabled_attr != undefined) {  
2300 - tElem.find("input").attr("ng-disabled", "true");  
2301 - tElem.find("div").attr("ng-disabled", "true");  
2302 - }  
2303 -  
2304 - return {  
2305 - pre: function (scope, element, attr) {  
2306 - // TODO:  
2307 - },  
2308 - /**  
2309 - * 相当于link函数。  
2310 - * @param scope  
2311 - * @param element  
2312 - * @param attr  
2313 - */  
2314 - post: function (scope, element, attr) {  
2315 - // name属性  
2316 - if ($name_attr) {  
2317 - scope[ctrlAs]["$name_attr"] = $name_attr;  
2318 - }  
2319 -  
2320 -  
2321 - // 日期open属性,及方法  
2322 - scope[ctrlAs].$$specialDateOpen = false;  
2323 - scope[ctrlAs].$$specialDate_open = function() {  
2324 - scope[ctrlAs].$$specialDateOpen = true;  
2325 - };  
2326 -  
2327 - // 监控选择的日期  
2328 - scope.$watch(  
2329 - function() {  
2330 - return scope[ctrlAs]['$$date_select'];  
2331 - },  
2332 - function(newValue, oldValue) {  
2333 - if (newValue) {  
2334 - //console.log("saDategroup--->selectdate:" + newValue);  
2335 - // 调用内置filter,转换日期到yyyy-MM-dd格式  
2336 - var text = $filter('date')(newValue, 'yyyy-MM-dd');  
2337 - var i;  
2338 - var isexist = false; // 日期是否已经选择标识  
2339 - for (i = 0; i < scope[ctrlAs]["$$data"].length; i++) {  
2340 - if (scope[ctrlAs]["$$data"][i].datestr == text) {  
2341 - isexist = true;  
2342 - break;  
2343 - }  
2344 - }  
2345 - if (!isexist) {  
2346 - scope[ctrlAs]["$$data"].push(  
2347 - {  
2348 - datestr: text,  
2349 - ischecked: true  
2350 - }  
2351 - );  
2352 - }  
2353 -  
2354 - }  
2355 -  
2356 - }  
2357 - );  
2358 -  
2359 - /**  
2360 - * 日期点击事件处理函数。  
2361 - * @param $index 索引  
2362 - */  
2363 - scope[ctrlAs].$$internal_datestr_click = function($index) {  
2364 - scope[ctrlAs].$$data.splice($index, 1);  
2365 - };  
2366 -  
2367 - // 测试使用watch监控$$data的变化  
2368 - scope.$watch(  
2369 - function() {  
2370 - return scope[ctrlAs]['$$data'];  
2371 - },  
2372 - function(newValue, oldValue) {  
2373 - // 根据$$data生成对应的数据  
2374 - var special_days_arr = [];  
2375 - var i;  
2376 - for (i = 0; i < scope[ctrlAs]["$$data"].length; i++) {  
2377 - special_days_arr.push(scope[ctrlAs]["$$data"][i].datestr);  
2378 - }  
2379 -  
2380 - scope[ctrlAs].$$internalmodel = special_days_arr.join(",");  
2381 - console.log("bbbbbbbb--->" + scope[ctrlAs].$$internalmodel);  
2382 -  
2383 - // 更新model  
2384 - if ($dcname_attr) {  
2385 - eval("scope[ctrlAs].model" + "." + $dcname_attr + " = special_days_arr.join(',');");  
2386 - }  
2387 - },  
2388 - true  
2389 - );  
2390 -  
2391 - // 监控dcvalue model值变换  
2392 - attr.$observe("dcvalue", function(value) {  
2393 - console.log("saDategroup 监控dc1 model值变换:" + value);  
2394 - if (value) {  
2395 - // 根据value值,修改$$data里的值  
2396 - var date_array = value.split(",");  
2397 - var i;  
2398 - scope[ctrlAs]["$$data"] = [];  
2399 - for (i = 0; i < date_array.length; i++) {  
2400 - scope[ctrlAs]["$$data"].push(  
2401 - {  
2402 - datestr: date_array[i],  
2403 - ischecked: true  
2404 - }  
2405 - );  
2406 - }  
2407 -  
2408 -  
2409 -  
2410 -  
2411 -  
2412 -  
2413 -  
2414 -  
2415 -  
2416 - }  
2417 - });  
2418 -  
2419 - }  
2420 -  
2421 - };  
2422 - }  
2423 - }  
2424 - }  
2425 -]);  
2426 -  
2427 -  
2428 -/**  
2429 - * saFbgsgroup指令  
2430 - * 属性如下:  
2431 - * name(必须):控件的名字  
2432 - * model(必须):指定一个外部object,独立作用域,如:model=ctrl.employeeInfoForSave  
2433 - * fbgsvalue(必须):绑定的model翻班格式值,如:fbgsvalue={{ctrl.employeeInfoForSave.fbgs}}  
2434 - * fbgsname(必须):绑定的model翻班格式字段名,如:fbgsname=fbgs  
2435 - *  
2436 - * required(可选):是否要用required验证  
2437 - *  
2438 - */  
2439 -angular.module('ScheduleApp').directive(  
2440 - 'saFbgsgroup',  
2441 - [  
2442 - function() {  
2443 - return {  
2444 - restrict: 'E',  
2445 - templateUrl: '/pages/scheduleApp/module/common/dts2/fbgsGroup/saFbgsgroupTemplate.html',  
2446 - scope: {  
2447 - model: "=" // 独立作用域,关联外部的模型object  
2448 - },  
2449 - controllerAs: '$saFbgsgroupCtrl',  
2450 - bindToController: true,  
2451 - controller: function() {  
2452 - var self = this;  
2453 -  
2454 - self.$$dataSelected = []; // 选中的路牌列表  
2455 -  
2456 - // saFbgsgroup组件的ng-model,用于外部绑定等操作  
2457 - self.$$internalmodel = undefined;  
2458 - },  
2459 -  
2460 - /**  
2461 - * 此阶段可以改dom结构,此时angular还没扫描指令,  
2462 - * 这里就可以动态添加其他angularjs的指令字符串,如required指令字符串。  
2463 - * @param tElem  
2464 - * @param tAttrs  
2465 - * @returns {{pre: Function, post: Function}}  
2466 - */  
2467 - compile: function(tElem, tAttrs) {  
2468 - // 获取所有属性  
2469 - var $name_attr = tAttrs["name"]; // 控件的名字  
2470 - var $required_attr = tAttrs["required"]; // 是否需要required验证  
2471 - var $fbgsname_attr = tAttrs["fbgsname"]; // 绑定的model翻班格式字段名  
2472 -  
2473 - // controlAs名字  
2474 - var ctrlAs = '$saFbgsgroupCtrl';  
2475 -  
2476 - // 如果有required属性,添加angularjs required验证  
2477 - if ($required_attr != undefined) {  
2478 - //console.log(tElem.html());  
2479 - tElem.find("div").attr("required", "");  
2480 - }  
2481 -  
2482 - return {  
2483 - pre: function(scope, element, attr) {  
2484 -  
2485 - },  
2486 -  
2487 - /**  
2488 - * 相当于link函数。  
2489 - * @param scope  
2490 - * @param element  
2491 - * @param attr  
2492 - */  
2493 - post: function(scope, element, attr) {  
2494 - // name属性  
2495 - if ($name_attr) {  
2496 - scope[ctrlAs]["$name_attr"] = $name_attr;  
2497 - }  
2498 -  
2499 - /**  
2500 - * 路牌列表点击(路牌列表中选中路牌)  
2501 - * @param fbcode  
2502 - */  
2503 - scope[ctrlAs].$$internal_fb_click = function(fbcode) {  
2504 - scope[ctrlAs].$$dataSelected.push(fbcode);  
2505 - };  
2506 -  
2507 - /**  
2508 - * 选中的路牌双击(删除选中的路牌)  
2509 - * @param $index  
2510 - */  
2511 - scope[ctrlAs].$$internal_sellplist_dbclick = function($index) {  
2512 - scope[ctrlAs].$$dataSelected.splice($index, 1);  
2513 - };  
2514 -  
2515 - /**  
2516 - * 验证内部数据,更新外部model  
2517 - */  
2518 - scope[ctrlAs].$$internal_validate_model = function() {  
2519 - var data_temp = scope[ctrlAs].$$dataSelected;  
2520 -  
2521 - if (data_temp &&  
2522 - data_temp.length > 0) {  
2523 -  
2524 - // 更新内部model,用于外部验证  
2525 - // 内部model的值暂时随意,以后再改  
2526 - scope[ctrlAs].$$internalmodel = {desc: "ok"};  
2527 -  
2528 - // 更新外部model字段  
2529 - if ($fbgsname_attr) {  
2530 - console.log("$fbgsname=" + data_temp.join(','));  
2531 - eval("scope[ctrlAs].model" + "." + $fbgsname_attr + " = data_temp.join(',');");  
2532 - }  
2533 -  
2534 - } else {  
2535 - scope[ctrlAs].$$internalmodel = undefined;  
2536 - }  
2537 - };  
2538 -  
2539 - // 监控内部数据,$$data_selected 变化  
2540 - scope.$watch(  
2541 - function() {  
2542 - return scope[ctrlAs].$$dataSelected;  
2543 - },  
2544 - function(newValue, oldValue) {  
2545 - scope[ctrlAs].$$internal_validate_model();  
2546 - },  
2547 - true  
2548 - );  
2549 -  
2550 - // 监控路牌名称范围值的变化,处理初始化赋值  
2551 - attr.$observe("fbgsvalue", function(value) {  
2552 - var data_temp = scope[ctrlAs].$$dataSelected;  
2553 -  
2554 - if (value && value != "" && data_temp && data_temp.length == 0) { // 初始创建  
2555 - var data_temp = scope[ctrlAs].$$dataSelected;  
2556 - var fbgses = [];  
2557 - var i = 0;  
2558 -  
2559 - // 分隔翻班格式  
2560 - if (value.indexOf(",") >= 0) { // 以逗号分隔,如 1,1,0,1  
2561 - fbgses = value.split(",");  
2562 - } else {  
2563 - for (i = 0; i < value.length; i++) { // 字符串形式,如 1101  
2564 - fbgses.push(value.substr(i, 1));  
2565 - }  
2566 - }  
2567 -  
2568 - for (i = 0; i < fbgses.length; i++) {  
2569 - if (fbgses[i] == "1" || fbgses[i] == "0") {  
2570 - data_temp.push(fbgses[i]);  
2571 - }  
2572 - }  
2573 - }  
2574 - });  
2575 - }  
2576 - };  
2577 - }  
2578 - }  
2579 - }  
2580 - ]);  
2581 -  
2582 -  
2583 -/**  
2584 - * saGuideboardgroup指令  
2585 - * 属性如下:  
2586 - * name(必须):控件的名字  
2587 - * model(必须):指定一个外部object,独立作用域,如:model=ctrl.employeeInfoForSave  
2588 - * xlidvalue(必须):绑定的model线路id值,如:xlidvalue={{ctrl.employeeInfoForSave.xl.id}}  
2589 - * lprangevalue(必须):绑定的model路牌名字范围值,如:lprangevalue={{ctrl.employeeInfoForSave.lprange}}  
2590 - * lprangename(必须):绑定的model路牌名字范围字段名,如:lprangename=lprange  
2591 - * lpidrangevalue(必须):绑定的model路牌id范围值,如:lprangevalue={{ctrl.employeeInfoForSave.lprange}}  
2592 - * lpidrangename(必须):绑定的model路牌id范围字段名,如:lprangename=lprange  
2593 - * lpstartvalue(必须):绑定的model起始路牌值,如:lpstartvalue={{ctrl.employeeInfoForSave.lpstart}}  
2594 - * lpstartname(必须):绑定的model起始路牌字段名,如:lpstartname=lpstart  
2595 - *  
2596 - * required(可选):是否要用required验证  
2597 - *  
2598 - */  
2599 -angular.module('ScheduleApp').directive('saGuideboardgroup', [  
2600 - 'GuideboardManageService_g',  
2601 - function(guideboardManageService_g) {  
2602 - return {  
2603 - restrict: 'E',  
2604 - templateUrl: '/pages/scheduleApp/module/common/dts2/guideboardGroup/saGuideboardgroupTemplate.html',  
2605 - scope: {  
2606 - model: "=" // 独立作用域,关联外部的模型object  
2607 - },  
2608 - controllerAs: '$saGuideboardgroupCtrl',  
2609 - bindToController: true,  
2610 - controller: function($scope) {  
2611 - var self = this;  
2612 - self.$$dataReal = []; // 选择线路后,该线路的路牌数据  
2613 - self.$$data = []; // 页面最多显示10条,可以通过$$searchText筛选  
2614 -  
2615 - // 测试数据  
2616 - //self.$$data = [  
2617 - // {lpid: 1, lpname: '路1', isstart: false},  
2618 - // {lpid: 2, lpname: '路2', isstart: true},  
2619 - // {lpid: 3, lpname: '路3', isstart: false} 2634 + // {lpid: 1, lpname: '路1', isstart: false},
  2635 + // {lpid: 2, lpname: '路2', isstart: true},
  2636 + // {lpid: 3, lpname: '路3', isstart: false}
2620 //]; 2637 //];
2621 2638
2622 self.$$searchText = undefined; // 搜索值 2639 self.$$searchText = undefined; // 搜索值
@@ -4434,441 +4451,441 @@ angular.module(&#39;ScheduleApp&#39;).directive( @@ -4434,441 +4451,441 @@ angular.module(&#39;ScheduleApp&#39;).directive(
4434 ] 4451 ]
4435 ); 4452 );
4436 4453
  4454 +/**
  4455 + * saTimetablePreview指令,时刻表预览模式视图。
  4456 + */
  4457 +angular.module("ScheduleApp").directive(
  4458 + "saTimetable2",
  4459 + [
  4460 + '$timeout',
  4461 + function($timeout) {
  4462 + return {
  4463 + restrict : 'E',
  4464 + templateUrl : '/pages/scheduleApp/module/common/dts2/ttinfotable/saTimeTablePreViewTemplate.html',
  4465 + scope : { // 独立作用域
  4466 + // 使用外部数据源,内部重新组合显示
  4467 + ds : "=ngModel"
  4468 + },
  4469 + controllerAs : "$saTimeTablePreviewCtrl",
  4470 + bindToController: true,
  4471 + controller : function() {
  4472 + var self = this;
  4473 +
  4474 + // 内部班次时刻模型
  4475 + self.internalBcModel = {
  4476 + up_qdz_name : "", // 上行起点站名字
  4477 + down_qdz_name : "", // 下行起点站名字
  4478 + up_bc_list_asc : [], // 上行班次列表(按照发车时间升序)
  4479 + down_bc_list_asc : [] // 下行班次列表(按照发车时间升序)
  4480 + };
  4481 +
  4482 + // 内部各个路牌block车次链模型
  4483 + self.internalLpBlockModel = {
  4484 + // key:路牌名字
  4485 + // value: 数组(按照发车时间排序)
  4486 + // value 数据内对象 {fcsj:发车时间,isUp:是否上行,fcno:发车顺序号,index:对应的班次列表索引}
  4487 + };
  4488 +
  4489 + // TODO:
  4490 + },
  4491 +
  4492 + /**,
  4493 + * compile阶段,angular还没有编译模版,根据需要可以修改模版dom
  4494 + * @param tElem
  4495 + * @param tAttrs
  4496 + * @returns {{pre: Function, post: Function}}
  4497 + */
  4498 + compile : function(tElem, tAttrs) {
  4499 + // 获取属性
  4500 + var $attr_name = tAttrs["name"]; // 控件的名字
  4501 + if (!$attr_name) {
  4502 + throw new Error("saTimeTablePreview指令 name属性required");
  4503 + }
  4504 +
  4505 + // 内部controlAs名字
  4506 + var ctrlAs = "$saTimeTablePreviewCtrl";
  4507 +
  4508 + // TODO:
  4509 +
  4510 + //------------------ 内部方法 --------------------//
  4511 + var date_wrap_prefix = "2000-01-01 "; // 包装日期的前缀
  4512 + var date_wrap_format = "YYYY-MM-DD HH:mm"; // 日期格式
  4513 + /**
  4514 + * 将时间包装成日期,方便计算。
  4515 + * @param timeStr 时间格式,如 06:30
  4516 + * @returns moment对象
  4517 + */
  4518 + var _fun_WrapTime = function(timeStr) {
  4519 + return moment(
  4520 + date_wrap_prefix + timeStr,
  4521 + date_wrap_format
  4522 + );
  4523 + };
  4524 +
  4525 + /**
  4526 + * 点击班次html元素(dl),触发班次移动,如下:
  4527 + * 1、点击上行班次,下一个下行班次在下行班次列表中移到中间位置
  4528 + * 2、点击下行班次,下一个上行班次在上行班次列表中移到中间位置
  4529 + * @param ctrl 内部控制器
  4530 + * @param index 班次索引
  4531 + * @param isUp 是否上行
  4532 + * @private
  4533 + */
  4534 + var _fun_bcDDViewMove = function(ctrl, index, isUp) {
  4535 + // 获取当前点击班次对象
  4536 + var oBc;
  4537 + if (isUp) {
  4538 + oBc = ctrl.internalBcModel.up_bc_list_asc[index];
  4539 + } else {
  4540 + oBc = ctrl.internalBcModel.down_bc_list_asc[index];
  4541 + }
  4542 +
  4543 + // 找出车次链中的下一个班次索引,没有就undefined
  4544 + var nextIndex = undefined;
  4545 + var nextBlockBc = undefined;
  4546 + var currentBlockBcIndex = undefined;
  4547 + angular.forEach(ctrl.internalLpBlockModel[oBc.lpName], function(data, i) {
  4548 + if (data.fcsj == oBc.fcsj) {
  4549 + currentBlockBcIndex = i;
  4550 + }
  4551 + });
  4552 + if (currentBlockBcIndex != undefined &&
  4553 + currentBlockBcIndex < (ctrl.internalLpBlockModel[oBc.lpName].length - 1)) {
  4554 + nextBlockBc = ctrl.internalLpBlockModel[oBc.lpName][currentBlockBcIndex + 1];
  4555 + nextIndex = nextBlockBc.index;
  4556 + }
  4557 + // 先删除click标记,再添加
  4558 + angular.forEach(ctrl.internalBcModel.up_bc_list_asc, function(data) {
  4559 + delete data["isClick"];
  4560 + });
  4561 + angular.forEach(ctrl.internalBcModel.down_bc_list_asc, function(data) {
  4562 + delete data["isClick"];
  4563 + });
  4564 + oBc.isClick = true;
  4565 + if (nextIndex) {
  4566 + if (nextBlockBc.isUp) {
  4567 + ctrl.internalBcModel.up_bc_list_asc[nextIndex].isClick = true;
  4568 + } else {
  4569 + ctrl.internalBcModel.down_bc_list_asc[nextIndex].isClick = true;
  4570 + }
  4571 + }
  4572 +
  4573 + // 移动,同方向不移动
  4574 + var clientHeight = angular.element("#temp").height() - 34;
  4575 + if (nextBlockBc && isUp != nextBlockBc.isUp) {
  4576 + if (isUp) { // 移动下行
  4577 + angular.element(".ttpv_table_scrollbar:eq(1)").animate(
  4578 + {scrollTop : nextIndex * 30 - clientHeight / 2}, 400);
  4579 + } else { // 移动上行
  4580 + angular.element(".ttpv_table_scrollbar:eq(0)").animate(
  4581 + {scrollTop : nextIndex * 30 - clientHeight / 2}, 400);
  4582 + }
  4583 + }
  4584 +
  4585 + };
  4586 +
  4587 + /**
  4588 + * 刷新内部数据。
  4589 + * @param ctrl 内部控制器对象($saTimeTablePreviewCtrl)
  4590 + * @private
  4591 + */
  4592 + var _fun_refreshInternalModel = function(ctrl) {
  4593 + // 初始化内部数据
  4594 + ctrl.internalBcModel = {
  4595 + up_qdz_name : "", // 上行起点站名字
  4596 + up_zdz_name : "", // 上行终点站名字
  4597 + down_qdz_name : "", // 下行起点站名字
  4598 + down_zdz_name : "", // 下行终点站名字
  4599 + up_bc_list_asc : [], // 上行班次列表(按照发车时间升序)
  4600 + down_bc_list_asc : [] // 下行班次列表(按照发车时间升序)
  4601 + };
  4602 + ctrl.internalLpBlockModel = {
  4603 +
  4604 + };
  4605 +
  4606 + // ngModel传入的数据
  4607 + var dataSource = ctrl.ds.bcList;
  4608 +
  4609 + // 构造上下行班次列表,并确定上下行的首发站点
  4610 + angular.forEach(dataSource, function(bcObj) {
  4611 + var _internalBcObj = {};
  4612 + // 构造内部班次对象
  4613 + _internalBcObj.lpName = bcObj.lp.lpName; // 路牌
  4614 + _internalBcObj.fcsj = bcObj.fcsj; // 发车时间
  4615 + _internalBcObj.ddsj = _fun_WrapTime(bcObj.fcsj).add(bcObj.bcsj, "m").format("HH:mm");
  4616 + _internalBcObj.qdzName = bcObj.qdzName; // 起点站名字
  4617 + _internalBcObj.zdzName = bcObj.zdzName; // 终点站名字
  4618 + _internalBcObj.bcType = bcObj.bcType; // 班次类型
  4619 + _internalBcObj.isTs = bcObj.isTS; // 是否停驶
  4620 + _internalBcObj.isFb = bcObj.isFB; // 是否分班
  4621 + _internalBcObj.remark = bcObj.remark; // 备注
  4622 + _internalBcObj._fcno = bcObj.fcno; // 发车顺序号
  4623 +
  4624 + if (bcObj.xlDir == "0") { // 上行
  4625 + ctrl.internalBcModel.up_bc_list_asc.push(_internalBcObj);
  4626 + // 确定起点站
  4627 + if (ctrl.internalBcModel.up_qdz_name == "") {
  4628 + if (bcObj.bcType == "normal") {
  4629 + ctrl.internalBcModel.up_qdz_name = bcObj.qdzName;
  4630 + }
  4631 + }
  4632 + // 确定终点站
  4633 + if (ctrl.internalBcModel.up_zdz_name == "") {
  4634 + if (bcObj.bcType == "normal") {
  4635 + ctrl.internalBcModel.up_zdz_name = bcObj.zdzName;
  4636 + }
  4637 + }
  4638 + }
  4639 + if (bcObj.xlDir == "1") { // 下行
  4640 + ctrl.internalBcModel.down_bc_list_asc.push(_internalBcObj);
  4641 + // 确定起点站
  4642 + if (ctrl.internalBcModel.down_qdz_name == "") {
  4643 + if (bcObj.bcType == "normal") {
  4644 + ctrl.internalBcModel.down_qdz_name = bcObj.qdzName;
  4645 + }
  4646 + }
  4647 + // 确定终点站
  4648 + if (ctrl.internalBcModel.down_zdz_name == "") {
  4649 + if (bcObj.bcType == "normal") {
  4650 + ctrl.internalBcModel.down_zdz_name = bcObj.zdzName;
  4651 + }
  4652 + }
  4653 + }
  4654 +
  4655 + });
  4656 +
  4657 + // 发车时间升序排序上行班次
  4658 + ctrl.internalBcModel.up_bc_list_asc.sort(function(a, b) {
  4659 + var a_wrapTime = _fun_WrapTime(a.fcsj);
  4660 + var b_wrapTime = _fun_WrapTime(b.fcsj);
  4661 +
  4662 + // 判定如果发车时间是以00,01,02,03开头的,说明是下一天凌晨的班次,需要加1天判定
  4663 + // TODO:以后要配合首班车的发车时间判定
  4664 + if (a.fcsj.indexOf("00:") == 0 ||
  4665 + a.fcsj.indexOf("01:") == 0 ||
  4666 + a.fcsj.indexOf("02:") == 0) {
  4667 + a_wrapTime.add(1, "day");
  4668 + }
  4669 + if (b.fcsj.indexOf("00:") == 0 ||
  4670 + b.fcsj.indexOf("01:") == 0 ||
  4671 + b.fcsj.indexOf("02:") == 0) {
  4672 + b_wrapTime.add(1, "day");
  4673 + }
  4674 +
  4675 + if (a_wrapTime.isBefore(b_wrapTime)) {
  4676 + return -1;
  4677 + } else if (a_wrapTime.isAfter(b_wrapTime)) {
  4678 + return 1;
  4679 + } else {
  4680 + return 0;
  4681 + }
  4682 +
  4683 + });
  4684 + // 发车时间升序排序下行班次
  4685 + ctrl.internalBcModel.down_bc_list_asc.sort(function(a, b) {
  4686 + var a_wrapTime = _fun_WrapTime(a.fcsj);
  4687 + var b_wrapTime = _fun_WrapTime(b.fcsj);
  4688 +
  4689 + // 判定如果发车时间是以00,01,02,03开头的,说明是下一天凌晨的班次,需要加1天判定
  4690 + // TODO:以后要配合首班车的发车时间判定
  4691 + if (a.fcsj.indexOf("00:") == 0 ||
  4692 + a.fcsj.indexOf("01:") == 0 ||
  4693 + a.fcsj.indexOf("02:") == 0) {
  4694 + a_wrapTime.add(1, "day");
  4695 + }
  4696 + if (b.fcsj.indexOf("00:") == 0 ||
  4697 + b.fcsj.indexOf("01:") == 0 ||
  4698 + b.fcsj.indexOf("02:") == 0) {
  4699 + b_wrapTime.add(1, "day");
  4700 + }
  4701 +
  4702 + if (a_wrapTime.isBefore(b_wrapTime)) {
  4703 + return -1;
  4704 + } else if (a_wrapTime.isAfter(b_wrapTime)) {
  4705 + return 1;
  4706 + } else {
  4707 + return 0;
  4708 + }
  4709 + });
  4710 +
  4711 + // 构造路牌block车次链,按照发车顺序排序
  4712 + angular.forEach(ctrl.internalBcModel.up_bc_list_asc, function(data, index) {
  4713 + if (!ctrl.internalLpBlockModel[data.lpName]) {
  4714 + ctrl.internalLpBlockModel[data.lpName] = [];
  4715 + }
  4716 + ctrl.internalLpBlockModel[data.lpName].push({
  4717 + fcsj : data.fcsj,
  4718 + isUp : true,
  4719 + fcno : data._fcno,
  4720 + index : index
  4721 + });
  4722 + });
  4723 + angular.forEach(ctrl.internalBcModel.down_bc_list_asc, function(data, index) {
  4724 + if (!ctrl.internalLpBlockModel[data.lpName]) {
  4725 + ctrl.internalLpBlockModel[data.lpName] = [];
  4726 + }
  4727 + ctrl.internalLpBlockModel[data.lpName].push({
  4728 + fcsj : data.fcsj,
  4729 + isUp : false,
  4730 + fcno : data._fcno,
  4731 + index : index
  4732 + });
  4733 + });
  4734 + angular.forEach(ctrl.internalLpBlockModel, function(value, key) {
  4735 + value.sort(function (a, b) {
  4736 + if (a.fcno < b.fcno) {
  4737 + return -1;
  4738 + } else if (a.fcno > b.fcno) {
  4739 + return 1;
  4740 + } else {
  4741 + return 0;
  4742 + }
  4743 + });
  4744 + });
  4745 +
  4746 +
  4747 + };
  4748 +
  4749 + return {
  4750 + pre : function(scope, element, attr) {
  4751 + // TODO:
  4752 + },
  4753 + post : function(scope, element, attr) {
  4754 + // 班次html点击事件
  4755 + scope[ctrlAs].$$bcDD_Click = function(index, xlDir) {
  4756 + _fun_bcDDViewMove(scope[ctrlAs], index, xlDir);
  4757 + };
  4758 +
  4759 + // 监控ngModel绑定的外部数据源的刷新状态变化
  4760 + scope.$watch(
  4761 + function() {
  4762 + return scope[ctrlAs].ds.refreshInfos;
  4763 + },
  4764 + function(newValue, oldValue) {
  4765 + if (newValue === undefined && oldValue === undefined) {
  4766 + return;
  4767 + }
  4768 + console.log("saTimetable2 refresh");
  4769 + _fun_refreshInternalModel(scope[ctrlAs]);
  4770 + },
  4771 + true
  4772 + );
  4773 + }
  4774 + };
  4775 + }
  4776 + };
  4777 + }
  4778 + ]
  4779 +);
  4780 +/**
  4781 + * 滚动事件控制指令。
  4782 + */
  4783 +angular.module('ScheduleApp').directive(
  4784 + 'saTscrolly1',
  4785 + [
  4786 + function() {
  4787 + return {
  4788 + restrict: 'A',
  4789 +
  4790 + compile: function(tElem, tAttrs) {
  4791 +
  4792 + return {
  4793 + pre: function(scope, element, attr) {
  4794 + // TODO:
  4795 + //alert(element.find("#tooltipTest").html());
  4796 + //$compile(element.find("#tooltipTest"))(scope);
  4797 +
  4798 + },
  4799 +
  4800 + post: function(scope, element, attr) {
  4801 + //var head = element[0];
  4802 +
  4803 + //console.log("llllllllload");
  4804 + //console.log(element.name);
  4805 +
  4806 + element.bind('scroll', function() {
  4807 + //console.log("top=", angular.element(".tt_table_head").css("top"));
  4808 + //console.log("left=", angular.element(".tt_table_head").css("left"));
  4809 + //console.log("s top=" + element.scrollTop());
  4810 +
  4811 + angular.element(".tt_table_head").css("top", element.scrollTop());
  4812 + angular.element(".tt_table_head:eq(0)").css("left", element.scrollLeft());
  4813 + angular.element(".tt_table_body:eq(0)").css("left", element.scrollLeft());
  4814 +
  4815 + });
  4816 + }
  4817 +
  4818 + };
  4819 + }
  4820 + }
  4821 + }
  4822 + ]
  4823 +);
  4824 +/**
  4825 + * 滚动事件控制指令。
  4826 + */
  4827 +angular.module('ScheduleApp').directive(
  4828 + 'saTscrolly2',
  4829 + [
  4830 + function() {
  4831 + return {
  4832 + restrict: 'A',
  4833 +
  4834 + compile: function(tElem, tAttrs) {
  4835 +
  4836 + return {
  4837 + pre: function(scope, element, attr) {
  4838 + // TODO:
  4839 + //alert(element.find("#tooltipTest").html());
  4840 + //$compile(element.find("#tooltipTest"))(scope);
  4841 +
  4842 + },
  4843 +
  4844 + post: function(scope, element, attr) {
  4845 + //var head = element[0];
  4846 +
  4847 + //console.log("llllllllload");
  4848 + //console.log(element.name);
  4849 +
  4850 + element.bind('scroll', function() {
  4851 + //console.log("top=", angular.element(".tt_table_head").css("top"));
  4852 + //console.log("left=", angular.element(".tt_table_head").css("left"));
  4853 + //console.log("s top=" + element.scrollTop());
  4854 +
  4855 + angular.element(attr.scrclass).css("top", element.scrollTop());
  4856 + // angular.element(".tt_table_head:eq(0)").css("left", element.scrollLeft());
  4857 + // angular.element(".tt_table_body:eq(0)").css("left", element.scrollLeft());
  4858 +
  4859 + });
  4860 + }
  4861 +
  4862 + };
  4863 + }
  4864 + }
  4865 + }
  4866 + ]
  4867 +);
4437 /** 4868 /**
4438 - * saTimetablePreview指令,时刻表预览模式视图。 4869 + * saOrderoption指令,搜索时的排序选项(在搜索时可以使用,通用的)
  4870 + * 属性如下:
  4871 + * name(必须):控件的名字
  4872 + * columns(必须,独立作用域):字段名字列表,格式:[{name:[字段名],desc:[字段描述]}...]
  4873 + * ordercolumns(必须,独立作用域):字段排序列表,格式:{order: '字段1,字段2',direction: 'ASC,DESC'}
4439 */ 4874 */
4440 -angular.module("ScheduleApp").directive(  
4441 - "saTimetable2", 4875 +angular.module('ScheduleApp').directive(
  4876 + 'saOrderoption',
4442 [ 4877 [
4443 - '$timeout',  
4444 - function($timeout) { 4878 + function() {
4445 return { 4879 return {
4446 - restrict : 'E',  
4447 - templateUrl : '/pages/scheduleApp/module/common/dts2/ttinfotable/saTimeTablePreViewTemplate.html',  
4448 - scope : { // 独立作用域  
4449 - // 使用外部数据源,内部重新组合显示  
4450 - ds : "=ngModel" 4880 + restrict: 'E',
  4881 + templateUrl: '/pages/scheduleApp/module/common/dts2/queryOption/saOrderOptionTemplate.html',
  4882 + scope: {
  4883 + columns: '=',
  4884 + ordercolumns: '='
4451 }, 4885 },
4452 - controllerAs : "$saTimeTablePreviewCtrl", 4886 + controllerAs: '$saOrderOptionCtrl',
4453 bindToController: true, 4887 bindToController: true,
4454 - controller : function() {  
4455 - var self = this;  
4456 -  
4457 - // 内部班次时刻模型  
4458 - self.internalBcModel = {  
4459 - up_qdz_name : "", // 上行起点站名字  
4460 - down_qdz_name : "", // 下行起点站名字  
4461 - up_bc_list_asc : [], // 上行班次列表(按照发车时间升序)  
4462 - down_bc_list_asc : [] // 下行班次列表(按照发车时间升序)  
4463 - };  
4464 -  
4465 - // 内部各个路牌block车次链模型  
4466 - self.internalLpBlockModel = {  
4467 - // key:路牌名字  
4468 - // value: 数组(按照发车时间排序)  
4469 - // value 数据内对象 {fcsj:发车时间,isUp:是否上行,fcno:发车顺序号,index:对应的班次列表索引}  
4470 - };  
4471 -  
4472 - // TODO:  
4473 - },  
4474 -  
4475 - /**,  
4476 - * compile阶段,angular还没有编译模版,根据需要可以修改模版dom  
4477 - * @param tElem  
4478 - * @param tAttrs  
4479 - * @returns {{pre: Function, post: Function}}  
4480 - */  
4481 - compile : function(tElem, tAttrs) {  
4482 - // 获取属性  
4483 - var $attr_name = tAttrs["name"]; // 控件的名字  
4484 - if (!$attr_name) {  
4485 - throw new Error("saTimeTablePreview指令 name属性required");  
4486 - }  
4487 -  
4488 - // 内部controlAs名字  
4489 - var ctrlAs = "$saTimeTablePreviewCtrl";  
4490 -  
4491 - // TODO:  
4492 -  
4493 - //------------------ 内部方法 --------------------//  
4494 - var date_wrap_prefix = "2000-01-01 "; // 包装日期的前缀  
4495 - var date_wrap_format = "YYYY-MM-DD HH:mm"; // 日期格式  
4496 - /**  
4497 - * 将时间包装成日期,方便计算。  
4498 - * @param timeStr 时间格式,如 06:30  
4499 - * @returns moment对象  
4500 - */  
4501 - var _fun_WrapTime = function(timeStr) {  
4502 - return moment(  
4503 - date_wrap_prefix + timeStr,  
4504 - date_wrap_format  
4505 - );  
4506 - };  
4507 -  
4508 - /**  
4509 - * 点击班次html元素(dl),触发班次移动,如下:  
4510 - * 1、点击上行班次,下一个下行班次在下行班次列表中移到中间位置  
4511 - * 2、点击下行班次,下一个上行班次在上行班次列表中移到中间位置  
4512 - * @param ctrl 内部控制器  
4513 - * @param index 班次索引  
4514 - * @param isUp 是否上行  
4515 - * @private  
4516 - */  
4517 - var _fun_bcDDViewMove = function(ctrl, index, isUp) {  
4518 - // 获取当前点击班次对象  
4519 - var oBc;  
4520 - if (isUp) {  
4521 - oBc = ctrl.internalBcModel.up_bc_list_asc[index];  
4522 - } else {  
4523 - oBc = ctrl.internalBcModel.down_bc_list_asc[index];  
4524 - }  
4525 -  
4526 - // 找出车次链中的下一个班次索引,没有就undefined  
4527 - var nextIndex = undefined;  
4528 - var nextBlockBc = undefined;  
4529 - var currentBlockBcIndex = undefined;  
4530 - angular.forEach(ctrl.internalLpBlockModel[oBc.lpName], function(data, i) {  
4531 - if (data.fcsj == oBc.fcsj) {  
4532 - currentBlockBcIndex = i;  
4533 - }  
4534 - });  
4535 - if (currentBlockBcIndex != undefined &&  
4536 - currentBlockBcIndex < (ctrl.internalLpBlockModel[oBc.lpName].length - 1)) {  
4537 - nextBlockBc = ctrl.internalLpBlockModel[oBc.lpName][currentBlockBcIndex + 1];  
4538 - nextIndex = nextBlockBc.index;  
4539 - }  
4540 - // 先删除click标记,再添加  
4541 - angular.forEach(ctrl.internalBcModel.up_bc_list_asc, function(data) {  
4542 - delete data["isClick"];  
4543 - });  
4544 - angular.forEach(ctrl.internalBcModel.down_bc_list_asc, function(data) {  
4545 - delete data["isClick"];  
4546 - });  
4547 - oBc.isClick = true;  
4548 - if (nextIndex) {  
4549 - if (nextBlockBc.isUp) {  
4550 - ctrl.internalBcModel.up_bc_list_asc[nextIndex].isClick = true;  
4551 - } else {  
4552 - ctrl.internalBcModel.down_bc_list_asc[nextIndex].isClick = true;  
4553 - }  
4554 - }  
4555 -  
4556 - // 移动,同方向不移动  
4557 - var clientHeight = angular.element("#temp").height() - 34;  
4558 - if (nextBlockBc && isUp != nextBlockBc.isUp) {  
4559 - if (isUp) { // 移动下行  
4560 - angular.element(".ttpv_table_scrollbar:eq(1)").animate(  
4561 - {scrollTop : nextIndex * 30 - clientHeight / 2}, 400);  
4562 - } else { // 移动上行  
4563 - angular.element(".ttpv_table_scrollbar:eq(0)").animate(  
4564 - {scrollTop : nextIndex * 30 - clientHeight / 2}, 400);  
4565 - }  
4566 - }  
4567 -  
4568 - };  
4569 -  
4570 - /**  
4571 - * 刷新内部数据。  
4572 - * @param ctrl 内部控制器对象($saTimeTablePreviewCtrl)  
4573 - * @private  
4574 - */  
4575 - var _fun_refreshInternalModel = function(ctrl) {  
4576 - // 初始化内部数据  
4577 - ctrl.internalBcModel = {  
4578 - up_qdz_name : "", // 上行起点站名字  
4579 - up_zdz_name : "", // 上行终点站名字  
4580 - down_qdz_name : "", // 下行起点站名字  
4581 - down_zdz_name : "", // 下行终点站名字  
4582 - up_bc_list_asc : [], // 上行班次列表(按照发车时间升序)  
4583 - down_bc_list_asc : [] // 下行班次列表(按照发车时间升序)  
4584 - };  
4585 - ctrl.internalLpBlockModel = {  
4586 -  
4587 - };  
4588 -  
4589 - // ngModel传入的数据  
4590 - var dataSource = ctrl.ds.bcList;  
4591 -  
4592 - // 构造上下行班次列表,并确定上下行的首发站点  
4593 - angular.forEach(dataSource, function(bcObj) {  
4594 - var _internalBcObj = {};  
4595 - // 构造内部班次对象  
4596 - _internalBcObj.lpName = bcObj.lp.lpName; // 路牌  
4597 - _internalBcObj.fcsj = bcObj.fcsj; // 发车时间  
4598 - _internalBcObj.ddsj = _fun_WrapTime(bcObj.fcsj).add(bcObj.bcsj, "m").format("HH:mm");  
4599 - _internalBcObj.qdzName = bcObj.qdzName; // 起点站名字  
4600 - _internalBcObj.zdzName = bcObj.zdzName; // 终点站名字  
4601 - _internalBcObj.bcType = bcObj.bcType; // 班次类型  
4602 - _internalBcObj.isTs = bcObj.isTS; // 是否停驶  
4603 - _internalBcObj.isFb = bcObj.isFB; // 是否分班  
4604 - _internalBcObj.remark = bcObj.remark; // 备注  
4605 - _internalBcObj._fcno = bcObj.fcno; // 发车顺序号  
4606 -  
4607 - if (bcObj.xlDir == "0") { // 上行  
4608 - ctrl.internalBcModel.up_bc_list_asc.push(_internalBcObj);  
4609 - // 确定起点站  
4610 - if (ctrl.internalBcModel.up_qdz_name == "") {  
4611 - if (bcObj.bcType == "normal") {  
4612 - ctrl.internalBcModel.up_qdz_name = bcObj.qdzName;  
4613 - }  
4614 - }  
4615 - // 确定终点站  
4616 - if (ctrl.internalBcModel.up_zdz_name == "") {  
4617 - if (bcObj.bcType == "normal") {  
4618 - ctrl.internalBcModel.up_zdz_name = bcObj.zdzName;  
4619 - }  
4620 - }  
4621 - }  
4622 - if (bcObj.xlDir == "1") { // 下行  
4623 - ctrl.internalBcModel.down_bc_list_asc.push(_internalBcObj);  
4624 - // 确定起点站  
4625 - if (ctrl.internalBcModel.down_qdz_name == "") {  
4626 - if (bcObj.bcType == "normal") {  
4627 - ctrl.internalBcModel.down_qdz_name = bcObj.qdzName;  
4628 - }  
4629 - }  
4630 - // 确定终点站  
4631 - if (ctrl.internalBcModel.down_zdz_name == "") {  
4632 - if (bcObj.bcType == "normal") {  
4633 - ctrl.internalBcModel.down_zdz_name = bcObj.zdzName;  
4634 - }  
4635 - }  
4636 - }  
4637 -  
4638 - });  
4639 -  
4640 - // 发车时间升序排序上行班次  
4641 - ctrl.internalBcModel.up_bc_list_asc.sort(function(a, b) {  
4642 - var a_wrapTime = _fun_WrapTime(a.fcsj);  
4643 - var b_wrapTime = _fun_WrapTime(b.fcsj);  
4644 -  
4645 - // 判定如果发车时间是以00,01,02,03开头的,说明是下一天凌晨的班次,需要加1天判定  
4646 - // TODO:以后要配合首班车的发车时间判定  
4647 - if (a.fcsj.indexOf("00:") == 0 ||  
4648 - a.fcsj.indexOf("01:") == 0 ||  
4649 - a.fcsj.indexOf("02:") == 0) {  
4650 - a_wrapTime.add(1, "day");  
4651 - }  
4652 - if (b.fcsj.indexOf("00:") == 0 ||  
4653 - b.fcsj.indexOf("01:") == 0 ||  
4654 - b.fcsj.indexOf("02:") == 0) {  
4655 - b_wrapTime.add(1, "day");  
4656 - }  
4657 -  
4658 - if (a_wrapTime.isBefore(b_wrapTime)) {  
4659 - return -1;  
4660 - } else if (a_wrapTime.isAfter(b_wrapTime)) {  
4661 - return 1;  
4662 - } else {  
4663 - return 0;  
4664 - }  
4665 -  
4666 - });  
4667 - // 发车时间升序排序下行班次  
4668 - ctrl.internalBcModel.down_bc_list_asc.sort(function(a, b) {  
4669 - var a_wrapTime = _fun_WrapTime(a.fcsj);  
4670 - var b_wrapTime = _fun_WrapTime(b.fcsj);  
4671 -  
4672 - // 判定如果发车时间是以00,01,02,03开头的,说明是下一天凌晨的班次,需要加1天判定  
4673 - // TODO:以后要配合首班车的发车时间判定  
4674 - if (a.fcsj.indexOf("00:") == 0 ||  
4675 - a.fcsj.indexOf("01:") == 0 ||  
4676 - a.fcsj.indexOf("02:") == 0) {  
4677 - a_wrapTime.add(1, "day");  
4678 - }  
4679 - if (b.fcsj.indexOf("00:") == 0 ||  
4680 - b.fcsj.indexOf("01:") == 0 ||  
4681 - b.fcsj.indexOf("02:") == 0) {  
4682 - b_wrapTime.add(1, "day");  
4683 - }  
4684 -  
4685 - if (a_wrapTime.isBefore(b_wrapTime)) {  
4686 - return -1;  
4687 - } else if (a_wrapTime.isAfter(b_wrapTime)) {  
4688 - return 1;  
4689 - } else {  
4690 - return 0;  
4691 - }  
4692 - });  
4693 -  
4694 - // 构造路牌block车次链,按照发车顺序排序  
4695 - angular.forEach(ctrl.internalBcModel.up_bc_list_asc, function(data, index) {  
4696 - if (!ctrl.internalLpBlockModel[data.lpName]) {  
4697 - ctrl.internalLpBlockModel[data.lpName] = [];  
4698 - }  
4699 - ctrl.internalLpBlockModel[data.lpName].push({  
4700 - fcsj : data.fcsj,  
4701 - isUp : true,  
4702 - fcno : data._fcno,  
4703 - index : index  
4704 - });  
4705 - });  
4706 - angular.forEach(ctrl.internalBcModel.down_bc_list_asc, function(data, index) {  
4707 - if (!ctrl.internalLpBlockModel[data.lpName]) {  
4708 - ctrl.internalLpBlockModel[data.lpName] = [];  
4709 - }  
4710 - ctrl.internalLpBlockModel[data.lpName].push({  
4711 - fcsj : data.fcsj,  
4712 - isUp : false,  
4713 - fcno : data._fcno,  
4714 - index : index  
4715 - });  
4716 - });  
4717 - angular.forEach(ctrl.internalLpBlockModel, function(value, key) {  
4718 - value.sort(function (a, b) {  
4719 - if (a.fcno < b.fcno) {  
4720 - return -1;  
4721 - } else if (a.fcno > b.fcno) {  
4722 - return 1;  
4723 - } else {  
4724 - return 0;  
4725 - }  
4726 - });  
4727 - });  
4728 -  
4729 -  
4730 - };  
4731 -  
4732 - return {  
4733 - pre : function(scope, element, attr) {  
4734 - // TODO:  
4735 - },  
4736 - post : function(scope, element, attr) {  
4737 - // 班次html点击事件  
4738 - scope[ctrlAs].$$bcDD_Click = function(index, xlDir) {  
4739 - _fun_bcDDViewMove(scope[ctrlAs], index, xlDir);  
4740 - };  
4741 -  
4742 - // 监控ngModel绑定的外部数据源的刷新状态变化  
4743 - scope.$watch(  
4744 - function() {  
4745 - return scope[ctrlAs].ds.refreshInfos;  
4746 - },  
4747 - function(newValue, oldValue) {  
4748 - if (newValue === undefined && oldValue === undefined) {  
4749 - return;  
4750 - }  
4751 - console.log("saTimetable2 refresh");  
4752 - _fun_refreshInternalModel(scope[ctrlAs]);  
4753 - },  
4754 - true  
4755 - );  
4756 - }  
4757 - };  
4758 - }  
4759 - };  
4760 - }  
4761 - ]  
4762 -);  
4763 -/**  
4764 - * 滚动事件控制指令。  
4765 - */  
4766 -angular.module('ScheduleApp').directive(  
4767 - 'saTscrolly1',  
4768 - [  
4769 - function() {  
4770 - return {  
4771 - restrict: 'A',  
4772 -  
4773 - compile: function(tElem, tAttrs) {  
4774 -  
4775 - return {  
4776 - pre: function(scope, element, attr) {  
4777 - // TODO:  
4778 - //alert(element.find("#tooltipTest").html());  
4779 - //$compile(element.find("#tooltipTest"))(scope);  
4780 -  
4781 - },  
4782 -  
4783 - post: function(scope, element, attr) {  
4784 - //var head = element[0];  
4785 -  
4786 - //console.log("llllllllload");  
4787 - //console.log(element.name);  
4788 -  
4789 - element.bind('scroll', function() {  
4790 - //console.log("top=", angular.element(".tt_table_head").css("top"));  
4791 - //console.log("left=", angular.element(".tt_table_head").css("left"));  
4792 - //console.log("s top=" + element.scrollTop());  
4793 -  
4794 - angular.element(".tt_table_head").css("top", element.scrollTop());  
4795 - angular.element(".tt_table_head:eq(0)").css("left", element.scrollLeft());  
4796 - angular.element(".tt_table_body:eq(0)").css("left", element.scrollLeft());  
4797 -  
4798 - });  
4799 - }  
4800 -  
4801 - };  
4802 - }  
4803 - }  
4804 - }  
4805 - ]  
4806 -);  
4807 -/**  
4808 - * 滚动事件控制指令。  
4809 - */  
4810 -angular.module('ScheduleApp').directive(  
4811 - 'saTscrolly2',  
4812 - [  
4813 - function() {  
4814 - return {  
4815 - restrict: 'A',  
4816 -  
4817 - compile: function(tElem, tAttrs) {  
4818 -  
4819 - return {  
4820 - pre: function(scope, element, attr) {  
4821 - // TODO:  
4822 - //alert(element.find("#tooltipTest").html());  
4823 - //$compile(element.find("#tooltipTest"))(scope);  
4824 -  
4825 - },  
4826 -  
4827 - post: function(scope, element, attr) {  
4828 - //var head = element[0];  
4829 -  
4830 - //console.log("llllllllload");  
4831 - //console.log(element.name);  
4832 -  
4833 - element.bind('scroll', function() {  
4834 - //console.log("top=", angular.element(".tt_table_head").css("top"));  
4835 - //console.log("left=", angular.element(".tt_table_head").css("left"));  
4836 - //console.log("s top=" + element.scrollTop());  
4837 -  
4838 - angular.element(attr.scrclass).css("top", element.scrollTop());  
4839 - // angular.element(".tt_table_head:eq(0)").css("left", element.scrollLeft());  
4840 - // angular.element(".tt_table_body:eq(0)").css("left", element.scrollLeft());  
4841 -  
4842 - });  
4843 - }  
4844 -  
4845 - };  
4846 - }  
4847 - }  
4848 - }  
4849 - ]  
4850 -);  
4851 -/**  
4852 - * saOrderoption指令,搜索时的排序选项(在搜索时可以使用,通用的)  
4853 - * 属性如下:  
4854 - * name(必须):控件的名字  
4855 - * columns(必须,独立作用域):字段名字列表,格式:[{name:[字段名],desc:[字段描述]}...]  
4856 - * ordercolumns(必须,独立作用域):字段排序列表,格式:{order: '字段1,字段2',direction: 'ASC,DESC'}  
4857 - */  
4858 -angular.module('ScheduleApp').directive(  
4859 - 'saOrderoption',  
4860 - [  
4861 - function() {  
4862 - return {  
4863 - restrict: 'E',  
4864 - templateUrl: '/pages/scheduleApp/module/common/dts2/queryOption/saOrderOptionTemplate.html',  
4865 - scope: {  
4866 - columns: '=',  
4867 - ordercolumns: '='  
4868 - },  
4869 - controllerAs: '$saOrderOptionCtrl',  
4870 - bindToController: true,  
4871 - controller: function() { 4888 + controller: function() {
4872 var self = this; 4889 var self = this;
4873 4890
4874 // 字段列表是否预载入 4891 // 字段列表是否预载入
@@ -5448,1163 +5465,1163 @@ angular.module(&#39;ScheduleApp&#39;).directive( @@ -5448,1163 +5465,1163 @@ angular.module(&#39;ScheduleApp&#39;).directive(
5448 } 5465 }
5449 ] 5466 ]
5450 ); 5467 );
5451 -/**  
5452 - * saPlaninfoedit指令,排班明细编辑控件,用在调度执勤日报的修改功能  
5453 - * name(必须),控件的名字  
5454 - * ds,外部数据源  
5455 - * cl1,车辆1属性  
5456 - * cl2,车辆2属性  
5457 - * j1,驾驶员1属性  
5458 - * j2,驾驶员2属性  
5459 - * s1,售票员1属性  
5460 - * s2,售票员2属性  
5461 - */  
5462 -angular.module('ScheduleApp').directive(  
5463 - 'saPlaninfoedit',  
5464 - [  
5465 - function() {  
5466 - return {  
5467 - restrict: 'E',  
5468 - templateUrl: '/pages/scheduleApp/module/common/dts2/scheduleplan/saPlaninfoeditTemplate.html',  
5469 - scope: { // 独立作用域  
5470 - ds: '=ngModel'  
5471 - },  
5472 - controllerAs: '$saPlanInfoEditCtrl',  
5473 - bindToController: true,  
5474 - controller: function() {  
5475 - //var self = this;  
5476 -  
5477 - },  
5478 -  
5479 - compile: function(tElem, tAttrs) {  
5480 - // 获取属性  
5481 - var $attr_name = tAttrs["name"]; // 控件的名字  
5482 - if (!$attr_name) {  
5483 - throw {msg: "saPlaninfoedit指令name属性不能为空"};  
5484 - }  
5485 -  
5486 - // 内部controlAs名字  
5487 - var ctrlAs = '$saPlanInfoEditCtrl';  
5488 -  
5489 -  
5490 - // 内部变量,原始车辆,人员数据  
5491 - var old_cl = {}; // key:{车辆id_车辆自编号},value:所在list下标数组  
5492 - var old_j = {}; // key:{驾驶员id_姓名_工号}, value:所在list下标数组  
5493 - var old_s = {}; // key:{售票员id_姓名_工号}, value:所在list下标数组  
5494 - var old_isfb = false; // 是否有分班  
5495 - var old_isfb_index = 0; // 分班开始索引  
5496 - var old_hasJCBC = false; // 是否有进场班次  
5497 - var old_max_fcno = 0; // 最大发车顺序号  
5498 - var old_firstJCBCFcno = 0; // 第一个进场班次发车顺序号  
5499 - var old_half_bcs = 0; // 一般的班次数量  
5500 -  
5501 - // 内部变量,变更的车辆,变更的人员  
5502 - var new_cl1 = undefined; // 新的车辆1(车辆id_车辆自编号)  
5503 - var new_cl2 = undefined; // 新的车辆2(车辆id_车辆自编号)  
5504 - var new_j1 = undefined; // 新的驾驶员1(驾驶员id_姓名_工号)  
5505 - var new_j2 = undefined; // 新的驾驶员2(驾驶员id_姓名_工号)  
5506 - var new_s1 = undefined; // 新的售票员1(售票员id_姓名_工号)  
5507 - var new_s2 = undefined; // 新的售票员2(售票员id_姓名_工号)  
5508 -  
5509 - return {  
5510 - pre: function(scope, element, attr) {  
5511 -  
5512 - },  
5513 - post: function(scope, element, attr) {  
5514 -  
5515 - /**  
5516 - * 刷新车辆数据。  
5517 - */  
5518 - scope[ctrlAs].$$internal_refresh_dsdata_cl = function() {  
5519 - if (new_cl1) {  
5520 - var new_cl1_id = new_cl1.split("_")[0];  
5521 - var new_cl1_zbh = new_cl1.split("_")[1];  
5522 -  
5523 - if (new_cl2) {  
5524 - var new_cl2_id = new_cl2.split("_")[0];  
5525 - var new_cl2_zbh = new_cl2.split("_")[1];  
5526 -  
5527 - if (old_isfb) { // 使用分班判定  
5528 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
5529 - if (index < old_isfb_index) {  
5530 - obj.cl = new_cl1_id;  
5531 - obj.clZbh = new_cl1_zbh;  
5532 - } else {  
5533 - obj.cl = new_cl2_id;  
5534 - obj.clZbh = new_cl2_zbh;  
5535 - }  
5536 - });  
5537 -  
5538 - } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定  
5539 - angular.forEach(scope[ctrlAs].ds, function(obj) {  
5540 - if (obj.fcno <= old_firstJCBCFcno) {  
5541 - obj.cl = new_cl1_id;  
5542 - obj.clZbh = new_cl1_zbh;  
5543 - } else {  
5544 - obj.cl = new_cl2_id;  
5545 - obj.clZbh = new_cl2_zbh;  
5546 - }  
5547 - });  
5548 - } else { // 使用一半一半班次判定  
5549 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
5550 - if (index < old_half_bcs) {  
5551 - obj.cl = new_cl1_id;  
5552 - obj.clZbh = new_cl1_zbh;  
5553 - } else {  
5554 - obj.cl = new_cl2_id;  
5555 - obj.clZbh = new_cl2_zbh;  
5556 - }  
5557 - });  
5558 - }  
5559 -  
5560 - } else {  
5561 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
5562 - obj.cl = new_cl1_id;  
5563 - obj.clZbh = new_cl1_zbh;  
5564 - });  
5565 - }  
5566 -  
5567 - } else {  
5568 - // 使用旧的  
5569 - angular.forEach(old_cl, function(value, key) {  
5570 - angular.forEach(value, function(i) {  
5571 - scope[ctrlAs].ds[i].cl = key.split("_")[0];  
5572 - scope[ctrlAs].ds[i].clZbh = key.split("_")[1];  
5573 - });  
5574 - });  
5575 - }  
5576 - };  
5577 -  
5578 - /**  
5579 - * 刷新驾驶员数据。  
5580 - */  
5581 - scope[ctrlAs].$$internal_refresh_dsdata_j = function() {  
5582 - if (new_j1) {  
5583 - var new_j1_id = new_j1.split("_")[0];  
5584 - var new_j1_name = new_j1.split("_")[1];  
5585 - var new_j1_gh = new_j1.split("_")[2];  
5586 - if (new_j1_gh && new_j1_gh.indexOf("-") > 0) {  
5587 - new_j1_gh = new_j1_gh.substr(3); // 修正工号,把 55- 这种前缀去掉  
5588 - }  
5589 -  
5590 - if (new_j2) {  
5591 - var new_j2_id = new_j2.split("_")[0];  
5592 - var new_j2_name = new_j2.split("_")[1];  
5593 - var new_j2_gh = new_j2.split("_")[2];  
5594 - if (new_j2_gh && new_j2_gh.indexOf("-") > 0) {  
5595 - new_j2_gh = new_j2_gh.substr(3); // 修正工号,把 55- 这种前缀去掉  
5596 - }  
5597 -  
5598 - if (old_isfb) { // 使用分班判定  
5599 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
5600 - if (index < old_isfb_index) {  
5601 - obj.j = new_j1_id;  
5602 - obj.jGh = new_j1_gh;  
5603 - obj.jName = new_j1_name;  
5604 - } else {  
5605 - obj.j = new_j2_id;  
5606 - obj.jGh = new_j2_gh;  
5607 - obj.jName = new_j2_name;  
5608 - }  
5609 - });  
5610 -  
5611 - } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定  
5612 - angular.forEach(scope[ctrlAs].ds, function(obj) {  
5613 - if (obj.fcno <= old_firstJCBCFcno) {  
5614 - obj.j = new_j1_id;  
5615 - obj.jGh = new_j1_gh;  
5616 - obj.jName = new_j1_name;  
5617 - } else {  
5618 - obj.j = new_j2_id;  
5619 - obj.jGh = new_j2_gh;  
5620 - obj.jName = new_j2_name;  
5621 - }  
5622 - });  
5623 - } else { // 使用一半一半班次判定  
5624 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
5625 - if (index < old_half_bcs) {  
5626 - obj.j = new_j1_id;  
5627 - obj.jGh = new_j1_gh;  
5628 - obj.jName = new_j1_name;  
5629 - } else {  
5630 - obj.j = new_j2_id;  
5631 - obj.jGh = new_j2_gh;  
5632 - obj.jName = new_j2_name;  
5633 - }  
5634 - });  
5635 - }  
5636 -  
5637 - } else {  
5638 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
5639 - obj.j = new_j1_id;  
5640 - obj.jGh = new_j1_gh;  
5641 - obj.jName = new_j1_name;  
5642 - });  
5643 - }  
5644 -  
5645 - } else {  
5646 - // 使用旧的  
5647 - angular.forEach(old_j, function(value, key) {  
5648 - angular.forEach(value, function(i) {  
5649 - scope[ctrlAs].ds[i].j = key.split("_")[0];  
5650 - scope[ctrlAs].ds[i].jName = key.split("_")[1];  
5651 - scope[ctrlAs].ds[i].jGh = key.split("_")[2];  
5652 - });  
5653 - });  
5654 - }  
5655 - };  
5656 - /**  
5657 - * 刷新售票员数据。  
5658 - */  
5659 - scope[ctrlAs].$$internal_refresh_dsdata_s = function() {  
5660 - if (new_s1) {  
5661 - var new_s1_id = new_s1.split("_")[0];  
5662 - var new_s1_name = new_s1.split("_")[1];  
5663 - var new_s1_gh = new_s1.split("_")[2];  
5664 - if (new_s1_gh && new_s1_gh.indexOf("-") > 0) { // 修正工号,吧 55- 这种前缀去掉  
5665 - new_s1_gh = new_s1_gh.substr(3);  
5666 - }  
5667 -  
5668 - if (new_s2) {  
5669 - var new_s2_id = new_s2.split("_")[0];  
5670 - var new_s2_name = new_s2.split("_")[1];  
5671 - var new_s2_gh = new_s2.split("_")[2];  
5672 - if (new_s2_gh && new_s2_gh.indexOf("-") > 0) { // 修正工号,吧 55- 这种前缀去掉  
5673 - new_s2_gh = new_s2_gh.substr(3);  
5674 - }  
5675 -  
5676 - if (old_isfb) { // 使用分班判定  
5677 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
5678 - if (index < old_isfb_index) {  
5679 - obj.s = new_s1_id;  
5680 -  
5681 - obj.sGh = new_s1_gh;  
5682 - obj.sName = new_s1_name;  
5683 - } else {  
5684 - obj.s = new_s2_id;  
5685 - obj.sGh = new_s2_gh;  
5686 - obj.sName = new_s2_name;  
5687 - }  
5688 - });  
5689 -  
5690 - } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定  
5691 - angular.forEach(scope[ctrlAs].ds, function(obj) {  
5692 - if (obj.fcno <= old_firstJCBCFcno) {  
5693 - obj.s = new_s1_id;  
5694 - obj.sGh = new_s1_gh;  
5695 - obj.sName = new_s1_name;  
5696 - } else {  
5697 - obj.s = new_s2_id;  
5698 - obj.sGh = new_s2_gh;  
5699 - obj.sName = new_s2_name;  
5700 - }  
5701 - });  
5702 - } else { // 使用一半一半班次判定  
5703 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
5704 - if (index < old_half_bcs) {  
5705 - obj.s = new_s1_id;  
5706 - obj.sGh = new_s1_gh;  
5707 - obj.sName = new_s1_name;  
5708 - } else {  
5709 - obj.s = new_s2_id;  
5710 - obj.sGh = new_s2_gh;  
5711 - obj.sName = new_s2_name;  
5712 - }  
5713 - });  
5714 - }  
5715 -  
5716 - } else {  
5717 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
5718 - obj.s = new_s1_id;  
5719 - obj.sGh = new_s1_gh;  
5720 - obj.sName = new_s1_name;  
5721 - });  
5722 - }  
5723 -  
5724 - } else {  
5725 - // 先清空  
5726 - angular.forEach(scope[ctrlAs].ds, function(obj) {  
5727 - obj.s = undefined;  
5728 - obj.sGh = undefined;  
5729 - obj.sName = undefined;  
5730 - });  
5731 -  
5732 - // 使用旧的  
5733 - angular.forEach(old_s, function(value, key) {  
5734 - angular.forEach(value, function(i) {  
5735 - scope[ctrlAs].ds[i].s = key.split("_")[0];  
5736 - scope[ctrlAs].ds[i].sName = key.split("_")[1];  
5737 - scope[ctrlAs].ds[i].sGh = key.split("_")[2];  
5738 - });  
5739 - });  
5740 - }  
5741 - };  
5742 -  
5743 - /**  
5744 - * 刷新内部数据。  
5745 - */  
5746 - scope[ctrlAs].$$internal_refresh_dsdata = function() {  
5747 - // 更新车辆  
5748 - scope[ctrlAs].$$internal_refresh_dsdata_cl();  
5749 -  
5750 - // 更新驾驶员  
5751 - scope[ctrlAs].$$internal_refresh_dsdata_j();  
5752 -  
5753 - // 更新售票员  
5754 - scope[ctrlAs].$$internal_refresh_dsdata_s();  
5755 - };  
5756 -  
5757 - // -------------- 监控function ---------------//  
5758 - attr.$observe('cl1', function(value) {  
5759 - if (value && value != "") {  
5760 - var obj = JSON.parse(value);  
5761 - if (obj.id && obj.zbh) {  
5762 - new_cl1 = obj.id + "_" + obj.zbh;  
5763 - } else {  
5764 - new_cl1 = undefined;  
5765 - }  
5766 - scope[ctrlAs].$$internal_refresh_dsdata();  
5767 - }  
5768 - });  
5769 -  
5770 - attr.$observe('cl2', function(value) {  
5771 - if (value && value != "") {  
5772 - var obj = JSON.parse(value);  
5773 - if (obj.id && obj.zbh) {  
5774 - new_cl2 = obj.id + "_" + obj.zbh;  
5775 - } else {  
5776 - new_cl2 = undefined;  
5777 - }  
5778 - scope[ctrlAs].$$internal_refresh_dsdata();  
5779 - }  
5780 - });  
5781 -  
5782 - attr.$observe('j1', function(value) {  
5783 - if (value && value != "") {  
5784 - var obj = JSON.parse(value);  
5785 - if (obj.id && obj.name && obj.jobCode) {  
5786 - new_j1 = obj.id + "_" + obj.name + "_" + obj.jobCode;  
5787 - } else {  
5788 - new_j1 = undefined;  
5789 - }  
5790 - scope[ctrlAs].$$internal_refresh_dsdata();  
5791 - }  
5792 - });  
5793 -  
5794 - attr.$observe('j2', function(value) {  
5795 - if (value && value != "") {  
5796 - var obj = JSON.parse(value);  
5797 - if (obj.id && obj.name && obj.jobCode) {  
5798 - new_j2 = obj.id + "_" + obj.name + "_" + obj.jobCode;  
5799 - } else {  
5800 - new_j2 = undefined;  
5801 - }  
5802 - scope[ctrlAs].$$internal_refresh_dsdata();  
5803 - }  
5804 - });  
5805 -  
5806 - attr.$observe('s1', function(value) {  
5807 - if (value && value != "") {  
5808 - var obj = JSON.parse(value);  
5809 - if (obj.id && obj.name && obj.jobCode) {  
5810 - new_s1 = obj.id + "_" + obj.name + "_" + obj.jobCode;  
5811 - } else {  
5812 - new_s1 = undefined;  
5813 - }  
5814 - scope[ctrlAs].$$internal_refresh_dsdata();  
5815 - }  
5816 - });  
5817 -  
5818 - attr.$observe('s2', function(value) {  
5819 - if (value && value != "") {  
5820 - var obj = JSON.parse(value);  
5821 - if (obj.id && obj.name && obj.jobCode) {  
5822 - new_s2 = obj.id + "_" + obj.name + "_" + obj.jobCode;  
5823 - } else {  
5824 - new_s2 = undefined;  
5825 - }  
5826 - scope[ctrlAs].$$internal_refresh_dsdata();  
5827 - }  
5828 - });  
5829 -  
5830 - scope.$watch(  
5831 - function() {  
5832 - return scope[ctrlAs].ds;  
5833 - },  
5834 - function(newValue, oldValue) {  
5835 - if (newValue && newValue.length > 0) {  
5836 -  
5837 - var j1 = newValue[0].j;  
5838 -  
5839 - angular.forEach(newValue, function(obj, index) {  
5840 - var k1 = obj.cl + "_" + obj.clZbh;  
5841 - var k2 = !obj.j? undefined: obj.j + "_" + obj.jName + "_" + obj.jGh;  
5842 - var k3 = !obj.s? undefined: obj.s + "_" + obj.sName + "_" + obj.sGh;  
5843 -  
5844 - if (!old_cl[k1]) {  
5845 - old_cl[k1] = [];  
5846 - }  
5847 - if (!old_j[k2] && k2) {  
5848 - old_j[k2] = [];  
5849 - }  
5850 - if (!old_s[k3] && k3) {  
5851 - old_s[k3] = [];  
5852 - }  
5853 -  
5854 - // 闭包  
5855 - (function(i) {  
5856 - old_cl[k1].push(i);  
5857 - if (k2) {  
5858 - old_j[k2].push(i);  
5859 - }  
5860 - if (k3) {  
5861 - old_s[k3].push(i);  
5862 - }  
5863 - })(index);  
5864 -  
5865 - // 判断是否分班  
5866 - if (j1 != obj.j && !old_isfb) {  
5867 - old_isfb = true;  
5868 - old_isfb_index = index;  
5869 - }  
5870 -  
5871 - // 判断进出场  
5872 - if (obj.bcType == 'in' && !old_hasJCBC) {  
5873 - old_hasJCBC = true;  
5874 - old_firstJCBCFcno = obj.fcno;  
5875 - }  
5876 - });  
5877 -  
5878 - old_max_fcno = newValue[newValue.length - 1].fcno;  
5879 - old_half_bcs = newValue.length / 2;  
5880 -  
5881 - // 可以用resource封装一下  
5882 - // TODO:  
5883 - }  
5884 - }  
5885 - );  
5886 - }  
5887 - }  
5888 - }  
5889 - };  
5890 - }  
5891 - ] 5468 +/**
  5469 + * saPlaninfoedit指令,排班明细编辑控件,用在调度执勤日报的修改功能
  5470 + * name(必须),控件的名字
  5471 + * ds,外部数据源
  5472 + * cl1,车辆1属性
  5473 + * cl2,车辆2属性
  5474 + * j1,驾驶员1属性
  5475 + * j2,驾驶员2属性
  5476 + * s1,售票员1属性
  5477 + * s2,售票员2属性
  5478 + */
  5479 +angular.module('ScheduleApp').directive(
  5480 + 'saPlaninfoedit',
  5481 + [
  5482 + function() {
  5483 + return {
  5484 + restrict: 'E',
  5485 + templateUrl: '/pages/scheduleApp/module/common/dts2/scheduleplan/saPlaninfoeditTemplate.html',
  5486 + scope: { // 独立作用域
  5487 + ds: '=ngModel'
  5488 + },
  5489 + controllerAs: '$saPlanInfoEditCtrl',
  5490 + bindToController: true,
  5491 + controller: function() {
  5492 + //var self = this;
  5493 +
  5494 + },
  5495 +
  5496 + compile: function(tElem, tAttrs) {
  5497 + // 获取属性
  5498 + var $attr_name = tAttrs["name"]; // 控件的名字
  5499 + if (!$attr_name) {
  5500 + throw {msg: "saPlaninfoedit指令name属性不能为空"};
  5501 + }
  5502 +
  5503 + // 内部controlAs名字
  5504 + var ctrlAs = '$saPlanInfoEditCtrl';
  5505 +
  5506 +
  5507 + // 内部变量,原始车辆,人员数据
  5508 + var old_cl = {}; // key:{车辆id_车辆自编号},value:所在list下标数组
  5509 + var old_j = {}; // key:{驾驶员id_姓名_工号}, value:所在list下标数组
  5510 + var old_s = {}; // key:{售票员id_姓名_工号}, value:所在list下标数组
  5511 + var old_isfb = false; // 是否有分班
  5512 + var old_isfb_index = 0; // 分班开始索引
  5513 + var old_hasJCBC = false; // 是否有进场班次
  5514 + var old_max_fcno = 0; // 最大发车顺序号
  5515 + var old_firstJCBCFcno = 0; // 第一个进场班次发车顺序号
  5516 + var old_half_bcs = 0; // 一般的班次数量
  5517 +
  5518 + // 内部变量,变更的车辆,变更的人员
  5519 + var new_cl1 = undefined; // 新的车辆1(车辆id_车辆自编号)
  5520 + var new_cl2 = undefined; // 新的车辆2(车辆id_车辆自编号)
  5521 + var new_j1 = undefined; // 新的驾驶员1(驾驶员id_姓名_工号)
  5522 + var new_j2 = undefined; // 新的驾驶员2(驾驶员id_姓名_工号)
  5523 + var new_s1 = undefined; // 新的售票员1(售票员id_姓名_工号)
  5524 + var new_s2 = undefined; // 新的售票员2(售票员id_姓名_工号)
  5525 +
  5526 + return {
  5527 + pre: function(scope, element, attr) {
  5528 +
  5529 + },
  5530 + post: function(scope, element, attr) {
  5531 +
  5532 + /**
  5533 + * 刷新车辆数据。
  5534 + */
  5535 + scope[ctrlAs].$$internal_refresh_dsdata_cl = function() {
  5536 + if (new_cl1) {
  5537 + var new_cl1_id = new_cl1.split("_")[0];
  5538 + var new_cl1_zbh = new_cl1.split("_")[1];
  5539 +
  5540 + if (new_cl2) {
  5541 + var new_cl2_id = new_cl2.split("_")[0];
  5542 + var new_cl2_zbh = new_cl2.split("_")[1];
  5543 +
  5544 + if (old_isfb) { // 使用分班判定
  5545 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  5546 + if (index < old_isfb_index) {
  5547 + obj.cl = new_cl1_id;
  5548 + obj.clZbh = new_cl1_zbh;
  5549 + } else {
  5550 + obj.cl = new_cl2_id;
  5551 + obj.clZbh = new_cl2_zbh;
  5552 + }
  5553 + });
  5554 +
  5555 + } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定
  5556 + angular.forEach(scope[ctrlAs].ds, function(obj) {
  5557 + if (obj.fcno <= old_firstJCBCFcno) {
  5558 + obj.cl = new_cl1_id;
  5559 + obj.clZbh = new_cl1_zbh;
  5560 + } else {
  5561 + obj.cl = new_cl2_id;
  5562 + obj.clZbh = new_cl2_zbh;
  5563 + }
  5564 + });
  5565 + } else { // 使用一半一半班次判定
  5566 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  5567 + if (index < old_half_bcs) {
  5568 + obj.cl = new_cl1_id;
  5569 + obj.clZbh = new_cl1_zbh;
  5570 + } else {
  5571 + obj.cl = new_cl2_id;
  5572 + obj.clZbh = new_cl2_zbh;
  5573 + }
  5574 + });
  5575 + }
  5576 +
  5577 + } else {
  5578 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  5579 + obj.cl = new_cl1_id;
  5580 + obj.clZbh = new_cl1_zbh;
  5581 + });
  5582 + }
  5583 +
  5584 + } else {
  5585 + // 使用旧的
  5586 + angular.forEach(old_cl, function(value, key) {
  5587 + angular.forEach(value, function(i) {
  5588 + scope[ctrlAs].ds[i].cl = key.split("_")[0];
  5589 + scope[ctrlAs].ds[i].clZbh = key.split("_")[1];
  5590 + });
  5591 + });
  5592 + }
  5593 + };
  5594 +
  5595 + /**
  5596 + * 刷新驾驶员数据。
  5597 + */
  5598 + scope[ctrlAs].$$internal_refresh_dsdata_j = function() {
  5599 + if (new_j1) {
  5600 + var new_j1_id = new_j1.split("_")[0];
  5601 + var new_j1_name = new_j1.split("_")[1];
  5602 + var new_j1_gh = new_j1.split("_")[2];
  5603 + if (new_j1_gh && new_j1_gh.indexOf("-") > 0) {
  5604 + new_j1_gh = new_j1_gh.substr(3); // 修正工号,把 55- 这种前缀去掉
  5605 + }
  5606 +
  5607 + if (new_j2) {
  5608 + var new_j2_id = new_j2.split("_")[0];
  5609 + var new_j2_name = new_j2.split("_")[1];
  5610 + var new_j2_gh = new_j2.split("_")[2];
  5611 + if (new_j2_gh && new_j2_gh.indexOf("-") > 0) {
  5612 + new_j2_gh = new_j2_gh.substr(3); // 修正工号,把 55- 这种前缀去掉
  5613 + }
  5614 +
  5615 + if (old_isfb) { // 使用分班判定
  5616 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  5617 + if (index < old_isfb_index) {
  5618 + obj.j = new_j1_id;
  5619 + obj.jGh = new_j1_gh;
  5620 + obj.jName = new_j1_name;
  5621 + } else {
  5622 + obj.j = new_j2_id;
  5623 + obj.jGh = new_j2_gh;
  5624 + obj.jName = new_j2_name;
  5625 + }
  5626 + });
  5627 +
  5628 + } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定
  5629 + angular.forEach(scope[ctrlAs].ds, function(obj) {
  5630 + if (obj.fcno <= old_firstJCBCFcno) {
  5631 + obj.j = new_j1_id;
  5632 + obj.jGh = new_j1_gh;
  5633 + obj.jName = new_j1_name;
  5634 + } else {
  5635 + obj.j = new_j2_id;
  5636 + obj.jGh = new_j2_gh;
  5637 + obj.jName = new_j2_name;
  5638 + }
  5639 + });
  5640 + } else { // 使用一半一半班次判定
  5641 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  5642 + if (index < old_half_bcs) {
  5643 + obj.j = new_j1_id;
  5644 + obj.jGh = new_j1_gh;
  5645 + obj.jName = new_j1_name;
  5646 + } else {
  5647 + obj.j = new_j2_id;
  5648 + obj.jGh = new_j2_gh;
  5649 + obj.jName = new_j2_name;
  5650 + }
  5651 + });
  5652 + }
  5653 +
  5654 + } else {
  5655 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  5656 + obj.j = new_j1_id;
  5657 + obj.jGh = new_j1_gh;
  5658 + obj.jName = new_j1_name;
  5659 + });
  5660 + }
  5661 +
  5662 + } else {
  5663 + // 使用旧的
  5664 + angular.forEach(old_j, function(value, key) {
  5665 + angular.forEach(value, function(i) {
  5666 + scope[ctrlAs].ds[i].j = key.split("_")[0];
  5667 + scope[ctrlAs].ds[i].jName = key.split("_")[1];
  5668 + scope[ctrlAs].ds[i].jGh = key.split("_")[2];
  5669 + });
  5670 + });
  5671 + }
  5672 + };
  5673 + /**
  5674 + * 刷新售票员数据。
  5675 + */
  5676 + scope[ctrlAs].$$internal_refresh_dsdata_s = function() {
  5677 + if (new_s1) {
  5678 + var new_s1_id = new_s1.split("_")[0];
  5679 + var new_s1_name = new_s1.split("_")[1];
  5680 + var new_s1_gh = new_s1.split("_")[2];
  5681 + if (new_s1_gh && new_s1_gh.indexOf("-") > 0) { // 修正工号,吧 55- 这种前缀去掉
  5682 + new_s1_gh = new_s1_gh.substr(3);
  5683 + }
  5684 +
  5685 + if (new_s2) {
  5686 + var new_s2_id = new_s2.split("_")[0];
  5687 + var new_s2_name = new_s2.split("_")[1];
  5688 + var new_s2_gh = new_s2.split("_")[2];
  5689 + if (new_s2_gh && new_s2_gh.indexOf("-") > 0) { // 修正工号,吧 55- 这种前缀去掉
  5690 + new_s2_gh = new_s2_gh.substr(3);
  5691 + }
  5692 +
  5693 + if (old_isfb) { // 使用分班判定
  5694 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  5695 + if (index < old_isfb_index) {
  5696 + obj.s = new_s1_id;
  5697 +
  5698 + obj.sGh = new_s1_gh;
  5699 + obj.sName = new_s1_name;
  5700 + } else {
  5701 + obj.s = new_s2_id;
  5702 + obj.sGh = new_s2_gh;
  5703 + obj.sName = new_s2_name;
  5704 + }
  5705 + });
  5706 +
  5707 + } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定
  5708 + angular.forEach(scope[ctrlAs].ds, function(obj) {
  5709 + if (obj.fcno <= old_firstJCBCFcno) {
  5710 + obj.s = new_s1_id;
  5711 + obj.sGh = new_s1_gh;
  5712 + obj.sName = new_s1_name;
  5713 + } else {
  5714 + obj.s = new_s2_id;
  5715 + obj.sGh = new_s2_gh;
  5716 + obj.sName = new_s2_name;
  5717 + }
  5718 + });
  5719 + } else { // 使用一半一半班次判定
  5720 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  5721 + if (index < old_half_bcs) {
  5722 + obj.s = new_s1_id;
  5723 + obj.sGh = new_s1_gh;
  5724 + obj.sName = new_s1_name;
  5725 + } else {
  5726 + obj.s = new_s2_id;
  5727 + obj.sGh = new_s2_gh;
  5728 + obj.sName = new_s2_name;
  5729 + }
  5730 + });
  5731 + }
  5732 +
  5733 + } else {
  5734 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  5735 + obj.s = new_s1_id;
  5736 + obj.sGh = new_s1_gh;
  5737 + obj.sName = new_s1_name;
  5738 + });
  5739 + }
  5740 +
  5741 + } else {
  5742 + // 先清空
  5743 + angular.forEach(scope[ctrlAs].ds, function(obj) {
  5744 + obj.s = undefined;
  5745 + obj.sGh = undefined;
  5746 + obj.sName = undefined;
  5747 + });
  5748 +
  5749 + // 使用旧的
  5750 + angular.forEach(old_s, function(value, key) {
  5751 + angular.forEach(value, function(i) {
  5752 + scope[ctrlAs].ds[i].s = key.split("_")[0];
  5753 + scope[ctrlAs].ds[i].sName = key.split("_")[1];
  5754 + scope[ctrlAs].ds[i].sGh = key.split("_")[2];
  5755 + });
  5756 + });
  5757 + }
  5758 + };
  5759 +
  5760 + /**
  5761 + * 刷新内部数据。
  5762 + */
  5763 + scope[ctrlAs].$$internal_refresh_dsdata = function() {
  5764 + // 更新车辆
  5765 + scope[ctrlAs].$$internal_refresh_dsdata_cl();
  5766 +
  5767 + // 更新驾驶员
  5768 + scope[ctrlAs].$$internal_refresh_dsdata_j();
  5769 +
  5770 + // 更新售票员
  5771 + scope[ctrlAs].$$internal_refresh_dsdata_s();
  5772 + };
  5773 +
  5774 + // -------------- 监控function ---------------//
  5775 + attr.$observe('cl1', function(value) {
  5776 + if (value && value != "") {
  5777 + var obj = JSON.parse(value);
  5778 + if (obj.id && obj.zbh) {
  5779 + new_cl1 = obj.id + "_" + obj.zbh;
  5780 + } else {
  5781 + new_cl1 = undefined;
  5782 + }
  5783 + scope[ctrlAs].$$internal_refresh_dsdata();
  5784 + }
  5785 + });
  5786 +
  5787 + attr.$observe('cl2', function(value) {
  5788 + if (value && value != "") {
  5789 + var obj = JSON.parse(value);
  5790 + if (obj.id && obj.zbh) {
  5791 + new_cl2 = obj.id + "_" + obj.zbh;
  5792 + } else {
  5793 + new_cl2 = undefined;
  5794 + }
  5795 + scope[ctrlAs].$$internal_refresh_dsdata();
  5796 + }
  5797 + });
  5798 +
  5799 + attr.$observe('j1', function(value) {
  5800 + if (value && value != "") {
  5801 + var obj = JSON.parse(value);
  5802 + if (obj.id && obj.name && obj.jobCode) {
  5803 + new_j1 = obj.id + "_" + obj.name + "_" + obj.jobCode;
  5804 + } else {
  5805 + new_j1 = undefined;
  5806 + }
  5807 + scope[ctrlAs].$$internal_refresh_dsdata();
  5808 + }
  5809 + });
  5810 +
  5811 + attr.$observe('j2', function(value) {
  5812 + if (value && value != "") {
  5813 + var obj = JSON.parse(value);
  5814 + if (obj.id && obj.name && obj.jobCode) {
  5815 + new_j2 = obj.id + "_" + obj.name + "_" + obj.jobCode;
  5816 + } else {
  5817 + new_j2 = undefined;
  5818 + }
  5819 + scope[ctrlAs].$$internal_refresh_dsdata();
  5820 + }
  5821 + });
  5822 +
  5823 + attr.$observe('s1', function(value) {
  5824 + if (value && value != "") {
  5825 + var obj = JSON.parse(value);
  5826 + if (obj.id && obj.name && obj.jobCode) {
  5827 + new_s1 = obj.id + "_" + obj.name + "_" + obj.jobCode;
  5828 + } else {
  5829 + new_s1 = undefined;
  5830 + }
  5831 + scope[ctrlAs].$$internal_refresh_dsdata();
  5832 + }
  5833 + });
  5834 +
  5835 + attr.$observe('s2', function(value) {
  5836 + if (value && value != "") {
  5837 + var obj = JSON.parse(value);
  5838 + if (obj.id && obj.name && obj.jobCode) {
  5839 + new_s2 = obj.id + "_" + obj.name + "_" + obj.jobCode;
  5840 + } else {
  5841 + new_s2 = undefined;
  5842 + }
  5843 + scope[ctrlAs].$$internal_refresh_dsdata();
  5844 + }
  5845 + });
  5846 +
  5847 + scope.$watch(
  5848 + function() {
  5849 + return scope[ctrlAs].ds;
  5850 + },
  5851 + function(newValue, oldValue) {
  5852 + if (newValue && newValue.length > 0) {
  5853 +
  5854 + var j1 = newValue[0].j;
  5855 +
  5856 + angular.forEach(newValue, function(obj, index) {
  5857 + var k1 = obj.cl + "_" + obj.clZbh;
  5858 + var k2 = !obj.j? undefined: obj.j + "_" + obj.jName + "_" + obj.jGh;
  5859 + var k3 = !obj.s? undefined: obj.s + "_" + obj.sName + "_" + obj.sGh;
  5860 +
  5861 + if (!old_cl[k1]) {
  5862 + old_cl[k1] = [];
  5863 + }
  5864 + if (!old_j[k2] && k2) {
  5865 + old_j[k2] = [];
  5866 + }
  5867 + if (!old_s[k3] && k3) {
  5868 + old_s[k3] = [];
  5869 + }
  5870 +
  5871 + // 闭包
  5872 + (function(i) {
  5873 + old_cl[k1].push(i);
  5874 + if (k2) {
  5875 + old_j[k2].push(i);
  5876 + }
  5877 + if (k3) {
  5878 + old_s[k3].push(i);
  5879 + }
  5880 + })(index);
  5881 +
  5882 + // 判断是否分班
  5883 + if (j1 != obj.j && !old_isfb) {
  5884 + old_isfb = true;
  5885 + old_isfb_index = index;
  5886 + }
  5887 +
  5888 + // 判断进出场
  5889 + if (obj.bcType == 'in' && !old_hasJCBC) {
  5890 + old_hasJCBC = true;
  5891 + old_firstJCBCFcno = obj.fcno;
  5892 + }
  5893 + });
  5894 +
  5895 + old_max_fcno = newValue[newValue.length - 1].fcno;
  5896 + old_half_bcs = newValue.length / 2;
  5897 +
  5898 + // 可以用resource封装一下
  5899 + // TODO:
  5900 + }
  5901 + }
  5902 + );
  5903 + }
  5904 + }
  5905 + }
  5906 + };
  5907 + }
  5908 + ]
5892 ); 5909 );
5893 -/**  
5894 - * saPlaninfoedit2指令,排班明细编辑控件,用在调度执勤日报的修改功能  
5895 - * name(必须),控件的名字  
5896 - * ds,外部数据源  
5897 - * fd, 表单数据源  
5898 - */  
5899 -angular.module('ScheduleApp').directive(  
5900 - 'saPlaninfoedit2',  
5901 - [  
5902 - function() {  
5903 - return {  
5904 - restrict: 'E',  
5905 - templateUrl: '/pages/scheduleApp/module/common/dts2/scheduleplan/saPlaninfoeditTemplate.html',  
5906 - scope: { // 独立作用域  
5907 - ds: '=ngModel', // 时刻明细数据源头  
5908 - fd: '=formData' // 表单数据源(车辆、驾驶员、售票员信息)  
5909 - },  
5910 - controllerAs: '$saPlanInfoEditCtrl',  
5911 - bindToController: true,  
5912 - controller: function() {  
5913 - //var self = this;  
5914 -  
5915 - },  
5916 -  
5917 - compile: function(tElem, tAttrs) {  
5918 - // 获取属性  
5919 - var $attr_name = tAttrs["name"]; // 控件的名字  
5920 - if (!$attr_name) {  
5921 - throw {msg: "saPlaninfoedit2指令name属性不能为空"};  
5922 - }  
5923 -  
5924 - // 内部controlAs名字  
5925 - var ctrlAs = '$saPlanInfoEditCtrl';  
5926 -  
5927 -  
5928 - // 内部变量,原始车辆,人员数据  
5929 - var old_cl = {}; // key:{车辆id_车辆自编号},value:所在list下标数组  
5930 - var old_j = {}; // key:{驾驶员id_姓名_工号}, value:所在list下标数组  
5931 - var old_s = {}; // key:{售票员id_姓名_工号}, value:所在list下标数组  
5932 - var old_isfb = false; // 是否有分班  
5933 - var old_isfb_index = 0; // 分班开始索引  
5934 - var old_hasJCBC = false; // 是否有进场班次  
5935 - var old_max_fcno = 0; // 最大发车顺序号  
5936 - var old_firstJCBCFcno = 0; // 第一个进场班次发车顺序号  
5937 - var old_half_bcs = 0; // 一般的班次数量  
5938 - var old_ddreason = {}; // key:{调度原因}, value:所在list下标数组  
5939 - var old_dddesc = {}; // key:{调度描述}, value:所在list下标数组  
5940 -  
5941 - // 内部变量,变更的车辆,变更的人员  
5942 - var new_cl1 = undefined; // 新的车辆1(车辆id_车辆自编号)  
5943 - var new_cl2 = undefined; // 新的车辆2(车辆id_车辆自编号)  
5944 - var new_j1 = undefined; // 新的驾驶员1(驾驶员id_姓名_工号)  
5945 - var new_j2 = undefined; // 新的驾驶员2(驾驶员id_姓名_工号)  
5946 - var new_s1 = undefined; // 新的售票员1(售票员id_姓名_工号)  
5947 - var new_s2 = undefined; // 新的售票员2(售票员id_姓名_工号)  
5948 - var new_ddreason = undefined; // 调度原因  
5949 - var new_dddesc = undefined; // 调度描述  
5950 -  
5951 - // 表单值,被赋值的次数  
5952 - var form_data_assign_count = { // 大于1表示已经初始化过了  
5953 - cl1 : -1,  
5954 - cl2 : -1,  
5955 - j1 : -1,  
5956 - j2 : -1,  
5957 - j3 : -1,  
5958 - s1 : -1,  
5959 - s2 : -1,  
5960 - s3 : -1  
5961 - };  
5962 -  
5963 - return {  
5964 - pre: function(scope, element, attr) {  
5965 -  
5966 - },  
5967 - post: function(scope, element, attr) {  
5968 -  
5969 - /**  
5970 - * 刷新调度原因数据。  
5971 - */  
5972 - scope[ctrlAs].$$internal_refresh_dsdata_ddreason = function() {  
5973 - if (new_ddreason) {  
5974 - angular.forEach(scope[ctrlAs].ds, function(obj) {  
5975 - obj.modifyReason = new_ddreason;  
5976 - });  
5977 - } else {  
5978 - // 清空,不使用旧的  
5979 - angular.forEach(old_ddreason, function(value, key) {  
5980 - angular.forEach(value, function(i) {  
5981 - scope[ctrlAs].ds[i].modifyReason = undefined;  
5982 - });  
5983 - });  
5984 - }  
5985 - };  
5986 -  
5987 - /**  
5988 - * 刷新调度描述数据。  
5989 - */  
5990 - scope[ctrlAs].$$internal_refresh_dsdata_dddesc = function() {  
5991 - if (new_dddesc) {  
5992 - angular.forEach(scope[ctrlAs].ds, function(obj) {  
5993 - obj.modifyRemark = new_dddesc;  
5994 - });  
5995 - } else {  
5996 - // 清空,不使用旧的  
5997 - angular.forEach(old_dddesc, function(value, key) {  
5998 - angular.forEach(value, function(i) {  
5999 - scope[ctrlAs].ds[i].modifyRemark = undefined;  
6000 - });  
6001 - });  
6002 - }  
6003 - };  
6004 -  
6005 - /**  
6006 - * 刷新车辆数据。  
6007 - */  
6008 - scope[ctrlAs].$$internal_refresh_dsdata_cl = function() {  
6009 - if (new_cl1) {  
6010 - var new_cl1_id = new_cl1.split("_")[0];  
6011 - var new_cl1_zbh = new_cl1.split("_")[1];  
6012 -  
6013 - if (new_cl2) {  
6014 - var new_cl2_id = new_cl2.split("_")[0];  
6015 - var new_cl2_zbh = new_cl2.split("_")[1];  
6016 -  
6017 - if (old_isfb) { // 使用分班判定  
6018 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
6019 - if (index < old_isfb_index) {  
6020 - obj.cl = new_cl1_id;  
6021 - obj.clZbh = new_cl1_zbh;  
6022 - } else {  
6023 - obj.cl = new_cl2_id;  
6024 - obj.clZbh = new_cl2_zbh;  
6025 - }  
6026 - });  
6027 -  
6028 - } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定  
6029 - angular.forEach(scope[ctrlAs].ds, function(obj) {  
6030 - if (obj.fcno <= old_firstJCBCFcno) {  
6031 - obj.cl = new_cl1_id;  
6032 - obj.clZbh = new_cl1_zbh;  
6033 - } else {  
6034 - obj.cl = new_cl2_id;  
6035 - obj.clZbh = new_cl2_zbh;  
6036 - }  
6037 - });  
6038 - } else { // 使用一半一半班次判定  
6039 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
6040 - if (index < old_half_bcs) {  
6041 - obj.cl = new_cl1_id;  
6042 - obj.clZbh = new_cl1_zbh;  
6043 - } else {  
6044 - obj.cl = new_cl2_id;  
6045 - obj.clZbh = new_cl2_zbh;  
6046 - }  
6047 - });  
6048 - }  
6049 -  
6050 - } else {  
6051 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
6052 - obj.cl = new_cl1_id;  
6053 - obj.clZbh = new_cl1_zbh;  
6054 - });  
6055 - }  
6056 -  
6057 - } else {  
6058 - // 清空,不使用旧的  
6059 - angular.forEach(old_cl, function(value, key) {  
6060 - angular.forEach(value, function(i) {  
6061 - //scope[ctrlAs].ds[i].cl = key.split("_")[0];  
6062 - //scope[ctrlAs].ds[i].clZbh = key.split("_")[1];  
6063 - scope[ctrlAs].ds[i].cl = undefined;  
6064 - scope[ctrlAs].ds[i].clZbh = undefined;  
6065 - });  
6066 - });  
6067 - }  
6068 - };  
6069 -  
6070 - /**  
6071 - * 刷新驾驶员数据。  
6072 - */  
6073 - scope[ctrlAs].$$internal_refresh_dsdata_j = function() {  
6074 - if (new_j1) {  
6075 - var new_j1_id = new_j1.split("_")[0];  
6076 - var new_j1_name = new_j1.split("_")[1];  
6077 - var new_j1_gh = new_j1.split("_")[2];  
6078 - if (new_j1_gh && new_j1_gh.indexOf("-") > 0) {  
6079 - new_j1_gh = new_j1_gh.substr(3); // 修正工号,把 55- 这种前缀去掉  
6080 - }  
6081 -  
6082 - if (new_j2) {  
6083 - var new_j2_id = new_j2.split("_")[0];  
6084 - var new_j2_name = new_j2.split("_")[1];  
6085 - var new_j2_gh = new_j2.split("_")[2];  
6086 - if (new_j2_gh && new_j2_gh.indexOf("-") > 0) {  
6087 - new_j2_gh = new_j2_gh.substr(3); // 修正工号,把 55- 这种前缀去掉  
6088 - }  
6089 -  
6090 - if (old_isfb) { // 使用分班判定  
6091 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
6092 - if (index < old_isfb_index) {  
6093 - obj.j = new_j1_id;  
6094 - obj.jGh = new_j1_gh;  
6095 - obj.jName = new_j1_name;  
6096 - } else {  
6097 - obj.j = new_j2_id;  
6098 - obj.jGh = new_j2_gh;  
6099 - obj.jName = new_j2_name;  
6100 - }  
6101 - });  
6102 -  
6103 - } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定  
6104 - angular.forEach(scope[ctrlAs].ds, function(obj) {  
6105 - if (obj.fcno <= old_firstJCBCFcno) {  
6106 - obj.j = new_j1_id;  
6107 - obj.jGh = new_j1_gh;  
6108 - obj.jName = new_j1_name;  
6109 - } else {  
6110 - obj.j = new_j2_id;  
6111 - obj.jGh = new_j2_gh;  
6112 - obj.jName = new_j2_name;  
6113 - }  
6114 - });  
6115 - } else { // 使用一半一半班次判定  
6116 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
6117 - if (index < old_half_bcs) {  
6118 - obj.j = new_j1_id;  
6119 - obj.jGh = new_j1_gh;  
6120 - obj.jName = new_j1_name;  
6121 - } else {  
6122 - obj.j = new_j2_id;  
6123 - obj.jGh = new_j2_gh;  
6124 - obj.jName = new_j2_name;  
6125 - }  
6126 - });  
6127 - }  
6128 -  
6129 - } else {  
6130 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
6131 - obj.j = new_j1_id;  
6132 - obj.jGh = new_j1_gh;  
6133 - obj.jName = new_j1_name;  
6134 - });  
6135 - }  
6136 -  
6137 - } else {  
6138 - // 清空,不使用使用旧的  
6139 - angular.forEach(old_j, function(value, key) {  
6140 - angular.forEach(value, function(i) {  
6141 - //scope[ctrlAs].ds[i].j = key.split("_")[0];  
6142 - //scope[ctrlAs].ds[i].jName = key.split("_")[1];  
6143 - //scope[ctrlAs].ds[i].jGh = key.split("_")[2];  
6144 - scope[ctrlAs].ds[i].j = undefined;  
6145 - scope[ctrlAs].ds[i].jName = undefined;  
6146 - scope[ctrlAs].ds[i].jGh = undefined;  
6147 - });  
6148 - });  
6149 - }  
6150 - };  
6151 -  
6152 - /**  
6153 - * 刷新售票员数据(和驾驶员配对的,有驾驶员,才有售票员)。  
6154 - */  
6155 - scope[ctrlAs].$$internal_refresh_dsdata_s = function() {  
6156 - var j_id = undefined;  
6157 - var s_id = undefined;  
6158 - var s_gh = undefined;  
6159 - var s_name = undefined;  
6160 -  
6161 - if (new_j1) {  
6162 - j_id = new_j1.split("_")[0];  
6163 - if (new_s1) {  
6164 - s_id = new_s1.split("_")[0];  
6165 - s_name = new_s1.split("_")[1];  
6166 - s_gh = new_s1.split("_")[2];  
6167 - if (s_gh && s_gh.indexOf("-") > 0) { // 修正工号,把 55- 这种前缀去掉  
6168 - s_gh = s_gh.substr(3);  
6169 - }  
6170 - } else {  
6171 - s_id = undefined;  
6172 - s_gh = undefined;  
6173 - s_name = undefined  
6174 - }  
6175 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
6176 - if (obj.j == j_id) {  
6177 - obj.s = s_id;  
6178 - obj.sGh = s_gh;  
6179 - obj.sName = s_name;  
6180 - }  
6181 - });  
6182 - }  
6183 - if (new_j2) {  
6184 - j_id = new_j2.split("_")[0];  
6185 - if (new_s2) {  
6186 - s_id = new_s2.split("_")[0];  
6187 - s_name = new_s2.split("_")[1];  
6188 - s_gh = new_s2.split("_")[2];  
6189 - if (s_gh && s_gh.indexOf("-") > 0) { // 修正工号,把 55- 这种前缀去掉  
6190 - s_gh = s_gh.substr(3);  
6191 - }  
6192 - } else {  
6193 - s_id = undefined;  
6194 - s_gh = undefined;  
6195 - s_name = undefined  
6196 - }  
6197 -  
6198 - angular.forEach(scope[ctrlAs].ds, function(obj, index) {  
6199 - if (obj.j == j_id) {  
6200 - obj.s = s_id;  
6201 - obj.sGh = s_gh;  
6202 - obj.sName = s_name;  
6203 - }  
6204 - });  
6205 - }  
6206 - };  
6207 -  
6208 - //-------------- 监控调度原因的变化 ----------------//  
6209 - scope.$watch(  
6210 - function() {  
6211 - return scope[ctrlAs].fd.ddr;  
6212 - },  
6213 - function(newValue, oldValue) {  
6214 - if (newValue || newValue == 0) {  
6215 - new_ddreason = newValue;  
6216 - }  
6217 - scope[ctrlAs].$$internal_refresh_dsdata_ddreason();  
6218 - },  
6219 - true  
6220 - );  
6221 -  
6222 - //-------------- 监控调度描述的变化 ----------------//  
6223 - scope.$watch(  
6224 - function() {  
6225 - return scope[ctrlAs].fd.ddrdesc;  
6226 - },  
6227 - function(newValue, oldValue) {  
6228 - if (newValue || newValue == 0) {  
6229 - new_dddesc = newValue;  
6230 - }  
6231 - scope[ctrlAs].$$internal_refresh_dsdata_dddesc();  
6232 - },  
6233 - true  
6234 - );  
6235 -  
6236 -  
6237 - //-------------- 监控表单车辆1的变化 ----------------//  
6238 - scope.$watch(  
6239 - function() {  
6240 - return scope[ctrlAs].fd.cl1;  
6241 - },  
6242 - function(newValue, oldValue) {  
6243 - if (form_data_assign_count.cl1 > 2) {  
6244 - if (newValue.id) {  
6245 - if (newValue.id && newValue.zbh) {  
6246 - new_cl1 = newValue.id + "_" + newValue.zbh;  
6247 - } else {  
6248 - new_cl1 = undefined;  
6249 - }  
6250 - } else {  
6251 - new_cl1 = undefined;  
6252 - }  
6253 - scope[ctrlAs].$$internal_refresh_dsdata_cl();  
6254 - }  
6255 -  
6256 - form_data_assign_count.cl1 ++;  
6257 - },  
6258 - true  
6259 - );  
6260 -  
6261 - //-------------- 监控表单车辆2的变化 ----------------//  
6262 - scope.$watch(  
6263 - function() {  
6264 - return scope[ctrlAs].fd.cl2;  
6265 - },  
6266 - function(newValue, oldValue) {  
6267 - if (form_data_assign_count.cl2 > 2) {  
6268 - if (newValue.id) {  
6269 - if (newValue.id && newValue.zbh) {  
6270 - new_cl2 = newValue.id + "_" + newValue.zbh;  
6271 - } else {  
6272 - new_cl2 = undefined;  
6273 - }  
6274 - } else {  
6275 - new_cl2 = undefined;  
6276 - }  
6277 - scope[ctrlAs].$$internal_refresh_dsdata_cl();  
6278 - }  
6279 -  
6280 - form_data_assign_count.cl2 ++;  
6281 - },  
6282 - true  
6283 - );  
6284 -  
6285 - //-------------- 监控表单驾驶员1的变化 ----------------//  
6286 - scope.$watch(  
6287 - function() {  
6288 - return scope[ctrlAs].fd.j1;  
6289 - },  
6290 - function(newValue, oldValue) {  
6291 - if (form_data_assign_count.j1 > 2) {  
6292 - if (newValue.id) {  
6293 - if (newValue.id && newValue.name && newValue.jobCode) {  
6294 - new_j1 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode;  
6295 - } else {  
6296 - new_j1 = undefined;  
6297 - }  
6298 - } else {  
6299 - new_j1 = undefined;  
6300 - }  
6301 -  
6302 - scope[ctrlAs].$$internal_refresh_dsdata_j();  
6303 - scope[ctrlAs].$$internal_refresh_dsdata_s();  
6304 - }  
6305 -  
6306 - form_data_assign_count.j1 ++;  
6307 - },  
6308 - true  
6309 - );  
6310 -  
6311 - //-------------- 监控表单售票员1的变化 ----------------//  
6312 - scope.$watch(  
6313 - function() {  
6314 - return scope[ctrlAs].fd.s1;  
6315 - },  
6316 - function(newValue, oldValue) {  
6317 - if (form_data_assign_count.s1 > 2) {  
6318 - if (newValue.id) {  
6319 - if (newValue.id && newValue.name && newValue.jobCode) {  
6320 - new_s1 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode;  
6321 - } else {  
6322 - new_s1 = undefined;  
6323 - }  
6324 - } else {  
6325 - new_s1 = undefined;  
6326 - }  
6327 -  
6328 - scope[ctrlAs].$$internal_refresh_dsdata_j();  
6329 - scope[ctrlAs].$$internal_refresh_dsdata_s();  
6330 - }  
6331 -  
6332 - form_data_assign_count.s1 ++;  
6333 - },  
6334 - true  
6335 - );  
6336 -  
6337 - //-------------- 监控表单驾驶员2的变化 ----------------//  
6338 - scope.$watch(  
6339 - function() {  
6340 - return scope[ctrlAs].fd.j2;  
6341 - },  
6342 - function(newValue, oldValue) {  
6343 - if (form_data_assign_count.j2 > 2) {  
6344 - if (newValue.id) {  
6345 - if (newValue.id && newValue.name && newValue.jobCode) {  
6346 - new_j2 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode;  
6347 - } else {  
6348 - new_j2 = undefined;  
6349 - }  
6350 - } else {  
6351 - new_j2 = undefined;  
6352 - }  
6353 -  
6354 - scope[ctrlAs].$$internal_refresh_dsdata_j();  
6355 - scope[ctrlAs].$$internal_refresh_dsdata_s();  
6356 - }  
6357 -  
6358 - form_data_assign_count.j2 ++;  
6359 - },  
6360 - true  
6361 - );  
6362 -  
6363 - //-------------- 监控表单售票员2的变化 ----------------//  
6364 - scope.$watch(  
6365 - function() {  
6366 - return scope[ctrlAs].fd.s2;  
6367 - },  
6368 - function(newValue, oldValue) {  
6369 - if (form_data_assign_count.s2 > 2) {  
6370 - if (newValue && newValue.id) {  
6371 - if (newValue.id && newValue.name && newValue.jobCode) {  
6372 - new_s2 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode;  
6373 - } else {  
6374 - new_s2 = undefined;  
6375 - }  
6376 - } else {  
6377 - new_s2 = undefined;  
6378 - }  
6379 -  
6380 - scope[ctrlAs].$$internal_refresh_dsdata_j();  
6381 - scope[ctrlAs].$$internal_refresh_dsdata_s();  
6382 - }  
6383 -  
6384 - form_data_assign_count.s2 ++;  
6385 - },  
6386 - true  
6387 - );  
6388 -  
6389 - //-------------------- 监控ds的变化,更新数据源,初始化formdata的数据 ---------------//  
6390 - scope.$watch(  
6391 - function() {  
6392 - return scope[ctrlAs].ds;  
6393 - },  
6394 - function(newValue, oldValue) {  
6395 - if (newValue && newValue.length > 0) {  
6396 - var j1 = newValue[0].j;  
6397 -  
6398 - var cl_idFlags = []; // 车辆idFlags数组(有顺序)  
6399 - var j_s_idFlags = []; // 驾驶员idFlags,售票员idFlags,[{j:idFlag,s:idFlag},...](有顺序)  
6400 - var addreason = []; // 营运调度的原因  
6401 - var adddesc = []; // 营运导读的备注  
6402 - var isRepeat = false;  
6403 - var i = 0;  
6404 -  
6405 - angular.forEach(newValue, function(obj, index) {  
6406 - var k1 = obj.cl + "_" + obj.clZbh;  
6407 - var k2 = !obj.j? undefined: obj.j + "_" + obj.jName + "_" + obj.jGh;  
6408 - var k3 = !obj.s? undefined: obj.s + "_" + obj.sName + "_" + obj.sGh;  
6409 -  
6410 - if (!old_cl[k1]) {  
6411 - old_cl[k1] = [];  
6412 - }  
6413 - if (!old_j[k2] && k2) {  
6414 - old_j[k2] = [];  
6415 - }  
6416 - if (!old_s[k3] && k3) {  
6417 - old_s[k3] = [];  
6418 - }  
6419 -  
6420 - var dd4 = obj.modifyReason == null || obj.modifyReason == undefined ? undefined :  
6421 - obj.modifyReason;  
6422 - var dd5 = obj.modifyRemark == null || obj.modifyRemark == undefined ? undefined :  
6423 - obj.modifyRemark;  
6424 -  
6425 - if (!old_ddreason[dd4] && dd4) {  
6426 - old_ddreason[dd4] = [];  
6427 - }  
6428 - if (!old_dddesc[dd5] && dd5) {  
6429 - old_dddesc[dd5] = [];  
6430 - }  
6431 -  
6432 - // 闭包  
6433 - (function(i) {  
6434 - old_cl[k1].push(i);  
6435 - if (k2) {  
6436 - old_j[k2].push(i);  
6437 - }  
6438 - if (k3) {  
6439 - old_s[k3].push(i);  
6440 - }  
6441 - if (dd4) {  
6442 - old_ddreason[dd4].push(i);  
6443 - }  
6444 - if (dd5) {  
6445 - old_dddesc[dd5].push(i);  
6446 - }  
6447 - })(index);  
6448 -  
6449 - // 判断是否分班  
6450 - if (j1 != obj.j && !old_isfb) {  
6451 - old_isfb = true;  
6452 - old_isfb_index = index;  
6453 - }  
6454 -  
6455 - // 判断进出场  
6456 - if (obj.bcType == 'in' && !old_hasJCBC) {  
6457 - old_hasJCBC = true;  
6458 - old_firstJCBCFcno = obj.fcno;  
6459 - }  
6460 -  
6461 - //-------------- formdata用数据处理 -------------//  
6462 - // 车辆处理  
6463 - isRepeat = false;  
6464 - if (obj.cl) {  
6465 - for (i = 0; i < cl_idFlags.length; i++) {  
6466 - if (cl_idFlags[i] == (obj.cl + "_" + obj.clZbh)) {  
6467 - isRepeat = true;  
6468 - break;  
6469 - }  
6470 - }  
6471 - if (!isRepeat) {  
6472 - cl_idFlags.push(obj.cl + "_" + obj.clZbh);  
6473 - }  
6474 - }  
6475 -  
6476 - // 人员处理(以驾驶员id为主,没有的话,售票员不管了)  
6477 - isRepeat = false;  
6478 - if (obj.j) {  
6479 - for (i = 0; i < j_s_idFlags.length; i++) {  
6480 - if (j_s_idFlags[i].j == (obj.j + "_" + obj.jName + "_" + obj.jGh)) {  
6481 - isRepeat = true;  
6482 - break;  
6483 - }  
6484 - }  
6485 - if (!isRepeat) {  
6486 - j_s_idFlags.push({  
6487 - j: obj.j + "_" + obj.jName + "_" + obj.jGh,  
6488 - s: !obj.s? undefined: (obj.s + "_" + obj.sName + "_" + obj.sGh)  
6489 - });  
6490 - }  
6491 - }  
6492 -  
6493 - // 调度原因处理  
6494 - isRepeat = false;  
6495 - if (obj.modifyReason || obj.modifyReason == 0) {  
6496 - for (i = 0; i < addreason.length; i++) {  
6497 - if (addreason[i] == obj.modifyReason) {  
6498 - isRepeat = true;  
6499 - break;  
6500 - }  
6501 - }  
6502 - if (!isRepeat) {  
6503 - addreason.push(obj.modifyReason);  
6504 - }  
6505 - }  
6506 -  
6507 - // 调整备注处理  
6508 - isRepeat = false;  
6509 - if (obj.modifyRemark && obj.modifyRemark != "") {  
6510 - for (i = 0; i < adddesc.length; i++) {  
6511 - if (adddesc[i] == obj.modifyRemark) {  
6512 - isRepeat = true;  
6513 - break;  
6514 - }  
6515 - }  
6516 - if (!isRepeat) {  
6517 - adddesc.push(obj.modifyRemark);  
6518 - }  
6519 - }  
6520 -  
6521 - });  
6522 -  
6523 - old_max_fcno = newValue[newValue.length - 1].fcno;  
6524 - old_half_bcs = newValue.length / 2;  
6525 -  
6526 - // 更新formdata  
6527 - for (i = 0; i < cl_idFlags.length; i++) { // 车辆更新前两辆  
6528 - if (i == 0) { // 第一组车  
6529 - scope[ctrlAs].fd["cl1"].id = cl_idFlags[i].split("_")[0];  
6530 - new_cl1 = cl_idFlags[i];  
6531 - } else if (i == 1) { // 第二组车  
6532 - scope[ctrlAs].fd["cl2"].id = cl_idFlags[i].split("_")[0];  
6533 - new_cl2 = cl_idFlags[i];  
6534 - } else { // 第三组及以上车全部忽略  
6535 - break;  
6536 - }  
6537 - }  
6538 - for (i = 0; i < j_s_idFlags.length; i++) { // 人员更新  
6539 - if (i == 0) { // 第一组人员  
6540 - scope[ctrlAs].fd["j1"].id = j_s_idFlags[i].j.split("_")[0];  
6541 - scope[ctrlAs].fd["s1"].id = j_s_idFlags[i].s && j_s_idFlags[i].s.split("_")[0];  
6542 - new_j1 = j_s_idFlags[i].j;  
6543 - new_s1 = j_s_idFlags[i].s;  
6544 -  
6545 - } else if (i == 1) { // 第二组人员  
6546 - scope[ctrlAs].fd["j2"].id = j_s_idFlags[i].j.split("_")[0];  
6547 - scope[ctrlAs].fd["s2"].id = j_s_idFlags[i].s && j_s_idFlags[i].s.split("_")[0];  
6548 - new_j2 = j_s_idFlags[i].j;  
6549 - new_s2 = j_s_idFlags[i].s;  
6550 - } else { // 第三组及以上全部忽律  
6551 - break;  
6552 - }  
6553 - }  
6554 - // 更新form_data_assign_count,有值设置成2,没值设置成3,表示已经从ds处初始化完毕  
6555 - if (new_cl1) {  
6556 - form_data_assign_count["cl1"] = 2;  
6557 - } else {  
6558 - form_data_assign_count["cl1"] = 3;  
6559 - }  
6560 - if (new_cl2) {  
6561 - form_data_assign_count["cl2"] = 2;  
6562 - } else {  
6563 - form_data_assign_count["cl2"] = 3;  
6564 - }  
6565 - if (new_j1) {  
6566 - form_data_assign_count["j1"] = 2;  
6567 - } else {  
6568 - form_data_assign_count["j1"] = 3;  
6569 - }  
6570 - if (new_j2) {  
6571 - form_data_assign_count["j2"] = 2;  
6572 - } else {  
6573 - form_data_assign_count["j2"] = 3;  
6574 - }  
6575 - if (new_s1) {  
6576 - form_data_assign_count["s1"] = 2;  
6577 - } else {  
6578 - form_data_assign_count["s1"] = 3;  
6579 - }  
6580 - if (new_s2) {  
6581 - form_data_assign_count["s2"] = 2;  
6582 - } else {  
6583 - form_data_assign_count["s2"] = 3;  
6584 - }  
6585 -  
6586 -  
6587 - for (i = 0; i < addreason.length; i++) { // 调度原因更新  
6588 - if (i > 1) { // 有多个,只更新第一个  
6589 - break;  
6590 - } else {  
6591 - scope[ctrlAs].fd.ddr = addreason[i];  
6592 - }  
6593 - }  
6594 - for (i = 0; i < adddesc.length; i++) {  
6595 - if (i > 1) { // 有多个,只更新第一个  
6596 - break;  
6597 - } else {  
6598 - scope[ctrlAs].fd.ddrdesc = adddesc[i];  
6599 - }  
6600 - }  
6601 - }  
6602 - }  
6603 - );  
6604 - }  
6605 - }  
6606 - }  
6607 - };  
6608 - }  
6609 - ] 5910 +/**
  5911 + * saPlaninfoedit2指令,排班明细编辑控件,用在调度执勤日报的修改功能
  5912 + * name(必须),控件的名字
  5913 + * ds,外部数据源
  5914 + * fd, 表单数据源
  5915 + */
  5916 +angular.module('ScheduleApp').directive(
  5917 + 'saPlaninfoedit2',
  5918 + [
  5919 + function() {
  5920 + return {
  5921 + restrict: 'E',
  5922 + templateUrl: '/pages/scheduleApp/module/common/dts2/scheduleplan/saPlaninfoeditTemplate.html',
  5923 + scope: { // 独立作用域
  5924 + ds: '=ngModel', // 时刻明细数据源头
  5925 + fd: '=formData' // 表单数据源(车辆、驾驶员、售票员信息)
  5926 + },
  5927 + controllerAs: '$saPlanInfoEditCtrl',
  5928 + bindToController: true,
  5929 + controller: function() {
  5930 + //var self = this;
  5931 +
  5932 + },
  5933 +
  5934 + compile: function(tElem, tAttrs) {
  5935 + // 获取属性
  5936 + var $attr_name = tAttrs["name"]; // 控件的名字
  5937 + if (!$attr_name) {
  5938 + throw {msg: "saPlaninfoedit2指令name属性不能为空"};
  5939 + }
  5940 +
  5941 + // 内部controlAs名字
  5942 + var ctrlAs = '$saPlanInfoEditCtrl';
  5943 +
  5944 +
  5945 + // 内部变量,原始车辆,人员数据
  5946 + var old_cl = {}; // key:{车辆id_车辆自编号},value:所在list下标数组
  5947 + var old_j = {}; // key:{驾驶员id_姓名_工号}, value:所在list下标数组
  5948 + var old_s = {}; // key:{售票员id_姓名_工号}, value:所在list下标数组
  5949 + var old_isfb = false; // 是否有分班
  5950 + var old_isfb_index = 0; // 分班开始索引
  5951 + var old_hasJCBC = false; // 是否有进场班次
  5952 + var old_max_fcno = 0; // 最大发车顺序号
  5953 + var old_firstJCBCFcno = 0; // 第一个进场班次发车顺序号
  5954 + var old_half_bcs = 0; // 一般的班次数量
  5955 + var old_ddreason = {}; // key:{调度原因}, value:所在list下标数组
  5956 + var old_dddesc = {}; // key:{调度描述}, value:所在list下标数组
  5957 +
  5958 + // 内部变量,变更的车辆,变更的人员
  5959 + var new_cl1 = undefined; // 新的车辆1(车辆id_车辆自编号)
  5960 + var new_cl2 = undefined; // 新的车辆2(车辆id_车辆自编号)
  5961 + var new_j1 = undefined; // 新的驾驶员1(驾驶员id_姓名_工号)
  5962 + var new_j2 = undefined; // 新的驾驶员2(驾驶员id_姓名_工号)
  5963 + var new_s1 = undefined; // 新的售票员1(售票员id_姓名_工号)
  5964 + var new_s2 = undefined; // 新的售票员2(售票员id_姓名_工号)
  5965 + var new_ddreason = undefined; // 调度原因
  5966 + var new_dddesc = undefined; // 调度描述
  5967 +
  5968 + // 表单值,被赋值的次数
  5969 + var form_data_assign_count = { // 大于1表示已经初始化过了
  5970 + cl1 : -1,
  5971 + cl2 : -1,
  5972 + j1 : -1,
  5973 + j2 : -1,
  5974 + j3 : -1,
  5975 + s1 : -1,
  5976 + s2 : -1,
  5977 + s3 : -1
  5978 + };
  5979 +
  5980 + return {
  5981 + pre: function(scope, element, attr) {
  5982 +
  5983 + },
  5984 + post: function(scope, element, attr) {
  5985 +
  5986 + /**
  5987 + * 刷新调度原因数据。
  5988 + */
  5989 + scope[ctrlAs].$$internal_refresh_dsdata_ddreason = function() {
  5990 + if (new_ddreason) {
  5991 + angular.forEach(scope[ctrlAs].ds, function(obj) {
  5992 + obj.modifyReason = new_ddreason;
  5993 + });
  5994 + } else {
  5995 + // 清空,不使用旧的
  5996 + angular.forEach(old_ddreason, function(value, key) {
  5997 + angular.forEach(value, function(i) {
  5998 + scope[ctrlAs].ds[i].modifyReason = undefined;
  5999 + });
  6000 + });
  6001 + }
  6002 + };
  6003 +
  6004 + /**
  6005 + * 刷新调度描述数据。
  6006 + */
  6007 + scope[ctrlAs].$$internal_refresh_dsdata_dddesc = function() {
  6008 + if (new_dddesc) {
  6009 + angular.forEach(scope[ctrlAs].ds, function(obj) {
  6010 + obj.modifyRemark = new_dddesc;
  6011 + });
  6012 + } else {
  6013 + // 清空,不使用旧的
  6014 + angular.forEach(old_dddesc, function(value, key) {
  6015 + angular.forEach(value, function(i) {
  6016 + scope[ctrlAs].ds[i].modifyRemark = undefined;
  6017 + });
  6018 + });
  6019 + }
  6020 + };
  6021 +
  6022 + /**
  6023 + * 刷新车辆数据。
  6024 + */
  6025 + scope[ctrlAs].$$internal_refresh_dsdata_cl = function() {
  6026 + if (new_cl1) {
  6027 + var new_cl1_id = new_cl1.split("_")[0];
  6028 + var new_cl1_zbh = new_cl1.split("_")[1];
  6029 +
  6030 + if (new_cl2) {
  6031 + var new_cl2_id = new_cl2.split("_")[0];
  6032 + var new_cl2_zbh = new_cl2.split("_")[1];
  6033 +
  6034 + if (old_isfb) { // 使用分班判定
  6035 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  6036 + if (index < old_isfb_index) {
  6037 + obj.cl = new_cl1_id;
  6038 + obj.clZbh = new_cl1_zbh;
  6039 + } else {
  6040 + obj.cl = new_cl2_id;
  6041 + obj.clZbh = new_cl2_zbh;
  6042 + }
  6043 + });
  6044 +
  6045 + } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定
  6046 + angular.forEach(scope[ctrlAs].ds, function(obj) {
  6047 + if (obj.fcno <= old_firstJCBCFcno) {
  6048 + obj.cl = new_cl1_id;
  6049 + obj.clZbh = new_cl1_zbh;
  6050 + } else {
  6051 + obj.cl = new_cl2_id;
  6052 + obj.clZbh = new_cl2_zbh;
  6053 + }
  6054 + });
  6055 + } else { // 使用一半一半班次判定
  6056 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  6057 + if (index < old_half_bcs) {
  6058 + obj.cl = new_cl1_id;
  6059 + obj.clZbh = new_cl1_zbh;
  6060 + } else {
  6061 + obj.cl = new_cl2_id;
  6062 + obj.clZbh = new_cl2_zbh;
  6063 + }
  6064 + });
  6065 + }
  6066 +
  6067 + } else {
  6068 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  6069 + obj.cl = new_cl1_id;
  6070 + obj.clZbh = new_cl1_zbh;
  6071 + });
  6072 + }
  6073 +
  6074 + } else {
  6075 + // 清空,不使用旧的
  6076 + angular.forEach(old_cl, function(value, key) {
  6077 + angular.forEach(value, function(i) {
  6078 + //scope[ctrlAs].ds[i].cl = key.split("_")[0];
  6079 + //scope[ctrlAs].ds[i].clZbh = key.split("_")[1];
  6080 + scope[ctrlAs].ds[i].cl = undefined;
  6081 + scope[ctrlAs].ds[i].clZbh = undefined;
  6082 + });
  6083 + });
  6084 + }
  6085 + };
  6086 +
  6087 + /**
  6088 + * 刷新驾驶员数据。
  6089 + */
  6090 + scope[ctrlAs].$$internal_refresh_dsdata_j = function() {
  6091 + if (new_j1) {
  6092 + var new_j1_id = new_j1.split("_")[0];
  6093 + var new_j1_name = new_j1.split("_")[1];
  6094 + var new_j1_gh = new_j1.split("_")[2];
  6095 + if (new_j1_gh && new_j1_gh.indexOf("-") > 0) {
  6096 + new_j1_gh = new_j1_gh.substr(3); // 修正工号,把 55- 这种前缀去掉
  6097 + }
  6098 +
  6099 + if (new_j2) {
  6100 + var new_j2_id = new_j2.split("_")[0];
  6101 + var new_j2_name = new_j2.split("_")[1];
  6102 + var new_j2_gh = new_j2.split("_")[2];
  6103 + if (new_j2_gh && new_j2_gh.indexOf("-") > 0) {
  6104 + new_j2_gh = new_j2_gh.substr(3); // 修正工号,把 55- 这种前缀去掉
  6105 + }
  6106 +
  6107 + if (old_isfb) { // 使用分班判定
  6108 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  6109 + if (index < old_isfb_index) {
  6110 + obj.j = new_j1_id;
  6111 + obj.jGh = new_j1_gh;
  6112 + obj.jName = new_j1_name;
  6113 + } else {
  6114 + obj.j = new_j2_id;
  6115 + obj.jGh = new_j2_gh;
  6116 + obj.jName = new_j2_name;
  6117 + }
  6118 + });
  6119 +
  6120 + } else if (old_hasJCBC && old_firstJCBCFcno < old_max_fcno) { // 使用进出场判定
  6121 + angular.forEach(scope[ctrlAs].ds, function(obj) {
  6122 + if (obj.fcno <= old_firstJCBCFcno) {
  6123 + obj.j = new_j1_id;
  6124 + obj.jGh = new_j1_gh;
  6125 + obj.jName = new_j1_name;
  6126 + } else {
  6127 + obj.j = new_j2_id;
  6128 + obj.jGh = new_j2_gh;
  6129 + obj.jName = new_j2_name;
  6130 + }
  6131 + });
  6132 + } else { // 使用一半一半班次判定
  6133 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  6134 + if (index < old_half_bcs) {
  6135 + obj.j = new_j1_id;
  6136 + obj.jGh = new_j1_gh;
  6137 + obj.jName = new_j1_name;
  6138 + } else {
  6139 + obj.j = new_j2_id;
  6140 + obj.jGh = new_j2_gh;
  6141 + obj.jName = new_j2_name;
  6142 + }
  6143 + });
  6144 + }
  6145 +
  6146 + } else {
  6147 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  6148 + obj.j = new_j1_id;
  6149 + obj.jGh = new_j1_gh;
  6150 + obj.jName = new_j1_name;
  6151 + });
  6152 + }
  6153 +
  6154 + } else {
  6155 + // 清空,不使用使用旧的
  6156 + angular.forEach(old_j, function(value, key) {
  6157 + angular.forEach(value, function(i) {
  6158 + //scope[ctrlAs].ds[i].j = key.split("_")[0];
  6159 + //scope[ctrlAs].ds[i].jName = key.split("_")[1];
  6160 + //scope[ctrlAs].ds[i].jGh = key.split("_")[2];
  6161 + scope[ctrlAs].ds[i].j = undefined;
  6162 + scope[ctrlAs].ds[i].jName = undefined;
  6163 + scope[ctrlAs].ds[i].jGh = undefined;
  6164 + });
  6165 + });
  6166 + }
  6167 + };
  6168 +
  6169 + /**
  6170 + * 刷新售票员数据(和驾驶员配对的,有驾驶员,才有售票员)。
  6171 + */
  6172 + scope[ctrlAs].$$internal_refresh_dsdata_s = function() {
  6173 + var j_id = undefined;
  6174 + var s_id = undefined;
  6175 + var s_gh = undefined;
  6176 + var s_name = undefined;
  6177 +
  6178 + if (new_j1) {
  6179 + j_id = new_j1.split("_")[0];
  6180 + if (new_s1) {
  6181 + s_id = new_s1.split("_")[0];
  6182 + s_name = new_s1.split("_")[1];
  6183 + s_gh = new_s1.split("_")[2];
  6184 + if (s_gh && s_gh.indexOf("-") > 0) { // 修正工号,把 55- 这种前缀去掉
  6185 + s_gh = s_gh.substr(3);
  6186 + }
  6187 + } else {
  6188 + s_id = undefined;
  6189 + s_gh = undefined;
  6190 + s_name = undefined
  6191 + }
  6192 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  6193 + if (obj.j == j_id) {
  6194 + obj.s = s_id;
  6195 + obj.sGh = s_gh;
  6196 + obj.sName = s_name;
  6197 + }
  6198 + });
  6199 + }
  6200 + if (new_j2) {
  6201 + j_id = new_j2.split("_")[0];
  6202 + if (new_s2) {
  6203 + s_id = new_s2.split("_")[0];
  6204 + s_name = new_s2.split("_")[1];
  6205 + s_gh = new_s2.split("_")[2];
  6206 + if (s_gh && s_gh.indexOf("-") > 0) { // 修正工号,把 55- 这种前缀去掉
  6207 + s_gh = s_gh.substr(3);
  6208 + }
  6209 + } else {
  6210 + s_id = undefined;
  6211 + s_gh = undefined;
  6212 + s_name = undefined
  6213 + }
  6214 +
  6215 + angular.forEach(scope[ctrlAs].ds, function(obj, index) {
  6216 + if (obj.j == j_id) {
  6217 + obj.s = s_id;
  6218 + obj.sGh = s_gh;
  6219 + obj.sName = s_name;
  6220 + }
  6221 + });
  6222 + }
  6223 + };
  6224 +
  6225 + //-------------- 监控调度原因的变化 ----------------//
  6226 + scope.$watch(
  6227 + function() {
  6228 + return scope[ctrlAs].fd.ddr;
  6229 + },
  6230 + function(newValue, oldValue) {
  6231 + if (newValue || newValue == 0) {
  6232 + new_ddreason = newValue;
  6233 + }
  6234 + scope[ctrlAs].$$internal_refresh_dsdata_ddreason();
  6235 + },
  6236 + true
  6237 + );
  6238 +
  6239 + //-------------- 监控调度描述的变化 ----------------//
  6240 + scope.$watch(
  6241 + function() {
  6242 + return scope[ctrlAs].fd.ddrdesc;
  6243 + },
  6244 + function(newValue, oldValue) {
  6245 + if (newValue || newValue == 0) {
  6246 + new_dddesc = newValue;
  6247 + }
  6248 + scope[ctrlAs].$$internal_refresh_dsdata_dddesc();
  6249 + },
  6250 + true
  6251 + );
  6252 +
  6253 +
  6254 + //-------------- 监控表单车辆1的变化 ----------------//
  6255 + scope.$watch(
  6256 + function() {
  6257 + return scope[ctrlAs].fd.cl1;
  6258 + },
  6259 + function(newValue, oldValue) {
  6260 + if (form_data_assign_count.cl1 > 2) {
  6261 + if (newValue.id) {
  6262 + if (newValue.id && newValue.zbh) {
  6263 + new_cl1 = newValue.id + "_" + newValue.zbh;
  6264 + } else {
  6265 + new_cl1 = undefined;
  6266 + }
  6267 + } else {
  6268 + new_cl1 = undefined;
  6269 + }
  6270 + scope[ctrlAs].$$internal_refresh_dsdata_cl();
  6271 + }
  6272 +
  6273 + form_data_assign_count.cl1 ++;
  6274 + },
  6275 + true
  6276 + );
  6277 +
  6278 + //-------------- 监控表单车辆2的变化 ----------------//
  6279 + scope.$watch(
  6280 + function() {
  6281 + return scope[ctrlAs].fd.cl2;
  6282 + },
  6283 + function(newValue, oldValue) {
  6284 + if (form_data_assign_count.cl2 > 2) {
  6285 + if (newValue.id) {
  6286 + if (newValue.id && newValue.zbh) {
  6287 + new_cl2 = newValue.id + "_" + newValue.zbh;
  6288 + } else {
  6289 + new_cl2 = undefined;
  6290 + }
  6291 + } else {
  6292 + new_cl2 = undefined;
  6293 + }
  6294 + scope[ctrlAs].$$internal_refresh_dsdata_cl();
  6295 + }
  6296 +
  6297 + form_data_assign_count.cl2 ++;
  6298 + },
  6299 + true
  6300 + );
  6301 +
  6302 + //-------------- 监控表单驾驶员1的变化 ----------------//
  6303 + scope.$watch(
  6304 + function() {
  6305 + return scope[ctrlAs].fd.j1;
  6306 + },
  6307 + function(newValue, oldValue) {
  6308 + if (form_data_assign_count.j1 > 2) {
  6309 + if (newValue.id) {
  6310 + if (newValue.id && newValue.name && newValue.jobCode) {
  6311 + new_j1 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode;
  6312 + } else {
  6313 + new_j1 = undefined;
  6314 + }
  6315 + } else {
  6316 + new_j1 = undefined;
  6317 + }
  6318 +
  6319 + scope[ctrlAs].$$internal_refresh_dsdata_j();
  6320 + scope[ctrlAs].$$internal_refresh_dsdata_s();
  6321 + }
  6322 +
  6323 + form_data_assign_count.j1 ++;
  6324 + },
  6325 + true
  6326 + );
  6327 +
  6328 + //-------------- 监控表单售票员1的变化 ----------------//
  6329 + scope.$watch(
  6330 + function() {
  6331 + return scope[ctrlAs].fd.s1;
  6332 + },
  6333 + function(newValue, oldValue) {
  6334 + if (form_data_assign_count.s1 > 2) {
  6335 + if (newValue.id) {
  6336 + if (newValue.id && newValue.name && newValue.jobCode) {
  6337 + new_s1 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode;
  6338 + } else {
  6339 + new_s1 = undefined;
  6340 + }
  6341 + } else {
  6342 + new_s1 = undefined;
  6343 + }
  6344 +
  6345 + scope[ctrlAs].$$internal_refresh_dsdata_j();
  6346 + scope[ctrlAs].$$internal_refresh_dsdata_s();
  6347 + }
  6348 +
  6349 + form_data_assign_count.s1 ++;
  6350 + },
  6351 + true
  6352 + );
  6353 +
  6354 + //-------------- 监控表单驾驶员2的变化 ----------------//
  6355 + scope.$watch(
  6356 + function() {
  6357 + return scope[ctrlAs].fd.j2;
  6358 + },
  6359 + function(newValue, oldValue) {
  6360 + if (form_data_assign_count.j2 > 2) {
  6361 + if (newValue.id) {
  6362 + if (newValue.id && newValue.name && newValue.jobCode) {
  6363 + new_j2 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode;
  6364 + } else {
  6365 + new_j2 = undefined;
  6366 + }
  6367 + } else {
  6368 + new_j2 = undefined;
  6369 + }
  6370 +
  6371 + scope[ctrlAs].$$internal_refresh_dsdata_j();
  6372 + scope[ctrlAs].$$internal_refresh_dsdata_s();
  6373 + }
  6374 +
  6375 + form_data_assign_count.j2 ++;
  6376 + },
  6377 + true
  6378 + );
  6379 +
  6380 + //-------------- 监控表单售票员2的变化 ----------------//
  6381 + scope.$watch(
  6382 + function() {
  6383 + return scope[ctrlAs].fd.s2;
  6384 + },
  6385 + function(newValue, oldValue) {
  6386 + if (form_data_assign_count.s2 > 2) {
  6387 + if (newValue && newValue.id) {
  6388 + if (newValue.id && newValue.name && newValue.jobCode) {
  6389 + new_s2 = newValue.id + "_" + newValue.name + "_" + newValue.jobCode;
  6390 + } else {
  6391 + new_s2 = undefined;
  6392 + }
  6393 + } else {
  6394 + new_s2 = undefined;
  6395 + }
  6396 +
  6397 + scope[ctrlAs].$$internal_refresh_dsdata_j();
  6398 + scope[ctrlAs].$$internal_refresh_dsdata_s();
  6399 + }
  6400 +
  6401 + form_data_assign_count.s2 ++;
  6402 + },
  6403 + true
  6404 + );
  6405 +
  6406 + //-------------------- 监控ds的变化,更新数据源,初始化formdata的数据 ---------------//
  6407 + scope.$watch(
  6408 + function() {
  6409 + return scope[ctrlAs].ds;
  6410 + },
  6411 + function(newValue, oldValue) {
  6412 + if (newValue && newValue.length > 0) {
  6413 + var j1 = newValue[0].j;
  6414 +
  6415 + var cl_idFlags = []; // 车辆idFlags数组(有顺序)
  6416 + var j_s_idFlags = []; // 驾驶员idFlags,售票员idFlags,[{j:idFlag,s:idFlag},...](有顺序)
  6417 + var addreason = []; // 营运调度的原因
  6418 + var adddesc = []; // 营运导读的备注
  6419 + var isRepeat = false;
  6420 + var i = 0;
  6421 +
  6422 + angular.forEach(newValue, function(obj, index) {
  6423 + var k1 = obj.cl + "_" + obj.clZbh;
  6424 + var k2 = !obj.j? undefined: obj.j + "_" + obj.jName + "_" + obj.jGh;
  6425 + var k3 = !obj.s? undefined: obj.s + "_" + obj.sName + "_" + obj.sGh;
  6426 +
  6427 + if (!old_cl[k1]) {
  6428 + old_cl[k1] = [];
  6429 + }
  6430 + if (!old_j[k2] && k2) {
  6431 + old_j[k2] = [];
  6432 + }
  6433 + if (!old_s[k3] && k3) {
  6434 + old_s[k3] = [];
  6435 + }
  6436 +
  6437 + var dd4 = obj.modifyReason == null || obj.modifyReason == undefined ? undefined :
  6438 + obj.modifyReason;
  6439 + var dd5 = obj.modifyRemark == null || obj.modifyRemark == undefined ? undefined :
  6440 + obj.modifyRemark;
  6441 +
  6442 + if (!old_ddreason[dd4] && dd4) {
  6443 + old_ddreason[dd4] = [];
  6444 + }
  6445 + if (!old_dddesc[dd5] && dd5) {
  6446 + old_dddesc[dd5] = [];
  6447 + }
  6448 +
  6449 + // 闭包
  6450 + (function(i) {
  6451 + old_cl[k1].push(i);
  6452 + if (k2) {
  6453 + old_j[k2].push(i);
  6454 + }
  6455 + if (k3) {
  6456 + old_s[k3].push(i);
  6457 + }
  6458 + if (dd4) {
  6459 + old_ddreason[dd4].push(i);
  6460 + }
  6461 + if (dd5) {
  6462 + old_dddesc[dd5].push(i);
  6463 + }
  6464 + })(index);
  6465 +
  6466 + // 判断是否分班
  6467 + if (j1 != obj.j && !old_isfb) {
  6468 + old_isfb = true;
  6469 + old_isfb_index = index;
  6470 + }
  6471 +
  6472 + // 判断进出场
  6473 + if (obj.bcType == 'in' && !old_hasJCBC) {
  6474 + old_hasJCBC = true;
  6475 + old_firstJCBCFcno = obj.fcno;
  6476 + }
  6477 +
  6478 + //-------------- formdata用数据处理 -------------//
  6479 + // 车辆处理
  6480 + isRepeat = false;
  6481 + if (obj.cl) {
  6482 + for (i = 0; i < cl_idFlags.length; i++) {
  6483 + if (cl_idFlags[i] == (obj.cl + "_" + obj.clZbh)) {
  6484 + isRepeat = true;
  6485 + break;
  6486 + }
  6487 + }
  6488 + if (!isRepeat) {
  6489 + cl_idFlags.push(obj.cl + "_" + obj.clZbh);
  6490 + }
  6491 + }
  6492 +
  6493 + // 人员处理(以驾驶员id为主,没有的话,售票员不管了)
  6494 + isRepeat = false;
  6495 + if (obj.j) {
  6496 + for (i = 0; i < j_s_idFlags.length; i++) {
  6497 + if (j_s_idFlags[i].j == (obj.j + "_" + obj.jName + "_" + obj.jGh)) {
  6498 + isRepeat = true;
  6499 + break;
  6500 + }
  6501 + }
  6502 + if (!isRepeat) {
  6503 + j_s_idFlags.push({
  6504 + j: obj.j + "_" + obj.jName + "_" + obj.jGh,
  6505 + s: !obj.s? undefined: (obj.s + "_" + obj.sName + "_" + obj.sGh)
  6506 + });
  6507 + }
  6508 + }
  6509 +
  6510 + // 调度原因处理
  6511 + isRepeat = false;
  6512 + if (obj.modifyReason || obj.modifyReason == 0) {
  6513 + for (i = 0; i < addreason.length; i++) {
  6514 + if (addreason[i] == obj.modifyReason) {
  6515 + isRepeat = true;
  6516 + break;
  6517 + }
  6518 + }
  6519 + if (!isRepeat) {
  6520 + addreason.push(obj.modifyReason);
  6521 + }
  6522 + }
  6523 +
  6524 + // 调整备注处理
  6525 + isRepeat = false;
  6526 + if (obj.modifyRemark && obj.modifyRemark != "") {
  6527 + for (i = 0; i < adddesc.length; i++) {
  6528 + if (adddesc[i] == obj.modifyRemark) {
  6529 + isRepeat = true;
  6530 + break;
  6531 + }
  6532 + }
  6533 + if (!isRepeat) {
  6534 + adddesc.push(obj.modifyRemark);
  6535 + }
  6536 + }
  6537 +
  6538 + });
  6539 +
  6540 + old_max_fcno = newValue[newValue.length - 1].fcno;
  6541 + old_half_bcs = newValue.length / 2;
  6542 +
  6543 + // 更新formdata
  6544 + for (i = 0; i < cl_idFlags.length; i++) { // 车辆更新前两辆
  6545 + if (i == 0) { // 第一组车
  6546 + scope[ctrlAs].fd["cl1"].id = cl_idFlags[i].split("_")[0];
  6547 + new_cl1 = cl_idFlags[i];
  6548 + } else if (i == 1) { // 第二组车
  6549 + scope[ctrlAs].fd["cl2"].id = cl_idFlags[i].split("_")[0];
  6550 + new_cl2 = cl_idFlags[i];
  6551 + } else { // 第三组及以上车全部忽略
  6552 + break;
  6553 + }
  6554 + }
  6555 + for (i = 0; i < j_s_idFlags.length; i++) { // 人员更新
  6556 + if (i == 0) { // 第一组人员
  6557 + scope[ctrlAs].fd["j1"].id = j_s_idFlags[i].j.split("_")[0];
  6558 + scope[ctrlAs].fd["s1"].id = j_s_idFlags[i].s && j_s_idFlags[i].s.split("_")[0];
  6559 + new_j1 = j_s_idFlags[i].j;
  6560 + new_s1 = j_s_idFlags[i].s;
  6561 +
  6562 + } else if (i == 1) { // 第二组人员
  6563 + scope[ctrlAs].fd["j2"].id = j_s_idFlags[i].j.split("_")[0];
  6564 + scope[ctrlAs].fd["s2"].id = j_s_idFlags[i].s && j_s_idFlags[i].s.split("_")[0];
  6565 + new_j2 = j_s_idFlags[i].j;
  6566 + new_s2 = j_s_idFlags[i].s;
  6567 + } else { // 第三组及以上全部忽律
  6568 + break;
  6569 + }
  6570 + }
  6571 + // 更新form_data_assign_count,有值设置成2,没值设置成3,表示已经从ds处初始化完毕
  6572 + if (new_cl1) {
  6573 + form_data_assign_count["cl1"] = 2;
  6574 + } else {
  6575 + form_data_assign_count["cl1"] = 3;
  6576 + }
  6577 + if (new_cl2) {
  6578 + form_data_assign_count["cl2"] = 2;
  6579 + } else {
  6580 + form_data_assign_count["cl2"] = 3;
  6581 + }
  6582 + if (new_j1) {
  6583 + form_data_assign_count["j1"] = 2;
  6584 + } else {
  6585 + form_data_assign_count["j1"] = 3;
  6586 + }
  6587 + if (new_j2) {
  6588 + form_data_assign_count["j2"] = 2;
  6589 + } else {
  6590 + form_data_assign_count["j2"] = 3;
  6591 + }
  6592 + if (new_s1) {
  6593 + form_data_assign_count["s1"] = 2;
  6594 + } else {
  6595 + form_data_assign_count["s1"] = 3;
  6596 + }
  6597 + if (new_s2) {
  6598 + form_data_assign_count["s2"] = 2;
  6599 + } else {
  6600 + form_data_assign_count["s2"] = 3;
  6601 + }
  6602 +
  6603 +
  6604 + for (i = 0; i < addreason.length; i++) { // 调度原因更新
  6605 + if (i > 1) { // 有多个,只更新第一个
  6606 + break;
  6607 + } else {
  6608 + scope[ctrlAs].fd.ddr = addreason[i];
  6609 + }
  6610 + }
  6611 + for (i = 0; i < adddesc.length; i++) {
  6612 + if (i > 1) { // 有多个,只更新第一个
  6613 + break;
  6614 + } else {
  6615 + scope[ctrlAs].fd.ddrdesc = adddesc[i];
  6616 + }
  6617 + }
  6618 + }
  6619 + }
  6620 + );
  6621 + }
  6622 + }
  6623 + }
  6624 + };
  6625 + }
  6626 + ]
6610 ); 6627 );
6611 \ No newline at end of file 6628 \ No newline at end of file
src/main/resources/static/pages/scheduleApp/module/common/prj-common-globalservice.js
@@ -184,96 +184,6 @@ angular.module(&#39;ScheduleApp&#39;).factory( @@ -184,96 +184,6 @@ angular.module(&#39;ScheduleApp&#39;).factory(
184 ] 184 ]
185 ); 185 );
186 186
187 -// 车辆信息同步service  
188 -angular.module('ScheduleApp').factory(  
189 - 'VehicleDataSyncManageService_g',  
190 - [  
191 - '$resource',  
192 - function($resource) {  
193 - return {  
194 - rest: $resource(  
195 - '/dataSync/vehicle/:id',  
196 - {order: 'startDate', direction: 'DESC', id: '@id'},  
197 - {  
198 - list: {  
199 - method: 'GET',  
200 - params: {  
201 - page: 0  
202 - },  
203 - transformResponse: function(rs) {  
204 - var dst = angular.fromJson(rs);  
205 - if (dst.status == 'SUCCESS') {  
206 - return dst.data;  
207 - } else {  
208 - return dst; // 业务错误留给控制器处理  
209 - }  
210 - }  
211 - },  
212 - get: {  
213 - method: 'GET',  
214 - transformResponse: function(rs) {  
215 - var dst = angular.fromJson(rs);  
216 - if (dst.status == 'SUCCESS') {  
217 - return dst.data;  
218 - } else {  
219 - return dst;  
220 - }  
221 - }  
222 - }  
223 - }  
224 - ),  
225 - logFileExport: $resource(  
226 - '/dataSync/vehicle/logfile/:id/:type',  
227 - {id: '@id'},  
228 - {  
229 - getLog: {  
230 - method: 'GET',  
231 - responseType: "arraybuffer",  
232 - transformResponse: function(data, headers, status){  
233 - if (status != 200) {  
234 - return data;  
235 - }  
236 -  
237 - // console.log(headers("Content-Disposition"));  
238 - // 获取文件名,后台根据是否还有中文名字,返回filename=ascii编码的文件名 或 filename*=unicode编码的文件名  
239 - var fileName = headers("Content-Disposition").split(";")[1].split("filename=")[1];  
240 - var fileNameUnicode = headers("Content-Disposition").split("filename*=")[1];  
241 - if (fileNameUnicode) {//当存在 filename* 时,取filename* 并进行解码(为了解决中文乱码问题)  
242 - fileName = decodeURIComponent(fileNameUnicode);  
243 - }  
244 -  
245 - return {fileData : data, fileName: fileName};  
246 - }  
247 - }  
248 - }  
249 - ),  
250 - addTask: $resource(  
251 - '/dataSync/vehicle/addTask',  
252 - {},  
253 - {  
254 - save: {  
255 - method: 'POST'  
256 - }  
257 - }  
258 - ),  
259 - refreshBuffer: $resource(  
260 - '/dataSync/vehicle/refreshBuffer',  
261 - {},  
262 - {  
263 - refresh: {  
264 - method: 'GET',  
265 - transformResponse: function(rs) {  
266 - var dst = angular.fromJson(rs);  
267 - return dst;  
268 - }  
269 - }  
270 - }  
271 - )  
272 - };  
273 - }  
274 - ]  
275 -);  
276 -  
277 // 车辆配置service 187 // 车辆配置service
278 angular.module('ScheduleApp').factory('BusConfigService_g', ['$resource', 'UserPrincipal', function($resource, UserPrincipal) { 188 angular.module('ScheduleApp').factory('BusConfigService_g', ['$resource', 'UserPrincipal', function($resource, UserPrincipal) {
279 return { 189 return {
src/main/resources/static/pages/scheduleApp/module/common/prj-common-ui-route-state.js
@@ -280,63 +280,6 @@ ScheduleApp.config([ @@ -280,63 +280,6 @@ ScheduleApp.config([
280 }) 280 })
281 281
282 }]); 282 }]);
283 -// ui route 配置  
284 -  
285 -/** 车辆信息同步模块route */  
286 -ScheduleApp.config([  
287 - '$stateProvider',  
288 - '$urlRouterProvider',  
289 - function($stateProvider, $urlRouterProvider) {  
290 - $stateProvider  
291 - .state("vehicleDataSyncManage", { // index页面  
292 - url: '/vehicleDataSyncManage',  
293 - views: {  
294 - "": {  
295 - templateUrl: 'pages/scheduleApp/module/basicInfo/vehicleDataSyncManage/index.html'  
296 - },  
297 - "vehicleDataSyncManage_list@vehicleDataSyncManage": {  
298 - templateUrl: 'pages/scheduleApp/module/basicInfo/vehicleDataSyncManage/list.html'  
299 - }  
300 - },  
301 - resolve: {  
302 - deps: ['$ocLazyLoad', function($ocLazyLoad) {  
303 - return $ocLazyLoad.load({  
304 - name: 'vehicleDataSyncManage_module',  
305 - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置  
306 - files: [  
307 - "assets/bower_components/angular-ui-select/dist/select.min.css",  
308 - "assets/bower_components/angular-ui-select/dist/select.min.js",  
309 - "assets/bower_components/angular-file-upload/dist/angular-file-upload.min.js",  
310 - "pages/scheduleApp/module/basicInfo/vehicleDataSyncManage/module.js"  
311 - ]  
312 - });  
313 - }]  
314 - }  
315 - })  
316 - .state("vehicleDataSyncManage_form", { // 添加车辆form  
317 - url: '/vehicleDataSyncManage_form',  
318 - views: {  
319 - "": {templateUrl: 'pages/scheduleApp/module/basicInfo/vehicleDataSyncManage/form.html'}  
320 - },  
321 - resolve: {  
322 - deps: ['$ocLazyLoad', function($ocLazyLoad) {  
323 - return $ocLazyLoad.load({  
324 - name: 'vehicleDataSyncManage_form_module',  
325 - insertBefore: '#ng_load_plugins_before', // 动态载入模块时放置的位置  
326 - files: [  
327 - "assets/bower_components/angular-ui-select/dist/select.min.css",  
328 - "assets/bower_components/angular-ui-select/dist/select.min.js",  
329 - "pages/scheduleApp/module/basicInfo/vehicleDataSyncManage/module.js"  
330 - ]  
331 - });  
332 - }]  
333 - }  
334 - })  
335 -  
336 - }  
337 -]);  
338 -  
339 -  
340 // ui route 配置 283 // ui route 配置
341 284
342 /** 车辆配置模块页面route */ 285 /** 车辆配置模块页面route */