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 2 // 英文资源
3 3  
4 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 48 // 模块位置:../module/basicInfo/busInfoManage
7   - // 页面;index.html
8 49  
  50 + // 页面;index.html
9 51 // line3
10 52 "busInfoManage_index_page-title" : "vehicle information management",
11 53 // line9
... ... @@ -57,11 +99,11 @@ var ScheduleApp_en_language = {
57 99 "busInfoManage_list_page_line142_txt-4257" : "Yes",
58 100 "busInfoManage_list_page_line142_txt-3817" : "Cancel",
59 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 108 // 页面:detail.html
67 109 "busInfoManage_detail_page_line3_txt-1656" : "vehicle details",
... ... @@ -287,8 +329,273 @@ var ScheduleApp_en_language = {
287 329 "busInfoManage_module_js_line434_txt-4009" : "Vehicles",
288 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 2 // 中文资源
3 3  
4 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 49 // 模块位置:../module/basicInfo/busInfoManage
7   - // 页面;index.html
8 50  
  51 + // 页面;index.html
9 52 // line3
10 53 "busInfoManage_index_page-title" : "车辆信息管理",
11 54 // line9
... ... @@ -57,11 +100,11 @@ var ScheduleApp_zh_language = {
57 100 "busInfoManage_list_page_line142_txt-4257" : "是",
58 101 "busInfoManage_list_page_line142_txt-3817" : "取消",
59 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 109 // 页面:detail.html
67 110 "busInfoManage_detail_page_line3_txt-1656" : "车辆详细信息",
... ... @@ -287,6 +330,267 @@ var ScheduleApp_zh_language = {
287 330 "busInfoManage_module_js_line434_txt-4009" : "车辆",
288 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 596 // TODO:
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/list.html
... ... @@ -5,15 +5,15 @@
5 5 <thead>
6 6 <tr role="row" class="heading">
7 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 17 </tr>
18 18 <tr role="row" class="filter">
19 19 <td></td>
... ... @@ -40,6 +40,7 @@
40 40 iterobjexp="item.businessName"
41 41 searchph="{{'busInfoManage_list_page_line41_txt-3364' | translate}}"
42 42 searchexp="this.businessName"
  43 + width="100"
43 44 required
44 45 >
45 46 </sa-Select5>
... ... @@ -55,6 +56,7 @@
55 56 iterobjexp="item.businessName"
56 57 searchph="{{'busInfoManage_list_page_line56_txt-3364' | translate}}"
57 58 searchexp="this.businessName"
  59 + width="100"
58 60 required
59 61 >
60 62 </sa-Select5>
... ... @@ -153,7 +155,7 @@
153 155  
154 156 <div class="pageBar">
155 157 <div class="pageBarLeft"
156   - translate="busInfoManage_list_page_line153_txt-3053"
  158 + translate="busInfoManage_list_page_line156_txt-3053"
157 159 translate-value-from="{{ ctrl.page()['uiFromRecord'] }}"
158 160 translate-value-to="{{ ctrl.page()['uiToRecord'] }}"
159 161 translate-value-total="{{ ctrl.page()['totalElements'] }}">
... ... @@ -166,10 +168,10 @@
166 168 rotate="false"
167 169 max-size="10"
168 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 175 </uib-pagination>
174 176 </div>
175 177 </div>
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/detail.html
1 1 <div class="page-head">
2 2 <div class="page-title">
3   - <h1>$$$$$${txt-847}</h1>
  3 + <h1>{{"deviceInfoManage_detail_page_line3_txt-847" | translate}}</h1>
4 4 </div>
5 5 </div>
6 6  
7 7 <ul class="page-breadcrumb breadcrumb">
8 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 10 <i class="fa fa-circle"></i>
11 11 </li>
12 12 <li>
13   - <span class="active">$$$$$${txt-2398}</span>
  13 + <span class="active">{{"deviceInfoManage_detail_page_line13_txt-2398" | translate}}</span>
14 14 <i class="fa fa-circle"></i>
15 15 </li>
16 16 <li>
17   - <a ui-sref="deviceInfoManage">$$$$$${txt-848}</a>
  17 + <a ui-sref="deviceInfoManage">{{"deviceInfoManage_detail_page_line17_txt-848" | translate}}</a>
18 18 <i class="fa fa-circle"></i>
19 19 </li>
20 20 <li>
21   - <span class="active">$$$$$${txt-847}</span>
  21 + <span class="active">{{"deviceInfoManage_detail_page_line21_txt-847" | translate}}</span>
22 22 </li>
23 23 </ul>
24 24  
... ... @@ -35,28 +35,28 @@
35 35 <form class="form-horizontal" novalidate name="myForm">
36 36 <div class="form-body">
37 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 39 <div class="col-md-3">
40 40 <input type="text" class="form-control" name="clZbh"
41 41 ng-model="ctrl.deviceInfoForDetail.clZbh" readonly/>
42 42 </div>
43 43 </div>
44 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 46 <div class="col-md-3">
47 47 <input type="text" class="form-control" name="xlName"
48 48 ng-model="ctrl.deviceInfoForDetail.xlName" readonly/>
49 49 </div>
50 50 </div>
51 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 53 <div class="col-md-3">
54 54 <input type="text" class="form-control" name="oldDeviceNo"
55 55 ng-model="ctrl.deviceInfoForDetail.oldDeviceNo" readonly/>
56 56 </div>
57 57 </div>
58 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 60 <div class="col-md-3">
61 61 <input type="text" class="form-control" name="newDeviceNo"
62 62 ng-model="ctrl.deviceInfoForDetail.newDeviceNo" readonly/>
... ... @@ -64,14 +64,14 @@
64 64 </div>
65 65  
66 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 68 <div class="col-md-4">
69 69 <input type="text" class="form-control" name="oldSimNo"
70 70 ng-model="ctrl.deviceInfoForDetail.oldSimNo" readonly/>
71 71 </div>
72 72 </div>
73 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 75 <div class="col-md-4">
76 76 <input type="text" class="form-control" name="newSimNo"
77 77 ng-model="ctrl.deviceInfoForDetail.newSimNo" readonly/>
... ... @@ -79,7 +79,7 @@
79 79 </div>
80 80  
81 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 83 <div class="col-md-10">
84 84 <textarea rows="3" class="form-control" name="troubleDesc"
85 85 ng-model="ctrl.deviceInfoForDetail.troubleDesc" readonly></textarea>
... ... @@ -87,7 +87,7 @@
87 87 </div>
88 88  
89 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 91 <div class="col-md-10">
92 92 <textarea rows="3" class="form-control" name="guaranteeDesc"
93 93 ng-model="ctrl.deviceInfoForDetail.guaranteeDesc" readonly></textarea>
... ... @@ -95,7 +95,7 @@
95 95 </div>
96 96  
97 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 99 <div class="col-md-3">
100 100 <input type="text" class="form-control"
101 101 name="qyrq" uib-datepicker-popup="yyyy年MM月dd日 HH:mm"
... ... @@ -109,4 +109,4 @@
109 109 </form>
110 110 </div>
111 111  
112   -</div>
113 112 \ No newline at end of file
  113 +</div>
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/edit.html
1 1 <div class="page-head">
2 2 <div class="page-title">
3   - <h1>$$$$$${txt-845}</h1>
  3 + <h1>{{"deviceInfoManage_edit_page_line3_txt-845" | translate}}</h1>
4 4 </div>
5 5 </div>
6 6  
7 7 <ul class="page-breadcrumb breadcrumb">
8 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 10 <i class="fa fa-circle"></i>
11 11 </li>
12 12 <li>
13   - <span class="active">$$$$$${txt-2398}</span>
  13 + <span class="active">{{"deviceInfoManage_edit_page_line13_txt-2398" | translate}}</span>
14 14 <i class="fa fa-circle"></i>
15 15 </li>
16 16 <li>
17   - <a ui-sref="deviceInfoManage">$$$$$${txt-848}</a>
  17 + <a ui-sref="deviceInfoManage">{{"deviceInfoManage_edit_page_line17_txt-848" | translate}}</a>
18 18 <i class="fa fa-circle"></i>
19 19 </li>
20 20 <li>
21   - <span class="active">$$$$$${txt-836}</span>
  21 + <span class="active">{{"deviceInfoManage_edit_page_line21_txt-836" | translate}}</span>
22 22 </li>
23 23 </ul>
24 24  
... ... @@ -26,7 +26,7 @@
26 26 <div class="portlet-title">
27 27 <div class="caption">
28 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 30 </div>
31 31 </div>
32 32  
... ... @@ -35,7 +35,7 @@
35 35 <div class="form-body">
36 36  
37 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 39 <div class="col-md-3">
40 40 <sa-Select5 name="xl"
41 41 model="ctrl.deviceInfoForSave"
... ... @@ -45,19 +45,19 @@
45 45 dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}"
46 46 iterobjname="item"
47 47 iterobjexp="item.name"
48   - searchph="$$$$$${txt-3364}"
  48 + searchph="{{'deviceInfoManage_edit_page_line48_txt-3364' | translate}}"
49 49 searchexp="this.name"
50 50 required >
51 51 </sa-Select5>
52 52 </div>
53 53 <!-- 隐藏块,显示验证信息 -->
54 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 56 </div>
57 57 </div>
58 58  
59 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 61 <div class="col-md-3">
62 62 <sa-Select5 name="cl"
63 63 model="ctrl.deviceInfoForSave"
... ... @@ -68,19 +68,19 @@
68 68 dsparamsextra="{'type':'all', 'isCancel_eq': false}"
69 69 iterobjname="item"
70 70 iterobjexp="item.cl.insideCode + '<' + item.xl.name + '>'"
71   - searchph="$$$$$${txt-3364}"
  71 + searchph="{{'deviceInfoManage_edit_page_line71_txt-3364' | translate}}"
72 72 searchexp="this.cl.insideCode + '<' + this.xl.name + '>'"
73 73 required >
74 74 </sa-Select5>
75 75 </div>
76 76 <!-- 隐藏块,显示验证信息 -->
77 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 79 </div>
80 80 </div>
81 81  
82 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 84 <div class="col-md-3">
85 85 <input type="text" class="form-control" name="oldDeviceNo"
86 86 ng-model="ctrl.deviceInfoForSave.oldDeviceNo" readonly/>
... ... @@ -88,18 +88,18 @@
88 88 </div>
89 89  
90 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 92 <div class="col-md-3">
93 93 <input type="text" class="form-control"
94 94 name="newDeviceNo" ng-model="ctrl.deviceInfoForSave.newDeviceNo"
95 95 remote-Validation
96 96 remotevtype="cars_sbbh"
97 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 99 </div>
100 100 <!-- 隐藏块,显示验证信息 -->
101 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 103 </div>
104 104 <div class="alert alert-danger well-sm" ng-show="myForm.newDeviceNo.$error.remote">
105 105 {{$remote_msg}}
... ... @@ -107,23 +107,23 @@
107 107 </div>
108 108  
109 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 111 <div class="col-md-4">
112 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 114 </div>
115 115 </div>
116 116  
117 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 119 <div class="col-md-4">
120 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 122 </div>
123 123 </div>
124 124  
125 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 127 <div class="col-md-10">
128 128 <textarea rows="3" class="form-control" name="descriptions"
129 129 ng-model="ctrl.deviceInfoForSave.troubleDesc"></textarea>
... ... @@ -131,7 +131,7 @@
131 131 </div>
132 132  
133 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 135 <div class="col-md-10">
136 136 <textarea rows="3" class="form-control" name="descriptions"
137 137 ng-model="ctrl.deviceInfoForSave.guaranteeDesc"></textarea>
... ... @@ -167,7 +167,7 @@
167 167 <!--</div>-->
168 168  
169 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 171 <div class="col-md-3">
172 172 <div class="input-group">
173 173 <input type="datetime-local" class="form-control" name="qyrq"
... ... @@ -180,7 +180,7 @@
180 180 </div>
181 181 <!-- 隐藏块,显示验证信息 -->
182 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 184 </div>
185 185 <div class="alert alert-danger well-sm" ng-show="myForm.qyrq.$error.remote">
186 186 {{$remote_msg}}
... ... @@ -194,12 +194,12 @@
194 194 <div class="form-actions">
195 195 <div class="row">
196 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 199 </div>
200 200 </div>
201 201 </div>
202 202 </form>
203 203 </div>
204 204  
205   -</div>
206 205 \ No newline at end of file
  206 +</div>
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/form.html
1 1 <div class="page-head">
2 2 <div class="page-title">
3   - <h1>$$$$$${txt-845}</h1>
  3 + <h1>{{"deviceInfoManage_form_page_line3_txt-845" | translate}}</h1>
4 4 </div>
5 5 </div>
6 6  
7 7 <ul class="page-breadcrumb breadcrumb">
8 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 10 <i class="fa fa-circle"></i>
11 11 </li>
12 12 <li>
13   - <span class="active">$$$$$${txt-2398}</span>
  13 + <span class="active">{{"deviceInfoManage_form_page_line13_txt-2398" | translate}}</span>
14 14 <i class="fa fa-circle"></i>
15 15 </li>
16 16 <li>
17   - <a ui-sref="deviceInfoManage">$$$$$${txt-848}</a>
  17 + <a ui-sref="deviceInfoManage">{{"deviceInfoManage_form_page_line17_txt-848" | translate}}</a>
18 18 <i class="fa fa-circle"></i>
19 19 </li>
20 20 <li>
21   - <span class="active">$$$$$${txt-845}</span>
  21 + <span class="active">{{"deviceInfoManage_form_page_line21_txt-845" | translate}}</span>
22 22 </li>
23 23 </ul>
24 24  
... ... @@ -26,7 +26,7 @@
26 26 <div class="portlet-title">
27 27 <div class="caption">
28 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 30 </div>
31 31 </div>
32 32  
... ... @@ -35,7 +35,7 @@
35 35 <div class="form-body">
36 36  
37 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 39 <div class="col-md-3">
40 40 <sa-Select5 name="xl"
41 41 model="ctrl.deviceInfoForSave"
... ... @@ -45,19 +45,19 @@
45 45 dsparams="{{ {type: 'ajax', param:{type: 'all', 'destroy_eq': 0}, atype:'xl' } | json }}"
46 46 iterobjname="item"
47 47 iterobjexp="item.name"
48   - searchph="$$$$$${txt-3364}"
  48 + searchph="{{'deviceInfoManage_form_page_line48_txt-3364' | translate}}"
49 49 searchexp="this.name"
50 50 required >
51 51 </sa-Select5>
52 52 </div>
53 53 <!-- 隐藏块,显示验证信息 -->
54 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 56 </div>
57 57 </div>
58 58  
59 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 61 <div class="col-md-3">
62 62 <sa-Select5 name="cl"
63 63 model="ctrl.deviceInfoForSave"
... ... @@ -68,19 +68,19 @@
68 68 dsparamsextra="{'type':'all', 'isCancel_eq': false}"
69 69 iterobjname="item"
70 70 iterobjexp="item.cl.insideCode + '<' + item.xl.name + '>'"
71   - searchph="$$$$$${txt-3364}"
  71 + searchph="{{'deviceInfoManage_form_page_line71_txt-3364' | translate}}"
72 72 searchexp="this.cl.insideCode + '<' + this.xl.name + '>'"
73 73 required >
74 74 </sa-Select5>
75 75 </div>
76 76 <!-- 隐藏块,显示验证信息 -->
77 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 79 </div>
80 80 </div>
81 81  
82 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 84 <div class="col-md-3">
85 85 <input type="text" class="form-control" name="oldDeviceNo"
86 86 ng-model="ctrl.deviceInfoForSave.oldDeviceNo" readonly/>
... ... @@ -88,18 +88,18 @@
88 88 </div>
89 89  
90 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 92 <div class="col-md-3">
93 93 <input type="text" class="form-control"
94 94 name="newDeviceNo" ng-model="ctrl.deviceInfoForSave.newDeviceNo"
95 95 remote-Validation
96 96 remotevtype="cars_sbbh"
97 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 99 </div>
100 100 <!-- 隐藏块,显示验证信息 -->
101 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 103 </div>
104 104 <div class="alert alert-danger well-sm" ng-show="myForm.newDeviceNo.$error.remote">
105 105 {{$remote_msg}}
... ... @@ -107,23 +107,23 @@
107 107 </div>
108 108  
109 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 111 <div class="col-md-4">
112 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 114 </div>
115 115 </div>
116 116  
117 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 119 <div class="col-md-4">
120 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 122 </div>
123 123 </div>
124 124  
125 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 127 <div class="col-md-10">
128 128 <textarea rows="3" class="form-control" name="descriptions"
129 129 ng-model="ctrl.deviceInfoForSave.troubleDesc"></textarea>
... ... @@ -131,7 +131,7 @@
131 131 </div>
132 132  
133 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 135 <div class="col-md-10">
136 136 <textarea rows="3" class="form-control" name="descriptions"
137 137 ng-model="ctrl.deviceInfoForSave.guaranteeDesc"></textarea>
... ... @@ -194,12 +194,12 @@
194 194 <div class="form-actions">
195 195 <div class="row">
196 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 199 </div>
200 200 </div>
201 201 </div>
202 202 </form>
203 203 </div>
204 204  
205   -</div>
206 205 \ No newline at end of file
  206 +</div>
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/index.html
1 1 <div class="page-head">
2 2 <div class="page-title">
3   - <h1>$$$$$${txt-848}</h1>
  3 + <h1>{{"deviceInfoManage_index_page_line3_txt-848" | translate}}</h1>
4 4 </div>
5 5 </div>
6 6  
7 7 <ul class="page-breadcrumb breadcrumb">
8 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 10 <i class="fa fa-circle"></i>
11 11 </li>
12 12 <li>
13   - <span class="active">$$$$$${txt-2398}</span>
  13 + <span class="active">{{"deviceInfoManage_index_page_line13_txt-2398" | translate}}</span>
14 14 <i class="fa fa-circle"></i>
15 15 </li>
16 16 <li>
17   - <span class="active">$$$$$${txt-848}</span>
  17 + <span class="active">{{"deviceInfoManage_index_page_line17_txt-848" | translate}}</span>
18 18 </li>
19 19 </ul>
20 20  
... ... @@ -24,12 +24,12 @@
24 24 <div class="portlet-title">
25 25 <div class="caption font-dark">
26 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 28 </div>
29 29 <div class="actions">
30 30 <a href="javascript:" class="btn blue" ng-click="ctrl.goForm()">
31 31 <i class="fa fa-plus"></i>
32   - $$$$$${txt-1791}
  32 + {{"deviceInfoManage_index_page_line32_txt-1791" | translate}}
33 33 </a>
34 34  
35 35 <!--<div class="btn-group">-->
... ... @@ -55,4 +55,4 @@
55 55 </div>
56 56 </div>
57 57 </div>
58   -</div>
59 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 10 </style>
11 11  
12 12  
13   - <div style="width: 100%; height: 100%; overflow: auto">
  13 + <div class="fixDiv">
14 14 <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column">
15 15 <thead>
16 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 26 </tr>
27 27 <tr role="row" class="filter">
28 28 <td></td>
... ... @@ -35,13 +35,14 @@
35 35 dsparams="{{ {type: 'ajax', param:{type: 'all'}, atype:'xl' } | json }}"
36 36 iterobjname="item"
37 37 iterobjexp="item.name"
38   - searchph="$$$$$${txt-3364}"
  38 + searchph="{{'deviceInfoManage_list_page_line38_txt-3364' | translate}}"
39 39 searchexp="this.name"
  40 + width="140"
40 41 required >
41 42 </sa-Select5>
42 43 </td>
43 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 46 </td>
46 47 <td></td>
47 48 <td></td>
... ... @@ -49,14 +50,14 @@
49 50 <td></td>
50 51 <td>
51 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 54 </label>
54 55 </td>
55 56 <td>
56 57 <div class="btn-group">
57 58 <button class="btn btn-sm green btn-outline filter-submit margin-bottom" style="margin-right: 0;"
58 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 61 <button class="btn btn-sm green btn-outline filter-submit margin-bottom dropdown-toggle"
61 62 data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
62 63 <span class="caret"></span>
... ... @@ -66,7 +67,7 @@
66 67 <li>
67 68 <a href="javascript:" class="tool-action" ng-click="ctrl.customOrder()">
68 69 <i class="fa fa-sort-amount-asc" aria-hidden="true"></i>
69   - $$$$$${txt-3385}
  70 + {{"deviceInfoManage_list_page_line69_txt-3385" | translate}}
70 71 </a>
71 72 </li>
72 73 </ul>
... ... @@ -74,7 +75,7 @@
74 75  
75 76 <button class="btn btn-sm red btn-outline filter-cancel"
76 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 79 </td>
79 80  
80 81 </tr>
... ... @@ -119,12 +120,12 @@
119 120  
120 121 </td>
121 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 124 </td>
124 125 <td>
125 126 <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>-->
126 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 129 <!--<a ui-sref="deviceInfoManage_edit({id: info.id})" class="btn btn-info btn-sm" ng-if="info.isCancel == '0'"> 修改 </a>-->
129 130 <!--<a sweetalert-->
130 131 <!--sweet-options="{title: '是否作废车辆设备历史信息?',text: '内部编号:' + info.clZbh, html: true,type: 'warning',showCancelButton: true,confirmButtonColor: '#DD6B55',confirmButtonText: '是',cancelButtonText: '取消'}"-->
... ... @@ -140,8 +141,11 @@
140 141 </div>
141 142  
142 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 149 </div>
146 150  
147 151 <div class="pageBarRight">
... ... @@ -151,10 +155,10 @@
151 155 rotate="false"
152 156 max-size="10"
153 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 162 </uib-pagination>
159 163 </div>
160 164 </div>
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/module.js
... ... @@ -5,7 +5,8 @@ angular.module(&#39;ScheduleApp&#39;).factory(
5 5 [
6 6 'DeviceInfoManageService_g',
7 7 'UserPrincipal',
8   - function(service, UserPrincipal) {
  8 + '$translate',
  9 + function(service, UserPrincipal, translate) {
9 10 /** 当前的查询条件信息 */
10 11 var currentSearchCondition = {'isCancel_eq': false};
11 12  
... ... @@ -22,11 +23,11 @@ angular.module(&#39;ScheduleApp&#39;).factory(
22 23  
23 24 // 字段描述
24 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 33 var orderColumns = {
... ... @@ -117,7 +118,8 @@ angular.module(&#39;ScheduleApp&#39;).controller(
117 118 [
118 119 'DeviceInfoManageService',
119 120 '$uibModal',
120   - function(service, $uibModal) {
  121 + '$translate',
  122 + function(service, $uibModal, translate) {
121 123 var self = this;
122 124 var CarDevice = service.getQueryClass();
123 125  
... ... @@ -143,7 +145,7 @@ angular.module(&#39;ScheduleApp&#39;).controller(
143 145 self.toggleCarDevice = function(id) {
144 146 CarDevice.delete({id: id}, function(result) {
145 147 if (result.msg) { // 暂时这样做,之后全局拦截
146   - alert(i18n('txt-3729') + result.msg);
  148 + alert(translate.instant("deviceInfoManage_module_js_line148_txt-3729") + result.msg);
147 149 } else {
148 150 self.doPage();
149 151 }
... ... @@ -252,7 +254,8 @@ angular.module(&#39;ScheduleApp&#39;).controller(
252 254 [
253 255 'DeviceInfoManageService',
254 256 '$stateParams',
255   - function(service, $stateParams) {
  257 + '$translate',
  258 + function(service, $stateParams, translate) {
256 259 var self = this;
257 260 var CarDevice = service.getQueryClass();
258 261 var id = $stateParams.id;
... ... @@ -263,9 +266,9 @@ angular.module(&#39;ScheduleApp&#39;).controller(
263 266 // 当转向到此页面时,就获取明细信息并绑定
264 267 CarDevice.get({id: id}, function(value) {
265 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 274 \ No newline at end of file
  275 +);
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/orderOptionOpen.html
... ... @@ -2,7 +2,7 @@
2 2 <div class="modal-title">
3 3 <h3>
4 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 6 </h3>
7 7 </div>
8 8 </div>
... ... @@ -14,5 +14,5 @@
14 14 </sa-Orderoption>
15 15 </div>
16 16 <div class="modal-footer">
17   - <button class="btn btn-primary" ng-click="$ctrl.confirm($ctrl.orderColumns)">$$$$$${txt-4018}</button>
18   -</div>
19 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 1 <div class="page-head">
2 2 <div class="page-title">
3   - <h1>$$$$$${txt-1650}</h1>
  3 + <h1>{{"employeeInfoManage_detail_page_line3_txt-1650" | translate}}</h1>
4 4 </div>
5 5 </div>
6 6  
7 7 <ul class="page-breadcrumb breadcrumb">
8 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 10 <i class="fa fa-circle"></i>
11 11 </li>
12 12 <li>
13   - <span class="active">$$$$$${txt-2398}</span>
  13 + <span class="active">{{"employeeInfoManage_detail_page_line13_txt-2398" | translate}}</span>
14 14 <i class="fa fa-circle"></i>
15 15 </li>
16 16 <li>
17   - <a ui-sref="employeeInfoManage">$$$$$${txt-1658}</a>
  17 + <a ui-sref="employeeInfoManage">{{"employeeInfoManage_detail_page_line17_txt-1658" | translate}}</a>
18 18 <i class="fa fa-circle"></i>
19 19 </li>
20 20 <li>
21   - <span class="active">$$$$$${txt-1650}</span>
  21 + <span class="active">{{"employeeInfoManage_detail_page_line21_txt-1650" | translate}}</span>
22 22 </li>
23 23 </ul>
24 24  
... ... @@ -35,58 +35,58 @@
35 35 <form class="form-horizontal" novalidate name="myForm">
36 36 <div class="form-body">
37 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 39 <div class="col-md-3">
40 40 <input type="text" class="form-control" name="company"
41 41 ng-model="ctrl.employeeInfoForDetail.company" readonly/>
42 42 </div>
43 43 </div>
44 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 46 <div class="col-md-3">
47 47 <input type="text" class="form-control" name="brancheCompany"
48 48 ng-model="ctrl.employeeInfoForDetail.brancheCompany" readonly/>
49 49 </div>
50 50 </div>
51 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 53 <div class="col-md-3">
54 54 <input type="text" class="form-control" name="jobCode"
55 55 ng-model="ctrl.employeeInfoForDetail.jobCode" readonly/>
56 56 </div>
57 57 </div>
58 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 60 <div class="col-md-3">
61 61 <input type="text" class="form-control" name="personnelName"
62 62 ng-model="ctrl.employeeInfoForDetail.personnelName" readonly/>
63 63 </div>
64 64 </div>
65 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 67 <div class="col-md-4">
68 68 <input type="text" class="form-control" name="papersCode"
69 69 ng-model="ctrl.employeeInfoForDetail.papersCode" readonly/>
70 70 </div>
71 71 </div>
72 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 74 <div class="col-md-4">
75 75 <input type="text" class="form-control" name="icCardCode"
76 76 ng-model="ctrl.employeeInfoForDetail.icCardCode" readonly/>
77 77 </div>
78 78 </div>
79 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 81 <div class="col-md-4">
82 82 <sa-Radiogroup model="ctrl.employeeInfoForDetail.personnelType" disabled="true" dicgroup="sexType" name="personnelType"></sa-Radiogroup>
83 83 </div>
84 84 </div>
85 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 87 <div class="col-md-4">
88 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 90 </div>
91 91 </div>
92 92  
... ... @@ -96,4 +96,4 @@
96 96 </form>
97 97 </div>
98 98  
99   -</div>
100 99 \ No newline at end of file
  100 +</div>
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/edit.html
1 1 <div class="page-head">
2 2 <div class="page-title">
3   - <h1>$$$$$${txt-1643}</h1>
  3 + <h1>{{"employeeInfoManage_edit_page_line3_txt-1643" | translate}}</h1>
4 4 </div>
5 5 </div>
6 6  
7 7 <ul class="page-breadcrumb breadcrumb">
8 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 10 <i class="fa fa-circle"></i>
11 11 </li>
12 12 <li>
13   - <span class="active">$$$$$${txt-2398}</span>
  13 + <span class="active">{{"employeeInfoManage_edit_page_line13_txt-2398" | translate}}</span>
14 14 <i class="fa fa-circle"></i>
15 15 </li>
16 16 <li>
17   - <a ui-sref="employeeInfoManage">$$$$$${txt-1658}</a>
  17 + <a ui-sref="employeeInfoManage">{{"employeeInfoManage_edit_page_line17_txt-1658" | translate}}</a>
18 18 <i class="fa fa-circle"></i>
19 19 </li>
20 20 <li>
21   - <span class="active">$$$$$${txt-1643}</span>
  21 + <span class="active">{{"employeeInfoManage_edit_page_line21_txt-1643" | translate}}</span>
22 22 </li>
23 23 </ul>
24 24  
... ... @@ -26,7 +26,7 @@
26 26 <div class="portlet-title">
27 27 <div class="caption">
28 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 30 </div>
31 31 </div>
32 32  
... ... @@ -34,7 +34,7 @@
34 34 <form ng-submit="ctrl.submit()" class="form-horizontal" novalidate name="myForm">
35 35 <div class="form-body">
36 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 38 <div class="col-md-3">
39 39 <sa-Select5 name="gs"
40 40 model="ctrl.employeeInfoForSave"
... ... @@ -44,7 +44,7 @@
44 44 dsparams="{{ {type: 'ajax', param:{'upCode_eq': '88' }, atype:'gs' } | json }}"
45 45 iterobjname="item"
46 46 iterobjexp="item.businessName"
47   - searchph="$$$$$${txt-973}"
  47 + searchph="{{'employeeInfoManage_edit_page_line47_txt-973' | translate}}"
48 48 searchexp="this.businessName"
49 49 required
50 50 >
... ... @@ -52,12 +52,12 @@
52 52 </div>
53 53 <!-- 隐藏块,显示验证信息 -->
54 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 56 </div>
57 57 </div>
58 58  
59 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 61 <div class="col-md-3">
62 62 <sa-Select5 name="fgs"
63 63 model="ctrl.employeeInfoForSave"
... ... @@ -67,33 +67,32 @@
67 67 dsparams="{{ {type: 'ajax', param:{'upCode_eq': ctrl.employeeInfoForSave.companyCode }, atype:'gs' } | json }}"
68 68 iterobjname="item"
69 69 iterobjexp="item.businessName"
70   - searchph="$$$$$${txt-973}"
  70 + searchph="{{'employeeInfoManage_edit_page_line70_txt-973' | translate}}"
71 71 searchexp="this.businessName"
72 72 required
73 73 >
74 74 </sa-Select5>
75 75  
76 76 </div>
77   -
78 77 <!-- 隐藏块,显示验证信息 -->
79 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 80 </div>
82 81 </div>
83 82  
84 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 85 <div class="col-md-3">
87 86 <input type="text" class="form-control"
88 87 name="jobCode" ng-model="ctrl.employeeInfoForSave.jobCodeori"
89   - required placeholder="$$$$$${txt-2346}"
  88 + required placeholder="{{'employeeInfoManage_edit_page_line88_txt-2346' | translate}}"
90 89 remote-Validation
91 90 remotevtype="ee_gh"
92 91 remotevparam="{{ {'id_eq': ctrl.employeeInfoForSave.id, 'companyCode_eq' : ctrl.employeeInfoForSave.companyCode, 'jobCode_eq': ctrl.employeeInfoForSave.jobCode} | json}}"/>
93 92 </div>
94 93 <!-- 隐藏块,显示验证信息 -->
95 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 96 </div>
98 97 <div class="alert alert-danger well-sm" ng-show="myForm.jobCode.$error.remote">
99 98 {{$remote_msg}}
... ... @@ -101,43 +100,43 @@
101 100 </div>
102 101  
103 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 104 <div class="col-md-3">
106 105 <input type="text" class="form-control"
107 106 name="personnelName" ng-model="ctrl.employeeInfoForSave.personnelName"
108   - required placeholder="$$$$$${txt-2345}"/>
  107 + required placeholder="{{'employeeInfoManage_edit_page_line107_txt-2345' | translate}}"/>
109 108 </div>
110 109 <!-- 隐藏块,显示验证信息 -->
111 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 112 </div>
114 113 </div>
115 114  
116 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 117 <div class="col-md-4">
119 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 120 </div>
122 121 </div>
123 122  
124 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 125 <div class="col-md-4">
127 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 128 </div>
130 129 </div>
131 130  
132 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 133 <div class="col-md-4">
135 134 <sa-Radiogroup model="ctrl.employeeInfoForSave.personnelType" dicgroup="sexType" name="personnelType"></sa-Radiogroup>
136 135 </div>
137 136 </div>
138 137  
139 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 140 <div class="col-md-4">
142 141 <sa-Select5 name="posts"
143 142 model="ctrl.employeeInfoForSave"
... ... @@ -147,7 +146,7 @@
147 146 dsparams="{{ {type: 'dic', param: 'gzType' } | json }}"
148 147 iterobjname="item"
149 148 iterobjexp="item.name"
150   - searchph="$$$$$${txt-3364}"
  149 + searchph="{{'employeeInfoManage_edit_page_line149_txt-3364' | translate}}"
151 150 searchexp="this.name"
152 151 >
153 152 </sa-Select5>
... ... @@ -155,7 +154,7 @@
155 154 </div>
156 155  
157 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 158 <div class="col-md-3">
160 159 <textarea class="form-control"
161 160 ng-model="ctrl.employeeInfoForSave.remark"
... ... @@ -172,8 +171,8 @@
172 171 <div class="form-actions">
173 172 <div class="row">
174 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 176 </div>
178 177 </div>
179 178 </div>
... ... @@ -181,4 +180,4 @@
181 180 </form>
182 181 </div>
183 182  
184   -</div>
185 183 \ No newline at end of file
  184 +</div>
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/form.html
1 1 <div class="page-head">
2 2 <div class="page-title">
3   - <h1>$$$$$${txt-1648}</h1>
  3 + <h1>{{"employeeInfoManage_form_page_line3_txt-1648" | translate}}</h1>
4 4 </div>
5 5 </div>
6 6  
7 7 <ul class="page-breadcrumb breadcrumb">
8 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 10 <i class="fa fa-circle"></i>
11 11 </li>
12 12 <li>
13   - <span class="active">$$$$$${txt-2398}</span>
  13 + <span class="active">{{"employeeInfoManage_form_page_line13_txt-2398" | translate}}</span>
14 14 <i class="fa fa-circle"></i>
15 15 </li>
16 16 <li>
17   - <a ui-sref="employeeInfoManage">$$$$$${txt-1658}</a>
  17 + <a ui-sref="employeeInfoManage">{{"employeeInfoManage_form_page_line17_txt-1658" | translate}}</a>
18 18 <i class="fa fa-circle"></i>
19 19 </li>
20 20 <li>
21   - <span class="active">$$$$$${txt-1648}</span>
  21 + <span class="active">{{"employeeInfoManage_form_page_line21_txt-1648" | translate}}</span>
22 22 </li>
23 23 </ul>
24 24  
... ... @@ -26,7 +26,7 @@
26 26 <div class="portlet-title">
27 27 <div class="caption">
28 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 30 </div>
31 31 </div>
32 32  
... ... @@ -34,7 +34,7 @@
34 34 <form ng-submit="ctrl.submit()" class="form-horizontal" novalidate name="myForm">
35 35 <div class="form-body">
36 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 38 <div class="col-md-3">
39 39 <sa-Select5 name="gs"
40 40 model="ctrl.employeeInfoForSave"
... ... @@ -44,7 +44,7 @@
44 44 dsparams="{{ {type: 'ajax', param:{'upCode_eq': '88' }, atype:'gs' } | json }}"
45 45 iterobjname="item"
46 46 iterobjexp="item.businessName"
47   - searchph="$$$$$${txt-973}"
  47 + searchph="{{'employeeInfoManage_form_page_line47_txt-973' | translate}}"
48 48 searchexp="this.businessName"
49 49 required
50 50 >
... ... @@ -52,12 +52,12 @@
52 52 </div>
53 53 <!-- 隐藏块,显示验证信息 -->
54 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 56 </div>
57 57 </div>
58 58  
59 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 61 <div class="col-md-3">
62 62 <sa-Select5 name="fgs"
63 63 model="ctrl.employeeInfoForSave"
... ... @@ -67,7 +67,7 @@
67 67 dsparams="{{ {type: 'ajax', param:{'upCode_eq': ctrl.employeeInfoForSave.companyCode }, atype:'gs' } | json }}"
68 68 iterobjname="item"
69 69 iterobjexp="item.businessName"
70   - searchph="$$$$$${txt-973}"
  70 + searchph="{{'employeeInfoManage_form_page_line70_txt-973' | translate}}"
71 71 searchexp="this.businessName"
72 72 required
73 73 >
... ... @@ -76,23 +76,23 @@
76 76 </div>
77 77 <!-- 隐藏块,显示验证信息 -->
78 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 80 </div>
81 81 </div>
82 82  
83 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 85 <div class="col-md-3">
86 86 <input type="text" class="form-control"
87 87 name="jobCode" ng-model="ctrl.employeeInfoForSave.jobCodeori"
88   - required placeholder="$$$$$${txt-2346}"
  88 + required placeholder="{{'employeeInfoManage_form_page_line88_txt-2346' | translate}}"
89 89 remote-Validation
90 90 remotevtype="ee_gh"
91 91 remotevparam="{{ {'companyCode_eq' : ctrl.employeeInfoForSave.companyCode, 'jobCode_eq': ctrl.employeeInfoForSave.jobCode} | json}}"/>
92 92 </div>
93 93 <!-- 隐藏块,显示验证信息 -->
94 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 96 </div>
97 97 <div class="alert alert-danger well-sm" ng-show="myForm.jobCode.$error.remote">
98 98 {{$remote_msg}}
... ... @@ -100,43 +100,43 @@
100 100 </div>
101 101  
102 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 104 <div class="col-md-3">
105 105 <input type="text" class="form-control"
106 106 name="personnelName" ng-model="ctrl.employeeInfoForSave.personnelName"
107   - required placeholder="$$$$$${txt-2345}"/>
  107 + required placeholder="{{'employeeInfoManage_form_page_line107_txt-2345' | translate}}"/>
108 108 </div>
109 109 <!-- 隐藏块,显示验证信息 -->
110 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 112 </div>
113 113 </div>
114 114  
115 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 117 <div class="col-md-4">
118 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 120 </div>
121 121 </div>
122 122  
123 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 125 <div class="col-md-4">
126 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 128 </div>
129 129 </div>
130 130  
131 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 133 <div class="col-md-4">
134 134 <sa-Radiogroup model="ctrl.employeeInfoForSave.personnelType" dicgroup="sexType" name="personnelType"></sa-Radiogroup>
135 135 </div>
136 136 </div>
137 137  
138 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 140 <div class="col-md-4">
141 141 <sa-Select5 name="posts"
142 142 model="ctrl.employeeInfoForSave"
... ... @@ -146,7 +146,7 @@
146 146 dsparams="{{ {type: 'dic', param: 'gzType' } | json }}"
147 147 iterobjname="item"
148 148 iterobjexp="item.name"
149   - searchph="$$$$$${txt-3364}"
  149 + searchph="{{'employeeInfoManage_form_page_line149_txt-3364' | translate}}"
150 150 searchexp="this.name"
151 151 >
152 152 </sa-Select5>
... ... @@ -154,7 +154,7 @@
154 154 </div>
155 155  
156 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 158 <div class="col-md-3">
159 159 <textarea class="form-control"
160 160 ng-model="ctrl.employeeInfoForSave.remark"
... ... @@ -171,8 +171,8 @@
171 171 <div class="form-actions">
172 172 <div class="row">
173 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 176 </div>
177 177 </div>
178 178 </div>
... ... @@ -180,4 +180,4 @@
180 180 </form>
181 181 </div>
182 182  
183   -</div>
184 183 \ No newline at end of file
  184 +</div>
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/index.html
1 1 <div class="page-head">
2 2 <div class="page-title">
3   - <h1>$$$$$${txt-1658}</h1>
  3 + <h1>{{"employeeInfoManage_index_page_line3_txt-1658" | translate}}</h1>
4 4 </div>
5 5 </div>
6 6  
7 7 <ul class="page-breadcrumb breadcrumb">
8 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 10 <i class="fa fa-circle"></i>
11 11 </li>
12 12 <li>
13   - <span class="active">$$$$$${txt-2398}</span>
  13 + <span class="active">{{"employeeInfoManage_index_page_line13_txt-2398" | translate}}</span>
14 14 <i class="fa fa-circle"></i>
15 15 </li>
16 16 <li>
17   - <span class="active">$$$$$${txt-1658}</span>
  17 + <span class="active">{{"employeeInfoManage_index_page_line17_txt-1658" | translate}}</span>
18 18 </li>
19 19 </ul>
20 20  
... ... @@ -33,25 +33,25 @@
33 33 <div class="portlet-title">
34 34 <div class="caption font-dark">
35 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 37 </div>
38 38 <div class="actions">
39 39 <a href="javascript:" class="btn blue" ng-click="ctrl.goForm()" ng-if="ctrl.userInfo.getRole().indexOf('_ADMIN') > -1">
40 40 <i class="fa fa-plus"></i>
41   - $$$$$${txt-1648}{{}}
  41 + {{"employeeInfoManage_index_page_line41_txt-1648" | translate}}
42 42 </a>
43 43  
44 44 <div class="btn-group">
45 45 <a href="javascript:" class="btn red btn-outline" data-toggle="dropdown">
46 46 <i class="fa fa-share"></i>
47   - <span>$$$$$${txt-3339}</span>
  47 + <span>{{"employeeInfoManage_index_page_line47_txt-3339" | translate}}</span>
48 48 <i class="fa fa-angle-down"></i>
49 49 </a>
50 50 <ul class="dropdown-menu pull-right">
51 51 <li>
52 52 <a href="javascript:" class="tool-action" ng-click="ctrl.exportData()">
53 53 <i class="fa fa-file-excel-o"></i>
54   - $$$$$${txt-4493}
  54 + {{"employeeInfoManage_index_page_line54_txt-4493" | translate}}
55 55 </a>
56 56 </li>
57 57 <!--<li class="divider"></li>-->
... ... @@ -71,4 +71,4 @@
71 71 </div>
72 72 </div>
73 73 </div>
74   -</div>
75 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 4 <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column">
5 5 <thead>
6 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 18 </tr>
19 19 <tr role="row" class="filter">
20 20 <td>
21 21 </td>
22 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 24 </td>
25 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 27 </td>
28 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 30 </td>
31 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 33 </td>
34 34 <td>
35 35 </td>
... ... @@ -42,8 +42,9 @@
42 42 dsparams="{{ {type: 'ajax', param:{'upCode_eq': '88' }, atype:'gs' } | json }}"
43 43 iterobjname="item"
44 44 iterobjexp="item.businessName"
45   - searchph="$$$$$${txt-3364}"
  45 + searchph="{{'employeeInfoManage_list_page_line45_txt-3364' | translate}}"
46 46 searchexp="this.businessName"
  47 + width="100"
47 48 required
48 49 >
49 50 </sa-Select5>
... ... @@ -57,8 +58,9 @@
57 58 dsparams="{{ {type: 'ajax', param:{'upCode_eq': ctrl.searchCondition().companyCode_eq }, atype:'gs' } | json }}"
58 59 iterobjname="item"
59 60 iterobjexp="item.businessName"
60   - searchph="$$$$$${txt-3364}"
  61 + searchph="{{'employeeInfoManage_list_page_line60_txt-3364' | translate}}"
61 62 searchexp="this.businessName"
  63 + width="100"
62 64 required
63 65 >
64 66 </sa-Select5>
... ... @@ -72,21 +74,22 @@
72 74 dsparams="{{ {type: 'dic', param: 'gzType' } | json }}"
73 75 iterobjname="item"
74 76 iterobjexp="item.name"
75   - searchph="$$$$$${txt-3364}"
  77 + searchph="{{'employeeInfoManage_list_page_line75_txt-3364' | translate}}"
  78 + width="100"
76 79 searchexp="this.name"
77 80 >
78 81 </sa-Select5>
79 82 </td>
80 83 <td>
81 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 86 </label>
84 87 </td>
85 88 <td>
86 89 <div class="btn-group">
87 90 <button class="btn btn-sm green btn-outline filter-submit margin-bottom" style="margin-right: 0;"
88 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 93 <button class="btn btn-sm green btn-outline filter-submit margin-bottom dropdown-toggle"
91 94 data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
92 95 <span class="caret"></span>
... ... @@ -96,7 +99,7 @@
96 99 <li>
97 100 <a href="javascript:" class="tool-action" ng-click="ctrl.customOrder()">
98 101 <i class="fa fa-sort-amount-asc" aria-hidden="true"></i>
99   - $$$$$${txt-3385}
  102 + {{"employeeInfoManage_list_page_line99_txt-3385" | translate}}
100 103 </a>
101 104 </li>
102 105 </ul>
... ... @@ -104,7 +107,7 @@
104 107  
105 108 <button class="btn btn-sm red btn-outline filter-cancel"
106 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 112 </td>
110 113  
... ... @@ -117,7 +120,7 @@
117 120 <a href="#"
118 121 tooltip-animation="false"
119 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 124 tooltip-class="headClass">
122 125  
123 126 <i class="fa fa-list-ol" aria-hidden="true"></i>
... ... @@ -139,7 +142,7 @@
139 142 <span ng-bind="info.jdCodeori"></span>
140 143 </td>
141 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 147 <!--<div ng-if="info.personnelType == '1'">-->
145 148 <!--<a href="#">-->
... ... @@ -160,7 +163,7 @@
160 163 <span ng-bind="info.brancheCompany"></span>
161 164 </td>
162 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 167 </td>
165 168 <td>
166 169 <span class="glyphicon glyphicon-ok" ng-if="info.destroy != '1'"></span>
... ... @@ -168,12 +171,16 @@
168 171 </td>
169 172 <td>
170 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 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 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 184 </td>
178 185 </tr>
179 186 </tbody>
... ... @@ -181,8 +188,11 @@
181 188 </div>
182 189  
183 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 196 </div>
187 197  
188 198 <div class="pageBarRight">
... ... @@ -192,11 +202,11 @@
192 202 rotate="false"
193 203 max-size="10"
194 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 209 </uib-pagination>
200 210 </div>
201 211 </div>
202   -</div>
203 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 5 [
6 6 'EmployeeInfoManageService_g',
7 7 'UserPrincipal',
8   - function(service, UserPrincipal) {
  8 + '$translate',
  9 + function(service, UserPrincipal, translate) {
9 10  
10 11 /** 当前的查询条件信息 */
11 12 var currentSearchCondition = {
... ... @@ -29,12 +30,12 @@ angular.module(&#39;ScheduleApp&#39;).factory(
29 30  
30 31 // 字段描述
31 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 41 var orderColumns = {
... ... @@ -135,7 +136,8 @@ angular.module(&#39;ScheduleApp&#39;).controller(
135 136 '$uibModal',
136 137 'FileDownload_g',
137 138 'UserInfo',
138   - function(employeeInfoManageService, $state, $uibModal, fileDownload, userInfo) {
  139 + '$translate',
  140 + function(employeeInfoManageService, $state, $uibModal, fileDownload, userInfo, translate) {
139 141 var self = this;
140 142  
141 143 self.userInfo = userInfo;
... ... @@ -177,7 +179,7 @@ angular.module(&#39;ScheduleApp&#39;).controller(
177 179 if (p) {
178 180 p.then(
179 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 184 function(result) {
183 185 console.log("exportData failed:" + result);
... ... @@ -248,7 +250,8 @@ angular.module(&#39;ScheduleApp&#39;).controller(
248 250 'EmployeeInfoManageService',
249 251 '$uibModal',
250 252 'UserInfo',
251   - function(service, $uibModal, userInfo) {
  253 + '$translate',
  254 + function(service, $uibModal, userInfo, translate) {
252 255 var self = this;
253 256 self.userInfo = userInfo;
254 257 var Employee = service.getQueryClass();
... ... @@ -280,7 +283,7 @@ angular.module(&#39;ScheduleApp&#39;).controller(
280 283 self.deleteEmp = function(id) {
281 284 Employee.delete({id: id}, function(result) {
282 285 if (result.msg) { // 暂时这样做,之后全局拦截
283   - alert(i18n('txt-3729') + result.msg);
  286 + alert(translate.instant("employeeInfoManage_module_js_line286_txt-3729") + result.msg);
284 287 } else {
285 288 self.doPage();
286 289 }
... ... @@ -394,7 +397,8 @@ angular.module(&#39;ScheduleApp&#39;).controller(
394 397 [
395 398 'EmployeeInfoManageService',
396 399 '$stateParams',
397   - function(service, $stateParams) {
  400 + '$translate',
  401 + function(service, $stateParams, translate) {
398 402 var self = this;
399 403 var Employee = service.getQueryClass();
400 404 var id = $stateParams.id;
... ... @@ -404,9 +408,9 @@ angular.module(&#39;ScheduleApp&#39;).controller(
404 408  
405 409 // 当转向到此页面时,就获取明细信息并绑定
406 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 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 2 <div class="modal-title">
3 3 <h3>
4 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 6 </h3>
7 7 </div>
8 8 </div>
... ... @@ -14,5 +14,5 @@
14 14 </sa-Orderoption>
15 15 </div>
16 16 <div class="modal-footer">
17   - <button class="btn btn-primary" ng-click="$ctrl.confirm($ctrl.orderColumns)">$$$$$${txt-4018}</button>
18   -</div>
19 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 15 *
16 16 * required(可选):是否需要form的required验证
17 17 *
  18 + * width(可选):内部自动计算select框和删除按钮的宽度,并添加对应的style
  19 + *
18 20 */
19 21 angular.module('ScheduleApp').directive('saSelect5', [
20 22 '$timeout',
21 23 '$$SearchInfoService_g',
22 24 'UserPrincipal',
23 25 'DataStore',
24   - function($timeout, $$searchInfoService_g, UserPrincipal, DataStore) {
  26 + '$translate',
  27 + function($timeout, $$searchInfoService_g, UserPrincipal, DataStore, translate) {
25 28 return {
26 29 restrict: 'E',
27 30 templateUrl: '/pages/scheduleApp/module/common/dts1/select/saSelect5Template.html',
... ... @@ -65,6 +68,8 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
65 68  
66 69 var $required_attr = tAttrs["required"]; // 是否需要required验证
67 70  
  71 + var $width_attr = tAttrs["width"]; // 宽度
  72 +
68 73 if (!$name_attr) {
69 74 throw new Error("name属性必须填写");
70 75 }
... ... @@ -111,6 +116,17 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
111 116 // dom,span ng-bind属性设置,TODO:暂时无法用transclude设置,先用属性设置
112 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 131 // 当前的数据模式,ajax,dic,local
116 132 var dataModelType = undefined;
... ... @@ -357,7 +373,7 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
357 373 */
358 374 scope[ctrlAs].$$internal_dic_data = function(dictype) {
359 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 526 }
511 527 };
512 528 }
513   -]);
514 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 16 <span class="glyphicon glyphicon-trash"></span>
17 17 </button>
18 18 </span>
19   -</div>
20 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 90 </div>
91 91 <div class="col-md-3 option_dir">
92 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 95 </select>
96 96 </div>
97 97 <div class="col-md-3 btn-group option_opt">
... ... @@ -107,4 +107,4 @@
107 107  
108 108 </div>
109 109  
110   -</div>
111 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 72 ScheduleApp.factory('DataStore', [
73 73 '$http',
74 74 '$q',
75   - function($http, $q) {
  75 + '$translate',
  76 + function($http, $q, translate) {
76 77 // 本地数据存储,如车辆数据,人员数据
77 78 var dataMap = {
78 79 "cl": [], // 车辆信息
79 80 "ry": [], // 人员信息
80 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 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 281 [
281 282 'requestNotificationChannel',
282 283 '$q',
283   - function(requestNotificationChannel, $q) {
  284 + '$translate',
  285 + function(requestNotificationChannel, $q, translate) {
284 286 return {
285 287 request: function(config) {
286 288 requestNotificationChannel.requestStarted(config);
... ... @@ -296,13 +298,13 @@ ScheduleApp.factory(
296 298 var data = response.data;
297 299 var output = [];
298 300 if (data.status == '407') {
299   - alert(i18n('txt-1805'));
  301 + alert(translate.instant("main_js_line_301_txt-1805"));
300 302 return $q.reject(response);
301 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 308 return $q.reject(response);
307 309 } else {
308 310 return response;
... ... @@ -320,22 +322,22 @@ ScheduleApp.factory(
320 322 } else if (rejection.status == -1) {
321 323 // 服务器断开了
322 324 // alert(i18n('txt-695'));
323   - console.log(i18n('txt-695'));
  325 + console.log(translate.instant("main_js_line_325_txt-695"));
324 326 } else {
325   - output.push(i18n('txt-2284') + rejection.status);
  327 + output.push(translate.instant("main_js_line_327_txt-2284") + rejection.status);
326 328 // output.push("错误内容:" + angular.toJson(rejection.data));
327 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 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 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 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 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 377 '$scope',
376 378 'UserPrincipal',
377 379 'DataStore',
378   - function($scope, UserPrincipal, DataStore) {
  380 + '$translate',
  381 + function($scope, UserPrincipal, DataStore, translate) {
379 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 53 * remoteValidation指令,远程数据验证验证,作为属性放在某个指令上,依赖与指令的ngModel。
... ... @@ -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 320 * remoteWarn指令:远程验证警告,作为属性放在某个指令上。
... ... @@ -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 1435 *
1436 1436 * required(可选):是否需要form的required验证
1437 1437 *
  1438 + * width(可选):内部自动计算select框和删除按钮的宽度,并添加对应的style
  1439 + *
1438 1440 */
1439 1441 angular.module('ScheduleApp').directive('saSelect5', [
1440 1442 '$timeout',
1441 1443 '$$SearchInfoService_g',
1442 1444 'UserPrincipal',
1443 1445 'DataStore',
1444   - function($timeout, $$searchInfoService_g, UserPrincipal, DataStore) {
  1446 + '$translate',
  1447 + function($timeout, $$searchInfoService_g, UserPrincipal, DataStore, translate) {
1445 1448 return {
1446 1449 restrict: 'E',
1447 1450 templateUrl: '/pages/scheduleApp/module/common/dts1/select/saSelect5Template.html',
... ... @@ -1485,6 +1488,8 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
1485 1488  
1486 1489 var $required_attr = tAttrs["required"]; // 是否需要required验证
1487 1490  
  1491 + var $width_attr = tAttrs["width"]; // 宽度
  1492 +
1488 1493 if (!$name_attr) {
1489 1494 throw new Error("name属性必须填写");
1490 1495 }
... ... @@ -1531,6 +1536,17 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
1531 1536 // dom,span ng-bind属性设置,TODO:暂时无法用transclude设置,先用属性设置
1532 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 1551 // 当前的数据模式,ajax,dic,local
1536 1552 var dataModelType = undefined;
... ... @@ -1777,7 +1793,7 @@ angular.module(&#39;ScheduleApp&#39;).directive(&#39;saSelect5&#39;, [
1777 1793 */
1778 1794 scope[ctrlAs].$$internal_dic_data = function(dictype) {
1779 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 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 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 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 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 2619 return {
2256 2620 restrict: 'E',
2257   - templateUrl: '/pages/scheduleApp/module/common/dts2/dateGroup/saDategroupTemplate.html',
  2621 + templateUrl: '/pages/scheduleApp/module/common/dts2/guideboardGroup/saGuideboardgroupTemplate.html',
2258 2622 scope: {
2259 2623 model: "=" // 独立作用域,关联外部的模型object
2260 2624 },
2261   - controllerAs: "$saDategroupCtrl",
  2625 + controllerAs: '$saGuideboardgroupCtrl',
2262 2626 bindToController: true,
2263 2627 controller: function($scope) {
2264 2628 var self = this;
2265   - self.$$data = []; // 内部的数据
2266   - self.$$date_select; // 内部选中的日期
  2629 + self.$$dataReal = []; // 选择线路后,该线路的路牌数据
  2630 + self.$$data = []; // 页面最多显示10条,可以通过$$searchText筛选
2267 2631  
2268   - //// 测试数据
  2632 + // 测试数据
2269 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 2639 self.$$searchText = undefined; // 搜索值
... ... @@ -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 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 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 4889 var self = this;
4873 4890  
4874 4891 // 字段列表是否预载入
... ... @@ -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 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 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 187 // 车辆配置service
278 188 angular.module('ScheduleApp').factory('BusConfigService_g', ['$resource', 'UserPrincipal', function($resource, UserPrincipal) {
279 189 return {
... ...
src/main/resources/static/pages/scheduleApp/module/common/prj-common-ui-route-state.js
... ... @@ -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 283 // ui route 配置
341 284  
342 285 /** 车辆配置模块页面route */
... ...