From 10646c94fb499800b32947a031d484d04b914435 Mon Sep 17 00:00:00 2001 From: chenbiao Date: Fri, 14 Jun 2019 14:11:26 +0800 Subject: [PATCH] add --- assets/pages/config/config.js | 40 ++++++++++++++++++++++++++++++++++++++++ assets/pages/css/basicInformation/basicInformation.css | 47 +++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/basicInformationmod/basicInformationmod.css | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/callCenter/customercenter.css | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/common.css | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/commonsetcss/commonsetcss.css | 2465 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/home/caryard.css | 590 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/home/generaloperation.css | 222 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/home/img/berthNoMatches.png | Bin 0 -> 468 bytes assets/pages/css/home/img/general-li-1.png | Bin 0 -> 3422 bytes assets/pages/css/home/img/general-li-2.png | Bin 0 -> 1593 bytes assets/pages/css/home/img/general-li-3.png | Bin 0 -> 3476 bytes assets/pages/css/home/img/general-li-4.png | Bin 0 -> 3334 bytes assets/pages/css/home/img/general-li-5.png | Bin 0 -> 3060 bytes assets/pages/css/home/img/general-sstj-icon.png | Bin 0 -> 356 bytes assets/pages/css/home/img/general-zffs-icon.png | Bin 0 -> 655 bytes assets/pages/css/home/img/updatenoticeBg.png | Bin 0 -> 140522 bytes assets/pages/css/home/img/weekly_titCarIco.png | Bin 0 -> 382 bytes assets/pages/css/home/img/weekly_titIco.png | Bin 0 -> 446 bytes assets/pages/css/home/incomeprofile.css | 264 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/home/index.css | 565 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/home/messagecenter.css | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/home/newsnotice.css | 7 +++++++ assets/pages/css/home/parksingledetail.css | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/home/updatenotice.css | 44 ++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/home/weekly.css | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/login.css | 388 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/loginold.min.css | 323 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/managereport/allparkrecordsFinance.css | 22 ++++++++++++++++++++++ assets/pages/css/managereport/billmanage.css | 43 +++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/managereport/companysettlement.css | 34 ++++++++++++++++++++++++++++++++++ assets/pages/css/managereport/devicereport.css | 9 +++++++++ assets/pages/css/managereport/img/alltotaltab-show-active.png | Bin 0 -> 725 bytes assets/pages/css/managereport/img/alltotaltab-show.png | Bin 0 -> 695 bytes assets/pages/css/managereport/img/billmanagebgIco_des.png | Bin 0 -> 615 bytes assets/pages/css/managereport/img/billmanagement-main-money-1.png | Bin 0 -> 1600 bytes assets/pages/css/managereport/img/billmanagement-main-money-2.png | Bin 0 -> 1470 bytes assets/pages/css/managereport/img/billmanagement-main-money-3.png | Bin 0 -> 1714 bytes assets/pages/css/managereport/img/billmanagement-main-money-4.png | Bin 0 -> 1428 bytes assets/pages/css/managereport/img/billmanagement-title-1.png | Bin 0 -> 661 bytes assets/pages/css/managereport/img/billmanagement-title-2.png | Bin 0 -> 478 bytes assets/pages/css/managereport/img/billmanagement-title-3.png | Bin 0 -> 550 bytes assets/pages/css/managereport/img/billmanagement-title-4.png | Bin 0 -> 627 bytes assets/pages/css/managereport/img/billmanagement-title-des.png | Bin 0 -> 411 bytes assets/pages/css/managereport/img/billmanagement-total-1.png | Bin 0 -> 2208 bytes assets/pages/css/managereport/img/billmanagement-total.png | Bin 0 -> 449 bytes assets/pages/css/managereport/img/shareParkPorIco.png | Bin 0 -> 10986 bytes assets/pages/css/managereport/img/shareParkworkIco.png | Bin 0 -> 24267 bytes assets/pages/css/managereport/img/sharesettle-c-bottom.png | Bin 0 -> 2166 bytes assets/pages/css/managereport/img/sharesettle-c-top.png | Bin 0 -> 2187 bytes assets/pages/css/managereport/img/sharesettle-l-img.png | Bin 0 -> 38514 bytes assets/pages/css/managereport/img/sharesettle-r-bottom.png | Bin 0 -> 1667 bytes assets/pages/css/managereport/img/sharesettle-r-top.png | Bin 0 -> 2299 bytes assets/pages/css/managereport/img/sharespaceCirle.png | Bin 0 -> 679 bytes assets/pages/css/managereport/img/temporary-arrow-active.png | Bin 0 -> 390 bytes assets/pages/css/managereport/img/temporary-con-main-1.png | Bin 0 -> 2767 bytes assets/pages/css/managereport/img/temporary-con-main-2.png | Bin 0 -> 2494 bytes assets/pages/css/managereport/img/temporary-con-main-3.png | Bin 0 -> 2352 bytes assets/pages/css/managereport/invoicemanage.css | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/managereport/reconciliation.css | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/managereport/remainingsum.css | 0 assets/pages/css/managereport/settlementmanage.css | 17 +++++++++++++++++ assets/pages/css/managereport/temporarysettletob.css | 3 +++ assets/pages/css/managereport/tollaccountmanage.css | 33 +++++++++++++++++++++++++++++++++ assets/pages/css/managereport/tollaudit.css | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/managereport/tollincomeandexp.css | 35 +++++++++++++++++++++++++++++++++++ assets/pages/css/managereport/vehicleaudit.css | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/notice/notice.css | 27 +++++++++++++++++++++++++++ assets/pages/css/orderManagement/abnormalrecords.css | 13 +++++++++++++ assets/pages/css/orderManagement/allparkrecords.css | 439 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/orderManagement/arrearrecord.css | 11 +++++++++++ assets/pages/css/orderManagement/endorsement.css | 11 +++++++++++ assets/pages/css/orderManagement/geomagneticincome.css | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/orderManagement/img/berthNoMatches.png | Bin 0 -> 468 bytes assets/pages/css/orderManagement/img/general-li-1.png | Bin 0 -> 3422 bytes assets/pages/css/orderManagement/img/general-li-2.png | Bin 0 -> 1593 bytes assets/pages/css/orderManagement/img/general-li-3.png | Bin 0 -> 3476 bytes assets/pages/css/orderManagement/img/general-li-4.png | Bin 0 -> 3334 bytes assets/pages/css/orderManagement/img/general-li-5.png | Bin 0 -> 3060 bytes assets/pages/css/orderManagement/img/general-sstj-icon.png | Bin 0 -> 356 bytes assets/pages/css/orderManagement/img/general-zffs-icon.png | Bin 0 -> 655 bytes assets/pages/css/orderManagement/img/updatenoticeBg.png | Bin 0 -> 140522 bytes assets/pages/css/orderManagement/img/weekly_titCarIco.png | Bin 0 -> 382 bytes assets/pages/css/orderManagement/img/weekly_titIco.png | Bin 0 -> 446 bytes assets/pages/css/orderManagement/oddchange.css | 43 +++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/orderManagement/parkingarrears.css | 619 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/orderManagement/parkingmanage.css | 294 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/orderManagement/peccancymanage.css | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/orderManagement/ymcardorder.css | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/reportStatistics/parkingfee.css | 0 assets/pages/css/theme/blue.css | 802 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/css/theme/red.css | 0 assets/pages/img/123.jpg | Bin 0 -> 29132 bytes assets/pages/img/ITD-export-btn.png | Bin 0 -> 1108 bytes assets/pages/img/ITD-export-btnhover.png | Bin 0 -> 1127 bytes assets/pages/img/ITD-readall-btn.png | Bin 0 -> 263 bytes assets/pages/img/ITD-readall-btnhover.png | Bin 0 -> 298 bytes assets/pages/img/Icon_Save.png | Bin 0 -> 250 bytes assets/pages/img/Lineright-icon.png | Bin 0 -> 457 bytes assets/pages/img/agelonge-icon.png | Bin 0 -> 1179 bytes assets/pages/img/alert_close.png | Bin 0 -> 570 bytes assets/pages/img/ali_pay.png | Bin 0 -> 819 bytes assets/pages/img/all-car-num-index.png | Bin 0 -> 2501 bytes assets/pages/img/all_money.png | Bin 0 -> 729 bytes assets/pages/img/allparkrecords-in-out.jpg | Bin 0 -> 34930 bytes assets/pages/img/allparkrecords-in-out.png | Bin 0 -> 100268 bytes assets/pages/img/allspace_bg.png | Bin 0 -> 1022 bytes assets/pages/img/appUser_ico.png | Bin 0 -> 15760 bytes assets/pages/img/app_alldownloadIco.png | Bin 0 -> 2442 bytes assets/pages/img/app_andoirdIco.png | Bin 0 -> 2496 bytes assets/pages/img/app_iosIco.png | Bin 0 -> 2187 bytes assets/pages/img/apphyd_ico.png | Bin 0 -> 15680 bytes assets/pages/img/average-icon.png | Bin 0 -> 1236 bytes assets/pages/img/berthImgBg.jpg | 0 assets/pages/img/bg1.jpg | Bin 0 -> 151106 bytes assets/pages/img/bg2.jpg | Bin 0 -> 102780 bytes assets/pages/img/bg3.jpg | Bin 0 -> 254391 bytes assets/pages/img/body-bg.png | Bin 0 -> 3476 bytes assets/pages/img/bookUserICO.png | Bin 0 -> 13004 bytes assets/pages/img/btnIcon.png | Bin 0 -> 385 bytes assets/pages/img/business-icon.png | Bin 0 -> 1121 bytes assets/pages/img/captions.jpg | Bin 0 -> 46433 bytes assets/pages/img/card-alimoney-icon.png | Bin 0 -> 809 bytes assets/pages/img/card-baltomoney-icon.png | Bin 0 -> 669 bytes assets/pages/img/card-berth-icon.png | Bin 0 -> 1663 bytes assets/pages/img/card-berth-iconl.png | Bin 0 -> 16041 bytes assets/pages/img/card-berttime-icon.png | Bin 0 -> 2130 bytes assets/pages/img/card-clearing-icon.png | Bin 0 -> 2431 bytes assets/pages/img/card-discount-icon.png | Bin 0 -> 1554 bytes assets/pages/img/card-dzalipaymoney-icon.png | Bin 0 -> 563 bytes assets/pages/img/card-dzwxmoney-icon.png | Bin 0 -> 530 bytes assets/pages/img/card-geo-icon.png | Bin 0 -> 1503 bytes assets/pages/img/card-icon.png | Bin 0 -> 1104 bytes assets/pages/img/card-measure-icon.png | Bin 0 -> 2292 bytes assets/pages/img/card-money-icon.png | Bin 0 -> 2589 bytes assets/pages/img/card-other-icon.png | Bin 0 -> 2133 bytes assets/pages/img/card-parking-icon.png | Bin 0 -> 3136 bytes assets/pages/img/card-parkingin-icon.png | Bin 0 -> 1456 bytes assets/pages/img/card-parkingout-icon.png | Bin 0 -> 1492 bytes assets/pages/img/card-parkingtime-icon.png | Bin 0 -> 2127 bytes assets/pages/img/card-parkingzzl-icon.png | Bin 0 -> 2197 bytes assets/pages/img/card-rate-icon.png | Bin 0 -> 2345 bytes assets/pages/img/card-received-icon.png | Bin 0 -> 2722 bytes assets/pages/img/card-roadside-icon.png | Bin 0 -> 1639 bytes assets/pages/img/card-unclearing-icon.png | Bin 0 -> 2775 bytes assets/pages/img/card-wifi-icon.png | Bin 0 -> 2102 bytes assets/pages/img/card-wxmoney-icon.png | Bin 0 -> 771 bytes assets/pages/img/card_close.png | Bin 0 -> 302 bytes assets/pages/img/card_editor.png | Bin 0 -> 442 bytes assets/pages/img/cardrule-td-first.png | Bin 0 -> 1301 bytes assets/pages/img/caret-dowm.png | Bin 0 -> 270 bytes assets/pages/img/carlat_Img.png | Bin 0 -> 406 bytes assets/pages/img/carnum-icon.png | Bin 0 -> 1091 bytes assets/pages/img/carnumber-icon.png | Bin 0 -> 1091 bytes assets/pages/img/caryard-basic-ifo-fees-wrap.png | Bin 0 -> 2547 bytes assets/pages/img/caryard-basic-ifo.png | Bin 0 -> 1953 bytes assets/pages/img/caryard-card-wrap.png | Bin 0 -> 7659 bytes assets/pages/img/caryard-parking-ifo.png | Bin 0 -> 6719 bytes assets/pages/img/chargingrule_smallIcon.png | Bin 0 -> 19041 bytes assets/pages/img/code-icon.png | Bin 0 -> 1105 bytes assets/pages/img/collect-icon.png | Bin 0 -> 1169 bytes assets/pages/img/common_payico.png | Bin 0 -> 692 bytes assets/pages/img/count-parking.png | Bin 0 -> 2014 bytes assets/pages/img/dataicon.png | Bin 0 -> 326 bytes assets/pages/img/dataprintIco.png | Bin 0 -> 584 bytes assets/pages/img/day-icon.png | Bin 0 -> 1204 bytes assets/pages/img/delList-icon.png | Bin 0 -> 534 bytes assets/pages/img/delete_Rule.png | Bin 0 -> 2309 bytes assets/pages/img/detail_orangeicon.png | Bin 0 -> 1217 bytes assets/pages/img/device-monitor-geo.png | Bin 0 -> 855 bytes assets/pages/img/device_Img.png | Bin 0 -> 584 bytes assets/pages/img/dictionary-icon.png | Bin 0 -> 1048 bytes assets/pages/img/discount-icon.png | Bin 0 -> 1189 bytes assets/pages/img/dot-animation.png | Bin 0 -> 668 bytes assets/pages/img/earning-basic-in.png | Bin 0 -> 1407 bytes assets/pages/img/earning-basic-out.png | Bin 0 -> 1849 bytes assets/pages/img/email-icon.png | Bin 0 -> 1149 bytes assets/pages/img/enclosedpark_icon.png | Bin 0 -> 727 bytes assets/pages/img/fapiao-icon.png | Bin 0 -> 7707 bytes assets/pages/img/feature-icon.png | Bin 0 -> 1213 bytes assets/pages/img/first_menu_chargeIco.png | Bin 0 -> 702 bytes assets/pages/img/first_menu_cwgl.png | Bin 0 -> 1485 bytes assets/pages/img/first_menu_indexIco.png | Bin 0 -> 1405 bytes assets/pages/img/first_menu_kfIco.png | Bin 0 -> 1585 bytes assets/pages/img/first_menu_parkgk.png | Bin 0 -> 1530 bytes assets/pages/img/first_menu_parkshareIco.png | Bin 0 -> 1533 bytes assets/pages/img/first_menu_parkyyIco.png | Bin 0 -> 1335 bytes assets/pages/img/first_menu_settingIco.png | Bin 0 -> 1497 bytes assets/pages/img/first_menu_tjbbIco.png | Bin 0 -> 1295 bytes assets/pages/img/first_menu_wfIco.png | Bin 0 -> 1621 bytes assets/pages/img/first_menu_zygl.png | Bin 0 -> 1228 bytes assets/pages/img/formatNoMatches.png | Bin 0 -> 967 bytes assets/pages/img/function-icon.png | Bin 0 -> 1232 bytes assets/pages/img/generaloperation-dcsbjk-title.png | Bin 0 -> 700 bytes assets/pages/img/generaloperation-device-monitor-gateway.png | Bin 0 -> 302 bytes assets/pages/img/generaloperation-device-monitor-pda.png | Bin 0 -> 245 bytes assets/pages/img/generaloperation-shzt-title.png | Bin 0 -> 1036 bytes assets/pages/img/generaloperation-ssbb-title.png | Bin 0 -> 852 bytes assets/pages/img/generaloperation-tjqst-title.png | Bin 0 -> 371 bytes assets/pages/img/geo-card-money-icon.png | Bin 0 -> 1219 bytes assets/pages/img/geo-con-center.png | Bin 0 -> 2872 bytes assets/pages/img/geo-con-left.gif | Bin 0 -> 4001 bytes assets/pages/img/geomagneticincome-con-wrap-line1.png | Bin 0 -> 128 bytes assets/pages/img/geomagneticincome-con-wrap-line2.png | Bin 0 -> 198 bytes assets/pages/img/gerenxinxi.png | Bin 0 -> 465 bytes assets/pages/img/handler_bg.png | Bin 0 -> 1236 bytes assets/pages/img/header-download.png | Bin 0 -> 674 bytes assets/pages/img/header-notice.png | Bin 0 -> 540 bytes assets/pages/img/header-right-icon.png | Bin 0 -> 1649 bytes assets/pages/img/home_park_icon.png | Bin 0 -> 807 bytes assets/pages/img/ico_Plus.png | Bin 0 -> 273 bytes assets/pages/img/id-icon.png | Bin 0 -> 1228 bytes assets/pages/img/inComeday_bgIco.png | Bin 0 -> 2413 bytes assets/pages/img/inComenight_bgIco.png | Bin 0 -> 2432 bytes assets/pages/img/income_bg.png | Bin 0 -> 711 bytes assets/pages/img/income_timeIco.png | Bin 0 -> 382 bytes assets/pages/img/incomecalculation-day.png | Bin 0 -> 2413 bytes assets/pages/img/incomecalculation-night.png | Bin 0 -> 2432 bytes assets/pages/img/incomepark_bg.png | Bin 0 -> 786 bytes assets/pages/img/incomeprofile-park-title.png | Bin 0 -> 1180 bytes assets/pages/img/incomeprofile-parkincome-title.png | Bin 0 -> 1141 bytes assets/pages/img/incomeprofile-parkrank-title.png | Bin 0 -> 438 bytes assets/pages/img/index-access-pic.png | Bin 0 -> 5381 bytes assets/pages/img/index-access-pic1.png | Bin 0 -> 18411 bytes assets/pages/img/index-card-title.png | Bin 0 -> 3629 bytes assets/pages/img/index-link-icon.png | Bin 0 -> 504 bytes assets/pages/img/index-notice-title.png | Bin 0 -> 926 bytes assets/pages/img/index-park-type-1.png | Bin 0 -> 363 bytes assets/pages/img/index-park-type-2.png | Bin 0 -> 386 bytes assets/pages/img/index_Img.png | Bin 0 -> 351 bytes assets/pages/img/information-icon.png | Bin 0 -> 1132 bytes assets/pages/img/inoutno_icon.png | Bin 0 -> 4096 bytes assets/pages/img/input-checkbox.png | Bin 0 -> 304 bytes assets/pages/img/input-checkexActive.png | Bin 0 -> 208 bytes assets/pages/img/input-radio-active.png | Bin 0 -> 664 bytes assets/pages/img/input-radio.png | Bin 0 -> 426 bytes assets/pages/img/invisible.png | Bin 0 -> 4721 bytes assets/pages/img/ip-icon.png | Bin 0 -> 1233 bytes assets/pages/img/kaxinxi.png | Bin 0 -> 297 bytes assets/pages/img/kefu_email_icon.png | Bin 0 -> 3921 bytes assets/pages/img/kefu_pho_icon.png | Bin 0 -> 4658 bytes assets/pages/img/kefu_qq_icon.png | Bin 0 -> 3992 bytes assets/pages/img/left-arrow.png | Bin 0 -> 276 bytes assets/pages/img/login-logo-icon.png | Bin 0 -> 5128 bytes assets/pages/img/login-pwd-bg.png | Bin 0 -> 412 bytes assets/pages/img/login-user-bg.png | Bin 0 -> 444 bytes assets/pages/img/login_pwsicon.png | Bin 0 -> 431 bytes assets/pages/img/login_usericon.png | Bin 0 -> 371 bytes assets/pages/img/login_vericon.png | Bin 0 -> 382 bytes assets/pages/img/loginbg-icon.png | Bin 0 -> 1099187 bytes assets/pages/img/manage-icon.png | Bin 0 -> 1204 bytes assets/pages/img/menu-first-bg.png | Bin 0 -> 4163 bytes assets/pages/img/mmap/its-park1.png | Bin 0 -> 2195 bytes assets/pages/img/mmap/its-park2.png | Bin 0 -> 2243 bytes assets/pages/img/mmap/its-park3.png | Bin 0 -> 2252 bytes assets/pages/img/mmap/its-park4.png | Bin 0 -> 1447 bytes assets/pages/img/mmap/its-park5.png | Bin 0 -> 1378 bytes assets/pages/img/mmap/parkicon_culter.png | Bin 0 -> 3052 bytes assets/pages/img/mobile-icon.png | Bin 0 -> 1057 bytes assets/pages/img/mold-icon.png | Bin 0 -> 1131 bytes assets/pages/img/money-icon.png | Bin 0 -> 1234 bytes assets/pages/img/moneydifference-icon.png | Bin 0 -> 1238 bytes assets/pages/img/moneydifferencenum-icon.png | Bin 0 -> 1259 bytes assets/pages/img/monitor-icon.png | Bin 0 -> 16041 bytes assets/pages/img/nav-left-bar-1.png | Bin 0 -> 917 bytes assets/pages/img/nav-left-bar-2.png | Bin 0 -> 531 bytes assets/pages/img/nav-left-bar-3.png | Bin 0 -> 865 bytes assets/pages/img/nav-left-bar-4.png | Bin 0 -> 297 bytes assets/pages/img/nav-left-bar-5.png | Bin 0 -> 465 bytes assets/pages/img/nav-left-bar-6.png | Bin 0 -> 393 bytes assets/pages/img/nav-left-bar-7.png | Bin 0 -> 724 bytes assets/pages/img/nav-left-bar-8.png | Bin 0 -> 338 bytes assets/pages/img/navBar-car.png | Bin 0 -> 1780 bytes assets/pages/img/navbar-logo.png | Bin 0 -> 17864 bytes assets/pages/img/night-icon.png | Bin 0 -> 1221 bytes assets/pages/img/night_bg.png | Bin 0 -> 1990 bytes assets/pages/img/noimage.png | Bin 0 -> 1935 bytes assets/pages/img/novariant-reconciliation-icon.png | Bin 0 -> 2031 bytes assets/pages/img/num_add.png | Bin 0 -> 491 bytes assets/pages/img/num_minus.png | Bin 0 -> 456 bytes assets/pages/img/occupy-car-num-index.png | Bin 0 -> 2306 bytes assets/pages/img/occupy_Img.png | Bin 0 -> 496 bytes assets/pages/img/off_tab.png | Bin 0 -> 703 bytes assets/pages/img/office-icon.png | Bin 0 -> 1249 bytes assets/pages/img/onesyncBtn.png | Bin 0 -> 353 bytes assets/pages/img/open_tab.png | Bin 0 -> 769 bytes assets/pages/img/opration-icon.png | Bin 0 -> 1147 bytes assets/pages/img/other_img.png | Bin 0 -> 596 bytes assets/pages/img/overflow.jpg | Bin 0 -> 20740 bytes assets/pages/img/park-card-title-1.png | Bin 0 -> 598 bytes assets/pages/img/park-card-title-2.png | Bin 0 -> 626 bytes assets/pages/img/park-card-title-3.png | Bin 0 -> 833 bytes assets/pages/img/park-card-title-4.png | Bin 0 -> 628 bytes assets/pages/img/park-num-icon.png | Bin 0 -> 970 bytes assets/pages/img/parkicon.png | Bin 0 -> 2843 bytes assets/pages/img/parkicon_1.png | Bin 0 -> 1106 bytes assets/pages/img/parkicon_2.png | Bin 0 -> 961 bytes assets/pages/img/parkicon_3.png | Bin 0 -> 1046 bytes assets/pages/img/parking-icon.png | Bin 0 -> 1250 bytes assets/pages/img/parkingin-icon.png | Bin 0 -> 1117 bytes assets/pages/img/parkingout-icon.png | Bin 0 -> 1112 bytes assets/pages/img/parksingledetail-1-icon.png | Bin 0 -> 6742 bytes assets/pages/img/parksingledetail-2-icon.png | Bin 0 -> 3960 bytes assets/pages/img/parksingledetail-3-icon.png | Bin 0 -> 3934 bytes assets/pages/img/pay-acount-icon.png | Bin 0 -> 1075 bytes assets/pages/img/pay-money-icon.png | Bin 0 -> 1177 bytes assets/pages/img/pay-num-icon.png | Bin 0 -> 1272 bytes assets/pages/img/pay_wrap_l1.png | Bin 0 -> 833 bytes assets/pages/img/pay_wrap_l2.png | Bin 0 -> 735 bytes assets/pages/img/pay_wrap_l3.png | Bin 0 -> 838 bytes assets/pages/img/pay_wrap_l4.png | Bin 0 -> 687 bytes assets/pages/img/pda-icon.png | Bin 0 -> 1052 bytes assets/pages/img/per-pross-cion.png | Bin 0 -> 392 bytes assets/pages/img/per_Img.png | Bin 0 -> 459 bytes assets/pages/img/permsg_Plus.png | Bin 0 -> 731 bytes assets/pages/img/person-icon.png | Bin 0 -> 1191 bytes assets/pages/img/person_park.png | Bin 0 -> 1308 bytes assets/pages/img/phone-icon.png | Bin 0 -> 1057 bytes assets/pages/img/poly_icon.png | Bin 0 -> 4368 bytes assets/pages/img/popScreenBtn.png | Bin 0 -> 248 bytes assets/pages/img/portlet-collapse-icon.png | Bin 0 -> 292 bytes assets/pages/img/portlet-expand-icon.png | Bin 0 -> 292 bytes assets/pages/img/question-money-icon.png | Bin 0 -> 313 bytes assets/pages/img/ranking-icon.png | Bin 0 -> 2664 bytes assets/pages/img/recordsAlipayico.png | Bin 0 -> 962 bytes assets/pages/img/recordsPassico.png | Bin 0 -> 729 bytes assets/pages/img/recordsWXico.png | Bin 0 -> 786 bytes assets/pages/img/recordsXJico.png | Bin 0 -> 522 bytes assets/pages/img/recordsYYico.png | Bin 0 -> 818 bytes assets/pages/img/recordsdefeatico.png | Bin 0 -> 505 bytes assets/pages/img/recordspayRico.png | Bin 0 -> 1525 bytes assets/pages/img/recordspaylico.png | Bin 0 -> 1545 bytes assets/pages/img/reload_orange.png | Bin 0 -> 1181 bytes assets/pages/img/remarks-icon.png | Bin 0 -> 1084 bytes assets/pages/img/remnum_park.png | Bin 0 -> 423 bytes assets/pages/img/result_bgico.png | Bin 0 -> 3101 bytes assets/pages/img/right-arrow.png | Bin 0 -> 274 bytes assets/pages/img/righttopbarico_Bg.png | Bin 0 -> 1703 bytes assets/pages/img/roadsidepark_icon.png | Bin 0 -> 665 bytes assets/pages/img/runIcon.pic | Bin 0 -> 477 bytes assets/pages/img/screenPopnoImg.png | Bin 0 -> 3424 bytes assets/pages/img/search_orange.png | Bin 0 -> 1340 bytes assets/pages/img/settlementmanage-icon.png | Bin 0 -> 1790 bytes assets/pages/img/sex-icon.png | Bin 0 -> 1264 bytes assets/pages/img/sharequery-icon.png | Bin 0 -> 557552 bytes assets/pages/img/sign-icon.png | Bin 0 -> 1154 bytes assets/pages/img/space_bg.png | Bin 0 -> 687 bytes assets/pages/img/space_eough.png | Bin 0 -> 245 bytes assets/pages/img/space_few.png | Bin 0 -> 244 bytes assets/pages/img/space_full.png | Bin 0 -> 275 bytes assets/pages/img/srcy-blue-icon.png | Bin 0 -> 1263 bytes assets/pages/img/srcy-green-icon.png | Bin 0 -> 1259 bytes assets/pages/img/srcy-orange-icon.png | Bin 0 -> 1260 bytes assets/pages/img/srcy-yellow-icon.png | Bin 0 -> 1223 bytes assets/pages/img/state-icon.png | Bin 0 -> 1258 bytes assets/pages/img/status-icon.png | Bin 0 -> 1215 bytes assets/pages/img/success-icon.png | Bin 0 -> 3021 bytes assets/pages/img/successup-icon.png | Bin 0 -> 2921 bytes assets/pages/img/symbol.png | Bin 0 -> 535 bytes assets/pages/img/system-icon.png | Bin 0 -> 1271 bytes assets/pages/img/tabletopIco.png | Bin 0 -> 514 bytes assets/pages/img/tcjsgz_icon.png | Bin 0 -> 4020 bytes assets/pages/img/telphone-icon.png | Bin 0 -> 1057 bytes assets/pages/img/theme-msgIco.png | Bin 0 -> 311 bytes assets/pages/img/theme_btn_add.png | Bin 0 -> 972 bytes assets/pages/img/theme_btn_addall.png | Bin 0 -> 298 bytes assets/pages/img/theme_btn_addhover.png | Bin 0 -> 981 bytes assets/pages/img/themes_Icobtn.png | Bin 0 -> 1057 bytes assets/pages/img/themes_Icodelete.png | Bin 0 -> 974 bytes assets/pages/img/themes_Icodeletehover.png | Bin 0 -> 971 bytes assets/pages/img/themes_Icoedit.png | Bin 0 -> 1090 bytes assets/pages/img/themes_Icoedithover.png | Bin 0 -> 1113 bytes assets/pages/img/themes_Icoenter.png | Bin 0 -> 1152 bytes assets/pages/img/themes_Icoenterhover.png | Bin 0 -> 1190 bytes assets/pages/img/themes_Icosave.png | Bin 0 -> 385 bytes assets/pages/img/themes_Icosavehover.png | Bin 0 -> 1120 bytes assets/pages/img/three-navbar.png | Bin 0 -> 775 bytes assets/pages/img/time-icon.png | Bin 0 -> 1162 bytes assets/pages/img/timeusage.png | Bin 0 -> 1439 bytes assets/pages/img/tk-blue-icon.png | Bin 0 -> 1366 bytes assets/pages/img/tk-green-icon.png | Bin 0 -> 1379 bytes assets/pages/img/tk-orange-icon.png | Bin 0 -> 1365 bytes assets/pages/img/tk-yellow-icon.png | Bin 0 -> 1379 bytes assets/pages/img/tkcy-blue-icon.png | Bin 0 -> 1231 bytes assets/pages/img/tkcy-green-icon.png | Bin 0 -> 1233 bytes assets/pages/img/tkcy-orange-icon.png | Bin 0 -> 1233 bytes assets/pages/img/tkcy-yellow-icon.png | Bin 0 -> 1233 bytes assets/pages/img/tkmoneynum-icon.png | Bin 0 -> 1368 bytes assets/pages/img/todayUser_ico.png | Bin 0 -> 15762 bytes assets/pages/img/todaytotal_img.png | Bin 0 -> 535 bytes assets/pages/img/toll-cloud-icon.png | Bin 0 -> 948 bytes assets/pages/img/toll-persongroup-icon.png | Bin 0 -> 1038 bytes assets/pages/img/top_carnumImg.png | Bin 0 -> 540 bytes assets/pages/img/topbarico_Bg.png | Bin 0 -> 370 bytes assets/pages/img/total-icon.png | Bin 0 -> 1258 bytes assets/pages/img/totalmanage_Img.png | Bin 0 -> 494 bytes assets/pages/img/traffic-data-in.png | Bin 0 -> 3137 bytes assets/pages/img/traffic-data-out.png | Bin 0 -> 2806 bytes assets/pages/img/truelist-blue.png | Bin 0 -> 2215 bytes assets/pages/img/truelist-green.png | Bin 0 -> 2398 bytes assets/pages/img/truelist-orange.png | Bin 0 -> 2393 bytes assets/pages/img/type-icon.png | Bin 0 -> 1128 bytes assets/pages/img/user-pic.png | Bin 0 -> 8956 bytes assets/pages/img/variant-reconciliation-icon.png | Bin 0 -> 1931 bytes assets/pages/img/vipcardrule-add.png | Bin 0 -> 418 bytes assets/pages/img/visible.png | Bin 0 -> 3848 bytes assets/pages/img/weixin-icon.png | Bin 0 -> 1362 bytes assets/pages/img/whitedat_bg.png | Bin 0 -> 2210 bytes assets/pages/img/wx_money.png | Bin 0 -> 769 bytes assets/pages/img/xianjin-icon.png | Bin 0 -> 1255 bytes assets/pages/img/xj_img.png | Bin 0 -> 586 bytes assets/pages/img/zhifubao-icon.png | Bin 0 -> 1356 bytes assets/pages/img/zte-its-logo.png | Bin 0 -> 2952 bytes assets/pages/img/zte-its_logo.png | Bin 0 -> 8994 bytes assets/pages/img/zteits-BGiconcom.png | Bin 0 -> 22578 bytes assets/pages/img/zteits_toALLico.png | Bin 0 -> 18233 bytes assets/pages/img/zyl-icon.png | Bin 0 -> 1212 bytes assets/pages/img/zzl-icon.png | Bin 0 -> 1279 bytes assets/pages/scripts/MarkerClusterer.js | 350 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/basicInformationmod/basicInformation/basicinformation.js | 16 ++++++++++++++++ assets/pages/scripts/basicInformationmod/basicInformationmod.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/appmenuFile/remsum.css | 0 assets/pages/scripts/billass/appmenuFile/remsum.html | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/appmenuFile/remsum.js | 490 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/bill/billmanage.css | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/bill/billmanage.html | 252 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/bill/billmanage.js | 1445 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/bill/billmanage.js_bak | 1076 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/billassTmp.js | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/odd/oddchange.css | 43 +++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/odd/oddchange.html | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/odd/oddchange.js | 459 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/onlinefile/onlinerevenue.css | 0 assets/pages/scripts/billass/onlinefile/onlinerevenue.html | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/onlinefile/onlinerevenue.js | 366 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/tollexp/tollincomeandexp.css | 35 +++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/tollexp/tollincomeandexp.html | 184 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/billass/tollexp/tollincomeandexp.js | 628 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/businessmanage/analogbilling.js | 589 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/businessmanage/businessTmp.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/businessmanage/css/analogbilling.css | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/businessmanage/css/invoicemanage.css | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/businessmanage/css/vipmanage.css | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/businessmanage/invoicemanage.js | 462 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/businessmanage/pages/analogbilling.html | 252 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/businessmanage/pages/invoicemanage.html | 171 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/businessmanage/pages/vipmanage.html | 517 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/businessmanage/vipmanage.js | 1640 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/chargeGroup/chargegroup.css | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/chargeGroup/chargegroup.html | 239 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/chargeGroup/chargegroup.js | 453 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/chargeGroup/img/chargegroup_smallIcon.png | Bin 0 -> 3878 bytes assets/pages/scripts/clearfile/clearTmp.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/clearfile/compfile/companysettlement.css | 34 ++++++++++++++++++++++++++++++++++ assets/pages/scripts/clearfile/compfile/companysettlement.html | 230 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/clearfile/compfile/companysettlement.js | 906 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/clearfile/temptob/temporarysettletob.css | 3 +++ assets/pages/scripts/clearfile/temptob/temporarysettletob.html | 226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/clearfile/temptob/temporarysettletob.js | 863 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/components-bootstrap-select.min.js | 1 + assets/pages/scripts/danyangFile/danyangTmp.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/danyangFile/userAna/useranalysis.css | 7 +++++++ assets/pages/scripts/danyangFile/userAna/useranalysis.html | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/danyangFile/userAna/useranalysis.js | 394 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/danyangFile/userManage/usermanage.css | 3 +++ assets/pages/scripts/danyangFile/userManage/usermanage.html | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/danyangFile/userManage/usermanage.js | 237 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/deviceanaFile/equipmentTmp.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.css | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.html | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.js | 1043 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/deviceanaFile/geodynaFile/img/geo_pop_offonIco.png | Bin 0 -> 520 bytes assets/pages/scripts/deviceanaFile/geodynaFile/img/georeceive_smallIcon.png | Bin 0 -> 3878 bytes assets/pages/scripts/deviceanaFile/geodynaFile/img/terrestrial-allmoney.png | Bin 0 -> 2164 bytes assets/pages/scripts/deviceanaFile/geodynaFile/img/way-echarts-l.png | Bin 0 -> 6632 bytes assets/pages/scripts/deviceanaFile/geodynaFile/img/way-echarts-r.png | Bin 0 -> 6867 bytes assets/pages/scripts/deviceanaFile/geozzlFile/geodynamiczzl.css | 36 ++++++++++++++++++++++++++++++++++++ assets/pages/scripts/deviceanaFile/geozzlFile/geodynamiczzl.html | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/deviceanaFile/geozzlFile/geodynamiczzl.js | 1156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/deviceanaFile/geozzlFile/img/geo_pop_offonIco.png | Bin 0 -> 520 bytes assets/pages/scripts/deviceanaFile/geozzlFile/img/georeceive_smallIcon.png | Bin 0 -> 3878 bytes assets/pages/scripts/deviceanaFile/geozzlFile/img/terrestrial-allmoney.png | Bin 0 -> 2164 bytes assets/pages/scripts/deviceanaFile/geozzlFile/img/way-echarts-l.png | Bin 0 -> 6632 bytes assets/pages/scripts/deviceanaFile/geozzlFile/img/way-echarts-r.png | Bin 0 -> 6867 bytes assets/pages/scripts/devicemanageFile/deveiceData/geomagneticData.css | 0 assets/pages/scripts/devicemanageFile/deveiceData/geomagneticData.html | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/devicemanageFile/deveiceData/geomagneticData.js | 408 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/devicemanageFile/devieceTmp.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.css | 274 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.html | 680 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.js | 2191 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/devicemanageFile/geomagnetismFile/img/cardrule-person-ico.png | Bin 0 -> 2317 bytes assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-1.png | Bin 0 -> 717 bytes assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-2.png | Bin 0 -> 732 bytes assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-3.png | Bin 0 -> 534 bytes assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomanage_baidimapIco.png | Bin 0 -> 568 bytes assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_unload.png | Bin 0 -> 132 bytes assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_upload.png | Bin 0 -> 201 bytes assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_word_ico.png | Bin 0 -> 715 bytes assets/pages/scripts/devicemanageFile/img/guidepop_leftico.png | Bin 0 -> 1028 bytes assets/pages/scripts/devicemanageFile/img/guidepop_rightico.png | Bin 0 -> 1079 bytes assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-1.png | Bin 0 -> 717 bytes assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-2.png | Bin 0 -> 732 bytes assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-3.png | Bin 0 -> 534 bytes assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomanage_baidimapIco.png | Bin 0 -> 568 bytes assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.css | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.html | 321 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.js | 1201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.css | 0 assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.html | 2 ++ assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.js | 0 assets/pages/scripts/devicemanageFile/screenFile/screenmanage.css | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/devicemanageFile/screenFile/screenmanage.html | 155 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/devicemanageFile/screenFile/screenmanage.js | 460 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/equipmentPeration/css/geomagneticData.css | 0 assets/pages/scripts/equipmentPeration/css/geomagneticmanage.css | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-1.png | Bin 0 -> 717 bytes assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-2.png | Bin 0 -> 732 bytes assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-3.png | Bin 0 -> 534 bytes assets/pages/scripts/equipmentPeration/css/img/geomanage_baidimapIco.png | Bin 0 -> 568 bytes assets/pages/scripts/equipmentPeration/css/pdamanage.css | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/equipmentPeration/equipmentPerationTmp.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/equipmentPeration/geomagneticData.js | 329 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/equipmentPeration/geomagneticmanage.js | 1385 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/equipmentPeration/pages/geomagneticData.html | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/equipmentPeration/pages/geomagneticmanage.html | 443 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/equipmentPeration/pages/pdamanage.html | 322 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/equipmentPeration/pdamanage.js | 1154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/home/caryard.js | 1328 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/home/generaloperation.js | 867 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/home/incomeprofile.js | 864 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/home/incomeprofile_init.js | 709 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/home/index.js | 2111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/home/maplib.js | 607 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/home/messagecenter.js | 346 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/home/newsnotice.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/home/notice.js | 37 +++++++++++++++++++++++++++++++++++++ assets/pages/scripts/home/parksingledetail.js | 626 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/home/weekly.js | 387 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/generaloperation-tjqst-title.png | Bin 0 -> 371 bytes assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/geo_pop_offonIco.png | Bin 0 -> 520 bytes assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/georeceive_smallIcon.png | Bin 0 -> 3878 bytes assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/income-sstj-icon.png | Bin 0 -> 356 bytes assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-bws-top.png | Bin 0 -> 2436 bytes assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-shebei-title.png | Bin 0 -> 568 bytes assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-tip-icon.png | Bin 0 -> 391 bytes assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-zys-top.png | Bin 0 -> 2438 bytes assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/terrestrial-allmoney.png | Bin 0 -> 2164 bytes assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/way-echarts-l.png | Bin 0 -> 6632 bytes assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/way-echarts-r.png | Bin 0 -> 6867 bytes assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.css | 206 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.html | 255 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.js | 1900 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomeAnalysisFile/incomeanaTmp.js | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/generaloperation-tjqst-title.png | Bin 0 -> 371 bytes assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/geo_pop_offonIco.png | Bin 0 -> 520 bytes assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/georeceive_smallIcon.png | Bin 0 -> 3878 bytes assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/income-sstj-icon.png | Bin 0 -> 356 bytes assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-bws-top.png | Bin 0 -> 2436 bytes assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-shebei-title.png | Bin 0 -> 568 bytes assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-tip-icon.png | Bin 0 -> 391 bytes assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-zys-top.png | Bin 0 -> 2438 bytes assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/terrestrial-allmoney.png | Bin 0 -> 2164 bytes assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/way-echarts-l.png | Bin 0 -> 6632 bytes assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/way-echarts-r.png | Bin 0 -> 6867 bytes assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.css | 206 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.html | 196 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.js | 1041 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomeAnalysisFile/parkingFee/img/generaloperation-tjqst-title.png | Bin 0 -> 371 bytes assets/pages/scripts/incomeAnalysisFile/parkingFee/img/geo_pop_offonIco.png | Bin 0 -> 520 bytes assets/pages/scripts/incomeAnalysisFile/parkingFee/img/georeceive_smallIcon.png | Bin 0 -> 3878 bytes assets/pages/scripts/incomeAnalysisFile/parkingFee/img/income-sstj-icon.png | Bin 0 -> 356 bytes assets/pages/scripts/incomeAnalysisFile/parkingFee/img/parkfee-zffs-icon.png | Bin 0 -> 655 bytes assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-bws-top.png | Bin 0 -> 2436 bytes assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-shebei-title.png | Bin 0 -> 568 bytes assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-tip-icon.png | Bin 0 -> 391 bytes assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-zys-top.png | Bin 0 -> 2438 bytes assets/pages/scripts/incomeAnalysisFile/parkingFee/img/terrestrial-allmoney.png | Bin 0 -> 2164 bytes assets/pages/scripts/incomeAnalysisFile/parkingFee/img/way-echarts-l.png | Bin 0 -> 6632 bytes assets/pages/scripts/incomeAnalysisFile/parkingFee/img/way-echarts-r.png | Bin 0 -> 6867 bytes assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.css | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.html | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.js | 1134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomeAnalysisFile/tollincome/tollincome.css | 3 +++ assets/pages/scripts/incomeAnalysisFile/tollincome/tollincome.html | 186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomeAnalysisFile/tollincome/tollincome.js | 658 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomereportFile/incomeCasier/img/card-caiserperson-icon.png | Bin 0 -> 2675 bytes assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-1.png | Bin 0 -> 1765 bytes assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-2.png | Bin 0 -> 2725 bytes assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-3.png | Bin 0 -> 1873 bytes assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-4.png | Bin 0 -> 1942 bytes assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-5.png | Bin 0 -> 2857 bytes assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.css | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.html | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.js | 440 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomereportFile/incomeParking/img/incomecasier-li-1.png | Bin 0 -> 1765 bytes assets/pages/scripts/incomereportFile/incomeParking/img/incomecasier-li-2.png | Bin 0 -> 2293 bytes assets/pages/scripts/incomereportFile/incomeParking/img/incomecasier-li-3.png | Bin 0 -> 1873 bytes assets/pages/scripts/incomereportFile/incomeParking/img/incomecasier-li-4.png | Bin 0 -> 2810 bytes assets/pages/scripts/incomereportFile/incomeParking/img/incomestates-li-5.png | Bin 0 -> 2698 bytes assets/pages/scripts/incomereportFile/incomeParking/incomeparking.css | 191 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomereportFile/incomeParking/incomeparking.html | 257 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomereportFile/incomeParking/incomeparking.js | 1171 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomereportFile/incomesTmp.js | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/incomereportFile/jprint.js | 254 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/inspectionFile/inspectionGroup/inspectiongroup.css | 28 ++++++++++++++++++++++++++++ assets/pages/scripts/inspectionFile/inspectionGroup/inspectiongroup.html | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/inspectionFile/inspectionGroup/inspectiongroup.js | 607 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/inspectionFile/inspectionPer/inspectionper-nodata.png | Bin 0 -> 2685 bytes assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.css | 432 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.html | 613 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.js | 1058 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/inspectionFile/inspectionPer/nosign-icon.png | Bin 0 -> 4251 bytes assets/pages/scripts/inspectionFile/inspectionPer/sign-icon.png | Bin 0 -> 3962 bytes assets/pages/scripts/inspectionFile/inspectionPer/signed_icon.png | Bin 0 -> 3979 bytes assets/pages/scripts/inspectionFile/inspectionPer/tollcollectormanage-head.png | Bin 0 -> 8660 bytes assets/pages/scripts/inspectionFile/inspectionTmp.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/inspectionFile/inspectionreport/caryard-basic-ifo.png | Bin 0 -> 1953 bytes assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.css | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.html | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.js | 460 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/inspectionFile/inspectionreport/patrol-con-wrap-pic.png | Bin 0 -> 3221 bytes assets/pages/scripts/linkedSelect/linkedSelect.js | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/linkedSelect/linkedSelectValues.js | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/lllegalManage/endorFile/endorsement.css | 11 +++++++++++ assets/pages/scripts/lllegalManage/endorFile/endorsement.html | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/lllegalManage/endorFile/endorsement.js | 326 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/lllegalManage/lllegalTmp.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.css | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.html | 217 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.js | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/login.min.js | 325 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/managereport/allparkrecordsFinance.js | 1175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/managereport/billmanage.js | 1072 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/managereport/companysettlement.js | 906 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/managereport/devicereport.js | 339 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/managereport/invoicemanage.js | 531 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/managereport/reconciliation.js | 1058 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/managereport/remainingsum.js | 0 assets/pages/scripts/managereport/settlementmanage.js | 823 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/managereport/temporarysettletob.js | 863 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/managereport/tollaccountmanage.js | 666 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/managereport/tollaudit.js | 345 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/managereport/tollincomeandexp.js | 628 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/managereport/vehicleaudit.js | 651 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/maplib.js | 607 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operMonFile/citydata.js | 26639 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operMonFile/guideMon/guidemonitoring.css | 604 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operMonFile/guideMon/guidemonitoring.html | 231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operMonFile/guideMon/guidemonitoring.js | 991 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operMonFile/img/24h.png | Bin 0 -> 2081 bytes assets/pages/scripts/operMonFile/img/caryard-basic-ifo-fees-wrap.png | Bin 0 -> 2547 bytes assets/pages/scripts/operMonFile/img/caryard-basic-ifo.png | Bin 0 -> 1953 bytes assets/pages/scripts/operMonFile/img/caryard-card-wrap.png | Bin 0 -> 7659 bytes assets/pages/scripts/operMonFile/img/caryard-parking-ifo.png | Bin 0 -> 6719 bytes assets/pages/scripts/operMonFile/img/check-status0.png | Bin 0 -> 486 bytes assets/pages/scripts/operMonFile/img/check-status1.png | Bin 0 -> 458 bytes assets/pages/scripts/operMonFile/img/common/guidance-level1.png | Bin 0 -> 626 bytes assets/pages/scripts/operMonFile/img/common/guidance-level2.png | Bin 0 -> 641 bytes assets/pages/scripts/operMonFile/img/common/guidance-level3.png | Bin 0 -> 381 bytes assets/pages/scripts/operMonFile/img/common/markers.png | Bin 0 -> 28180 bytes assets/pages/scripts/operMonFile/img/common/searchbox.png | Bin 0 -> 3089 bytes assets/pages/scripts/operMonFile/img/guidance_1.png | Bin 0 -> 674 bytes assets/pages/scripts/operMonFile/img/guidance_2.png | Bin 0 -> 738 bytes assets/pages/scripts/operMonFile/img/guidance_3.png | Bin 0 -> 720 bytes assets/pages/scripts/operMonFile/img/guidance_bg1.png | Bin 0 -> 14767 bytes assets/pages/scripts/operMonFile/img/guidance_bg2.png | Bin 0 -> 14804 bytes assets/pages/scripts/operMonFile/img/guidance_bg3.png | Bin 0 -> 15657 bytes assets/pages/scripts/operMonFile/img/guide_first_img_error.png | Bin 0 -> 5832 bytes assets/pages/scripts/operMonFile/img/guideico_level1.jpg | Bin 0 -> 4458 bytes assets/pages/scripts/operMonFile/img/guideico_level2.jpg | Bin 0 -> 4711 bytes assets/pages/scripts/operMonFile/img/guideico_level3.jpg | Bin 0 -> 5503 bytes assets/pages/scripts/operMonFile/img/guidepop_leftico.png | Bin 0 -> 1028 bytes assets/pages/scripts/operMonFile/img/guidepop_rightico.png | Bin 0 -> 1079 bytes assets/pages/scripts/operMonFile/img/guipop_closeico.png | Bin 0 -> 974 bytes assets/pages/scripts/operMonFile/img/index-card-title.png | Bin 0 -> 3629 bytes assets/pages/scripts/operMonFile/img/legendMap_icon1.png | Bin 0 -> 1227 bytes assets/pages/scripts/operMonFile/img/legendMap_icon2.png | Bin 0 -> 1238 bytes assets/pages/scripts/operMonFile/img/legendMap_icon3.png | Bin 0 -> 1222 bytes assets/pages/scripts/operMonFile/img/main-left-click.png | Bin 0 -> 776 bytes assets/pages/scripts/operMonFile/img/main-left.png | Bin 0 -> 770 bytes assets/pages/scripts/operMonFile/img/map/PDA.png | Bin 0 -> 2651 bytes assets/pages/scripts/operMonFile/img/map/guidescreen.png | Bin 0 -> 3003 bytes assets/pages/scripts/operMonFile/img/map/index.png | Bin 0 -> 2654 bytes assets/pages/scripts/operMonFile/img/maxheight_2m.png | Bin 0 -> 3704 bytes assets/pages/scripts/operMonFile/img/offlineIcon.png | Bin 0 -> 501 bytes assets/pages/scripts/operMonFile/img/onlineIcon.png | Bin 0 -> 470 bytes assets/pages/scripts/operMonFile/img/parkData-icon.png | Bin 0 -> 1080 bytes assets/pages/scripts/operMonFile/img/parkIcon1.png | Bin 0 -> 2195 bytes assets/pages/scripts/operMonFile/img/parkIcon2.png | Bin 0 -> 2252 bytes assets/pages/scripts/operMonFile/img/parkIcon3.png | Bin 0 -> 2243 bytes assets/pages/scripts/operMonFile/img/parkName_icon.png | Bin 0 -> 655 bytes assets/pages/scripts/operMonFile/img/parkPopicon.png | Bin 0 -> 378 bytes assets/pages/scripts/operMonFile/img/pda-icon.png | Bin 0 -> 1108 bytes assets/pages/scripts/operMonFile/img/pdaIco.png | Bin 0 -> 1801 bytes assets/pages/scripts/operMonFile/img/pdaIco1.png | Bin 0 -> 2109 bytes assets/pages/scripts/operMonFile/img/pdaIcon.png | Bin 0 -> 1037 bytes assets/pages/scripts/operMonFile/img/poly_icon.png | Bin 0 -> 15010 bytes assets/pages/scripts/operMonFile/img/secIcon.png | Bin 0 -> 1120 bytes assets/pages/scripts/operMonFile/img/ser-btn.png | Bin 0 -> 422 bytes assets/pages/scripts/operMonFile/img/timeusage.png | Bin 0 -> 1439 bytes assets/pages/scripts/operMonFile/img/turn-around.png | Bin 0 -> 14787 bytes assets/pages/scripts/operMonFile/img/turn-left.png | Bin 0 -> 14695 bytes assets/pages/scripts/operMonFile/img/turn-right.png | Bin 0 -> 14686 bytes assets/pages/scripts/operMonFile/img/turnover_right.png | Bin 0 -> 14641 bytes assets/pages/scripts/operMonFile/operMonfile.css | 0 assets/pages/scripts/operMonFile/operMonfile.js | 198 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operMonFile/opercommon.css | 489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.css | 846 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.html | 242 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.js | 1189 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.css | 786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.html | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.js | 1189 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operationFile/img/dayparkinglength-greencar.png | Bin 0 -> 754 bytes assets/pages/scripts/operationFile/img/dayparkinglength-redcar.png | Bin 0 -> 479 bytes assets/pages/scripts/operationFile/lengthofParking/lengthofparking.css | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operationFile/lengthofParking/lengthofparking.html | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operationFile/lengthofParking/lengthofparking.js | 970 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operationFile/operationanaTmp.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operationFile/vehicleFlow/vehicelfow.js | 703 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operationFile/vehicleFlow/vehicleflow.css | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/operationFile/vehicleFlow/vehicleflow.html | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/orderManagement/abnormalrecords.js | 414 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/orderManagement/allparkrecords.js | 1570 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/orderManagement/endorsement.js | 313 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/orderManagement/geomagneticincome.js | 385 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/orderManagement/oddchange.js | 459 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/orderManagement/parkingarrears.js | 630 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/orderManagement/parkingmanage.js | 825 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/orderManagement/peccancymanage.js | 278 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/appactive/appactivity.css | 6 ++++++ assets/pages/scripts/otherSetting/appactive/appactivity.html | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/appactive/appactivity.js | 273 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/apprel/apprelease.css | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/apprel/apprelease.html | 312 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/apprel/apprelease.js | 699 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/apprel/qrcode.min.js | 1 + assets/pages/scripts/otherSetting/couponFile/couponsetting.css | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/couponFile/couponsetting.html | 382 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/couponFile/couponsetting.js | 1174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/disCount/discountrule.css | 531 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/disCount/discountrule.html | 822 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/disCount/discountrule.js | 2286 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/giftRule/giftrules.css | 27 +++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/giftRule/giftrules.html | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/giftRule/giftrules.js | 797 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/img/Lineright-icon.png | Bin 0 -> 457 bytes assets/pages/scripts/otherSetting/img/bgBlue-icon.png | Bin 0 -> 839 bytes assets/pages/scripts/otherSetting/img/bgGray-icon.png | Bin 0 -> 738 bytes assets/pages/scripts/otherSetting/img/car-bg.png | Bin 0 -> 21353 bytes assets/pages/scripts/otherSetting/img/carBig-icon.png | Bin 0 -> 666 bytes assets/pages/scripts/otherSetting/img/carSmall-icon.png | Bin 0 -> 673 bytes assets/pages/scripts/otherSetting/img/chargingrule-circle-blue.png | Bin 0 -> 4762 bytes assets/pages/scripts/otherSetting/img/chargingrule-circle-green.png | Bin 0 -> 4799 bytes assets/pages/scripts/otherSetting/img/chargingrule-circle-yellow.png | Bin 0 -> 4696 bytes assets/pages/scripts/otherSetting/img/chargingrule-more.png | Bin 0 -> 1238 bytes assets/pages/scripts/otherSetting/img/chargingrule-time.png | Bin 0 -> 8732 bytes assets/pages/scripts/otherSetting/img/chargingrule_smallIcon.png | Bin 0 -> 3878 bytes assets/pages/scripts/otherSetting/img/dataicon.png | Bin 0 -> 466 bytes assets/pages/scripts/otherSetting/img/day-iconbg.png | Bin 0 -> 16058 bytes assets/pages/scripts/otherSetting/img/delList-icon.png | Bin 0 -> 534 bytes assets/pages/scripts/otherSetting/img/delete_Rule.png | Bin 0 -> 2309 bytes assets/pages/scripts/otherSetting/img/discountrule_bgIco.png | Bin 0 -> 1914 bytes assets/pages/scripts/otherSetting/img/discountrule_topBgico.png | Bin 0 -> 3110 bytes assets/pages/scripts/otherSetting/img/find_icon.png | Bin 0 -> 611 bytes assets/pages/scripts/otherSetting/img/input-checkbox.png | Bin 0 -> 304 bytes assets/pages/scripts/otherSetting/img/input-checkexActive.png | Bin 0 -> 208 bytes assets/pages/scripts/otherSetting/img/input-radio-active.png | Bin 0 -> 666 bytes assets/pages/scripts/otherSetting/img/input-radio.png | Bin 0 -> 1104 bytes assets/pages/scripts/otherSetting/img/left-modal-bg.png | Bin 0 -> 1800 bytes assets/pages/scripts/otherSetting/img/left-type-2.png | Bin 0 -> 1266 bytes assets/pages/scripts/otherSetting/img/left-type.png | Bin 0 -> 1718 bytes assets/pages/scripts/otherSetting/img/night-iconbg.png | Bin 0 -> 15983 bytes assets/pages/scripts/otherSetting/img/park_yhq.png | Bin 0 -> 9916 bytes assets/pages/scripts/otherSetting/img/parkclose_icon.png | Bin 0 -> 338 bytes assets/pages/scripts/otherSetting/img/popParknullIco.png | Bin 0 -> 967 bytes assets/pages/scripts/otherSetting/img/truelist-blue.png | Bin 0 -> 2215 bytes assets/pages/scripts/otherSetting/img/truelist-green.png | Bin 0 -> 2398 bytes assets/pages/scripts/otherSetting/img/truelist-orange.png | Bin 0 -> 2393 bytes assets/pages/scripts/otherSetting/img/vipcardrule-1.png | Bin 0 -> 1173 bytes assets/pages/scripts/otherSetting/img/vipcardrule-2.png | Bin 0 -> 1144 bytes assets/pages/scripts/otherSetting/img/vipcardrule-3.png | Bin 0 -> 1144 bytes assets/pages/scripts/otherSetting/img/vipcardrule-blue.png | Bin 0 -> 18075 bytes assets/pages/scripts/otherSetting/img/vipcardrule-edit-1.png | Bin 0 -> 1270 bytes assets/pages/scripts/otherSetting/img/vipcardrule-edit-2.png | Bin 0 -> 1243 bytes assets/pages/scripts/otherSetting/img/vipcardrule-edit-3.png | Bin 0 -> 1243 bytes assets/pages/scripts/otherSetting/img/vipcardrule-green.png | Bin 0 -> 13344 bytes assets/pages/scripts/otherSetting/img/vipcardrule-red.png | Bin 0 -> 18510 bytes assets/pages/scripts/otherSetting/img/vipcardrule-yellow.png | Bin 0 -> 18698 bytes assets/pages/scripts/otherSetting/othersetTmp.js | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/settleRule/settlerule.css | 0 assets/pages/scripts/otherSetting/settleRule/settlerule.html | 2 ++ assets/pages/scripts/otherSetting/settleRule/settlerule.js | 0 assets/pages/scripts/otherSetting/whiteList/whitelist.css | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/whiteList/whitelist.html | 439 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/whiteList/whitelist.js | 1580 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/xxcoupon/undercoupon.css | 40 ++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/xxcoupon/undercoupon.html | 191 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/otherSetting/xxcoupon/undercoupon.js | 746 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parkingshareFile/css/img/areamanage_baidimapIco.png | Bin 0 -> 568 bytes assets/pages/scripts/parkingshareFile/css/img/dataicon.png | Bin 0 -> 466 bytes assets/pages/scripts/parkingshareFile/css/img/input-checkbox.png | Bin 0 -> 304 bytes assets/pages/scripts/parkingshareFile/css/img/input-checkexActive.png | Bin 0 -> 208 bytes assets/pages/scripts/parkingshareFile/css/img/input-radio-active.png | Bin 0 -> 666 bytes assets/pages/scripts/parkingshareFile/css/img/input-radio.png | Bin 0 -> 1104 bytes assets/pages/scripts/parkingshareFile/css/img/parkpoishareadd.css | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parkingshareFile/css/img/shareParkPorIco.png | Bin 0 -> 10986 bytes assets/pages/scripts/parkingshareFile/css/img/shareParkworkIco.png | Bin 0 -> 24267 bytes assets/pages/scripts/parkingshareFile/css/img/sharesettle-c-bottom.png | Bin 0 -> 2166 bytes assets/pages/scripts/parkingshareFile/css/img/sharesettle-c-top.png | Bin 0 -> 2187 bytes assets/pages/scripts/parkingshareFile/css/img/sharesettle-l-img.png | Bin 0 -> 38514 bytes assets/pages/scripts/parkingshareFile/css/img/sharesettle-r-bottom.png | Bin 0 -> 1667 bytes assets/pages/scripts/parkingshareFile/css/img/sharesettle-r-top.png | Bin 0 -> 2299 bytes assets/pages/scripts/parkingshareFile/css/img/sharespaceCirle.png | Bin 0 -> 679 bytes assets/pages/scripts/parkingshareFile/css/parkpoishareadd.css | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parkingshareFile/css/sharesettle.css | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parkingshareFile/pages/parkpoishareadd.html | 234 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parkingshareFile/pages/sharesettle.html | 224 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parkingshareFile/parkpoishareadd.js | 941 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parkingshareFile/sharesettle.js | 809 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/areamanage/areamanagement.css | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/areamanage/areamanagement.html | 822 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/areamanage/img/areamanage_baidimapIco.png | Bin 0 -> 568 bytes assets/pages/scripts/parksetFile/areamanage/img/dataicon.png | Bin 0 -> 466 bytes assets/pages/scripts/parksetFile/areamanage/img/input-checkbox.png | Bin 0 -> 304 bytes assets/pages/scripts/parksetFile/areamanage/img/input-checkexActive.png | Bin 0 -> 208 bytes assets/pages/scripts/parksetFile/areamanage/img/input-radio-active.png | Bin 0 -> 666 bytes assets/pages/scripts/parksetFile/areamanage/img/input-radio.png | Bin 0 -> 1104 bytes assets/pages/scripts/parksetFile/areamanagement.js | 2100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/berthInterval/berthinterval.css | 15 +++++++++++++++ assets/pages/scripts/parksetFile/berthInterval/berthinterval.html | 256 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/berthInterval/img/areamanage_baidimapIco.png | Bin 0 -> 568 bytes assets/pages/scripts/parksetFile/berthInterval/img/dataicon.png | Bin 0 -> 466 bytes assets/pages/scripts/parksetFile/berthInterval/img/input-checkbox.png | Bin 0 -> 304 bytes assets/pages/scripts/parksetFile/berthInterval/img/input-checkexActive.png | Bin 0 -> 208 bytes assets/pages/scripts/parksetFile/berthInterval/img/input-radio-active.png | Bin 0 -> 666 bytes assets/pages/scripts/parksetFile/berthInterval/img/input-radio.png | Bin 0 -> 1104 bytes assets/pages/scripts/parksetFile/berthManage/berthmanagement.css | 21 +++++++++++++++++++++ assets/pages/scripts/parksetFile/berthManage/berthmanagement.html | 370 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/berthManage/img/areamanage_baidimapIco.png | Bin 0 -> 568 bytes assets/pages/scripts/parksetFile/berthManage/img/dataicon.png | Bin 0 -> 466 bytes assets/pages/scripts/parksetFile/berthManage/img/input-checkbox.png | Bin 0 -> 304 bytes assets/pages/scripts/parksetFile/berthManage/img/input-checkexActive.png | Bin 0 -> 208 bytes assets/pages/scripts/parksetFile/berthManage/img/input-radio-active.png | Bin 0 -> 666 bytes assets/pages/scripts/parksetFile/berthManage/img/input-radio.png | Bin 0 -> 1104 bytes assets/pages/scripts/parksetFile/berthfile/berthmanagement.css | 27 +++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/berthfile/berthmanagement.html | 457 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/berthfile/img/areamanage_baidimapIco.png | Bin 0 -> 568 bytes assets/pages/scripts/parksetFile/berthfile/img/dataicon.png | Bin 0 -> 466 bytes assets/pages/scripts/parksetFile/berthfile/img/input-checkbox.png | Bin 0 -> 304 bytes assets/pages/scripts/parksetFile/berthfile/img/input-checkexActive.png | Bin 0 -> 208 bytes assets/pages/scripts/parksetFile/berthfile/img/input-radio-active.png | Bin 0 -> 666 bytes assets/pages/scripts/parksetFile/berthfile/img/input-radio.png | Bin 0 -> 1104 bytes assets/pages/scripts/parksetFile/berthinterval.js | 985 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/berthmanage.js | 1231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/berthmanagement.js | 1200 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/norberfile/normalberth.css | 0 assets/pages/scripts/parksetFile/norberfile/normalberth.html | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/normalberth.js | 258 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/parksetFile/parksetTmp.js | 43 +++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/public/amazeui.min.js | 8 ++++++++ assets/pages/scripts/public/common-date.js | 0 assets/pages/scripts/public/common-download.js | 44 ++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/public/common-jquery.js | 13 +++++++++++++ assets/pages/scripts/public/common-select.js | 395 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/public/cropper.min.js | 10 ++++++++++ assets/pages/scripts/public/custom_up_img.js | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/public/echarts-liquidfill.js | 5 +++++ assets/pages/scripts/public/echarts.all.js | 35 +++++++++++++++++++++++++++++++++++ assets/pages/scripts/public/header-navbar.js | 1051 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/public/header-navbar.jsbak | 1051 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/public/header-navbar.jsbak1 | 1050 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/public/jqprint.js | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/public/jquery.form.js | 1277 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/public/pieCircle.js | 5 +++++ assets/pages/scripts/public/supersized-init.js | 30 ++++++++++++++++++++++++++++++ assets/pages/scripts/public/supersized.3.2.7.min.js | 13 +++++++++++++ assets/pages/scripts/public/unit.js | 3893 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/public/util.js | 249 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/refundSta/refundfile/ltrefund.css | 0 assets/pages/scripts/refundSta/refundfile/ltrefund.html | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/refundSta/refundfile/ltrefund.js | 377 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/refundSta/refundstaTmp.js | 40 ++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/refundfile/apprefund/apprefund.css | 0 assets/pages/scripts/refundfile/apprefund/apprefund.html | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/refundfile/apprefund/apprefund.js | 517 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/refundfile/ltred/ltrefund.css | 0 assets/pages/scripts/refundfile/ltred/ltrefund.html | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/refundfile/ltred/ltrefund.js | 377 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/refundfile/lttk/temprefund.css | 294 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/refundfile/lttk/temprefund.html | 349 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/refundfile/lttk/temprefund.js | 822 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/refundfile/refundTmp.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/remsum/appmenuFile/remsum.css | 0 assets/pages/scripts/remsum/appmenuFile/remsum.html | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/remsum/appmenuFile/remsum.js | 490 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/remsum/sumTmp.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/rulesetFile/analFile/analogbilling.css | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/rulesetFile/analFile/analogbilling.html | 254 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/rulesetFile/analFile/analogbilling.js | 624 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/rulesetFile/chargingRule/chargingrule.css | 483 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/rulesetFile/chargingRule/chargingrule.html | 657 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/rulesetFile/chargingRule/chargingrule.js | 1303 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/rulesetFile/img/Lineright-icon.png | Bin 0 -> 457 bytes assets/pages/scripts/rulesetFile/img/bgBlue-icon.png | Bin 0 -> 839 bytes assets/pages/scripts/rulesetFile/img/bgGray-icon.png | Bin 0 -> 738 bytes assets/pages/scripts/rulesetFile/img/carBig-icon.png | Bin 0 -> 666 bytes assets/pages/scripts/rulesetFile/img/carSmall-icon.png | Bin 0 -> 673 bytes assets/pages/scripts/rulesetFile/img/chargingrule-circle-blue.png | Bin 0 -> 3912 bytes assets/pages/scripts/rulesetFile/img/chargingrule-circle-green.png | Bin 0 -> 3800 bytes assets/pages/scripts/rulesetFile/img/chargingrule-circle-yellow.png | Bin 0 -> 3910 bytes assets/pages/scripts/rulesetFile/img/chargingrule-more.png | Bin 0 -> 1238 bytes assets/pages/scripts/rulesetFile/img/chargingrule-time.png | Bin 0 -> 8732 bytes assets/pages/scripts/rulesetFile/img/chargingrule_smallIcon.png | Bin 0 -> 19041 bytes assets/pages/scripts/rulesetFile/img/dataicon.png | Bin 0 -> 466 bytes assets/pages/scripts/rulesetFile/img/day-iconbg.png | Bin 0 -> 16058 bytes assets/pages/scripts/rulesetFile/img/delList-icon.png | Bin 0 -> 534 bytes assets/pages/scripts/rulesetFile/img/delete_Rule.png | Bin 0 -> 2309 bytes assets/pages/scripts/rulesetFile/img/discountrule_bgIco.png | Bin 0 -> 1914 bytes assets/pages/scripts/rulesetFile/img/discountrule_topBgico.png | Bin 0 -> 3110 bytes assets/pages/scripts/rulesetFile/img/find_icon.png | Bin 0 -> 611 bytes assets/pages/scripts/rulesetFile/img/input-checkbox.png | Bin 0 -> 304 bytes assets/pages/scripts/rulesetFile/img/input-checkexActive.png | Bin 0 -> 208 bytes assets/pages/scripts/rulesetFile/img/input-radio-active.png | Bin 0 -> 666 bytes assets/pages/scripts/rulesetFile/img/input-radio.png | Bin 0 -> 1104 bytes assets/pages/scripts/rulesetFile/img/night-iconbg.png | Bin 0 -> 15983 bytes assets/pages/scripts/rulesetFile/img/parkclose_icon.png | Bin 0 -> 338 bytes assets/pages/scripts/rulesetFile/img/popParknullIco.png | Bin 0 -> 967 bytes assets/pages/scripts/rulesetFile/img/rule_add.png | Bin 0 -> 211 bytes assets/pages/scripts/rulesetFile/img/rule_del.png | Bin 0 -> 176 bytes assets/pages/scripts/rulesetFile/img/truelist-blue.png | Bin 0 -> 2215 bytes assets/pages/scripts/rulesetFile/img/truelist-green.png | Bin 0 -> 2398 bytes assets/pages/scripts/rulesetFile/img/truelist-orange.png | Bin 0 -> 2393 bytes assets/pages/scripts/rulesetFile/img/vipcardrule-1.png | Bin 0 -> 1173 bytes assets/pages/scripts/rulesetFile/img/vipcardrule-2.png | Bin 0 -> 1144 bytes assets/pages/scripts/rulesetFile/img/vipcardrule-3.png | Bin 0 -> 1144 bytes assets/pages/scripts/rulesetFile/img/vipcardrule-blue.png | Bin 0 -> 18075 bytes assets/pages/scripts/rulesetFile/img/vipcardrule-edit-1.png | Bin 0 -> 1270 bytes assets/pages/scripts/rulesetFile/img/vipcardrule-edit-2.png | Bin 0 -> 1243 bytes assets/pages/scripts/rulesetFile/img/vipcardrule-edit-3.png | Bin 0 -> 1243 bytes assets/pages/scripts/rulesetFile/img/vipcardrule-green.png | Bin 0 -> 13344 bytes assets/pages/scripts/rulesetFile/img/vipcardrule-red.png | Bin 0 -> 18510 bytes assets/pages/scripts/rulesetFile/img/vipcardrule-yellow.png | Bin 0 -> 18698 bytes assets/pages/scripts/rulesetFile/rateFile/ratemanage.css | 400 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/rulesetFile/rateFile/ratemanage.html | 348 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/rulesetFile/rateFile/ratemanage.js | 1278 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/rulesetFile/rulesetTmp.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/schedulingFile/img/plan-cashier-Ico.png | Bin 0 -> 354 bytes assets/pages/scripts/schedulingFile/img/replace-person-left.png | Bin 0 -> 172 bytes assets/pages/scripts/schedulingFile/img/replace-person-right.png | Bin 0 -> 172 bytes assets/pages/scripts/schedulingFile/img/replace-person.png | Bin 0 -> 249 bytes assets/pages/scripts/schedulingFile/img/schedulingplan-replace-wrap.png | Bin 0 -> 772 bytes assets/pages/scripts/schedulingFile/schedleTmp.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.css | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.html | 249 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.js | 882 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.css | 496 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.html | 1678 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.js | 3043 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/servicemanage/css/myworklist.css | 199 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/servicemanage/css/workordermanage.css | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/servicemanage/myworklist.js | 1057 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/servicemanage/pages/workordermanage.html | 330 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/servicemanage/workordermanage.js | 1052 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/settleFile/settlementmanage.js | 0 assets/pages/scripts/settleFile/temporarysettletob.js | 868 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/shootFile/endorfile/endorsement.css | 21 +++++++++++++++++++++ assets/pages/scripts/shootFile/endorfile/endorsement.html | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/shootFile/endorfile/endorsement.js | 438 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/shootFile/roadfile/roadviolation.css | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/shootFile/roadfile/roadviolation.html | 165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/shootFile/roadfile/roadviolation.js | 689 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/shootFile/shootTmp.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/textIconOverlay.js | 1040 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/auditofToll/auditoftoll.css | 33 +++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/auditofToll/auditoftoll.html | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/auditofToll/auditoftoll.js | 1026 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/cashierAudit/cashieraudit.css | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/cashierAudit/cashieraudit.html | 0 assets/pages/scripts/tollFile/cashierAudit/cashieraudit.js | 1018 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/chargeFile/chargesign.css | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/chargeFile/chargesign.html | 0 assets/pages/scripts/tollFile/chargeFile/chargesign.js | 899 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/chargeFile/cricleico.png | Bin 0 -> 1153 bytes assets/pages/scripts/tollFile/chargeFile/toll_qdcard_all.png | Bin 0 -> 1237 bytes assets/pages/scripts/tollFile/chargeFile/toll_qdcard_no.png | Bin 0 -> 1649 bytes assets/pages/scripts/tollFile/chargeFile/toll_qdcard_true.png | Bin 0 -> 1854 bytes assets/pages/scripts/tollFile/chargeGroup/chargegroup.css | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/chargeGroup/chargegroup.html | 239 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/chargeGroup/chargegroup.js | 443 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/chargeGroup/img/chargegroup_smallIcon.png | Bin 0 -> 3878 bytes assets/pages/scripts/tollFile/tollChecker/tollchecker.css | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/tollChecker/tollchecker.html | 0 assets/pages/scripts/tollFile/tollChecker/tollchecker.js | 673 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/tollCollector/inspectionper-nodata.png | Bin 0 -> 2685 bytes assets/pages/scripts/tollFile/tollCollector/nosign-icon.png | Bin 0 -> 4251 bytes assets/pages/scripts/tollFile/tollCollector/sign-icon.png | Bin 0 -> 3962 bytes assets/pages/scripts/tollFile/tollCollector/signed_icon.png | Bin 0 -> 3979 bytes assets/pages/scripts/tollFile/tollCollector/tollcollector.css | 490 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/tollCollector/tollcollector.html | 0 assets/pages/scripts/tollFile/tollCollector/tollcollector.js | 2601 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/tollFile/tollCollector/tollcollectormanage-head.png | Bin 0 -> 8660 bytes assets/pages/scripts/tollFile/tollfileTmp.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/cardRule/cardrule.js | 2117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/cardRule/css/cardrule.css | 419 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/cardRule/img/cardrule-person-ico.png | Bin 0 -> 2317 bytes assets/pages/scripts/vipmanageFile/cardRule/img/pop_unload.png | Bin 0 -> 132 bytes assets/pages/scripts/vipmanageFile/cardRule/img/pop_upload.png | Bin 0 -> 201 bytes assets/pages/scripts/vipmanageFile/cardRule/img/pop_word_ico.png | Bin 0 -> 715 bytes assets/pages/scripts/vipmanageFile/cardRule/page/cardrule.html | 514 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.css | 302 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.html | 465 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.js | 1205 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/cardruleSetting/img/Lineright-icon.png | Bin 0 -> 457 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/bgBlue-icon.png | Bin 0 -> 839 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/bgGray-icon.png | Bin 0 -> 738 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/carBig-icon.png | Bin 0 -> 666 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/carSmall-icon.png | Bin 0 -> 673 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-blue.png | Bin 0 -> 4762 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-green.png | Bin 0 -> 4799 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-yellow.png | Bin 0 -> 4696 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-more.png | Bin 0 -> 1238 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-time.png | Bin 0 -> 8732 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule_smallIcon.png | Bin 0 -> 3878 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/dataicon.png | Bin 0 -> 466 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/day-iconbg.png | Bin 0 -> 16058 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/delList-icon.png | Bin 0 -> 534 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/delete_Rule.png | Bin 0 -> 2309 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/discountrule_bgIco.png | Bin 0 -> 1914 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/discountrule_topBgico.png | Bin 0 -> 3110 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/find_icon.png | Bin 0 -> 611 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-checkbox.png | Bin 0 -> 304 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-checkexActive.png | Bin 0 -> 208 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-radio-active.png | Bin 0 -> 666 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-radio.png | Bin 0 -> 1104 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/night-iconbg.png | Bin 0 -> 15983 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/parkclose_icon.png | Bin 0 -> 338 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/popParknullIco.png | Bin 0 -> 967 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-blue.png | Bin 0 -> 2215 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-green.png | Bin 0 -> 2398 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-orange.png | Bin 0 -> 2393 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-1.png | Bin 0 -> 1173 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-2.png | Bin 0 -> 1144 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-3.png | Bin 0 -> 1144 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-blue.png | Bin 0 -> 18075 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-1.png | Bin 0 -> 1270 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-2.png | Bin 0 -> 1243 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-3.png | Bin 0 -> 1243 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-green.png | Bin 0 -> 13344 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-red.png | Bin 0 -> 18510 bytes assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-yellow.png | Bin 0 -> 18698 bytes assets/pages/scripts/vipmanageFile/img/Lineright-icon.png | Bin 0 -> 457 bytes assets/pages/scripts/vipmanageFile/img/bgBlue-icon.png | Bin 0 -> 839 bytes assets/pages/scripts/vipmanageFile/img/bgGray-icon.png | Bin 0 -> 738 bytes assets/pages/scripts/vipmanageFile/img/carBig-icon.png | Bin 0 -> 666 bytes assets/pages/scripts/vipmanageFile/img/carSmall-icon.png | Bin 0 -> 673 bytes assets/pages/scripts/vipmanageFile/img/chargingrule-circle-blue.png | Bin 0 -> 4762 bytes assets/pages/scripts/vipmanageFile/img/chargingrule-circle-green.png | Bin 0 -> 4799 bytes assets/pages/scripts/vipmanageFile/img/chargingrule-circle-yellow.png | Bin 0 -> 4696 bytes assets/pages/scripts/vipmanageFile/img/chargingrule-more.png | Bin 0 -> 1238 bytes assets/pages/scripts/vipmanageFile/img/chargingrule-time.png | Bin 0 -> 8732 bytes assets/pages/scripts/vipmanageFile/img/chargingrule_smallIcon.png | Bin 0 -> 3878 bytes assets/pages/scripts/vipmanageFile/img/dataicon.png | Bin 0 -> 466 bytes assets/pages/scripts/vipmanageFile/img/day-iconbg.png | Bin 0 -> 16058 bytes assets/pages/scripts/vipmanageFile/img/delList-icon.png | Bin 0 -> 534 bytes assets/pages/scripts/vipmanageFile/img/delete_Rule.png | Bin 0 -> 2309 bytes assets/pages/scripts/vipmanageFile/img/discountrule_bgIco.png | Bin 0 -> 1914 bytes assets/pages/scripts/vipmanageFile/img/discountrule_topBgico.png | Bin 0 -> 3110 bytes assets/pages/scripts/vipmanageFile/img/find_icon.png | Bin 0 -> 611 bytes assets/pages/scripts/vipmanageFile/img/input-checkbox.png | Bin 0 -> 304 bytes assets/pages/scripts/vipmanageFile/img/input-checkexActive.png | Bin 0 -> 208 bytes assets/pages/scripts/vipmanageFile/img/input-radio-active.png | Bin 0 -> 666 bytes assets/pages/scripts/vipmanageFile/img/input-radio.png | Bin 0 -> 1104 bytes assets/pages/scripts/vipmanageFile/img/night-iconbg.png | Bin 0 -> 15983 bytes assets/pages/scripts/vipmanageFile/img/parkclose_icon.png | Bin 0 -> 338 bytes assets/pages/scripts/vipmanageFile/img/popParknullIco.png | Bin 0 -> 967 bytes assets/pages/scripts/vipmanageFile/img/truelist-blue.png | Bin 0 -> 2215 bytes assets/pages/scripts/vipmanageFile/img/truelist-green.png | Bin 0 -> 2398 bytes assets/pages/scripts/vipmanageFile/img/truelist-orange.png | Bin 0 -> 2393 bytes assets/pages/scripts/vipmanageFile/img/vipcardrule-1.png | Bin 0 -> 1173 bytes assets/pages/scripts/vipmanageFile/img/vipcardrule-2.png | Bin 0 -> 1144 bytes assets/pages/scripts/vipmanageFile/img/vipcardrule-3.png | Bin 0 -> 1144 bytes assets/pages/scripts/vipmanageFile/img/vipcardrule-blue.png | Bin 0 -> 18075 bytes assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-1.png | Bin 0 -> 1270 bytes assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-2.png | Bin 0 -> 1243 bytes assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-3.png | Bin 0 -> 1243 bytes assets/pages/scripts/vipmanageFile/img/vipcardrule-green.png | Bin 0 -> 13344 bytes assets/pages/scripts/vipmanageFile/img/vipcardrule-red.png | Bin 0 -> 18510 bytes assets/pages/scripts/vipmanageFile/img/vipcardrule-yellow.png | Bin 0 -> 18698 bytes assets/pages/scripts/vipmanageFile/vipStatistics/css/vipstatistics.css | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/vipStatistics/page/vipstatistics.html | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/vipStatistics/vipstatistics.js | 633 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/vipmanageTmp.js | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/whiteList/whitelist.css | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/whiteList/whitelist.html | 465 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/vipmanageFile/whiteList/whitelist.js | 1929 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/yardoperation/carflowport/carflowport.css | 3 +++ assets/pages/scripts/yardoperation/carflowport/carflowport.html | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/yardoperation/carflowport/carflowport.js | 619 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/yardoperation/parkinglengthport/parkinglengthport.css | 13 +++++++++++++ assets/pages/scripts/yardoperation/parkinglengthport/parkinglengthport.html | 266 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/yardoperation/parkinglengthport/parkinglengthport.js | 654 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/yardoperation/parkinglengthport/parkinglengthport.jsbak | 654 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/pages/scripts/yardoperation/yardoperationTmp.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/.gitignore | 1 + assets/syspages/css/awesome.min.css | 251 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/bootstrap-multiselect.css | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/changePwd.css | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/common.css | 314 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/dictionarymanage.css | 11 +++++++++++ assets/syspages/css/frameworkManage.css | 370 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/jobFuncManage.css | 406 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/loggingManage.css | 9 +++++++++ assets/syspages/css/loginlogmanage.css | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/menuManage.css | 204 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/orgarearelation.css | 397 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/reset.css | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/roleManage.css | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/tLogManage.css | 0 assets/syspages/css/userManage.css | 398 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/userManage.cssbak | 419 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/ztree-v3.5.28/awesomeStyle/awesome.css | 386 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/ztree-v3.5.28/awesomeStyle/awesome.less | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/ztree-v3.5.28/awesomeStyle/fa.less | 480 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/ztree-v3.5.28/awesomeStyle/img/loading.gif | Bin 0 -> 381 bytes assets/syspages/css/ztree-v3.5.28/demo.css | 33 +++++++++++++++++++++++++++++++++ assets/syspages/css/ztree-v3.5.28/metroStyle/img/line_conn.png | Bin 0 -> 933 bytes assets/syspages/css/ztree-v3.5.28/metroStyle/img/loading.gif | Bin 0 -> 381 bytes assets/syspages/css/ztree-v3.5.28/metroStyle/img/metro.gif | Bin 0 -> 4679 bytes assets/syspages/css/ztree-v3.5.28/metroStyle/img/metro.png | Bin 0 -> 20131 bytes assets/syspages/css/ztree-v3.5.28/metroStyle/metroStyle.css | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/1_close.png | Bin 0 -> 601 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/1_open.png | Bin 0 -> 580 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/2.png | Bin 0 -> 570 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/3.png | Bin 0 -> 762 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/4.png | Bin 0 -> 399 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/5.png | Bin 0 -> 710 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/6.png | Bin 0 -> 432 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/7.png | Bin 0 -> 534 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/8.png | Bin 0 -> 529 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/9.png | Bin 0 -> 467 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/line_conn.gif | Bin 0 -> 45 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/loading.gif | Bin 0 -> 381 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/zTreeStandard.gif | Bin 0 -> 5564 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/zTreeStandard.png | Bin 0 -> 11173 bytes assets/syspages/css/ztree-v3.5.28/zTreeStyle/zTreeStyle.css | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/img/add_icon.png | Bin 0 -> 225 bytes assets/syspages/img/arrow_down.png | Bin 0 -> 329 bytes assets/syspages/img/arrow_down_red.png | Bin 0 -> 468 bytes assets/syspages/img/arrow_left.png | Bin 0 -> 287 bytes assets/syspages/img/arrow_right.png | Bin 0 -> 286 bytes assets/syspages/img/change_pwd_success_con.png | Bin 0 -> 1399 bytes assets/syspages/img/date_active.png | Bin 0 -> 484 bytes assets/syspages/img/date_icon.png | Bin 0 -> 282 bytes assets/syspages/img/delete_icon.png | Bin 0 -> 315 bytes assets/syspages/img/login_bg.jpg | Bin 0 -> 33092 bytes assets/syspages/img/login_logo.png | Bin 0 -> 1421 bytes assets/syspages/img/login_out_btn.png | Bin 0 -> 436 bytes assets/syspages/img/login_password.png | Bin 0 -> 330 bytes assets/syspages/img/login_user.png | Bin 0 -> 446 bytes assets/syspages/img/main_l_menu_1.png | Bin 0 -> 478 bytes assets/syspages/img/main_l_menu_2.png | Bin 0 -> 284 bytes assets/syspages/img/search_btn.png | Bin 0 -> 482 bytes assets/syspages/img/sys_logo.png | Bin 0 -> 2779 bytes assets/syspages/img/user_pic.png | Bin 0 -> 3857 bytes assets/syspages/js/common.js | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/dictionarymanage.js | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/DateUtils.js | 544 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/bootstrap-multiselect.js | 1716 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/bootstrap-treeview/bootstrap-treeview.js | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/jquery-migrate-1.2.1.js | 521 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/niceDate.js | 1353 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/niceSelect.js | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/ztree-v3.5.28/jquery-1.4.4.min.js | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.all.js | 3734 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.all.min.js | 165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.core.js | 1913 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.core.min.js | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.excheck.js | 628 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.excheck.min.js | 34 ++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.exedit.js | 1192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.exedit.min.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.exhide.js | 367 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.exhide.min.js | 22 ++++++++++++++++++++++ assets/syspages/js/loggingManage.js | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/loginlogmanage.js | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/logmanagement/css/loginlogmanage.css | 12 ++++++++++++ assets/syspages/js/logmanagement/css/pdalogmanage.css | 0 assets/syspages/js/logmanagement/loginlogmanage.js | 187 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/logmanagement/logmanageTmp.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/logmanagement/pages/loginlogmanage.html | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/logmanagement/pages/pdalogmanage.html | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/logmanagement/pdalogmanage.js | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/menuallot/css/menuManage.css | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/menuallot/css/orgresrelation.css | 397 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/menuallot/menuManage.js | 576 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/menuallot/orgresrelation.js | 452 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/menuallot/pages/menuManage.html | 141 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/menuallot/pages/orgresrelation.html | 34 ++++++++++++++++++++++++++++++++++ assets/syspages/js/menuallot/sysmenuTmp.js | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/css/frameworkManage.css | 372 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/css/jobFuncManage.css | 324 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/css/orgarearelation.css | 397 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/css/roleManage.css | 336 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/css/userManage.css | 398 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/css/userManage.cssbak | 392 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/frameworkManage.js | 888 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/jobFuncManage.js | 901 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/orgarearelation.js | 451 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/orgarearelation_gov.js | 420 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/pages/frameworkManage.html | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/pages/jobFuncManage.html | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/pages/orgarearelation.html | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/pages/roleManage.html | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/pages/userManage.html | 230 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/pages/userManage.htmlbak | 226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/rbacTmp.js | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/roleManage.js | 770 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/userManage.js | 1378 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/rbac/userManage.jsbak | 1359 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/syssetting/changePwd.js | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/syssetting/css/changePwd.css | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/syssetting/page/changePwd.html | 45 +++++++++++++++++++++++++++++++++++++++++++++ assets/syspages/js/syssetting/syssettingTmp.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 1225 files changed, 211537 insertions(+), 0 deletions(-) create mode 100644 assets/pages/config/config.js create mode 100644 assets/pages/css/basicInformation/basicInformation.css create mode 100644 assets/pages/css/basicInformationmod/basicInformationmod.css create mode 100644 assets/pages/css/callCenter/customercenter.css create mode 100755 assets/pages/css/common.css create mode 100644 assets/pages/css/commonsetcss/commonsetcss.css create mode 100644 assets/pages/css/home/caryard.css create mode 100644 assets/pages/css/home/generaloperation.css create mode 100644 assets/pages/css/home/img/berthNoMatches.png create mode 100644 assets/pages/css/home/img/general-li-1.png create mode 100644 assets/pages/css/home/img/general-li-2.png create mode 100644 assets/pages/css/home/img/general-li-3.png create mode 100644 assets/pages/css/home/img/general-li-4.png create mode 100644 assets/pages/css/home/img/general-li-5.png create mode 100755 assets/pages/css/home/img/general-sstj-icon.png create mode 100755 assets/pages/css/home/img/general-zffs-icon.png create mode 100644 assets/pages/css/home/img/updatenoticeBg.png create mode 100644 assets/pages/css/home/img/weekly_titCarIco.png create mode 100644 assets/pages/css/home/img/weekly_titIco.png create mode 100644 assets/pages/css/home/incomeprofile.css create mode 100644 assets/pages/css/home/index.css create mode 100644 assets/pages/css/home/messagecenter.css create mode 100644 assets/pages/css/home/newsnotice.css create mode 100644 assets/pages/css/home/parksingledetail.css create mode 100644 assets/pages/css/home/updatenotice.css create mode 100644 assets/pages/css/home/weekly.css create mode 100755 assets/pages/css/login.css create mode 100644 assets/pages/css/loginold.min.css create mode 100644 assets/pages/css/managereport/allparkrecordsFinance.css create mode 100644 assets/pages/css/managereport/billmanage.css create mode 100644 assets/pages/css/managereport/companysettlement.css create mode 100644 assets/pages/css/managereport/devicereport.css create mode 100644 assets/pages/css/managereport/img/alltotaltab-show-active.png create mode 100644 assets/pages/css/managereport/img/alltotaltab-show.png create mode 100644 assets/pages/css/managereport/img/billmanagebgIco_des.png create mode 100644 assets/pages/css/managereport/img/billmanagement-main-money-1.png create mode 100644 assets/pages/css/managereport/img/billmanagement-main-money-2.png create mode 100644 assets/pages/css/managereport/img/billmanagement-main-money-3.png create mode 100644 assets/pages/css/managereport/img/billmanagement-main-money-4.png create mode 100644 assets/pages/css/managereport/img/billmanagement-title-1.png create mode 100644 assets/pages/css/managereport/img/billmanagement-title-2.png create mode 100644 assets/pages/css/managereport/img/billmanagement-title-3.png create mode 100644 assets/pages/css/managereport/img/billmanagement-title-4.png create mode 100644 assets/pages/css/managereport/img/billmanagement-title-des.png create mode 100644 assets/pages/css/managereport/img/billmanagement-total-1.png create mode 100644 assets/pages/css/managereport/img/billmanagement-total.png create mode 100644 assets/pages/css/managereport/img/shareParkPorIco.png create mode 100644 assets/pages/css/managereport/img/shareParkworkIco.png create mode 100644 assets/pages/css/managereport/img/sharesettle-c-bottom.png create mode 100644 assets/pages/css/managereport/img/sharesettle-c-top.png create mode 100644 assets/pages/css/managereport/img/sharesettle-l-img.png create mode 100644 assets/pages/css/managereport/img/sharesettle-r-bottom.png create mode 100644 assets/pages/css/managereport/img/sharesettle-r-top.png create mode 100644 assets/pages/css/managereport/img/sharespaceCirle.png create mode 100644 assets/pages/css/managereport/img/temporary-arrow-active.png create mode 100644 assets/pages/css/managereport/img/temporary-con-main-1.png create mode 100644 assets/pages/css/managereport/img/temporary-con-main-2.png create mode 100644 assets/pages/css/managereport/img/temporary-con-main-3.png create mode 100644 assets/pages/css/managereport/invoicemanage.css create mode 100644 assets/pages/css/managereport/reconciliation.css create mode 100644 assets/pages/css/managereport/remainingsum.css create mode 100644 assets/pages/css/managereport/settlementmanage.css create mode 100644 assets/pages/css/managereport/temporarysettletob.css create mode 100644 assets/pages/css/managereport/tollaccountmanage.css create mode 100644 assets/pages/css/managereport/tollaudit.css create mode 100644 assets/pages/css/managereport/tollincomeandexp.css create mode 100644 assets/pages/css/managereport/vehicleaudit.css create mode 100644 assets/pages/css/notice/notice.css create mode 100644 assets/pages/css/orderManagement/abnormalrecords.css create mode 100644 assets/pages/css/orderManagement/allparkrecords.css create mode 100644 assets/pages/css/orderManagement/arrearrecord.css create mode 100644 assets/pages/css/orderManagement/endorsement.css create mode 100644 assets/pages/css/orderManagement/geomagneticincome.css create mode 100644 assets/pages/css/orderManagement/img/berthNoMatches.png create mode 100644 assets/pages/css/orderManagement/img/general-li-1.png create mode 100644 assets/pages/css/orderManagement/img/general-li-2.png create mode 100644 assets/pages/css/orderManagement/img/general-li-3.png create mode 100644 assets/pages/css/orderManagement/img/general-li-4.png create mode 100644 assets/pages/css/orderManagement/img/general-li-5.png create mode 100755 assets/pages/css/orderManagement/img/general-sstj-icon.png create mode 100755 assets/pages/css/orderManagement/img/general-zffs-icon.png create mode 100644 assets/pages/css/orderManagement/img/updatenoticeBg.png create mode 100644 assets/pages/css/orderManagement/img/weekly_titCarIco.png create mode 100644 assets/pages/css/orderManagement/img/weekly_titIco.png create mode 100644 assets/pages/css/orderManagement/oddchange.css create mode 100644 assets/pages/css/orderManagement/parkingarrears.css create mode 100644 assets/pages/css/orderManagement/parkingmanage.css create mode 100644 assets/pages/css/orderManagement/peccancymanage.css create mode 100644 assets/pages/css/orderManagement/ymcardorder.css create mode 100644 assets/pages/css/reportStatistics/parkingfee.css create mode 100644 assets/pages/css/theme/blue.css create mode 100644 assets/pages/css/theme/red.css create mode 100644 assets/pages/img/123.jpg create mode 100644 assets/pages/img/ITD-export-btn.png create mode 100644 assets/pages/img/ITD-export-btnhover.png create mode 100644 assets/pages/img/ITD-readall-btn.png create mode 100644 assets/pages/img/ITD-readall-btnhover.png create mode 100755 assets/pages/img/Icon_Save.png create mode 100644 assets/pages/img/Lineright-icon.png create mode 100644 assets/pages/img/agelonge-icon.png create mode 100644 assets/pages/img/alert_close.png create mode 100644 assets/pages/img/ali_pay.png create mode 100644 assets/pages/img/all-car-num-index.png create mode 100644 assets/pages/img/all_money.png create mode 100644 assets/pages/img/allparkrecords-in-out.jpg create mode 100644 assets/pages/img/allparkrecords-in-out.png create mode 100644 assets/pages/img/allspace_bg.png create mode 100644 assets/pages/img/appUser_ico.png create mode 100644 assets/pages/img/app_alldownloadIco.png create mode 100644 assets/pages/img/app_andoirdIco.png create mode 100644 assets/pages/img/app_iosIco.png create mode 100644 assets/pages/img/apphyd_ico.png create mode 100644 assets/pages/img/average-icon.png create mode 100644 assets/pages/img/berthImgBg.jpg create mode 100755 assets/pages/img/bg1.jpg create mode 100755 assets/pages/img/bg2.jpg create mode 100755 assets/pages/img/bg3.jpg create mode 100644 assets/pages/img/body-bg.png create mode 100644 assets/pages/img/bookUserICO.png create mode 100644 assets/pages/img/btnIcon.png create mode 100644 assets/pages/img/business-icon.png create mode 100755 assets/pages/img/captions.jpg create mode 100644 assets/pages/img/card-alimoney-icon.png create mode 100644 assets/pages/img/card-baltomoney-icon.png create mode 100644 assets/pages/img/card-berth-icon.png create mode 100644 assets/pages/img/card-berth-iconl.png create mode 100644 assets/pages/img/card-berttime-icon.png create mode 100644 assets/pages/img/card-clearing-icon.png create mode 100644 assets/pages/img/card-discount-icon.png create mode 100644 assets/pages/img/card-dzalipaymoney-icon.png create mode 100644 assets/pages/img/card-dzwxmoney-icon.png create mode 100644 assets/pages/img/card-geo-icon.png create mode 100644 assets/pages/img/card-icon.png create mode 100644 assets/pages/img/card-measure-icon.png create mode 100644 assets/pages/img/card-money-icon.png create mode 100644 assets/pages/img/card-other-icon.png create mode 100644 assets/pages/img/card-parking-icon.png create mode 100644 assets/pages/img/card-parkingin-icon.png create mode 100644 assets/pages/img/card-parkingout-icon.png create mode 100644 assets/pages/img/card-parkingtime-icon.png create mode 100644 assets/pages/img/card-parkingzzl-icon.png create mode 100644 assets/pages/img/card-rate-icon.png create mode 100644 assets/pages/img/card-received-icon.png create mode 100644 assets/pages/img/card-roadside-icon.png create mode 100644 assets/pages/img/card-unclearing-icon.png create mode 100644 assets/pages/img/card-wifi-icon.png create mode 100644 assets/pages/img/card-wxmoney-icon.png create mode 100644 assets/pages/img/card_close.png create mode 100644 assets/pages/img/card_editor.png create mode 100644 assets/pages/img/cardrule-td-first.png create mode 100755 assets/pages/img/caret-dowm.png create mode 100644 assets/pages/img/carlat_Img.png create mode 100644 assets/pages/img/carnum-icon.png create mode 100644 assets/pages/img/carnumber-icon.png create mode 100644 assets/pages/img/caryard-basic-ifo-fees-wrap.png create mode 100644 assets/pages/img/caryard-basic-ifo.png create mode 100644 assets/pages/img/caryard-card-wrap.png create mode 100644 assets/pages/img/caryard-parking-ifo.png create mode 100644 assets/pages/img/chargingrule_smallIcon.png create mode 100644 assets/pages/img/code-icon.png create mode 100644 assets/pages/img/collect-icon.png create mode 100755 assets/pages/img/common_payico.png create mode 100644 assets/pages/img/count-parking.png create mode 100644 assets/pages/img/dataicon.png create mode 100755 assets/pages/img/dataprintIco.png create mode 100644 assets/pages/img/day-icon.png create mode 100644 assets/pages/img/delList-icon.png create mode 100644 assets/pages/img/delete_Rule.png create mode 100644 assets/pages/img/detail_orangeicon.png create mode 100755 assets/pages/img/device-monitor-geo.png create mode 100644 assets/pages/img/device_Img.png create mode 100644 assets/pages/img/dictionary-icon.png create mode 100644 assets/pages/img/discount-icon.png create mode 100644 assets/pages/img/dot-animation.png create mode 100644 assets/pages/img/earning-basic-in.png create mode 100644 assets/pages/img/earning-basic-out.png create mode 100644 assets/pages/img/email-icon.png create mode 100644 assets/pages/img/enclosedpark_icon.png create mode 100644 assets/pages/img/fapiao-icon.png create mode 100644 assets/pages/img/feature-icon.png create mode 100644 assets/pages/img/first_menu_chargeIco.png create mode 100644 assets/pages/img/first_menu_cwgl.png create mode 100644 assets/pages/img/first_menu_indexIco.png create mode 100644 assets/pages/img/first_menu_kfIco.png create mode 100644 assets/pages/img/first_menu_parkgk.png create mode 100644 assets/pages/img/first_menu_parkshareIco.png create mode 100644 assets/pages/img/first_menu_parkyyIco.png create mode 100644 assets/pages/img/first_menu_settingIco.png create mode 100644 assets/pages/img/first_menu_tjbbIco.png create mode 100644 assets/pages/img/first_menu_wfIco.png create mode 100644 assets/pages/img/first_menu_zygl.png create mode 100644 assets/pages/img/formatNoMatches.png create mode 100644 assets/pages/img/function-icon.png create mode 100755 assets/pages/img/generaloperation-dcsbjk-title.png create mode 100755 assets/pages/img/generaloperation-device-monitor-gateway.png create mode 100755 assets/pages/img/generaloperation-device-monitor-pda.png create mode 100755 assets/pages/img/generaloperation-shzt-title.png create mode 100755 assets/pages/img/generaloperation-ssbb-title.png create mode 100755 assets/pages/img/generaloperation-tjqst-title.png create mode 100644 assets/pages/img/geo-card-money-icon.png create mode 100644 assets/pages/img/geo-con-center.png create mode 100644 assets/pages/img/geo-con-left.gif create mode 100644 assets/pages/img/geomagneticincome-con-wrap-line1.png create mode 100644 assets/pages/img/geomagneticincome-con-wrap-line2.png create mode 100644 assets/pages/img/gerenxinxi.png create mode 100644 assets/pages/img/handler_bg.png create mode 100644 assets/pages/img/header-download.png create mode 100644 assets/pages/img/header-notice.png create mode 100644 assets/pages/img/header-right-icon.png create mode 100644 assets/pages/img/home_park_icon.png create mode 100644 assets/pages/img/ico_Plus.png create mode 100644 assets/pages/img/id-icon.png create mode 100644 assets/pages/img/inComeday_bgIco.png create mode 100644 assets/pages/img/inComenight_bgIco.png create mode 100644 assets/pages/img/income_bg.png create mode 100644 assets/pages/img/income_timeIco.png create mode 100644 assets/pages/img/incomecalculation-day.png create mode 100644 assets/pages/img/incomecalculation-night.png create mode 100644 assets/pages/img/incomepark_bg.png create mode 100755 assets/pages/img/incomeprofile-park-title.png create mode 100755 assets/pages/img/incomeprofile-parkincome-title.png create mode 100755 assets/pages/img/incomeprofile-parkrank-title.png create mode 100644 assets/pages/img/index-access-pic.png create mode 100644 assets/pages/img/index-access-pic1.png create mode 100644 assets/pages/img/index-card-title.png create mode 100644 assets/pages/img/index-link-icon.png create mode 100755 assets/pages/img/index-notice-title.png create mode 100644 assets/pages/img/index-park-type-1.png create mode 100644 assets/pages/img/index-park-type-2.png create mode 100644 assets/pages/img/index_Img.png create mode 100644 assets/pages/img/information-icon.png create mode 100644 assets/pages/img/inoutno_icon.png create mode 100644 assets/pages/img/input-checkbox.png create mode 100644 assets/pages/img/input-checkexActive.png create mode 100644 assets/pages/img/input-radio-active.png create mode 100644 assets/pages/img/input-radio.png create mode 100644 assets/pages/img/invisible.png create mode 100644 assets/pages/img/ip-icon.png create mode 100644 assets/pages/img/kaxinxi.png create mode 100644 assets/pages/img/kefu_email_icon.png create mode 100644 assets/pages/img/kefu_pho_icon.png create mode 100644 assets/pages/img/kefu_qq_icon.png create mode 100755 assets/pages/img/left-arrow.png create mode 100644 assets/pages/img/login-logo-icon.png create mode 100644 assets/pages/img/login-pwd-bg.png create mode 100644 assets/pages/img/login-user-bg.png create mode 100755 assets/pages/img/login_pwsicon.png create mode 100755 assets/pages/img/login_usericon.png create mode 100755 assets/pages/img/login_vericon.png create mode 100644 assets/pages/img/loginbg-icon.png create mode 100644 assets/pages/img/manage-icon.png create mode 100644 assets/pages/img/menu-first-bg.png create mode 100644 assets/pages/img/mmap/its-park1.png create mode 100644 assets/pages/img/mmap/its-park2.png create mode 100644 assets/pages/img/mmap/its-park3.png create mode 100644 assets/pages/img/mmap/its-park4.png create mode 100644 assets/pages/img/mmap/its-park5.png create mode 100644 assets/pages/img/mmap/parkicon_culter.png create mode 100644 assets/pages/img/mobile-icon.png create mode 100644 assets/pages/img/mold-icon.png create mode 100644 assets/pages/img/money-icon.png create mode 100644 assets/pages/img/moneydifference-icon.png create mode 100644 assets/pages/img/moneydifferencenum-icon.png create mode 100644 assets/pages/img/monitor-icon.png create mode 100644 assets/pages/img/nav-left-bar-1.png create mode 100644 assets/pages/img/nav-left-bar-2.png create mode 100644 assets/pages/img/nav-left-bar-3.png create mode 100644 assets/pages/img/nav-left-bar-4.png create mode 100644 assets/pages/img/nav-left-bar-5.png create mode 100644 assets/pages/img/nav-left-bar-6.png create mode 100644 assets/pages/img/nav-left-bar-7.png create mode 100644 assets/pages/img/nav-left-bar-8.png create mode 100755 assets/pages/img/navBar-car.png create mode 100755 assets/pages/img/navbar-logo.png create mode 100644 assets/pages/img/night-icon.png create mode 100644 assets/pages/img/night_bg.png create mode 100644 assets/pages/img/noimage.png create mode 100644 assets/pages/img/novariant-reconciliation-icon.png create mode 100644 assets/pages/img/num_add.png create mode 100644 assets/pages/img/num_minus.png create mode 100644 assets/pages/img/occupy-car-num-index.png create mode 100644 assets/pages/img/occupy_Img.png create mode 100644 assets/pages/img/off_tab.png create mode 100644 assets/pages/img/office-icon.png create mode 100644 assets/pages/img/onesyncBtn.png create mode 100644 assets/pages/img/open_tab.png create mode 100644 assets/pages/img/opration-icon.png create mode 100644 assets/pages/img/other_img.png create mode 100755 assets/pages/img/overflow.jpg create mode 100755 assets/pages/img/park-card-title-1.png create mode 100755 assets/pages/img/park-card-title-2.png create mode 100755 assets/pages/img/park-card-title-3.png create mode 100755 assets/pages/img/park-card-title-4.png create mode 100644 assets/pages/img/park-num-icon.png create mode 100644 assets/pages/img/parkicon.png create mode 100644 assets/pages/img/parkicon_1.png create mode 100644 assets/pages/img/parkicon_2.png create mode 100644 assets/pages/img/parkicon_3.png create mode 100644 assets/pages/img/parking-icon.png create mode 100644 assets/pages/img/parkingin-icon.png create mode 100644 assets/pages/img/parkingout-icon.png create mode 100644 assets/pages/img/parksingledetail-1-icon.png create mode 100644 assets/pages/img/parksingledetail-2-icon.png create mode 100644 assets/pages/img/parksingledetail-3-icon.png create mode 100644 assets/pages/img/pay-acount-icon.png create mode 100644 assets/pages/img/pay-money-icon.png create mode 100644 assets/pages/img/pay-num-icon.png create mode 100644 assets/pages/img/pay_wrap_l1.png create mode 100644 assets/pages/img/pay_wrap_l2.png create mode 100644 assets/pages/img/pay_wrap_l3.png create mode 100644 assets/pages/img/pay_wrap_l4.png create mode 100644 assets/pages/img/pda-icon.png create mode 100644 assets/pages/img/per-pross-cion.png create mode 100644 assets/pages/img/per_Img.png create mode 100644 assets/pages/img/permsg_Plus.png create mode 100644 assets/pages/img/person-icon.png create mode 100644 assets/pages/img/person_park.png create mode 100644 assets/pages/img/phone-icon.png create mode 100644 assets/pages/img/poly_icon.png create mode 100644 assets/pages/img/popScreenBtn.png create mode 100644 assets/pages/img/portlet-collapse-icon.png create mode 100644 assets/pages/img/portlet-expand-icon.png create mode 100644 assets/pages/img/question-money-icon.png create mode 100644 assets/pages/img/ranking-icon.png create mode 100755 assets/pages/img/recordsAlipayico.png create mode 100755 assets/pages/img/recordsPassico.png create mode 100755 assets/pages/img/recordsWXico.png create mode 100755 assets/pages/img/recordsXJico.png create mode 100755 assets/pages/img/recordsYYico.png create mode 100755 assets/pages/img/recordsdefeatico.png create mode 100644 assets/pages/img/recordspayRico.png create mode 100755 assets/pages/img/recordspaylico.png create mode 100644 assets/pages/img/reload_orange.png create mode 100644 assets/pages/img/remarks-icon.png create mode 100644 assets/pages/img/remnum_park.png create mode 100644 assets/pages/img/result_bgico.png create mode 100755 assets/pages/img/right-arrow.png create mode 100644 assets/pages/img/righttopbarico_Bg.png create mode 100644 assets/pages/img/roadsidepark_icon.png create mode 100644 assets/pages/img/runIcon.pic create mode 100644 assets/pages/img/screenPopnoImg.png create mode 100644 assets/pages/img/search_orange.png create mode 100644 assets/pages/img/settlementmanage-icon.png create mode 100644 assets/pages/img/sex-icon.png create mode 100755 assets/pages/img/sharequery-icon.png create mode 100644 assets/pages/img/sign-icon.png create mode 100644 assets/pages/img/space_bg.png create mode 100644 assets/pages/img/space_eough.png create mode 100644 assets/pages/img/space_few.png create mode 100644 assets/pages/img/space_full.png create mode 100644 assets/pages/img/srcy-blue-icon.png create mode 100644 assets/pages/img/srcy-green-icon.png create mode 100644 assets/pages/img/srcy-orange-icon.png create mode 100644 assets/pages/img/srcy-yellow-icon.png create mode 100644 assets/pages/img/state-icon.png create mode 100644 assets/pages/img/status-icon.png create mode 100644 assets/pages/img/success-icon.png create mode 100644 assets/pages/img/successup-icon.png create mode 100644 assets/pages/img/symbol.png create mode 100644 assets/pages/img/system-icon.png create mode 100755 assets/pages/img/tabletopIco.png create mode 100644 assets/pages/img/tcjsgz_icon.png create mode 100644 assets/pages/img/telphone-icon.png create mode 100644 assets/pages/img/theme-msgIco.png create mode 100644 assets/pages/img/theme_btn_add.png create mode 100644 assets/pages/img/theme_btn_addall.png create mode 100644 assets/pages/img/theme_btn_addhover.png create mode 100644 assets/pages/img/themes_Icobtn.png create mode 100644 assets/pages/img/themes_Icodelete.png create mode 100644 assets/pages/img/themes_Icodeletehover.png create mode 100644 assets/pages/img/themes_Icoedit.png create mode 100644 assets/pages/img/themes_Icoedithover.png create mode 100644 assets/pages/img/themes_Icoenter.png create mode 100644 assets/pages/img/themes_Icoenterhover.png create mode 100644 assets/pages/img/themes_Icosave.png create mode 100644 assets/pages/img/themes_Icosavehover.png create mode 100644 assets/pages/img/three-navbar.png create mode 100644 assets/pages/img/time-icon.png create mode 100644 assets/pages/img/timeusage.png create mode 100644 assets/pages/img/tk-blue-icon.png create mode 100644 assets/pages/img/tk-green-icon.png create mode 100644 assets/pages/img/tk-orange-icon.png create mode 100644 assets/pages/img/tk-yellow-icon.png create mode 100644 assets/pages/img/tkcy-blue-icon.png create mode 100644 assets/pages/img/tkcy-green-icon.png create mode 100644 assets/pages/img/tkcy-orange-icon.png create mode 100644 assets/pages/img/tkcy-yellow-icon.png create mode 100644 assets/pages/img/tkmoneynum-icon.png create mode 100644 assets/pages/img/todayUser_ico.png create mode 100644 assets/pages/img/todaytotal_img.png create mode 100644 assets/pages/img/toll-cloud-icon.png create mode 100644 assets/pages/img/toll-persongroup-icon.png create mode 100644 assets/pages/img/top_carnumImg.png create mode 100644 assets/pages/img/topbarico_Bg.png create mode 100644 assets/pages/img/total-icon.png create mode 100644 assets/pages/img/totalmanage_Img.png create mode 100644 assets/pages/img/traffic-data-in.png create mode 100644 assets/pages/img/traffic-data-out.png create mode 100644 assets/pages/img/truelist-blue.png create mode 100644 assets/pages/img/truelist-green.png create mode 100644 assets/pages/img/truelist-orange.png create mode 100644 assets/pages/img/type-icon.png create mode 100644 assets/pages/img/user-pic.png create mode 100644 assets/pages/img/variant-reconciliation-icon.png create mode 100644 assets/pages/img/vipcardrule-add.png create mode 100644 assets/pages/img/visible.png create mode 100644 assets/pages/img/weixin-icon.png create mode 100644 assets/pages/img/whitedat_bg.png create mode 100644 assets/pages/img/wx_money.png create mode 100644 assets/pages/img/xianjin-icon.png create mode 100644 assets/pages/img/xj_img.png create mode 100644 assets/pages/img/zhifubao-icon.png create mode 100644 assets/pages/img/zte-its-logo.png create mode 100644 assets/pages/img/zte-its_logo.png create mode 100644 assets/pages/img/zteits-BGiconcom.png create mode 100644 assets/pages/img/zteits_toALLico.png create mode 100644 assets/pages/img/zyl-icon.png create mode 100644 assets/pages/img/zzl-icon.png create mode 100644 assets/pages/scripts/MarkerClusterer.js create mode 100644 assets/pages/scripts/basicInformationmod/basicInformation/basicinformation.js create mode 100644 assets/pages/scripts/basicInformationmod/basicInformationmod.js create mode 100644 assets/pages/scripts/billass/appmenuFile/remsum.css create mode 100644 assets/pages/scripts/billass/appmenuFile/remsum.html create mode 100644 assets/pages/scripts/billass/appmenuFile/remsum.js create mode 100644 assets/pages/scripts/billass/bill/billmanage.css create mode 100644 assets/pages/scripts/billass/bill/billmanage.html create mode 100644 assets/pages/scripts/billass/bill/billmanage.js create mode 100644 assets/pages/scripts/billass/bill/billmanage.js_bak create mode 100644 assets/pages/scripts/billass/billassTmp.js create mode 100644 assets/pages/scripts/billass/odd/oddchange.css create mode 100644 assets/pages/scripts/billass/odd/oddchange.html create mode 100644 assets/pages/scripts/billass/odd/oddchange.js create mode 100644 assets/pages/scripts/billass/onlinefile/onlinerevenue.css create mode 100644 assets/pages/scripts/billass/onlinefile/onlinerevenue.html create mode 100644 assets/pages/scripts/billass/onlinefile/onlinerevenue.js create mode 100644 assets/pages/scripts/billass/tollexp/tollincomeandexp.css create mode 100644 assets/pages/scripts/billass/tollexp/tollincomeandexp.html create mode 100644 assets/pages/scripts/billass/tollexp/tollincomeandexp.js create mode 100644 assets/pages/scripts/businessmanage/analogbilling.js create mode 100644 assets/pages/scripts/businessmanage/businessTmp.js create mode 100644 assets/pages/scripts/businessmanage/css/analogbilling.css create mode 100644 assets/pages/scripts/businessmanage/css/invoicemanage.css create mode 100644 assets/pages/scripts/businessmanage/css/vipmanage.css create mode 100644 assets/pages/scripts/businessmanage/invoicemanage.js create mode 100644 assets/pages/scripts/businessmanage/pages/analogbilling.html create mode 100644 assets/pages/scripts/businessmanage/pages/invoicemanage.html create mode 100644 assets/pages/scripts/businessmanage/pages/vipmanage.html create mode 100644 assets/pages/scripts/businessmanage/vipmanage.js create mode 100644 assets/pages/scripts/chargeGroup/chargegroup.css create mode 100644 assets/pages/scripts/chargeGroup/chargegroup.html create mode 100644 assets/pages/scripts/chargeGroup/chargegroup.js create mode 100644 assets/pages/scripts/chargeGroup/img/chargegroup_smallIcon.png create mode 100644 assets/pages/scripts/clearfile/clearTmp.js create mode 100644 assets/pages/scripts/clearfile/compfile/companysettlement.css create mode 100644 assets/pages/scripts/clearfile/compfile/companysettlement.html create mode 100644 assets/pages/scripts/clearfile/compfile/companysettlement.js create mode 100644 assets/pages/scripts/clearfile/temptob/temporarysettletob.css create mode 100644 assets/pages/scripts/clearfile/temptob/temporarysettletob.html create mode 100644 assets/pages/scripts/clearfile/temptob/temporarysettletob.js create mode 100644 assets/pages/scripts/components-bootstrap-select.min.js create mode 100644 assets/pages/scripts/danyangFile/danyangTmp.js create mode 100644 assets/pages/scripts/danyangFile/userAna/useranalysis.css create mode 100644 assets/pages/scripts/danyangFile/userAna/useranalysis.html create mode 100644 assets/pages/scripts/danyangFile/userAna/useranalysis.js create mode 100644 assets/pages/scripts/danyangFile/userManage/usermanage.css create mode 100644 assets/pages/scripts/danyangFile/userManage/usermanage.html create mode 100644 assets/pages/scripts/danyangFile/userManage/usermanage.js create mode 100644 assets/pages/scripts/deviceanaFile/equipmentTmp.js create mode 100644 assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.css create mode 100644 assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.html create mode 100644 assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.js create mode 100644 assets/pages/scripts/deviceanaFile/geodynaFile/img/geo_pop_offonIco.png create mode 100644 assets/pages/scripts/deviceanaFile/geodynaFile/img/georeceive_smallIcon.png create mode 100644 assets/pages/scripts/deviceanaFile/geodynaFile/img/terrestrial-allmoney.png create mode 100644 assets/pages/scripts/deviceanaFile/geodynaFile/img/way-echarts-l.png create mode 100644 assets/pages/scripts/deviceanaFile/geodynaFile/img/way-echarts-r.png create mode 100644 assets/pages/scripts/deviceanaFile/geozzlFile/geodynamiczzl.css create mode 100644 assets/pages/scripts/deviceanaFile/geozzlFile/geodynamiczzl.html create mode 100644 assets/pages/scripts/deviceanaFile/geozzlFile/geodynamiczzl.js create mode 100644 assets/pages/scripts/deviceanaFile/geozzlFile/img/geo_pop_offonIco.png create mode 100644 assets/pages/scripts/deviceanaFile/geozzlFile/img/georeceive_smallIcon.png create mode 100644 assets/pages/scripts/deviceanaFile/geozzlFile/img/terrestrial-allmoney.png create mode 100644 assets/pages/scripts/deviceanaFile/geozzlFile/img/way-echarts-l.png create mode 100644 assets/pages/scripts/deviceanaFile/geozzlFile/img/way-echarts-r.png create mode 100644 assets/pages/scripts/devicemanageFile/deveiceData/geomagneticData.css create mode 100644 assets/pages/scripts/devicemanageFile/deveiceData/geomagneticData.html create mode 100644 assets/pages/scripts/devicemanageFile/deveiceData/geomagneticData.js create mode 100644 assets/pages/scripts/devicemanageFile/devieceTmp.js create mode 100644 assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.css create mode 100644 assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.html create mode 100644 assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.js create mode 100644 assets/pages/scripts/devicemanageFile/geomagnetismFile/img/cardrule-person-ico.png create mode 100644 assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-1.png create mode 100644 assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-2.png create mode 100644 assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-3.png create mode 100644 assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomanage_baidimapIco.png create mode 100644 assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_unload.png create mode 100644 assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_upload.png create mode 100644 assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_word_ico.png create mode 100644 assets/pages/scripts/devicemanageFile/img/guidepop_leftico.png create mode 100644 assets/pages/scripts/devicemanageFile/img/guidepop_rightico.png create mode 100644 assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-1.png create mode 100644 assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-2.png create mode 100644 assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-3.png create mode 100644 assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomanage_baidimapIco.png create mode 100644 assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.css create mode 100644 assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.html create mode 100644 assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.js create mode 100644 assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.css create mode 100644 assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.html create mode 100644 assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.js create mode 100644 assets/pages/scripts/devicemanageFile/screenFile/screenmanage.css create mode 100644 assets/pages/scripts/devicemanageFile/screenFile/screenmanage.html create mode 100644 assets/pages/scripts/devicemanageFile/screenFile/screenmanage.js create mode 100644 assets/pages/scripts/equipmentPeration/css/geomagneticData.css create mode 100644 assets/pages/scripts/equipmentPeration/css/geomagneticmanage.css create mode 100644 assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-1.png create mode 100644 assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-2.png create mode 100644 assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-3.png create mode 100644 assets/pages/scripts/equipmentPeration/css/img/geomanage_baidimapIco.png create mode 100644 assets/pages/scripts/equipmentPeration/css/pdamanage.css create mode 100644 assets/pages/scripts/equipmentPeration/equipmentPerationTmp.js create mode 100644 assets/pages/scripts/equipmentPeration/geomagneticData.js create mode 100644 assets/pages/scripts/equipmentPeration/geomagneticmanage.js create mode 100644 assets/pages/scripts/equipmentPeration/pages/geomagneticData.html create mode 100644 assets/pages/scripts/equipmentPeration/pages/geomagneticmanage.html create mode 100644 assets/pages/scripts/equipmentPeration/pages/pdamanage.html create mode 100644 assets/pages/scripts/equipmentPeration/pdamanage.js create mode 100644 assets/pages/scripts/home/caryard.js create mode 100644 assets/pages/scripts/home/generaloperation.js create mode 100644 assets/pages/scripts/home/incomeprofile.js create mode 100644 assets/pages/scripts/home/incomeprofile_init.js create mode 100644 assets/pages/scripts/home/index.js create mode 100755 assets/pages/scripts/home/maplib.js create mode 100644 assets/pages/scripts/home/messagecenter.js create mode 100644 assets/pages/scripts/home/newsnotice.js create mode 100644 assets/pages/scripts/home/notice.js create mode 100644 assets/pages/scripts/home/parksingledetail.js create mode 100644 assets/pages/scripts/home/weekly.js create mode 100755 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/generaloperation-tjqst-title.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/geo_pop_offonIco.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/georeceive_smallIcon.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/income-sstj-icon.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-bws-top.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-shebei-title.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-tip-icon.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-zys-top.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/terrestrial-allmoney.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/way-echarts-l.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/way-echarts-r.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.css create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.html create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.js create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomeanaTmp.js create mode 100755 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/generaloperation-tjqst-title.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/geo_pop_offonIco.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/georeceive_smallIcon.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/income-sstj-icon.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-bws-top.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-shebei-title.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-tip-icon.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-zys-top.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/terrestrial-allmoney.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/way-echarts-l.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/way-echarts-r.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.css create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.html create mode 100644 assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.js create mode 100755 assets/pages/scripts/incomeAnalysisFile/parkingFee/img/generaloperation-tjqst-title.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/parkingFee/img/geo_pop_offonIco.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/parkingFee/img/georeceive_smallIcon.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/parkingFee/img/income-sstj-icon.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/parkingFee/img/parkfee-zffs-icon.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-bws-top.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-shebei-title.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-tip-icon.png create mode 100755 assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-zys-top.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/parkingFee/img/terrestrial-allmoney.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/parkingFee/img/way-echarts-l.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/parkingFee/img/way-echarts-r.png create mode 100644 assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.css create mode 100644 assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.html create mode 100644 assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.js create mode 100644 assets/pages/scripts/incomeAnalysisFile/tollincome/tollincome.css create mode 100644 assets/pages/scripts/incomeAnalysisFile/tollincome/tollincome.html create mode 100644 assets/pages/scripts/incomeAnalysisFile/tollincome/tollincome.js create mode 100644 assets/pages/scripts/incomereportFile/incomeCasier/img/card-caiserperson-icon.png create mode 100755 assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-1.png create mode 100644 assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-2.png create mode 100755 assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-3.png create mode 100644 assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-4.png create mode 100644 assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-5.png create mode 100644 assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.css create mode 100644 assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.html create mode 100644 assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.js create mode 100755 assets/pages/scripts/incomereportFile/incomeParking/img/incomecasier-li-1.png create mode 100644 assets/pages/scripts/incomereportFile/incomeParking/img/incomecasier-li-2.png create mode 100755 assets/pages/scripts/incomereportFile/incomeParking/img/incomecasier-li-3.png create mode 100644 assets/pages/scripts/incomereportFile/incomeParking/img/incomecasier-li-4.png create mode 100644 assets/pages/scripts/incomereportFile/incomeParking/img/incomestates-li-5.png create mode 100644 assets/pages/scripts/incomereportFile/incomeParking/incomeparking.css create mode 100644 assets/pages/scripts/incomereportFile/incomeParking/incomeparking.html create mode 100644 assets/pages/scripts/incomereportFile/incomeParking/incomeparking.js create mode 100644 assets/pages/scripts/incomereportFile/incomesTmp.js create mode 100644 assets/pages/scripts/incomereportFile/jprint.js create mode 100644 assets/pages/scripts/inspectionFile/inspectionGroup/inspectiongroup.css create mode 100644 assets/pages/scripts/inspectionFile/inspectionGroup/inspectiongroup.html create mode 100644 assets/pages/scripts/inspectionFile/inspectionGroup/inspectiongroup.js create mode 100644 assets/pages/scripts/inspectionFile/inspectionPer/inspectionper-nodata.png create mode 100644 assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.css create mode 100644 assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.html create mode 100644 assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.js create mode 100644 assets/pages/scripts/inspectionFile/inspectionPer/nosign-icon.png create mode 100644 assets/pages/scripts/inspectionFile/inspectionPer/sign-icon.png create mode 100644 assets/pages/scripts/inspectionFile/inspectionPer/signed_icon.png create mode 100644 assets/pages/scripts/inspectionFile/inspectionPer/tollcollectormanage-head.png create mode 100644 assets/pages/scripts/inspectionFile/inspectionTmp.js create mode 100644 assets/pages/scripts/inspectionFile/inspectionreport/caryard-basic-ifo.png create mode 100644 assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.css create mode 100644 assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.html create mode 100644 assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.js create mode 100644 assets/pages/scripts/inspectionFile/inspectionreport/patrol-con-wrap-pic.png create mode 100644 assets/pages/scripts/linkedSelect/linkedSelect.js create mode 100644 assets/pages/scripts/linkedSelect/linkedSelectValues.js create mode 100644 assets/pages/scripts/lllegalManage/endorFile/endorsement.css create mode 100644 assets/pages/scripts/lllegalManage/endorFile/endorsement.html create mode 100644 assets/pages/scripts/lllegalManage/endorFile/endorsement.js create mode 100644 assets/pages/scripts/lllegalManage/lllegalTmp.js create mode 100644 assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.css create mode 100644 assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.html create mode 100644 assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.js create mode 100644 assets/pages/scripts/login.min.js create mode 100644 assets/pages/scripts/managereport/allparkrecordsFinance.js create mode 100644 assets/pages/scripts/managereport/billmanage.js create mode 100644 assets/pages/scripts/managereport/companysettlement.js create mode 100644 assets/pages/scripts/managereport/devicereport.js create mode 100644 assets/pages/scripts/managereport/invoicemanage.js create mode 100644 assets/pages/scripts/managereport/reconciliation.js create mode 100644 assets/pages/scripts/managereport/remainingsum.js create mode 100644 assets/pages/scripts/managereport/settlementmanage.js create mode 100644 assets/pages/scripts/managereport/temporarysettletob.js create mode 100644 assets/pages/scripts/managereport/tollaccountmanage.js create mode 100644 assets/pages/scripts/managereport/tollaudit.js create mode 100644 assets/pages/scripts/managereport/tollincomeandexp.js create mode 100644 assets/pages/scripts/managereport/vehicleaudit.js create mode 100755 assets/pages/scripts/maplib.js create mode 100644 assets/pages/scripts/operMonFile/citydata.js create mode 100644 assets/pages/scripts/operMonFile/guideMon/guidemonitoring.css create mode 100644 assets/pages/scripts/operMonFile/guideMon/guidemonitoring.html create mode 100644 assets/pages/scripts/operMonFile/guideMon/guidemonitoring.js create mode 100644 assets/pages/scripts/operMonFile/img/24h.png create mode 100644 assets/pages/scripts/operMonFile/img/caryard-basic-ifo-fees-wrap.png create mode 100644 assets/pages/scripts/operMonFile/img/caryard-basic-ifo.png create mode 100644 assets/pages/scripts/operMonFile/img/caryard-card-wrap.png create mode 100644 assets/pages/scripts/operMonFile/img/caryard-parking-ifo.png create mode 100644 assets/pages/scripts/operMonFile/img/check-status0.png create mode 100644 assets/pages/scripts/operMonFile/img/check-status1.png create mode 100644 assets/pages/scripts/operMonFile/img/common/guidance-level1.png create mode 100644 assets/pages/scripts/operMonFile/img/common/guidance-level2.png create mode 100644 assets/pages/scripts/operMonFile/img/common/guidance-level3.png create mode 100644 assets/pages/scripts/operMonFile/img/common/markers.png create mode 100644 assets/pages/scripts/operMonFile/img/common/searchbox.png create mode 100644 assets/pages/scripts/operMonFile/img/guidance_1.png create mode 100644 assets/pages/scripts/operMonFile/img/guidance_2.png create mode 100644 assets/pages/scripts/operMonFile/img/guidance_3.png create mode 100644 assets/pages/scripts/operMonFile/img/guidance_bg1.png create mode 100644 assets/pages/scripts/operMonFile/img/guidance_bg2.png create mode 100644 assets/pages/scripts/operMonFile/img/guidance_bg3.png create mode 100644 assets/pages/scripts/operMonFile/img/guide_first_img_error.png create mode 100644 assets/pages/scripts/operMonFile/img/guideico_level1.jpg create mode 100644 assets/pages/scripts/operMonFile/img/guideico_level2.jpg create mode 100644 assets/pages/scripts/operMonFile/img/guideico_level3.jpg create mode 100644 assets/pages/scripts/operMonFile/img/guidepop_leftico.png create mode 100644 assets/pages/scripts/operMonFile/img/guidepop_rightico.png create mode 100644 assets/pages/scripts/operMonFile/img/guipop_closeico.png create mode 100644 assets/pages/scripts/operMonFile/img/index-card-title.png create mode 100644 assets/pages/scripts/operMonFile/img/legendMap_icon1.png create mode 100644 assets/pages/scripts/operMonFile/img/legendMap_icon2.png create mode 100644 assets/pages/scripts/operMonFile/img/legendMap_icon3.png create mode 100644 assets/pages/scripts/operMonFile/img/main-left-click.png create mode 100644 assets/pages/scripts/operMonFile/img/main-left.png create mode 100644 assets/pages/scripts/operMonFile/img/map/PDA.png create mode 100644 assets/pages/scripts/operMonFile/img/map/guidescreen.png create mode 100644 assets/pages/scripts/operMonFile/img/map/index.png create mode 100644 assets/pages/scripts/operMonFile/img/maxheight_2m.png create mode 100644 assets/pages/scripts/operMonFile/img/offlineIcon.png create mode 100644 assets/pages/scripts/operMonFile/img/onlineIcon.png create mode 100644 assets/pages/scripts/operMonFile/img/parkData-icon.png create mode 100644 assets/pages/scripts/operMonFile/img/parkIcon1.png create mode 100644 assets/pages/scripts/operMonFile/img/parkIcon2.png create mode 100644 assets/pages/scripts/operMonFile/img/parkIcon3.png create mode 100644 assets/pages/scripts/operMonFile/img/parkName_icon.png create mode 100644 assets/pages/scripts/operMonFile/img/parkPopicon.png create mode 100644 assets/pages/scripts/operMonFile/img/pda-icon.png create mode 100644 assets/pages/scripts/operMonFile/img/pdaIco.png create mode 100644 assets/pages/scripts/operMonFile/img/pdaIco1.png create mode 100644 assets/pages/scripts/operMonFile/img/pdaIcon.png create mode 100644 assets/pages/scripts/operMonFile/img/poly_icon.png create mode 100644 assets/pages/scripts/operMonFile/img/secIcon.png create mode 100644 assets/pages/scripts/operMonFile/img/ser-btn.png create mode 100644 assets/pages/scripts/operMonFile/img/timeusage.png create mode 100644 assets/pages/scripts/operMonFile/img/turn-around.png create mode 100644 assets/pages/scripts/operMonFile/img/turn-left.png create mode 100644 assets/pages/scripts/operMonFile/img/turn-right.png create mode 100644 assets/pages/scripts/operMonFile/img/turnover_right.png create mode 100644 assets/pages/scripts/operMonFile/operMonfile.css create mode 100644 assets/pages/scripts/operMonFile/operMonfile.js create mode 100644 assets/pages/scripts/operMonFile/opercommon.css create mode 100644 assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.css create mode 100644 assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.html create mode 100644 assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.js create mode 100644 assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.css create mode 100644 assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.html create mode 100644 assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.js create mode 100644 assets/pages/scripts/operationFile/img/dayparkinglength-greencar.png create mode 100644 assets/pages/scripts/operationFile/img/dayparkinglength-redcar.png create mode 100644 assets/pages/scripts/operationFile/lengthofParking/lengthofparking.css create mode 100644 assets/pages/scripts/operationFile/lengthofParking/lengthofparking.html create mode 100644 assets/pages/scripts/operationFile/lengthofParking/lengthofparking.js create mode 100644 assets/pages/scripts/operationFile/operationanaTmp.js create mode 100644 assets/pages/scripts/operationFile/vehicleFlow/vehicelfow.js create mode 100644 assets/pages/scripts/operationFile/vehicleFlow/vehicleflow.css create mode 100644 assets/pages/scripts/operationFile/vehicleFlow/vehicleflow.html create mode 100644 assets/pages/scripts/orderManagement/abnormalrecords.js create mode 100644 assets/pages/scripts/orderManagement/allparkrecords.js create mode 100644 assets/pages/scripts/orderManagement/endorsement.js create mode 100644 assets/pages/scripts/orderManagement/geomagneticincome.js create mode 100644 assets/pages/scripts/orderManagement/oddchange.js create mode 100644 assets/pages/scripts/orderManagement/parkingarrears.js create mode 100644 assets/pages/scripts/orderManagement/parkingmanage.js create mode 100644 assets/pages/scripts/orderManagement/peccancymanage.js create mode 100644 assets/pages/scripts/otherSetting/appactive/appactivity.css create mode 100644 assets/pages/scripts/otherSetting/appactive/appactivity.html create mode 100644 assets/pages/scripts/otherSetting/appactive/appactivity.js create mode 100644 assets/pages/scripts/otherSetting/apprel/apprelease.css create mode 100644 assets/pages/scripts/otherSetting/apprel/apprelease.html create mode 100644 assets/pages/scripts/otherSetting/apprel/apprelease.js create mode 100644 assets/pages/scripts/otherSetting/apprel/qrcode.min.js create mode 100644 assets/pages/scripts/otherSetting/couponFile/couponsetting.css create mode 100644 assets/pages/scripts/otherSetting/couponFile/couponsetting.html create mode 100644 assets/pages/scripts/otherSetting/couponFile/couponsetting.js create mode 100644 assets/pages/scripts/otherSetting/disCount/discountrule.css create mode 100644 assets/pages/scripts/otherSetting/disCount/discountrule.html create mode 100644 assets/pages/scripts/otherSetting/disCount/discountrule.js create mode 100644 assets/pages/scripts/otherSetting/giftRule/giftrules.css create mode 100644 assets/pages/scripts/otherSetting/giftRule/giftrules.html create mode 100644 assets/pages/scripts/otherSetting/giftRule/giftrules.js create mode 100644 assets/pages/scripts/otherSetting/img/Lineright-icon.png create mode 100644 assets/pages/scripts/otherSetting/img/bgBlue-icon.png create mode 100644 assets/pages/scripts/otherSetting/img/bgGray-icon.png create mode 100755 assets/pages/scripts/otherSetting/img/car-bg.png create mode 100644 assets/pages/scripts/otherSetting/img/carBig-icon.png create mode 100644 assets/pages/scripts/otherSetting/img/carSmall-icon.png create mode 100644 assets/pages/scripts/otherSetting/img/chargingrule-circle-blue.png create mode 100644 assets/pages/scripts/otherSetting/img/chargingrule-circle-green.png create mode 100644 assets/pages/scripts/otherSetting/img/chargingrule-circle-yellow.png create mode 100644 assets/pages/scripts/otherSetting/img/chargingrule-more.png create mode 100644 assets/pages/scripts/otherSetting/img/chargingrule-time.png create mode 100644 assets/pages/scripts/otherSetting/img/chargingrule_smallIcon.png create mode 100644 assets/pages/scripts/otherSetting/img/dataicon.png create mode 100644 assets/pages/scripts/otherSetting/img/day-iconbg.png create mode 100644 assets/pages/scripts/otherSetting/img/delList-icon.png create mode 100644 assets/pages/scripts/otherSetting/img/delete_Rule.png create mode 100644 assets/pages/scripts/otherSetting/img/discountrule_bgIco.png create mode 100644 assets/pages/scripts/otherSetting/img/discountrule_topBgico.png create mode 100644 assets/pages/scripts/otherSetting/img/find_icon.png create mode 100644 assets/pages/scripts/otherSetting/img/input-checkbox.png create mode 100644 assets/pages/scripts/otherSetting/img/input-checkexActive.png create mode 100644 assets/pages/scripts/otherSetting/img/input-radio-active.png create mode 100644 assets/pages/scripts/otherSetting/img/input-radio.png create mode 100644 assets/pages/scripts/otherSetting/img/left-modal-bg.png create mode 100644 assets/pages/scripts/otherSetting/img/left-type-2.png create mode 100644 assets/pages/scripts/otherSetting/img/left-type.png create mode 100644 assets/pages/scripts/otherSetting/img/night-iconbg.png create mode 100644 assets/pages/scripts/otherSetting/img/park_yhq.png create mode 100644 assets/pages/scripts/otherSetting/img/parkclose_icon.png create mode 100644 assets/pages/scripts/otherSetting/img/popParknullIco.png create mode 100644 assets/pages/scripts/otherSetting/img/truelist-blue.png create mode 100644 assets/pages/scripts/otherSetting/img/truelist-green.png create mode 100644 assets/pages/scripts/otherSetting/img/truelist-orange.png create mode 100644 assets/pages/scripts/otherSetting/img/vipcardrule-1.png create mode 100644 assets/pages/scripts/otherSetting/img/vipcardrule-2.png create mode 100644 assets/pages/scripts/otherSetting/img/vipcardrule-3.png create mode 100644 assets/pages/scripts/otherSetting/img/vipcardrule-blue.png create mode 100644 assets/pages/scripts/otherSetting/img/vipcardrule-edit-1.png create mode 100644 assets/pages/scripts/otherSetting/img/vipcardrule-edit-2.png create mode 100644 assets/pages/scripts/otherSetting/img/vipcardrule-edit-3.png create mode 100644 assets/pages/scripts/otherSetting/img/vipcardrule-green.png create mode 100644 assets/pages/scripts/otherSetting/img/vipcardrule-red.png create mode 100644 assets/pages/scripts/otherSetting/img/vipcardrule-yellow.png create mode 100644 assets/pages/scripts/otherSetting/othersetTmp.js create mode 100644 assets/pages/scripts/otherSetting/settleRule/settlerule.css create mode 100644 assets/pages/scripts/otherSetting/settleRule/settlerule.html create mode 100644 assets/pages/scripts/otherSetting/settleRule/settlerule.js create mode 100644 assets/pages/scripts/otherSetting/whiteList/whitelist.css create mode 100644 assets/pages/scripts/otherSetting/whiteList/whitelist.html create mode 100644 assets/pages/scripts/otherSetting/whiteList/whitelist.js create mode 100644 assets/pages/scripts/otherSetting/xxcoupon/undercoupon.css create mode 100644 assets/pages/scripts/otherSetting/xxcoupon/undercoupon.html create mode 100644 assets/pages/scripts/otherSetting/xxcoupon/undercoupon.js create mode 100644 assets/pages/scripts/parkingshareFile/css/img/areamanage_baidimapIco.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/dataicon.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/input-checkbox.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/input-checkexActive.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/input-radio-active.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/input-radio.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/parkpoishareadd.css create mode 100644 assets/pages/scripts/parkingshareFile/css/img/shareParkPorIco.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/shareParkworkIco.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/sharesettle-c-bottom.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/sharesettle-c-top.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/sharesettle-l-img.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/sharesettle-r-bottom.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/sharesettle-r-top.png create mode 100644 assets/pages/scripts/parkingshareFile/css/img/sharespaceCirle.png create mode 100644 assets/pages/scripts/parkingshareFile/css/parkpoishareadd.css create mode 100644 assets/pages/scripts/parkingshareFile/css/sharesettle.css create mode 100644 assets/pages/scripts/parkingshareFile/pages/parkpoishareadd.html create mode 100644 assets/pages/scripts/parkingshareFile/pages/sharesettle.html create mode 100644 assets/pages/scripts/parkingshareFile/parkpoishareadd.js create mode 100644 assets/pages/scripts/parkingshareFile/sharesettle.js create mode 100644 assets/pages/scripts/parksetFile/areamanage/areamanagement.css create mode 100644 assets/pages/scripts/parksetFile/areamanage/areamanagement.html create mode 100644 assets/pages/scripts/parksetFile/areamanage/img/areamanage_baidimapIco.png create mode 100644 assets/pages/scripts/parksetFile/areamanage/img/dataicon.png create mode 100644 assets/pages/scripts/parksetFile/areamanage/img/input-checkbox.png create mode 100644 assets/pages/scripts/parksetFile/areamanage/img/input-checkexActive.png create mode 100644 assets/pages/scripts/parksetFile/areamanage/img/input-radio-active.png create mode 100644 assets/pages/scripts/parksetFile/areamanage/img/input-radio.png create mode 100644 assets/pages/scripts/parksetFile/areamanagement.js create mode 100644 assets/pages/scripts/parksetFile/berthInterval/berthinterval.css create mode 100644 assets/pages/scripts/parksetFile/berthInterval/berthinterval.html create mode 100644 assets/pages/scripts/parksetFile/berthInterval/img/areamanage_baidimapIco.png create mode 100644 assets/pages/scripts/parksetFile/berthInterval/img/dataicon.png create mode 100644 assets/pages/scripts/parksetFile/berthInterval/img/input-checkbox.png create mode 100644 assets/pages/scripts/parksetFile/berthInterval/img/input-checkexActive.png create mode 100644 assets/pages/scripts/parksetFile/berthInterval/img/input-radio-active.png create mode 100644 assets/pages/scripts/parksetFile/berthInterval/img/input-radio.png create mode 100644 assets/pages/scripts/parksetFile/berthManage/berthmanagement.css create mode 100644 assets/pages/scripts/parksetFile/berthManage/berthmanagement.html create mode 100644 assets/pages/scripts/parksetFile/berthManage/img/areamanage_baidimapIco.png create mode 100644 assets/pages/scripts/parksetFile/berthManage/img/dataicon.png create mode 100644 assets/pages/scripts/parksetFile/berthManage/img/input-checkbox.png create mode 100644 assets/pages/scripts/parksetFile/berthManage/img/input-checkexActive.png create mode 100644 assets/pages/scripts/parksetFile/berthManage/img/input-radio-active.png create mode 100644 assets/pages/scripts/parksetFile/berthManage/img/input-radio.png create mode 100644 assets/pages/scripts/parksetFile/berthfile/berthmanagement.css create mode 100644 assets/pages/scripts/parksetFile/berthfile/berthmanagement.html create mode 100644 assets/pages/scripts/parksetFile/berthfile/img/areamanage_baidimapIco.png create mode 100644 assets/pages/scripts/parksetFile/berthfile/img/dataicon.png create mode 100644 assets/pages/scripts/parksetFile/berthfile/img/input-checkbox.png create mode 100644 assets/pages/scripts/parksetFile/berthfile/img/input-checkexActive.png create mode 100644 assets/pages/scripts/parksetFile/berthfile/img/input-radio-active.png create mode 100644 assets/pages/scripts/parksetFile/berthfile/img/input-radio.png create mode 100644 assets/pages/scripts/parksetFile/berthinterval.js create mode 100644 assets/pages/scripts/parksetFile/berthmanage.js create mode 100644 assets/pages/scripts/parksetFile/berthmanagement.js create mode 100644 assets/pages/scripts/parksetFile/norberfile/normalberth.css create mode 100644 assets/pages/scripts/parksetFile/norberfile/normalberth.html create mode 100644 assets/pages/scripts/parksetFile/normalberth.js create mode 100644 assets/pages/scripts/parksetFile/parksetTmp.js create mode 100755 assets/pages/scripts/public/amazeui.min.js create mode 100644 assets/pages/scripts/public/common-date.js create mode 100644 assets/pages/scripts/public/common-download.js create mode 100644 assets/pages/scripts/public/common-jquery.js create mode 100644 assets/pages/scripts/public/common-select.js create mode 100755 assets/pages/scripts/public/cropper.min.js create mode 100755 assets/pages/scripts/public/custom_up_img.js create mode 100644 assets/pages/scripts/public/echarts-liquidfill.js create mode 100644 assets/pages/scripts/public/echarts.all.js create mode 100644 assets/pages/scripts/public/header-navbar.js create mode 100644 assets/pages/scripts/public/header-navbar.jsbak create mode 100644 assets/pages/scripts/public/header-navbar.jsbak1 create mode 100644 assets/pages/scripts/public/jqprint.js create mode 100644 assets/pages/scripts/public/jquery.form.js create mode 100644 assets/pages/scripts/public/pieCircle.js create mode 100644 assets/pages/scripts/public/supersized-init.js create mode 100644 assets/pages/scripts/public/supersized.3.2.7.min.js create mode 100644 assets/pages/scripts/public/unit.js create mode 100644 assets/pages/scripts/public/util.js create mode 100644 assets/pages/scripts/refundSta/refundfile/ltrefund.css create mode 100644 assets/pages/scripts/refundSta/refundfile/ltrefund.html create mode 100644 assets/pages/scripts/refundSta/refundfile/ltrefund.js create mode 100644 assets/pages/scripts/refundSta/refundstaTmp.js create mode 100644 assets/pages/scripts/refundfile/apprefund/apprefund.css create mode 100644 assets/pages/scripts/refundfile/apprefund/apprefund.html create mode 100644 assets/pages/scripts/refundfile/apprefund/apprefund.js create mode 100644 assets/pages/scripts/refundfile/ltred/ltrefund.css create mode 100644 assets/pages/scripts/refundfile/ltred/ltrefund.html create mode 100644 assets/pages/scripts/refundfile/ltred/ltrefund.js create mode 100644 assets/pages/scripts/refundfile/lttk/temprefund.css create mode 100644 assets/pages/scripts/refundfile/lttk/temprefund.html create mode 100644 assets/pages/scripts/refundfile/lttk/temprefund.js create mode 100644 assets/pages/scripts/refundfile/refundTmp.js create mode 100644 assets/pages/scripts/remsum/appmenuFile/remsum.css create mode 100644 assets/pages/scripts/remsum/appmenuFile/remsum.html create mode 100644 assets/pages/scripts/remsum/appmenuFile/remsum.js create mode 100644 assets/pages/scripts/remsum/sumTmp.js create mode 100644 assets/pages/scripts/rulesetFile/analFile/analogbilling.css create mode 100644 assets/pages/scripts/rulesetFile/analFile/analogbilling.html create mode 100644 assets/pages/scripts/rulesetFile/analFile/analogbilling.js create mode 100644 assets/pages/scripts/rulesetFile/chargingRule/chargingrule.css create mode 100644 assets/pages/scripts/rulesetFile/chargingRule/chargingrule.html create mode 100644 assets/pages/scripts/rulesetFile/chargingRule/chargingrule.js create mode 100644 assets/pages/scripts/rulesetFile/img/Lineright-icon.png create mode 100644 assets/pages/scripts/rulesetFile/img/bgBlue-icon.png create mode 100644 assets/pages/scripts/rulesetFile/img/bgGray-icon.png create mode 100644 assets/pages/scripts/rulesetFile/img/carBig-icon.png create mode 100644 assets/pages/scripts/rulesetFile/img/carSmall-icon.png create mode 100644 assets/pages/scripts/rulesetFile/img/chargingrule-circle-blue.png create mode 100644 assets/pages/scripts/rulesetFile/img/chargingrule-circle-green.png create mode 100644 assets/pages/scripts/rulesetFile/img/chargingrule-circle-yellow.png create mode 100644 assets/pages/scripts/rulesetFile/img/chargingrule-more.png create mode 100644 assets/pages/scripts/rulesetFile/img/chargingrule-time.png create mode 100644 assets/pages/scripts/rulesetFile/img/chargingrule_smallIcon.png create mode 100644 assets/pages/scripts/rulesetFile/img/dataicon.png create mode 100644 assets/pages/scripts/rulesetFile/img/day-iconbg.png create mode 100644 assets/pages/scripts/rulesetFile/img/delList-icon.png create mode 100644 assets/pages/scripts/rulesetFile/img/delete_Rule.png create mode 100644 assets/pages/scripts/rulesetFile/img/discountrule_bgIco.png create mode 100644 assets/pages/scripts/rulesetFile/img/discountrule_topBgico.png create mode 100644 assets/pages/scripts/rulesetFile/img/find_icon.png create mode 100644 assets/pages/scripts/rulesetFile/img/input-checkbox.png create mode 100644 assets/pages/scripts/rulesetFile/img/input-checkexActive.png create mode 100644 assets/pages/scripts/rulesetFile/img/input-radio-active.png create mode 100644 assets/pages/scripts/rulesetFile/img/input-radio.png create mode 100644 assets/pages/scripts/rulesetFile/img/night-iconbg.png create mode 100644 assets/pages/scripts/rulesetFile/img/parkclose_icon.png create mode 100644 assets/pages/scripts/rulesetFile/img/popParknullIco.png create mode 100644 assets/pages/scripts/rulesetFile/img/rule_add.png create mode 100644 assets/pages/scripts/rulesetFile/img/rule_del.png create mode 100644 assets/pages/scripts/rulesetFile/img/truelist-blue.png create mode 100644 assets/pages/scripts/rulesetFile/img/truelist-green.png create mode 100644 assets/pages/scripts/rulesetFile/img/truelist-orange.png create mode 100644 assets/pages/scripts/rulesetFile/img/vipcardrule-1.png create mode 100644 assets/pages/scripts/rulesetFile/img/vipcardrule-2.png create mode 100644 assets/pages/scripts/rulesetFile/img/vipcardrule-3.png create mode 100644 assets/pages/scripts/rulesetFile/img/vipcardrule-blue.png create mode 100644 assets/pages/scripts/rulesetFile/img/vipcardrule-edit-1.png create mode 100644 assets/pages/scripts/rulesetFile/img/vipcardrule-edit-2.png create mode 100644 assets/pages/scripts/rulesetFile/img/vipcardrule-edit-3.png create mode 100644 assets/pages/scripts/rulesetFile/img/vipcardrule-green.png create mode 100644 assets/pages/scripts/rulesetFile/img/vipcardrule-red.png create mode 100644 assets/pages/scripts/rulesetFile/img/vipcardrule-yellow.png create mode 100644 assets/pages/scripts/rulesetFile/rateFile/ratemanage.css create mode 100644 assets/pages/scripts/rulesetFile/rateFile/ratemanage.html create mode 100644 assets/pages/scripts/rulesetFile/rateFile/ratemanage.js create mode 100644 assets/pages/scripts/rulesetFile/rulesetTmp.js create mode 100644 assets/pages/scripts/schedulingFile/img/plan-cashier-Ico.png create mode 100644 assets/pages/scripts/schedulingFile/img/replace-person-left.png create mode 100644 assets/pages/scripts/schedulingFile/img/replace-person-right.png create mode 100644 assets/pages/scripts/schedulingFile/img/replace-person.png create mode 100644 assets/pages/scripts/schedulingFile/img/schedulingplan-replace-wrap.png create mode 100644 assets/pages/scripts/schedulingFile/schedleTmp.js create mode 100644 assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.css create mode 100644 assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.html create mode 100644 assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.js create mode 100644 assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.css create mode 100644 assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.html create mode 100644 assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.js create mode 100644 assets/pages/scripts/servicemanage/css/myworklist.css create mode 100644 assets/pages/scripts/servicemanage/css/workordermanage.css create mode 100644 assets/pages/scripts/servicemanage/myworklist.js create mode 100644 assets/pages/scripts/servicemanage/pages/workordermanage.html create mode 100644 assets/pages/scripts/servicemanage/workordermanage.js create mode 100644 assets/pages/scripts/settleFile/settlementmanage.js create mode 100644 assets/pages/scripts/settleFile/temporarysettletob.js create mode 100644 assets/pages/scripts/shootFile/endorfile/endorsement.css create mode 100644 assets/pages/scripts/shootFile/endorfile/endorsement.html create mode 100644 assets/pages/scripts/shootFile/endorfile/endorsement.js create mode 100644 assets/pages/scripts/shootFile/roadfile/roadviolation.css create mode 100644 assets/pages/scripts/shootFile/roadfile/roadviolation.html create mode 100644 assets/pages/scripts/shootFile/roadfile/roadviolation.js create mode 100644 assets/pages/scripts/shootFile/shootTmp.js create mode 100755 assets/pages/scripts/textIconOverlay.js create mode 100755 assets/pages/scripts/tollFile/auditofToll/auditoftoll.css create mode 100755 assets/pages/scripts/tollFile/auditofToll/auditoftoll.html create mode 100755 assets/pages/scripts/tollFile/auditofToll/auditoftoll.js create mode 100755 assets/pages/scripts/tollFile/cashierAudit/cashieraudit.css create mode 100755 assets/pages/scripts/tollFile/cashierAudit/cashieraudit.html create mode 100755 assets/pages/scripts/tollFile/cashierAudit/cashieraudit.js create mode 100755 assets/pages/scripts/tollFile/chargeFile/chargesign.css create mode 100755 assets/pages/scripts/tollFile/chargeFile/chargesign.html create mode 100755 assets/pages/scripts/tollFile/chargeFile/chargesign.js create mode 100755 assets/pages/scripts/tollFile/chargeFile/cricleico.png create mode 100755 assets/pages/scripts/tollFile/chargeFile/toll_qdcard_all.png create mode 100755 assets/pages/scripts/tollFile/chargeFile/toll_qdcard_no.png create mode 100755 assets/pages/scripts/tollFile/chargeFile/toll_qdcard_true.png create mode 100755 assets/pages/scripts/tollFile/chargeGroup/chargegroup.css create mode 100755 assets/pages/scripts/tollFile/chargeGroup/chargegroup.html create mode 100755 assets/pages/scripts/tollFile/chargeGroup/chargegroup.js create mode 100755 assets/pages/scripts/tollFile/chargeGroup/img/chargegroup_smallIcon.png create mode 100755 assets/pages/scripts/tollFile/tollChecker/tollchecker.css create mode 100755 assets/pages/scripts/tollFile/tollChecker/tollchecker.html create mode 100755 assets/pages/scripts/tollFile/tollChecker/tollchecker.js create mode 100755 assets/pages/scripts/tollFile/tollCollector/inspectionper-nodata.png create mode 100755 assets/pages/scripts/tollFile/tollCollector/nosign-icon.png create mode 100755 assets/pages/scripts/tollFile/tollCollector/sign-icon.png create mode 100755 assets/pages/scripts/tollFile/tollCollector/signed_icon.png create mode 100755 assets/pages/scripts/tollFile/tollCollector/tollcollector.css create mode 100755 assets/pages/scripts/tollFile/tollCollector/tollcollector.html create mode 100755 assets/pages/scripts/tollFile/tollCollector/tollcollector.js create mode 100755 assets/pages/scripts/tollFile/tollCollector/tollcollectormanage-head.png create mode 100755 assets/pages/scripts/tollFile/tollfileTmp.js create mode 100644 assets/pages/scripts/vipmanageFile/cardRule/cardrule.js create mode 100644 assets/pages/scripts/vipmanageFile/cardRule/css/cardrule.css create mode 100644 assets/pages/scripts/vipmanageFile/cardRule/img/cardrule-person-ico.png create mode 100644 assets/pages/scripts/vipmanageFile/cardRule/img/pop_unload.png create mode 100644 assets/pages/scripts/vipmanageFile/cardRule/img/pop_upload.png create mode 100644 assets/pages/scripts/vipmanageFile/cardRule/img/pop_word_ico.png create mode 100644 assets/pages/scripts/vipmanageFile/cardRule/page/cardrule.html create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.css create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.html create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.js create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/Lineright-icon.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/bgBlue-icon.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/bgGray-icon.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/carBig-icon.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/carSmall-icon.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-blue.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-green.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-yellow.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-more.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-time.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule_smallIcon.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/dataicon.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/day-iconbg.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/delList-icon.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/delete_Rule.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/discountrule_bgIco.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/discountrule_topBgico.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/find_icon.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-checkbox.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-checkexActive.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-radio-active.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-radio.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/night-iconbg.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/parkclose_icon.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/popParknullIco.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-blue.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-green.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-orange.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-1.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-2.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-3.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-blue.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-1.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-2.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-3.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-green.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-red.png create mode 100644 assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-yellow.png create mode 100644 assets/pages/scripts/vipmanageFile/img/Lineright-icon.png create mode 100644 assets/pages/scripts/vipmanageFile/img/bgBlue-icon.png create mode 100644 assets/pages/scripts/vipmanageFile/img/bgGray-icon.png create mode 100644 assets/pages/scripts/vipmanageFile/img/carBig-icon.png create mode 100644 assets/pages/scripts/vipmanageFile/img/carSmall-icon.png create mode 100644 assets/pages/scripts/vipmanageFile/img/chargingrule-circle-blue.png create mode 100644 assets/pages/scripts/vipmanageFile/img/chargingrule-circle-green.png create mode 100644 assets/pages/scripts/vipmanageFile/img/chargingrule-circle-yellow.png create mode 100644 assets/pages/scripts/vipmanageFile/img/chargingrule-more.png create mode 100644 assets/pages/scripts/vipmanageFile/img/chargingrule-time.png create mode 100644 assets/pages/scripts/vipmanageFile/img/chargingrule_smallIcon.png create mode 100644 assets/pages/scripts/vipmanageFile/img/dataicon.png create mode 100644 assets/pages/scripts/vipmanageFile/img/day-iconbg.png create mode 100644 assets/pages/scripts/vipmanageFile/img/delList-icon.png create mode 100644 assets/pages/scripts/vipmanageFile/img/delete_Rule.png create mode 100644 assets/pages/scripts/vipmanageFile/img/discountrule_bgIco.png create mode 100644 assets/pages/scripts/vipmanageFile/img/discountrule_topBgico.png create mode 100644 assets/pages/scripts/vipmanageFile/img/find_icon.png create mode 100644 assets/pages/scripts/vipmanageFile/img/input-checkbox.png create mode 100644 assets/pages/scripts/vipmanageFile/img/input-checkexActive.png create mode 100644 assets/pages/scripts/vipmanageFile/img/input-radio-active.png create mode 100644 assets/pages/scripts/vipmanageFile/img/input-radio.png create mode 100644 assets/pages/scripts/vipmanageFile/img/night-iconbg.png create mode 100644 assets/pages/scripts/vipmanageFile/img/parkclose_icon.png create mode 100644 assets/pages/scripts/vipmanageFile/img/popParknullIco.png create mode 100644 assets/pages/scripts/vipmanageFile/img/truelist-blue.png create mode 100644 assets/pages/scripts/vipmanageFile/img/truelist-green.png create mode 100644 assets/pages/scripts/vipmanageFile/img/truelist-orange.png create mode 100644 assets/pages/scripts/vipmanageFile/img/vipcardrule-1.png create mode 100644 assets/pages/scripts/vipmanageFile/img/vipcardrule-2.png create mode 100644 assets/pages/scripts/vipmanageFile/img/vipcardrule-3.png create mode 100644 assets/pages/scripts/vipmanageFile/img/vipcardrule-blue.png create mode 100644 assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-1.png create mode 100644 assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-2.png create mode 100644 assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-3.png create mode 100644 assets/pages/scripts/vipmanageFile/img/vipcardrule-green.png create mode 100644 assets/pages/scripts/vipmanageFile/img/vipcardrule-red.png create mode 100644 assets/pages/scripts/vipmanageFile/img/vipcardrule-yellow.png create mode 100644 assets/pages/scripts/vipmanageFile/vipStatistics/css/vipstatistics.css create mode 100644 assets/pages/scripts/vipmanageFile/vipStatistics/page/vipstatistics.html create mode 100644 assets/pages/scripts/vipmanageFile/vipStatistics/vipstatistics.js create mode 100644 assets/pages/scripts/vipmanageFile/vipmanageTmp.js create mode 100644 assets/pages/scripts/vipmanageFile/whiteList/whitelist.css create mode 100644 assets/pages/scripts/vipmanageFile/whiteList/whitelist.html create mode 100644 assets/pages/scripts/vipmanageFile/whiteList/whitelist.js create mode 100644 assets/pages/scripts/yardoperation/carflowport/carflowport.css create mode 100644 assets/pages/scripts/yardoperation/carflowport/carflowport.html create mode 100644 assets/pages/scripts/yardoperation/carflowport/carflowport.js create mode 100644 assets/pages/scripts/yardoperation/parkinglengthport/parkinglengthport.css create mode 100644 assets/pages/scripts/yardoperation/parkinglengthport/parkinglengthport.html create mode 100644 assets/pages/scripts/yardoperation/parkinglengthport/parkinglengthport.js create mode 100644 assets/pages/scripts/yardoperation/parkinglengthport/parkinglengthport.jsbak create mode 100644 assets/pages/scripts/yardoperation/yardoperationTmp.js create mode 100644 assets/syspages/css/.gitignore create mode 100644 assets/syspages/css/awesome.min.css create mode 100644 assets/syspages/css/bootstrap-multiselect.css create mode 100644 assets/syspages/css/changePwd.css create mode 100644 assets/syspages/css/common.css create mode 100644 assets/syspages/css/dictionarymanage.css create mode 100644 assets/syspages/css/frameworkManage.css create mode 100644 assets/syspages/css/jobFuncManage.css create mode 100644 assets/syspages/css/loggingManage.css create mode 100644 assets/syspages/css/loginlogmanage.css create mode 100644 assets/syspages/css/menuManage.css create mode 100644 assets/syspages/css/orgarearelation.css create mode 100644 assets/syspages/css/reset.css create mode 100644 assets/syspages/css/roleManage.css create mode 100644 assets/syspages/css/tLogManage.css create mode 100644 assets/syspages/css/userManage.css create mode 100644 assets/syspages/css/userManage.cssbak create mode 100644 assets/syspages/css/ztree-v3.5.28/awesomeStyle/awesome.css create mode 100644 assets/syspages/css/ztree-v3.5.28/awesomeStyle/awesome.less create mode 100644 assets/syspages/css/ztree-v3.5.28/awesomeStyle/fa.less create mode 100644 assets/syspages/css/ztree-v3.5.28/awesomeStyle/img/loading.gif create mode 100644 assets/syspages/css/ztree-v3.5.28/demo.css create mode 100644 assets/syspages/css/ztree-v3.5.28/metroStyle/img/line_conn.png create mode 100644 assets/syspages/css/ztree-v3.5.28/metroStyle/img/loading.gif create mode 100644 assets/syspages/css/ztree-v3.5.28/metroStyle/img/metro.gif create mode 100644 assets/syspages/css/ztree-v3.5.28/metroStyle/img/metro.png create mode 100644 assets/syspages/css/ztree-v3.5.28/metroStyle/metroStyle.css create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/1_close.png create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/1_open.png create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/2.png create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/3.png create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/4.png create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/5.png create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/6.png create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/7.png create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/8.png create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/diy/9.png create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/line_conn.gif create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/loading.gif create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/zTreeStandard.gif create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/img/zTreeStandard.png create mode 100644 assets/syspages/css/ztree-v3.5.28/zTreeStyle/zTreeStyle.css create mode 100644 assets/syspages/img/add_icon.png create mode 100644 assets/syspages/img/arrow_down.png create mode 100644 assets/syspages/img/arrow_down_red.png create mode 100644 assets/syspages/img/arrow_left.png create mode 100644 assets/syspages/img/arrow_right.png create mode 100644 assets/syspages/img/change_pwd_success_con.png create mode 100644 assets/syspages/img/date_active.png create mode 100644 assets/syspages/img/date_icon.png create mode 100644 assets/syspages/img/delete_icon.png create mode 100644 assets/syspages/img/login_bg.jpg create mode 100644 assets/syspages/img/login_logo.png create mode 100644 assets/syspages/img/login_out_btn.png create mode 100644 assets/syspages/img/login_password.png create mode 100644 assets/syspages/img/login_user.png create mode 100644 assets/syspages/img/main_l_menu_1.png create mode 100644 assets/syspages/img/main_l_menu_2.png create mode 100644 assets/syspages/img/search_btn.png create mode 100644 assets/syspages/img/sys_logo.png create mode 100644 assets/syspages/img/user_pic.png create mode 100644 assets/syspages/js/common.js create mode 100644 assets/syspages/js/dictionarymanage.js create mode 100644 assets/syspages/js/lib/DateUtils.js create mode 100644 assets/syspages/js/lib/bootstrap-multiselect.js create mode 100644 assets/syspages/js/lib/bootstrap-treeview/bootstrap-treeview.js create mode 100644 assets/syspages/js/lib/jquery-migrate-1.2.1.js create mode 100644 assets/syspages/js/lib/niceDate.js create mode 100644 assets/syspages/js/lib/niceSelect.js create mode 100644 assets/syspages/js/lib/ztree-v3.5.28/jquery-1.4.4.min.js create mode 100644 assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.all.js create mode 100644 assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.all.min.js create mode 100644 assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.core.js create mode 100644 assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.core.min.js create mode 100644 assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.excheck.js create mode 100644 assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.excheck.min.js create mode 100644 assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.exedit.js create mode 100644 assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.exedit.min.js create mode 100644 assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.exhide.js create mode 100644 assets/syspages/js/lib/ztree-v3.5.28/jquery.ztree.exhide.min.js create mode 100644 assets/syspages/js/loggingManage.js create mode 100644 assets/syspages/js/loginlogmanage.js create mode 100644 assets/syspages/js/logmanagement/css/loginlogmanage.css create mode 100644 assets/syspages/js/logmanagement/css/pdalogmanage.css create mode 100644 assets/syspages/js/logmanagement/loginlogmanage.js create mode 100644 assets/syspages/js/logmanagement/logmanageTmp.js create mode 100644 assets/syspages/js/logmanagement/pages/loginlogmanage.html create mode 100644 assets/syspages/js/logmanagement/pages/pdalogmanage.html create mode 100644 assets/syspages/js/logmanagement/pdalogmanage.js create mode 100644 assets/syspages/js/menuallot/css/menuManage.css create mode 100644 assets/syspages/js/menuallot/css/orgresrelation.css create mode 100644 assets/syspages/js/menuallot/menuManage.js create mode 100644 assets/syspages/js/menuallot/orgresrelation.js create mode 100644 assets/syspages/js/menuallot/pages/menuManage.html create mode 100644 assets/syspages/js/menuallot/pages/orgresrelation.html create mode 100644 assets/syspages/js/menuallot/sysmenuTmp.js create mode 100644 assets/syspages/js/rbac/css/frameworkManage.css create mode 100644 assets/syspages/js/rbac/css/jobFuncManage.css create mode 100644 assets/syspages/js/rbac/css/orgarearelation.css create mode 100644 assets/syspages/js/rbac/css/roleManage.css create mode 100644 assets/syspages/js/rbac/css/userManage.css create mode 100644 assets/syspages/js/rbac/css/userManage.cssbak create mode 100644 assets/syspages/js/rbac/frameworkManage.js create mode 100644 assets/syspages/js/rbac/jobFuncManage.js create mode 100644 assets/syspages/js/rbac/orgarearelation.js create mode 100644 assets/syspages/js/rbac/orgarearelation_gov.js create mode 100644 assets/syspages/js/rbac/pages/frameworkManage.html create mode 100644 assets/syspages/js/rbac/pages/jobFuncManage.html create mode 100644 assets/syspages/js/rbac/pages/orgarearelation.html create mode 100644 assets/syspages/js/rbac/pages/roleManage.html create mode 100644 assets/syspages/js/rbac/pages/userManage.html create mode 100644 assets/syspages/js/rbac/pages/userManage.htmlbak create mode 100644 assets/syspages/js/rbac/rbacTmp.js create mode 100644 assets/syspages/js/rbac/roleManage.js create mode 100644 assets/syspages/js/rbac/userManage.js create mode 100644 assets/syspages/js/rbac/userManage.jsbak create mode 100644 assets/syspages/js/syssetting/changePwd.js create mode 100644 assets/syspages/js/syssetting/css/changePwd.css create mode 100644 assets/syspages/js/syssetting/page/changePwd.html create mode 100644 assets/syspages/js/syssetting/syssettingTmp.js diff --git a/assets/pages/config/config.js b/assets/pages/config/config.js new file mode 100644 index 0000000..c2a2d2d --- /dev/null +++ b/assets/pages/config/config.js @@ -0,0 +1,40 @@ +/* + ================================ + @作者: + @修改者: + @模块描述:blue.css样式 + @创建日期:2017/07/06 + @修改日期:2017/12/23 + ================================ +*/ +var appConfig = { + themeName : '../../assets/pages/css/theme/blue.css', +}; + + +$("") + .attr({ rel: "stylesheet", + type: "text/css", + href: appConfig.themeName + }) + .appendTo("head"); +/* + ================================ + @作者: + @修改者: + @模块描述:table公共方法引入 + @创建日期:2018/10/31 + @修改日期:2018/10/31 + ================================ +*/ + +var tableConfig = { + commonName : '../../assets/pages/scripts/public/util.js', +}; + +$("").attr({ + rel: "stylesheet", + type: "text/javascript", + src: tableConfig.commonName +}).appendTo("head"); + diff --git a/assets/pages/css/basicInformation/basicInformation.css b/assets/pages/css/basicInformation/basicInformation.css new file mode 100644 index 0000000..b2e11a1 --- /dev/null +++ b/assets/pages/css/basicInformation/basicInformation.css @@ -0,0 +1,47 @@ +.home_Img { + display: inline-block; + float: left; + width: 16px; + height: 16px; + margin-right: 6px; + background: url(../../img/index_Img.png) no-repeat; + background-size: 100% 100%; + +} +.gs_jbxx{ + padding-left: 0; + height: 495px; +} +.gs_jbxx li{ + + margin-bottom: 15px; + font-size: 14px; + color: #34495e; +} +.col-md-left{ + float: left; + width: 85px; + text-align: right; + margin-right: 24px; +} +.peo_lxrxx .col-md-left{ + width: 60px; +} +.col-md-right{ + float: left; +} +.col-md-right img,.sfzh_pic img{ + width: 100%; + height: 100%; +} +.yyzz_pic{ + width: 184px; + height: 138px; +} +.sfzh_pic{ + margin-right: 10px; + display: inline-block; + width: 184px; + height: 138px; +} +.zoomify{cursor:pointer;cursor:-webkit-zoom-in;cursor:zoom-in}.zoomify.zoomed{cursor:-webkit-zoom-out;cursor:zoom-out;padding:0;margin:0;border:none;border-radius:0;box-shadow:none;position:relative;z-index:1501}.zoomify-shadow{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:block;z-index:1500;background:rgba(0,0,0 ,.3);opacity:0}.zoomify-shadow.zoomed{opacity:1;cursor:pointer;cursor:-webkit-zoom-out;cursor:zoom-out} \ No newline at end of file diff --git a/assets/pages/css/basicInformationmod/basicInformationmod.css b/assets/pages/css/basicInformationmod/basicInformationmod.css new file mode 100644 index 0000000..176cfeb --- /dev/null +++ b/assets/pages/css/basicInformationmod/basicInformationmod.css @@ -0,0 +1,48 @@ +.home_Img { + display: inline-block; + float: left; + width: 16px; + height: 16px; + margin-right: 6px; + background: url(../../img/index_Img.png) no-repeat; + background-size: 100% 100%; +} +.gs_jbxx{ + padding-left: 0; + height: 495px; +} +.gs_jbxx li{ + + margin-bottom: 15px; + font-size: 14px; + color: #34495e; +} +.peo_lxrxx li{ + margin-bottom: 0; +} +.col-md-left{ + float: left; + width: 85px; + text-align: right; + margin-right: 24px; +} +.peo_lxrxx .col-md-left{ + width: 60px; +} +.col-md-right{ + float: left; +} +.col-md-right img,.sfzh_pic img{ + width: 100%; + height: 100%; +} +.yyzz_pic{ + width: 184px; + height: 138px; +} +.sfzh_pic{ + margin-right: 10px; + display: inline-block; + width: 184px; + height: 138px; +} diff --git a/assets/pages/css/callCenter/customercenter.css b/assets/pages/css/callCenter/customercenter.css new file mode 100644 index 0000000..40c78c1 --- /dev/null +++ b/assets/pages/css/callCenter/customercenter.css @@ -0,0 +1,48 @@ +.kefu_wrap{ + width: 90%; + height: 324px; + background-color: #eef1f5; + margin: 142px auto 0; + position: relative; +} +.kefu_wrap span{ + display: block; +} +.kefu_wrap .kefu_img{ + position: absolute; + width: 100px; + height: 100px; + left: 50%; + margin-left: -50px; + top:-50px; + +} +.kefu_img_l{ + background:url(../../img/kefu_pho_icon.png) no-repeat ; +} +.kefu_img_c{ + background:url(../../img/kefu_email_icon.png) no-repeat ; +} + +.kefu_img_r{ + background:url(../../img/kefu_qq_icon.png) no-repeat ; +} +.kefu_wrap .kefu_title{ + padding: 90px 0 36px 0; + font-size: 20px; + color: #34495e; + text-align: center; +} +.kefu_wrap .kefu_num{ + padding: 0 0 16px 0; + font-size: 24px; + color: #34495e; + text-align: center; +} +.kefu_wrap .kefu_describe{ + font-size: 14px; + padding-left: 15px; + padding-right: 15px ; + color: #4d6b8a; + text-align: center; +} \ No newline at end of file diff --git a/assets/pages/css/common.css b/assets/pages/css/common.css new file mode 100755 index 0000000..cfdf3ef --- /dev/null +++ b/assets/pages/css/common.css @@ -0,0 +1,81 @@ +html,body{font-family:"微软雅黑","Microsoft YaHei",Arial,Helvetica,sans-serif,"SimSun";-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-weight: normal;} +html,body,ul,li,ol,dl,dd,dt,p,h1,h2,h3,h4,h5,h6,form,fieldset,legend,img { + margin: 0; + padding: 0 +} +fieldset,img { + border: 0 +} + +address,caption,cite,code,dfn,th,var { + font-style: normal; + font-weight: normal +} +ul,ol { + list-style: none +} +input { + padding-top: 0; + padding-bottom: 0; +} +input::-moz-focus-inner { + border: 0; + padding: 0 +} +select,input { + vertical-align: middle +} +select,input,textarea { + font-size: 12px; + margin: 0; + padding: 0; +} +input[type="text"],input[type="password"],textarea { + outline-style: none; + -webkit-appearance: none +} +textarea { + resize: none +} +table { + border-collapse: collapse +} + +/*公用*/ + +/*html,body{*/ + /*min-width: 1250px;*/ + /*overflow-x: scroll;*/ +/*}*/ +.float-left{ + float: left; +} +.float-right{ + float: right; +} +.posrel{ + position: relative; +} +.posabs{ + position: absolute; +} +.clearfix{clear:both;height:0;overflow:hidden;} +/*头部*/ +header{ + height: 80px; +} +/*底部*/ +footer{ + width:100%; + height:130px; + position:fixed; + bottom:0; + left:0; + /*background:#1e1e1e;*/ + cursor: pointer; + /*color: rgba(255,255,255,0.4);*/ + font-size: 12px; + text-align: center; + /*line-height: 40px;*/ +} + diff --git a/assets/pages/css/commonsetcss/commonsetcss.css b/assets/pages/css/commonsetcss/commonsetcss.css new file mode 100644 index 0000000..f541419 --- /dev/null +++ b/assets/pages/css/commonsetcss/commonsetcss.css @@ -0,0 +1,2465 @@ +ul{ + padding-left: 0; + margin-bottom: 0; +} +body,ul,li{ + list-style:none; +} +button{ + outline:none; +} +.clearfix:after{ + display:block; + clear:both; + content:""; + visibility:hidden; + height:0 +} +.clearfix{ + zoom:1; +} +.ITD-padding-common{ + padding: 0 9px!important; +} + + +/* + ================================ + @主题样式 + 浮动 公共 + ================================ +*/ +.float-right{ + float: right; +} +.float-left{ + float: left; +} +.float-none{ + float: none; +} +/* + ================================ + @主题样式 + overflow 公共 + ================================ +*/ +.ITD-overflowhidden{ + overflow: hidden; +} +.ITD-overflowhidden-y{ + overflow-y:auto; +} +/*不换行 省略号*/ +.ITD-hidden-nowrap{ + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.ITD-displayinline{ + display: inline-block; +} +/* + ================================ + @主题样式 + 定位 公共 + ================================ +*/ +.pos-rel{ + position: relative; +} +.pos-abs{ + position: absolute; +} +.theme-abspos{ + top: 1px; + right: 10px; + color: rgba(0,0,0,.7); +} +/* + ================================ + @主题样式 + input placeholder样式重写 公共 + ================================ +*/ +input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { + /* WebKit browsers */ + color:rgba(0,0,0,0.45); +} +input:-moz-placeholder, textarea:-moz-placeholder { + /* Mozilla Firefox 4 to 18 */ + color:rgba(0,0,0,0.45); +} +input::-moz-placeholder, textarea::-moz-placeholder { + /* Mozilla Firefox 19+ */ + color:rgba(0,0,0,0.45); +} +input:-ms-input-placeholder, textarea:-ms-input-placeholder { + /* Internet Explorer 10+ */ + color:rgba(0,0,0,0.45); +} +/* + ================================ + @主题样式 + 目录名称 公共 + ================================ +*/ +.ITD-directory-name{ + margin: -18px -44px 0; + padding-bottom: 30px; + border-bottom: 1px solid #f6f5f5; + height: 18px; + line-height: 18px; +} +.ITD-directory-name span{ + height: 16px; + line-height: 16px; + display: inline-block; + padding-left: 10px; + margin-left: 36px; + border-left: 3px solid #1E95CD; +} +/* + ================================ + @主题样式 + flex 公共 + ================================ +*/ +.ITD-common-display-flex{ + display: -webkit-box; /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */ + display: flex; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; +} +.ITD-common-perflex{ + flex:1; +} +/* + ================================ + @主题样式 + 鼠标 公共 + ================================ +*/ +.ITD-cursor-pointer{ + cursor: pointer; +} +.display-inlineblock{ + display: inline-block; +} +.ITD-vertical-align-middle{ + vertical-align: middle; +} +/* + ========================================== + @主题样式 + @page-content右侧内容样式 + ========================================== +*/ +/* + ========================================== + @主题样式 + @page-content + @重写min-width下page-content上边距 + ========================================== +*/ +@media (min-width: 992px) { + /* Page content */ + .page-content-wrapper .page-content { + padding: 44px 44px ; + } +} + +/* + ========================================== + @主题样式 + @page-content + @背景色 + ========================================== +*/ +.page-container-bg-solid .page-content { + border-left:12px solid #F1F1F3 ; + background:#fff; +} +/* + ================================ + @主题样式 + ================================ +*/ + + +/* + ================================ + @主题样式 + 内外边距 公共 + ================================ +*/ + +.padding0-14{ + padding-left: 14px; + padding-right: 14px; +} +.padding0-20{ + padding-left: 24px; + padding-right: 24px; +} +.padding20-0{ + padding: 20px 0; +} +.paddingleft-10{ + padding-left: 10px; +} +.ITD-padding-24{ + padding: 24px 24px; +} +.ITD-padding9-8{ + padding: 9px 8px; +} +.ITD-padding22-24{ + padding: 22px 24px; +} +.ITD-paddingtop20{ + padding-top:20px; +} +.ITD-paddingbottom20{ + padding-bottom:20px; +} +.margin-bottom-5{ + margin-bottom:5px; +} +.margin-bottom-24{ + margin-bottom: 24px; +} +.margin-bottom-12{ + margin-bottom: 12px!important; +} +.margin-bottom-18{ + margin-bottom: 18px!important; +} +.margin-right-15{ + margin-right: 15px; +} +.margin-right-12{ + margin-right: 12px; +} +.margin-left-12{ + margin-left: 12px; +} +.margin-right-17{ + margin-right: 17px; +} +.margin-right-24{ + margin-right: 24px; +} +.margin-bottom-10{ + margin-bottom: 10px; +} +.margin-bottom-16{ + margin-bottom: 16px; +} +.margin-bottom-80{ + margin-bottom: 80px; +} +.margin-top-5{ + margin-top: 5px; +} +.margin-top-9{ + margin-top: 9px; +} +.margin-top-18{ + margin-top: 18px; +} +.margin-top-24{ + margin-top: 24px; +} +.ITD-paddintop-6{ + padding-top: 6px; +} +.ITD-marginright-15{ + margin-right: 15px; +} +.ITD-marginleft-5{ + margin-left: 5px; +} +.ITD-padding-15{ + padding: 15px; + padding-bottom: 0px !important; +} +.ITD-border-bottom1{ + border-bottom: 1px solid #d8e2e5; +} +.ITD-padding0-24{ + padding: 0 24px 24px 24px; +} +.ITD-paddingbottom-24{ + padding-bottom:24px; +} + + +.card-parking-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-parking-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-outorder-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../../pages/css/home/img/general-li-5.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-parkingin-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-parkingin-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-parkingout-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-parkingout-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-parkingzzl-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-parkingzzl-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-roadside-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-roadside-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-goe-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-geo-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-berth-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url(../../img/card-berth-icon.png) no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-berth-iconl{ + display: inline-block; + height: 24px; + width: 24px; + background: url(../../img/card-berth-iconl.png) no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-measure-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-measure-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-parkingtime-icon{ + width: 55px; + height: 55px; + background: url("../../img/card-parkingtime-icon.png") no-repeat; + margin-right: 10px; +} +.card-berttime-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-berttime-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-rate-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-rate-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-wifi-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-wifi-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*停车次数 icon*/ +.park-num-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/park-num-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*收费次数 icon*/ +.pay-num-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/pay-num-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*实收金额 icon*/ +.pay-money-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/pay-money-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*收费lv icon*/ +.pay-acount-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/pay-acount-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*总收入 icon*/ +.card-money-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-money-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*问好 icon*/ +.question-money-icon{ + display: inline-block; + height: 18px; + width: 18px; + background: url(../../img/question-money-icon.png) no-repeat; + background-size: 100% 100%; + vertical-align: middle; + margin-right: 10px; +} +/*微信总收入 icon*/ +.card-wxmoney-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-wxmoney-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*支付宝总收入 icon*/ +.card-alimoney-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-alimoney-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*余额总收入 icon*/ + .card-baltomoney-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-baltomoney-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; + } +/*临停收入 icon*/ +.card-ltmoney-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../../pages/scripts/incomereportFile/incomeParking/img/incomecasier-li-4.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*vip收入 icon*/ +.card-vipmoney-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../../pages/scripts/incomereportFile/incomeParking/img/incomestates-li-5.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*收费员 icon*/ +.card-caiser-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../../pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-2.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-caiserperson-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../../pages/scripts/incomereportFile/incomeCasier/img/card-caiserperson-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*异常订单笔数 icon*/ +.card-abnormalNum-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../../pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-4.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*异常订单金额 icon*/ +.card-abnormalTotal-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../../pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-5.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} + +.card-received-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-received-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-discount-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-discount-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-clearing-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-clearing-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-unclearing-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-unclearing-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-other-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/card-other-icon.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +.card-apphyd-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/apphyd_ico.png") no-repeat; + background-size: 24px 24px; + vertical-align: bottom; + margin-right: 10px; +} +.card-appuser-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/appUser_ico.png") no-repeat; + background-size:24px 24px; + vertical-align: bottom; + margin-right: 10px; +} +.card-todayuser-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/todayUser_ico.png") no-repeat; + background-size: 24px 24px; + vertical-align: bottom; + margin-right: 10px; +} + +/*收入差异黄色*/ +.srcy-yellow-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/srcy-yellow-icon.png) no-repeat; +} +/*退款黄色*/ +.tk-yellow-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/tk-yellow-icon.png) no-repeat; +} +/*退款差异黄色*/ +.tkcy-yellow-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/tkcy-yellow-icon.png) no-repeat; +} +/*收入差异绿色*/ +.srcy-green-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/srcy-green-icon.png) no-repeat; +} +/*退款绿色*/ +.tk-green-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/tk-green-icon.png) no-repeat; +} +/*退款差异绿色*/ +.tkcy-green-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/tkcy-green-icon.png) no-repeat; +} +/*收入差异蓝色*/ +.srcy-blue-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/srcy-blue-icon.png) no-repeat; +} +/*退款蓝色*/ +.tk-blue-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/tk-blue-icon.png) no-repeat; +} +/*退款差异蓝色*/ +.tkcy-blue-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/tkcy-blue-icon.png) no-repeat; +} +/*收入差异橙色*/ +.srcy-orange-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/srcy-orange-icon.png) no-repeat; +} +/*退款橙色*/ +.tk-orange-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/tk-orange-icon.png) no-repeat; +} +/*退款差异橙色*/ +.tkcy-orange-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/tkcy-orange-icon.png) no-repeat; +} +/*欠费车主人数*/ +.person-park-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/person_park.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/*欠费车主人数*/ +.card-remnum-icon{ + display: inline-block; + height: 24px; + width: 24px; + background: url("../../img/remnum_park.png") no-repeat; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 10px; +} +/* + ========================= + 卡列表 + ========================= +*/ +.ITD-cardnew-wrap>li:nth-of-type(2){ + padding-top:10px ; + padding-bottom:10px ; +} +.ITD-cardlist-wrap { + height: 105px; +} +.ITD-cardlist-wrap ul{ + padding-top: 26px; + padding-left: 24px; +} +.ITD-cardlist-wrap ul>li:nth-of-type(1){ + height: 24px; + line-height: 24px; +} +.ITD-cardlist-wrap-1{ + background-color: #fff1db; +} +.ITD-cardlist-wrap-2{ + background-color: #dff9eb; +} +.ITD-cardlist-wrap-3{ + background-color: #fff9db; +} +.ITD-cardlist-wrap-4{ + background-color: #dff3f4; +} +/* + ========================= + 卡列表 上部汇总 + ========================= +*/ +.count-icon{ + display: inline-block; + width: 16px; + height: 16px; + background-repeat: no-repeat; + vertical-align: sub; + margin-right: 5px; + background-image: url(../../img/count-parking.png); +} +.count-parking{ + background-position: 0 0; +} +.count-roadside{ + background-position: -16px 0; +} +.count-seal{ + background-position: -32px 0; +} +.count-berth{ + background-position: -48px 0; +} +/* + ========================= + + ========================= + */ +.ITD-statistics-count{ + height: 32px; + line-height: 32px; + background: #fafafa; + margin-bottom: 17px; + margin-top: 17px; + width: 100%; + padding-right: 20px; +} +.ITD-statistics-count-main li{ + margin-left: 30px; +} + +/* + ========================= + table排名1 2 3 样式 + ========================= + */ +.ITD-popNo-origin{ + width:20px; + height:20px; + line-height: 20px; + font-size:12px; + text-align: center; + display: inline-block; +} +.ITD-popNo-one{ + width:20px; + height:20px; + line-height: 20px; + font-size:12px; + text-align: center; + display: inline-block; + border-radius: 50% !important; + border: 1px solid #fe944d; +} +.ITD-popNo-two{ + width:20px; + height:20px; + line-height: 20px; + font-size:12px; + text-align: center; + display: inline-block; + border: 1px solid #fed64d; + border-radius: 50% !important; +} +.ITD-popNo-three{ + width:20px; + height:20px; + line-height: 20px; + font-size:12px; + text-align: center; + display: inline-block; + border: 1px solid #5fe98f; + border-radius: 50% !important; +} +/* + ========================= + table底部pagefooter样式更新 + ========================= +*/ +.page-footer .page-footer-inner { + color: #a1b2cf !important; + text-align: center !important; + float: none; + display: block; +} + +/* + ================================ + @主题样式 + 页面title 公共 + ================================ +*/ +.ITD-border-bottom{ + border-bottom: 1px solid #f0f0f2; +} +.ITD-common-title{ + height: 44px; + line-height:44px; + font-size: 14px; + border-bottom: 1px solid #f0f0f2; +} +.ITD-common-title em{ + width: 18px; + height: 18px; + display: inline-block; + vertical-align: middle; + margin-right: 8px; + background-repeat:no-repeat ; + margin-top:-3px; +} +.ITD-common-paytitle{ + height: 55px; + line-height: 55px; + color: #000; + font-size: 16px; + padding-left: 55px; + border-bottom: 1px solid #f1f1f3; + background: url("../../img/common_payico.png") no-repeat 27px center; +} + +/* + ===错误信息提示样式 公共 === +*/ +.ITD-model-contbody{ + max-height: 540px; + padding: 0 !important; + overflow-y: auto; +} +.ITD-model-errormsg{ + height: 20px; + line-height: 20px; + /*background-color: #fddbdb;*/ + color: #f83955; + font-size: 12px; + text-align: center; +} +/*---------------删除弹窗------------------*/ +.ITD-deletemodel-content{ + margin-left: 127px; + height:96px; + width: 96px; + background: url("../../img/delete_Rule.png") no-repeat; +} +.ITD-deletemodel-contentmsg{ + height: 30px; + line-height: 30px; + text-align: center; + width: 100%; + margin-top: 8px; +} +/*---------------提示弹窗------------------*/ +.ITD-alertmodel-contentmsg { + height: 100px; + line-height: 100px; + text-align: center; + width: 100%; + margin-top: 8px; +} +/*---------------成功弹窗---------------*/ +.ITD-successmodel-content{ + margin-left: 120px; + height:96px; + width: 96px; + background: url("../../img/success-icon.png") no-repeat; +} +.ITD-successmodel-contentmsg{ + height: 30px; + line-height: 30px; + text-align: center; + width: 100%; + margin-top: 8px; +} +/* + width:380px +*/ +.blue-modal{ + width:380px; +} +.ITD-model380-body{ + padding-top: -3px; +} +/* + width:1020px +*/ +.ITD-model-1020{ + width:1020px; +} +/* + width:712px +*/ +.ITD-model-712{ + width:712px; +} +.ITD-model-512{ + width:512px; +} +.ITD-model-773{ + width:773px; +} +.ITD-model-1034{ + width:1034px; +} +.modal-header-title{ + height: 16px; + line-height: 16px; + display: inline-block; + padding-left: 10px; + border-left: 3px solid #1E95CD; + color: #1E95CD; +} +.ITD-modal-body{ + padding: 0 38px 30px!important; +} +/*弹窗公共 border-radius4px */ +.modal-content{ + border-radius: 4px !important; +} +.ITD-model-header{ + line-height: 67px; + height: 67px; + padding: 0 15px 0 38px; +} +.ITD-model-close{ + margin-top: 10px !important; +} +.ITD-model-footer{ + text-align: center !important; + border-top:none !important; + padding: 15px 24px 24px !important; +} +.ITD-model-btn{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; +} +.ITD-modelall-btn{ + border-radius: 4px!important; + cursor: pointer; + width: 90px; + height: 32px; + text-align: center; + font-size: 14px; + color: #fff; +} +.ITD-form-group{ + height: 35px; + line-height: 35px; +} +.ITD-form-padleft25-read{ + height: 35px; + line-height: 35px; + padding-left: 25px; +} +.ITD-form-padleft5-read{ + height: 35px; + line-height: 35px; + padding-left: 5px; +} +.ITD-pop-panel-wid100{ + width: 100px; +} +.ITD-pop-panel-wid120{ + width: 120px; +} +.ITD-pop-panel-wid80{ + width: 80px; +} +.ITD-pop-panel-paddingtop90{ + padding-top: 9px; +} +/* + ================================ + @主题样式 + 表格样式 公共 + ================================ +*/ +.ITD-new-table-title{ + padding: 20px 0; + height: 60px; +} +.ITD-new-table thead{ + font-size: 14px; + color: rgba(0,0,0,.45) !important; + border-bottom: 0!important; +} +.ITD-new-table thead>tr>th{ + height: 28px!important; + line-height: 28px!important; + background-color: #fafafa!important; + padding-top: 0!important; + padding-right: 0!important; + padding-bottom: 0!important; + /*padding-left: 24px!important;*/ + border-bottom: 0!important; +} +.ITD-new-table tbody tr{ + height: 70px; + line-height: 70px; +} +.ITD-new-table tbody tr td{ + padding-left: 15px; +} +/*其他table 新版样式*/ +.ITD-fix-table-title{ + padding: 20px 0; + height: 60px; +} +.ITD-fix-table thead{ + font-size: 14px; + color: rgba(0,0,0,.45) !important; + border-bottom: 0!important; +} +.ITD-fix-table thead>tr>th{ + height: 28px!important; + line-height: 28px!important; + background-color: #fafafa!important; + padding-top: 0!important; + padding-right: 0!important; + padding-bottom: 0!important; + /*padding-left: 24px!important;*/ + border-bottom: 0!important; +} +.fixed-table-column table{ + box-shadow: 5px 0px 5px -5px rgba(50, 50, 50, 0.2); +} +.formatNoMatches{ + background: url(../../img/formatNoMatches.png) no-repeat center center; + height: 45px; + margin-top: 24px; +} +.common-tableh47>tbody>tr>td{ + height: 47px; + line-height: 47px; +} +/* + ==卡片 icon 公共== +*/ +.card-incomedifference-icon{ + +} + +/* + ==table头部 icon 公共== +*/ +.information-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/information-icon.png) no-repeat ; + +} +.status-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/status-icon.png) no-repeat ; + +} +.time-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/time-icon.png) no-repeat; +} +.person-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/person-icon.png) no-repeat ; +} +.money-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align:text-bottom; + margin-right: 4px; + background: url(../../img/money-icon.png) no-repeat ; +} +/*办事处*/ +.office-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align:text-bottom; + margin-right: 4px; + background: url(../../img/office-icon.png) no-repeat ; +} +/*微信*/ +.weixin-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align:text-bottom; + margin-right: 4px; + background: url(../../img/weixin-icon.png) no-repeat ; +} +/*支付宝*/ +.zhifubao-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align:text-bottom; + margin-right: 4px; + background: url(../../img/zhifubao-icon.png) no-repeat ; +} +/*现金*/ +.xianjin-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align:text-bottom; + margin-right: 4px; + background: url(../../img/xianjin-icon.png) no-repeat ; +} +/*收入差异笔数*/ +.moneydifferencenum-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align:text-bottom; + margin-right: 4px; + background: url(../../img/moneydifferencenum-icon.png) no-repeat ; +} +/*退款差异金额*/ +.tkmoneynum-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align:text-bottom; + margin-right: 4px; + background: url(../../img/tkmoneynum-icon.png) no-repeat ; +} +/*交易笔数*/ +.business-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align:text-bottom; + margin-right: 4px; + background: url(../../img/business-icon.png) no-repeat ; +} +/*收入差异金额*/ +.moneydifference-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align:text-bottom; + margin-right: 4px; + background: url(../../img/moneydifference-icon.png) no-repeat ; +} +.discount-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align:text-bottom; + margin-right: 4px; + background: url(../../img/discount-icon.png) no-repeat ; +} +.mold-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align:text-bottom; + margin-right: 4px; + background: url(../../img/mold-icon.png) no-repeat ; +} +.feature-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align:text-bottom; + margin-right: 4px; + background: url(../../img/feature-icon.png) no-repeat ; +} +.money-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/money-icon.png) no-repeat ; +} +/*白天*/ +.day-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/day-icon.png) no-repeat ; +} +/*夜间*/ +.night-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/night-icon.png) no-repeat ; +} +.opration-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/opration-icon.png) no-repeat ; +} +.type-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/type-icon.png) no-repeat ; +} +/*周转次数*/ +.zzl-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/zzl-icon.png) no-repeat ; +} +/*签到状态*/ +.sign-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/sign-icon.png) no-repeat ; +} +/*手机*/ +.mobile-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/mobile-icon.png) no-repeat ; +} +/*码*/ +.code-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/code-icon.png) no-repeat ; +} +/*卡*/ +.card-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/card-icon.png) no-repeat ; +} +/*备注*/ +.remarks-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/remarks-icon.png) no-repeat ; +} +/*总数*/ +.total-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/total-icon.png) no-repeat ; +} +/*管理方式*/ +.manage-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/manage-icon.png) no-repeat ; +} +/*收费组名称*/ +.collect-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/collect-icon.png) no-repeat ; +} +/*平均*/ +.average-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/average-icon.png) no-repeat ; +} +/*排行*/ +.ranking-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/ranking-icon.png) no-repeat ; +} +/*性别*/ +.sex-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/sex-icon.png) no-repeat ; +} +/*年龄*/ +.agelonge-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/agelonge-icon.png) no-repeat ; +} +/*系统*/ +.system-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/system-icon.png) no-repeat ; +} +/*系统*/ +.personemail-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/email-icon.png) no-repeat ; +} +/*ID*/ +.id-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/id-icon.png) no-repeat ; +} +/*职能名称*/ +.function-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/function-icon.png) no-repeat ; +} +/*ip*/ +.ip-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/ip-icon.png) no-repeat ; +} +/*字典*/ +.dictionary-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/dictionary-icon.png) no-repeat ; +} +/*车牌号*/ +.carnum-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/carnum-icon.png) no-repeat ; +} +/*进场*/ +.parkingin-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/parkingin-icon.png) no-repeat ; +} +/*出场*/ +.parkingout-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/parkingout-icon.png) no-repeat ; +} +/*周转次数*/ +.zzl-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/zzl-icon.png) no-repeat ; +} +/*占有率*/ +.zyl-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/zyl-icon.png) no-repeat ; +} +/*停车场*/ +.parking-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/parking-icon.png) no-repeat ; +} +.mobile-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/phone-icon.png) no-repeat ; +} +.carnumber-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/carnumber-icon.png) no-repeat ; +} +.state-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-right: 4px; + background: url(../../img/state-icon.png) no-repeat ; +} +.device-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-top: -3px; + margin-right: 10px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -54px 0 ; +} +.carflow-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-top: -3px; + margin-right: 10px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: 0 -36px ; +} +.berth-icon{ + display: inline-block; + width: 18px; + height: 18px; + vertical-align: text-bottom; + margin-top: -3px; + margin-right: 10px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -18px 0; +} +.screen-icon{ + display: inline-block; + width: 17px; + height: 12px; + /*margin-top: -3px;*/ + margin-right: 10px; + background-image: url(../../img/popScreenBtn.png); + background-repeat: no-repeat; + /*background-position: -18px 0;*/ +} +/* + 不换行 td +*/ +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th{ + /*border-top: 0!important;*/ + white-space: nowrap; +} +/* + 表头 样式 +*/ +.table thead{ + background: #FAFAFA !important; + font-size: 14px; + color: rgba(0,0,0,0.7); + border-bottom: 1px solid rgba(232,232,232,1); + +} +/* + table 无border +*/ +.fixed-table-container{ + border:none; +} +/* + table 样式 +*/ +.bootstrap-table .table:not(.table-condensed), .bootstrap-table .table:not(.table-condensed)>tbody>tr>td, .bootstrap-table .table:not(.table-condensed)>tbody>tr>th, .bootstrap-table .table:not(.table-condensed)>tfoot>tr>td, .bootstrap-table .table:not(.table-condensed)>tfoot>tr>th, .bootstrap-table .table:not(.table-condensed)>thead>tr>td{ + padding: 0 0 0 24px !important; + /*height: 47px;*/ + /*line-height: 47px;*/ + color: rgba(0,0,0,0.65); + font-size: 12px; +} + +.table tbody tr:hover{ + background-color:rgba(240,250,255,1) !important; +} +.table td{ + vertical-align: middle!important; +} +.fixed-table-container thead th { + border-left: none !important; +} +.fixed-table-container thead th { + border-left: none !important; +} + +.fixed-table-container tbody td { + border-left: none !important; +} +/*复合表头样式*/ +.ITD-complex-table thead tr th{ + border-left: 1px solid #e7ecf1!important; +} +.ITD-complex-table thead tr th:nth-of-type(1){ + border-left: none!important; +} +.table-striped>tbody>tr:nth-of-type(even){ + white-space: nowrap; +} +.table-striped>tbody>tr:nth-of-type(odd){ + background-color: #fff; +} +.fixed-table-pagination .pagination-detail{ + margin-left: 24px !important; +} +.fixed-table-pagination div.pagination{ + margin-right: 24px !important; +} +.fixed-table-pagination .pagination-detail, .fixed-table-pagination div.pagination { + margin-top: 16px !important; +} +.bootstrap-table .table>thead>tr>th { + height: 53px; + line-height: 53px; + vertical-align: middle !important; + border-bottom: 1px solid rgba(232,232,232,1); + border-top: 1px solid #fafafa!important; + +} +.bootstrap-table .table{ + border-bottom: 1px solid rgba(232,232,232,1) !important; +} +.pagination-detail{ + color: rgba(0,0,0,0.65); +} +.fixed-table-pagination .pagination a { + min-width:32px; + height:32px; + background:rgba(255,255,255,1); + border-color: #D9D9D9; + border-radius: 6px !important; + margin-right: 8px; + color:rgba(0,0,0,0.65); + padding:6px !important; +} +.pagination>li>a, .pagination>li>span{ + padding: 6px !important; + text-align: center; + min-width:32px; + height:32px; +} +.fixed-table-pagination .pagination .active a{ + background:rgba(30,149,205,1) !important; + border-color: rgba(30,149,205,1); + color: #fff; +} +/* + ================================ + @主题样式 + 搜索栏 公共 + ================================ +*/ +.ITD-graynav-topbar{ + padding: 4px 21px; + /*width: 112px;*/ + /*height:34px;*/ + background:rgba(255,255,255,1); + border-radius: 4px !important; + /*line-height: 34px;*/ + border: 1px solid #d8e2e5; + text-align: center; + float: left; + color: rgba(0,0,0,0.7); + margin-right: 6px; + cursor: pointer; +} +.ITD-graynav-topbaractive{ + background:rgba(97,181,220,1) !important; + color: #fff !important; + border: 1px solid rgba(97,181,220,1) !important; +} +.ITD-common-input{ + width: 100%; + height: 34px; + line-height: 34px; +} +.ITD-parkinput78{ + width: 60%; + height: 34px; + line-height: 34px; +} +.ITD-common-parking-l { + float: left; + width: 70px; + height: 34px; + line-height: 34px; + text-align: center; +} +.common-parking-l { + float: left; + width: 70px; + height: 34px; + line-height: 34px; +} +.ITD-daterange-btn { + float: left; + width: 180px; + height: 34px; + line-height: 34px; +} +.ITD-borderradius-4{ + border-radius: 4px !important; +} +.ITD-height-dashed-2{ + border-top: 2px dashed #E9E9E9; +} +/* + 搜索栏 input +*/ +.ITD-input-wid180{ + padding-left: 12px; + width: 180px; + height: 34px; + line-height: 34px; +} +.ITD-input-wid88{ + padding-left: 12px; + width: 88px; + height: 34px; + line-height: 34px; +} +.ITD-input-055{ + width: 55%; + height: 34px; + line-height: 34px; +} +.ITD-input-bordercolor{ + color:rgba(0,0,0,0.45); + border: 1px solid #d8e2e5 !important; + border-radius: 4px !important; +} +.ITD-input-bordernone{ + border:none !important; +} +/* + ===== 时间插件背景图片 位置 ==== + + */ +.ITD-daterange-bg{ + width: 55%; + text-align: left; + background: url(../../img/dataicon.png) no-repeat 94% 9px; + background-color: #fff; + padding-right: 25px; + border-radius: 4px !important; +} +/* + ===page-bar 公共 === +*/ +.ITD-ztree-headername{ + border-left: 3px solid #1E95CD; + padding-left: 12px; + height: 16px; + color: #1E95CD; + line-height: 16px; + display: inline-block; +} +/* + ================================ + @主题样式 + panel下拉框样式 公共 + ================================ +*/ +.ITD-title-panel { + background-color:#FFF; + border-radius:4px !important; +} +.ITD-title-panel >.panel-heading{ + color:#4f5052;font-size:16px; + background-color:#FFF; + border:0; + border-radius:4px !important; + position:relative; + padding:15px 10px; + +} +.ITD-title-panel >.panel-heading .panel-title{ + position:relative;padding-left:15px; +} +.ITD-title-panel >.panel-heading .panel-title:before{ + content:"";left:0px;top:1px; + height:16px;width:4px; + background-color:#26be96; + position:absolute; +} + +/* + ================================ + @主题样式 + bottom按钮样式 公共 + ================================ +*/ +/*.btn:hover,*/ +.ITD-panelbtn-icon:hover,.ITD-handle-btn:hover,.ITD-export-btn:hover,.geo-export-btn:hover,.ITD-panelbtn-iconedit:hover,.ITD-panelbtn-iconpl:hover{ + color: #1E95CD; + border: 1px solid #1E95CD !important; +} + +/*不带icon*/ +.ITD-panelbtn { + cursor:pointer; + display:inline-block; + font-size:14px; + text-align:center; + padding:5px 12px; + border-radius:4px !important; + width:72px;height:32px; +} +/*不带icon*/ +.ITD-panelbtn-icon { + cursor: pointer; + display: inline-block; + font-size: 12px; + text-align: center; + /* padding: 5px 12px; */ + border-radius: 4px !important; + color: rgba(89,87,87,0.6); + width: 71px; + height: 25px; + line-height: 14px !important; + background: rgba(255,255,255,1); + border: 1px solid #b1b1b1; +} +/*导出icon hover 背景*/ +.ITD-export-btn:hover,.geo-export-btn:hover{ + background: url(../../img/ITD-export-btnhover.png) no-repeat 10px center; +} +/*新增icon hover 背景*/ +.ITD-panelbtn-icon:hover .ITD-panelicon-add:before,.ITD-panelbtn-iconpl:hover .ITD-panelicon-add:before{ + background-image: url(../../img/theme_btn_addhover.png); +} +/*导入icon hover 背景*/ +.ITD-panelbtn-icon:hover .ITD-panelicon-enter:before{ + background-image:url(../../img/themes_Icoenterhover.png); +} +/*删除icon hover 背景*/ +.ITD-panelbtn-icon:hover .ITD-panelicon-delete:before{ + background-image:url(../../img/themes_Icodeletehover.png); +} +/*修改icon hover 背景*/ +.ITD-panelbtn-iconedit:hover .ITD-panelicon-edit:before{ + background-image:url(../../img/themes_Icoedithover.png); +} +/*详情icon hover 背景*/ +.ITD-panelbtn-icon:hover .ITD-panelicon-detail:before{ + background-image:url(../../img/themes_Icosavehover.png); +} +/*保存icon hover 背景*/ +.ITD-panelbtn-icon:hover .ITD-panelicon-export:before{ + background-image:url(../../img/themes_Icosavehover.png); +} +.ITD-panelbtn-iconedit { + cursor:pointer; + display:inline-block; + font-size:12px; + text-align:center; + color: rgba(89,87,87,0.6); + /*padding:5px 12px;*/ + border-radius:4px !important; + width:103px; + height:25px; + line-height: 14px !important; + border: 1px solid #b1b1b1; +} +/*不带icon*/ +.ITD-panelbtn-iconpl { + cursor:pointer; + display:inline-block; + font-size:12px; + text-align:center; + padding:5px 12px; + border-radius:4px !important; + width:90px;height:28px; + border: 1px solid #b1b1b1; +} +.ITD-panelbtn { + transition:all .3s; +} +.ITD-panelbtn:hover { + color:#fff; +} +/*green*/ +.ITD-panelbtn-green { + background-color:#26be96; + border-color:#26be96; + color:#fff; +} +.ITD-panelbtn-green:hover { + background-color:#1ea783; +} +/*带ICON*/ +/*灰色按钮*/ +.ITD-panelbtn-icon-gray { + position:relative; +} +.ITD-panelbtn-icon-gray >i{ + position:relative; + width:14px;margin-right:6px; + text-align:left; +} +.ITD-panelbtn-icon-gray >i:before{ + -webkit-background-size:cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; + height:14px;width:100%; + position:absolute; + content:"";top:-12px; +} +/* + ================================ + @主题样式 + daterangepicker时间插件样式替换 公共 + ================================ +*/ +.daterangepicker td.active, .daterangepicker td.active:hover,.datetimepicker td.active, .datetimepicker td.active:hover{ + background-color: rgba(30,149,205,0.8) !important; + border-radius: 2px !important; +} +.daterangepicker td.available:hover, .daterangepicker th.available:hover { + background: rgba(30,149,205,0.8)!important; } +.daterangepicker td.in-range { + background-color: rgba(230,247,255,1); + border-color: rgba(230,247,255,1); + border-radius: 2px !important; +} +.btn-success { + color: #fff; + background-color: rgba(30,149,205,0.8) !important; + border-color: rgba(30,149,205,0.8) !important; +} +.daterangepicker .ranges li.active, .daterangepicker .ranges li:hover { + background: rgba(30,149,205,0.8) !important; + border: 1px solid rgba(30,149,205,0.8) !important; + color: #fff; + border-radius: 2px !important; +} +.daterangepicker .input-mini.active { + border: 1px solid rgba(30,149,205,0.8) !important; + border-radius: 2px !important; +} +.datetimepicker .active { + background-color: rgba(30,149,205,0.8) !important; + border-radius: 2px !important; +} +.datetimepicker td:hover{ + background-color: rgba(230,247,255,1) !important; + border-radius: 2px !important; +} + + +/* + 需去掉的旧样式 + ===查询条件单个div 公共 === +*/ +.blue-top-width88{ + width: 88%; +} +/* + 查询条件 下拉框字体颜色 +*/ +.btn-default{ + color:rgba(0,0,0,0.7) !important; +} +.dropdown-menu>li>a{ + color:rgba(0,0,0,0.7) !important; +} +.modal-content{ + color: rgba(0,0,0,.7); +} +.bs-checkbox{ + padding-left: 24px !important; +} +.bootstrap-table .table:not(.table-condensed)>tbody>tr>td.bs-checkbox{ + padding-left: 18px !important; +} +/**/ +/*弹窗css*/ +.ITD-alert-tab-wrap{ + padding-top: 7px; +} +.ITD-alert-tab-wrap li{ + cursor: pointer; + float: left; + height: 60px; + line-height: 60px; + padding: 0 10px; + margin-right: 70px; +} +.ITD-alert-tab-active{ + border-bottom: 3px solid #5fe98f; +} + +.caryard-basic-ino-name{ + height: 57px; + line-height: 57px; +} +.caryard-basic-borderbototm{ + border-bottom: 1px solid #f0f0f0; +} +.caryard-basic-ifo-park-height{ + height: 34px; + line-height: 34px; +} +.ITD-alertcon-tab-wrap{ + height: 400px; +} +/*个人信息*/ +div.checker, div.radio { + margin-right: 0 !important; + margin-top: -8px !important; + margin-left: 3px !important; +} +.pwdStyle{ + display: inline-block; + padding-left: 50px; +} +.pwdStyle:before{ + content: '!'; + position: absolute; + width: 12px; + height: 12px; + line-height: 12px; + font-size: 12px; + top: 10px; + border: 1px solid red; + opacity: .5; + text-align: center; + /* background: #676869; */ + color: red; + left: 34px; + border-radius: 100%; +} +.perMsguploadImg{ + width: 695px; + height: 400px; + background-color: #fafafa; + border-radius: 4px !important; + border: 1px dashed #d4d4d4; + /*background-image: url("../../img/permsg_Plus.png");*/ + background-size: 61px 60px; + background-repeat: no-repeat; + background-position:317px 120px; + cursor: pointer; +} +.perMsg-text{ + height: 24px; + line-height: 24px; + text-align: center; + width: 100%; + margin-top: 200px; +} + + + + + + + +.btn-file { + position: relative; + overflow: hidden; + vertical-align: middle; +} +.btn-file > input { + position: absolute; + top: 0; + right: 0; + width: 100%; + height: 100%; + margin: 0; + font-size: 23px; + cursor: pointer; + filter: alpha(opacity=0); + opacity: 0; + + direction: ltr; +} +.fileinput { + display: inline-block; + margin-bottom: 9px; +} +.fileinput .form-control { + display: inline-block; + padding-top: 7px; + padding-bottom: 5px; + margin-bottom: 0; + vertical-align: middle; + cursor: text; +} +.fileinput .thumbnail { + display: inline-block; + margin-bottom: 5px; + overflow: hidden; + text-align: center; + vertical-align: middle; +} +.fileinput .thumbnail > img { + max-height: 100%; +} +.fileinput .btn { + vertical-align: middle; +} +#uploadFormPicter .fileinput-exists .fileinput-new, +#uploadFormPicter .fileinput-new .fileinput-exists { + display: none; +} +.fileinput-inline .fileinput-controls { + display: inline; +} +.fileinput-filename { + display: inline-block; + overflow: hidden; + vertical-align: middle; +} +.form-control .fileinput-filename { + vertical-align: bottom; +} +.fileinput.input-group { + display: table; +} +.fileinput.input-group > * { + position: relative; + z-index: 2; +} +.fileinput.input-group > .btn-file { + z-index: 1; +} +.fileinput-new.input-group .btn-file, +.fileinput-new .input-group .btn-file { + border-radius: 0 4px 4px 0; +} +.fileinput-new.input-group .btn-file.btn-xs, +.fileinput-new .input-group .btn-file.btn-xs, +.fileinput-new.input-group .btn-file.btn-sm, +.fileinput-new .input-group .btn-file.btn-sm { + border-radius: 0 3px 3px 0; +} +.fileinput-new.input-group .btn-file.btn-lg, +.fileinput-new .input-group .btn-file.btn-lg { + border-radius: 0 6px 6px 0; +} +.form-group.has-warning .fileinput .fileinput-preview { + color: #8a6d3b; +} +.form-group.has-warning .fileinput .thumbnail { + border-color: #faebcc; +} +.form-group.has-error .fileinput .fileinput-preview { + color: #a94442; +} +.form-group.has-error .fileinput .thumbnail { + border-color: #ebccd1; +} +.form-group.has-success .fileinput .fileinput-preview { + color: #3c763d; +} +.form-group.has-success .fileinput .thumbnail { + border-color: #d6e9c6; +} +.input-group-addon:not(:first-child) { + border-left: 0; +} +/*table 复选框样式更改*/ +.bs-checkbox input[type=checkbox]{ + -webkit-appearance: none; + width: 15px!important; + height: 15px!important; + border: 0!important; + background-image: url(../../img/input-checkexActive.png) !important; +} +.bs-checkbox input[type=checkbox]:checked{ + -webkit-appearance: none; + width: 15px!important; + height: 15px!important; + border: 0!important; + background-image: url(../../img/input-checkbox.png) !important; +} +.bs-checkbox input[type=checkbox]:focus{ + outline: none; +} +/*头像 input 样式*/ +.btn-primary { + color: #fff; + background-color:rgba(30,149,205,1) !important; + border-color:rgba(30,149,205,1) !important; +} +/*头像 input submit */ +.btn-info { + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + background-color: #1E95CD !important; + border-color: #1E95CD !important; +} +/*密码 修改 样式*/ +.hideShowPswIco{ + width: 20px; + height: 35px; + left: 255px; + top: 0; +} +.hideShowPswIco img{ + width: 20px; + height: 12.5px; +} +/*个人信息性别*/ +.radio input[type=radio]{ + margin-left: -9px !important; +} +/*表格加载动画*/ +.spinner { + margin: 10px auto; + width: 30px; + height: 30px; + position: relative; +} + +.container1 > div, .container2 > div, .container3 > div { + width: 6px; + height: 6px; + background-color: rgba(0,0,0,0.45); + + border-radius: 100%!important; + position: absolute; + -webkit-animation: bouncedelay 1.2s infinite ease-in-out; + animation: bouncedelay 1.2s infinite ease-in-out; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.spinner .spinner-container { + position: absolute; + width: 100%; + height: 100%; +} + +.container2 { + -webkit-transform: rotateZ(45deg); + transform: rotateZ(45deg); +} + +.container3 { + -webkit-transform: rotateZ(90deg); + transform: rotateZ(90deg); +} + +.circle1 { top: 0; left: 0; } +.circle2 { top: 0; right: 0; } +.circle3 { right: 0; bottom: 0; } +.circle4 { left: 0; bottom: 0; } + +.container2 .circle1 { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; +} + +.container3 .circle1 { + -webkit-animation-delay: -1.0s; + animation-delay: -1.0s; +} + +.container1 .circle2 { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} + +.container2 .circle2 { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; +} + +.container3 .circle2 { + -webkit-animation-delay: -0.7s; + animation-delay: -0.7s; +} + +.container1 .circle3 { + -webkit-animation-delay: -0.6s; + animation-delay: -0.6s; +} + +.container2 .circle3 { + -webkit-animation-delay: -0.5s; + animation-delay: -0.5s; +} + +.container3 .circle3 { + -webkit-animation-delay: -0.4s; + animation-delay: -0.4s; +} + +.container1 .circle4 { + -webkit-animation-delay: -0.3s; + animation-delay: -0.3s; +} + +.container2 .circle4 { + -webkit-animation-delay: -0.2s; + animation-delay: -0.2s; +} + +.container3 .circle4 { + -webkit-animation-delay: -0.1s; + animation-delay: -0.1s; +} + +@-webkit-keyframes bouncedelay { + 0%, 80%, 100% { -webkit-transform: scale(0.0) } + 40% { -webkit-transform: scale(1.0) } +} + +@keyframes bouncedelay { + 0%, 80%, 100% { + transform: scale(0.0); + -webkit-transform: scale(0.0); + } 40% { + transform: scale(1.0); + -webkit-transform: scale(1.0); + } +} + +/* 消息中心 style*/ +.badge{ + top: -10px; + left: 10px; + font-size: 11px!important; + font-weight: 300; + height: 18px; + color: #fff; + background-color: #f3173b; + padding: 3px 6px; + -webkit-border-radius: 12px!important; + -moz-border-radius: 12px!important; + border-radius: 12px!important; + text-shadow: none!important; + text-align: center; +/* top: -10px; + left: 14px; + padding:0px 4px 0px 2px; + border-radius: 10px !important; + background-color: #f3173b; + color: #fff; + font-size: 12px;*/ +} + +/*加载*/ +.loading-wrap{ + position: fixed; + left: 0; + right: 0; + bottom: 0; + top:0; + width: 100%; + height: 100%; + z-index: 10000; + display: none; + background: rgba(0,0,0,0); +} +.loading-wrap .spinner{ + margin: 200px auto; +} diff --git a/assets/pages/css/home/caryard.css b/assets/pages/css/home/caryard.css new file mode 100644 index 0000000..3ea729f --- /dev/null +++ b/assets/pages/css/home/caryard.css @@ -0,0 +1,590 @@ + + + +.caryard-card-wrap{ + height: 101px; + position: relative; +} +.caryard-card-wrap li:nth-of-type(2) div:nth-of-type(1){ + margin-bottom: 7px; +} + +.caryard-card-wrap-1{ + background: #fff1db; +} +.caryard-card-wrap-2{ + background: #dff9eb; +} +.caryard-card-wrap-3{ + background: #fff9db; +} +.caryard-card-wrap-4{ + background: #dff3f4; +} +.caryard-card-wrap ul{ + position: absolute; + left: 50%; + top:50%; + min-width: 180px; + transform:translate(-50%,-50%); + -webkit-transform:translate(-50%,-50%); + -moz-transform:translate(-50%,-50%); + -ms-transform:translate(-50%,-50%); +} + +.caryard-card-wrap-left-2{ + width: 55px; + height: 55px; + background-image:url("../../img/caryard-card-wrap.png") ; + background-repeat: no-repeat; + background-position:-55px 0 ; + margin-right: 20px; +} + +.caryard-card-wrap-left-4{ + width: 55px; + height: 55px; + background-image:url("../../img/caryard-card-wrap.png") ; + background-repeat: no-repeat; + background-position:-165px 0 ; + margin-right: 20px; +} + + +.caryard-table-berth-status-red{ + font-size: 12px; + color: #fe944d; + border: 1px solid #fe944d; + padding: 1px 10px; + margin-left: 5px; +} +.caryard-table-berth-status-green{ + font-size: 12px; + color: #5fe98f; + border: 1px solid #5fe98f; + padding: 1px 12px; + margin-left: 5px; +} +.caryard-table-berth-status-black{ + font-size: 12px; + color: rgba(0,0,0,.7); + border: 1px solid rgba(0,0,0,.7); + padding: 1px 10px; + margin-left: 5px; +} +.info-alert{ + cursor: pointer; +} + +/*弹窗css*/ +.ITD-alertcon-tab-wrap{ + max-height: 488px; + overflow-y: auto; +} +.ITD-alert-tab-wrap{ + padding-top: 7px; +} +.ITD-alert-tab-wrap li{ + cursor: pointer; + float: left; + height: 60px; + line-height: 60px; + padding: 0 10px; + margin-right: 70px; +} +.ITD-alert-tab-active{ + border-bottom: 3px solid #5fe98f; +} + + +.caryard-basic-ino-name{ + height: 57px; + line-height: 57px; +} +.caryard-basic-borderbototm{ + border-bottom: 1px solid #f0f0f0; +} +.caryard-basic-ifo-park-height{ + height: 34px; + line-height: 34px; +} + +.caryard-basic-ifo-park span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.caryard-basic-ifo-park-wrap li{ + padding-left: 23px; +} +.caryard-basic-ifo-park-wrap li div:nth-of-type(1){ + width: 50%; +} +.caryard-basic-ifo-park-wrap li div span:nth-of-type(2){ + width: 60px; + display: inline-block; + text-align:justify; + text-align-last:justify; +} +.caryard-basic-ifo-type{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.caryard-basic-ifo-device{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -54px 0; +} +.caryard-basic-ifo-total{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image:url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -18px 0; +} +.caryard-basic-ifo-entrance{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -16px 0; +} +.caryard-basic-ifo-business{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -32px 0; +} +.caryard-basic-ifo-address{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -48px 0; +} +.caryard-basic-ifo-address-wrap{ + max-width: 310px; +} +.caryard-basic-ifo-fees{ + height: 37px; + line-height: 37px; +} +.caryard-basic-ifo-fees span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -36px -18px ; +} +.caryard-basic-ifo-fees-wrap li{ + padding-left: 23px; + height:40px ; +} +.caryard-basic-ifo-fees-wrap li div{ + float: left; +} +.caryard-basic-ifo-fees-smallicon{ + width: 51px; + height: 51px; + background-image:url("../../img/caryard-basic-ifo-fees-wrap.png") ; + background-repeat: no-repeat; + background-position: 0 0; + margin-top: 8px; + margin-right: 30px; +} +.caryard-basic-ifo-fees-bigicon{ + width: 51px; + height: 51px; + background-image:url("../../img/caryard-basic-ifo-fees-wrap.png") ; + background-repeat: no-repeat; + background-position: -51px 0; + margin-top: 8px; + margin-right: 30px; +} +.caryard-basic-ifo-fees-type{ + width: 70px; + line-height: 40px; +} +.caryard-basic-ifo-fees-rule{ + width: 320px; + margin-right: 22px; + line-height: 40px; + height: 40px; +} +.caryard-basic-ifo-fees-max{ + line-height: 40px; +} +.caryard-basic-ifo-fees-max{ + width: 250px; +} +.caryard-basic-ifo-photo{ + height: 37px; + line-height: 37px; +} +.caryard-basic-ifo-photo span{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /* margin-top: -3px; */ + background-image: url(../../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -64px 0; +} +.caryard-basic-ifo-photo-wrap{ + height:75px; + padding: 13px 0 0; +} +.caryard-basic-ifo-photo-wrap li{ + float: left; + margin-right: 10px; + width: 98px; + height: 62px; +} +.caryard-basic-ifo-photo-wrap li img{ + width: 100%; + height: 100%; +} +.caryard-berth-ifo-wrap{ + height: 57px; + line-height: 57px; +} +.caryard-berth-ifo-number span:nth-of-type(1){ + margin-right: 60px; +} +.caryard-berth-ifo-number>span:nth-of-type(1):before{ + content: ''; + position: absolute; + left: -20px; + top:3px; + width: 12px; + height: 14px; + background: #5fe98f; +} +.caryard-berth-ifo-number>span:nth-of-type(2):before{ + content: ''; + position: absolute; + left: -20px; + top:3px; + width: 12px; + height: 14px; + background: #f6f5f5; + border: 1px solid #dbdbdb; +} +.caryard-berth-ifo-main{ + height: 421px; + /*overflow-y: auto;*/ +} +.caryard-berth-ifo-main li div{ + width: 70px; + height: 30px; + line-height: 30px; + text-align: center; + font-size: 12px; + color:rgba(0,0,0,.8); + float: left; + margin-right: 5px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.caryard-berth-ifo-main li div:nth-last-of-type{ + margin-right: 0; +} +.caryard-berth-ifo-main li:nth-child(odd){ + margin-bottom: 3px; +} +.caryard-berth-ifo-main li:nth-child(even){ + margin-bottom: 20px; +} +.caryard-berth-ifo-status-green{ + background-color: #5fe98f; +} +.caryard-berth-ifo-status-gray{ + background-color: #f6f5f5; + border: 1px solid #dbdbdb; +} +.caryard-parking-ifo li{ + width: 164px; + margin-right: 6px; + float: left; + height: 67px; + padding: 9px 9px; +} +.caryard-parking-ifo li:nth-of-type(1){ + background-color:#fff1db ; +} +.caryard-parking-ifo li:nth-of-type(1) .caryard-parking-ifo-icon{ + width: 50px; + height: 50px; + margin-right: 9px; + background-image: url("../../img/caryard-parking-ifo.png"); + background-repeat: no-repeat; + background-position: 0 0; +} +.caryard-parking-ifo li:nth-of-type(2){ + background-color:#dff9eb ; +} +.caryard-parking-ifo li:nth-of-type(2) .caryard-parking-ifo-icon{ + width: 50px; + height: 50px; + margin-right: 9px; + background-image: url("../../img/caryard-parking-ifo.png"); + background-repeat: no-repeat; + background-position: -50px 0; +} +.caryard-parking-ifo li:nth-of-type(3){ + background-color:#fff9db ; +} +.caryard-parking-ifo li:nth-of-type(3) .caryard-parking-ifo-icon{ + width: 50px; + height: 50px; + margin-right: 9px; + background-image: url("../../img/caryard-parking-ifo.png"); + background-repeat: no-repeat; + background-position: -100px 0; +} +.caryard-parking-ifo li:nth-of-type(4){ + background-color:#dff3f4 ; +} +.caryard-parking-ifo li:nth-of-type(4) .caryard-parking-ifo-icon{ + width: 50px; + height: 50px; + margin-right: 9px; + background-image: url("../../img/caryard-parking-ifo.png"); + background-repeat: no-repeat; + background-position: -150px 0; +} +.caryard-parking-ifo li:last-of-type{ + margin-right: 0; +} +.caryard-parking-ifo-title{ + margin: 3px 0 5px; +} +.caryard-parking-detail-wrap{ + margin-top: 15px; +} +.caryard-parking-detail-wrap>li{ + height: 180px; + float: left; + margin-right: 5px; +} +.caryard-parking-detail-wrap>li:nth-of-type(1){ + width: 168px; +} +.caryard-parking-detail-wrap>li:nth-of-type(2){ + width: 250px; +} +.caryard-parking-detail-wrap>li:last-of-type{ + width: 240px; + margin-right: 0; +} +.caryard-parking-detail-rate span{ + width: 18px; + height: 18px; + display: inline-block; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -18px -36px; +} +.caryard-parking-detail-business span{ + width: 18px; + height: 18px; + display: inline-block; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -36px -18px; +} +.caryard-parking-detail-monitor span{ + width: 18px; + height: 18px; + display: inline-block; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -54px 0; +} +.caryard-parking-echart{ + height: 145px; + width:100%; +} +.pay-way-ul{ + padding: 0 35px; +} +.pay-way-ul li { + overflow: hidden; + height: 34px; + line-height: 34px; +} +.pay-way-ul li div:nth-of-type(1) { + width: 42px; + margin-right: 5px; +} +.pay-way-wrap { + width: calc(100% - 50px); + height: 10px; + background-color: #edf7fb; + border-radius: 5px!important; + vertical-align: middle; + overflow: hidden; + margin-top: 13px; +} +.pay-way-ul li:nth-of-type(1) .pay-way-scale { + width: 70%; + background-color: #5fe98f; +} +.pay-way-ul li:nth-of-type(2) .pay-way-scale { + width: 60%; + background-color: #5ed8a6; +} +.pay-way-ul li:nth-of-type(3) .pay-way-scale { + width: 50%; + background-color: #5dc2c3; +} +.pay-way-ul li:nth-of-type(4) .pay-way-scale { + width: 40%; + background-color: #5cb2d9; +} +.pay-way-ul li div:nth-of-type(1) { + width: 42px; + margin-right: 5px; +} +.pay-way-scale { + height: 10px; + left: 0; + top: 0; + border-radius: 5px!important; +} +.color-status-abnormal{ + color: #fc4a4a; +} +.caryard-monitor-main{ + + +} +.caryard-monitor-main li{ + height: 34px; + line-height: 34px; + padding-left: 26px; + border-bottom: 1px solid #f0f0f0; +} +.caryard-monitor-main li span:nth-of-type(1){ + width: 100px; + display: inline-block; +} +.caryard-monitor-main li span:nth-of-type(2){ + width: 80px; + display: inline-block; + margin-right: 5px; +} +.caryard-monitor-main li span:nth-of-type(3){ + width: 18px; + height: 18px; + line-height: 18px; + margin-bottom: 29px; + text-align: center; + display: inline-block; + vertical-align: middle; + color: #fc4a4a; + font-size: 12px; + border:1px solid #fc4a4a; + border-radius: 100%!important; +} +.caryard-parking-berth-usage{ + margin-top: 15px; +} +.caryard-parking-berth-usage span{ + width: 18px; + height: 18px; + display: inline-block; + margin-right: 5px; + background: url("../../img/timeusage.png") no-repeat; + vertical-align: middle; +} +.berth-usage-echart{ + height: 110px; + width:100%; + +} + +#wxRate,#aliRate,#cashRate,#otherRate{ + width: 100%; +} + +#recordtable tbody tr{ + cursor: pointer; +} +.carfixwid{ + max-width: 130px; +} +.modal-content{ + color: rgba(0,0,0,1); +} +/*无泊位显示*/ +.pop_nomatch{ + height: 300px; + width: 300px; + margin: 0 auto; + padding-top: 150px; + padding-left: 50px; + background: url(img/berthNoMatches.png) no-repeat; + background-size: 46px 31px; + background-position: 102px 100px; +} +.caryard-basic-ifo-fees-cricle{ + height: 8px; + width: 8px; + background-color: #1E95CD; + border-radius: 50% !important; + margin-top: 16px; + margin-right: 20px; +} \ No newline at end of file diff --git a/assets/pages/css/home/generaloperation.css b/assets/pages/css/home/generaloperation.css new file mode 100644 index 0000000..b65ffd8 --- /dev/null +++ b/assets/pages/css/home/generaloperation.css @@ -0,0 +1,222 @@ +body{ + min-width: 1340px !important; +} +/*top 5个卡片*/ +.common-display-bfb { + width: 100%; + height: 147px; +} +.common-display-bfb-li { + float: left; + width: 20%; + /* height: 165px; */ +} +.general-ul-wrap li{ + border-right: 1px solid #E8E8E8; + /* box-shadow: 1px 0px 1px 0px rgba(0,0,0,0.1); + -webkit-box-shadow: 1px 0px 1px 0px rgba(0,0,0,0.1); + -moz-box-shadow: 1px 0px 1px 0px rgba(0,0,0,0.1);*/ +} +.general-ul-wrap li:last-child{ + border-right:none; + /*box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none;*/ +} +.general-li-top{ + padding:20px 25px; +} +.general-ul-wrap li:nth-of-type(1) .general-li-top{ + background-color:#F1F9FC; +} +.li-left-1,.li-left-2,.li-left-3,.li-left-4,.li-left-5{ + width: 58px; + height: 56px; +} +.general-li-top div img{ + width: 58px; + height: 56px; +} +.general-ul-wrap li:nth-of-type(2) .general-li-top{ + background-color:#FFF1DB; +} +.general-ul-wrap li:nth-of-type(3) .general-li-top{ + background-color:#F1F9FC; +} +.general-li-top .float-right{ + min-width: 90px; + max-width: 95px; +} +.general-ul-wrap li:nth-of-type(4) .general-li-top{ + background-color:#F3FBF5; +} +.general-ul-wrap li:nth-of-type(5) .general-li-top{ + background-color:#F1F9FC; +} +.general-li-bottom{ + padding:13px 15px; + /*height: 60px;*/ +} +/*支付方式占比 sta*/ +.generaloperation-zfzb-title em{ + background-image: url(img/general-zffs-icon.png); +} +.zfzb-echarts{ + height: 350px; + width: 100%; +} + + +/*实时统计 sta*/ +.generaloperation-sstj-title em{ + background-image: url(img/general-sstj-icon.png); +} +.tjqst-wrap{ + padding-top: 18px; + height: 350px; +} + +.tab-btn-wrap li{ + float: left; + padding: 0 15px; + height:32px; + line-height: 32px; + cursor: pointer; + background:rgba(255,255,255,1); + text-align: center; +} +.tab-btn-wrap li:nth-of-type(1){ + border-left:1px solid #D9D9D9; + border-top:1px solid #D9D9D9; + border-bottom:1px solid #D9D9D9; + border-right:1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2){ + border-right:1px solid #D9D9D9; + border-top:1px solid #D9D9D9; + border-bottom:1px solid #D9D9D9; + /*border-radius: 0 4px 4px 0 !important;*/ +} +.tab-btn-wrap li:nth-of-type(3){ + border-right:1px solid #D9D9D9; + border-top:1px solid #D9D9D9; + border-bottom:1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction{ + border: 1px solid #1E95CD; + color: #1E95CD; +} +.tjqst-echarts{ + padding-top: 20px; + height: 295px; +} + + + +/*----------------------------------------------------------设备监控*/ +.generaloperation-device-monitor em{ + background-image:url("../../img/monitor-icon.png") ; + background-position:0 0 ; +} +.generaloperation-device-monitor-header{ + margin-top: 20px; + height: 80px; + background-color: rgba(237,247,251,1); +} +.generaloperation-device-monitor-name{ + width:104px ; + height: 80px; + color:rgba(255,255,255,0.85); + font-size: 14px; + text-align: center; + padding-top: 52px; +} +.generaloperation-device-monitor-geo{ + background: #A5DFF3 url("../../img/device-monitor-geo.png") no-repeat center 12px; +} +.generaloperation-device-monitor-pda{ + background: #A5DFF3 url("../../img/generaloperation-device-monitor-pda.png") no-repeat center 12px; +} +.generaloperation-device-monitor-gateway{ + background: #A5DFF3 url("../../img/generaloperation-device-monitor-gateway.png") no-repeat center 12px; +} +.generaloperation-device-monitor-name:before{ + content: ''; + position: absolute; + right: 0; + top:0; + border-right:8px solid rgba(237,247,251,1); + border-top:8px solid rgba(237,247,251,1); + border-left: 8px solid transparent; + border-bottom: 8px solid transparent; +} +.generaloperation-device-monitor-name:after{ + content: ''; + position: absolute; + right: 0; + bottom:0; + border-right:8px solid rgba(237,247,251,1); + border-bottom:8px solid rgba(237,247,251,1); + border-left: 8px solid transparent; + border-top: 8px solid transparent; +} +.generaloperation-device-monitor-number{ + top: 17px; + left: 130px; +} +.park-detail-wrap { + font-size: 12px; + height: 140px; + padding: 15px 15px; +} +.pay-way-ul li { + overflow: hidden; + height: 37px; + line-height: 37px; +} +.pay-way-ul li div:nth-of-type(1) { + width: 42px; + margin-right: 5px; +} +.pay-way-wrap { + width: calc(100% - 50px); + height: 10px; + background-color: #edf7fb; + border-radius: 5px!important; + vertical-align: middle; + overflow: hidden; + margin-top: 13px; +} +.pay-way-ul li:nth-of-type(1) .pay-way-scale { + background-color: #5fe98f; +} +.pay-way-ul li:nth-of-type(2) .pay-way-scale { + background-color: #D6E0DC; +} +.pay-way-ul li:nth-of-type(3) .pay-way-scale { + background-color: #FE9955; +} +.pay-way-ul li div:nth-of-type(1) { + width: 42px; + margin-right: 5px; +} +.pay-way-scale { + height: 10px; + left: 0; + top: 0; + border-radius: 5px!important; +} +.genfixwid{ + max-width: 115px; +} +.genfixwidsmall{ + max-width: 110px; +} +.general-li-bottom-num{ + width: calc(100% - 55px); + width: -webkit-calc(100% - 55px); + width: -moz-calc(100% - 55px); + text-align: right; +} \ No newline at end of file diff --git a/assets/pages/css/home/img/berthNoMatches.png b/assets/pages/css/home/img/berthNoMatches.png new file mode 100644 index 0000000..6a6d794 Binary files /dev/null and b/assets/pages/css/home/img/berthNoMatches.png differ diff --git a/assets/pages/css/home/img/general-li-1.png b/assets/pages/css/home/img/general-li-1.png new file mode 100644 index 0000000..2ae87a8 Binary files /dev/null and b/assets/pages/css/home/img/general-li-1.png differ diff --git a/assets/pages/css/home/img/general-li-2.png b/assets/pages/css/home/img/general-li-2.png new file mode 100644 index 0000000..0bbaf40 Binary files /dev/null and b/assets/pages/css/home/img/general-li-2.png differ diff --git a/assets/pages/css/home/img/general-li-3.png b/assets/pages/css/home/img/general-li-3.png new file mode 100644 index 0000000..6521fe2 Binary files /dev/null and b/assets/pages/css/home/img/general-li-3.png differ diff --git a/assets/pages/css/home/img/general-li-4.png b/assets/pages/css/home/img/general-li-4.png new file mode 100644 index 0000000..74d64ac Binary files /dev/null and b/assets/pages/css/home/img/general-li-4.png differ diff --git a/assets/pages/css/home/img/general-li-5.png b/assets/pages/css/home/img/general-li-5.png new file mode 100644 index 0000000..84188d8 Binary files /dev/null and b/assets/pages/css/home/img/general-li-5.png differ diff --git a/assets/pages/css/home/img/general-sstj-icon.png b/assets/pages/css/home/img/general-sstj-icon.png new file mode 100755 index 0000000..dcf4f68 Binary files /dev/null and b/assets/pages/css/home/img/general-sstj-icon.png differ diff --git a/assets/pages/css/home/img/general-zffs-icon.png b/assets/pages/css/home/img/general-zffs-icon.png new file mode 100755 index 0000000..f16e2e3 Binary files /dev/null and b/assets/pages/css/home/img/general-zffs-icon.png differ diff --git a/assets/pages/css/home/img/updatenoticeBg.png b/assets/pages/css/home/img/updatenoticeBg.png new file mode 100644 index 0000000..2b9b26b Binary files /dev/null and b/assets/pages/css/home/img/updatenoticeBg.png differ diff --git a/assets/pages/css/home/img/weekly_titCarIco.png b/assets/pages/css/home/img/weekly_titCarIco.png new file mode 100644 index 0000000..df4cf33 Binary files /dev/null and b/assets/pages/css/home/img/weekly_titCarIco.png differ diff --git a/assets/pages/css/home/img/weekly_titIco.png b/assets/pages/css/home/img/weekly_titIco.png new file mode 100644 index 0000000..edefdf3 Binary files /dev/null and b/assets/pages/css/home/img/weekly_titIco.png differ diff --git a/assets/pages/css/home/incomeprofile.css b/assets/pages/css/home/incomeprofile.css new file mode 100644 index 0000000..673070c --- /dev/null +++ b/assets/pages/css/home/incomeprofile.css @@ -0,0 +1,264 @@ +.incomeprofile-park-title em{ + background-image: url(../../img/index-card-title.png); + background-position:-36px -18px; +} +.incomeprofile-parkifo-title em,.incomeprofile-parkincome-title em{ + background-image: url(../../img/index-card-title.png); + background-position: -36px -18px; + background-repeat: no-repeat; +} +.incomeprofile-parkrank-title em{ + background-image: url(../../img/index-card-title.png); + background-position: -55px -36px; +} + +.incomeprofile-ranking{ + height: 560px; + overflow-y: auto; + font-size: 12px; +} +.incomeprofile-ranking li{ + height: 56px; + line-height: 56px; +} +.incomeprofile-ranking li span:nth-of-type(1){ + display: inline-block; + width: 20px; + height: 20px; + border-radius: 50%!important; + line-height: 19px; + text-align: center; + border: 1px solid #9B9B9B; + color: #787878; + font-size: 12px; + vertical-align: middle; +} +.incomeprofile-ranking li span:nth-of-type(2){ + display: inline-block; + width: calc(100% - 115px); + width: -webkit-calc(100% - 115px); + width: -moz-calc(100% - 115px); + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; + margin: 0 10px; + vertical-align: middle; +} +@media only screen +and (min-device-width : 768px) +and (max-device-width : 1024px) +and (orientation : landscape) +and (-webkit-min-device-pixel-ratio: 2) { + /* STYLES */ + .incomeprofile-ranking li span:nth-of-type(2){ + width: calc(100% - 45px); + width: -webkit-calc(100% - 45px); + width: -moz-calc(100% - 45px); + + } + .incomeprofile-ranking li span:nth-of-type(3){ + display: none; + } +} +.incomeprofile-ranking li:nth-of-type(1) span:nth-of-type(1){ + border: 1px solid #fe944d; +} +.incomeprofile-ranking li:nth-of-type(2) span:nth-of-type(1){ + border: 1px solid #fed64d; +} +.incomeprofile-ranking li:nth-of-type(3) span:nth-of-type(1){ + border: 1px solid #5fe98f; +} + +.incomeprofile-mon-list li{ + flex: 1; + overflow: hidden; + white-space: nowrap; +} +.incomeprofile-mon-list li div:nth-of-type(1){ + padding: 22px 0 5px; + font-size: 14px; +} +.incomeprofile-mon-list li div:nth-of-type(2){ + padding: 5px 0 22px ; + font-size: 16px; +} +.incomeprofile-mon-list li div:nth-of-type(2) span{ + font-size: 26px; + margin-right: 10px; +} +.map-area{ + height: 364px; + margin-bottom: 24px; +} + + + +.incomeprofile-per-main{ + display: inline-block; + vertical-align: middle; + width: calc(100% - 50px); +} +.incomeprofile-per-main li{ + float: left; + height: 4px; +} +.incomeprofile-per-main li:nth-of-type(1){ + width: 40%; + background:#1b8bf5 ; +} +.incomeprofile-per-main li:nth-of-type(2){ + width: 20%; + background:#2cbbef ; +} +.incomeprofile-per-main li:nth-of-type(3){ + width: 30%; + background:#2cca5f; +} +.incomeprofile-per-main li:nth-of-type(4){ + width: 10%; + background:#f68339 ; +} +.incomeprofile-per-area{ + padding:10px 0 15px 46px; + width: 100%; +} +.incomeprofile-per-area li{ + flex: 1; +} +.incomeprofile-per-area li:nth-of-type(1) span:nth-of-type(1){ + display: inline-block; + margin-right: 5px; + width: 8px; + height: 8px; + background: #1b8bf5; +} +.incomeprofile-per-area li:nth-of-type(2) span:nth-of-type(1){ + display: inline-block; + margin-right: 5px; + width: 8px; + height: 8px; + background: #2cbbef; +} +.incomeprofile-per-area li:nth-of-type(3) span:nth-of-type(1){ + display: inline-block; + margin-right: 5px; + width: 8px; + height: 8px; + background: #2cca5f; +} +.incomeprofile-per-area li:nth-of-type(4) span:nth-of-type(1){ + display: inline-block; + margin-right: 5px; + width: 8px; + height: 8px; + background:#f68339; +} +.incomeprofile-per-area li span:nth-of-type(2){ + margin-left: 5px; +} +.money-list{ + height: 208px; +} +.money-list li{ + flex: 1; + padding: 20px 20px; +} + +/*地图 map*/ +/*去掉百度地图logo*/ +#allmap label{max-width:none;} +.BMap_cpyCtrl +{ + display:none; +} +.anchorBL{ + display:none; +} +.BMap_Marker:hover{ + width: 30px !important; + height: 40px !important; +} +/*弹窗 地图*/ +.pop_models{ + width:132px; + padding: 9px 16px; + /*height:127px;*/ + background:rgba(255,255,255,1); + box-shadow: 0px 2px 8px 0px rgba(0,0,0,0.15); + border-radius: 3px !important; +} +.pop_toptitle{ + width:100px; + height:20px; + font-size:12px; + font-family:PingFangSC-Regular; + color:rgba(0,0,0,0.45); + line-height:20px; + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} +.pop_msg{ + width:100px; + height:20px; + font-size:12px; + font-family:PingFangSC-Regular; + color:rgba(0,0,0,0.65); + line-height:20px; + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} +.pop_bluebg{ + width:6px; + height:6px; + background:rgba(24,144,255,1); + float: left; + margin-top: 7px; + margin-right: 8px; + border-radius: 50% !important; +} +.pop_greenbg{ + width:6px; + height:6px; + background:rgba(82,196,26,1); + float: left; + margin-top: 7px; + margin-right: 8px; + border-radius: 50% !important; +} +.pop_nummsg{ + float: left; + width:80px; + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} +.tytj-echarts{ + height: 208px; +} +.tyje-title { + z-index: 100; + top:130px; + left: 50%; + transform: translateX(-50%); + text-align: center; +} +.incomeprofile-timebar{ + position: absolute; + top: 5px; + right: 0px; + width:256px; + height:32px; + background:rgba(255,255,255,1); +} +.income-daterange-bg { + width: 100%; + text-align: left; + background: url(../../img/dataicon.png) no-repeat 94% 9px; + background-color: #fff; + padding-right: 25px; + + border-radius: 4px !important; +} \ No newline at end of file diff --git a/assets/pages/css/home/index.css b/assets/pages/css/home/index.css new file mode 100644 index 0000000..25e4c43 --- /dev/null +++ b/assets/pages/css/home/index.css @@ -0,0 +1,565 @@ + +/*//新样式*/ +#tp-weather-widget{ + width:160px;height:29px;display: inline-block; +} +.welcome-pic{ + width: 42px; + height: 42px; + border-radius: 100%!important; + display: inline-block; + background-image: url("../../img/user-pic.png"); + background-repeat: no-repeat; + + background-size:100% 100% ; + vertical-align: middle; + margin-right: 10px; +} +.welcome-msg-left{ + height: 46px; + line-height: 46px; + display: inline-block; + /*padding-left: 111px;*/ + font-size: 14px; + +} +.park-card{ + +} +.park-card-title{ + border-bottom: 1px solid #f0f0f2; + font-size: 14px; + height: 44px; + line-height: 44px; + /*padding-left: 25px;*/ +} +.park-card-title-common{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; +} +.park-card-title-1{ + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.park-card-title-2{ + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -18px 0; +} +.park-card-title-3{ + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -36px 0; +} +.park-card-title-4{ + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -54px 0; +} + +.index-number-unit{ + margin-left: 10px; + font-size : 12px; + -webkit-transform : scale(0.84,0.84) ; + transform:scale(0.14,0.14) ; + *font-size:10px; +} +.park-container{ + padding: 10px 0 14px; + font-size: 12px; +} +.park-container li{ + white-space: nowrap; +} +.park-container li:nth-of-type(2){ + margin-bottom: 5px; +} +/*.park-container li:nth-of-type(1)>span:nth-of-type(1){*/ + /*float: left;*/ +/*}*/ +/*.park-container li:nth-of-type(1)>span:nth-of-type(2){*/ + /*float: right;*/ +/*}*/ +.park-container li:nth-of-type(2) span:nth-of-type(1){ + margin-right: 10px; +} +.park-container li:nth-of-type(3) span:nth-of-type(1){ + margin-right: 10px; +} + +.park-container>li>div:nth-of-type(1){ + margin-bottom: 10px; +} +.index-notice-title em{ + background-image:url(../../img/index-card-title.png); + background-position: 0 -18px; +} +.index-access-title em{ + background-image:url(../../img/index-card-title.png); + background-position: -18px -18px; +} +.index-srgk-title em{ + background-image:url(../../img/index-card-title.png); + background-position: -36px -18px; +} +.index-zffs-title em{ + background-image:url(../../img/index-card-title.png); + background-position: -55px -18px; +} +.index-cll-title em{ + background-image:url(../../img/index-card-title.png); + background-position: 0 -36px ; +} +.index-zyl-title em{ + background-image:url(../../img/index-card-title.png); + background-position: -18px -36px; +} +.index-income-title em{ + background-image:url(../../img/index-card-title.png); + background-position: -36px -36px; +} +.index-money-title em{ + background-image:url(../../img/index-card-title.png); + background-position: -55px -36px; +} +.index-notice-main { + font-size: 14px; + padding: 15px 0; + +} +.index-notice-main li{ + cursor: pointer; + padding: 5px 0; + font-size: 12px; + color: #000; +} +/*.index-notice-main li span{*/ + /*float: right;*/ +/*}*/ +.index-notice-main li span:nth-of-type(1){ + float: left; + width: calc(100% - 80px); + display: inline-block; + vertical-align: middle; +} +.index-notice-main li span:nth-of-type(2){ + float: right; + text-align: justify; +} +.index-access-wrap{ + overflow: hidden; + width: 100%; + height: 134px; +} +.index-access-main{ + width: 100%; + height: 134px; + overflow: hidden; +} +.index-access-main li{ + cursor: pointer; + height: 134px; + text-align: center; + float: left; + font-size: 12px; +} +.index-access-main li:nth-of-type(1), +.index-access-main li:nth-of-type(2), +.index-access-main li:nth-of-type(3), +.index-access-main li:nth-of-type(4), +.index-access-main li:nth-of-type(5){ + width: 25%; +} +.index-access-main li div{ + margin: 20px auto 10px; + width: 68px; + height: 68px; + border-radius: 50%!important; + background-color:#edf7fb ; +} +.index-access-main li div span{ + width: 40px; + height: 40px; + display: inline-block; + margin: 14px auto; + background-repeat: no-repeat; +} +.access-hykdd{ + background-image:url("../../img/index-access-pic1.png") ; + background-position: 0 0; +} +.access-dzgl{ + background-image:url("../../img/index-access-pic1.png") ; + background-position: -40px 0; +} +.access-tcdd{ + background-image:url("../../img/index-access-pic1.png") ; + background-position: -80px 0; +} +.access-tcsr{ + background-image:url("../../img/index-access-pic1.png") ; + background-position: -120px 0; +} +.index-access-add{ + background-image:url("../../img/index-access-pic.png") ; + background-position: -160px 0; +} + +.income-top{ + font-size: 12px; + height: 287px; + overflow-y: auto; + padding: 10px 0 0 0px; +} +.income-top li{ + padding: 10px 0 5px 0; + color: #000; +} +.income-top li span:nth-of-type(1){ + font-size: 12px; + text-align: center; + line-height: 20px; + display: inline-block; + width: 20px; + height: 20px; + margin-right: 15px; + border-radius: 50%!important; + border: 1px solid #9B9B9B; + color: #787878; + vertical-align: middle; +} +.income-top li span:nth-of-type(2){ + width: calc(100% - 107px); + width: -webkit-calc(100% - 107px); + width: -moz-calc(100% - 107px); + width: -ms-calc(100% - 107px); + display: inline-block; + vertical-align: middle; +} + +.income-top li span:nth-of-type(3){ + max-width: 72px; + display: inline-block; + vertical-align: middle; +} +@media only screen +and (min-device-width : 768px) +and (max-device-width : 1024px) +and (orientation : landscape) +and (-webkit-min-device-pixel-ratio: 2) { + /* STYLES */ + .income-top li span:nth-of-type(2){ + width: calc(100% - 37px); + width: -webkit-calc(100% - 37px); + width: -moz-calc(100% - 37px); + width: -ms-calc(100% - 37px); + } + .income-top li span:nth-of-type(3){ + display: none; + } +} +.income-top li:nth-of-type(1) span:nth-of-type(1){ + border: 1px solid #fe944d; +} + +.income-top li:nth-of-type(2) span:nth-of-type(1){ + border: 1px solid #fed64d; +} +.income-top li:nth-of-type(3) span:nth-of-type(1){ + border: 1px solid #5fe98f; +} +.income-echarts{ + height: 187px; +} +.park-bwzys-wrap li{ + padding-left: 90px; + height: 53px; +} +.park-bwzys-wrap li:nth-of-type(1){ + background: url("../../img/occupy-car-num-index.png") no-repeat 10px center; + margin: 10px 0 20px; +} +.park-bwzys-wrap li:nth-of-type(2){ + background: url("../../img/all-car-num-index.png") no-repeat 10px center; +} + +.park-ifo-con{ + text-align: center; + font-size: 18px; +} + + +.display-inlineblock{ + display: inline-block; + margin: 0 8px; + width: calc(100% - 140px); + height: 10px; + border: 1px solid #979797; + border-radius: 4px!important; + overflow: hidden; +} +.park-detail-wrap{ + height: 180px; + padding: 16px 0; +} +.pay-way-ul{ + font-size: 12px; +} +.pay-way-wrap{ + width: calc(100% - 50px); + height: 10px; + background-color: #edf7fb; + border-radius: 5px!important; + vertical-align: middle; + overflow: hidden; + margin-top: 13px; +} +.pay-way-scale{ + height: 10px; + left: 0; + top:0; + border-radius: 5px!important; +} +.pay-way-ul li{ + overflow: hidden; + height: 37px; + line-height: 37px; + +} +.pay-way-ul li>div:nth-of-type(1){ + width: 42px; + margin-right:5px ; +} +.pay-way-ul li:nth-of-type(1) .pay-way-scale{ + width: 70%; + background-color: #5fe98f; +} +.pay-way-ul li:nth-of-type(2) .pay-way-scale{ + width: 60%; + background-color: #5ed8a6; +} +.pay-way-ul li:nth-of-type(3) .pay-way-scale{ + width: 50%; + background-color: #5dc2c3; +} +.pay-way-ul li:nth-of-type(4) .pay-way-scale{ + width: 40%; + background-color: #5cb2d9; +} +.traffic-data-wrap li{ + height: 64px; + line-height: 64px; + border-radius: 50px!important; + background-color: #edf7fb; + text-align: right; + font-size: 18px; + padding-right: 30px; +} +.traffic-data-wrap li span{ + font-size: 12px; + margin-left: 10px; +} +.traffic-data-wrap li:nth-of-type(1){ + margin-top: 5px; + margin-bottom: 10px; + background-image:url("../../img/traffic-data-in.png") ; + background-repeat: no-repeat; +} +.traffic-data-wrap li:nth-of-type(2){ + background-image:url("../../img/traffic-data-out.png") ; + background-repeat: no-repeat; +} +.earning-basic li{ + flex: 1; + height: 148px; + border-radius: 8px!important; + overflow: hidden; + background-color: #edf7fb; +} +.earning-basic li:nth-of-type(1){ + margin-right: 10px; +} +.earning-basic li:nth-of-type(1):before{ + content: ''; + position: absolute; + width: 40px; + height: 40px; + top:10px; + left: 50%; + margin-left: -20px; + background: url("../../img/earning-basic-in.png") no-repeat center 10px; + z-index: 1; +} +.earning-basic li:nth-of-type(2):before{ + content: ''; + position: absolute; + width: 40px; + height: 40px; + top:10px; + left: 50%; + margin-left: -20px; + background: url("../../img/earning-basic-out.png") no-repeat center 10px; + z-index: 1; +} +.earning-basic-header{ + height: 43px; + background-color: #a5dff3; +} +.earning-basic-number{ + font-size: 18px; + margin: 20px 0 10px; +} +.earning-basic-header:before{ + content: ''; + position: absolute; + left: 0; + bottom: 0; + border-left: 8px solid #edf7fb; + border-bottom: 8px solid #edf7fb; + border-right: 8px solid transparent; + border-top: 8px solid transparent; +} +.earning-basic-header:after{ + content: ''; + position: absolute; + right: 0; + bottom: 0; + border-right: 8px solid #edf7fb; + border-bottom: 8px solid #edf7fb; + border-left: 8px solid transparent; + border-top: 8px solid transparent; +} +.pop_echarts{ + padding: 0 20px; + font-size: 14px; + text-align: center; + border-radius: 20px !important; +} + + + + + + + + + + + + + + + + + +.odometer.odometer-auto-theme, .odometer.odometer-theme-default { + display: inline-block; + vertical-align: middle; + *vertical-align: auto; + *zoom: 1; + *display: inline; + position: relative; +} +.odometer.odometer-auto-theme .odometer-digit, .odometer.odometer-theme-default .odometer-digit { + display: inline-block; + vertical-align: middle; + *vertical-align: auto; + *zoom: 1; + *display: inline; + position: relative; +} +.odometer.odometer-auto-theme .odometer-digit .odometer-digit-spacer, .odometer.odometer-theme-default .odometer-digit .odometer-digit-spacer { + display: inline-block; + vertical-align: middle; + *vertical-align: auto; + *zoom: 1; + *display: inline; + visibility: hidden; +} +.odometer.odometer-auto-theme .odometer-digit .odometer-digit-inner, .odometer.odometer-theme-default .odometer-digit .odometer-digit-inner { + text-align: left; + display: block; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: hidden; +} +.odometer.odometer-auto-theme .odometer-digit .odometer-ribbon, .odometer.odometer-theme-default .odometer-digit .odometer-ribbon { + display: block; +} +.odometer.odometer-auto-theme .odometer-digit .odometer-ribbon-inner, .odometer.odometer-theme-default .odometer-digit .odometer-ribbon-inner { + display: block; + -webkit-backface-visibility: hidden; +} +.odometer.odometer-auto-theme .odometer-digit .odometer-value, .odometer.odometer-theme-default .odometer-digit .odometer-value { + display: block; + -webkit-transform: translateZ(0); +} +.odometer.odometer-auto-theme .odometer-digit .odometer-value.odometer-last-value, .odometer.odometer-theme-default .odometer-digit .odometer-value.odometer-last-value { + position: absolute; +} +.odometer.odometer-auto-theme.odometer-animating-up .odometer-ribbon-inner, .odometer.odometer-theme-default.odometer-animating-up .odometer-ribbon-inner { + -webkit-transition: -webkit-transform 2s; + -moz-transition: -moz-transform 2s; + -ms-transition: -ms-transform 2s; + -o-transition: -o-transform 2s; + transition: transform 2s; +} +.odometer.odometer-auto-theme.odometer-animating-up.odometer-animating .odometer-ribbon-inner, .odometer.odometer-theme-default.odometer-animating-up.odometer-animating .odometer-ribbon-inner { + -webkit-transform: translateY(-100%); + -moz-transform: translateY(-100%); + -ms-transform: translateY(-100%); + -o-transform: translateY(-100%); + transform: translateY(-100%); +} +.odometer.odometer-auto-theme.odometer-animating-down .odometer-ribbon-inner, .odometer.odometer-theme-default.odometer-animating-down .odometer-ribbon-inner { + -webkit-transform: translateY(-100%); + -moz-transform: translateY(-100%); + -ms-transform: translateY(-100%); + -o-transform: translateY(-100%); + transform: translateY(-100%); +} +.odometer.odometer-auto-theme.odometer-animating-down.odometer-animating .odometer-ribbon-inner, .odometer.odometer-theme-default.odometer-animating-down.odometer-animating .odometer-ribbon-inner { + -webkit-transition: -webkit-transform 2s; + -moz-transition: -moz-transform 2s; + -ms-transition: -ms-transform 2s; + -o-transition: -o-transform 2s; + transition: transform 2s; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -ms-transform: translateY(0); + -o-transform: translateY(0); + transform: translateY(0); +} + +.odometer.odometer-auto-theme, .odometer.odometer-theme-default { + font-family: "Helvetica Neue", sans-serif; + line-height: 1.1em; +} +.odometer.odometer-auto-theme .odometer-value, .odometer.odometer-theme-default .odometer-value { + text-align: center; +} +.center-card{ + display: inline; + left: 50%; + transform: translateX(-50%); + position: absolute; +} +.question-deivce-icon { + display: inline-block; + height: 14px; + width: 14px; + background: url(../../img/question-money-icon.png) no-repeat; + background-size: 100% 100%; + vertical-align: middle; + margin-left: 4px; + margin-top: -4px; +} + diff --git a/assets/pages/css/home/messagecenter.css b/assets/pages/css/home/messagecenter.css new file mode 100644 index 0000000..aa28f43 --- /dev/null +++ b/assets/pages/css/home/messagecenter.css @@ -0,0 +1,50 @@ +/*未读行 加粗字体*/ +.fontBold{ + font-weight:bold ; +} +/*通知类型 */ +/*正常*/ +.normalIco{ + width: 6px; + height: 6px; + background-color: #1E95CD; + border-radius: 50% !important; + margin-top: 19.5px; + margin-right: 5px; + float: left; +} +/*正常*/ +.abnormalIco{ + width: 6px; + height: 6px; + background-color: #f3173b; + border-radius: 50% !important; + margin-top: 19.5px; + margin-right: 5px; + float: left; +} +.noabnormalIco{ + width: 6px; + height: 6px; + /*background-color: #f3173b;*/ + border-radius: 50% !important; + margin-top: 19.5px; + margin-right: 5px; + float: left; +} +/*已读按钮 hover样式*/ +.ITD-readall-btn:hover{ + width: 120px; + cursor: pointer; + padding: 3px 10px 3px 35px; + border: 1px solid #1E95CD; + border-radius: 4px!important; + font-size: 12px; + color: #1E95CD; + outline: none; + background: url(../../img/ITD-readall-btnhover.png) no-repeat 10px center; +} +/*最大宽度 消息内容*/ +.msgMaxwidth{ + max-width: 600px; +} diff --git a/assets/pages/css/home/newsnotice.css b/assets/pages/css/home/newsnotice.css new file mode 100644 index 0000000..e3cf90a --- /dev/null +++ b/assets/pages/css/home/newsnotice.css @@ -0,0 +1,7 @@ +.news-wrap{ + width: 800px; + margin: 0 auto; +} +.news-content li{ + text-indent: 24px; +} \ No newline at end of file diff --git a/assets/pages/css/home/parksingledetail.css b/assets/pages/css/home/parksingledetail.css new file mode 100644 index 0000000..8f2c5a0 --- /dev/null +++ b/assets/pages/css/home/parksingledetail.css @@ -0,0 +1,131 @@ +#searchText span{ + font-size: 14px; + color: #26be96; +} +.parksingledetail-ul{ + height: 108px; + padding: 17px 0; + font-size: 0; +} +.parksingledetail-ul li{ + display: inline-block; +} +.parksingledetail-ul li:first-of-type{ + margin-right: 32px; + vertical-align: top; +} +.parksingledetail-ul li:last-of-type{ + padding: 7px 0; +} +.parksingledetail-ul li:last-of-type div:nth-of-type(1){ + text-align: left; + color: #626c72; + font-size: 18px; + height: 18px; + line-height: 18px; +} +.parksingledetail-ul li:last-of-type div:nth-of-type(1) span{ + font-size: 14px; +} +.parksingledetail-ul li:last-of-type div:nth-of-type(2){ + color: #626c72; + font-size: 36px; + height: 36px; + line-height: 36px; + margin-top: 12px; + text-align: left; +} +.parksingledetail-ul li:last-of-type div:nth-of-type(2) span{ + font-size: 14px; +} + +/*收费趋势*/ +.vehicleChart{ + height: 220px; +} +.height240{ + height: 240px; +} + +/*车位详情*/ +.park-detail-ul{ + padding:0 24px 20px 24px; +} +.park-detail-ul li:nth-of-type(1){ + width: 60%; +} +.park-detail-ul li div:nth-of-type(1){ + font-size: 14px; + height: 12px; + color: #626c72; +} +.park-detail-ul li div:nth-of-type(2){ + margin-top: 12px; + height: 36px; + line-height: 36px; + font-size: 36px; + color: #626c72; +} +.park-detail-per{ + padding: 24px; +} +.park-detail-per-first span:nth-of-type(1) { + font-size: 14px; +} +.park-detail-per-first span:nth-of-type(2) { + font-size: 16px; +} +.per-pross-wrap{ + height: 4px; + background-color: rgba(194,202,216,.4); +} +.per-pross-first{ + width: 30%; + height: 4px; + background: #26be96 ; +} +.per-pross-icon{ + position: absolute; + left: 30%; + width: 12px; + height: 12px; + background:url("../../img/per-pross-cion.png") no-repeat; + top:-4px; +} +.per-pross-wrap{ + margin: 3px 0 11px 0; + overflow: hidden; +} +.breakNews-header{ + background: #f0f4f5 !important; + font-size: 14px; + color: #4f5052; + padding-left: 24px; + height: 37px; + line-height: 37px; +} +.breakNews-header div{ + width: 25%; + float: left; +} +.scrolltext{height:189px;overflow:hidden;} +.scrolltext ol{ + padding-left: 0; + +} +.scrolltext ol li{ + padding-left: 24px; + border-bottom:2px solid #fff; +} +.scrolltext ol li { + height: 46px; + line-height: 46px; +} +.scrolltext ol li div{ + float: left; + width: 25%; + font-size: 12px; + white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow: hidden; +} +.scrolltext ol li:hover{background-color:#f0faf8 !important;} +#breakNews .list6{height:230px;overflow:hidden;width:100%;} diff --git a/assets/pages/css/home/updatenotice.css b/assets/pages/css/home/updatenotice.css new file mode 100644 index 0000000..b367be7 --- /dev/null +++ b/assets/pages/css/home/updatenotice.css @@ -0,0 +1,44 @@ +.update-content{ + margin: 0 auto; + background: url("img/updatenoticeBg.png") no-repeat; + height: 546px; + width: 913px; +} +.update-tit{ + height: 65px; + line-height: 65px; + width: 100%; + text-align: center; + color: #fff; + font-size: 24px; +} +.update-main{ + width: 500px; + margin: 55px auto 0; + height: 360px; + line-height: 18px; +} +.update-main .notice-msg{ + height: 145px; + width: 460px; + margin-left:30px; +} +.notice-nomargin{ + margin: 0 !important;; +} +.notice-msgPer{ + height: 60px; + width: 460px; + margin-left:30px; +} +.update-footer{ + height: 20px; + line-height: 20px; + width: 100%; + font-size: 14px; + text-align:right; + color: #fff; + float: right; + padding-right: 45px; + margin-top: 20px; +} \ No newline at end of file diff --git a/assets/pages/css/home/weekly.css b/assets/pages/css/home/weekly.css new file mode 100644 index 0000000..6a3f631 --- /dev/null +++ b/assets/pages/css/home/weekly.css @@ -0,0 +1,116 @@ +.weekly-header{ + margin: 0 -29px; +} +.weekly-header div { + height: 66px; + line-height: 66px; + background: rgba(11, 166, 212, 0.1); + text-align: center; + font-size: 24px; + color: rgba(0,0,0,0.9); +} +/*neirong*/ +.container { + padding-top: 70px; + background-color: #fff; + width: 100%; + margin: 0 auto; +} +.container .container-title{ + height: 22px; + line-height: 22px; + width: 100%; +} +.container .container-title2{ + height: 22px; + line-height: 22px; + width: 100%; +} +.container .container-title .title-msg,.container-title2 .title-msg{ + font-size: 14px; + color: rgba(0,0,0,.8); + margin-left: 12px; + float: left; +} +.container .container-title .title-Ico{ + background: url("img/weekly_titIco.png") no-repeat center; + width: 16px; + height: 20px; + padding-top: 2px; + float: left; +} +.container .container-cont { + padding: 20px 0 70px 10px; +} +.container-cont .weekly-border:before{ + content: ""; + margin-right: 10px; + width: 8px; + height: 8px; + display: inline-block; + border-radius: 4px; + background-color: #1e95cd; +} +.container-cont .weekly-linechart{ + width: 100%; + height: 220px; + margin-top: 50px; +} +.pop_echarts{ + padding: 3px 20px; + font-size: 14px; + text-align: center; + border-radius: 20px !important; +} +.container-cont .weekly-rankechart{ + width: 100%; + height: 300px; + margin-top: 50px; +} +.weekly-marginleft18{ + margin-left: 18px; +} +.weekly-zfzbechart{ + width: 380px; + height: 260px; + margin-top: 50px; +} +.charts-info{ + width: 160px; + height: 60px; + margin-top: 90px; + padding: 10px 20px; + background-color: #edf7fb; + border-radius: 4px !important; +} +.charts-info ul li:nth-of-type(1):before { + content: ""; + margin-right: 10px; + width: 6px; + height: 6px; + display: inline-block; + border-radius: 3px; + background-color: #5fe98f; +} +.charts-info ul li:nth-of-type(2):before { + content: ""; + margin-right: 10px; + width: 6px; + height: 6px; + display: inline-block; + border-radius: 3px; + background-color: #d5d8d8; +} +/*table*/ +.weekly-tablebody{ + min-height: 200px; + width: 100%; + margin-top: 50px; +} +.container .container-title2 .title-Ico{ + background: url("img/weekly_titCarIco.png") no-repeat center; + width: 16px; + height: 20px; + padding-top: 2px; + float: left; +} diff --git a/assets/pages/css/login.css b/assets/pages/css/login.css new file mode 100755 index 0000000..ce47d54 --- /dev/null +++ b/assets/pages/css/login.css @@ -0,0 +1,388 @@ +html,body{ + height: 100%; + width: 100%; + +} +.login-model { + height: 100%; + min-height: 700px; + width: 100%; + min-width: 814px; + /*background:url(../img/loginbg-icon.png) no-repeat;*/ + background-size: 100% 100%; + position: relative; +} +.login .logo { + padding-top:30px; + padding-left: 40px; +} +.login .logo a img{ + height: 34.5px; + width: 90.5px; +} +.login-cont{ + width:372px; + height:360px; + position: absolute; + top:50%; + left: 50%; + margin-top: -186px; + margin-left: -180px; + +} +.login-title{ + height: 48px; + border-bottom: 2px solid #fff; + line-height: 48px; + padding-left: 40px; + font-size:18px; + font-weight:400; + color:rgba(55,168,247,1); + background:rgba(26,29,41,.6); + position: relative; +} +.login-title:after{ + content: ''; + position: absolute; + left: 0; + bottom: -2px; + width:159px; + height:2px; + background:rgba(55,168,247,1); +} +.login-main{ + width: 372px; + padding:32px 40px; + background:rgba(26,29,41,.6); +} +.login-user-bg{ + display: inline-block; + vertical-align: middle; + width: 40px; + height: 40px; + background:rgba(170,171,171,.8) url("../img/login-user-bg.png") no-repeat center center; +} +.login-pwd-bg{ + display: inline-block; + vertical-align: middle; + width: 40px; + height: 40px; + background:rgba(170,171,171,.8) url("../img/login-pwd-bg.png") no-repeat center center; +} +.form-control{ + border-radius: 0; +} +.login .content h3 { + color:#4db3a5; + text-align:center; + font-size:28px; + font-weight:400!important +} +.login .content h4 { + color:#555 +} +.login .content .hint { + color:#999; + padding:0; + margin:15px 0 7px +} +.login .content .forget-form, .login .content .login-form { + padding:0; + margin:0 +} +.login .content .form-control { + height: 40px; + width: 251px; + display: inline-block; +} +.login .content .form-control:active, .login .content .form-control:focus { + border:1px solid #c3ccda +} +.login .content .form-control::-moz-placeholder { + color:#8290a3; + opacity:1 +} +.login .content .form-control:-ms-input-placeholder { + color:#8290a3 +} +.login .content .form-control::-webkit-input-placeholder { + color:#8290a3 +} +.login .content select.form-control { + padding-left:9px; + padding-right:9px +} +.login .content .forget-form, .login .content .register-form { + display:none +} +.login .content .form-title { + font-weight:300; + margin-bottom:25px +} +.login .content .form-actions { + clear:both; + border:0; +} +.login-options { + margin-bottom:30px; + overflow:hidden +} +.login-options h4 { + float:left; + font-weight:600; + font-size:15px; + color:#7d91aa!important +} +.login-options .social-icons { + float:right; + padding-top:3px +} +.login-options .social-icons li a { + border-radius:15px!important; + -moz-border-radius:15px!important; + -webkit-border-radius:15px!important +} +.login .content .form-actions .checkbox { + margin-left:0; + padding-left:0 +} +.login .content .forget-form .form-actions { + border:0; + margin-bottom:0; + padding-bottom:20px +} +.login .content .register-form .form-actions { + border:0; + margin-bottom:0; + padding-bottom:0 +} +.login .content .form-actions .btn { + height: 40px; + font-size: 18px; + color: #fff; + border:1px solid #37A8F7; + background-color: #37A8F7; + + width: 100%; +} +.login .content .form-actions .btn-default { + font-weight:600; + padding:10px 25px!important; + color:#6c7a8d; + background-color:#fff; + border:none +} +.login .content .form-actions .btn-default:hover { + background-color:#fafaff; + color:#45b6af +} +.login .content .forget-password { + font-size:14px; + float:right; + display:inline-block; + margin-top:10px +} +.login .content .check { + color:#8290a3 +} +.login .content .rememberme { + margin-left:8px; + margin-top:10px +} +.login .content .create-account { + margin:0 -40px -30px; + padding:15px 0 17px; + text-align:center; + background-color:#6c7a8d; + -webkit-border-radius:0 0 7px 7px; + -moz-border-radius:0 0 7px 7px; + -ms-border-radius:0 0 7px 7px; + -o-border-radius:0 0 7px 7px; + border-radius:0 0 7px 7px +} +.login .content .create-account>p { + margin:0 +} +.login .content .create-account p a { + font-weight:600; + font-size:14px; + color:#c3cedd +} +.login .content .create-account a { + display:inline-block; + margin-top:5px +} +.login .copyright { + text-align:center; + margin:0 auto 30px 0; + padding:10px; + color:#7a8ca5; + font-size:13px +} +@media (max-width:440px) { + .login .content, .login .logo { + margin-top:10px + } + .login .content { + width:280px + } + .login .content h3 { + font-size:22px + } + .forget-password { + display:inline-block; + margin-top:20px + } + .login-options .social-icons { + float:left; + padding-top:3px + } + .login .checkbox { + font-size:13px + } +} +.error_ifo { + margin-top: 10px; +} +.verification-input { + margin-right: 20px; + width:170px; + display: inline-block; + vertical-align: top; +} +.imgWrap { + height: 43px; + width: 100px; + display: inline-block; +} +.imgWrap img { + width: 100%; + height:100%; +} +.verification-logo { + position: absolute; + left: 150px; + top:16px; +} +.login_error_ifo { + height: 28px; + text-align: center; + padding: 5px 0; + color: rgb(255, 97, 97); +} +.zteitslogin_foot{ + position: absolute; + width: 100%; + height: 30px; + line-height: 30px; + text-align: center; + color: #8290a3; + font-size: 12px; + bottom: 10px; + left: 0; +} +.form-group{ + margin-bottom: 12px; +} +.form-control{ + color:#000; + background-color: rgba(255,255,255,.75); + font-size: 14px; + +} +input:-webkit-autofill, +textarea:-webkit-autofill, +select:-webkit-autofill { + background-color: rgba(255,255,255,.75); + -webkit-box-shadow: 0 0 0px 1000px #fff inset; +} +/*//鐒︾偣鏃朵篃鍔犱笂锛屼笉鍔犱細鍑虹幇榛勮壊鑳屾櫙闂姩涓€涓�*/ +input[type=text]:focus, input[type=password]:focus, textarea:focus { + -webkit-box-shadow: 0 0 0 1000px white inset; +} +input::-webkit-input-placeholder{ + color:#000!important; +} +input::-moz-placeholder{ /* Mozilla Firefox 19+ */ + color:#000!important; +} +input:-moz-placeholder{ /* Mozilla Firefox 4 to 18 */ + color:#000!important; +} +input:-ms-input-placeholder{ /* Internet Explorer 10-11 */ + color:#000!important; +} + + +#slide_box { + height: 40px; + text-align: center; + line-height: 40px; + font-size: 14px; + background-color: rgba(255,255,255,.75); + border: none; +} + +#slide_xbox { + width: 40px; + height: 40px; + text-align: center; + line-height:40px; + font-size: 14px; + position: absolute; + background: #35b34a; +} + +#btn { + cursor: pointer; + width: 40px; + height: 40px; + background: #fff url(../img/handler_bg.png); + float: right; + /*-webkit-box-shadow: 0px 0px 15px 0px #ddd;*/ + /*-moz-box-shadow: 0px 0px 15px 0px #ddd;*/ + /*box-shadow: 0px 0px 15px 0px #ddd;*/ + /*color: #8a8c97;*/ + +} +.display-hide{ + display: none; +} + + + + +/* + + Supersized - Fullscreen Slideshow jQuery Plugin + Version : 3.2.7 + Site : www.buildinternet.com/project/supersized + + Author : Sam Dunn + Company : One Mighty Roar (www.onemightyroar.com) + License : MIT License / GPL License + +*/ + +* { margin:0; padding:0; } +body { background:#111; height:100%; } +img { border:none; } + +#supersized-loader { position:absolute; top:50%; left:50%; z-index:0; width:60px; height:60px; margin:-30px 0 0 -30px; text-indent:-999em;} + +#supersized { display:block; position:fixed; left:0; top:0; overflow:hidden; z-index:-999; height:100%; width:100%; } +#supersized img { width:auto; height:auto; position:relative; display:none; outline:none; border:none; } +#supersized.speed img { -ms-interpolation-mode:nearest-neighbor; image-rendering: -moz-crisp-edges; } /*Speed*/ +#supersized.quality img { -ms-interpolation-mode:bicubic; image-rendering: optimizeQuality; } /*Quality*/ + +#supersized li { display:block; list-style:none; z-index:-30; position:fixed; overflow:hidden; top:0; left:0; width:100%; height:100%; background:#111; } +#supersized a { width:100%; height:100%; display:block; } +#supersized li.prevslide { z-index:-20; } +#supersized li.activeslide { z-index:-10; } +/*#supersized li.image-loading { background:#111 url(../img/progress.gif) no-repeat center center; width:100%; height:100%; }*/ +/*#supersized li.image-loading img{ visibility:hidden; }*/ +#supersized li.prevslide img, #supersized li.activeslide img{ display:inline; } + + +#supersized img { max-width: none !important } + diff --git a/assets/pages/css/loginold.min.css b/assets/pages/css/loginold.min.css new file mode 100644 index 0000000..8f4944e --- /dev/null +++ b/assets/pages/css/loginold.min.css @@ -0,0 +1,323 @@ +html,body{ + height: 100%; + width: 100%; + +} +.login-model { + height: 100%; + min-height: 700px; + width: 100%; + min-width: 814px; + background:url(../img/loginbg-icon.png) no-repeat; + background-size: 100% 100%; + position: relative; +} +.login .logo { + padding-top:30px; + padding-left: 40px; +} +.login .logo a img{ + height: 34.5px; + width: 90.5px; +} +.login-cont{ + height: 380px; + width:678px; + position: absolute; + top:50%; + left: 50%; + margin-top: -190px; + margin-left: -339px; + background-color: rgba(255,255,255,.1); + border-radius: 30px!important; +} + +.login .content { + + /*background-color:#fff;*/ + /*-webkit-border-radius:7px;*/ + /*-moz-border-radius:7px;*/ + /*-ms-border-radius:7px;*/ + /*-o-border-radius:7px;*/ + /*border-radius:7px;*/ + margin: 0 auto; + width:328px; + /*height: 440px;*/ + /*padding:46px 30px 30px;*/ + overflow:hidden; + /*position:relative*/ +} +.login .content h3 { + color:#4db3a5; + text-align:center; + font-size:28px; + font-weight:400!important +} +.login .content h4 { + color:#555 +} +.login .content .hint { + color:#999; + padding:0; + margin:15px 0 7px +} +.login .content .forget-form, .login .content .login-form { + padding:0; + margin:0 +} +.login .content .form-control { + height: 36px; + width: 328px; +} +.login .content .form-control:active, .login .content .form-control:focus { + border:1px solid #c3ccda +} +.login .content .form-control::-moz-placeholder { + color:#8290a3; + opacity:1 +} +.login .content .form-control:-ms-input-placeholder { + color:#8290a3 +} +.login .content .form-control::-webkit-input-placeholder { + color:#8290a3 +} +.login .content select.form-control { + padding-left:9px; + padding-right:9px +} +.login .content .forget-form, .login .content .register-form { + display:none +} +.login .content .form-title { + font-weight:300; + margin-bottom:25px +} +.login .content .form-actions { + clear:both; + border:0; + margin-left:-30px; + margin-right:-30px +} +.login-options { + margin-bottom:30px; + overflow:hidden +} +.login-options h4 { + float:left; + font-weight:600; + font-size:15px; + color:#7d91aa!important +} +.login-options .social-icons { + float:right; + padding-top:3px +} +.login-options .social-icons li a { + border-radius:15px!important; + -moz-border-radius:15px!important; + -webkit-border-radius:15px!important +} +.login .content .form-actions .checkbox { + margin-left:0; + padding-left:0 +} +.login .content .forget-form .form-actions { + border:0; + margin-bottom:0; + padding-bottom:20px +} +.login .content .register-form .form-actions { + border:0; + margin-bottom:0; + padding-bottom:0 +} +.login .content .form-actions .btn { + margin-top:1px; + font-size: 18px; + color: #fff; + border:1px solid #c90000; + background-color: #de3a41; + + width: 100%; +} +.login .content .form-actions .btn-default { + font-weight:600; + padding:10px 25px!important; + color:#6c7a8d; + background-color:#fff; + border:none +} +.login .content .form-actions .btn-default:hover { + background-color:#fafaff; + color:#45b6af +} +.login .content .forget-password { + font-size:14px; + float:right; + display:inline-block; + margin-top:10px +} +.login .content .check { + color:#8290a3 +} +.login .content .rememberme { + margin-left:8px; + margin-top:10px +} +.login .content .create-account { + margin:0 -40px -30px; + padding:15px 0 17px; + text-align:center; + background-color:#6c7a8d; + -webkit-border-radius:0 0 7px 7px; + -moz-border-radius:0 0 7px 7px; + -ms-border-radius:0 0 7px 7px; + -o-border-radius:0 0 7px 7px; + border-radius:0 0 7px 7px +} +.login .content .create-account>p { + margin:0 +} +.login .content .create-account p a { + font-weight:600; + font-size:14px; + color:#c3cedd +} +.login .content .create-account a { + display:inline-block; + margin-top:5px +} +.login .copyright { + text-align:center; + margin:0 auto 30px 0; + padding:10px; + color:#7a8ca5; + font-size:13px +} +@media (max-width:440px) { + .login .content, .login .logo { + margin-top:10px + } + .login .content { + width:280px + } + .login .content h3 { + font-size:22px + } + .forget-password { + display:inline-block; + margin-top:20px + } + .login-options .social-icons { + float:left; + padding-top:3px + } + .login .checkbox { + font-size:13px + } +} +.error_ifo { + margin-top: 10px; +} +.verification-input { + margin-right: 20px; + width:170px; + display: inline-block; + vertical-align: top; +} +.imgWrap { + height: 43px; + width: 100px; + display: inline-block; +} +.imgWrap img { + width: 100%; + height:100%; +} +.verification-logo { + position: absolute; + left: 150px; + top:16px; +} +.login_error_ifo { + height: 22px; + text-align: center; + padding: 5px 0; + color: rgb(255, 97, 97); +} +.zteitslogin_foot{ + position: absolute; + width: 100%; + height: 30px; + line-height: 30px; + text-align: center; + color: #8290a3; + font-size: 12px; + bottom: 10px; + left: 0; +} +.form-group{ + margin-bottom: 9px; +} +.form-control{ + color:#000; + background-color: rgba(255,255,255,.75); + font-size: 14px; + +} +input:-webkit-autofill, +textarea:-webkit-autofill, +select:-webkit-autofill { + background-color: rgba(255,255,255,.75); + -webkit-box-shadow: 0 0 0px 1000px #fff inset; +} +/*//焦点时也加上,不加会出现黄色背景闪动一下*/ + input[type=text]:focus, input[type=password]:focus, textarea:focus { + -webkit-box-shadow: 0 0 0 1000px white inset; + } +input::-webkit-input-placeholder{ + color:#000!important; +} +input::-moz-placeholder{ /* Mozilla Firefox 19+ */ + color:#000!important; +} +input:-moz-placeholder{ /* Mozilla Firefox 4 to 18 */ + color:#000!important; +} +input:-ms-input-placeholder{ /* Internet Explorer 10-11 */ + color:#000!important; +} + + +#slide_box { + height: 36px; + text-align: center; + line-height: 36px; + font-size: 14px; + background-color: rgba(255,255,255,.75); + border: none; +} + +#slide_xbox { + width: 56px; + height: 36px; + text-align: center; + line-height: 36px; + font-size: 14px; + position: absolute; + background: #35b34a; +} + +#btn { + cursor: pointer; + width: 56px; + height: 36px; + background: #fff url(../img/handler_bg.png); + float: right; + /*-webkit-box-shadow: 0px 0px 15px 0px #ddd;*/ + /*-moz-box-shadow: 0px 0px 15px 0px #ddd;*/ + /*box-shadow: 0px 0px 15px 0px #ddd;*/ + /*color: #8a8c97;*/ + +} diff --git a/assets/pages/css/managereport/allparkrecordsFinance.css b/assets/pages/css/managereport/allparkrecordsFinance.css new file mode 100644 index 0000000..ca72e05 --- /dev/null +++ b/assets/pages/css/managereport/allparkrecordsFinance.css @@ -0,0 +1,22 @@ +.parking-l{ + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.recordfinance-input78{ + width: 78%; + height: 34px; + line-height: 34px; +} +/*table 表头*/ +.bootstrap-table #recordtable.table>thead>tr>th { + border-left: 1px solid #d8e2e5!important; +} +.bootstrap-table #recordtable.table>thead>tr:nth-of-type(2)>th{ + border-left:0 !important; +} + +.bootstrap-table #recordtable.table>thead>tr:nth-of-type(2)>th:nth-of-type(4),.bootstrap-table #recordtable.table>thead>tr:nth-of-type(2)>th:nth-of-type(7),.bootstrap-table #recordtable.table>thead>tr:nth-of-type(2)>th:nth-of-type(11),.bootstrap-table #recordtable.table>thead>tr:nth-of-type(2)>th:nth-of-type(19){ + border-right:1px solid #d8e2e5!important; +} \ No newline at end of file diff --git a/assets/pages/css/managereport/billmanage.css b/assets/pages/css/managereport/billmanage.css new file mode 100644 index 0000000..f1fbb56 --- /dev/null +++ b/assets/pages/css/managereport/billmanage.css @@ -0,0 +1,43 @@ +.reconciliation-card-detail{ + padding: 15px 0 3px; +} +.reconciliation-card-detail li{ + height: 18px; + line-height: 18px; + margin-bottom: 10px; +} +/*复合表头样式*/ +.ITD-complex-table thead tr:nth-of-type(2) th{ + border-top: 1px solid #e7ecf1!important; +} +.billFixwid{ + max-width: 155px; +} +/*tab 切换*/ +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; + margin-bottom: 18px; +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD; + color: #1E95CD; +} \ No newline at end of file diff --git a/assets/pages/css/managereport/companysettlement.css b/assets/pages/css/managereport/companysettlement.css new file mode 100644 index 0000000..31fefa2 --- /dev/null +++ b/assets/pages/css/managereport/companysettlement.css @@ -0,0 +1,34 @@ +.ITD-complex-table thead tr:nth-of-type(2) th { + border-top: 1px solid #e7ecf1!important; +} +/*input radio style*/ +/*单选复选美化*/ +input[type=checkbox], +input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} +input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +input[type=radio]:hover + label{ + background: url('../../img/input-radio.png') no-repeat 0 center; +} +input[type=radio]:checked + label{ + background : url('../../img/input-radio-active.png') no-repeat 0 center; + +} +input[type=radio]:checked:hover + label{ + background: url('../../img/input-radio-active.png') no-repeat 0 center; + +} \ No newline at end of file diff --git a/assets/pages/css/managereport/devicereport.css b/assets/pages/css/managereport/devicereport.css new file mode 100644 index 0000000..2d35982 --- /dev/null +++ b/assets/pages/css/managereport/devicereport.css @@ -0,0 +1,9 @@ +.common-parking-l { + float: left; + width: 70px; + height: 34px; + line-height: 34px; +} +.incomefixwid{ + max-width: 120px; +} \ No newline at end of file diff --git a/assets/pages/css/managereport/img/alltotaltab-show-active.png b/assets/pages/css/managereport/img/alltotaltab-show-active.png new file mode 100644 index 0000000..e2aac06 Binary files /dev/null and b/assets/pages/css/managereport/img/alltotaltab-show-active.png differ diff --git a/assets/pages/css/managereport/img/alltotaltab-show.png b/assets/pages/css/managereport/img/alltotaltab-show.png new file mode 100644 index 0000000..9e8bf3f Binary files /dev/null and b/assets/pages/css/managereport/img/alltotaltab-show.png differ diff --git a/assets/pages/css/managereport/img/billmanagebgIco_des.png b/assets/pages/css/managereport/img/billmanagebgIco_des.png new file mode 100644 index 0000000..a14d4ca Binary files /dev/null and b/assets/pages/css/managereport/img/billmanagebgIco_des.png differ diff --git a/assets/pages/css/managereport/img/billmanagement-main-money-1.png b/assets/pages/css/managereport/img/billmanagement-main-money-1.png new file mode 100644 index 0000000..2d70958 Binary files /dev/null and b/assets/pages/css/managereport/img/billmanagement-main-money-1.png differ diff --git a/assets/pages/css/managereport/img/billmanagement-main-money-2.png b/assets/pages/css/managereport/img/billmanagement-main-money-2.png new file mode 100644 index 0000000..9c90bae Binary files /dev/null and b/assets/pages/css/managereport/img/billmanagement-main-money-2.png differ diff --git a/assets/pages/css/managereport/img/billmanagement-main-money-3.png b/assets/pages/css/managereport/img/billmanagement-main-money-3.png new file mode 100644 index 0000000..92b31b0 Binary files /dev/null and b/assets/pages/css/managereport/img/billmanagement-main-money-3.png differ diff --git a/assets/pages/css/managereport/img/billmanagement-main-money-4.png b/assets/pages/css/managereport/img/billmanagement-main-money-4.png new file mode 100644 index 0000000..75a4e18 Binary files /dev/null and b/assets/pages/css/managereport/img/billmanagement-main-money-4.png differ diff --git a/assets/pages/css/managereport/img/billmanagement-title-1.png b/assets/pages/css/managereport/img/billmanagement-title-1.png new file mode 100644 index 0000000..834101f Binary files /dev/null and b/assets/pages/css/managereport/img/billmanagement-title-1.png differ diff --git a/assets/pages/css/managereport/img/billmanagement-title-2.png b/assets/pages/css/managereport/img/billmanagement-title-2.png new file mode 100644 index 0000000..efaa78c Binary files /dev/null and b/assets/pages/css/managereport/img/billmanagement-title-2.png differ diff --git a/assets/pages/css/managereport/img/billmanagement-title-3.png b/assets/pages/css/managereport/img/billmanagement-title-3.png new file mode 100644 index 0000000..306ea88 Binary files /dev/null and b/assets/pages/css/managereport/img/billmanagement-title-3.png differ diff --git a/assets/pages/css/managereport/img/billmanagement-title-4.png b/assets/pages/css/managereport/img/billmanagement-title-4.png new file mode 100644 index 0000000..477a572 Binary files /dev/null and b/assets/pages/css/managereport/img/billmanagement-title-4.png differ diff --git a/assets/pages/css/managereport/img/billmanagement-title-des.png b/assets/pages/css/managereport/img/billmanagement-title-des.png new file mode 100644 index 0000000..0345300 Binary files /dev/null and b/assets/pages/css/managereport/img/billmanagement-title-des.png differ diff --git a/assets/pages/css/managereport/img/billmanagement-total-1.png b/assets/pages/css/managereport/img/billmanagement-total-1.png new file mode 100644 index 0000000..b013497 Binary files /dev/null and b/assets/pages/css/managereport/img/billmanagement-total-1.png differ diff --git a/assets/pages/css/managereport/img/billmanagement-total.png b/assets/pages/css/managereport/img/billmanagement-total.png new file mode 100644 index 0000000..5c0240a Binary files /dev/null and b/assets/pages/css/managereport/img/billmanagement-total.png differ diff --git a/assets/pages/css/managereport/img/shareParkPorIco.png b/assets/pages/css/managereport/img/shareParkPorIco.png new file mode 100644 index 0000000..a034928 Binary files /dev/null and b/assets/pages/css/managereport/img/shareParkPorIco.png differ diff --git a/assets/pages/css/managereport/img/shareParkworkIco.png b/assets/pages/css/managereport/img/shareParkworkIco.png new file mode 100644 index 0000000..aa17299 Binary files /dev/null and b/assets/pages/css/managereport/img/shareParkworkIco.png differ diff --git a/assets/pages/css/managereport/img/sharesettle-c-bottom.png b/assets/pages/css/managereport/img/sharesettle-c-bottom.png new file mode 100644 index 0000000..314a2a5 Binary files /dev/null and b/assets/pages/css/managereport/img/sharesettle-c-bottom.png differ diff --git a/assets/pages/css/managereport/img/sharesettle-c-top.png b/assets/pages/css/managereport/img/sharesettle-c-top.png new file mode 100644 index 0000000..b73c169 Binary files /dev/null and b/assets/pages/css/managereport/img/sharesettle-c-top.png differ diff --git a/assets/pages/css/managereport/img/sharesettle-l-img.png b/assets/pages/css/managereport/img/sharesettle-l-img.png new file mode 100644 index 0000000..8330280 Binary files /dev/null and b/assets/pages/css/managereport/img/sharesettle-l-img.png differ diff --git a/assets/pages/css/managereport/img/sharesettle-r-bottom.png b/assets/pages/css/managereport/img/sharesettle-r-bottom.png new file mode 100644 index 0000000..b41bdb4 Binary files /dev/null and b/assets/pages/css/managereport/img/sharesettle-r-bottom.png differ diff --git a/assets/pages/css/managereport/img/sharesettle-r-top.png b/assets/pages/css/managereport/img/sharesettle-r-top.png new file mode 100644 index 0000000..5962e03 Binary files /dev/null and b/assets/pages/css/managereport/img/sharesettle-r-top.png differ diff --git a/assets/pages/css/managereport/img/sharespaceCirle.png b/assets/pages/css/managereport/img/sharespaceCirle.png new file mode 100644 index 0000000..e3a0e4b Binary files /dev/null and b/assets/pages/css/managereport/img/sharespaceCirle.png differ diff --git a/assets/pages/css/managereport/img/temporary-arrow-active.png b/assets/pages/css/managereport/img/temporary-arrow-active.png new file mode 100644 index 0000000..d598139 Binary files /dev/null and b/assets/pages/css/managereport/img/temporary-arrow-active.png differ diff --git a/assets/pages/css/managereport/img/temporary-con-main-1.png b/assets/pages/css/managereport/img/temporary-con-main-1.png new file mode 100644 index 0000000..6d5c101 Binary files /dev/null and b/assets/pages/css/managereport/img/temporary-con-main-1.png differ diff --git a/assets/pages/css/managereport/img/temporary-con-main-2.png b/assets/pages/css/managereport/img/temporary-con-main-2.png new file mode 100644 index 0000000..6e3e6cc Binary files /dev/null and b/assets/pages/css/managereport/img/temporary-con-main-2.png differ diff --git a/assets/pages/css/managereport/img/temporary-con-main-3.png b/assets/pages/css/managereport/img/temporary-con-main-3.png new file mode 100644 index 0000000..4418467 Binary files /dev/null and b/assets/pages/css/managereport/img/temporary-con-main-3.png differ diff --git a/assets/pages/css/managereport/invoicemanage.css b/assets/pages/css/managereport/invoicemanage.css new file mode 100644 index 0000000..e9e9103 --- /dev/null +++ b/assets/pages/css/managereport/invoicemanage.css @@ -0,0 +1,89 @@ +/*搜索栏----*/ +.invoice-parking-l { + float: left; + width: 105px; + height: 34px; + line-height: 34px; +} +.invoiceper-parking-l { + float: left; + width: 80px; + height: 34px; + line-height: 34px; +} +.invoice-topbar{ + width: 83px; + height: 34px; + background: rgba(255,255,255,1); + border-radius: 4px !important; + line-height: 34px; + border: 1px solid #d8e2e5; + text-align: center; + float: left; + color: rgba(0,0,0,0.7); + margin-right: 6px; + cursor: pointer; +} +/*弹窗 sta */ +.ITD-form-padleft5-read div.checker,.ITD-form-padleft5-read div.radio { + margin-top: -9px; + margin-left: 0 !important; +} +div.checker,div.radio{ + margin-left: 0 !important; +} +#resetmodel .modal-footer{ + border-top: 0; + text-align: center !important; +} +#write_rule,#writeoper_rule{ + color: #ff0000; +} +.form-group-ul{ + height: 180px; + width: 95%; + overflow-y:auto; +} +.berthAreaList{ + padding-left: 25px; +} +.berthAreaList li{ + float: left; + padding-left: 20px; + width: 110px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + margin: 0px 25px 5px 0; + cursor: pointer; + background: url("../../img/input-checkexActive.png") no-repeat 0 center; +} +.berthAreaList li.checkexActive{ + background: url("../../img/input-checkbox.png") no-repeat 0 center; +} + +.radio-list .radio{ + /*margin-right: 0 !important;*/ + /*margin-left: 0px !important;*/ + /*margin-top: -4px !important;*/ +} +.resetMsg-cont{ + height: 80px; + line-height: 80px; + text-align: center; + font-size: 16px; +} + +/*-----------------------------------搜索*/ + + + + + + +/*-----------------------------------表格*/ +#recordtable tbody tr:not(.no-records-found) td:nth-of-type(1){ + width: 267px; + background: url("../../img/fapiao-icon.png") no-repeat 0 5px; + background-size:100% 99% ; +} diff --git a/assets/pages/css/managereport/reconciliation.css b/assets/pages/css/managereport/reconciliation.css new file mode 100644 index 0000000..dfbc34d --- /dev/null +++ b/assets/pages/css/managereport/reconciliation.css @@ -0,0 +1,175 @@ +.reconciliation-card-list{ + height: 102px; + padding: 20px 0; +} +.variant-reconciliation{ + width: 62px; + height: 62px; + background: url("../../img/variant-reconciliation-icon.png") no-repeat; + top:0; + right:0; +} +.novariant-reconciliation{ + width: 90px; + height: 62px; + line-height: 26px; + font-size: 12px; + text-align: right; + margin-right: 5px; + /*background: url("../../img/novariant-reconciliation-icon.png") no-repeat;*/ + top:0; + right:0; + color: red; +} +.reconciliation-card-list-1{ + border-top: 2px solid #fe944d; +} +.reconciliation-card-list-1 li:nth-of-type(1){ + border-right: 1px solid #fe944d; +} +.reconciliation-card-list-2{ + border-top: 2px solid #5ed8af; +} +.reconciliation-card-list-2 li:nth-of-type(1){ + border-right: 1px solid #5ed8af; +} +.reconciliation-card-list-3{ + border-top: 2px solid #50c0f5; +} + +.reconciliation-card-list-3 li:nth-of-type(1){ + border-right: 1px solid #50c0f5; +} +.reconciliation-card-list-1{ + border-top: 2px solid #fe944d; +} +.reconciliation-card-list-1 li:nth-of-type(1){ + border-right: 1px solid #fe944d; +} +.reconciliation-card-list-4{ + border-top: 2px solid #fed64d; +} +.reconciliation-card-list-4 li:nth-of-type(1){ + border-right: 1px solid #fed64d; +} +.reconciliation-card-detail{ + padding: 15px 0 3px; +} +.reconciliation-card-detail li{ + height: 18px; + line-height: 18px; + margin-bottom: 10px; +} +/*弹窗css*/ +.ITD-alert-tab-wrap{ + padding-top: 7px; +} +.ITD-alertcon-tab-wrap{ + max-height: 500px; + overflow-y: auto; + padding-top: 18px !important; +} +.ITD-alert-tab-wrap li{ + cursor: pointer; + float: left; + height: 60px; + line-height: 60px; + padding: 0 10px; + margin-right: 70px; +} +.ITD-alert-tab-active{ + border-bottom: 3px solid #5fe98f; +} +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; + margin-bottom: 18px; + +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + /* border-radius: 0 4px 4px 0 !important; */ +} +.tab-btn-wrap li:nth-of-type(3) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD; + color: #1E95CD; +} +/*new card*/ +.ITD-cardlist-wrap ul{ + padding-top: 10px !important; +} +.ITD-complex-table thead tr:nth-of-type(2) th{ + border-top: 1px solid #e7ecf1 !important; +} +.card-dzwxmoney-icon{ + display: inline-block; + height: 16px; + width: 16px; + background: url(../../img/card-dzwxmoney-icon.png) no-repeat; + background-size: 100% 100%; + vertical-align: middle; + margin-right: 10px; + margin-top: -3px; +} +.card-dzalipaymoney-icon{ + display: inline-block; + height: 16px; + width: 16px; + background: url(../../img/card-dzalipaymoney-icon.png) no-repeat; + background-size: 100% 100%; + vertical-align: middle; + margin-right: 10px; + margin-top: -3px; +} +.wx-class-wid{ + width: 90%; + color:#08BA07; + background-color: #E0FAEB; + height: 40px; +} +.alipay-class-wid{ + width: 90%; + color:#1E95CD; + background-color: #D5F0FC; + height: 40px; +} +.pt-class-widl{ + width: 70%; + width: calc(100% - 75px); + width:-moz-calc(100% - 75px); + width:-webkit-calc(100% - 75px); + padding-left: 10px; +} +.pt-class-wid{ + width: 90%; + /*color:#08BA07;*/ + /*background-color: #E0FAEB;*/ + height: 40px; +} +.pt-class-widr{ + width: 75px;font-size:12px;margin-top:5px;text-align: right;padding-right: 10px; +} +.rec-wid40{ + height: 40px; + line-height: 40px; +} \ No newline at end of file diff --git a/assets/pages/css/managereport/remainingsum.css b/assets/pages/css/managereport/remainingsum.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/css/managereport/remainingsum.css diff --git a/assets/pages/css/managereport/settlementmanage.css b/assets/pages/css/managereport/settlementmanage.css new file mode 100644 index 0000000..68fdc87 --- /dev/null +++ b/assets/pages/css/managereport/settlementmanage.css @@ -0,0 +1,17 @@ +.settlementmanage-td-first{ + background: #fafafa url(../../img/settlementmanage-icon.png) no-repeat 90% 10px; + margin-left: -24px; + /*margin-bottom: -10px;*/ + padding-left: 24px; + padding-top: -10px; +} +.ITD-complex-table thead tr:nth-of-type(2) th { + border-top: 1px solid #e7ecf1!important; +} +input[name=btSelectAll]{ + margin-left: 24px !important; +} +/* +#settle-popMsgtable .bs-checkbox { + padding-left: 0 !important; +}*/ diff --git a/assets/pages/css/managereport/temporarysettletob.css b/assets/pages/css/managereport/temporarysettletob.css new file mode 100644 index 0000000..e472501 --- /dev/null +++ b/assets/pages/css/managereport/temporarysettletob.css @@ -0,0 +1,3 @@ +.ITD-complex-table thead tr:nth-of-type(2) th { + border-top: 1px solid #e7ecf1!important; +} \ No newline at end of file diff --git a/assets/pages/css/managereport/tollaccountmanage.css b/assets/pages/css/managereport/tollaccountmanage.css new file mode 100644 index 0000000..b4e422f --- /dev/null +++ b/assets/pages/css/managereport/tollaccountmanage.css @@ -0,0 +1,33 @@ +.openUser-contentmsg{ + height: 30px; + line-height: 30px; + text-align: center; + width: 100%; + margin: 24px auto; +} +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD !important; + color: #1E95CD; +} \ No newline at end of file diff --git a/assets/pages/css/managereport/tollaudit.css b/assets/pages/css/managereport/tollaudit.css new file mode 100644 index 0000000..dee2100 --- /dev/null +++ b/assets/pages/css/managereport/tollaudit.css @@ -0,0 +1,175 @@ +.reconciliation-card-list{ + height: 102px; + padding: 20px 0; +} +.variant-reconciliation{ + width: 62px; + height: 62px; + background: url("../../img/variant-reconciliation-icon.png") no-repeat; + top:0; + right:0; +} +.novariant-reconciliation{ + width: 90px; + height: 62px; + line-height: 26px; + font-size: 12px; + text-align: right; + margin-right: 5px; + /*background: url("../../img/novariant-reconciliation-icon.png") no-repeat;*/ + top:0; + right:0; + color: red; +} +.reconciliation-card-list-1{ + border-top: 2px solid #fe944d; +} +.reconciliation-card-list-1 li:nth-of-type(1){ + border-right: 1px solid #fe944d; +} +.reconciliation-card-list-2{ + border-top: 2px solid #5ed8af; +} +.reconciliation-card-list-2 li:nth-of-type(1){ + border-right: 1px solid #5ed8af; +} +.reconciliation-card-list-3{ + border-top: 2px solid #50c0f5; +} + +.reconciliation-card-list-3 li:nth-of-type(1){ + border-right: 1px solid #50c0f5; +} +.reconciliation-card-list-1{ + border-top: 2px solid #fe944d; +} +.reconciliation-card-list-1 li:nth-of-type(1){ + border-right: 1px solid #fe944d; +} +.reconciliation-card-list-4{ + border-top: 2px solid #fed64d; +} +.reconciliation-card-list-4 li:nth-of-type(1){ + border-right: 1px solid #fed64d; +} +.reconciliation-card-detail{ + padding: 15px 0 3px; +} +.reconciliation-card-detail li{ + height: 18px; + line-height: 18px; + margin-bottom: 10px; +} +/*弹窗css*/ +.ITD-alert-tab-wrap{ + padding-top: 7px; +} +.ITD-alertcon-tab-wrap{ + max-height: 500px; + overflow-y: auto; + padding-top: 18px !important; +} +.ITD-alert-tab-wrap li{ + cursor: pointer; + float: left; + height: 60px; + line-height: 60px; + padding: 0 10px; + margin-right: 70px; +} +.ITD-alert-tab-active{ + border-bottom: 3px solid #5fe98f; +} +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; + margin-bottom: 18px; + +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + /* border-radius: 0 4px 4px 0 !important; */ +} +.tab-btn-wrap li:nth-of-type(3) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD; + color: #1E95CD; +} +/*new card*/ +.ITD-cardlist-wrap ul{ + padding-top: 10px !important; +} +.ITD-complex-table thead tr:nth-of-type(2) th{ + border-top: 1px solid #e7ecf1 !important; +} +.card-dzwxmoney-icon{ + display: inline-block; + height: 16px; + width: 16px; + background: url(../../img/card-dzwxmoney-icon.png) no-repeat; + background-size: 100% 100%; + vertical-align: middle; + margin-right: 10px; + margin-top: -3px; +} +.card-dzalipaymoney-icon{ + display: inline-block; + height: 16px; + width: 16px; + background: url(../../img/card-dzalipaymoney-icon.png) no-repeat; + background-size: 100% 100%; + vertical-align: middle; + margin-right: 10px; + margin-top: -3px; +} +.wx-class-wid{ + width: 90%; + color:#08BA07; + background-color: #E0FAEB; + height: 40px; +} +.alipay-class-wid{ + width: 90%; + color:#1E95CD; + background-color: #D5F0FC; + height: 40px; +} +.pt-class-widl{ + width: 70%; + width: calc(100% - 75px); + width:-moz-calc(100% - 75px); + width:-webkit-calc(100% - 75px); + padding-left: 10px; +} +.pt-class-wid{ + width: 90%; + /*color:#08BA07;*/ + /*background-color: #E0FAEB;*/ + height: 40px; +} +.pt-class-widr{ + width: 75px;font-size:12px;margin-top:5px;text-align: right;padding-right: 10px; +} +.rec-wid40{ + height: 40px; + line-height: 40px; +} diff --git a/assets/pages/css/managereport/tollincomeandexp.css b/assets/pages/css/managereport/tollincomeandexp.css new file mode 100644 index 0000000..ac40e46 --- /dev/null +++ b/assets/pages/css/managereport/tollincomeandexp.css @@ -0,0 +1,35 @@ +/*tab 切换*/ +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; + margin-bottom: 18px; + +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + /* border-radius: 0 4px 4px 0 !important; */ +} +.tab-btn-wrap li:nth-of-type(3) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD; + color: #1E95CD; +} \ No newline at end of file diff --git a/assets/pages/css/managereport/vehicleaudit.css b/assets/pages/css/managereport/vehicleaudit.css new file mode 100644 index 0000000..273487b --- /dev/null +++ b/assets/pages/css/managereport/vehicleaudit.css @@ -0,0 +1,162 @@ +.vehicle-input78 { + width: 100%; + height: 34px; + line-height: 34px; +} +.popImg{ + width: 28px; + height: 19px; + background: url("../../img/runIcon.pic"); +} + +/*详情弹窗 sta*/ +.ITD-alertcon{ + max-height: 488px; + /*overflow-y: auto;*/ +} +.toll-basic-ifo-park-wrap li{ + padding-left: 23px; +} +.toll-basic-borderbototm{ + border-bottom: 1px solid #f0f0f0; +} +.toll-basic-ifo-park-height{ + height: 34px; + line-height: 34px; +} + +.toll-basic-ifo-type{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/person-icon.png); + background-repeat: no-repeat; + background-position: 0 0; +} + +.toll-basic-ifo-total{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image:url(../../img/business-icon.png); + background-repeat: no-repeat; + /*background-position: -18px 0;*/ +} +.toll-basic-ifo-entrance{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/type-icon.png); + background-repeat: no-repeat; + /*background-position: -16px 0;*/ +} +.toll-basic-ifo-business{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/telphone-icon.png); + background-repeat: no-repeat; + /*background-position: -32px 0;*/ +} +.toll-basic-ifo-address{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/status-icon.png); + background-repeat: no-repeat; + /*background-position: -48px 0;*/ +} +.toll-basic-ifo-oper{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/opration-icon.png); + background-repeat: no-repeat; + /*background-position: -48px 0;*/ +} +.toll-basic-ifo-park-wrap li span:nth-of-type(2) { + width: 60px; + display: inline-block; + text-align: justify; + text-align-last: justify; +} +/*审核 按钮*/ +.vehpassType{ + display: inline-block; + width:52px; + height:22px; + line-height:22px; + color:rgba(178, 178, 178, 1); + text-align: center; + background:rgba(255,255,255,1); + border:1px solid rgba(178, 178, 178, 1); + border-radius:4px !important; +} +.passTypeActive{ + color: #1E95CD; + border:1px solid #1E95CD; +} +.baseBeizhu{ + margin-left: 36px; + resize:none; + /*border:0;*/ + outline:none; + border-color: rgba(178, 178, 178, 1); +} +/*img */ +.Msg_right{ + width: 312px; + height: 180px; + float: right; +} +.Msg_right img{ + height: 180px; + width: 312px; +} +.openUser-contentmsg{ + height: 30px; + line-height: 30px; + text-align: center; + width: 100%; + margin: 24px auto; +} +.information-ifo{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../img/information-icon.png); + background-repeat: no-repeat; +} +/*POP img*/ +.imgmodel-contentmsg{ + height: 180px; + padding-left: 18px; +} +.imgmodel-contentmsg img{ + width: 312px; + height: 180px; +} +.vehicle-maxheight{ + max-height: 600px;overflow-y: auto +} \ No newline at end of file diff --git a/assets/pages/css/notice/notice.css b/assets/pages/css/notice/notice.css new file mode 100644 index 0000000..f158e9e --- /dev/null +++ b/assets/pages/css/notice/notice.css @@ -0,0 +1,27 @@ +.sbyc_top{ + padding-left: 20px; + border-left: 4px solid #60d2dc; + background-color: #c9f0f3; + height: 64px; +} +.qdyc_bottom{ + margin-top: 18px; + padding-left: 20px; + border-left: 4px solid #faca63; + background-color: #fbf7dc; + height: 64px; +} +.sbyc_top span,.qdyc_bottom span{ + display: block; +} +.sbyc_top span:nth-of-type(1),.qdyc_bottom span:nth-of-type(1){ + font-size: 16px; + color: #333; + height: 38px; + line-height: 50px; +} +.sbyc_top span:nth-of-type(2),.qdyc_bottom span:nth-of-type(2){ + font-size: 12px; + color: #666; + cursor: pointer; +} \ No newline at end of file diff --git a/assets/pages/css/orderManagement/abnormalrecords.css b/assets/pages/css/orderManagement/abnormalrecords.css new file mode 100644 index 0000000..be6b01e --- /dev/null +++ b/assets/pages/css/orderManagement/abnormalrecords.css @@ -0,0 +1,13 @@ + +.abnormal-park-type-1{ + border: 1px solid #5fe98f; + color: #5fe98f; + padding: 2px 10px; + text-align: center; +} +.abnormal-park-type-2{ + border: 1px solid rgba(254,200,77,1); + color: rgba(254,200,77,1); + padding: 2px 10px; + text-align: center; +} \ No newline at end of file diff --git a/assets/pages/css/orderManagement/allparkrecords.css b/assets/pages/css/orderManagement/allparkrecords.css new file mode 100644 index 0000000..e635a28 --- /dev/null +++ b/assets/pages/css/orderManagement/allparkrecords.css @@ -0,0 +1,439 @@ + +.allparkrecords-input78{ + width: 100%; + height: 34px; + line-height: 34px; +} + +.allparkrecords-park-type{ + border: 1px solid #1E95CD; + padding: 2px 10px; + text-align: center; +} + +/* CSS for jQuery Orbit Plugin 1.2.3 + * www.ZURB.com/playground + * Copyright 2010, ZURB + * Free to use under the MIT license. + * http://www.opensource.org/licenses/mit-license.php + + + +/* PUT IN YOUR SLIDER ID AND SIZE TO MAKE LOAD BEAUTIFULLY + ================================================== */ +#featured-in,#featured-out { + width: 600px; + height: 400px; + margin-top:20px; + overflow: hidden; } +#featured-in>img, +#featured-in>div, +#featured-in>a { display: none; width:600px;height: 400px;} + +#featured-out>img, +#featured-out>div, +#featured-out>a { display: none; width:600px;height: 400px;} + + +/* CONTAINER + ================================================== */ + +div.orbit-wrapper { + width: 1px; + height: 1px; + position: relative; } + +div.orbit { + width: 1px; + height: 1px; + position: relative; + overflow: hidden } + +div.orbit>img { + position: absolute; + top: 0; + left: 0; + display: none; } + +div.orbit>a { + border: none; + position: absolute; + top: 0; + left: 0; + line-height: 0; + display: none; } + +.orbit>div { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +/* Note: If your slider only uses content or anchors, you're going to want to put the width and height declarations on the ".orbit>div" and "div.orbit>a" tags in addition to just the .orbit-wrapper */ + + +/* TIMER + ================================================== */ + +div.timer { + width: 40px; + height: 40px; + overflow: hidden; + position: absolute; + top: 10px; + right: 10px; + opacity: .6; + cursor: pointer; + z-index: 1001; } + +/*span.rotator {*/ + /*display: block;*/ + /*width: 40px;*/ + /*height: 40px;*/ + /*position: absolute;*/ + /*top: 0;*/ + /*left: -20px;*/ + /*background: url(../images/rotator-black.png) no-repeat;*/ + /*z-index: 3; }*/ + +span.mask { + display: block; + width: 20px; + height: 40px; + position: absolute; + top: 0; + right: 0; + z-index: 2; + overflow: hidden; } + +span.rotator.move { + left: 0 } + +/*span.mask.move {*/ + /*width: 40px;*/ + /*left: 0;*/ + /*background: url(../images/timer-black.png) repeat 0 0; }*/ + +/*span.pause {*/ + /*display: block;*/ + /*width: 40px;*/ + /*height: 40px;*/ + /*position: absolute;*/ + /*top: 0;*/ + /*left: 0;*/ + /*background: url(../images/pause-black.png) no-repeat;*/ + /*z-index: 4;*/ + /*opacity: 0; }*/ + +/*span.pause.active {*/ + /*background: url(../images/pause-black.png) no-repeat 0 -40px }*/ + +div.timer:hover span.pause, +span.pause.active { + opacity: 1 } + + +/* CAPTIONS + ================================================== */ + +.orbit-caption { + display: none; + font-family: "HelveticaNeue", "Helvetica-Neue", Helvetica, Arial, sans-serif; } + +.orbit-wrapper .orbit-caption { + background: #000; + background: rgba(0,0,0,.6); + z-index: 1000; + color: #fff; + text-align: center; + padding: 7px 0; + font-size: 13px; + position: absolute; + right: 0; + bottom: 0; + width: 100%; } + + +/* DIRECTIONAL NAV + ================================================== */ + +div.slider-nav { + display: block } + +div.slider-nav span { + width: 39px; + height: 50px; + text-indent: -9999px; + position: absolute; + z-index: 1000; + top: 50%; + margin-top: -25px; + cursor: pointer; + background-size: 100% 100%; +} + +div.slider-nav span.right { + background-image: url(../../img/right-arrow.png); + right: 0; } + +div.slider-nav span.left { + background-image: url(../../img/left-arrow.png); + left: 0; } + +/* BULLET NAV + ================================================== */ + +.orbit-bullets { + position: absolute; + z-index: 1000; + list-style: none; + bottom: -40px; + left: 50%; + margin-left: -50px; + padding: 0; } + +.orbit-bullets li { + float: left; + margin-left: 5px; + cursor: pointer; + color: #999; + text-indent: -9999px; + background: url(../images/bullets.jpg) no-repeat 4px 0; + width: 13px; + height: 12px; + overflow: hidden; } + +.orbit-bullets li.active { + color: #222; + background-position: -8px 0; } + +.orbit-bullets li.has-thumb { + background: none; + width: 100px; + height: 75px; } + +.orbit-bullets li.active.has-thumb { + background-position: 0 0; + border-top: 2px solid #000; } + +/*支出明细 弹窗 sta*/ +.handle_left{ + width:228px; + height:92px; + background:rgba(255,255,255,1); + box-shadow:0px 1px 6px 0px rgba(192,199,202,0.5); + border-radius:4px !important; +} +.handle_lbg{ + background: url("../../img/recordspaylico.png") no-repeat; + width: 44px; + height: 44px; + margin-left: 19px; + margin-top: 27px; +} +.handle_ltxt,.handle_rtxt{ + width:25px; + height:50px; + font-size:12px; + margin-top:27px; + margin-left: 10px; + font-family:MicrosoftYaHei; + font-weight:400; + color:rgba(0,0,0,.7); +} +.handle_ltop,.handle_rtop{ + width:25px; + height:13px; + font-size:12px; + margin-bottom: 15px; +} +.handle_lmoney{ + width: 120px; + margin-top: 22px; + margin-left: 8px; + height: 54px; + font-size: 18px; + font-family: MicrosoftYaHei; + font-weight: 400; +} +.handle_lmoneytop,.handle_rmoneytop{ + height: 22px; + margin-bottom: 6px; +} +.handle_right{ + width:329px; + height:92px; + background:rgba(255,255,255,1); + box-shadow:0px 1px 6px 0px rgba(192,199,202,0.5); + border-radius:4px !important; +} +.handle_rbg{ + background: url("../../img/recordspayrico.png") no-repeat; + width: 44px; + height: 44px; + margin-left: 19px; + margin-top: 27px; +} +.handle_rmoney{ + width: 90px; + margin-top: 22px; + margin-left: 8px; + height: 54px; + font-size: 18px; + font-family: MicrosoftYaHei; + font-weight: 400; + color:rgba(0,0,0,.7); +} +/*住处明细 列表 sta*/ +.records_detail{ + max-height: 400px; + overflow-y: auto; + width: 520px; + margin-left: 38px; +} +.detail_cont{ + height: 96px; + width: 100%; +} +/*成功 icon*/ +.detail_trueIco{ + background: url("../../img/recordsPassico.png") no-repeat; + width: 20px; + height: 20px; + margin-top: 30px; +} +/*失败 icon*/ +.detail_falseIco{ + background: url("../../img/recordsdefeatico.png") no-repeat; + width: 20px; + height: 20px; + margin-top: 30px; +} +/*上 线*/ +.detail_linetop{ + bottom: 20px; + left: 9px; + height: 30px; + width: 1px; + border: 1px dashed rgba(203,211,211,0.9); +} +/* 下 线*/ +.detail_line{ + top: 20px; + left: 9px; + height: 45px; + width: 1px; + border: 1px dashed rgba(203,211,211,0.9); +} +.detail_right{ + /*width:464px;*/ + width:100%; + height:80px; + background:rgba(250,250,250,1); + box-shadow:0px 3px 1px 0px rgba(192,199,202,0.48); +} +.detail_righttime{ + width: 110px; + height: 80px; + background: #DDF1F9; + margin-right: 6px; + padding: 24px 16px; + font-size:14px; + font-family:MicrosoftYaHei; + font-weight:400; + color:rgba(0,0,0,0.8); + line-height:20px; + position: relative; +} +.detail_righttime:after{ + content:""; + width:0; + height:0; + position:absolute; + right:-6px; + top:35px; + border-top:solid 6px transparent; + border-left:solid 6px #DDF1F9; /* 白色小三角形 */ + border-bottom:solid 6px transparent; +} +.detail_rightmsg{ + height: 80px; + /*width: 345px;*/ + width: 402px; +} +.detail_rightmsgtop{ + height: 40px; +} +.detail_rightmsgbot{ + height: 38px; + display: flex; +} +.detail_rightmsgtop,.detail_rightmsgbot{ + width: 100%; + padding: 0 25px; +} +/*微信 icon*/ +.msgwx-ico{ + background: url("../../img/recordsWXico.png") no-repeat; + width: 25px; + height: 20px; + margin-top: 9px; + margin-right: 10px; +} +/*支付宝 icon*/ +.msgalipay-ico{ + background: url("../../img/recordsAlipayico.png") no-repeat; + width: 24px; + height: 24px; + margin-top: 7px; + margin-right: 11px; +} +/*现金 icon*/ +.msgxj-ico{ + background: url("../../img/recordsXJico.png") no-repeat; + width: 23px; + height: 16px; + margin-top: 11px; + margin-right: 12px; +} +/*余额 icon*/ +.msgyy-ico{ + background: url("../../img/recordsYYico.png") no-repeat; + height: 22px; + width: 22px; + margin-top: 8px; + margin-right: 13px; +} +.detail_rightmsgtopl,.detail_rightmsgtopr{ + font-size: 14px; + line-height: 40px; + color:rgba(0,0,0,0.8); +} +.detail_rightmsgline{ + /*margin-top: 2px;*/ + height: 1px; + width: 402px; + /*width: 342px;*/ + border:1px dashed rgba(203,211,211,.9); +} +.detail_rightmsgbot div{ + height: 38px; + line-height: 38px; + font-size:12px; + font-family:MicrosoftYaHei; + font-weight:400; + color:rgba(0,0,0,.6); + flex: 1; +} +/*停车费 栏*/ +.records_popMsg{ + height: 80px; + padding-top: 5px; +} +/*无支出明细字段样式*/ +.detail_default{ + height: 60px; + line-height: 60px; + text-align: center; +} \ No newline at end of file diff --git a/assets/pages/css/orderManagement/arrearrecord.css b/assets/pages/css/orderManagement/arrearrecord.css new file mode 100644 index 0000000..f000695 --- /dev/null +++ b/assets/pages/css/orderManagement/arrearrecord.css @@ -0,0 +1,11 @@ +.arrea-parking-l{ + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.arrea-input78{ + width: 78%; + height: 34px; + line-height: 34px; +} \ No newline at end of file diff --git a/assets/pages/css/orderManagement/endorsement.css b/assets/pages/css/orderManagement/endorsement.css new file mode 100644 index 0000000..43ac3e3 --- /dev/null +++ b/assets/pages/css/orderManagement/endorsement.css @@ -0,0 +1,11 @@ +.parking-l{ + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.endorsement-input78{ + width: 78%; + height: 34px; + line-height: 34px; +} \ No newline at end of file diff --git a/assets/pages/css/orderManagement/geomagneticincome.css b/assets/pages/css/orderManagement/geomagneticincome.css new file mode 100644 index 0000000..91163dd --- /dev/null +++ b/assets/pages/css/orderManagement/geomagneticincome.css @@ -0,0 +1,202 @@ +.geomagneticincome-title-left{ + padding: 32px 19px; +} +.geoincome-title-left-wrap{ + height: 37px; +} +.geoincome-title-left-wrap .title-left-div{ + line-height: 37px; +} +.geo-card-money-icon{ + width: 37px; + height: 37px; + background: url("../../img/geo-card-money-icon.png") no-repeat; + background-size: 37px 37px; +} +.geoincome-title-left-unit{ + transform: scale(0.8); + position: relative; + top:4px; +} + + + + + + + + + +.geoincome-title-right{ + padding: 0 19px; + height: 50px; +} +.geoincome-title-right:nth-of-type(1){ + height: 51px; + border-bottom: 1px solid rgba(29,29,29,.1); +} +.geoincome-title-top{ + height: 24px; + line-height: 24px; + margin-top: 13px; +} +.geoincome-title-top-money{ + height: 30px; + margin-top: 10px; + line-height: 30px; + font-size: 30px; +} + + +.geoincome-average{ + margin-top: 10px; + height: 34px; + line-height: 34px; +} +.geoincome-average-left{ + border-right: 1px solid rgba(29,29,29,.1); + line-height: 34px; +} +.average-card-money-icon{ + margin-top: -2px; + vertical-align: middle; +} +.geoincome-title-right-unit{ + transform: scale(0.8); +} +.geomagneticincome-con-wrap{ + height: 295px; + padding: 41px 0; +} +/* style*/ +.index-income-title em { + background-image: url(../../img/index-card-title.png); + background-position: -36px -36px; +} +.index-dev-title em{ + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -18px 0; +} +.geoincome_echarts{ + height: 295px; + width: 100%; +} + + +.geomagneticincome-con-wrap-line1{ + width: 13px; + height: 131px; + margin-top: 30px; + background: url("../../img/geomagneticincome-con-wrap-line1.png") no-repeat; +} + +.geomagneticincome-con-wrap-line2{ + width: 29px; + height: 147px; + margin-top: 30px; + background: url("../../img/geomagneticincome-con-wrap-line2.png") no-repeat; +} +.geo-con-left{ + max-width: 200px; + padding-top: 40px; + padding-right: 20px; + background: url("../../img/geo-con-left.gif") no-repeat center 95px; +} +.geo-con-left-main{ + width: 100%; + height: 70px; + background:rgba(232,244,250,1); + border-radius:35px!important; + text-align: center; + padding-top: 12px; +} +.geo-center-maxwidth{ + max-width: 200px; + margin: 0 auto; +} +.geo-con-center{ + +} +.geo-con-center-wrap{ + width:100%; + height: 66px; + border-radius:35px!important; + overflow: hidden; +} +.operations-icon{ + width: 56px; + background:#3EB9F3 url("../../img/geo-con-center.png") no-repeat 15px center; +} +.trace-icon{ + width: 56px; + background:#3EB9F3 url("../../img/geo-con-center.png") no-repeat -42px center; +} +.operationsicon-right{ + background: #E8F4FA; + padding: 12px 0 0 10px; +} +.trace-icon-right{ + background: #E8F4FA; + padding: 12px 0 0 10px; +} +.geo-con-center-top{ + margin-bottom: 60px; +} +.geo-con-right-wrap{ + width: 100%; + height: 52px; + border-radius:26px!important; + overflow: hidden; +} +.online-icon{ + width: 52px; + background:#5FE98F url("../../img/geo-con-center.png") no-repeat -98px 17px; +} +.onlineicon-right{ + background-color: rgba(95,233,143,.1); + padding: 5px 0 0 10px; +} +.onlineicon-right div:nth-of-type(1){ + color: #5FE98F; +} +.offline-icon{ + width: 52px; + background:#C1C5C2 url("../../img/geo-con-center.png") no-repeat -147px 17px; +} +.offlineicon-right{ + background-color: rgba(193,197,194,.1); + padding: 5px 0 0 10px; +} +.offlineicon-right div:nth-of-type(1){ + color: rgba(0,0,0,.6) +} +.downline-icon{ + width: 52px; + background:#FAD175 url("../../img/geo-con-center.png") no-repeat -195px 14px; +} +.downlineicon-right{ + background-color: rgba(250,209,117,.1); + padding: 5px 0 0 10px; +} +.downlineicon-right div:nth-of-type(1){ + color: rgba(250,209,117,.6) +} +.geo-con-right-2{ + margin: 23px 0; +} +.card-timeing-icon { + display: inline-block; + height: 17px; + width: 17px; + background: url(../../img/income_timeIco.png) no-repeat; + background-size: 100% 100%; + margin-right: 10px; +} +.max-wid120{ + max-width: 80px !important; + display: inline-block; +} +.page-content{ + min-width: 1100px !important; +} \ No newline at end of file diff --git a/assets/pages/css/orderManagement/img/berthNoMatches.png b/assets/pages/css/orderManagement/img/berthNoMatches.png new file mode 100644 index 0000000..6a6d794 Binary files /dev/null and b/assets/pages/css/orderManagement/img/berthNoMatches.png differ diff --git a/assets/pages/css/orderManagement/img/general-li-1.png b/assets/pages/css/orderManagement/img/general-li-1.png new file mode 100644 index 0000000..2ae87a8 Binary files /dev/null and b/assets/pages/css/orderManagement/img/general-li-1.png differ diff --git a/assets/pages/css/orderManagement/img/general-li-2.png b/assets/pages/css/orderManagement/img/general-li-2.png new file mode 100644 index 0000000..0bbaf40 Binary files /dev/null and b/assets/pages/css/orderManagement/img/general-li-2.png differ diff --git a/assets/pages/css/orderManagement/img/general-li-3.png b/assets/pages/css/orderManagement/img/general-li-3.png new file mode 100644 index 0000000..6521fe2 Binary files /dev/null and b/assets/pages/css/orderManagement/img/general-li-3.png differ diff --git a/assets/pages/css/orderManagement/img/general-li-4.png b/assets/pages/css/orderManagement/img/general-li-4.png new file mode 100644 index 0000000..74d64ac Binary files /dev/null and b/assets/pages/css/orderManagement/img/general-li-4.png differ diff --git a/assets/pages/css/orderManagement/img/general-li-5.png b/assets/pages/css/orderManagement/img/general-li-5.png new file mode 100644 index 0000000..84188d8 Binary files /dev/null and b/assets/pages/css/orderManagement/img/general-li-5.png differ diff --git a/assets/pages/css/orderManagement/img/general-sstj-icon.png b/assets/pages/css/orderManagement/img/general-sstj-icon.png new file mode 100755 index 0000000..dcf4f68 Binary files /dev/null and b/assets/pages/css/orderManagement/img/general-sstj-icon.png differ diff --git a/assets/pages/css/orderManagement/img/general-zffs-icon.png b/assets/pages/css/orderManagement/img/general-zffs-icon.png new file mode 100755 index 0000000..f16e2e3 Binary files /dev/null and b/assets/pages/css/orderManagement/img/general-zffs-icon.png differ diff --git a/assets/pages/css/orderManagement/img/updatenoticeBg.png b/assets/pages/css/orderManagement/img/updatenoticeBg.png new file mode 100644 index 0000000..2b9b26b Binary files /dev/null and b/assets/pages/css/orderManagement/img/updatenoticeBg.png differ diff --git a/assets/pages/css/orderManagement/img/weekly_titCarIco.png b/assets/pages/css/orderManagement/img/weekly_titCarIco.png new file mode 100644 index 0000000..df4cf33 Binary files /dev/null and b/assets/pages/css/orderManagement/img/weekly_titCarIco.png differ diff --git a/assets/pages/css/orderManagement/img/weekly_titIco.png b/assets/pages/css/orderManagement/img/weekly_titIco.png new file mode 100644 index 0000000..edefdf3 Binary files /dev/null and b/assets/pages/css/orderManagement/img/weekly_titIco.png differ diff --git a/assets/pages/css/orderManagement/oddchange.css b/assets/pages/css/orderManagement/oddchange.css new file mode 100644 index 0000000..f1fbb56 --- /dev/null +++ b/assets/pages/css/orderManagement/oddchange.css @@ -0,0 +1,43 @@ +.reconciliation-card-detail{ + padding: 15px 0 3px; +} +.reconciliation-card-detail li{ + height: 18px; + line-height: 18px; + margin-bottom: 10px; +} +/*复合表头样式*/ +.ITD-complex-table thead tr:nth-of-type(2) th{ + border-top: 1px solid #e7ecf1!important; +} +.billFixwid{ + max-width: 155px; +} +/*tab 切换*/ +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; + margin-bottom: 18px; +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD; + color: #1E95CD; +} \ No newline at end of file diff --git a/assets/pages/css/orderManagement/parkingarrears.css b/assets/pages/css/orderManagement/parkingarrears.css new file mode 100644 index 0000000..78b6554 --- /dev/null +++ b/assets/pages/css/orderManagement/parkingarrears.css @@ -0,0 +1,619 @@ + + + +.caryard-card-wrap{ + height: 101px; + position: relative; +} +.caryard-card-wrap li:nth-of-type(2) div:nth-of-type(1){ + margin-bottom: 7px; +} + +.caryard-card-wrap-1{ + background: #fff1db; +} +.caryard-card-wrap-2{ + background: #dff9eb; +} +.caryard-card-wrap-3{ + background: #fff9db; +} +.caryard-card-wrap-4{ + background: #dff3f4; +} +.caryard-card-wrap ul{ + position: absolute; + left: 50%; + top:50%; + min-width: 180px; + transform:translate(-50%,-50%); + -webkit-transform:translate(-50%,-50%); + -moz-transform:translate(-50%,-50%); + -ms-transform:translate(-50%,-50%); +} + +.caryard-card-wrap-left-2{ + width: 55px; + height: 55px; + background-image:url("../../img/caryard-card-wrap.png") ; + background-repeat: no-repeat; + background-position:-55px 0 ; + margin-right: 20px; +} + +.caryard-card-wrap-left-4{ + width: 55px; + height: 55px; + background-image:url("../../img/caryard-card-wrap.png") ; + background-repeat: no-repeat; + background-position:-165px 0 ; + margin-right: 20px; +} + + +.caryard-table-berth-status-red{ + font-size: 12px; + color: #fe944d; + border: 1px solid #fe944d; + padding: 1px 10px; + margin-left: 5px; +} +.caryard-table-berth-status-green{ + font-size: 12px; + color: #5fe98f; + border: 1px solid #5fe98f; + padding: 1px 12px; + margin-left: 5px; +} +.caryard-table-berth-status-black{ + font-size: 12px; + color: rgba(0,0,0,.7); + border: 1px solid rgba(0,0,0,.7); + padding: 1px 10px; + margin-left: 5px; +} +.info-alert{ + cursor: pointer; +} + +/*弹窗css*/ +.ITD-alertcon-tab-wrap{ + max-height: 488px; + overflow-y: auto; +} +.ITD-alert-tab-wrap{ + padding-top: 7px; +} +.ITD-alert-tab-wrap li{ + cursor: pointer; + float: left; + height: 60px; + line-height: 60px; + padding: 0 10px; + margin-right: 70px; +} +.ITD-alert-tab-active{ + border-bottom: 3px solid #5fe98f; +} + + +.caryard-basic-ino-name{ + height: 57px; + line-height: 57px; +} +.caryard-basic-borderbototm{ + border-bottom: 1px solid #f0f0f0; +} +.caryard-basic-ifo-park-height{ + height: 34px; + line-height: 34px; +} + +.caryard-basic-ifo-park span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.caryard-basic-ifo-park-wrap li{ + padding-left: 23px; +} +.caryard-basic-ifo-park-wrap li div:nth-of-type(1){ + width: 50%; +} +.caryard-basic-ifo-park-wrap li div span:nth-of-type(2){ + width: 60px; + display: inline-block; + text-align:justify; + text-align-last:justify; +} +.caryard-basic-ifo-type{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.caryard-basic-ifo-device{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -54px 0; +} +.caryard-basic-ifo-total{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image:url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -18px 0; +} +.caryard-basic-ifo-entrance{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -16px 0; +} +.caryard-basic-ifo-business{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -32px 0; +} +.caryard-basic-ifo-address{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -48px 0; +} +.caryard-basic-ifo-address-wrap{ + max-width: 310px; +} +.caryard-basic-ifo-fees{ + height: 37px; + line-height: 37px; +} +.caryard-basic-ifo-fees span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -36px -18px ; +} +.caryard-basic-ifo-fees-wrap li{ + padding-left: 23px; + height:40px ; +} +.caryard-basic-ifo-fees-wrap li div{ + float: left; +} +.caryard-basic-ifo-fees-smallicon{ + width: 51px; + height: 51px; + background-image:url("../../img/caryard-basic-ifo-fees-wrap.png") ; + background-repeat: no-repeat; + background-position: 0 0; + margin-top: 8px; + margin-right: 30px; +} +.caryard-basic-ifo-fees-bigicon{ + width: 51px; + height: 51px; + background-image:url("../../img/caryard-basic-ifo-fees-wrap.png") ; + background-repeat: no-repeat; + background-position: -51px 0; + margin-top: 8px; + margin-right: 30px; +} +.caryard-basic-ifo-fees-type{ + width: 70px; + line-height: 40px; +} +.caryard-basic-ifo-fees-rule{ + width: 320px; + margin-right: 22px; + line-height: 40px; + height: 40px; +} +.caryard-basic-ifo-fees-max{ + line-height: 40px; +} +.caryard-basic-ifo-fees-max{ + width: 250px; +} +.caryard-basic-ifo-photo{ + height: 37px; + line-height: 37px; +} +.caryard-basic-ifo-photo span{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /* margin-top: -3px; */ + background-image: url(../../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -64px 0; +} +.caryard-basic-ifo-photo-wrap{ + height:75px; + padding: 13px 0 0; +} +.caryard-basic-ifo-photo-wrap li{ + float: left; + margin-right: 10px; + width: 98px; + height: 62px; +} +.caryard-basic-ifo-photo-wrap li img{ + width: 100%; + height: 100%; +} +.caryard-berth-ifo-wrap{ + height: 57px; + line-height: 57px; +} +.caryard-berth-ifo-number span:nth-of-type(1){ + margin-right: 60px; +} +.caryard-berth-ifo-number>span:nth-of-type(1):before{ + content: ''; + position: absolute; + left: -20px; + top:3px; + width: 12px; + height: 14px; + background: #5fe98f; +} +.caryard-berth-ifo-number>span:nth-of-type(2):before{ + content: ''; + position: absolute; + left: -20px; + top:3px; + width: 12px; + height: 14px; + background: #f6f5f5; + border: 1px solid #dbdbdb; +} +.caryard-berth-ifo-main{ + height: 421px; + /*overflow-y: auto;*/ +} +.caryard-berth-ifo-main li div{ + width: 70px; + height: 30px; + line-height: 30px; + text-align: center; + font-size: 12px; + color:rgba(0,0,0,.8); + float: left; + margin-right: 5px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.caryard-berth-ifo-main li div:nth-last-of-type{ + margin-right: 0; +} +.caryard-berth-ifo-main li:nth-child(odd){ + margin-bottom: 3px; +} +.caryard-berth-ifo-main li:nth-child(even){ + margin-bottom: 20px; +} +.caryard-berth-ifo-status-green{ + background-color: #5fe98f; +} +.caryard-berth-ifo-status-gray{ + background-color: #f6f5f5; + border: 1px solid #dbdbdb; +} +.caryard-parking-ifo li{ + width: 164px; + margin-right: 6px; + float: left; + height: 67px; + padding: 9px 9px; +} +.caryard-parking-ifo li:nth-of-type(1){ + background-color:#fff1db ; +} +.caryard-parking-ifo li:nth-of-type(1) .caryard-parking-ifo-icon{ + width: 50px; + height: 50px; + margin-right: 9px; + background-image: url("../../img/caryard-parking-ifo.png"); + background-repeat: no-repeat; + background-position: 0 0; +} +.caryard-parking-ifo li:nth-of-type(2){ + background-color:#dff9eb ; +} +.caryard-parking-ifo li:nth-of-type(2) .caryard-parking-ifo-icon{ + width: 50px; + height: 50px; + margin-right: 9px; + background-image: url("../../img/caryard-parking-ifo.png"); + background-repeat: no-repeat; + background-position: -50px 0; +} +.caryard-parking-ifo li:nth-of-type(3){ + background-color:#fff9db ; +} +.caryard-parking-ifo li:nth-of-type(3) .caryard-parking-ifo-icon{ + width: 50px; + height: 50px; + margin-right: 9px; + background-image: url("../../img/caryard-parking-ifo.png"); + background-repeat: no-repeat; + background-position: -100px 0; +} +.caryard-parking-ifo li:nth-of-type(4){ + background-color:#dff3f4 ; +} +.caryard-parking-ifo li:nth-of-type(4) .caryard-parking-ifo-icon{ + width: 50px; + height: 50px; + margin-right: 9px; + background-image: url("../../img/caryard-parking-ifo.png"); + background-repeat: no-repeat; + background-position: -150px 0; +} +.caryard-parking-ifo li:last-of-type{ + margin-right: 0; +} +.caryard-parking-ifo-title{ + margin: 3px 0 5px; +} +.caryard-parking-detail-wrap{ + margin-top: 15px; +} +.caryard-parking-detail-wrap>li{ + height: 180px; + float: left; + margin-right: 5px; +} +.caryard-parking-detail-wrap>li:nth-of-type(1){ + width: 168px; +} +.caryard-parking-detail-wrap>li:nth-of-type(2){ + width: 250px; +} +.caryard-parking-detail-wrap>li:last-of-type{ + width: 240px; + margin-right: 0; +} +.caryard-parking-detail-rate span{ + width: 18px; + height: 18px; + display: inline-block; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -18px -36px; +} +.caryard-parking-detail-business span{ + width: 18px; + height: 18px; + display: inline-block; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -36px -18px; +} +.caryard-parking-detail-monitor span{ + width: 18px; + height: 18px; + display: inline-block; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -54px 0; +} +.caryard-parking-echart{ + height: 145px; + width:100%; +} +.pay-way-ul{ + padding: 0 35px; +} +.pay-way-ul li { + overflow: hidden; + height: 34px; + line-height: 34px; +} +.pay-way-ul li div:nth-of-type(1) { + width: 42px; + margin-right: 5px; +} +.pay-way-wrap { + width: calc(100% - 50px); + height: 10px; + background-color: #edf7fb; + border-radius: 5px!important; + vertical-align: middle; + overflow: hidden; + margin-top: 13px; +} +.pay-way-ul li:nth-of-type(1) .pay-way-scale { + width: 70%; + background-color: #5fe98f; +} +.pay-way-ul li:nth-of-type(2) .pay-way-scale { + width: 60%; + background-color: #5ed8a6; +} +.pay-way-ul li:nth-of-type(3) .pay-way-scale { + width: 50%; + background-color: #5dc2c3; +} +.pay-way-ul li:nth-of-type(4) .pay-way-scale { + width: 40%; + background-color: #5cb2d9; +} +.pay-way-ul li div:nth-of-type(1) { + width: 42px; + margin-right: 5px; +} +.pay-way-scale { + height: 10px; + left: 0; + top: 0; + border-radius: 5px!important; +} +.color-status-abnormal{ + color: #fc4a4a; +} +.caryard-monitor-main{ + + +} +.caryard-monitor-main li{ + height: 34px; + line-height: 34px; + padding-left: 26px; + border-bottom: 1px solid #f0f0f0; +} +.caryard-monitor-main li span:nth-of-type(1){ + width: 100px; + display: inline-block; +} +.caryard-monitor-main li span:nth-of-type(2){ + width: 80px; + display: inline-block; + margin-right: 5px; +} +.caryard-monitor-main li span:nth-of-type(3){ + width: 18px; + height: 18px; + line-height: 18px; + margin-bottom: 29px; + text-align: center; + display: inline-block; + vertical-align: middle; + color: #fc4a4a; + font-size: 12px; + border:1px solid #fc4a4a; + border-radius: 100%!important; +} +.caryard-parking-berth-usage{ + margin-top: 15px; +} +.caryard-parking-berth-usage span{ + width: 18px; + height: 18px; + display: inline-block; + margin-right: 5px; + background: url("../../img/timeusage.png") no-repeat; + vertical-align: middle; +} +.berth-usage-echart{ + height: 110px; + width:100%; + +} + +#wxRate,#aliRate,#cashRate,#otherRate{ + width: 100%; +} + +#recordtable tbody tr{ + cursor: pointer; +} +.carfixwid{ + max-width: 130px; +} +.modal-content{ + color: rgba(0,0,0,1); +} +/*无泊位显示*/ +.pop_nomatch{ + height: 300px; + width: 300px; + margin: 0 auto; + padding-top: 150px; + padding-left: 50px; + background: url(img/berthNoMatches.png) no-repeat; + background-size: 46px 31px; + background-position: 102px 100px; +} +.caryard-basic-ifo-fees-cricle{ + height: 8px; + width: 8px; + background-color: #1E95CD; + border-radius: 50% !important; + margin-top: 16px; + margin-right: 20px; +} + +.tablecont>div{ + float: left; + width: 49%; +} +.tablecont>div:first-of-type{ + margin-right: 2%; +} +.tablecont>div:nth-of-type(2){ + float: right; + width: 49%; +} +.allparkrecords-input78 { + width: 100%; + height: 34px; + line-height: 34px; +} +.geodynamic-ITD-model-contbody { + margin-top: 15px; + padding: 0 !important; +} +.turnover-opentable { + max-height: 400px; + overflow-y: auto; +} +#recordtable thead,#recordtable tbody,#recordtable1 thead,#recordtable1 tbody{ + border-left: 1px solid #e7ecf1; + border-right: 1px solid #e7ecf1; +} \ No newline at end of file diff --git a/assets/pages/css/orderManagement/parkingmanage.css b/assets/pages/css/orderManagement/parkingmanage.css new file mode 100644 index 0000000..ea23966 --- /dev/null +++ b/assets/pages/css/orderManagement/parkingmanage.css @@ -0,0 +1,294 @@ +.parkmanage-input78{ + width: 100%; + height: 34px; + line-height: 34px; +} +/*支出明细 弹窗 sta*/ +/*返回按钮*/ +.returnLastbtn{ + cursor: pointer; + width: 60px; + height: 24px; + text-align: center; + line-height: 22px; + background: rgba(97,181,220,1) !important; + color: #fff !important; + border: 1px solid rgba(97,181,220,1) !important; + border-radius: 4px!important; + box-sizing: border-box; +} +.showMaxwidth{ + width: 590px; + margin: 0 auto; +} +.handle_left{ + width:228px; + height:92px; + background:rgba(255,255,255,1); + box-shadow:0px 1px 6px 0px rgba(192,199,202,0.5); + border-radius:4px !important; +} +.handle_lbg{ + background: url("../../img/recordspaylico.png") no-repeat; + width: 44px; + height: 44px; + margin-left: 19px; + margin-top: 27px; +} +.handle_ltxt,.handle_rtxt{ + width:25px; + height:50px; + font-size:12px; + margin-top:27px; + margin-left: 10px; + font-family:MicrosoftYaHei; + font-weight:400; + color:rgba(0,0,0,.7); +} +.handle_ltop,.handle_rtop{ + width:25px; + height:13px; + font-size:12px; + margin-bottom: 15px; +} +.handle_lmoney{ + width: 120px; + margin-top: 22px; + margin-left: 8px; + height: 54px; + font-size: 18px; + font-family: MicrosoftYaHei; + font-weight: 400; +} +.handle_lmoneytop,.handle_rmoneytop{ + height: 22px; + margin-bottom: 6px; +} +.handle_right{ + width:329px; + height:92px; + background:rgba(255,255,255,1); + box-shadow:0px 1px 6px 0px rgba(192,199,202,0.5); + border-radius:4px !important; +} +.handle_rbg{ + background: url("../../img/recordspayrico.png") no-repeat; + width: 44px; + height: 44px; + margin-left: 19px; + margin-top: 27px; +} +.handle_rmoney{ + width: 90px; + margin-top: 22px; + margin-left: 8px; + height: 54px; + font-size: 18px; + font-family: MicrosoftYaHei; + font-weight: 400; + color:rgba(0,0,0,.7); +} +/*住处明细 列表 sta*/ +.records_detail{ + /*max-height: 400px;*/ + /*overflow-y: auto;*/ + width: 590px; + /*margin-left: 38px;*/ +} +.detail_cont{ + height: 96px; + width: 100%; +} +/*成功 icon*/ +.detail_trueIco{ + background: url("../../img/recordsPassico.png") no-repeat; + width: 20px; + height: 20px; + margin-top: 30px; +} +/*失败 icon*/ +.detail_falseIco{ + background: url("../../img/recordsdefeatico.png") no-repeat; + width: 20px; + height: 20px; + margin-top: 30px; +} +/*上 线*/ +.detail_linetop{ + bottom: 20px; + left: 9px; + height: 30px; + width: 1px; + border: 1px dashed rgba(203,211,211,0.9); +} +/* 下 线*/ +.detail_line{ + top: 20px; + left: 9px; + height: 45px; + width: 1px; + border: 1px dashed rgba(203,211,211,0.9); +} +.detail_right{ + width:590px; + height:80px; + background:rgba(250,250,250,1); + box-shadow:0px 3px 1px 0px rgba(192,199,202,0.48); +} +.detail_righttime{ + width: 110px; + height: 80px; + background: #DDF1F9; + margin-right: 6px; + padding: 24px 16px; + font-size:14px; + font-family:MicrosoftYaHei; + font-weight:400; + color:rgba(0,0,0,0.8); + line-height:20px; + position: relative; +} +.detail_righttime:after{ + content:""; + width:0; + height:0; + position:absolute; + right:-6px; + top:45px; + border-top:solid 6px transparent; + border-left:solid 6px #DDF1F9; /* 白色小三角形 */ + border-bottom:solid 6px transparent; +} +.detail_rightmsg{ + height: 80px; + width: 385px; +} +.detail_rightmsgtop{ + height: 50px; +} +.detail_rightmsgbot{ + height: 29px; + display: flex; +} +.detail_rightmsgtop,.detail_rightmsgbot{ + width: 100%; + padding: 0 15px; +} +/*微信 icon*/ +.msgwx-ico{ + background: url("../../img/recordsWXico.png") no-repeat; + width: 25px; + height: 20px; + margin-top: 17px; + margin-right: 10px; +} +/*支付宝 icon*/ +.msgalipay-ico{ + background: url("../../img/recordsAlipayico.png") no-repeat; + width: 24px; + height: 24px; + margin-top: 13px; + margin-right: 11px; +} +/*现金 icon*/ +.msgxj-ico{ + background: url("../../img/recordsXJico.png") no-repeat; + width: 23px; + height: 16px; + margin-top: 17px; + margin-right: 12px; +} +/*余额 icon*/ +.msgyy-ico{ + background: url("../../img/recordsYYico.png") no-repeat; + height: 22px; + width: 22px; + margin-top: 14px; + margin-right: 13px; +} +.detail_rightmsgtopl,.detail_rightmsgtopr{ + font-size: 14px; + line-height: 50px; + color:rgba(0,0,0,0.8); +} +.detail_rightmsgline{ + /*margin-top: 2px;*/ + height: 1px; + width: 382px; + border:1px dashed rgba(203,211,211,.9); +} +.detail_rightmsgbot div{ + height: 28px; + line-height: 28px; + font-size:12px; + font-family:MicrosoftYaHei; + font-weight:400; + color:rgba(0,0,0,.6); + flex: 1; +} +/*停车费 栏*/ +.records_popMsg{ + height: 80px; + padding-top: 5px; +} +/*无支出明细字段样式*/ +.detail_default{ + height: 60px; + line-height: 60px; + text-align: center; +} +/*右侧*/ +.detail_rightoper{ + width: 88px; + height: 100%; +} +.detail_rightoper div{ + width:50px; + height:24px; + line-height: 24px; + border-radius:4px !important; + margin-left: 19px; + text-align: center; + margin-top: 28px; + cursor: pointer; +} +.detail_reviseBtn{ + color: #fff; + background:rgba(244,28,64,1); +} +.detail_drawBtn{ + color: #fff; + background:rgba(75,170,215,1); +} + +/*input radio style*/ +/*单选复选美化*/ +input[type=checkbox], +input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} +input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +input[type=radio]:hover + label{ + background: url('../../img/input-radio.png') no-repeat 0 center; +} +input[type=radio]:checked + label{ + background : url('../../img/input-radio-active.png') no-repeat 0 center; + +} +input[type=radio]:checked:hover + label{ + background: url('../../img/input-radio-active.png') no-repeat 0 center; + +} \ No newline at end of file diff --git a/assets/pages/css/orderManagement/peccancymanage.css b/assets/pages/css/orderManagement/peccancymanage.css new file mode 100644 index 0000000..ce856b7 --- /dev/null +++ b/assets/pages/css/orderManagement/peccancymanage.css @@ -0,0 +1,83 @@ + +/*单选复选美化*/ +.blue-form-group input[type=checkbox], +.blue-form-group input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.blue-form-group input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.blue-form-group input[type=checkbox]:hover + label{ + background: url('../../../img/input-checkexActive.png') no-repeat 0 center; + +} +.blue-form-group input[type=checkbox]:checked + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.blue-form-group input[type=checkbox]:checked:hover + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.blue-form-group input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +.blue-form-group input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +.blue-form-group input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.blue-form-group input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} + +/*弹窗 add */ +.peccancymanage-daytitImg { + width: 26px; + height: 24px; + top: 5px; + left: 60px; + background: url(../css/img/chargegroup_smallIcon.png) no-repeat; + background-position: -140px -30px; +} +.peccancymanage-nighttitImg { + width: 26px; + height: 24px; + top: 5px; + left: 60px; + background: url(../css/img/chargegroup_smallIcon.png) no-repeat; + background-position: -105px -30px; +} +.peccancymanage-width80{ + width: 80px; +} +.peccancymanage-pad5{ + padding-left: 5px; + padding-right: 5px; +} +.peccancymanage-poptime{ + padding: 0 10px +} diff --git a/assets/pages/css/orderManagement/ymcardorder.css b/assets/pages/css/orderManagement/ymcardorder.css new file mode 100644 index 0000000..248833f --- /dev/null +++ b/assets/pages/css/orderManagement/ymcardorder.css @@ -0,0 +1,129 @@ + +.bootstrap-select.btn-group .dropdown-menu.inner{ + max-height: 200px!important; +} +.car-number{ + border: 1px solid #ccc; + height: 18px; + line-height: 18px; + padding: 0px 8px; + text-align: center; + display: block; + float: left; + margin:-1px 5px 0; +} +.add-plus,.deduct-minus{ + width: 16px; + height: 16px; + line-height: 16px; + color: #fff; + padding-left: 4px; +} +.row-stye-rule{ + width: 111px; + padding-left: 25px; + margin-bottom: 15px; +} +.vip-wid564{ + width: 664px; + margin-left: 9px; + padding: 15px; + background-color: #f5f7f8; +} +.totla-mon{ + margin-top: 15px; + font-size: 16px; + padding-left: 25px; +} +.totla-mon span{ + margin-left: 10px; + margin-right: 10px; + font-size: 20px; + color: #fe516d; +} +.colstyles-div{ + font-size: 13px; + +} +.colstyles-div span{ + margin-left: 5px; +} +.parkNametit{ + padding-left: 25px; + margin-top: -12px; + height: 35px; + line-height: 35px; +} + +.colfix{ + color: #f00; + padding-left: 25px; + margin-top: -20px; +} +.parkMono{ + height: 160px; + display: none; +} +.form-parkMono{ + height: 100px; + overflow-y: scroll; + background: #fff; + padding-left: 20px; + padding-top: 5px; +} + + + +.tishiMsg{ + height: 30px; + line-height: 30px; +} +.form-body-con-padding{ + padding: 15px 15px; +} +.btn.default:not(.btn-outline){ + background-color: #e1e5ec; +} + + +.progressWidth{ + width: 200px; + height: 15px; + border: 1px solid #efefef; + border-radius: 10px!important; + position: relative; + overflow: hidden; + margin-right: 10px; +} +.progressLoad{ + position: absolute; + left: 0; + top:0; + height: 15px; + background-color: #32c5d2; +} +#write_rule,#change_rule{ + color: #ff0000; +} +#progressWrap { + padding-top: 15px; + padding-left: 38px; + padding-bottom: 15px; +} + +.renewMon{ + margin-right: 10px; +} + +.ymorder-parking-l{ + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.ymorder-input78{ + width: 78%; + height: 34px; + line-height: 34px; +} + diff --git a/assets/pages/css/reportStatistics/parkingfee.css b/assets/pages/css/reportStatistics/parkingfee.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/css/reportStatistics/parkingfee.css diff --git a/assets/pages/css/theme/blue.css b/assets/pages/css/theme/blue.css new file mode 100644 index 0000000..f98e8a3 --- /dev/null +++ b/assets/pages/css/theme/blue.css @@ -0,0 +1,802 @@ +/* + ================================ + @作者:andy + @修改者:andy + @模块描述:blue.css样式 + @创建日期:2018/06/06 + @修改日期:2018/07/30 + ================================ +*/ + +/* + ================================ + @Logo样式(logo图、背景、边框) + ================================ +*/ +body { + /*min-width: 1200px;*/ + overflow-x: auto; + background:#1E95CD url("../../img/navbar-logo.png") no-repeat 0 bottom; + font-family:'Microsoft YaHei','SimSun','Arial',"黑体", sans-serif; +} + +/* + ================================ + @最顶端Head样式(产品名称、背景、右侧退出等操作项) + ================================ +*/ +.top-menu>li{ + float: left; + height: 60px; + color: #FFF; +} +.top-menu>li:nth-of-type(1){ + padding-left: 38px; + font-size: 18px; + float: left; +} +.top-menu>li:nth-of-type(2){ + position: relative; + cursor: pointer; + font-size: 14px; + float: right; +} +/*右侧ul 样式*/ +/*第一个 li*/ +.ITD-rightBarUl li{ + position: relative; +} +.ITD-rightBarUl .ITD-msgcenter div{ + height: 18px; + line-height: 18px; + width: 110px; + position: relative; + margin-top: 23px; +} +.ITD-rightBarUl .fullScreen div{ + height: 18px; + line-height: 18px; + width: 96px; + position: relative; + margin-top: 23px; +} +.ITD-rightBarUl>li:nth-of-type(1):after,.ITD-rightBarUl>li:nth-of-type(2):after,.ITD-rightBarUl>li:nth-of-type(3):after,.ITD-rightBarUl>li:nth-of-type(4):after{ + content: ''; + position: absolute; + width: 1px; + height: 18px; + background: rgba(240,240,242,.2); + top:23px; + right: 0; +} +.ITD-rightBarUl .ITD-msgcenter span:first-of-type { + width: 18px; + height: 18px; + float: left; + margin-right: 10px; + background: url(../../img/theme-msgIco.png) no-repeat; + vertical-align: middle; +} +.ITD-msgcenter-num{ + background-color: #f3173b; + color: #fff; + padding: 0 3px; + border-radius: 15px!important; + position: absolute; + top: -12px; + left: 3px; + font-size: 12px; +} +.ITD-rightBarUl .ITD-msgcenter span:nth-of-type(2){ + height: 18px; + line-height: 18px; + float: left; + width: 62px; + text-align: center; +} +.ITD-rightBarUl .fullScreen span:first-of-type { + width: 18px; + height: 18px; + float: left; + background: url(../../img/righttopbarico_Bg.png) no-repeat; + vertical-align: middle; + margin-left: 16px; +} +.ITD-rightBarUl .fullScreen span:nth-of-type(2){ + height: 18px; + line-height: 18px; + float: left; + width: 54px; + text-align: center; +} +/*第3个 li*/ +.ITD-rightBarUl li:nth-of-type(3) div{ + height: 18px; + line-height: 18px; + /*width: 74px;*/ + position: relative; + margin-top: 23px; +} +.ITD-rightBarUl li:nth-of-type(3) span:first-of-type { + width: 18px; + height: 18px; + float: left; + background: url(../../img/righttopbarico_Bg.png) no-repeat; + background-position: -52px 0px; + vertical-align: middle; + margin-left: 16px; +} +.ITD-rightBarUl li:nth-of-type(3) span:nth-of-type(2){ + height: 18px; + line-height: 18px; + float: left; + text-align: center; + padding: 0 16px; +} +/*第4个 li*/ +.ITD-rightBarUl li:nth-of-type(4) div{ + height: 18px; + line-height: 18px; + /*width: 74px;*/ + position: relative; + margin-top: 23px; +} +.ITD-rightBarUl li:nth-of-type(4) span:first-of-type { + width: 18px; + height: 18px; + float: left; + background: url(../../img/righttopbarico_Bg.png) no-repeat; + background-position: -26px 0px; + vertical-align: middle; + margin-left: 16px; +} +.ITD-rightBarUl li:nth-of-type(4) span:nth-of-type(2){ + height: 18px; + line-height: 18px; + float: left; + text-align: center; + padding: 0 16px; +} +/*第二个li 下拉框*/ +.usersettingUl{ + width: 120px; + height: 82px; + padding: 6px; + border-radius: 4px !important; +} +.dropdown-menu:before{ + position:absolute; + border-left:6px solid transparent; + border-right:6px solid transparent; + border-bottom:6px solid #fff; + content:" "; + display:block; + width:0; + height:0; + top: -6px; + left: 52px; +} +/* help style*/ + +.rnt_help div{ + height: 18px; + line-height: 18px; + /*width: 74px;*/ + position: relative; + margin-top: 23px; +} +.rnt_help span:first-of-type { + display: inline-block; + height: 20px; + width: 18px; + background: url(../../img/righttopbarico_Bg.png) no-repeat; + background-position: -77px 0px; + vertical-align: middle; + margin-left: 16px; +} +.rnt_help span:first-of-type .iconfont { + font-size: 16px; + /*padding-right: 2px;*/ +} +.rnt_help span:nth-of-type(2){ + height: 18px; + line-height: 18px; + display: inline-block; + text-align: center; + padding:0 16px; +} +/*第三个li 下拉框*/ + +/* + ================================ + @左侧sidebar样式(菜单操作、ICON、字体、选中、左侧选中竖线) + @菜单[首页、车场概览、车场运营、财务管理、资源管理、统计报表、系统管理] + ================================ +*/ +.ITD-common-menu-first{ + margin-top: 10px; + background: url("../../img/navBar-car.png") 154px 68px no-repeat; +} +.ITD-common-menu-first>li{ + position: relative; +} +.ITD-common-menu-first>li:nth-of-type(2){ + border-bottom: 5px solid #f1f1f3; +} +.ITD-common-menu-first>li>div{ + cursor: pointer; + color: #fff; + font-size: 14px; + height: 56px; + line-height: 56px; + padding-left: 40px; +} +.ITD-common-menu-first>li>div>img{ + opacity: .8; + margin-right: 27px; +} +.ITD-common-menu-first>li.ITD-common-menu-first-active>div{ + background: rgba(255,255,255,.2); + font-weight: 800; +} +.ITD-common-menu-first>li.ITD-common-menu-first-active>div>img{ + opacity: 1; +} +.ITD-common-menu-first>li.ITD-common-menu-first-active:before{ + content: ''; + position: absolute; + width: 4px; + height: 100%; + background-color: #5fe98f; +} +.ITD-common-menu-second{ + background-color: rgba(255,255,255,.1); + margin-top: 2px; +} +.ITD-common-menu-second>li{ + position: relative; +} +.ITD-common-menu-second>li:hover{ + background-color: rgba(255,255,255,.2); +} +.ITD-common-menu-select{ + background-color: rgba(255,255,255,.2); +} +.ITD-common-menu-second>li>div{ + cursor: pointer; + height: 36px; + line-height: 36px; + padding-left: 108px; + font-size: 12px; + color: #fff; +} +.ITD-common-menu-first-bg{ + display: inline-block; + width: 28px!important; + height: 28px; + vertical-align: middle; + margin-right: 26px; +} +.ITD-common-menu-first-bg:before{ + content: ''; +} +/* + ========================= + 左侧菜单目录栏 icon + ========================= + +*/ +/*首页*/ +.icon-index{ + top:0!important; + background-image: url("../../img/first_menu_indexIco.png") ; + background-repeat: no-repeat; +} +/*车场概况*/ +.icon-shield{ + top:0!important; + background-image: url("../../img/first_menu_parkgk.png") ; + background-repeat: no-repeat; +} +/*车场运营*/ +.icon-opermonit{ + top:0!important; + background-image: url("../../img/first_menu_parkyyIco.png") ; + background-repeat: no-repeat; +} +/*统计报表*/ +.icon-tjbb{ + top:0!important; + background-image: url("../../img/first_menu_tjbbIco.png") ; + background-repeat: no-repeat; +} +/*客服管理*/ +.icon-kfgl{ + top:0!important; + background-image: url("../../img/first_menu_kfIco.png") ; + background-repeat: no-repeat; +} +/*违法管理*/ +.icon-wfgl{ + top:0!important; + background-image: url("../../img/first_menu_wfIco.png") ; + background-repeat: no-repeat; +} +/*资源管理*/ +.icon-note{ + top:0!important; + background-image: url("../../img/first_menu_zygl.png") ; + background-repeat: no-repeat; +} +/*共享车位*/ +.icon-target{ + top:0!important; + background-image: url("../../img/first_menu_parkshareIco.png") ; + background-repeat: no-repeat; +} +/*财务管理*/ +.icon-equalizer{ + top:0!important; + background-image: url("../../img/first_menu_cwgl.png") ; + background-repeat: no-repeat; +} +/* 运维管理*/ +.icon-flag { + top:0!important; + background-image: url("../../img/menu-first-bg.png") ; + background-repeat: no-repeat; + background-position: -129px 0; +} +/* 系统管理*/ +.icon-settings { + top:0!important; + background-image: url("../../img/first_menu_settingIco.png") ; + background-repeat: no-repeat; +} +/* 收费员管理*/ +.icon-charge { + top:0!important; + background-image: url("../../img/first_menu_chargeIco.png") ; + background-repeat: no-repeat; +} + +/* + ================================ + @右侧菜单对应内容sidebar样式(按钮、面板...) + ================================ +*/ +.ITD-topbar-wrap a{ + text-decoration: none; + color: #000; +} +.ITD-tab-active{ + background-color: #26be96 !important; + color: #fff !important; + border-color: #26be96 !important; +} +.ITD-topbar-wrap{ + border-bottom: 1px solid #1E95CD; + height: 38px; + background-color: #fff; + padding-left: 50px; +} +.ITD-topbar-wrap>li{ + font-size: 16px; + color: #000; + text-align: center; + float: left; + margin-right: 50px; + height: 36px; + line-height: 36px; + position: relative; + cursor: pointer; +} +.ITD-topbar-wrap>li a{ + height: 36px; + line-height: 36px; + display: inline-block; +} +.ITD-topbar-wrap>li.ITD-topbar-clickactive:after{ + content: ''; + position: absolute; + bottom:-1px; + left:0; + height: 3px; + width: 100%; + background-color: #5fe98f; +} +.ITD-topbar-wrap>li div{ + height: 16px; + line-height: 16px; +} +.ITD-topbar-wrap>li:last-of-type{ + border-right: 0; +} +.ITD-topbar-wrap>li.ITD-topbar-clickactive{ + color: #000; +} +.ITD-topbar-wrap>li.ITD-topbar-clickactive a{ + color: #000; +} +/* + ================================ + 搜索栏部分 按钮样式 公共 + ================================ +*/ +/* + 查询按钮样式 +*/ +.ITD-common-searchbtn{ + width:91px; + height:32px; + line-height: 32px; + background:rgba(254,200,77,1); + border-radius: 4px!important; + color: #fff; + text-align: center; + cursor: pointer; +} +/* + 更多按钮样式 +*/ +.ITD-search-morebtn{ + width:91px; + height:32px; + line-height: 32px; + text-align: center; + background:rgba(255,255,255,1); + border-radius: 4px!important; + border: 1px solid #D9D9D9; + cursor: pointer; +} +/* + 打印按钮样式 +*/ +.ITD-search-printbtn{ + width:64px; + height:32px; + line-height: 32px; + padding-left: 25px; + cursor: pointer; + background: url("../../img/dataprintIco.png") no-repeat 0 center; +} +/*导出Icon*/ +.ITD-export-btn{ + width: 72px; + cursor: pointer; + padding: 3px 10px 3px 35px; + border: 1px solid #b1b1b1; + border-radius: 4px!important; + font-size: 12px; + color: rgba(89,87,87,0.6); + outline:none; + background: url(../../img/ITD-export-btn.png) no-repeat 10px center; +} +/*已读Icon*/ +.ITD-readall-btn{ + width: 120px; + cursor: pointer; + padding: 3px 10px 3px 35px; + border: 1px solid #b1b1b1; + border-radius: 4px!important; + font-size: 12px; + color: rgba(89,87,87,0.6); + outline:none; + background: url(../../img/ITD-readall-btn.png) no-repeat 10px center; +} +.ITD-panelicon-export:before { + background:url(../../img/themes_Icosave.png) no-repeat; + background-position:0 -16px; +} +/*新增Icon*/ +.ITD-panelicon-add:before { + background-image:url(../../img/theme_btn_add.png); +} +/*对比Icon*/ +.ITD-panelicon-pk:before { + background-image:url(../../img/ico_Plus.png); +} +/*删除Icon*/ +.ITD-panelicon-delete:before { + background-image:url(../../img/themes_Icodelete.png); +} +/*导入Icon*/ +.ITD-panelicon-enter:before { + background-image:url(../../img/themes_Icoenter.png); +} +/*修改Icon*/ +.ITD-panelicon-edit:before { + background-image:url(../../img/themes_Icoedit.png); + /*background-position: -24px 0px;*/ +} +/*批量Icon*/ +.ITD-panelicon-addall:before { + background-image:url(../../img/theme_btn_addall.png); +} +/*详情或列表Icon*/ +.ITD-panelicon-detail:before{ + background-position:0 0; + background-image:url(../../img/btnIcon.png); +} +/*一键同步Icon*/ +.ITD-panelicon-sync:before { + background-image:url(../../img/onesyncBtn.png); +} +.ITD-panelbtnsync-icon { + cursor: pointer; + display: inline-block; + font-size: 12px; + /*text-align: center;*/ + /* padding: 5px 12px; */ + border-radius: 4px !important; + width: 90px; + height: 25px; + line-height: 14px !important; + background: rgba(255,255,255,1); + padding: 3px 10px 3px 30px; + border: 1px solid #b1b1b1; + color: rgba(89,87,87,0.6); + outline: none; + background: url(../../img/onesyncBtn.png) no-repeat 10px center; + +} +.ITD-panelbtn-icon-sync >i { + position: relative; + width: 17px; + margin-right: 6px; + text-align: left; +} +.ITD-panelbtn-icon-sync >i:before { + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; + height: 14px; + width: 100%; + position: absolute; + content: ""; + top: -12px; +} + +/* + ================================ + @公共样式类 + ================================ +*/ +/* + 圆角 公共 +*/ +.ITD-border-radius{ + border-radius: 4px!important; + -webkit-border-radius: 4px!important; +} +/* + 阴影 公共 +*/ +.ITD-box-shadow{ + box-shadow: 0px 0px 12px 0px rgba(0,0,0,0.1); + -webkit-box-shadow: 0px 0px 12px 0px rgba(0,0,0,0.1); + -moz-box-shadow: 0px 0px 12px 0px rgba(0,0,0,0.1); +} +/* + ================================ + 颜色 公共 + ================================ +*/ +.ITD-common-color{ + color: #1E95CD; +} +.ITD-common-color2d3033{ + color: #2D3033; +} +.ITD-common-color045{ + color:rgba(0,0,0,0.45); +} +.ITD-common-color040{ + color:rgba(0,0,0,0.4); +} +.ITD-common-color065{ + color:rgba(0,0,0,0.65); +} +.ITD-common-color050{ + color:rgba(0,0,0,0.5); +} +.ITD-common-color060{ + color:rgba(0,0,0,0.6); +} +.ITD-common-color070{ + color:rgba(0,0,0,0.7); +} +.ITD-common-color080{ + color:rgba(0,0,0,0.8); +} +.ITD-common-color090{ + color:rgba(0,0,0,0.9); +} +.ITD-common-color000{ + color:rgb(0,0,0) !important; +} +.ITD-fontbold{ + font-weight: bold; +} +.ITD-color-1e95cd{ + color:#1E95CD; +} +.ITD-color-red{ + color: red; +} +.ITD-color-white{ + color: #fff; +} +.ITD-color-26be96{ + color: #26be96; +} +/* + ================================ + 背景颜色 公共 + ================================ +*/ +.ITD-bgcolor-search{ + background-color: #F7F7F7; +} +.ITD-bgcolor-white{ + background-color: #fff; +} +.ITD-bgcolor-gray{ + background-color: #f5f7f8; +} +.ITD-bgcolor-green{ + background-color: #1E95CD; +} +.ITD-bgcolor-c2cad8{ + background-color: #c2cad8; +} +/* + ================================ + 字体加粗 公共 + ================================ +*/ +.ITD-common-fontweight{ + font-weight: 600; +} +/* + ================================ + 字体大小 公共 + ================================ +*/ +.ITD-common-fontsize12{ + font-size: 12px; +} +.ITD-common-fontsize13{ + font-size: 13px; +} +.ITD-common-fontsize14{ + font-size: 14px; +} +.ITD-common-fontsize16{ + font-size: 16px; +} +.ITD-common-fontsize18{ + font-size: 18px; +} +.ITD-common-fontsize21{ + font-size: 21px; +} +.ITD-common-fontsize24{ + font-size: 24px; +} +.ITD-common-fontsize28{ + font-size: 28px; +} +.ITD-common-fontsize30{ + font-size: 30px; +} +.ITD-common-fontsize32{ + font-size: 32px; +} +.ITD-common-fontsize36{ + font-size: 36px; +} +.ITD-common-fontsize48{ + font-size: 48px; +} +/* + ================================ + 弹窗样式 公共 + ================================ +*/ +/*取消按钮*/ +.ITD-pop-cancel{ + border: 1px solid #c2cad8; + color: #000 !important; +} +/*弹窗位置*/ +.ITD-modal-config,.ITD-modal-dialog{ + position: absolute; + left: 50%; + top:50%; + transform: translate(-50%,-50%)!important; + -webkit-transform: translate(-50%,-50%)!important; + -moz-transform: translate(-50%,-50%)!important; + -ms-transform: translate(-50%,-50%)!important; + -o-transform: translate(-50%,-50%)!important; +} +/* + == bootsrap table样式 公共== +*/ +/* 操作栏按钮背景样式 */ +/*查看*/ +.ITD-oper-green{ + cursor: pointer; + padding:2px 10px; + font-size: 12px; + color: #fff; + background-color: #5fe98f; +} +/*回显*/ +.ITD-oper-show{ + cursor: pointer; + padding:2px 10px; + font-size: 12px; + color: #fff; + background-color: #FE6269; +} +/*修改*/ +.ITD-oper-blue{ + cursor: pointer; + padding:2px 10px; + font-size: 12px; + color: #fff; + background-color: #1E95CD; +} +.ITD-oper-orange{ + cursor: pointer; + padding:2px 10px; + font-size: 12px; + color: #fff; + background-color: #fd714b; +} +.ITD-status-on{ + cursor: pointer; + color: #fff; + font-size: 12px; + padding: 2px 10px; + background-color: #5fe98f; +} +.ITD-status-blue{ + cursor: pointer; + color: #fff; + font-size: 12px; + padding: 2px 10px; + background-color: #1E95CD; +} +.ITD-status-off{ + cursor: pointer; + color: #fff; + font-size: 12px; + padding: 2px 10px; + background-color: #a2a2a2; +} +.ITD-status-abnormal{ + cursor: pointer; + color: #fff; + font-size: 12px; + padding: 2px 10px; + background-color: #FEC807; +} +.ITD-settlementing-status{ + color: #fe944d; + font-size: 12px; + padding: 2px 10px; + border:1px solid #fe944d; +} +.ITD-settlemented-status{ + color: #5fe98f; + font-size: 12px; + padding: 2px 10px; + border:1px solid #5fe98f; +} +.btn-actions{ + top: 0; + right: 0px; +} diff --git a/assets/pages/css/theme/red.css b/assets/pages/css/theme/red.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/css/theme/red.css diff --git a/assets/pages/img/123.jpg b/assets/pages/img/123.jpg new file mode 100644 index 0000000..452fbaf Binary files /dev/null and b/assets/pages/img/123.jpg differ diff --git a/assets/pages/img/ITD-export-btn.png b/assets/pages/img/ITD-export-btn.png new file mode 100644 index 0000000..d9f817f Binary files /dev/null and b/assets/pages/img/ITD-export-btn.png differ diff --git a/assets/pages/img/ITD-export-btnhover.png b/assets/pages/img/ITD-export-btnhover.png new file mode 100644 index 0000000..d5467ca Binary files /dev/null and b/assets/pages/img/ITD-export-btnhover.png differ diff --git a/assets/pages/img/ITD-readall-btn.png b/assets/pages/img/ITD-readall-btn.png new file mode 100644 index 0000000..858e177 Binary files /dev/null and b/assets/pages/img/ITD-readall-btn.png differ diff --git a/assets/pages/img/ITD-readall-btnhover.png b/assets/pages/img/ITD-readall-btnhover.png new file mode 100644 index 0000000..db54bfb Binary files /dev/null and b/assets/pages/img/ITD-readall-btnhover.png differ diff --git a/assets/pages/img/Icon_Save.png b/assets/pages/img/Icon_Save.png new file mode 100755 index 0000000..a967560 Binary files /dev/null and b/assets/pages/img/Icon_Save.png differ diff --git a/assets/pages/img/Lineright-icon.png b/assets/pages/img/Lineright-icon.png new file mode 100644 index 0000000..010e2ae Binary files /dev/null and b/assets/pages/img/Lineright-icon.png differ diff --git a/assets/pages/img/agelonge-icon.png b/assets/pages/img/agelonge-icon.png new file mode 100644 index 0000000..3316e2c Binary files /dev/null and b/assets/pages/img/agelonge-icon.png differ diff --git a/assets/pages/img/alert_close.png b/assets/pages/img/alert_close.png new file mode 100644 index 0000000..15a621c Binary files /dev/null and b/assets/pages/img/alert_close.png differ diff --git a/assets/pages/img/ali_pay.png b/assets/pages/img/ali_pay.png new file mode 100644 index 0000000..f82b283 Binary files /dev/null and b/assets/pages/img/ali_pay.png differ diff --git a/assets/pages/img/all-car-num-index.png b/assets/pages/img/all-car-num-index.png new file mode 100644 index 0000000..2c5716d Binary files /dev/null and b/assets/pages/img/all-car-num-index.png differ diff --git a/assets/pages/img/all_money.png b/assets/pages/img/all_money.png new file mode 100644 index 0000000..ef1c549 Binary files /dev/null and b/assets/pages/img/all_money.png differ diff --git a/assets/pages/img/allparkrecords-in-out.jpg b/assets/pages/img/allparkrecords-in-out.jpg new file mode 100644 index 0000000..52303c3 Binary files /dev/null and b/assets/pages/img/allparkrecords-in-out.jpg differ diff --git a/assets/pages/img/allparkrecords-in-out.png b/assets/pages/img/allparkrecords-in-out.png new file mode 100644 index 0000000..3e5748e Binary files /dev/null and b/assets/pages/img/allparkrecords-in-out.png differ diff --git a/assets/pages/img/allspace_bg.png b/assets/pages/img/allspace_bg.png new file mode 100644 index 0000000..884e25e Binary files /dev/null and b/assets/pages/img/allspace_bg.png differ diff --git a/assets/pages/img/appUser_ico.png b/assets/pages/img/appUser_ico.png new file mode 100644 index 0000000..4306876 Binary files /dev/null and b/assets/pages/img/appUser_ico.png differ diff --git a/assets/pages/img/app_alldownloadIco.png b/assets/pages/img/app_alldownloadIco.png new file mode 100644 index 0000000..5fccbbb Binary files /dev/null and b/assets/pages/img/app_alldownloadIco.png differ diff --git a/assets/pages/img/app_andoirdIco.png b/assets/pages/img/app_andoirdIco.png new file mode 100644 index 0000000..7453234 Binary files /dev/null and b/assets/pages/img/app_andoirdIco.png differ diff --git a/assets/pages/img/app_iosIco.png b/assets/pages/img/app_iosIco.png new file mode 100644 index 0000000..4bf91bf Binary files /dev/null and b/assets/pages/img/app_iosIco.png differ diff --git a/assets/pages/img/apphyd_ico.png b/assets/pages/img/apphyd_ico.png new file mode 100644 index 0000000..a072959 Binary files /dev/null and b/assets/pages/img/apphyd_ico.png differ diff --git a/assets/pages/img/average-icon.png b/assets/pages/img/average-icon.png new file mode 100644 index 0000000..1ffebe5 Binary files /dev/null and b/assets/pages/img/average-icon.png differ diff --git a/assets/pages/img/berthImgBg.jpg b/assets/pages/img/berthImgBg.jpg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/img/berthImgBg.jpg diff --git a/assets/pages/img/bg1.jpg b/assets/pages/img/bg1.jpg new file mode 100755 index 0000000..c4f3154 Binary files /dev/null and b/assets/pages/img/bg1.jpg differ diff --git a/assets/pages/img/bg2.jpg b/assets/pages/img/bg2.jpg new file mode 100755 index 0000000..d37cf5b Binary files /dev/null and b/assets/pages/img/bg2.jpg differ diff --git a/assets/pages/img/bg3.jpg b/assets/pages/img/bg3.jpg new file mode 100755 index 0000000..af6cc6c Binary files /dev/null and b/assets/pages/img/bg3.jpg differ diff --git a/assets/pages/img/body-bg.png b/assets/pages/img/body-bg.png new file mode 100644 index 0000000..45fde9c Binary files /dev/null and b/assets/pages/img/body-bg.png differ diff --git a/assets/pages/img/bookUserICO.png b/assets/pages/img/bookUserICO.png new file mode 100644 index 0000000..431ae5a Binary files /dev/null and b/assets/pages/img/bookUserICO.png differ diff --git a/assets/pages/img/btnIcon.png b/assets/pages/img/btnIcon.png new file mode 100644 index 0000000..e52126a Binary files /dev/null and b/assets/pages/img/btnIcon.png differ diff --git a/assets/pages/img/business-icon.png b/assets/pages/img/business-icon.png new file mode 100644 index 0000000..af45a41 Binary files /dev/null and b/assets/pages/img/business-icon.png differ diff --git a/assets/pages/img/captions.jpg b/assets/pages/img/captions.jpg new file mode 100755 index 0000000..1865d9f Binary files /dev/null and b/assets/pages/img/captions.jpg differ diff --git a/assets/pages/img/card-alimoney-icon.png b/assets/pages/img/card-alimoney-icon.png new file mode 100644 index 0000000..6a61cc5 Binary files /dev/null and b/assets/pages/img/card-alimoney-icon.png differ diff --git a/assets/pages/img/card-baltomoney-icon.png b/assets/pages/img/card-baltomoney-icon.png new file mode 100644 index 0000000..a494fcf Binary files /dev/null and b/assets/pages/img/card-baltomoney-icon.png differ diff --git a/assets/pages/img/card-berth-icon.png b/assets/pages/img/card-berth-icon.png new file mode 100644 index 0000000..70d2b2f Binary files /dev/null and b/assets/pages/img/card-berth-icon.png differ diff --git a/assets/pages/img/card-berth-iconl.png b/assets/pages/img/card-berth-iconl.png new file mode 100644 index 0000000..95a1bbf Binary files /dev/null and b/assets/pages/img/card-berth-iconl.png differ diff --git a/assets/pages/img/card-berttime-icon.png b/assets/pages/img/card-berttime-icon.png new file mode 100644 index 0000000..d1d964d Binary files /dev/null and b/assets/pages/img/card-berttime-icon.png differ diff --git a/assets/pages/img/card-clearing-icon.png b/assets/pages/img/card-clearing-icon.png new file mode 100644 index 0000000..b6f350c Binary files /dev/null and b/assets/pages/img/card-clearing-icon.png differ diff --git a/assets/pages/img/card-discount-icon.png b/assets/pages/img/card-discount-icon.png new file mode 100644 index 0000000..7b72497 Binary files /dev/null and b/assets/pages/img/card-discount-icon.png differ diff --git a/assets/pages/img/card-dzalipaymoney-icon.png b/assets/pages/img/card-dzalipaymoney-icon.png new file mode 100644 index 0000000..a592818 Binary files /dev/null and b/assets/pages/img/card-dzalipaymoney-icon.png differ diff --git a/assets/pages/img/card-dzwxmoney-icon.png b/assets/pages/img/card-dzwxmoney-icon.png new file mode 100644 index 0000000..3903138 Binary files /dev/null and b/assets/pages/img/card-dzwxmoney-icon.png differ diff --git a/assets/pages/img/card-geo-icon.png b/assets/pages/img/card-geo-icon.png new file mode 100644 index 0000000..abab3c3 Binary files /dev/null and b/assets/pages/img/card-geo-icon.png differ diff --git a/assets/pages/img/card-icon.png b/assets/pages/img/card-icon.png new file mode 100644 index 0000000..8b41cf7 Binary files /dev/null and b/assets/pages/img/card-icon.png differ diff --git a/assets/pages/img/card-measure-icon.png b/assets/pages/img/card-measure-icon.png new file mode 100644 index 0000000..5db7476 Binary files /dev/null and b/assets/pages/img/card-measure-icon.png differ diff --git a/assets/pages/img/card-money-icon.png b/assets/pages/img/card-money-icon.png new file mode 100644 index 0000000..09c06c9 Binary files /dev/null and b/assets/pages/img/card-money-icon.png differ diff --git a/assets/pages/img/card-other-icon.png b/assets/pages/img/card-other-icon.png new file mode 100644 index 0000000..85c856a Binary files /dev/null and b/assets/pages/img/card-other-icon.png differ diff --git a/assets/pages/img/card-parking-icon.png b/assets/pages/img/card-parking-icon.png new file mode 100644 index 0000000..d12d530 Binary files /dev/null and b/assets/pages/img/card-parking-icon.png differ diff --git a/assets/pages/img/card-parkingin-icon.png b/assets/pages/img/card-parkingin-icon.png new file mode 100644 index 0000000..b399e0a Binary files /dev/null and b/assets/pages/img/card-parkingin-icon.png differ diff --git a/assets/pages/img/card-parkingout-icon.png b/assets/pages/img/card-parkingout-icon.png new file mode 100644 index 0000000..76ec8ce Binary files /dev/null and b/assets/pages/img/card-parkingout-icon.png differ diff --git a/assets/pages/img/card-parkingtime-icon.png b/assets/pages/img/card-parkingtime-icon.png new file mode 100644 index 0000000..ba8a52b Binary files /dev/null and b/assets/pages/img/card-parkingtime-icon.png differ diff --git a/assets/pages/img/card-parkingzzl-icon.png b/assets/pages/img/card-parkingzzl-icon.png new file mode 100644 index 0000000..345dbaa Binary files /dev/null and b/assets/pages/img/card-parkingzzl-icon.png differ diff --git a/assets/pages/img/card-rate-icon.png b/assets/pages/img/card-rate-icon.png new file mode 100644 index 0000000..ec3e4bf Binary files /dev/null and b/assets/pages/img/card-rate-icon.png differ diff --git a/assets/pages/img/card-received-icon.png b/assets/pages/img/card-received-icon.png new file mode 100644 index 0000000..f87b796 Binary files /dev/null and b/assets/pages/img/card-received-icon.png differ diff --git a/assets/pages/img/card-roadside-icon.png b/assets/pages/img/card-roadside-icon.png new file mode 100644 index 0000000..ed9b4e8 Binary files /dev/null and b/assets/pages/img/card-roadside-icon.png differ diff --git a/assets/pages/img/card-unclearing-icon.png b/assets/pages/img/card-unclearing-icon.png new file mode 100644 index 0000000..78b0c21 Binary files /dev/null and b/assets/pages/img/card-unclearing-icon.png differ diff --git a/assets/pages/img/card-wifi-icon.png b/assets/pages/img/card-wifi-icon.png new file mode 100644 index 0000000..c929af9 Binary files /dev/null and b/assets/pages/img/card-wifi-icon.png differ diff --git a/assets/pages/img/card-wxmoney-icon.png b/assets/pages/img/card-wxmoney-icon.png new file mode 100644 index 0000000..7b4da78 Binary files /dev/null and b/assets/pages/img/card-wxmoney-icon.png differ diff --git a/assets/pages/img/card_close.png b/assets/pages/img/card_close.png new file mode 100644 index 0000000..5f85830 Binary files /dev/null and b/assets/pages/img/card_close.png differ diff --git a/assets/pages/img/card_editor.png b/assets/pages/img/card_editor.png new file mode 100644 index 0000000..8d01e7c Binary files /dev/null and b/assets/pages/img/card_editor.png differ diff --git a/assets/pages/img/cardrule-td-first.png b/assets/pages/img/cardrule-td-first.png new file mode 100644 index 0000000..2992d49 Binary files /dev/null and b/assets/pages/img/cardrule-td-first.png differ diff --git a/assets/pages/img/caret-dowm.png b/assets/pages/img/caret-dowm.png new file mode 100755 index 0000000..2f4dc62 Binary files /dev/null and b/assets/pages/img/caret-dowm.png differ diff --git a/assets/pages/img/carlat_Img.png b/assets/pages/img/carlat_Img.png new file mode 100644 index 0000000..a75bd2f Binary files /dev/null and b/assets/pages/img/carlat_Img.png differ diff --git a/assets/pages/img/carnum-icon.png b/assets/pages/img/carnum-icon.png new file mode 100644 index 0000000..b695228 Binary files /dev/null and b/assets/pages/img/carnum-icon.png differ diff --git a/assets/pages/img/carnumber-icon.png b/assets/pages/img/carnumber-icon.png new file mode 100644 index 0000000..b695228 Binary files /dev/null and b/assets/pages/img/carnumber-icon.png differ diff --git a/assets/pages/img/caryard-basic-ifo-fees-wrap.png b/assets/pages/img/caryard-basic-ifo-fees-wrap.png new file mode 100644 index 0000000..77bda6f Binary files /dev/null and b/assets/pages/img/caryard-basic-ifo-fees-wrap.png differ diff --git a/assets/pages/img/caryard-basic-ifo.png b/assets/pages/img/caryard-basic-ifo.png new file mode 100644 index 0000000..b0eb409 Binary files /dev/null and b/assets/pages/img/caryard-basic-ifo.png differ diff --git a/assets/pages/img/caryard-card-wrap.png b/assets/pages/img/caryard-card-wrap.png new file mode 100644 index 0000000..4482e7d Binary files /dev/null and b/assets/pages/img/caryard-card-wrap.png differ diff --git a/assets/pages/img/caryard-parking-ifo.png b/assets/pages/img/caryard-parking-ifo.png new file mode 100644 index 0000000..59160d5 Binary files /dev/null and b/assets/pages/img/caryard-parking-ifo.png differ diff --git a/assets/pages/img/chargingrule_smallIcon.png b/assets/pages/img/chargingrule_smallIcon.png new file mode 100644 index 0000000..60631d6 Binary files /dev/null and b/assets/pages/img/chargingrule_smallIcon.png differ diff --git a/assets/pages/img/code-icon.png b/assets/pages/img/code-icon.png new file mode 100644 index 0000000..8aed308 Binary files /dev/null and b/assets/pages/img/code-icon.png differ diff --git a/assets/pages/img/collect-icon.png b/assets/pages/img/collect-icon.png new file mode 100644 index 0000000..e624b87 Binary files /dev/null and b/assets/pages/img/collect-icon.png differ diff --git a/assets/pages/img/common_payico.png b/assets/pages/img/common_payico.png new file mode 100755 index 0000000..43f2783 Binary files /dev/null and b/assets/pages/img/common_payico.png differ diff --git a/assets/pages/img/count-parking.png b/assets/pages/img/count-parking.png new file mode 100644 index 0000000..2987f92 Binary files /dev/null and b/assets/pages/img/count-parking.png differ diff --git a/assets/pages/img/dataicon.png b/assets/pages/img/dataicon.png new file mode 100644 index 0000000..ce428ee Binary files /dev/null and b/assets/pages/img/dataicon.png differ diff --git a/assets/pages/img/dataprintIco.png b/assets/pages/img/dataprintIco.png new file mode 100755 index 0000000..0b98826 Binary files /dev/null and b/assets/pages/img/dataprintIco.png differ diff --git a/assets/pages/img/day-icon.png b/assets/pages/img/day-icon.png new file mode 100644 index 0000000..6273cf9 Binary files /dev/null and b/assets/pages/img/day-icon.png differ diff --git a/assets/pages/img/delList-icon.png b/assets/pages/img/delList-icon.png new file mode 100644 index 0000000..a7060a3 Binary files /dev/null and b/assets/pages/img/delList-icon.png differ diff --git a/assets/pages/img/delete_Rule.png b/assets/pages/img/delete_Rule.png new file mode 100644 index 0000000..aa416f0 Binary files /dev/null and b/assets/pages/img/delete_Rule.png differ diff --git a/assets/pages/img/detail_orangeicon.png b/assets/pages/img/detail_orangeicon.png new file mode 100644 index 0000000..b9b7e98 Binary files /dev/null and b/assets/pages/img/detail_orangeicon.png differ diff --git a/assets/pages/img/device-monitor-geo.png b/assets/pages/img/device-monitor-geo.png new file mode 100755 index 0000000..b08112c Binary files /dev/null and b/assets/pages/img/device-monitor-geo.png differ diff --git a/assets/pages/img/device_Img.png b/assets/pages/img/device_Img.png new file mode 100644 index 0000000..ca02b7d Binary files /dev/null and b/assets/pages/img/device_Img.png differ diff --git a/assets/pages/img/dictionary-icon.png b/assets/pages/img/dictionary-icon.png new file mode 100644 index 0000000..8d2b6dc Binary files /dev/null and b/assets/pages/img/dictionary-icon.png differ diff --git a/assets/pages/img/discount-icon.png b/assets/pages/img/discount-icon.png new file mode 100644 index 0000000..a7e2d60 Binary files /dev/null and b/assets/pages/img/discount-icon.png differ diff --git a/assets/pages/img/dot-animation.png b/assets/pages/img/dot-animation.png new file mode 100644 index 0000000..0754255 Binary files /dev/null and b/assets/pages/img/dot-animation.png differ diff --git a/assets/pages/img/earning-basic-in.png b/assets/pages/img/earning-basic-in.png new file mode 100644 index 0000000..90a8daf Binary files /dev/null and b/assets/pages/img/earning-basic-in.png differ diff --git a/assets/pages/img/earning-basic-out.png b/assets/pages/img/earning-basic-out.png new file mode 100644 index 0000000..dc65e20 Binary files /dev/null and b/assets/pages/img/earning-basic-out.png differ diff --git a/assets/pages/img/email-icon.png b/assets/pages/img/email-icon.png new file mode 100644 index 0000000..530519c Binary files /dev/null and b/assets/pages/img/email-icon.png differ diff --git a/assets/pages/img/enclosedpark_icon.png b/assets/pages/img/enclosedpark_icon.png new file mode 100644 index 0000000..f38cceb Binary files /dev/null and b/assets/pages/img/enclosedpark_icon.png differ diff --git a/assets/pages/img/fapiao-icon.png b/assets/pages/img/fapiao-icon.png new file mode 100644 index 0000000..8af2ea7 Binary files /dev/null and b/assets/pages/img/fapiao-icon.png differ diff --git a/assets/pages/img/feature-icon.png b/assets/pages/img/feature-icon.png new file mode 100644 index 0000000..3908841 Binary files /dev/null and b/assets/pages/img/feature-icon.png differ diff --git a/assets/pages/img/first_menu_chargeIco.png b/assets/pages/img/first_menu_chargeIco.png new file mode 100644 index 0000000..c464159 Binary files /dev/null and b/assets/pages/img/first_menu_chargeIco.png differ diff --git a/assets/pages/img/first_menu_cwgl.png b/assets/pages/img/first_menu_cwgl.png new file mode 100644 index 0000000..8640031 Binary files /dev/null and b/assets/pages/img/first_menu_cwgl.png differ diff --git a/assets/pages/img/first_menu_indexIco.png b/assets/pages/img/first_menu_indexIco.png new file mode 100644 index 0000000..661350a Binary files /dev/null and b/assets/pages/img/first_menu_indexIco.png differ diff --git a/assets/pages/img/first_menu_kfIco.png b/assets/pages/img/first_menu_kfIco.png new file mode 100644 index 0000000..26b78b7 Binary files /dev/null and b/assets/pages/img/first_menu_kfIco.png differ diff --git a/assets/pages/img/first_menu_parkgk.png b/assets/pages/img/first_menu_parkgk.png new file mode 100644 index 0000000..6e1d024 Binary files /dev/null and b/assets/pages/img/first_menu_parkgk.png differ diff --git a/assets/pages/img/first_menu_parkshareIco.png b/assets/pages/img/first_menu_parkshareIco.png new file mode 100644 index 0000000..8d63bc5 Binary files /dev/null and b/assets/pages/img/first_menu_parkshareIco.png differ diff --git a/assets/pages/img/first_menu_parkyyIco.png b/assets/pages/img/first_menu_parkyyIco.png new file mode 100644 index 0000000..7c00e23 Binary files /dev/null and b/assets/pages/img/first_menu_parkyyIco.png differ diff --git a/assets/pages/img/first_menu_settingIco.png b/assets/pages/img/first_menu_settingIco.png new file mode 100644 index 0000000..43b03c4 Binary files /dev/null and b/assets/pages/img/first_menu_settingIco.png differ diff --git a/assets/pages/img/first_menu_tjbbIco.png b/assets/pages/img/first_menu_tjbbIco.png new file mode 100644 index 0000000..f582b0e Binary files /dev/null and b/assets/pages/img/first_menu_tjbbIco.png differ diff --git a/assets/pages/img/first_menu_wfIco.png b/assets/pages/img/first_menu_wfIco.png new file mode 100644 index 0000000..3f07622 Binary files /dev/null and b/assets/pages/img/first_menu_wfIco.png differ diff --git a/assets/pages/img/first_menu_zygl.png b/assets/pages/img/first_menu_zygl.png new file mode 100644 index 0000000..4a54380 Binary files /dev/null and b/assets/pages/img/first_menu_zygl.png differ diff --git a/assets/pages/img/formatNoMatches.png b/assets/pages/img/formatNoMatches.png new file mode 100644 index 0000000..6efd454 Binary files /dev/null and b/assets/pages/img/formatNoMatches.png differ diff --git a/assets/pages/img/function-icon.png b/assets/pages/img/function-icon.png new file mode 100644 index 0000000..5b4e1ea Binary files /dev/null and b/assets/pages/img/function-icon.png differ diff --git a/assets/pages/img/generaloperation-dcsbjk-title.png b/assets/pages/img/generaloperation-dcsbjk-title.png new file mode 100755 index 0000000..3eb71b7 Binary files /dev/null and b/assets/pages/img/generaloperation-dcsbjk-title.png differ diff --git a/assets/pages/img/generaloperation-device-monitor-gateway.png b/assets/pages/img/generaloperation-device-monitor-gateway.png new file mode 100755 index 0000000..94852ce Binary files /dev/null and b/assets/pages/img/generaloperation-device-monitor-gateway.png differ diff --git a/assets/pages/img/generaloperation-device-monitor-pda.png b/assets/pages/img/generaloperation-device-monitor-pda.png new file mode 100755 index 0000000..9ff6257 Binary files /dev/null and b/assets/pages/img/generaloperation-device-monitor-pda.png differ diff --git a/assets/pages/img/generaloperation-shzt-title.png b/assets/pages/img/generaloperation-shzt-title.png new file mode 100755 index 0000000..64ffe5b Binary files /dev/null and b/assets/pages/img/generaloperation-shzt-title.png differ diff --git a/assets/pages/img/generaloperation-ssbb-title.png b/assets/pages/img/generaloperation-ssbb-title.png new file mode 100755 index 0000000..3f38dbd Binary files /dev/null and b/assets/pages/img/generaloperation-ssbb-title.png differ diff --git a/assets/pages/img/generaloperation-tjqst-title.png b/assets/pages/img/generaloperation-tjqst-title.png new file mode 100755 index 0000000..07873fc Binary files /dev/null and b/assets/pages/img/generaloperation-tjqst-title.png differ diff --git a/assets/pages/img/geo-card-money-icon.png b/assets/pages/img/geo-card-money-icon.png new file mode 100644 index 0000000..0967e37 Binary files /dev/null and b/assets/pages/img/geo-card-money-icon.png differ diff --git a/assets/pages/img/geo-con-center.png b/assets/pages/img/geo-con-center.png new file mode 100644 index 0000000..e5e4e07 Binary files /dev/null and b/assets/pages/img/geo-con-center.png differ diff --git a/assets/pages/img/geo-con-left.gif b/assets/pages/img/geo-con-left.gif new file mode 100644 index 0000000..71ed374 Binary files /dev/null and b/assets/pages/img/geo-con-left.gif differ diff --git a/assets/pages/img/geomagneticincome-con-wrap-line1.png b/assets/pages/img/geomagneticincome-con-wrap-line1.png new file mode 100644 index 0000000..3602cff Binary files /dev/null and b/assets/pages/img/geomagneticincome-con-wrap-line1.png differ diff --git a/assets/pages/img/geomagneticincome-con-wrap-line2.png b/assets/pages/img/geomagneticincome-con-wrap-line2.png new file mode 100644 index 0000000..498c5bc Binary files /dev/null and b/assets/pages/img/geomagneticincome-con-wrap-line2.png differ diff --git a/assets/pages/img/gerenxinxi.png b/assets/pages/img/gerenxinxi.png new file mode 100644 index 0000000..92fb8e7 Binary files /dev/null and b/assets/pages/img/gerenxinxi.png differ diff --git a/assets/pages/img/handler_bg.png b/assets/pages/img/handler_bg.png new file mode 100644 index 0000000..6aab63e Binary files /dev/null and b/assets/pages/img/handler_bg.png differ diff --git a/assets/pages/img/header-download.png b/assets/pages/img/header-download.png new file mode 100644 index 0000000..af43725 Binary files /dev/null and b/assets/pages/img/header-download.png differ diff --git a/assets/pages/img/header-notice.png b/assets/pages/img/header-notice.png new file mode 100644 index 0000000..9f8a9c4 Binary files /dev/null and b/assets/pages/img/header-notice.png differ diff --git a/assets/pages/img/header-right-icon.png b/assets/pages/img/header-right-icon.png new file mode 100644 index 0000000..1e9dfd0 Binary files /dev/null and b/assets/pages/img/header-right-icon.png differ diff --git a/assets/pages/img/home_park_icon.png b/assets/pages/img/home_park_icon.png new file mode 100644 index 0000000..ef70fa7 Binary files /dev/null and b/assets/pages/img/home_park_icon.png differ diff --git a/assets/pages/img/ico_Plus.png b/assets/pages/img/ico_Plus.png new file mode 100644 index 0000000..aadefa8 Binary files /dev/null and b/assets/pages/img/ico_Plus.png differ diff --git a/assets/pages/img/id-icon.png b/assets/pages/img/id-icon.png new file mode 100644 index 0000000..b78fe6c Binary files /dev/null and b/assets/pages/img/id-icon.png differ diff --git a/assets/pages/img/inComeday_bgIco.png b/assets/pages/img/inComeday_bgIco.png new file mode 100644 index 0000000..46152d5 Binary files /dev/null and b/assets/pages/img/inComeday_bgIco.png differ diff --git a/assets/pages/img/inComenight_bgIco.png b/assets/pages/img/inComenight_bgIco.png new file mode 100644 index 0000000..3065439 Binary files /dev/null and b/assets/pages/img/inComenight_bgIco.png differ diff --git a/assets/pages/img/income_bg.png b/assets/pages/img/income_bg.png new file mode 100644 index 0000000..b72c9c4 Binary files /dev/null and b/assets/pages/img/income_bg.png differ diff --git a/assets/pages/img/income_timeIco.png b/assets/pages/img/income_timeIco.png new file mode 100644 index 0000000..94808ae Binary files /dev/null and b/assets/pages/img/income_timeIco.png differ diff --git a/assets/pages/img/incomecalculation-day.png b/assets/pages/img/incomecalculation-day.png new file mode 100644 index 0000000..46152d5 Binary files /dev/null and b/assets/pages/img/incomecalculation-day.png differ diff --git a/assets/pages/img/incomecalculation-night.png b/assets/pages/img/incomecalculation-night.png new file mode 100644 index 0000000..3065439 Binary files /dev/null and b/assets/pages/img/incomecalculation-night.png differ diff --git a/assets/pages/img/incomepark_bg.png b/assets/pages/img/incomepark_bg.png new file mode 100644 index 0000000..a39c79e Binary files /dev/null and b/assets/pages/img/incomepark_bg.png differ diff --git a/assets/pages/img/incomeprofile-park-title.png b/assets/pages/img/incomeprofile-park-title.png new file mode 100755 index 0000000..296f7a1 Binary files /dev/null and b/assets/pages/img/incomeprofile-park-title.png differ diff --git a/assets/pages/img/incomeprofile-parkincome-title.png b/assets/pages/img/incomeprofile-parkincome-title.png new file mode 100755 index 0000000..751d45f Binary files /dev/null and b/assets/pages/img/incomeprofile-parkincome-title.png differ diff --git a/assets/pages/img/incomeprofile-parkrank-title.png b/assets/pages/img/incomeprofile-parkrank-title.png new file mode 100755 index 0000000..f01d766 Binary files /dev/null and b/assets/pages/img/incomeprofile-parkrank-title.png differ diff --git a/assets/pages/img/index-access-pic.png b/assets/pages/img/index-access-pic.png new file mode 100644 index 0000000..dbee34f Binary files /dev/null and b/assets/pages/img/index-access-pic.png differ diff --git a/assets/pages/img/index-access-pic1.png b/assets/pages/img/index-access-pic1.png new file mode 100644 index 0000000..5bb7e80 Binary files /dev/null and b/assets/pages/img/index-access-pic1.png differ diff --git a/assets/pages/img/index-card-title.png b/assets/pages/img/index-card-title.png new file mode 100644 index 0000000..3547757 Binary files /dev/null and b/assets/pages/img/index-card-title.png differ diff --git a/assets/pages/img/index-link-icon.png b/assets/pages/img/index-link-icon.png new file mode 100644 index 0000000..1676e06 Binary files /dev/null and b/assets/pages/img/index-link-icon.png differ diff --git a/assets/pages/img/index-notice-title.png b/assets/pages/img/index-notice-title.png new file mode 100755 index 0000000..186d21f Binary files /dev/null and b/assets/pages/img/index-notice-title.png differ diff --git a/assets/pages/img/index-park-type-1.png b/assets/pages/img/index-park-type-1.png new file mode 100644 index 0000000..aa8447c Binary files /dev/null and b/assets/pages/img/index-park-type-1.png differ diff --git a/assets/pages/img/index-park-type-2.png b/assets/pages/img/index-park-type-2.png new file mode 100644 index 0000000..eb4a6b6 Binary files /dev/null and b/assets/pages/img/index-park-type-2.png differ diff --git a/assets/pages/img/index_Img.png b/assets/pages/img/index_Img.png new file mode 100644 index 0000000..7db69c6 Binary files /dev/null and b/assets/pages/img/index_Img.png differ diff --git a/assets/pages/img/information-icon.png b/assets/pages/img/information-icon.png new file mode 100644 index 0000000..ca4fafa Binary files /dev/null and b/assets/pages/img/information-icon.png differ diff --git a/assets/pages/img/inoutno_icon.png b/assets/pages/img/inoutno_icon.png new file mode 100644 index 0000000..7fb2645 Binary files /dev/null and b/assets/pages/img/inoutno_icon.png differ diff --git a/assets/pages/img/input-checkbox.png b/assets/pages/img/input-checkbox.png new file mode 100644 index 0000000..27709ab Binary files /dev/null and b/assets/pages/img/input-checkbox.png differ diff --git a/assets/pages/img/input-checkexActive.png b/assets/pages/img/input-checkexActive.png new file mode 100644 index 0000000..2e44210 Binary files /dev/null and b/assets/pages/img/input-checkexActive.png differ diff --git a/assets/pages/img/input-radio-active.png b/assets/pages/img/input-radio-active.png new file mode 100644 index 0000000..e99c8bf Binary files /dev/null and b/assets/pages/img/input-radio-active.png differ diff --git a/assets/pages/img/input-radio.png b/assets/pages/img/input-radio.png new file mode 100644 index 0000000..6f3a16c Binary files /dev/null and b/assets/pages/img/input-radio.png differ diff --git a/assets/pages/img/invisible.png b/assets/pages/img/invisible.png new file mode 100644 index 0000000..e397f50 Binary files /dev/null and b/assets/pages/img/invisible.png differ diff --git a/assets/pages/img/ip-icon.png b/assets/pages/img/ip-icon.png new file mode 100644 index 0000000..5925c28 Binary files /dev/null and b/assets/pages/img/ip-icon.png differ diff --git a/assets/pages/img/kaxinxi.png b/assets/pages/img/kaxinxi.png new file mode 100644 index 0000000..e1dde46 Binary files /dev/null and b/assets/pages/img/kaxinxi.png differ diff --git a/assets/pages/img/kefu_email_icon.png b/assets/pages/img/kefu_email_icon.png new file mode 100644 index 0000000..49b045e Binary files /dev/null and b/assets/pages/img/kefu_email_icon.png differ diff --git a/assets/pages/img/kefu_pho_icon.png b/assets/pages/img/kefu_pho_icon.png new file mode 100644 index 0000000..f3db14d Binary files /dev/null and b/assets/pages/img/kefu_pho_icon.png differ diff --git a/assets/pages/img/kefu_qq_icon.png b/assets/pages/img/kefu_qq_icon.png new file mode 100644 index 0000000..7fb1ba2 Binary files /dev/null and b/assets/pages/img/kefu_qq_icon.png differ diff --git a/assets/pages/img/left-arrow.png b/assets/pages/img/left-arrow.png new file mode 100755 index 0000000..e1984ab Binary files /dev/null and b/assets/pages/img/left-arrow.png differ diff --git a/assets/pages/img/login-logo-icon.png b/assets/pages/img/login-logo-icon.png new file mode 100644 index 0000000..e9f65b0 Binary files /dev/null and b/assets/pages/img/login-logo-icon.png differ diff --git a/assets/pages/img/login-pwd-bg.png b/assets/pages/img/login-pwd-bg.png new file mode 100644 index 0000000..90ae22a Binary files /dev/null and b/assets/pages/img/login-pwd-bg.png differ diff --git a/assets/pages/img/login-user-bg.png b/assets/pages/img/login-user-bg.png new file mode 100644 index 0000000..888e30c Binary files /dev/null and b/assets/pages/img/login-user-bg.png differ diff --git a/assets/pages/img/login_pwsicon.png b/assets/pages/img/login_pwsicon.png new file mode 100755 index 0000000..5507edf Binary files /dev/null and b/assets/pages/img/login_pwsicon.png differ diff --git a/assets/pages/img/login_usericon.png b/assets/pages/img/login_usericon.png new file mode 100755 index 0000000..cf0977b Binary files /dev/null and b/assets/pages/img/login_usericon.png differ diff --git a/assets/pages/img/login_vericon.png b/assets/pages/img/login_vericon.png new file mode 100755 index 0000000..eb129f1 Binary files /dev/null and b/assets/pages/img/login_vericon.png differ diff --git a/assets/pages/img/loginbg-icon.png b/assets/pages/img/loginbg-icon.png new file mode 100644 index 0000000..612d466 Binary files /dev/null and b/assets/pages/img/loginbg-icon.png differ diff --git a/assets/pages/img/manage-icon.png b/assets/pages/img/manage-icon.png new file mode 100644 index 0000000..e963a41 Binary files /dev/null and b/assets/pages/img/manage-icon.png differ diff --git a/assets/pages/img/menu-first-bg.png b/assets/pages/img/menu-first-bg.png new file mode 100644 index 0000000..40da6d3 Binary files /dev/null and b/assets/pages/img/menu-first-bg.png differ diff --git a/assets/pages/img/mmap/its-park1.png b/assets/pages/img/mmap/its-park1.png new file mode 100644 index 0000000..4ee9637 Binary files /dev/null and b/assets/pages/img/mmap/its-park1.png differ diff --git a/assets/pages/img/mmap/its-park2.png b/assets/pages/img/mmap/its-park2.png new file mode 100644 index 0000000..a09f156 Binary files /dev/null and b/assets/pages/img/mmap/its-park2.png differ diff --git a/assets/pages/img/mmap/its-park3.png b/assets/pages/img/mmap/its-park3.png new file mode 100644 index 0000000..bcfe89b Binary files /dev/null and b/assets/pages/img/mmap/its-park3.png differ diff --git a/assets/pages/img/mmap/its-park4.png b/assets/pages/img/mmap/its-park4.png new file mode 100644 index 0000000..b0b8e7c Binary files /dev/null and b/assets/pages/img/mmap/its-park4.png differ diff --git a/assets/pages/img/mmap/its-park5.png b/assets/pages/img/mmap/its-park5.png new file mode 100644 index 0000000..36049f9 Binary files /dev/null and b/assets/pages/img/mmap/its-park5.png differ diff --git a/assets/pages/img/mmap/parkicon_culter.png b/assets/pages/img/mmap/parkicon_culter.png new file mode 100644 index 0000000..eed10fc Binary files /dev/null and b/assets/pages/img/mmap/parkicon_culter.png differ diff --git a/assets/pages/img/mobile-icon.png b/assets/pages/img/mobile-icon.png new file mode 100644 index 0000000..5e49fa3 Binary files /dev/null and b/assets/pages/img/mobile-icon.png differ diff --git a/assets/pages/img/mold-icon.png b/assets/pages/img/mold-icon.png new file mode 100644 index 0000000..514d6f4 Binary files /dev/null and b/assets/pages/img/mold-icon.png differ diff --git a/assets/pages/img/money-icon.png b/assets/pages/img/money-icon.png new file mode 100644 index 0000000..5c75fdd Binary files /dev/null and b/assets/pages/img/money-icon.png differ diff --git a/assets/pages/img/moneydifference-icon.png b/assets/pages/img/moneydifference-icon.png new file mode 100644 index 0000000..d236fe6 Binary files /dev/null and b/assets/pages/img/moneydifference-icon.png differ diff --git a/assets/pages/img/moneydifferencenum-icon.png b/assets/pages/img/moneydifferencenum-icon.png new file mode 100644 index 0000000..1c099ad Binary files /dev/null and b/assets/pages/img/moneydifferencenum-icon.png differ diff --git a/assets/pages/img/monitor-icon.png b/assets/pages/img/monitor-icon.png new file mode 100644 index 0000000..4620144 Binary files /dev/null and b/assets/pages/img/monitor-icon.png differ diff --git a/assets/pages/img/nav-left-bar-1.png b/assets/pages/img/nav-left-bar-1.png new file mode 100644 index 0000000..e2227d3 Binary files /dev/null and b/assets/pages/img/nav-left-bar-1.png differ diff --git a/assets/pages/img/nav-left-bar-2.png b/assets/pages/img/nav-left-bar-2.png new file mode 100644 index 0000000..cd1dbc2 Binary files /dev/null and b/assets/pages/img/nav-left-bar-2.png differ diff --git a/assets/pages/img/nav-left-bar-3.png b/assets/pages/img/nav-left-bar-3.png new file mode 100644 index 0000000..e7b524b Binary files /dev/null and b/assets/pages/img/nav-left-bar-3.png differ diff --git a/assets/pages/img/nav-left-bar-4.png b/assets/pages/img/nav-left-bar-4.png new file mode 100644 index 0000000..bf77d95 Binary files /dev/null and b/assets/pages/img/nav-left-bar-4.png differ diff --git a/assets/pages/img/nav-left-bar-5.png b/assets/pages/img/nav-left-bar-5.png new file mode 100644 index 0000000..6edece6 Binary files /dev/null and b/assets/pages/img/nav-left-bar-5.png differ diff --git a/assets/pages/img/nav-left-bar-6.png b/assets/pages/img/nav-left-bar-6.png new file mode 100644 index 0000000..0051efb Binary files /dev/null and b/assets/pages/img/nav-left-bar-6.png differ diff --git a/assets/pages/img/nav-left-bar-7.png b/assets/pages/img/nav-left-bar-7.png new file mode 100644 index 0000000..0ebc2ed Binary files /dev/null and b/assets/pages/img/nav-left-bar-7.png differ diff --git a/assets/pages/img/nav-left-bar-8.png b/assets/pages/img/nav-left-bar-8.png new file mode 100644 index 0000000..7951444 Binary files /dev/null and b/assets/pages/img/nav-left-bar-8.png differ diff --git a/assets/pages/img/navBar-car.png b/assets/pages/img/navBar-car.png new file mode 100755 index 0000000..504bda4 Binary files /dev/null and b/assets/pages/img/navBar-car.png differ diff --git a/assets/pages/img/navbar-logo.png b/assets/pages/img/navbar-logo.png new file mode 100755 index 0000000..7bda77b Binary files /dev/null and b/assets/pages/img/navbar-logo.png differ diff --git a/assets/pages/img/night-icon.png b/assets/pages/img/night-icon.png new file mode 100644 index 0000000..d21885d Binary files /dev/null and b/assets/pages/img/night-icon.png differ diff --git a/assets/pages/img/night_bg.png b/assets/pages/img/night_bg.png new file mode 100644 index 0000000..66a9b1e Binary files /dev/null and b/assets/pages/img/night_bg.png differ diff --git a/assets/pages/img/noimage.png b/assets/pages/img/noimage.png new file mode 100644 index 0000000..d800fff Binary files /dev/null and b/assets/pages/img/noimage.png differ diff --git a/assets/pages/img/novariant-reconciliation-icon.png b/assets/pages/img/novariant-reconciliation-icon.png new file mode 100644 index 0000000..df28132 Binary files /dev/null and b/assets/pages/img/novariant-reconciliation-icon.png differ diff --git a/assets/pages/img/num_add.png b/assets/pages/img/num_add.png new file mode 100644 index 0000000..96f9b7f Binary files /dev/null and b/assets/pages/img/num_add.png differ diff --git a/assets/pages/img/num_minus.png b/assets/pages/img/num_minus.png new file mode 100644 index 0000000..8a2f3e1 Binary files /dev/null and b/assets/pages/img/num_minus.png differ diff --git a/assets/pages/img/occupy-car-num-index.png b/assets/pages/img/occupy-car-num-index.png new file mode 100644 index 0000000..c35b607 Binary files /dev/null and b/assets/pages/img/occupy-car-num-index.png differ diff --git a/assets/pages/img/occupy_Img.png b/assets/pages/img/occupy_Img.png new file mode 100644 index 0000000..30ad16f Binary files /dev/null and b/assets/pages/img/occupy_Img.png differ diff --git a/assets/pages/img/off_tab.png b/assets/pages/img/off_tab.png new file mode 100644 index 0000000..f65e4b6 Binary files /dev/null and b/assets/pages/img/off_tab.png differ diff --git a/assets/pages/img/office-icon.png b/assets/pages/img/office-icon.png new file mode 100644 index 0000000..9219a6e Binary files /dev/null and b/assets/pages/img/office-icon.png differ diff --git a/assets/pages/img/onesyncBtn.png b/assets/pages/img/onesyncBtn.png new file mode 100644 index 0000000..e349b0a Binary files /dev/null and b/assets/pages/img/onesyncBtn.png differ diff --git a/assets/pages/img/open_tab.png b/assets/pages/img/open_tab.png new file mode 100644 index 0000000..2363106 Binary files /dev/null and b/assets/pages/img/open_tab.png differ diff --git a/assets/pages/img/opration-icon.png b/assets/pages/img/opration-icon.png new file mode 100644 index 0000000..1648bbc Binary files /dev/null and b/assets/pages/img/opration-icon.png differ diff --git a/assets/pages/img/other_img.png b/assets/pages/img/other_img.png new file mode 100644 index 0000000..fe18365 Binary files /dev/null and b/assets/pages/img/other_img.png differ diff --git a/assets/pages/img/overflow.jpg b/assets/pages/img/overflow.jpg new file mode 100755 index 0000000..f7b64fd Binary files /dev/null and b/assets/pages/img/overflow.jpg differ diff --git a/assets/pages/img/park-card-title-1.png b/assets/pages/img/park-card-title-1.png new file mode 100755 index 0000000..5e4a321 Binary files /dev/null and b/assets/pages/img/park-card-title-1.png differ diff --git a/assets/pages/img/park-card-title-2.png b/assets/pages/img/park-card-title-2.png new file mode 100755 index 0000000..88c8011 Binary files /dev/null and b/assets/pages/img/park-card-title-2.png differ diff --git a/assets/pages/img/park-card-title-3.png b/assets/pages/img/park-card-title-3.png new file mode 100755 index 0000000..fef0145 Binary files /dev/null and b/assets/pages/img/park-card-title-3.png differ diff --git a/assets/pages/img/park-card-title-4.png b/assets/pages/img/park-card-title-4.png new file mode 100755 index 0000000..98e3d14 Binary files /dev/null and b/assets/pages/img/park-card-title-4.png differ diff --git a/assets/pages/img/park-num-icon.png b/assets/pages/img/park-num-icon.png new file mode 100644 index 0000000..7492ef2 Binary files /dev/null and b/assets/pages/img/park-num-icon.png differ diff --git a/assets/pages/img/parkicon.png b/assets/pages/img/parkicon.png new file mode 100644 index 0000000..7a320c2 Binary files /dev/null and b/assets/pages/img/parkicon.png differ diff --git a/assets/pages/img/parkicon_1.png b/assets/pages/img/parkicon_1.png new file mode 100644 index 0000000..6663033 Binary files /dev/null and b/assets/pages/img/parkicon_1.png differ diff --git a/assets/pages/img/parkicon_2.png b/assets/pages/img/parkicon_2.png new file mode 100644 index 0000000..7d70139 Binary files /dev/null and b/assets/pages/img/parkicon_2.png differ diff --git a/assets/pages/img/parkicon_3.png b/assets/pages/img/parkicon_3.png new file mode 100644 index 0000000..e107d70 Binary files /dev/null and b/assets/pages/img/parkicon_3.png differ diff --git a/assets/pages/img/parking-icon.png b/assets/pages/img/parking-icon.png new file mode 100644 index 0000000..ff1931a Binary files /dev/null and b/assets/pages/img/parking-icon.png differ diff --git a/assets/pages/img/parkingin-icon.png b/assets/pages/img/parkingin-icon.png new file mode 100644 index 0000000..f518f60 Binary files /dev/null and b/assets/pages/img/parkingin-icon.png differ diff --git a/assets/pages/img/parkingout-icon.png b/assets/pages/img/parkingout-icon.png new file mode 100644 index 0000000..07b3384 Binary files /dev/null and b/assets/pages/img/parkingout-icon.png differ diff --git a/assets/pages/img/parksingledetail-1-icon.png b/assets/pages/img/parksingledetail-1-icon.png new file mode 100644 index 0000000..9ebb280 Binary files /dev/null and b/assets/pages/img/parksingledetail-1-icon.png differ diff --git a/assets/pages/img/parksingledetail-2-icon.png b/assets/pages/img/parksingledetail-2-icon.png new file mode 100644 index 0000000..939b84d Binary files /dev/null and b/assets/pages/img/parksingledetail-2-icon.png differ diff --git a/assets/pages/img/parksingledetail-3-icon.png b/assets/pages/img/parksingledetail-3-icon.png new file mode 100644 index 0000000..b06adee Binary files /dev/null and b/assets/pages/img/parksingledetail-3-icon.png differ diff --git a/assets/pages/img/pay-acount-icon.png b/assets/pages/img/pay-acount-icon.png new file mode 100644 index 0000000..9369d09 Binary files /dev/null and b/assets/pages/img/pay-acount-icon.png differ diff --git a/assets/pages/img/pay-money-icon.png b/assets/pages/img/pay-money-icon.png new file mode 100644 index 0000000..347cd3f Binary files /dev/null and b/assets/pages/img/pay-money-icon.png differ diff --git a/assets/pages/img/pay-num-icon.png b/assets/pages/img/pay-num-icon.png new file mode 100644 index 0000000..f692963 Binary files /dev/null and b/assets/pages/img/pay-num-icon.png differ diff --git a/assets/pages/img/pay_wrap_l1.png b/assets/pages/img/pay_wrap_l1.png new file mode 100644 index 0000000..43256dd Binary files /dev/null and b/assets/pages/img/pay_wrap_l1.png differ diff --git a/assets/pages/img/pay_wrap_l2.png b/assets/pages/img/pay_wrap_l2.png new file mode 100644 index 0000000..1b764dc Binary files /dev/null and b/assets/pages/img/pay_wrap_l2.png differ diff --git a/assets/pages/img/pay_wrap_l3.png b/assets/pages/img/pay_wrap_l3.png new file mode 100644 index 0000000..b6c75d0 Binary files /dev/null and b/assets/pages/img/pay_wrap_l3.png differ diff --git a/assets/pages/img/pay_wrap_l4.png b/assets/pages/img/pay_wrap_l4.png new file mode 100644 index 0000000..f5ed14b Binary files /dev/null and b/assets/pages/img/pay_wrap_l4.png differ diff --git a/assets/pages/img/pda-icon.png b/assets/pages/img/pda-icon.png new file mode 100644 index 0000000..faec718 Binary files /dev/null and b/assets/pages/img/pda-icon.png differ diff --git a/assets/pages/img/per-pross-cion.png b/assets/pages/img/per-pross-cion.png new file mode 100644 index 0000000..3a2e5a2 Binary files /dev/null and b/assets/pages/img/per-pross-cion.png differ diff --git a/assets/pages/img/per_Img.png b/assets/pages/img/per_Img.png new file mode 100644 index 0000000..031e780 Binary files /dev/null and b/assets/pages/img/per_Img.png differ diff --git a/assets/pages/img/permsg_Plus.png b/assets/pages/img/permsg_Plus.png new file mode 100644 index 0000000..9f975e1 Binary files /dev/null and b/assets/pages/img/permsg_Plus.png differ diff --git a/assets/pages/img/person-icon.png b/assets/pages/img/person-icon.png new file mode 100644 index 0000000..dafddf5 Binary files /dev/null and b/assets/pages/img/person-icon.png differ diff --git a/assets/pages/img/person_park.png b/assets/pages/img/person_park.png new file mode 100644 index 0000000..54ff4e0 Binary files /dev/null and b/assets/pages/img/person_park.png differ diff --git a/assets/pages/img/phone-icon.png b/assets/pages/img/phone-icon.png new file mode 100644 index 0000000..5e49fa3 Binary files /dev/null and b/assets/pages/img/phone-icon.png differ diff --git a/assets/pages/img/poly_icon.png b/assets/pages/img/poly_icon.png new file mode 100644 index 0000000..a6e7bb4 Binary files /dev/null and b/assets/pages/img/poly_icon.png differ diff --git a/assets/pages/img/popScreenBtn.png b/assets/pages/img/popScreenBtn.png new file mode 100644 index 0000000..afbd3fa Binary files /dev/null and b/assets/pages/img/popScreenBtn.png differ diff --git a/assets/pages/img/portlet-collapse-icon.png b/assets/pages/img/portlet-collapse-icon.png new file mode 100644 index 0000000..a95d126 Binary files /dev/null and b/assets/pages/img/portlet-collapse-icon.png differ diff --git a/assets/pages/img/portlet-expand-icon.png b/assets/pages/img/portlet-expand-icon.png new file mode 100644 index 0000000..2a50108 Binary files /dev/null and b/assets/pages/img/portlet-expand-icon.png differ diff --git a/assets/pages/img/question-money-icon.png b/assets/pages/img/question-money-icon.png new file mode 100644 index 0000000..a12ae10 Binary files /dev/null and b/assets/pages/img/question-money-icon.png differ diff --git a/assets/pages/img/ranking-icon.png b/assets/pages/img/ranking-icon.png new file mode 100644 index 0000000..1ffdb7c Binary files /dev/null and b/assets/pages/img/ranking-icon.png differ diff --git a/assets/pages/img/recordsAlipayico.png b/assets/pages/img/recordsAlipayico.png new file mode 100755 index 0000000..d80da1b Binary files /dev/null and b/assets/pages/img/recordsAlipayico.png differ diff --git a/assets/pages/img/recordsPassico.png b/assets/pages/img/recordsPassico.png new file mode 100755 index 0000000..0786972 Binary files /dev/null and b/assets/pages/img/recordsPassico.png differ diff --git a/assets/pages/img/recordsWXico.png b/assets/pages/img/recordsWXico.png new file mode 100755 index 0000000..4cc8046 Binary files /dev/null and b/assets/pages/img/recordsWXico.png differ diff --git a/assets/pages/img/recordsXJico.png b/assets/pages/img/recordsXJico.png new file mode 100755 index 0000000..3c87481 Binary files /dev/null and b/assets/pages/img/recordsXJico.png differ diff --git a/assets/pages/img/recordsYYico.png b/assets/pages/img/recordsYYico.png new file mode 100755 index 0000000..d358ced Binary files /dev/null and b/assets/pages/img/recordsYYico.png differ diff --git a/assets/pages/img/recordsdefeatico.png b/assets/pages/img/recordsdefeatico.png new file mode 100755 index 0000000..4cfb89b Binary files /dev/null and b/assets/pages/img/recordsdefeatico.png differ diff --git a/assets/pages/img/recordspayRico.png b/assets/pages/img/recordspayRico.png new file mode 100644 index 0000000..0887e1a Binary files /dev/null and b/assets/pages/img/recordspayRico.png differ diff --git a/assets/pages/img/recordspaylico.png b/assets/pages/img/recordspaylico.png new file mode 100755 index 0000000..e971187 Binary files /dev/null and b/assets/pages/img/recordspaylico.png differ diff --git a/assets/pages/img/reload_orange.png b/assets/pages/img/reload_orange.png new file mode 100644 index 0000000..9546c42 Binary files /dev/null and b/assets/pages/img/reload_orange.png differ diff --git a/assets/pages/img/remarks-icon.png b/assets/pages/img/remarks-icon.png new file mode 100644 index 0000000..64a55cb Binary files /dev/null and b/assets/pages/img/remarks-icon.png differ diff --git a/assets/pages/img/remnum_park.png b/assets/pages/img/remnum_park.png new file mode 100644 index 0000000..07b5210 Binary files /dev/null and b/assets/pages/img/remnum_park.png differ diff --git a/assets/pages/img/result_bgico.png b/assets/pages/img/result_bgico.png new file mode 100644 index 0000000..4c9830d Binary files /dev/null and b/assets/pages/img/result_bgico.png differ diff --git a/assets/pages/img/right-arrow.png b/assets/pages/img/right-arrow.png new file mode 100755 index 0000000..5d8ec6d Binary files /dev/null and b/assets/pages/img/right-arrow.png differ diff --git a/assets/pages/img/righttopbarico_Bg.png b/assets/pages/img/righttopbarico_Bg.png new file mode 100644 index 0000000..3e0a39e Binary files /dev/null and b/assets/pages/img/righttopbarico_Bg.png differ diff --git a/assets/pages/img/roadsidepark_icon.png b/assets/pages/img/roadsidepark_icon.png new file mode 100644 index 0000000..db9b701 Binary files /dev/null and b/assets/pages/img/roadsidepark_icon.png differ diff --git a/assets/pages/img/runIcon.pic b/assets/pages/img/runIcon.pic new file mode 100644 index 0000000..189d615 Binary files /dev/null and b/assets/pages/img/runIcon.pic differ diff --git a/assets/pages/img/screenPopnoImg.png b/assets/pages/img/screenPopnoImg.png new file mode 100644 index 0000000..fa8a71e Binary files /dev/null and b/assets/pages/img/screenPopnoImg.png differ diff --git a/assets/pages/img/search_orange.png b/assets/pages/img/search_orange.png new file mode 100644 index 0000000..f86c282 Binary files /dev/null and b/assets/pages/img/search_orange.png differ diff --git a/assets/pages/img/settlementmanage-icon.png b/assets/pages/img/settlementmanage-icon.png new file mode 100644 index 0000000..bf78b49 Binary files /dev/null and b/assets/pages/img/settlementmanage-icon.png differ diff --git a/assets/pages/img/sex-icon.png b/assets/pages/img/sex-icon.png new file mode 100644 index 0000000..dbf3139 Binary files /dev/null and b/assets/pages/img/sex-icon.png differ diff --git a/assets/pages/img/sharequery-icon.png b/assets/pages/img/sharequery-icon.png new file mode 100755 index 0000000..408aecd Binary files /dev/null and b/assets/pages/img/sharequery-icon.png differ diff --git a/assets/pages/img/sign-icon.png b/assets/pages/img/sign-icon.png new file mode 100644 index 0000000..65d1ddd Binary files /dev/null and b/assets/pages/img/sign-icon.png differ diff --git a/assets/pages/img/space_bg.png b/assets/pages/img/space_bg.png new file mode 100644 index 0000000..7e1cab3 Binary files /dev/null and b/assets/pages/img/space_bg.png differ diff --git a/assets/pages/img/space_eough.png b/assets/pages/img/space_eough.png new file mode 100644 index 0000000..43b6ffb Binary files /dev/null and b/assets/pages/img/space_eough.png differ diff --git a/assets/pages/img/space_few.png b/assets/pages/img/space_few.png new file mode 100644 index 0000000..a06be0b Binary files /dev/null and b/assets/pages/img/space_few.png differ diff --git a/assets/pages/img/space_full.png b/assets/pages/img/space_full.png new file mode 100644 index 0000000..6c9b7ef Binary files /dev/null and b/assets/pages/img/space_full.png differ diff --git a/assets/pages/img/srcy-blue-icon.png b/assets/pages/img/srcy-blue-icon.png new file mode 100644 index 0000000..d8371ac Binary files /dev/null and b/assets/pages/img/srcy-blue-icon.png differ diff --git a/assets/pages/img/srcy-green-icon.png b/assets/pages/img/srcy-green-icon.png new file mode 100644 index 0000000..2f6eef3 Binary files /dev/null and b/assets/pages/img/srcy-green-icon.png differ diff --git a/assets/pages/img/srcy-orange-icon.png b/assets/pages/img/srcy-orange-icon.png new file mode 100644 index 0000000..407ce68 Binary files /dev/null and b/assets/pages/img/srcy-orange-icon.png differ diff --git a/assets/pages/img/srcy-yellow-icon.png b/assets/pages/img/srcy-yellow-icon.png new file mode 100644 index 0000000..1f59592 Binary files /dev/null and b/assets/pages/img/srcy-yellow-icon.png differ diff --git a/assets/pages/img/state-icon.png b/assets/pages/img/state-icon.png new file mode 100644 index 0000000..2b61bea Binary files /dev/null and b/assets/pages/img/state-icon.png differ diff --git a/assets/pages/img/status-icon.png b/assets/pages/img/status-icon.png new file mode 100644 index 0000000..1b2c3d9 Binary files /dev/null and b/assets/pages/img/status-icon.png differ diff --git a/assets/pages/img/success-icon.png b/assets/pages/img/success-icon.png new file mode 100644 index 0000000..8e576da Binary files /dev/null and b/assets/pages/img/success-icon.png differ diff --git a/assets/pages/img/successup-icon.png b/assets/pages/img/successup-icon.png new file mode 100644 index 0000000..4eb8b8d Binary files /dev/null and b/assets/pages/img/successup-icon.png differ diff --git a/assets/pages/img/symbol.png b/assets/pages/img/symbol.png new file mode 100644 index 0000000..ee6b29e Binary files /dev/null and b/assets/pages/img/symbol.png differ diff --git a/assets/pages/img/system-icon.png b/assets/pages/img/system-icon.png new file mode 100644 index 0000000..0bae317 Binary files /dev/null and b/assets/pages/img/system-icon.png differ diff --git a/assets/pages/img/tabletopIco.png b/assets/pages/img/tabletopIco.png new file mode 100755 index 0000000..5461d32 Binary files /dev/null and b/assets/pages/img/tabletopIco.png differ diff --git a/assets/pages/img/tcjsgz_icon.png b/assets/pages/img/tcjsgz_icon.png new file mode 100644 index 0000000..a002413 Binary files /dev/null and b/assets/pages/img/tcjsgz_icon.png differ diff --git a/assets/pages/img/telphone-icon.png b/assets/pages/img/telphone-icon.png new file mode 100644 index 0000000..5e49fa3 Binary files /dev/null and b/assets/pages/img/telphone-icon.png differ diff --git a/assets/pages/img/theme-msgIco.png b/assets/pages/img/theme-msgIco.png new file mode 100644 index 0000000..de67acc Binary files /dev/null and b/assets/pages/img/theme-msgIco.png differ diff --git a/assets/pages/img/theme_btn_add.png b/assets/pages/img/theme_btn_add.png new file mode 100644 index 0000000..4c5eade Binary files /dev/null and b/assets/pages/img/theme_btn_add.png differ diff --git a/assets/pages/img/theme_btn_addall.png b/assets/pages/img/theme_btn_addall.png new file mode 100644 index 0000000..deddded Binary files /dev/null and b/assets/pages/img/theme_btn_addall.png differ diff --git a/assets/pages/img/theme_btn_addhover.png b/assets/pages/img/theme_btn_addhover.png new file mode 100644 index 0000000..580b88a Binary files /dev/null and b/assets/pages/img/theme_btn_addhover.png differ diff --git a/assets/pages/img/themes_Icobtn.png b/assets/pages/img/themes_Icobtn.png new file mode 100644 index 0000000..7786645 Binary files /dev/null and b/assets/pages/img/themes_Icobtn.png differ diff --git a/assets/pages/img/themes_Icodelete.png b/assets/pages/img/themes_Icodelete.png new file mode 100644 index 0000000..c3fb7cf Binary files /dev/null and b/assets/pages/img/themes_Icodelete.png differ diff --git a/assets/pages/img/themes_Icodeletehover.png b/assets/pages/img/themes_Icodeletehover.png new file mode 100644 index 0000000..9bd980b Binary files /dev/null and b/assets/pages/img/themes_Icodeletehover.png differ diff --git a/assets/pages/img/themes_Icoedit.png b/assets/pages/img/themes_Icoedit.png new file mode 100644 index 0000000..5738ded Binary files /dev/null and b/assets/pages/img/themes_Icoedit.png differ diff --git a/assets/pages/img/themes_Icoedithover.png b/assets/pages/img/themes_Icoedithover.png new file mode 100644 index 0000000..ef8041c Binary files /dev/null and b/assets/pages/img/themes_Icoedithover.png differ diff --git a/assets/pages/img/themes_Icoenter.png b/assets/pages/img/themes_Icoenter.png new file mode 100644 index 0000000..46059dd Binary files /dev/null and b/assets/pages/img/themes_Icoenter.png differ diff --git a/assets/pages/img/themes_Icoenterhover.png b/assets/pages/img/themes_Icoenterhover.png new file mode 100644 index 0000000..0a8c206 Binary files /dev/null and b/assets/pages/img/themes_Icoenterhover.png differ diff --git a/assets/pages/img/themes_Icosave.png b/assets/pages/img/themes_Icosave.png new file mode 100644 index 0000000..e52126a Binary files /dev/null and b/assets/pages/img/themes_Icosave.png differ diff --git a/assets/pages/img/themes_Icosavehover.png b/assets/pages/img/themes_Icosavehover.png new file mode 100644 index 0000000..9d6a860 Binary files /dev/null and b/assets/pages/img/themes_Icosavehover.png differ diff --git a/assets/pages/img/three-navbar.png b/assets/pages/img/three-navbar.png new file mode 100644 index 0000000..f5035d3 Binary files /dev/null and b/assets/pages/img/three-navbar.png differ diff --git a/assets/pages/img/time-icon.png b/assets/pages/img/time-icon.png new file mode 100644 index 0000000..74423fd Binary files /dev/null and b/assets/pages/img/time-icon.png differ diff --git a/assets/pages/img/timeusage.png b/assets/pages/img/timeusage.png new file mode 100644 index 0000000..31c8e22 Binary files /dev/null and b/assets/pages/img/timeusage.png differ diff --git a/assets/pages/img/tk-blue-icon.png b/assets/pages/img/tk-blue-icon.png new file mode 100644 index 0000000..adb3c31 Binary files /dev/null and b/assets/pages/img/tk-blue-icon.png differ diff --git a/assets/pages/img/tk-green-icon.png b/assets/pages/img/tk-green-icon.png new file mode 100644 index 0000000..fd8db62 Binary files /dev/null and b/assets/pages/img/tk-green-icon.png differ diff --git a/assets/pages/img/tk-orange-icon.png b/assets/pages/img/tk-orange-icon.png new file mode 100644 index 0000000..97493d2 Binary files /dev/null and b/assets/pages/img/tk-orange-icon.png differ diff --git a/assets/pages/img/tk-yellow-icon.png b/assets/pages/img/tk-yellow-icon.png new file mode 100644 index 0000000..5adae64 Binary files /dev/null and b/assets/pages/img/tk-yellow-icon.png differ diff --git a/assets/pages/img/tkcy-blue-icon.png b/assets/pages/img/tkcy-blue-icon.png new file mode 100644 index 0000000..d4ed855 Binary files /dev/null and b/assets/pages/img/tkcy-blue-icon.png differ diff --git a/assets/pages/img/tkcy-green-icon.png b/assets/pages/img/tkcy-green-icon.png new file mode 100644 index 0000000..75e0810 Binary files /dev/null and b/assets/pages/img/tkcy-green-icon.png differ diff --git a/assets/pages/img/tkcy-orange-icon.png b/assets/pages/img/tkcy-orange-icon.png new file mode 100644 index 0000000..f87f0da Binary files /dev/null and b/assets/pages/img/tkcy-orange-icon.png differ diff --git a/assets/pages/img/tkcy-yellow-icon.png b/assets/pages/img/tkcy-yellow-icon.png new file mode 100644 index 0000000..d7fbc35 Binary files /dev/null and b/assets/pages/img/tkcy-yellow-icon.png differ diff --git a/assets/pages/img/tkmoneynum-icon.png b/assets/pages/img/tkmoneynum-icon.png new file mode 100644 index 0000000..6a5858a Binary files /dev/null and b/assets/pages/img/tkmoneynum-icon.png differ diff --git a/assets/pages/img/todayUser_ico.png b/assets/pages/img/todayUser_ico.png new file mode 100644 index 0000000..94b71ba Binary files /dev/null and b/assets/pages/img/todayUser_ico.png differ diff --git a/assets/pages/img/todaytotal_img.png b/assets/pages/img/todaytotal_img.png new file mode 100644 index 0000000..8f0e431 Binary files /dev/null and b/assets/pages/img/todaytotal_img.png differ diff --git a/assets/pages/img/toll-cloud-icon.png b/assets/pages/img/toll-cloud-icon.png new file mode 100644 index 0000000..24b2447 Binary files /dev/null and b/assets/pages/img/toll-cloud-icon.png differ diff --git a/assets/pages/img/toll-persongroup-icon.png b/assets/pages/img/toll-persongroup-icon.png new file mode 100644 index 0000000..1b0a957 Binary files /dev/null and b/assets/pages/img/toll-persongroup-icon.png differ diff --git a/assets/pages/img/top_carnumImg.png b/assets/pages/img/top_carnumImg.png new file mode 100644 index 0000000..90cf44e Binary files /dev/null and b/assets/pages/img/top_carnumImg.png differ diff --git a/assets/pages/img/topbarico_Bg.png b/assets/pages/img/topbarico_Bg.png new file mode 100644 index 0000000..c1d64ba Binary files /dev/null and b/assets/pages/img/topbarico_Bg.png differ diff --git a/assets/pages/img/total-icon.png b/assets/pages/img/total-icon.png new file mode 100644 index 0000000..68dae93 Binary files /dev/null and b/assets/pages/img/total-icon.png differ diff --git a/assets/pages/img/totalmanage_Img.png b/assets/pages/img/totalmanage_Img.png new file mode 100644 index 0000000..36b9b82 Binary files /dev/null and b/assets/pages/img/totalmanage_Img.png differ diff --git a/assets/pages/img/traffic-data-in.png b/assets/pages/img/traffic-data-in.png new file mode 100644 index 0000000..d794a10 Binary files /dev/null and b/assets/pages/img/traffic-data-in.png differ diff --git a/assets/pages/img/traffic-data-out.png b/assets/pages/img/traffic-data-out.png new file mode 100644 index 0000000..4726c7a Binary files /dev/null and b/assets/pages/img/traffic-data-out.png differ diff --git a/assets/pages/img/truelist-blue.png b/assets/pages/img/truelist-blue.png new file mode 100644 index 0000000..49ed84b Binary files /dev/null and b/assets/pages/img/truelist-blue.png differ diff --git a/assets/pages/img/truelist-green.png b/assets/pages/img/truelist-green.png new file mode 100644 index 0000000..13a160e Binary files /dev/null and b/assets/pages/img/truelist-green.png differ diff --git a/assets/pages/img/truelist-orange.png b/assets/pages/img/truelist-orange.png new file mode 100644 index 0000000..01d41f5 Binary files /dev/null and b/assets/pages/img/truelist-orange.png differ diff --git a/assets/pages/img/type-icon.png b/assets/pages/img/type-icon.png new file mode 100644 index 0000000..963c3f1 Binary files /dev/null and b/assets/pages/img/type-icon.png differ diff --git a/assets/pages/img/user-pic.png b/assets/pages/img/user-pic.png new file mode 100644 index 0000000..6b51604 Binary files /dev/null and b/assets/pages/img/user-pic.png differ diff --git a/assets/pages/img/variant-reconciliation-icon.png b/assets/pages/img/variant-reconciliation-icon.png new file mode 100644 index 0000000..5d75261 Binary files /dev/null and b/assets/pages/img/variant-reconciliation-icon.png differ diff --git a/assets/pages/img/vipcardrule-add.png b/assets/pages/img/vipcardrule-add.png new file mode 100644 index 0000000..eadef85 Binary files /dev/null and b/assets/pages/img/vipcardrule-add.png differ diff --git a/assets/pages/img/visible.png b/assets/pages/img/visible.png new file mode 100644 index 0000000..4c4a9a5 Binary files /dev/null and b/assets/pages/img/visible.png differ diff --git a/assets/pages/img/weixin-icon.png b/assets/pages/img/weixin-icon.png new file mode 100644 index 0000000..99f5c35 Binary files /dev/null and b/assets/pages/img/weixin-icon.png differ diff --git a/assets/pages/img/whitedat_bg.png b/assets/pages/img/whitedat_bg.png new file mode 100644 index 0000000..546992a Binary files /dev/null and b/assets/pages/img/whitedat_bg.png differ diff --git a/assets/pages/img/wx_money.png b/assets/pages/img/wx_money.png new file mode 100644 index 0000000..7c573b1 Binary files /dev/null and b/assets/pages/img/wx_money.png differ diff --git a/assets/pages/img/xianjin-icon.png b/assets/pages/img/xianjin-icon.png new file mode 100644 index 0000000..45f8aa8 Binary files /dev/null and b/assets/pages/img/xianjin-icon.png differ diff --git a/assets/pages/img/xj_img.png b/assets/pages/img/xj_img.png new file mode 100644 index 0000000..09f6776 Binary files /dev/null and b/assets/pages/img/xj_img.png differ diff --git a/assets/pages/img/zhifubao-icon.png b/assets/pages/img/zhifubao-icon.png new file mode 100644 index 0000000..e4f527b Binary files /dev/null and b/assets/pages/img/zhifubao-icon.png differ diff --git a/assets/pages/img/zte-its-logo.png b/assets/pages/img/zte-its-logo.png new file mode 100644 index 0000000..a453463 Binary files /dev/null and b/assets/pages/img/zte-its-logo.png differ diff --git a/assets/pages/img/zte-its_logo.png b/assets/pages/img/zte-its_logo.png new file mode 100644 index 0000000..c806337 Binary files /dev/null and b/assets/pages/img/zte-its_logo.png differ diff --git a/assets/pages/img/zteits-BGiconcom.png b/assets/pages/img/zteits-BGiconcom.png new file mode 100644 index 0000000..f60c1e4 Binary files /dev/null and b/assets/pages/img/zteits-BGiconcom.png differ diff --git a/assets/pages/img/zteits_toALLico.png b/assets/pages/img/zteits_toALLico.png new file mode 100644 index 0000000..1b4cc39 Binary files /dev/null and b/assets/pages/img/zteits_toALLico.png differ diff --git a/assets/pages/img/zyl-icon.png b/assets/pages/img/zyl-icon.png new file mode 100644 index 0000000..78e818c Binary files /dev/null and b/assets/pages/img/zyl-icon.png differ diff --git a/assets/pages/img/zzl-icon.png b/assets/pages/img/zzl-icon.png new file mode 100644 index 0000000..1d7f155 Binary files /dev/null and b/assets/pages/img/zzl-icon.png differ diff --git a/assets/pages/scripts/MarkerClusterer.js b/assets/pages/scripts/MarkerClusterer.js new file mode 100644 index 0000000..9b25eb8 --- /dev/null +++ b/assets/pages/scripts/MarkerClusterer.js @@ -0,0 +1,350 @@ +/** + * Created by chenbiao on 2017/10/11. + */ +var BMapLib = window.BMapLib = BMapLib || {}; (function() { + var getExtendedBounds = function(map, bounds, gridSize) { + bounds = cutBoundsInRange(bounds); + var pixelNE = map.pointToPixel(bounds.getNorthEast()); + var pixelSW = map.pointToPixel(bounds.getSouthWest()); + pixelNE.x += gridSize; + pixelNE.y -= gridSize; + pixelSW.x -= gridSize; + pixelSW.y += gridSize; + var newNE = map.pixelToPoint(pixelNE); + var newSW = map.pixelToPoint(pixelSW); + return new BMap.Bounds(newSW, newNE) + }; + var cutBoundsInRange = function(bounds) { + var maxX = getRange(bounds.getNorthEast().lng, -180, 180); + var minX = getRange(bounds.getSouthWest().lng, -180, 180); + var maxY = getRange(bounds.getNorthEast().lat, -74, 74); + var minY = getRange(bounds.getSouthWest().lat, -74, 74); + return new BMap.Bounds(new BMap.Point(minX, minY), new BMap.Point(maxX, maxY)) + }; + var getRange = function(i, mix, max) { + mix && (i = Math.max(i, mix)); + max && (i = Math.min(i, max)); + return i + }; + var isArray = function(source) { + return '[object Array]' === Object.prototype.toString.call(source) + }; + var indexOf = function(item, source) { + var index = -1; + if (isArray(source)) { + if (source.indexOf) { + index = source.indexOf(item) + } else { + for (var i = 0, + m; m = source[i]; i++) { + if (m === item) { + index = i; + break + } + } + } + } + return index + }; + var MarkerClusterer = BMapLib.MarkerClusterer = function(map, options) { + if (!map) { + return + } + this._map = map; + this._markers = []; + this._clusters = []; + var opts = options || {}; + this._gridSize = opts["gridSize"] || 60; + this._maxZoom = opts["maxZoom"] || 18; + this._minClusterSize = opts["minClusterSize"] || 2; + this._isAverageCenter = false; + if (opts['isAverageCenter'] != undefined) { + this._isAverageCenter = opts['isAverageCenter'] + } + this._styles = opts["styles"] || []; + var that = this; + this._map.addEventListener("zoomend", + function() { + that._redraw() + }); + this._map.addEventListener("moveend", + function() { + that._redraw() + }); + var mkrs = opts["markers"]; + isArray(mkrs) && this.addMarkers(mkrs) + }; + MarkerClusterer.prototype.addMarkers = function(markers) { + for (var i = 0, + len = markers.length; i < len; i++) { + this._pushMarkerTo(markers[i]) + } + this._createClusters() + }; + MarkerClusterer.prototype._pushMarkerTo = function(marker) { + var index = indexOf(marker, this._markers); + if (index === -1) { + marker.isInCluster = false; + this._markers.push(marker) + } + }; + MarkerClusterer.prototype.addMarker = function(marker) { + this._pushMarkerTo(marker); + this._createClusters() + }; + MarkerClusterer.prototype._createClusters = function() { + var mapBounds = this._map.getBounds(); + var extendedBounds = getExtendedBounds(this._map, mapBounds, this._gridSize); + for (var i = 0, + marker; marker = this._markers[i]; i++) { + if (!marker.isInCluster && extendedBounds.containsPoint(marker.getPosition())) { + this._addToClosestCluster(marker) + } + } + }; + MarkerClusterer.prototype._addToClosestCluster = function(marker) { + var distance = 4000000; + var clusterToAddTo = null; + var position = marker.getPosition(); + for (var i = 0, + cluster; cluster = this._clusters[i]; i++) { + var center = cluster.getCenter(); + if (center) { + var d = this._map.getDistance(center, marker.getPosition()); + if (d < distance) { + distance = d; + clusterToAddTo = cluster + } + } + } + if (clusterToAddTo && clusterToAddTo.isMarkerInClusterBounds(marker)) { + clusterToAddTo.addMarker(marker) + } else { + var cluster = new Cluster(this); + cluster.addMarker(marker); + this._clusters.push(cluster) + } + }; + MarkerClusterer.prototype._clearLastClusters = function() { + for (var i = 0, + cluster; cluster = this._clusters[i]; i++) { + cluster.remove() + } + this._clusters = []; + this._removeMarkersFromCluster() + }; + MarkerClusterer.prototype._removeMarkersFromCluster = function() { + for (var i = 0, + marker; marker = this._markers[i]; i++) { + marker.isInCluster = false + } + }; + MarkerClusterer.prototype._removeMarkersFromMap = function() { + for (var i = 0, + marker; marker = this._markers[i]; i++) { + marker.isInCluster = false; + tmplabel = marker.getLabel(); + this._map.removeOverlay(marker); + marker.setLabel(tmplabel) + } + }; + MarkerClusterer.prototype._removeMarker = function(marker) { + var index = indexOf(marker, this._markers); + if (index === -1) { + return false + } + tmplabel = marker.getLabel(); + this._map.removeOverlay(marker); + marker.setLabel(tmplabel); + this._markers.splice(index, 1); + return true + }; + MarkerClusterer.prototype.removeMarker = function(marker) { + var success = this._removeMarker(marker); + if (success) { + this._clearLastClusters(); + this._createClusters() + } + return success + }; + MarkerClusterer.prototype.removeMarkers = function(markers) { + var success = false; + for (var i = 0; i < markers.length; i++) { + var r = this._removeMarker(markers[i]); + success = success || r + } + if (success) { + this._clearLastClusters(); + this._createClusters() + } + return success + }; + MarkerClusterer.prototype.clearMarkers = function() { + this._clearLastClusters(); + this._removeMarkersFromMap(); + this._markers = [] + }; + MarkerClusterer.prototype._redraw = function() { + this._clearLastClusters(); + this._createClusters() + }; + MarkerClusterer.prototype.getGridSize = function() { + return this._gridSize + }; + MarkerClusterer.prototype.setGridSize = function(size) { + this._gridSize = size; + this._redraw() + }; + MarkerClusterer.prototype.getMaxZoom = function() { + return this._maxZoom + }; + MarkerClusterer.prototype.setMaxZoom = function(maxZoom) { + this._maxZoom = maxZoom; + this._redraw() + }; + MarkerClusterer.prototype.getStyles = function() { + return this._styles + }; + MarkerClusterer.prototype.setStyles = function(styles) { + this._styles = styles; + this._redraw() + }; + MarkerClusterer.prototype.getMinClusterSize = function() { + return this._minClusterSize + }; + MarkerClusterer.prototype.setMinClusterSize = function(size) { + this._minClusterSize = size; + this._redraw() + }; + MarkerClusterer.prototype.isAverageCenter = function() { + return this._isAverageCenter + }; + MarkerClusterer.prototype.getMap = function() { + return this._map + }; + MarkerClusterer.prototype.getMarkers = function() { + return this._markers + }; + MarkerClusterer.prototype.getClustersCount = function() { + var count = 0; + for (var i = 0, + cluster; cluster = this._clusters[i]; i++) { + cluster.isReal() && count++ + } + return count + }; + function Cluster(markerClusterer) { + this._markerClusterer = markerClusterer; + this._map = markerClusterer.getMap(); + this._minClusterSize = markerClusterer.getMinClusterSize(); + this._isAverageCenter = markerClusterer.isAverageCenter(); + this._center = null; + this._markers = []; + this._gridBounds = null; + this._isReal = false; + this._clusterMarker = new BMapLib.TextIconOverlay(this._center, this._markers.length, { + "styles": this._markerClusterer.getStyles() + }) + } + Cluster.prototype.addMarker = function(marker) { + if (this.isMarkerInCluster(marker)) { + return false + } + if (!this._center) { + this._center = marker.getPosition(); + this.updateGridBounds() + } else { + if (this._isAverageCenter) { + var l = this._markers.length + 1; + var lat = (this._center.lat * (l - 1) + marker.getPosition().lat) / l; + var lng = (this._center.lng * (l - 1) + marker.getPosition().lng) / l; + this._center = new BMap.Point(lng, lat); + this.updateGridBounds() + } + } + marker.isInCluster = true; + this._markers.push(marker); + var len = this._markers.length; + if (len < this._minClusterSize) { + this._map.addOverlay(marker); + return true + } else if (len === this._minClusterSize) { + for (var i = 0; i < len; i++) { + tmplabel = this._markers[i].getLabel(); + this._markers[i].getMap() && this._map.removeOverlay(this._markers[i]); + this._markers[i].setLabel(tmplabel) + } + } + this._map.addOverlay(this._clusterMarker); + this._isReal = true; + this.updateClusterMarker(); + return true + }; + Cluster.prototype.isMarkerInCluster = function(marker) { + if (this._markers.indexOf) { + return this._markers.indexOf(marker) != -1 + } else { + for (var i = 0, + m; m = this._markers[i]; i++) { + if (m === marker) { + return true + } + } + } + return false + }; + Cluster.prototype.isMarkerInClusterBounds = function(marker) { + return this._gridBounds.containsPoint(marker.getPosition()) + }; + Cluster.prototype.isReal = function(marker) { + return this._isReal + }; + Cluster.prototype.updateGridBounds = function() { + var bounds = new BMap.Bounds(this._center, this._center); + this._gridBounds = getExtendedBounds(this._map, bounds, this._markerClusterer.getGridSize()) + }; + Cluster.prototype.updateClusterMarker = function() { + if (this._map.getZoom() > this._markerClusterer.getMaxZoom()) { + this._clusterMarker && this._map.removeOverlay(this._clusterMarker); + for (var i = 0, + marker; marker = this._markers[i]; i++) { + this._map.addOverlay(marker) + } + return + } + if (this._markers.length < this._minClusterSize) { + this._clusterMarker.hide(); + return + } + this._clusterMarker.setPosition(this._center); + this._clusterMarker.setText(this._markers.length); + var thatMap = this._map; + var thatBounds = this.getBounds(); + this._clusterMarker.addEventListener("click", + function(event) { + thatMap.setViewport(thatBounds) + }) + }; + Cluster.prototype.remove = function() { + for (var i = 0, + m; m = this._markers[i]; i++) { + var tmplabel = this._markers[i].getLabel(); + this._markers[i].getMap() && this._map.removeOverlay(this._markers[i]); + this._markers[i].setLabel(tmplabel) + } + this._map.removeOverlay(this._clusterMarker); + this._markers.length = 0; + delete this._markers + } + Cluster.prototype.getBounds = function() { + var bounds = new BMap.Bounds(this._center, this._center); + for (var i = 0, + marker; marker = this._markers[i]; i++) { + bounds.extend(marker.getPosition()) + } + return bounds + }; + Cluster.prototype.getCenter = function() { + return this._center + } +})(); \ No newline at end of file diff --git a/assets/pages/scripts/basicInformationmod/basicInformation/basicinformation.js b/assets/pages/scripts/basicInformationmod/basicInformation/basicinformation.js new file mode 100644 index 0000000..1261934 --- /dev/null +++ b/assets/pages/scripts/basicInformationmod/basicInformation/basicinformation.js @@ -0,0 +1,16 @@ +/** + * Created by mac on 17/9/12. + */ +//点击图片放大 +/*! Zoomify - v0.2.4 - https://github.com/indrimuska/zoomify - (c) 2015 Indri Muska - MIT */ +!function(a){Zoomify=function(b,c){var d=this;this._zooming=!1,this._zoomed=!1,this._timeout=null,this.$shadow=null,this.$image=a(b).addClass("zoomify"),this.options=a.extend({},Zoomify.DEFAULTS,this.$image.data(),c),this.$image.on("click",function(){d.zoom()}),a(window).on("resize",function(){d.reposition()}),a(document).on("scroll",function(){d.reposition()})},Zoomify.DEFAULTS={duration:200,easing:"linear",scale:.9},Zoomify.prototype.transition=function(a,b){a.css({"-webkit-transition":b,"-moz-transition":b,"-ms-transition":b,"-o-transition":b,transition:b})},Zoomify.prototype.addTransition=function(a){this.transition(a,"all "+this.options.duration+"ms "+this.options.easing)},Zoomify.prototype.removeTransition=function(b,c){var d=this;clearTimeout(this._timeout),this._timeout=setTimeout(function(){d.transition(b,""),a.isFunction(c)&&c.call(d)},this.options.duration)},Zoomify.prototype.transform=function(a){this.$image.css({"-webkit-transform":a,"-moz-transform":a,"-ms-transform":a,"-o-transform":a,transform:a})},Zoomify.prototype.transformScaleAndTranslate=function(a,b,c,d){this.addTransition(this.$image),this.transform("scale("+a+") translate("+b+"px, "+c+"px)"),this.removeTransition(this.$image,d)},Zoomify.prototype.zoom=function(){this._zooming||(this._zoomed?this.zoomOut():this.zoomIn())},Zoomify.prototype.zoomIn=function(){var b=this,c=this.$image.css("transform");this.transition(this.$image,"none"),this.transform("none");var d=this.$image.offset(),e=this.$image.outerWidth(),f=this.$image.outerHeight(),g=this.$image[0].naturalWidth||+(1/0),h=this.$image[0].naturalHeight||+(1/0),i=a(window).width(),j=a(window).height(),k=Math.min(g,i*this.options.scale)/e,l=Math.min(h,j*this.options.scale)/f,m=Math.min(k,l),n=(-d.left+(i-e)/2)/m,o=(-d.top+(j-f)/2+a(document).scrollTop())/m;this.transform(c),this._zooming=!0,this.$image.addClass("zoomed").trigger("zoom-in.zoomify"),setTimeout(function(){b.addShadow(),b.transformScaleAndTranslate(m,n,o,function(){b._zooming=!1,b.$image.trigger("zoom-in-complete.zoomify")}),b._zoomed=!0})},Zoomify.prototype.zoomOut=function(){var a=this;this._zooming=!0,this.$image.trigger("zoom-out.zoomify"),this.transformScaleAndTranslate(1,0,0,function(){a._zooming=!1,a.$image.removeClass("zoomed").trigger("zoom-out-complete.zoomify")}),this.removeShadow(),this._zoomed=!1},Zoomify.prototype.reposition=function(){this._zoomed&&(this.transition(this.$image,"none"),this.zoomIn())},Zoomify.prototype.addShadow=function(){var b=this;this._zoomed||(b.$shadow&&b.$shadow.remove(),this.$shadow=a('
'),a("body").append(this.$shadow),this.addTransition(this.$shadow),this.$shadow.on("click",function(){b.zoomOut()}),setTimeout(function(){b.$shadow.addClass("zoomed")},10))},Zoomify.prototype.removeShadow=function(){var a=this;this.$shadow&&(this.addTransition(this.$shadow),this.$shadow.removeClass("zoomed"),this.$image.one("zoom-out-complete.zoomify",function(){a.$shadow&&a.$shadow.remove(),a.$shadow=null}))},a.fn.zoomify=function(b){return this.each(function(){var c=a(this),d=c.data("zoomify");d||c.data("zoomify",d=new Zoomify(this,"object"==typeof b&&b)),"string"==typeof b&&["zoom","zoomIn","zoomOut","reposition"].indexOf(b)>=0&&d[b]()})}}(jQuery); + +$('.col-md-right img').zoomify({ + duration: 1000, + // scale:0.1, +}); +//修改 +$('#ifo_mod').on('click',function () { + window.location.href = "../basicInformationmod/basicInformationmod.html" +}); + diff --git a/assets/pages/scripts/basicInformationmod/basicInformationmod.js b/assets/pages/scripts/basicInformationmod/basicInformationmod.js new file mode 100644 index 0000000..47a7f00 --- /dev/null +++ b/assets/pages/scripts/basicInformationmod/basicInformationmod.js @@ -0,0 +1,56 @@ +/** + * Created by mac on 17/9/12. + */ +(function () { + + //提交事件 + $('#ifo_submit').on('click',function () { + var flagAjax = 0; + var peo_text = $.trim($('#peo_text').val()), + peo_pho = $.trim($('#peo_pho').val()), + peo_email = $.trim($('#peo_email').val()); + var reg = new RegExp("^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$"); + //负责人 + if(peo_text == ''||peo_text == null||peo_text == undefined){ + $('#peo_text').next().html('请输入负责人'); + flagAjax --; + }else{ + $('#peo_text').next().html(''); + flagAjax ++; + }; + //联系电话 + if(peo_pho == ''||peo_pho == null||peo_pho == undefined){ + $('#peo_pho').next().html('请输入手机号'); + flagAjax --; + }else if(!/^1(3|4|5|7|8)\d{9}$/.test(peo_pho)){ + $('#peo_pho').next().html('请输入正确手机号'); + flagAjax --; + }else{ + $('#peo_pho').next().html(''); + flagAjax ++; + }; + //邮箱 + if(peo_email == ''||peo_email == null||peo_email == undefined){ + $('#peo_email').next().html('请输入邮箱'); + flagAjax --; + }else if(!reg.test(peo_email)){ + $('#peo_email').next().html('请输入正确邮箱'); + flagAjax --; + }else{ + $('#peo_email').next().html(''); + flagAjax ++; + }; + console.log(flagAjax) + if(flagAjax == 3){ + //请求接口ajax + + //ajax 成功后跳转basicInformation.html; window.location.href = "basicInformation.html" + }else{ + return false; + } + }); + //取消事件 + $('#ifo_cancle').on('click',function () { + alert('取消后,您所。。。。') + }); +})(); diff --git a/assets/pages/scripts/billass/appmenuFile/remsum.css b/assets/pages/scripts/billass/appmenuFile/remsum.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/billass/appmenuFile/remsum.css diff --git a/assets/pages/scripts/billass/appmenuFile/remsum.html b/assets/pages/scripts/billass/appmenuFile/remsum.html new file mode 100644 index 0000000..e9908ac --- /dev/null +++ b/assets/pages/scripts/billass/appmenuFile/remsum.html @@ -0,0 +1,149 @@ + +
+
+ + +
+
+
+ 日期 +
+ +
+ - +
+ +
+ +
+
+ +
+ +
+
+
查询
+
+
+
+
+
+ 手机号 + +
+ +
+
+
+
+ +
+
+
    +
  • +
      +
    • 总收入 (元)
    • +
    • + 0.00 +
    • +
      +
    +
  • + +
+
+
+
    +
  • +
      +
    • 微信收入 (元)
    • +
    • + 0.00 +
    • +
      +
    +
  • +
+
+
+
    +
  • +
      +
    • 支付宝收入 (元)
    • +
    • + 0.00 +
    • +
      +
    +
  • +
+
+
+
    +
  • +
      +
    • 其他收入 (元)
    • +
    • + 0.00 +
    • +
      +
    +
  • + +
+
+
+
+
+
+
    +
  • 充值记录
  • +
  • + +
  • +
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/billass/appmenuFile/remsum.js b/assets/pages/scripts/billass/appmenuFile/remsum.js new file mode 100644 index 0000000..d4acfd6 --- /dev/null +++ b/assets/pages/scripts/billass/appmenuFile/remsum.js @@ -0,0 +1,490 @@ +var datanum=$('#toll-toptab').attr('data-value'); +var fun= { + init: function () { + fun.dateInit(); + fun.createTabledata(); + fun.createpayTabledata(); + fun.queryEmployeeStatisRequest(); + $('#payType').selectpicker('refresh'); + }, + dateInit:function () { + $("#sum_daterange_sta").val(moment().subtract('days', 0).format('YYYY-MM-DD 00:00:00')); + $("#sum_daterange_end").val(moment().subtract('days', -1).format('YYYY-MM-DD 00:00:00')); + + $("#sum_daterange_sta").datetimepicker({ + weekStart: 1, + autoclose: true, + startView: 2, + minView:1, + forceParse: false, + // minView: 0, + // minuteStep:60,//分钟间隔1分钟 + // showMeridian: 1, + format: 'yyyy-mm-dd hh:00:00', + endDate: moment().subtract('days', 0).format('YYYY-MM-DD 23:59:59'), + language: 'zh-CN', + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }); + $("#sum_daterange_end").datetimepicker({ + weekStart: 1, + autoclose: true, + startView: 2, + forceParse: false, + minView: 1, + // showMeridian: 1, + format: 'yyyy-mm-dd hh:00:00', + endDate: moment().subtract('days', -1).format('YYYY-MM-DD 00:00:00'), + language: 'zh-CN', + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }); + }, + createTabledata:function () { + $('#recharge_table').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: sumtableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'userPhone', + title: ' 手机号', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'acctType', + title: ' 账户类型', + width: '15%', + align: "left", + formatter: fun.acctTypeFormatter + }, + { + field: 'rechargeType', + title: ' 充值类型', + width: '15%', + align: "left", + formatter: fun.chargeTypeFormatter + }, + { + field: 'rechargeFee', + title: ' 充值金额', + width: '15%', + align: "left", + formatter:commonObj.moneyFormatter + + }, + + { + field: 'rechargeBalance', + title: ' 充值后金额', + width: '15%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'rechargeTime', + title: ' 充值时间', + width: '15%', + align: "left", + formatter:commonObj.timeFormatter + } + + ] + }); + }, + createpayTabledata:function () { + $('#apppay_table').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: sumtableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'plName', + title: ' 车场名称', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'userPhone', + title: ' 手机号', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'acctType', + title: ' 账户类型', + width: '15%', + align: "left", + formatter: fun.acctTypeFormatter + }, + { + field: 'carNumber', + title: ' 车牌', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'tradeFee', + title: ' 支出费用', + width: '15%', + align: "left", + formatter:commonObj.moneyFormatter + + }, + { + field: 'tradeBalance', + title: ' 支出后余额', + width: '15%', + align: "left", + formatter:commonObj.moneyFormatter + + }, + + { + field: 'berthNo', + title: ' 泊位编号', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'tradeTime', + title: ' 支出时间', + width: '15%', + align: "left", + formatter:commonObj.timeFormatter + } + + ] + }); + }, + /*获取查询参数*/ + sumGetQueryParam: function () { + + beginTime = $("#sum_daterange_sta").val(); + //beginTime = beginTime + " 00:00:00"; + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = $("#sum_daterange_end").val(); + // endTime = endTime + " 23:59:59"; + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + // console.log(beginTime+','+endTime) + userPhone = $("#phone_Number").val(); + var payType = $("#payType").val(); + payTypeList = payType.split(","); + + var req = { + userPhone:userPhone, + startTime: beginTime, + beginTime: beginTime, + endTime:endTime, + payTypeList:payTypeList + }; + //console.log(req); + return req; + }, + + //账户类型 + acctTypeFormatter: function (value) { + // console.log(typeof value) + if (value == 1) { + return "账户余额"; + } else if(value == 7){ + return "充值赠送"; + }else { + return '-'; + } + }, + //支付类型 + chargeTypeFormatter: function (value) { + // console.log(typeof value) + if (value == 1) { + return "支付宝"; + } else if(value == 2){ + return "微信"; + }else if(value == 6){ + return "线下充值"; + }else if(value == 11){ + return "充值卡"; + }else { + return '-'; + } + }, + + queryEmployeeStatisRequest: function () { + var req = fun.sumGetQueryParam(); + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCustRechargeFeeStatic(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + console.log(res.data); + var zfb = 0; + var wx = 0; + var other = 0; + //多条累加 + $.each(res.data.rows,function(index,item){ + zfb += item.zfb; + wx += item.wx; + other += item.other; + }); + /*if(res.data.total == 1){ + zfb = res.data.rows[0].zfb; + wx = res.data.rows[0].wx; + }*/ + $('#all_totalFee').text(commonObj.moneyFormatter(zfb+wx+other)); + $('#all_zfbFee').text(commonObj.moneyFormatter(zfb)); + $('#all_wxFee').text(commonObj.moneyFormatter(wx)); + $('#all_otherFee').text(commonObj.moneyFormatter(other)); + } + } + }; + sysAjax(opt); + }, +}; + +fun.init(); + +//查询事件 +documentBindFunc.on('click', "#sum_queryBtn", function () { + //console.log(index); + if (0 == datanum) { + // console.log(index); + //充值记录 + fun.createTabledata(); + fun.queryEmployeeStatisRequest(); + } else { + //支出记录 + fun.createpayTabledata(); + } +}); + +//切换头部收入topbar +documentBindFunc.on('click', "#toll-toptab div", function () { + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + datanum=$("#toll-toptab").attr('data-value'); + datanum=index; + if(index==0){ + fun.queryEmployeeStatisRequest(); + /** 函数 表格数据 **/ + fun.createTabledata(); + $('#apprecharge_Cont').removeClass('display-none'); + $('#appmsg_card').removeClass('display-none'); + $('#apppay_Cont').addClass('display-none'); + window.clearInterval(InterValObj);//停止计时器 + $("#sum_reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#sum_reportBtn").val("导出"); + + }else{ + /** 函数 表格数据 **/ + fun.createpayTabledata(); + window.clearInterval(InterValObj);//停止计时器 + $('#apprecharge_Cont').addClass('display-none'); + $('#apppay_Cont').removeClass('display-none'); + $('#appmsg_card').addClass('display-none'); + $("#sum_reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#sum_reportBtn").val("导出"); + + } + +}); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function sumtableLoadRequest(params) { + var req = fun.sumGetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var url = dataUrl.util.queryCustRechargeFeeStaticMsg(); + if (datanum==0) { + url = dataUrl.util.queryCustRechargeFeeStaticMsg(); + } else{ + console.log(1) + url = dataUrl.util.queryappAcctPayOutForPage(); + } + var opt = { + method: 'post', + url: url, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#sum_reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#sum_reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#sum_reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#sum_reportBtn").val("导出"); + } + else { + curCount--; + $("#sum_reportBtn").val(curCount + "秒后可再次导出"); + } +} + +//导出excle +documentBindFunc.on('click','#sum_reportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#recharge_table").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recharge_table").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + console.log(parkLot) + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数s + sendMessage(); + + var req = fun.sumGetQueryParam(); + var beginTime = DateUtils.long2String(req.startTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + var url = dataUrl.util.exportappAcctRechargeList(); + var payTypeList = []; + payTypeList = $("#payType").val().split(","); + console.log(beginTime+','+endTime) + var forms = exportIncomeDetailFormforbill(url,beginTime,endTime,req.userPhone,fn.getOrgId(),payTypeList); + forms.submit(); +}); + + +function exportIncomeDetailFormforbill(url,beginTime, endTime,userPhone,orgId,payTypeList) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "get"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "beginTime"; + input.value = beginTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endTime"; + input2.value = endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + //input2.type = "hidden"; + input3.name = "userPhone"; + input3.value = userPhone; + form.appendChild(input3); + + var input4 = document.createElement("input"); + input4.name = "orgId"; + input4.value = orgId; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "payTypeList"; + input5.value = payTypeList; + form.appendChild(input5); + + return form; + +}; diff --git a/assets/pages/scripts/billass/bill/billmanage.css b/assets/pages/scripts/billass/bill/billmanage.css new file mode 100644 index 0000000..87346e7 --- /dev/null +++ b/assets/pages/scripts/billass/bill/billmanage.css @@ -0,0 +1,56 @@ +.reconciliation-card-detail{ + padding: 15px 0 3px; +} +.reconciliation-card-detail li{ + height: 18px; + line-height: 18px; + margin-bottom: 10px; +} +/*复合表头样式*/ +.ITD-complex-table thead tr:nth-of-type(2) th{ + border-top: 1px solid #e7ecf1!important; +} +.billFixwid{ + max-width: 155px; +} +/*tab 切换*/ +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; + margin-bottom: 18px; +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD; + color: #1E95CD; +} +/* ? title*/ +.question-money-icon { + top: 3px; + right: 20px; + /* display: inline-block; */ + /* height: 18px; */ + /* width: 18px; */ + background: url(../../../img/question-money-icon.png) no-repeat; + background-size: 100% 100%; + z-index: 1000; + /* vertical-align: middle; */ + /* margin-left: 10px; */ +} \ No newline at end of file diff --git a/assets/pages/scripts/billass/bill/billmanage.html b/assets/pages/scripts/billass/bill/billmanage.html new file mode 100644 index 0000000..e1d70f3 --- /dev/null +++ b/assets/pages/scripts/billass/bill/billmanage.html @@ -0,0 +1,252 @@ + +
+
+
+
+
+ +
+
+ +
+
+ 日期 +
+ +
+ - +
+ +
+
+ +
+
+
查询
+
+
+
+
+
+
按日
+
按月
+ +
+
+
+
+
+ +
+
+
    +
  • +
      +
    • 停车应收 (元) +
      +
    • +
    • + +
    • +
      +
    +
  • +
  • +
    + 临停应收 + +
    +
    + -- + -- +
    +
    + -- + -- +
    +
  • +
+
+
+
    +
  • +
      +
    • 总实收 (元) +
      +
    • +
    • + +
    • +
      +
    +
  • +
  • +
    + 临停实收 + +
    +
    + 会员卡实收 + +
    +
    + 历史补缴实收 + +
    +
  • +
+
+
+
    +
  • +
      +
    • 折扣 (元) +
    • +
    • + +
    • +
      +
    +
  • +
  • +
    + 临停折扣 + +
    +
    + 会员卡折扣 + +
    +
    + 历史补缴折扣 + +
    +
  • +
+
+ +
+
    +
  • +
      +
    • 欠费 (元) +
    • +
    • + 0.00 +
    • +
      +
    +
  • +
  • +
    + 临停欠费 + 0.00 +
    +
    + -- + -- +
    +
    + -- + -- +
    +
  • +
+
+ +
+
+
+
+
    +
  • 实收汇总
  • +
  • + + +
  • +
+
+
    +
  • 办事处
  • +
  • 停车场
  • + + +
+
+
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/billass/bill/billmanage.js b/assets/pages/scripts/billass/bill/billmanage.js new file mode 100644 index 0000000..210a4a2 --- /dev/null +++ b/assets/pages/scripts/billass/bill/billmanage.js @@ -0,0 +1,1445 @@ + +var fun = { + init: function () { + commSelect.area_Pl_LinkedSelect("#bill-parkArea", "#bill-parkIds"); + fun.dateInit(); + fun.monthdateInit(); + fun.createTableData(); + fun.initSummaryFeeData(); + //弹窗 + documentBindFunc.on('click', '[lookOper]', function() { + fun.lookOper(this); + }); + }, + //时间初始化 + dateInit: function () { + $('#bill-daterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#bill-daterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#bill-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + $("#bill-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + monthdateInit: function () { + /** 月 时间初始化 **/ + $('#bill-monthdaterange-btnsta').val(moment().subtract('months', 1).format('YYYY-MM')); + $('#bill-monthdaterange-btnend').val(moment().subtract('months', 1).format('YYYY-MM')); + //开始日期 + $("#bill-monthdaterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#bill-monthdaterange-btnend").datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + //startDate:startVal, + format: 'yyyy-mm', + weekStart: 1, + autoclose: true, + startView: 3, + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + + /*获取查询参数*/ + queryParamForBillManage: function () { + var plNos = JSON.parse($("#bill-parkIds").val()); + if (plNos.length < 0 || plNos == null || plNos == undefined) { + plNos.push(-1); + } + /**统计分类 1、日 2、 月**/ + var timeType = 1; + /*开始时间*/ + var beginTime; + /*结束时间*/ + var endTime; + timeType = $("#queryType").val(); + if (1 == parseInt(timeType)) { + //日 + beginTime = $("#bill-daterange-btnsta").val(); + endTime = $("#bill-daterange-btnend").val(); + beginTime = beginTime + " 00:00:00"; + endTime = endTime + " 23:59:59"; + } else { + timeType = 2; + beginTime = $("#bill-monthdaterange-btnsta").val() + "-01 00:00:00"; + endTime = $("#bill-monthdaterange-btnend").val(); + + var dates = endTime.split("-"); + if (dates[1] == '02') { + endTime = endTime + "-28 23:59:59"; + } else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07' + || dates[1] == '08' || dates[1] == '10' || dates[1] == '12') { + endTime = endTime + "-31 23:59:59"; + } else { + endTime = endTime + "-30 23:59:59"; + } + + } + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + var detailType =$("#tab-btn-wrap").find(".tabAction").val();///**1.停车场;2:办事处.*/ + //alert(detailType) + var req = { + plNos: plNos, + beginTime: beginTime, + endTime: endTime, + timeType: timeType, + detailType:detailType + }; + //console.log(req); + return req; + }, + + initSummaryFeeData:function(){ + $("#park_actFeeForRefund").text("0.00"); + + + $("#park_actFee").text("0.00"); + $("#vip_actFee").text("0.00"); + $("#back_actFee").text("0.00"); + + + $("#park_dicountFee").text("0.00"); + $("#back_dicountFee").text("0.00"); + $("#vip_dicountFee").text("0.00"); + + $("#park_totalFee").text("0.00"); + $("#vip_totalFee").text("0.00"); + $("#back_totalFee").text("0.00"); + $("#all_totalFee").text("0.00"); + $("#all_actFee").text("0.00"); + $("#all_dicountFee").text("0.00"); + $("#all_otherFee").text("0.00"); + $("#all_qfFee").text("0.00"); + $("#qfRefund").text("0.00"); + + $('#historyOrderBackTotalFee').text("0.00");//补缴应收=实收+优惠 + $("#historyOrderBackFee").text("0.00");//历史补缴=总补缴 - 当天补缴 + $("#historyOrderBackDicountFee").text("0.00");//历史补缴优惠=总补缴优惠 - 当天补缴优惠 + + var req=fun.queryParamForBillManage(); + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.querySummaryFeeByTypeNew(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + + console.log(res); + if (res.code == '8888') { + var data=res.data; + if(data !=null){ + /********************begin实收*****************************/ + //临停应收=临停实收+临停优惠 + var parkTotalFee=data.parkTotalFee==null?0:data.parkTotalFee; + //临停实收 + var parkActFee=data.parkActFee==null?0:data.parkActFee; + //临停折扣=临停优惠 + var parkDicountFee=data.parkDicountFee==null?0:data.parkDicountFee; + + //会员卡应收=会员卡实收+会员卡优惠 + var vipTotalFee=data.vipTotalFee==null?0:data.vipTotalFee; + //会员卡实收 + var vipActFee=data.vipActFee==null?0:data.vipActFee; + //会员卡折扣 + var vipDicountFee=data.vipDicountFee==null?0:data.vipDicountFee; + + //临停欠费 + var orderArrearageFee=data.arrearageFeeTotal==null?0:data.arrearageFeeTotal; + //会员卡欠费 + var vipArrearageFee=0; + //补缴卡欠费 + var arrearageFeeForBack=0; + + //总补缴实收 + var backActFeeALL=data.backActFeeTotal==null?0:data.backActFeeTotal; + //当天补缴实收 + var backActFee=data.currentBackActFeeTotal==null?0:data.currentBackActFeeTotal; + //总补缴折扣 + var backDicountFeeAll=data.backDicountFeeTotal==null?0:data.backDicountFeeTotal; + //当天补缴折扣 + var backDicountFee=data.currentBackDicountFeeTotal==null?0:data.currentBackDicountFeeTotal; + + //总应收=总应收=临停实收+临停优惠+当天补缴实收+当天补缴优惠+会员卡实收+会员卡折扣+欠费 + var totalFee = data.totalFee==null?0:data.totalFee; + //总实收 = 临停实收 + 会员卡实收+总补缴 + var actFeeTotal= data.actFeeTotal==null?0:data.actFeeTotal; + //总优惠=临停优惠+会员卡优惠+总补缴优惠 + var dicountFeeTotal = data.dicountFeeTotal==null?0:data.dicountFeeTotal; + + + /******************************begin赋值操作******************************************/ + + //应收 + $("#all_totalFee").text(fun.money(totalFee)); //总应收 + $("#park_totalFee").text(fun.money(parkTotalFee+orderArrearageFee+backActFee+backDicountFee));//临停应收 + $("#vip_totalFee").text(fun.money(vipTotalFee));//会员卡应收 + + //实收 + $("#all_actFee").text(fun.money(actFeeTotal));//实收汇总 + $("#park_actFee").text(fun.money(parkActFee+backActFee)); //临停实收=当日临停+当日补缴 + $("#vip_actFee").text(fun.money(vipActFee)); //会员卡实收 + $("#historyOrderBackFee").text(fun.money(backActFeeALL - backActFee));//历史补缴=总补缴 - 当天补缴 + //折扣 ==dicountFeeTotal + $("#all_dicountFee").text(fun.money(parkDicountFee+vipDicountFee+backDicountFeeAll)); //汇总折扣 + $("#park_dicountFee").text(fun.money(parkDicountFee+backDicountFee));//临停折扣==当日临停+当日补缴 + $("#vip_dicountFee").text(fun.money(vipDicountFee));//会员卡折扣 + $("#historyOrderBackDicountFee").text(fun.money(backDicountFeeAll - backDicountFee));//历史补缴优惠=总补缴优惠 - 当天补缴优惠 + //欠费 + $('#all_qfFee').text(fun.money(orderArrearageFee));//总欠费 + $('#qfRefund').text(fun.money(orderArrearageFee));//临停欠费 + } + + + } + } + }; + sysAjax(opt); + + }, + //办事处 table 默认 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + [{ + field: 'checkDate', + title: '日期', + align: 'left', + rowspan: 2, + valign: "middle", + formatter: commonObj.replacenull + //width: '20%' + }, + { + field: 'areaName', + title: '办事处', + align: 'left', + rowspan: 2, + valign: "middle", + //formatter: commonObj.replacenull + formatter: fun.operFormatter + }, + + { + field: 'totalFee', + title: '应收', + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { + field: '', + title:'总实收', + valign: "middle", + align: "center", + colspan: 5, + rowspan: 1 + }, + { + field: 'arrearageFeeTotal', + title: '欠费', + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { field: 'actFeeForRefund', + title: '退费', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(fun.refundFeeFormatter(value,row,index)); + } + + + }, + { + field: 'dicountFeeTotal', + title: '折扣', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + /**{ + field: 'backFee', + title: '历史补缴', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(fun.backHisFeeFormatter(value,row,index)); + } + }, + { + field: 'backFee', + title: '历史补缴折扣', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(fun.backDisHisFeeFormatter(value,row,index)); + } + },**/ + { + field: 'berthNum', + title: '泊位数', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.numberFormatter + }, + { + field: 'avgBerthsTotalFee', + title: '泊位平均应收', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + if(value == null){ + return "0.00" + } + return (value / 100).toFixed(2); + } + }, + { + field: 'avgBerthsActFee', + title: '泊位平均实收', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + if(value == null){ + return "0.00" + } + return (value / 100).toFixed(2); + } + }, + { + field: 'backFee', + title: '线上支付率 ', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return fun.rateFormatter(fun.aliActFeeFormatter(value, row, index) + +fun.wxActFeeFormatter(value, row, index)+fun.balanceActFeeFormatter(value, row, index),row.actFeeTotal) + } + }, + { + field: 'arrearageFeeTotal', + title: '欠费率 ', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return fun.rateFormatter((row.arrearageFeeTotal),row.totalFee); + } + }, + + + ], + [ + + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter:function (value, row, index) { + return commonObj.moneyFormatter(fun.wxActFeeFormatter(value,row,index)); + } + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter:function (value, row, index) { + return commonObj.moneyFormatter(fun.aliActFeeFormatter(value,row,index)); + } + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(fun.cashActFeeFormatter(value,row,index)); + } + }, + { + field: 'balanceFee', + title: '余额', + width: '10%', + align: "left", + formatter:function (value, row, index) { + return commonObj.moneyFormatter(fun.balanceActFeeFormatter(value,row,index)); + } + }, + { + field: 'actFeeTotal', + title: '合计', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + + ], + + + ] + }); + }, + rateFormatter:function(value,value1){ + if(value == null || value <= 0 ){ + return "0%"; + }else if (value1 == null || value1 <= 0){ + value1 = 100; + } + return (value * 100 /value1).toFixed(2) + "%"; + + }, + + //合计 + orderActFeeFormatter:function(value, row, index){ + var resultFee = value; + if(row.backActFeeTotal != null){ + resultFee += row.backActFeeTotal; + } + if(row.currentBackActFeeTotal != null){ + resultFee -= row.currentBackActFeeTotal; + } + + return resultFee; + }, + + //微信实收 + wxActFeeFormatter:function(value, row, index){ + //实收=临停实收+总补缴补缴+会员卡 + var resultFee = 0; + if(row.parkWxFee != null){ + resultFee += row.parkWxFee; + } + if(row.backWxFee != null){ + resultFee += row.backWxFee; + } + if(row.vipWxFee != null){ + resultFee += row.vipWxFee; + } + return (resultFee); + }, + //支付宝实收 + aliActFeeFormatter:function(value, row, index){ + //实收=临停实收+当天补缴+会员卡 + var resultFee = 0; + if(row.parkAliFee != null){ + resultFee += row.parkAliFee; + } + if(row.backAliFee != null){ + resultFee += row.backAliFee; + } + if(row.vipAliFee != null){ + resultFee += row.vipAliFee; + } + return (resultFee); + }, + //现金实收 + cashActFeeFormatter:function(value, row, index){ + //实收=临停实收+当天补缴+会员卡 + var resultFee = 0; + if(row.parkCashFee != null){ + resultFee += row.parkCashFee; + } + if(row.backCashFee != null){ + resultFee += row.backCashFee; + } + if(row.vipCashFee != null){ + resultFee += row.vipCashFee; + } + return (resultFee); + }, + //余额实收 + balanceActFeeFormatter:function(value, row, index){ + //实收=临停实收+当天补缴+会员卡 + var resultFee = 0; + if(row.parkBalanceFee != null){ + resultFee += row.parkBalanceFee; + } + if(row.backBalanceFee != null){ + resultFee += row.backBalanceFee; + } + if(row.vipBalanceFee != null){ + resultFee += row.vipBalanceFee; + } + return (resultFee); + }, + //合计实收 + actFeeFormatter:function(value, row, index){ + //实收=临停实收+补缴+会员卡 + var resultFee = 0; + if(row.parkActFee != null){ + resultFee += row.parkActFee; + } + if(row.backActFeeTotal != null){ + resultFee += row.backActFeeTotal; + } + if(row.vipActFee != null){ + resultFee += row.vipActFee; + } + return (resultFee); + }, + //欠费 + //arrearageFeeTotal + //退费 + refundFeeFormatter:function(value, row, index){ + //退费=临停退费+会员卡退费 + var resultFee = 0; + if(row.refundParkFee != null){ + resultFee += row.refundParkFee; + } + + if(row.refundVipFee != null){ + resultFee += row.refundVipFee; + } + return (resultFee); + }, + //折扣 + dicountFeeFormatter:function(value, row, index){ + //折扣=临停折扣+折扣+会员卡折扣 + var resultFee = 0; + if(row.parkDicountFee != null){ + resultFee += row.parkDicountFee; + } + + if(row.currentBackDicountFeeTotal != null){//因为 + resultFee -= row.currentBackDicountFeeTotal; + } + if(row.backDicountFeeAll != null){//因为 + resultFee += row.backDicountFeeAll; + } + if(row.vipDicountFee != null){ + resultFee += row.vipDicountFee; + } + return (resultFee); + }, + //历史补缴 + backHisFeeFormatter:function(value, row, index){ + //补缴=总补缴-当天补缴(支付宝、微信、余额、现金) + var resultFee = 0; + if(row.backActFeeTotal != null){ + resultFee += row.backActFeeTotal; + } + + if(row.currentBackAliFee != null){ + resultFee -= row.currentBackAliFee; + } + if(row.currentBackWxFee != null){ + resultFee -= row.currentBackWxFee; + } + if(row.currentBackCashFee != null){ + resultFee -= row.currentBackCashFee; + } + if(row.currentBackBalanceFee != null){ + resultFee -= row.currentBackBalanceFee; + } + + return (resultFee); + }, + //历史补缴折扣 + backDisHisFeeFormatter:function(value, row, index){ + //历史补缴折扣=总补缴折扣-当天补缴折扣(支付宝、微信、余额、现金) + var resultFee = 0; + if(row.backDicountFeeTotal != null){ + resultFee += row.backDicountFeeTotal; + } + + if(row.currentBackDicountFeeTotal != null){ + resultFee -= row.currentBackDicountFeeTotal; + } + + return (resultFee); + }, + //停车场 table 维度 + createbscTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + [{ + field: 'checkDate', + title: '日期', + align: 'left', + rowspan: 2, + valign: "middle", + formatter: commonObj.replacenull + //width: '20%' + }, + { + field: 'areaName', + title: '办事处', + align: 'left', + rowspan: 2, + valign: "middle", + //formatter: fun.operFormatter + formatter: commonObj.replacenull + }, + { + field: 'plName', + title: '停车场', + valign: "middle", + align: 'left', + rowspan: 2 + + }, + { + field: 'totalFee', + title: '应收', + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { + field: '', + title:'实收', + valign: "middle", + align: "center", + colspan: 5, + rowspan: 1 + }, + { + field: 'arrearageFeeTotal', + title: '欠费', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + formatter: commonObj.moneyFormatter + }, + { field: 'actFeeForRefund', + title: '退费', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(fun.refundFeeFormatter(value,row,index)); + } + + + }, + { + field: 'dicountFeeTotal', + title: '折扣', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + /** { + field: 'backFee', + title: '历史补缴', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(fun.backHisFeeFormatter(value,row,index)); + } + }, + { + field: 'backFee', + title: '历史补缴折扣', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(fun.backDisHisFeeFormatter(value,row,index)); + } + },*/ + { + field: 'berthNum', + title: '泊位数', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.numberFormatter + }, + { + field: 'avgBerthsTotalFee', + title: '泊位平均应收', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + if(value == null){ + return "0.00" + } + return (value / 100).toFixed(2); + } + }, + { + field: 'avgBerthsActFee', + title: '泊位平均实收', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + if(value == null){ + return "0.00" + } + return (value / 100).toFixed(2); + } + }, + { + field: 'backFee', + title: '线上支付率', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return fun.rateFormatter(fun.aliActFeeFormatter(value, row, index) + +fun.wxActFeeFormatter(value, row, index)+fun.balanceActFeeFormatter(value, row, index),row.actFeeTotal) + } + }, + { + field: 'arrearageFeeTotal', + title: '欠费率', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return fun.rateFormatter((row.arrearageFeeTotal),row.totalFee); + } + }, + + + ], + [ + + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter:function (value, row, index) { + return commonObj.moneyFormatter(fun.wxActFeeFormatter(value,row,index)); + } + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter:function (value, row, index) { + return commonObj.moneyFormatter(fun.aliActFeeFormatter(value,row,index)); + } + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(fun.cashActFeeFormatter(value,row,index)); + } + }, + { + field: 'balanceFee', + title: '余额', + width: '10%', + align: "left", + formatter:function (value, row, index) { + return commonObj.moneyFormatter(fun.balanceActFeeFormatter(value,row,index)); + } + }, + { + field: 'actFeeTotal', + title: '合计', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + + ], + + + ] + }); + + + }, + //操作显示 + operFormatter: function(value, row, index) { + var areaName="-"; + if(row.areaName!=null){ + areaName=row.areaName; + } + var areaId="-"; + if(row.areaId!=null){ + areaId=row.areaId; + } + var operStr = ''+ areaName +''; + return operStr; + }, + money:function (value) { + if(value==null || value==undefined || value =="0.00"){ + return "0.00"; + }else{ + return (value/100).toFixed(2); + } + }, + + + lookOper: function(element) { + $('#popAreaname').text(''); + var areaName = $(element).attr('areaname'); + areaId = $(element).attr('areaid'); + var areadate = $(element).attr('datatime'); + $('#popAreaname').text(areaName+'('+areadate+')'); + if(areaName!=null && areaName !=undefined && areaName !="全部" && areaName!="-"){ + var beginTime= $(element).attr('datatime'); + if(beginTime.length>7){ + beginTimeNew =new Date((beginTime + " 00:00:00").replace(/-/g, "/")); + endTimeNew =new Date((beginTime + " 23:59:59").replace(/-/g, "/")); + }else{ + beginTimeNew =new Date((beginTime + "-01 00:00:00").replace(/-/g, "/")); + //console.log(beginTime); + var dates = beginTime.split("-"); + //console.log(dates[1]); + if (dates[1] == '02') { + beginTime = beginTime + "-28 23:59:59"; + } else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07' + || dates[1] == '08' || dates[1] == '10' || dates[1] == '12') { + beginTime = beginTime + "-31 23:59:59"; + } else { + beginTime = beginTime + "-30 23:59:59"; + } + endTimeNew =new Date((beginTime).replace(/-/g, "/")); + } + var plNos = JSON.parse($("#bill-parkIds").val()); + //console.log(plNos.length); + parkIdList = []; + if(parseInt(plNos.length)>=2){ + parkIdList=fun.getPlNosByAreaName(areaName); + }else{ + parkIdList=plNos; + } + + //console.log(parkIdList); + + fun.popCreateTableData(); + + $('#billmana-myModal').modal('show'); + } + + }, + getPlNosByAreaName: function (areaName) { + //停车场 + var data = fn.getParkLot(); + var areaPlNos = {}; + var areaNameList = []; + for (var i = 0; i < data.length; i++) { + var areaNameNew = data[i].areaName; + if (areaNameList.indexOf(areaNameNew) == -1) { + areaNameList.push(areaNameNew); + var plNos = []; + plNos.push(data[i].code); + areaPlNos[areaNameNew] = plNos; + } else { + var plNos = areaPlNos[areaNameNew]; + if (plNos.indexOf(data[i].code) == -1) { + plNos.push(data[i].code); + areaPlNos[areaNameNew] = plNos; + } + } + } + return areaPlNos[areaName]; + }, + //账单列表明细 + popCreateTableData: function () { + $('#billincometable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequestpop, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + [ + // { + // field: 'checkDate', + // title: '日期', + // valign: "middle", + // align: 'left', + // rowspan: 2, + // valign: "middle", + // //width: '20%' + // }, + { + field: 'plName', + title: '车场名称', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle" + }, + { + field: 'totalFee', + title: '应收', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { + field: '', + title:'实收', + valign: "middle", + align: "center", + colspan: 5, + rowspan: 1 + }, + { + field: 'arrearageFeeTotal', + title: '欠费', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { field: 'actFeeForRefund', + title: '退费', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(fun.refundFeeFormatter(value,row,index)); + } + + + }, + { + field: 'dicountFeeTotal', + title: '折扣', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + /**{ + field: 'backFee', + title: '历史补缴', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(fun.backHisFeeFormatter(value,row,index)); + } + }, + { + field: 'backFee', + title: '历史补缴折扣', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(fun.backDisHisFeeFormatter(value,row,index)); + } + },*/ + { + field: 'berthNum', + title: '泊位数', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.numberFormatter + }, + { + field: 'avgBerthsTotalFee', + title: '泊位平均应收', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + if(value == null){ + return "0.00" + } + return (value / 100).toFixed(2); + } + }, + { + field: 'avgBerthsActFee', + title: '泊位平均实收', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + if(value == null){ + return "0.00" + } + return (value / 100).toFixed(2); + } + }, + { + field: 'backFee', + title: '线上支付率', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return fun.rateFormatter(fun.aliActFeeFormatter(value, row, index) + +fun.wxActFeeFormatter(value, row, index)+fun.balanceActFeeFormatter(value, row, index),row.actFeeTotal) + } + }, + { + field: 'arrearageFeeTotal', + title: '欠费率', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: function (value, row, index) { + return fun.rateFormatter((row.arrearageFeeTotal),row.totalFee); + } + }, + + + ], + [ + + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter:function (value, row, index) { + return commonObj.moneyFormatter(fun.wxActFeeFormatter(value,row,index)); + } + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter:function (value, row, index) { + return commonObj.moneyFormatter(fun.aliActFeeFormatter(value,row,index)); + } + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(fun.cashActFeeFormatter(value,row,index)); + } + }, + { + field: 'balanceFee', + title: '余额', + width: '10%', + align: "left", + formatter:function (value, row, index) { + return commonObj.moneyFormatter(fun.balanceActFeeFormatter(value,row,index)); + } + }, + { + field: 'actFeeTotal', + title: '合计', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + + ], + + + ] + }); + + + }, +}; +fun.init(); +//查询 +documentBindFunc.on('click', '#bill-queryBtn', function () { + + $('#tab-btn-wrap li').removeClass('tabAction'); + $('.areaactive').addClass('tabAction'); + fun.createTableData(); + fun.initSummaryFeeData(); +}); +//切换 搜索部分 是否生效 +documentBindFunc.on('click', "#bill-toptab div.ITD-graynav-topbar", function () { + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + //console.log(index); + //切换完后,调用查询表格 + // fun.createTableData(); + +}); +//日月切换 点击事件 +//日 点击 +documentBindFunc.on('click', '#billdayType', function () { + $('.bill-choosedateday').removeClass('display-none'); + $('.bill-choosedatemonth').addClass('display-none'); + $('#queryType').attr('data-value', '1'); + $("#queryType").val(1); + fun.createTableData(); + fun.initSummaryFeeData(); +}); +//月 点击 +documentBindFunc.on('click', '#billmonthType', function () { + $('.bill-choosedatemonth').removeClass('display-none'); + $('.bill-choosedateday').addClass('display-none'); + $('#queryType').attr('data-value', '2'); + $("#queryType").val(2); + fun.createTableData(); + fun.initSummaryFeeData(); +}); + +//切换 全部 有差异 无差异 +$('#tab-btn-wrap li').on('click',function () { + var that=$(this).index(); + //因后面逻辑需要,一定要线切换 tabAction 样式, 然后在调用 对应的函数 + $(this).addClass('tabAction').siblings().removeClass('tabAction'); + if(that==1){ + //停车场 维度 + fun.createbscTableData(); + + }else{ + //办事处 维度 + fun.createTableData(); + } + +}); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.queryParamForBillManage(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + req.checkFeeTypes=[100,103,300,301,302]; + var opt = { + method: 'post', + url: dataUrl.util.queryDetailForAreaByTypeNew(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + + +/** + * 区域弹窗 + * 自定义table AJAX请求 + * @param {Object} params + */ +var parkIdList=[]; +var areaId; +var beginTimeNew; +var endTimeNew; +function tableLoadRequestpop(params) { + var req = fun.queryParamForBillManage(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.beginTime=beginTimeNew; + req.endTime=endTimeNew; + req.plNos = null; + req.areaId = areaId; + req.sysCode = sysComm.sysCode; + req.checkFeeTypes=[100,103,300,301,302]; + var cehicleFlowTableAjax = { + method: params.type, + url: dataUrl.util.queryDetailForParkByTypeNew(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res.data); + if(res.code == '8888') { + //alert(res.data); + params.success(res.data); + } else { + + } + } + }; + sysAjax(cehicleFlowTableAjax); +} + + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#billmanageReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#billmanageReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#billmanageReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#billmanageReport").val("导出"); + } + else { + curCount--; + $("#billmanageReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#billmanageReport',function (){ + //获取table所有行数据 + var parkLot = $("#recordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var req = fun.queryParamForBillManage(); + var beginTime = DateUtils.long2String(req.beginTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + + var url = dataUrl.util.exportBillExcleforAllNew(); + var forms = exportIncomeDetailFormforbill(url, beginTime, endTime, req.plNos, req.timeType + ); + forms.submit(); +}); + + + + +function exportIncomeDetailFormforbill(url, beginTime, endTime, plNos, timeType +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "beginTime"; + input.value = beginTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endTime"; + input2.value = endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + //input2.type = "hidden"; + input3.name = "plNos"; + input3.value = plNos; + form.appendChild(input3); + + + var input16 = document.createElement("input"); + //input15.type = "hidden"; + input16.name = "timeType"; + input16.value = timeType; + form.appendChild(input16); + + return form; + +}; diff --git a/assets/pages/scripts/billass/bill/billmanage.js_bak b/assets/pages/scripts/billass/bill/billmanage.js_bak new file mode 100644 index 0000000..9fae1ba --- /dev/null +++ b/assets/pages/scripts/billass/bill/billmanage.js_bak @@ -0,0 +1,1076 @@ +var fun = { + init: function () { + commSelect.area_Pl_LinkedSelect("#bill-parkArea", "#bill-parkIds"); + fun.dateInit(); + fun.monthdateInit(); + fun.createTableData(); + fun.initSummaryFeeData(); + //弹窗 + documentBindFunc.on('click', '[lookOper]', function() { + fun.lookOper(this); + }); + }, + //时间初始化 + dateInit: function () { + $('#bill-daterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#bill-daterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#bill-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + $("#bill-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + monthdateInit: function () { + /** 月 时间初始化 **/ + $('#bill-monthdaterange-btnsta').val(moment().subtract('months', 1).format('YYYY-MM')); + $('#bill-monthdaterange-btnend').val(moment().subtract('months', 1).format('YYYY-MM')); + //开始日期 + $("#bill-monthdaterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#bill-monthdaterange-btnend").datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + //startDate:startVal, + format: 'yyyy-mm', + weekStart: 1, + autoclose: true, + startView: 3, + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + + /*获取查询参数*/ + queryParamForBillManage: function () { + var plNos = JSON.parse($("#bill-parkIds").val()); + if (plNos.length < 0 || plNos == null || plNos == undefined) { + plNos.push(-1); + } + /**统计分类 1、日 2、 月**/ + var timeType = 1; + /*开始时间*/ + var beginTime; + /*结束时间*/ + var endTime; + timeType = $("#queryType").val(); + if (1 == parseInt(timeType)) { + //日 + beginTime = $("#bill-daterange-btnsta").val(); + endTime = $("#bill-daterange-btnend").val(); + beginTime = beginTime + " 00:00:00"; + endTime = endTime + " 23:59:59"; + } else { + timeType = 2; + beginTime = $("#bill-monthdaterange-btnsta").val() + "-01 00:00:00"; + endTime = $("#bill-monthdaterange-btnend").val(); + + var dates = endTime.split("-"); + if (dates[1] == '02') { + endTime = endTime + "-28 23:59:59"; + } else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07' + || dates[1] == '08' || dates[1] == '10' || dates[1] == '12') { + endTime = endTime + "-31 23:59:59"; + } else { + endTime = endTime + "-30 23:59:59"; + } + + } + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + var detailType =$("#tab-btn-wrap").find(".tabAction").val();///**1.停车场;2:办事处.*/ + //alert(detailType) + var req = { + plNos: plNos, + beginTime: beginTime, + endTime: endTime, + timeType: timeType, + detailType:detailType + }; + //console.log(req); + return req; + }, + + initSummaryFeeData:function(){ + $("#park_actFeeForRefund").text("0.00"); + + + $("#park_actFee").text("0.00"); + $("#vip_actFee").text("0.00"); + $("#back_actFee").text("0.00"); + + + $("#park_dicountFee").text("0.00"); + $("#back_dicountFee").text("0.00"); + $("#vip_dicountFee").text("0.00"); + + $("#park_totalFee").text("0.00"); + $("#vip_totalFee").text("0.00"); + $("#back_totalFee").text("0.00"); + $("#all_totalFee").text("0.00"); + $("#all_actFee").text("0.00"); + $("#all_dicountFee").text("0.00"); + $("#all_otherFee").text("0.00"); + $("#all_qfFee").text("0.00"); + $("#qfRefund").text("0.00"); + + var req=fun.queryParamForBillManage(); + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.querySummaryFeeByType(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data=res.data; + if(data !=null){ + + /********************begin实收*****************************/ + //临停实收 + var parkActFee=data.actFee==null?0:data.actFee; + //会员卡实收 + var vipActFee=data.actFeeForVIP==null?0:data.actFeeForVIP; + //补缴实收 + var backActFee=data.actFeeForBack==null?0:data.actFeeForBack; + /*****************************begin折扣*****************************/ + //临停折扣 + var parkDicountFee=data.dicountFee==null?0:data.dicountFee; + //补缴折扣 + var backDicountFee=data.dicountFeeForBack==null?0:data.dicountFeeForBack; + //会员卡折扣 + var vipDicountFee=data.dicountFeeForVIP==null?0:data.dicountFeeForVIP; + /********************begin退费*****************************/ + debugger; + //临停退费 + var orderRefund = data.orderRefund==null?0:data.orderRefund; + //会员卡退费 + var vipRefund = data.vipRefund==null?0:data.vipRefund; + //充值退费 + var rechargeRefund = data.rechargeRefund==null?0:data.rechargeRefund; + /********************begin欠费*****************************/ + //临停欠费 + var orderArrearageFee=data.arrearageFee==null?0:data.arrearageFee; + //会员卡欠费 + var vipArrearageFee=data.arrearageFeeForVIP==null?0:data.arrearageFeeForVIP; + //补缴卡欠费 + var arrearageFeeForBack=data.arrearageFeeForBack==null?0:data.arrearageFeeForBack; + //欠费 + + + /******************************begin赋值操作******************************************/ + //实收 + var allactFee=parkActFee+vipActFee+backActFee; + $("#all_actFee").text(fun.money(allactFee));//实收汇总 + $("#park_actFee").text(fun.money(parkActFee)); //临停实收 + $("#vip_actFee").text(fun.money(vipActFee)); //会员卡实收 + $("#back_actFee").text(fun.money(backActFee)); //补缴实收 + //折扣 + var alldicountFee=parkDicountFee+backDicountFee+vipDicountFee; + $("#all_dicountFee").text(fun.money(alldicountFee)); //汇总折扣 + $("#park_dicountFee").text(fun.money(parkDicountFee));//临停折扣 + $("#vip_dicountFee").text(fun.money(vipDicountFee));//会员卡折扣 + $("#back_dicountFee").text(fun.money(backDicountFee));//补缴折扣 + //退费 + var allotherFee =orderRefund+vipRefund+rechargeRefund; + $("#all_otherFee").text(fun.money(allotherFee));//汇总退费 + $("#orderRefund").text(fun.money(orderRefund));//临停退费 + $("#vipRefund").text(fun.money(vipRefund));//会员卡退费 + $("#rechargeRefund").text(fun.money(rechargeRefund));////补缴退费 + //应收 + $("#park_totalFee").text(fun.money(parkActFee+parkDicountFee+orderArrearageFee));//临停应收=临停实收+临停折扣+临停欠费 + $("#vip_totalFee").text(fun.money(vipActFee+vipDicountFee+vipDicountFee+vipArrearageFee));//会员卡应收=会员卡实收+会员卡折扣+会员卡欠费 + // $("#back_totalFee").text(fun.money(backActFee+backDicountFee+arrearageFeeForBack));//补缴卡应收=补缴卡实收+补缴折扣+补缴欠费 + $("#all_totalFee").text(fun.money(parkActFee+parkDicountFee+orderArrearageFee+vipActFee+vipDicountFee+vipDicountFee+vipArrearageFee+backActFee+backDicountFee+arrearageFeeForBack)); + + //欠费 + $('#all_qfFee').text(fun.money(orderArrearageFee));//总欠费 + $('#qfRefund').text(fun.money(orderArrearageFee));//临停欠费 + } + + + } + } + }; + sysAjax(opt); + + }, + //停车场 table 默认 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + [{ + field: 'checkDate', + title: '日期', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + formatter: commonObj.replacenull + //width: '20%' + }, + { + field: 'areaName', + title: '办事处', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + //formatter: commonObj.replacenull + formatter: fun.operFormatter + }, + + { + field: 'totalFee', + title: '应收', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { + field: '', + title:'实收', + valign: "middle", + align: "center", + colspan: 5, + rowspan: 1, + formatter: commonObj.moneyFormatter + }, + { + field: 'arrearageFee', + title: '欠费', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { field: 'actFeeForRefund', + title: '退费', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + { + field: 'dicountFee', + title: '折扣', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + + + ], + [ + + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'balanceFee', + title: '余额', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'orderPayedFee', + title: '合计', + width: '10%', + align: "left", + formatter: allActFeeFormatter + }, + + ], + + + ] + }); + function allActFeeFormatter(value, row, index){ + var allFee=0; + if(row.wxFee!=null){ + allFee=allFee+row.wxFee; + } + if(row.aliFee!=null){ + allFee=allFee+row.aliFee; + } + if(row.cashFee!=null){ + allFee=allFee+row.cashFee; + } + if(row.balanceFee!=null){ + allFee=allFee+row.balanceFee; + } + /** 退费**/ + //var allRefundFee=row.actFeeForRefund==null?0:row.actFeeForRefund; + if(allFee=="0.00"){ + return 0.00; + }else{ + return (allFee/100).toFixed(2); + } + + } + + + function totalFeemoneyFormatter(value, row, index){ + // var allFee=0; + // if(row.arrearageFee!=null){ + // allFee+=row.arrearageFee; + // } + // return ((value+allFee)/100).toFixed(2); + return ((value)/100).toFixed(2); + }; + + }, + //办事处 table 维度 + createbscTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + [{ + field: 'checkDate', + title: '日期', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + formatter: commonObj.replacenull + //width: '20%' + }, + { + field: 'areaName', + title: '办事处', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + //formatter: fun.operFormatter + formatter: commonObj.replacenull + }, + { + field: 'plName', + title: '停车场', + valign: "middle", + align: 'left', + rowspan: 2 + + }, + { + field: 'totalFee', + title: '应收', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { + field: '', + title:'实收', + valign: "middle", + align: "center", + colspan: 5, + rowspan: 1, + formatter: commonObj.moneyFormatter + }, + { + field: 'arrearageFee', + title: '欠费', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { field: 'actFeeForRefund', + title: '退费', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + { + field: 'dicountFee', + title: '折扣', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + + + ], + [ + + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'balanceFee', + title: '余额', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'orderPayedFee', + title: '合计', + width: '10%', + align: "left", + formatter: allActFeeFormatter + }, + + ], + + + ] + }); + function allActFeeFormatter(value, row, index){ + var allFee=0; + if(row.wxFee!=null){ + allFee=allFee+row.wxFee; + } + if(row.aliFee!=null){ + allFee=allFee+row.aliFee; + } + if(row.cashFee!=null){ + allFee=allFee+row.cashFee; + } + if(row.balanceFee!=null){ + allFee=allFee+row.balanceFee; + } + + + if(allFee=="0.00"){ + return "0.00"; + }else{ + return (allFee/100).toFixed(2); + } + + } + + + function totalFeemoneyFormatter(value, row, index){ + // var allFee=0; + // if(row.arrearageFee!=null){ + // allFee+=row.arrearageFee; + // } + // return ((value+allFee)/100).toFixed(2); + return ((value)/100).toFixed(2); + }; + + }, + //操作显示 + operFormatter: function(value, row, index) { + var areaName="-"; + if(row.areaName!=null){ + areaName=row.areaName; + } + var areaId="-"; + if(row.areaId!=null){ + areaId=row.areaId; + } + var operStr = ''+ areaName +''; + return operStr; + }, + + money:function (value) { + if(value==null || value==undefined || value =="0.00"){ + return "0.00"; + }else{ + return (value/100).toFixed(2); + } + }, + + lookOper: function(element) { + $('#popAreaname').text(''); + var areaName = $(element).attr('areaname'); + areaId = $(element).attr('areaid'); + var areadate = $(element).attr('datatime'); + $('#popAreaname').text(areaName+'('+areadate+')'); + if(areaName!=null && areaName !=undefined && areaName !="全部" && areaName!="-"){ + var beginTime= $(element).attr('datatime'); + if(beginTime.length>7){ + beginTimeNew =new Date((beginTime + " 00:00:00").replace(/-/g, "/")); + endTimeNew =new Date((beginTime + " 23:59:59").replace(/-/g, "/")); + }else{ + beginTimeNew =new Date((beginTime + "-01 00:00:00").replace(/-/g, "/")); + //console.log(beginTime); + var dates = beginTime.split("-"); + //console.log(dates[1]); + if (dates[1] == '02') { + beginTime = beginTime + "-28 23:59:59"; + } else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07' + || dates[1] == '08' || dates[1] == '10' || dates[1] == '12') { + beginTime = beginTime + "-31 23:59:59"; + } else { + beginTime = beginTime + "-30 23:59:59"; + } + endTimeNew =new Date((beginTime).replace(/-/g, "/")); + } + var plNos = JSON.parse($("#bill-parkIds").val()); + //console.log(plNos.length); + parkIdList = []; + if(parseInt(plNos.length)>=2){ + parkIdList=fun.getPlNosByAreaName(areaName); + }else{ + parkIdList=plNos; + } + + //console.log(parkIdList); + + fun.popCreateTableData(); + + $('#billmana-myModal').modal('show'); + } + + }, + getPlNosByAreaName: function (areaName) { + //停车场 + var data = fn.getParkLot(); + var areaPlNos = {}; + var areaNameList = []; + for (var i = 0; i < data.length; i++) { + var areaNameNew = data[i].areaName; + if (areaNameList.indexOf(areaNameNew) == -1) { + areaNameList.push(areaNameNew); + var plNos = []; + plNos.push(data[i].code); + areaPlNos[areaNameNew] = plNos; + } else { + var plNos = areaPlNos[areaNameNew]; + if (plNos.indexOf(data[i].code) == -1) { + plNos.push(data[i].code); + areaPlNos[areaNameNew] = plNos; + } + } + } + return areaPlNos[areaName]; + }, + popCreateTableData: function () { + $('#billincometable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequestpop, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + [ + // { + // field: 'checkDate', + // title: '日期', + // valign: "middle", + // align: 'left', + // rowspan: 2, + // valign: "middle", + // //width: '20%' + // }, + { + field: 'plName', + title: '车场名称', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle" + }, + { + field: 'totalFee', + title: '应收', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: totalFeemoneyFormatter + }, + {field: '', title:'实收', valign: "middle", align: "center", colspan: 5, rowspan: 1}, + { + field: 'arrearageFee', + title: '欠费', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: fun.money + }, + { field: 'actFeeForRefund', + title: '退费', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: fun.money + }, + { + field: 'dicountFee', + title: '折扣', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: fun.money + }, + + + ], + [ + + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter: fun.money + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter: fun.money + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: fun.money + }, + { + field: 'balanceFee', + title: '余额', + width: '10%', + align: "left", + formatter: fun.money + }, + { + field: 'orderPayedFee', + title: '合计', + width: '10%', + align: "left", + formatter: allActFeeFormatter + }, + + ], + + + ] + }); + function allActFeeFormatter(value, row, index){ + var allFee=0; + if(row.wxFee!=null){ + allFee+=row.wxFee; + } + if(row.aliFee!=null){ + allFee+=row.aliFee; + } + if(row.cashFee!=null){ + allFee+=row.cashFee; + } + if(row.balanceFee!=null){ + allFee+=row.balanceFee; + } + + if(allFee=="0.00"){ + return "0.00"; + }else{ + return (allFee/100).toFixed(2); + } + + } + + + function totalFeemoneyFormatter(value, row, index){ + // var allFee=0; + // if(row.arrearageFee!=null){ + // allFee+=row.arrearageFee; + // } + // return ((value+allFee)/100).toFixed(2); + return ((value)/100).toFixed(2); + }; + }, +}; +fun.init(); +//查询 +documentBindFunc.on('click', '#bill-queryBtn', function () { + fun.createTableData(); + fun.initSummaryFeeData(); +}); +//切换 搜索部分 是否生效 +documentBindFunc.on('click', "#bill-toptab div.ITD-graynav-topbar", function () { + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + //console.log(index); + //切换完后,调用查询表格 + // fun.createTableData(); + +}); +//日月切换 点击事件 +//日 点击 +documentBindFunc.on('click', '#billdayType', function () { + $('.bill-choosedateday').removeClass('display-none'); + $('.bill-choosedatemonth').addClass('display-none'); + $('#queryType').attr('data-value', '1'); + $("#queryType").val(1); + fun.createTableData(); + fun.initSummaryFeeData(); +}); +//月 点击 +documentBindFunc.on('click', '#billmonthType', function () { + $('.bill-choosedatemonth').removeClass('display-none'); + $('.bill-choosedateday').addClass('display-none'); + $('#queryType').attr('data-value', '2'); + $("#queryType").val(2); + fun.createTableData(); + fun.initSummaryFeeData(); +}); + +//切换 全部 有差异 无差异 +$('#tab-btn-wrap li').on('click',function () { + var that=$(this).index(); + //因后面逻辑需要,一定要线切换 tabAction 样式, 然后在调用 对应的函数 + $(this).addClass('tabAction').siblings().removeClass('tabAction'); + if(that==1){ + //停车场 维度 + fun.createbscTableData(); + + }else{ + //办事处 维度 + fun.createTableData(); + } + +}); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.queryParamForBillManage(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + req.checkFeeTypes=[100,103,300,301,302]; + var opt = { + method: 'post', + url: dataUrl.util.queryDetailForAreaByType(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + + +/** + * 区域弹窗 + * 自定义table AJAX请求 + * @param {Object} params + */ +var parkIdList=[]; +var areaId; +var beginTimeNew; +var endTimeNew; +function tableLoadRequestpop(params) { + var req = fun.queryParamForBillManage(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.beginTime=beginTimeNew; + req.endTime=endTimeNew; + req.plNos = null; + req.areaId = areaId; + req.sysCode = sysComm.sysCode; + req.checkFeeTypes=[100,103,300,301,302]; + var cehicleFlowTableAjax = { + method: params.type, + url: dataUrl.util.queryDetailForParkByType(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res.data); + if(res.code == '8888') { + //alert(res.data); + params.success(res.data); + } else { + + } + } + }; + sysAjax(cehicleFlowTableAjax); +} + + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#billmanageReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#billmanageReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#billmanageReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#billmanageReport").val("导出"); + } + else { + curCount--; + $("#billmanageReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#billmanageReport',function (){ + //获取table所有行数据 + var parkLot = $("#recordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var req = fun.queryParamForBillManage(); + var beginTime = DateUtils.long2String(req.beginTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + + var url = dataUrl.util.exportBillExcleforNewAll(); + var forms = exportIncomeDetailFormforbill(url, beginTime, endTime, req.plNos, req.timeType + ); + forms.submit(); +}); + + + + +function exportIncomeDetailFormforbill(url, beginTime, endTime, plNos, timeType +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "beginTime"; + input.value = beginTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endTime"; + input2.value = endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + //input2.type = "hidden"; + input3.name = "plNos"; + input3.value = plNos; + form.appendChild(input3); + + + var input16 = document.createElement("input"); + //input15.type = "hidden"; + input16.name = "timeType"; + input16.value = timeType; + form.appendChild(input16); + + return form; + +}; diff --git a/assets/pages/scripts/billass/billassTmp.js b/assets/pages/scripts/billass/billassTmp.js new file mode 100644 index 0000000..1aad0f5 --- /dev/null +++ b/assets/pages/scripts/billass/billassTmp.js @@ -0,0 +1,66 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
'+urlarr[i].name+'
' + }else{ + _html += '
  • '+urlarr[i].name+'
  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/billmanage', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/billass/bill/billmanage.css'); + res.load('../../assets/pages/scripts/billass/bill/billmanage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-billmanage').addClass('ITD-topbar-clickactive'); +}); +R.route('/remsum', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/billass/appmenuFile/remsum.css'); + res.load('../../assets/pages/scripts/billass/appmenuFile/remsum.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-remsum').addClass('ITD-topbar-clickactive'); +}); +R.route('/tollincomeandexp', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/billass/tollexp/tollincomeandexp.css'); + res.load('../../assets/pages/scripts/billass/tollexp/tollincomeandexp.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-tollincomeandexp').addClass('ITD-topbar-clickactive'); + +}); +R.route('/oddchange', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/billass/odd/oddchange.css'); + res.load('../../assets/pages/scripts/billass/odd/oddchange.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-oddchange').addClass('ITD-topbar-clickactive'); + +}); +R.route('/onlinerevenue', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/billass/onlinefile/onlinerevenue.css'); + res.load('../../assets/pages/scripts/billass/onlinefile/onlinerevenue.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-onlinerevenue').addClass('ITD-topbar-clickactive'); + +}); diff --git a/assets/pages/scripts/billass/odd/oddchange.css b/assets/pages/scripts/billass/odd/oddchange.css new file mode 100644 index 0000000..f1fbb56 --- /dev/null +++ b/assets/pages/scripts/billass/odd/oddchange.css @@ -0,0 +1,43 @@ +.reconciliation-card-detail{ + padding: 15px 0 3px; +} +.reconciliation-card-detail li{ + height: 18px; + line-height: 18px; + margin-bottom: 10px; +} +/*复合表头样式*/ +.ITD-complex-table thead tr:nth-of-type(2) th{ + border-top: 1px solid #e7ecf1!important; +} +.billFixwid{ + max-width: 155px; +} +/*tab 切换*/ +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; + margin-bottom: 18px; +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD; + color: #1E95CD; +} \ No newline at end of file diff --git a/assets/pages/scripts/billass/odd/oddchange.html b/assets/pages/scripts/billass/odd/oddchange.html new file mode 100644 index 0000000..7bb056c --- /dev/null +++ b/assets/pages/scripts/billass/odd/oddchange.html @@ -0,0 +1,163 @@ + +
    +
    +
    +
    +
    + +
    +
    + +
    + +
    + 投币时间 +
    + +
    + - +
    + +
    +
    +
    +
    +
    查询
    +
    +
    +
    +
    +
    + 找零日期 +
    + +
    + - +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
      +
    • +
        +
      • 投币金额 (元)
      • +
      • + +
      • +
        +
      +
    • + +
    +
    +
    +
      +
    • +
        +
      • 微信找零 (元)
      • +
      • + +
      • +
        +
      +
    • + +
    +
    +
    +
      +
    • +
        +
      • 支付宝找零 (元)
      • +
      • + +
      • +
        +
      +
    • +
    +
    +
    +
      +
    • +
        +
      • 未找零金额 (元)
      • +
      • + +
      • +
        +
      +
    • +
    +
    +
    +
    +
    +
    +
      +
    • 详细信息
    • +
    • + + +
    • +
    +
    + +
    +
    +
    +
    +
    +
    + + + + + + + + diff --git a/assets/pages/scripts/billass/odd/oddchange.js b/assets/pages/scripts/billass/odd/oddchange.js new file mode 100644 index 0000000..801117f --- /dev/null +++ b/assets/pages/scripts/billass/odd/oddchange.js @@ -0,0 +1,459 @@ +var fun = { + init: function () { + commSelect.plName_select("#_parkIds",true); + fun.dateInit(); + fun.createTableData(); + fun.initSummaryFeeData(); + }, + //时间初始化 + dateInit: function () { + $('#bill-daterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD 00:00:00')); + $('#bill-daterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59')); + //开始日期 + $("#bill-daterange-btnsta").datetimepicker({ + weekStart: 1, + autoclose: true, + startView: 2, + forceParse: false, + minView: 0, + minuteStep:1,//分钟间隔1分钟 + // showMeridian: 1, + format: 'yyyy-mm-dd hh:ii:ss', + endDate: moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59'), + language: 'zh-CN', + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }) + $("#bill-daterange-btnend").datetimepicker({ + weekStart: 1, + autoclose: true, + startView: 2, + forceParse: false, + minView: 0, + minuteStep:1,//分钟间隔1分钟 + // showMeridian: 1, + format: 'yyyy-mm-dd hh:ii:ss', + endDate: moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59'), + language: 'zh-CN', + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }); + // $('#odd-daterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD 00:00:00')); + // $('#odd-daterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59')); + //开始日期 + $("#odd-daterange-btnsta").datetimepicker({ + weekStart: 1, + autoclose: true, + startView: 2, + forceParse: false, + minView: 0, + minuteStep:1,//分钟间隔1分钟 + // showMeridian: 1, + format: 'yyyy-mm-dd hh:ii:ss', + endDate: moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59'), + language: 'zh-CN', + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }) + $("#odd-daterange-btnend").datetimepicker({ + weekStart: 1, + autoclose: true, + startView: 2, + forceParse: false, + minView: 0, + minuteStep:1,//分钟间隔1分钟 + // showMeridian: 1, + format: 'yyyy-mm-dd hh:ii:ss', + endDate: moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59'), + language: 'zh-CN', + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }) + }, + + /*获取查询参数*/ + getQueryParams: function () { + var plnos = JSON.parse($("#_parkIds").val()); + var payTypes = []; + var payTypesStr = $("#payType").val(); + if(payTypesStr != null && payTypesStr != undefined && payTypesStr != ''){ + payTypes = JSON.parse(payTypesStr); + } + /*投币 开始时间*/ + var beginTime; + /*结束时间*/ + var endTime; + /*找零 开始时间*/ + var payBeginTime; + /*结束时间*/ + var payEndTime; + //日 + beginTime = $("#bill-daterange-btnsta").val(); + endTime = $("#bill-daterange-btnend").val(); + payBeginTime = $("#odd-daterange-btnsta").val(); + payEndTime = $("#odd-daterange-btnend").val(); + + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + payBeginTime = payBeginTime == null || payBeginTime.length == 0 ? null : new Date((payBeginTime).replace(/-/g, "/")); + payEndTime = payEndTime == null || payEndTime.length == 0 ? null : new Date((payEndTime).replace(/-/g, "/")); + // var payOrderState =$("#tab-btn-wrap").find(".tabAction").val();/**20-未找零 40-已找零*/ + var req = { + orgId:fn.getOrgId(), + plNos: plnos, + payTypes: payTypes, + beginTime: beginTime, + endTime: endTime, + payBeginTime: payBeginTime, + payEndTime: payEndTime, + }; + req.sysCode = sysComm.sysCode; + //console.log(req); + return req; + }, + + initSummaryFeeData:function(){ + $("[id$='Fee']").text(commonObj.moneyFormatter(0)); + + var req=fun.getQueryParams(); + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + var opt = { + method: 'post', + url: dataUrl.util.queryCashRefundForTotal(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data=res.data; + if(data !=null){ + + $("#orderActFee").text(commonObj.moneyFormatter(data.orderActFee)); + $("#wxPaidFee").text(commonObj.moneyFormatter(data.wxPaidFee)); + $("#aliPaidFee").text(commonObj.moneyFormatter(data.aliPaidFee)); + $("#nonePaidFee").text(commonObj.moneyFormatter(data.nonePaidFee)); + } + + } + } + }; + sysAjax(opt); + + }, + + //生成表格数据 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'parkOutTime', + title: '投币时间', + valign: "middle", + align: 'left', + formatter: commonObj.timeFormatter + //width: '20%' + }, + { + field: 'plName', + title: '车场名称', + valign: "middle", + align: 'left', + formatter: commonObj.replacenull + //width: '20%' + }, + { + field: 'carNumber', + title: '车牌号', + valign: "middle", + align: 'left', + formatter: commonObj.replacenull + //width: '20%' + }, + { + field: 'parkInTime', + title: '进场时间', + valign: "middle", + align: 'left', + formatter: commonObj.timeFormatter + //width: '20%' + }, + { + field: 'orderActFee', + title: '投币金额', + align: 'left', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + { + field: 'orderTotalFee', + title: '现金应缴', + align: 'left', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + { + field: 'payType', + title: '找零类型', + align: 'left', + valign: "middle", + formatter: commonObj.discPayTypeFormatter + }, + { + field: 'orderActFee', + title: '找零金额', + align: 'left', + valign: "middle", +// formatter: commonObj.moneyFormatter + formatter: function (value, row, index) { + if(row.payOrderState == 40){ + var actFee = (row.orderActFee == null ? 0 :row.orderActFee); + var totalFee = (row.orderTotalFee == null ? 0 :row.orderTotalFee); + return commonObj.moneyFormatter(actFee - totalFee); + }else{ + return '-'; + } + + } + }, + { + field: 'payFinishTime', + title: '找零时间', + valign: "middle", + align: 'left', + formatter: commonObj.timeFormatter + //width: '20%' + }, + { + field: 'payOrderState', + title: '找零状态', + align: 'left', + valign: "middle", + formatter: function (value, row, index) { + if(row.payOrderState == 40){ + return '已找零'; + }else{ + return '未找零'; + } + + } + }, + { + field: 'remark', + title: '备注', + align: 'left', + valign: "middle", + formatter: commonObj.replacenull + }, + + ] + }); + + }, + + +}; +fun.init(); +//查询 +documentBindFunc.on('click', '#bill-queryBtn', function () { + fun.createTableData(); + fun.initSummaryFeeData(); +}); + +//切换 全部 有差异 无差异 +/*$('#tab-btn-wrap li').on('click',function () { + //因后面逻辑需要,一定要线切换 tabAction 样式, 然后在调用 对应的函数 + $(this).addClass('tabAction').siblings().removeClass('tabAction'); + fun.createTableData(); +});*/ + + + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParams(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCashRefundForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + + + + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#billmanageReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#billmanageReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#billmanageReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#billmanageReport").val("导出"); + } + else { + curCount--; + $("#billmanageReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#billmanageReport',function (){ + //获取table所有行数据 + var parkLot = $("#recordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var req = fun.getQueryParams(); + var beginTime = DateUtils.long2String(req.beginTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + var payBeginTime = DateUtils.long2String(req.payBeginTime, 7); + var payEndTime = DateUtils.long2String(req.payEndTime, 7); + if(beginTime == "-"){ + beginTime = null; + } + if(endTime == "-"){ + endTime = null; + } + if(payBeginTime == "-"){ + payBeginTime = null; + } + if(payEndTime == "-"){ + payEndTime = null; + } + var url = dataUrl.util.exportCashRefundList(); + var forms = exportIncomeDetailFormforbill(url,req.plNos, beginTime, endTime,payBeginTime,payEndTime,fn.getOrgId(), req.payTypes, req.sysCode + ); + forms.submit(); +}); + + + + +function exportIncomeDetailFormforbill(url,plNos, beginTime, endTime,payBeginTime,payEndTime,orgId, payTypes, sysCode +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "beginTime"; + input.value = beginTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endTime"; + input2.value = endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "payBeginTime"; + input3.value = payBeginTime; + form.appendChild(input3); + + var input4 = document.createElement("input"); + input4.name = "payEndTime"; + input4.value = payEndTime; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "orgId"; + input5.value = orgId; + form.appendChild(input5); + + + var input1 = document.createElement("input"); + input1.name = "plNos"; + input1.value = plNos; + form.appendChild(input1); + + var input6 = document.createElement("input"); + input6.name = "payTypes"; + input6.value = payTypes; + form.appendChild(input6); + + var input7 = document.createElement("input"); + input7.name = "sysCode"; + input7.value = sysCode; + form.appendChild(input7); + + return form; + +}; diff --git a/assets/pages/scripts/billass/onlinefile/onlinerevenue.css b/assets/pages/scripts/billass/onlinefile/onlinerevenue.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/billass/onlinefile/onlinerevenue.css diff --git a/assets/pages/scripts/billass/onlinefile/onlinerevenue.html b/assets/pages/scripts/billass/onlinefile/onlinerevenue.html new file mode 100644 index 0000000..e9b570c --- /dev/null +++ b/assets/pages/scripts/billass/onlinefile/onlinerevenue.html @@ -0,0 +1,121 @@ + +
    +
    + +
    +
    +
    + 日期 +
    + +
    + - +
    + +
    +
    +
    +
    +
    查询
    +
    +
    +
    +
    + +
    +
    + + +
    +
    +
      +
    • +
        +
      • 合计 (元)
      • +
      • + 0.00 +
      • +
        +
      +
    • + +
    +
    +
    +
      +
    • +
        +
      • 微信 (元)
      • +
      • + 0.00 +
      • +
        +
      +
    • + +
    +
    +
    +
      +
    • +
        +
      • 支付宝 (元)
      • +
      • + 0.00 +
      • +
        +
      +
    • +
    +
    +
    +
      +
    • +
        +
      • 退款 (元)
      • +
      • + 0.00 +
      • +
        +
      +
    • +
    +
    +
    + +
    +
    +
    +
      +
    • 详细信息
    • +
    • + +
    • +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/billass/onlinefile/onlinerevenue.js b/assets/pages/scripts/billass/onlinefile/onlinerevenue.js new file mode 100644 index 0000000..52e576a --- /dev/null +++ b/assets/pages/scripts/billass/onlinefile/onlinerevenue.js @@ -0,0 +1,366 @@ + +var fun={ + init:function () { + fun.dateInit(); + fun.createTableData(); + }, + dateInit:function () { + $('#online-daydaterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#online-daydaterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#online-daydaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + $("#online-daydaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + queryParamManage:function () { + /*开始时间*/ + var beginTime; + /*结束时间*/ + var endTime; + beginTime = $("#online-daydaterange-btnsta").val(); + endTime = $("#online-daydaterange-btnend").val(); + beginTime = beginTime + " 00:00:00"; + endTime = endTime + " 23:59:59"; + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + //alert(detailType) + var req = { + beginTime: beginTime, + endTime: endTime, + }; + return req; + }, + //停车场 table 默认 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + [ + { + field: 'checkDate', + title: '日期', + align: 'center', + rowspan: 2, + valign: "middle", + formatter: commonObj.replacenull + }, + { + field: '', + title: '停车收入', + align: 'center', + colspan: 2, + rowspan: 1, + valign: "middle", + formatter: commonObj.replacenull + + }, + + { + field: '', + title: '停车补缴', + align: 'center', + colspan: 2, + rowspan: 1, + valign: "middle", + formatter: commonObj.replacenull + }, + { + field: '', + title: 'APP充值', + align: 'center', + colspan: 2, + rowspan: 1, + valign: "middle", + formatter: commonObj.replacenull + }, + { + field: '', + title: '会员卡', + align: 'center', + colspan: 2, + rowspan: 1, + valign: "middle", + formatter: commonObj.replacenull + }, + { + field: '', + title: '收费员充值', + align: 'center', + colspan: 2, + rowspan: 1, + valign: "middle", + formatter: commonObj.replacenull + + }, + { + field: '', + title: '合计', + align: 'center', + colspan: 3, + rowspan: 1, + valign: "middle", + formatter: commonObj.replacenull + }, + { + field: '', + title: '退款', + align: 'center', + colspan: 2, + rowspan: 1, + valign: "middle", + formatter: commonObj.replacenull + }, + ], + [ + + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '小计', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + ], + + + ] + }); + }, +}; + +fun.init(); + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.queryParamManage(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + req.checkFeeTypes=[100,103,300,301,302]; + var opt = { + method: 'post', + url: dataUrl.util.queryDetailForAreaByTypeNew(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#billmanageReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#billmanageReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#billmanageReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#billmanageReport").val("导出"); + } + else { + curCount--; + $("#billmanageReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#billmanageReport',function (){ + //获取table所有行数据 + var parkLot = $("#recordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var req = fun.queryParamForBillManage(); + var beginTime = DateUtils.long2String(req.beginTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + + var url = dataUrl.util.exportBillExcleforAllNew(); + var forms = exportIncomeDetailFormforbill(url, beginTime, endTime, req.plNos, req.timeType + ); + forms.submit(); +}); + + diff --git a/assets/pages/scripts/billass/tollexp/tollincomeandexp.css b/assets/pages/scripts/billass/tollexp/tollincomeandexp.css new file mode 100644 index 0000000..ac40e46 --- /dev/null +++ b/assets/pages/scripts/billass/tollexp/tollincomeandexp.css @@ -0,0 +1,35 @@ +/*tab 切换*/ +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; + margin-bottom: 18px; + +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + /* border-radius: 0 4px 4px 0 !important; */ +} +.tab-btn-wrap li:nth-of-type(3) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD; + color: #1E95CD; +} \ No newline at end of file diff --git a/assets/pages/scripts/billass/tollexp/tollincomeandexp.html b/assets/pages/scripts/billass/tollexp/tollincomeandexp.html new file mode 100644 index 0000000..716a254 --- /dev/null +++ b/assets/pages/scripts/billass/tollexp/tollincomeandexp.html @@ -0,0 +1,184 @@ + +
    +
    + + +
    +
    + +
    + +
    +
    + 日期 +
    + +
    + - +
    + +
    +
    +
    +
    +
    查询
    +
    +
    +
    +
    + +
    +
    + + +
    +
    +
      +
    • +
        +
      • 充值金额 (元)
      • +
      • + 0.00 +
      • +
        +
      +
    • + +
    +
    +
    +
      +
    • +
        +
      • 充值笔数 (笔)
      • +
      • + 0 +
      • +
        +
      +
    • +
    +
    +
    +
      +
    • +
        +
      • 充退金额 (元)
      • +
      • + 0.00 +
      • +
        +
      +
    • +
    +
    +
    +
      +
    • +
        +
      • 充退笔数 (笔)
      • +
      • + 0 +
      • +
        +
      +
    • + +
    +
    +
    + + + + +
    +
    +
    +
      +
    • 详细记录
    • +
    • + +
    • +
    +
    +
      +
    • 全部
    • +
    • 充值
    • +
    • 充退
    • +
    +
    +
    +
    + +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/billass/tollexp/tollincomeandexp.js b/assets/pages/scripts/billass/tollexp/tollincomeandexp.js new file mode 100644 index 0000000..4d1879c --- /dev/null +++ b/assets/pages/scripts/billass/tollexp/tollincomeandexp.js @@ -0,0 +1,628 @@ +var datanum = $('#toll-toptab').attr('data-value'); +var inexpfun = { + init: function () { + //收费员初始化 + inexpfun.tollperInit(); + /**时间初始化*/ + $('#tollinexp-daydaterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $('#tollinexp-daydaterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#tollinexp-daydaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#tollinexp-daydaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //充值记录 + inexpfun.inexpcreateTableData(); + //支出记录 + inexpfun.expcreateTableData(); + + //统计汇总 + inexpfun.chargerAcctRecordStatistic(); + + }, + //获取接口收费员信息 + getChargerMsg: function () { + var plNo = ""; + var chargers = ""; + var req = { + baseRequest: {pageNum: 1, pageSize: 0}, + plNo: plNo, + parkAreaCode: "", + groupCode: "", + onduty: "", + status: "", + nameOrNo: "", + orgId: fn.getOrgId(), + sysCode: sysComm.sysCode + }; + var opt = { + async: false, + data: JSON.stringify(req), + method: "POST", + url: dataUrl.util.queryCashierListInfo(), + success: function (res) { + if (res.code == '8888') { + chargers = JSON.stringify(res.data.rows); + } + } + } + sysAjax(opt); + return JSON.parse(chargers); + }, + //收费员下拉框 + tollperInit: function () { + var data = inexpfun.getChargerMsg(); + var htmls = ''; + var html = ''; + var chargerCodes = []; + for (var i = 0; i < data.length; i++) { + chargerCodes.push(data[i].chargerCode); + html += ""; + } + var chargerCodesStr = JSON.stringify(chargerCodes); + htmls = '' + html; + + $("#tollinexp-tollper").empty(); + $("#tollinexp-tollper").append(htmls); + $('#tollinexp-tollper').selectpicker('render'); + }, + //默认生成表格数据-充值记录 + inexpcreateTableData: function () { + $('#tollinexp-billtable-pay').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + sortable: true, //是否启用排序 + sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: inexptableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'custId', + title: ' 收费员编号', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'custName', + title: ' 收费员名称', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'rechargeFee', + title: ' 充值费用', + width: '15%', + align: "center", + formatter: commonObj.moneyFormatter + }, + + { + field: 'rechargeType', + title: ' 充值渠道', + width: '15%', + align: "center", + formatter: function (value) { + var rechargeTypeStr = '未知'; + //充值类型 1-支付宝;2-微信;3-银联;4-微信公众号;6-现金;7-IC卡;2-微信; 5-账户余额;-5-个人账户余额退款 + switch (value) { + case 1: + rechargeTypeStr = '支付宝'; + break; + case 2: + rechargeTypeStr = '微信'; + break; + case 5: + rechargeTypeStr = '余额'; + break; + case 6: + rechargeTypeStr = '现金'; + break; + default: + rechargeTypeStr = '未知'; + break; + + } + return rechargeTypeStr; + + } + }, + + { + field: 'rechargeBalance', + title: ' 充值后余额', + width: '15%', + align: "center", + formatter: commonObj.moneyFormatter + }, + + { + field: 'rechargeTime', + title: ' 充值时间', + width: '15%', + align: "left", + formatter: commonObj.timeFormatter + }, + + { + field: 'rechargeRemark', + title: ' 备注', + width: '15%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + commonObj.replacenull(value) + '
    '; + } + }, + { + field: 'rechargeName', + title: ' 操作人', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + + + ] + }); + }, + //收费员账户记录汇总 + chargerAcctRecordStatistic: function () { + var req = inexpfun.inexpgetQueryParam(); + var index = $('#toll-toptab div.ITD-graynav-topbaractive').index(); + + req.sysCode = sysComm.sysCode; + var url; + if (index == 0) { + url = dataUrl.util.statisticAcctRecharge(); + } else { + url = dataUrl.util.statisticAcctPayOut(); + } + var opt = { + method: 'post', + url: url, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + + if (res.code == '8888') { + + var data = res.data; + + if (index == 0) { + $('#all_totalFee').text(commonObj.moneyFormatter(data.positiveFee)); + $('#all_wxFee').text(commonObj.numberFormatter(data.positiveNum)); + $('#all_zfbFee').text(commonObj.moneyFormatter(data.negativeFee)); + $('#all_otherFee').text(commonObj.numberFormatter(data.negativeNum)); + } else { + $('#outall_totalFee').text(commonObj.moneyFormatter(data.positiveFee)); + $('#outall_wxFee').text(commonObj.numberFormatter(data.positiveNum)); + + } + + + } + } + }; + sysAjax(opt); + + + }, + + //生成表格数据-支出记录 + expcreateTableData: function () { + $('#tollinexp-billtable-exp').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + sortable: true, //是否启用排序 + sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: inexptableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'custId', + title: ' 收费员编号', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'custName', + title: ' 收费员名称', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'tradeFee', + title: ' 支出费用', + width: '15%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'tradeBalance', + title: ' 支出后余额', + width: '15%', + align: "left", + formatter: commonObj.moneyFormatter + }, + + { + field: 'carNumber', + title: ' 车牌号', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + + { + field: 'berthNo', + title: ' 泊位编号', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'tradeTime', + title: ' 支出时间', + width: '15%', + align: "left", + formatter: commonObj.timeFormatter + }, + + + ] + }); + }, + /*获取查询参数*/ + inexpgetQueryParam: function () { + var tollPer = JSON.parse($("#tollinexp-tollper").val()); + + var rechargeTypeIndex = $('#tab-btn-wrap li.tabAction').index(); + var rechargeType = null; + if (rechargeTypeIndex == 0) { + rechargeType = 10; + } + if (rechargeTypeIndex == 1) { + rechargeType = 20; + } + if (rechargeTypeIndex == 2) { + rechargeType = 30; + } + + if (tollPer.length < 1) { + tollPer.push("-1X"); + } + var beginTime = null; + var endTime = null; + var dateValue1 = $("#tollinexp-daydaterange-btnsta").val(); + var dateValue2 = $("#tollinexp-daydaterange-btnend").val(); + beginTime = dateValue1 + " 00:00:00"; + endTime = dateValue2 + " 23:59:59"; + + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + var req = { + rechargeType: rechargeType, + sysCode: sysComm.sysCode, + beginTime: beginTime, + custIds: tollPer, + endTime: endTime + }; + return req; + }, + +}; +//默认页面初始执行函数 +inexpfun.init(); + +//查询事件 +documentBindFunc.on('click', "#tollinexp-Btn", function () { + var index = datanum; + //console.log(index); + if (0 == index) { + // console.log(index); + //充值记录 + inexpfun.inexpcreateTableData(); + + } else { + //支出记录 + inexpfun.expcreateTableData(); + } + + //统计汇总 + inexpfun.chargerAcctRecordStatistic(); + +}) + +/** + * 默认table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ +function inexptableLoadRequest(params) { + var req = inexpfun.inexpgetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var index = datanum; + console.log(index); + var url; + if (index == 0) { + url = dataUrl.util.queryAcctRechargeForPage(); + } else { + url = dataUrl.util.queryAcctPayOutForPage(); + } + var opt = { + method: 'post', + url: url, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + } + } + }; + sysAjax(opt); +}; + +//切换头部收入topbar +documentBindFunc.on('click', "#toll-toptab div", function () { + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + datanum = $("#toll-toptab").attr('data-value'); + datanum = index; + if (index == 0) { + // tableByexp + /** 函数 表格数据 **/ + inexpfun.inexpcreateTableData(); + $('#tableByexp,#expout_card').addClass('display-none'); + $('#tableByin,#expuse_card').removeClass('display-none'); + window.clearInterval(InterValObj);//停止计时器 + $("#expReport").removeAttr("disabled");//启用按钮 + $("#inexpReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#expReport").val("导出"); + $("#inexpReport").val("导出"); + + } else { + /** 函数 表格数据 **/ + inexpfun.expcreateTableData(); + window.clearInterval(InterValObj);//停止计时器 + $('#tableByin,#expuse_card').addClass('display-none'); + $('#tableByexp,#expout_card').removeClass('display-none'); + $("#expReport").removeAttr("disabled");//启用按钮 + $("#inexpReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#expReport").val("导出"); + $("#inexpReport").val("导出"); + } + //统计汇总 + inexpfun.chargerAcctRecordStatistic(); + +}); +//切换 全部 有差异 无差异 +$('#tab-btn-wrap li').on('click', function () { + //因后面逻辑需要,一定要线切换 tabAction 样式, 然后在调用 对应的函数 + $(this).addClass('tabAction').siblings().removeClass('tabAction'); + inexpfun.inexpcreateTableData(); +}); + +//导出 功能 +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + var tabindex = datanum; + console.log(tabindex) + if (tabindex == 0) { + curCount = count; + //设置button效果,开始计时 + $("#inexpReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#inexpReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 + } else { + console.log(tabindex) + curCount = count; + //设置button效果,开始计时 + $("#expReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#expReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 + } + +} + +//timer处理函数 +function SetRemainTime() { + var tabindex = datanum; + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + if (tabindex == 0) { + $("#inexpReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#inexpReport").val("导出"); + } else { + $("#expReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#expReport").val("导出"); + } + } else { + curCount--; + if (tabindex == 0) { + $("#inexpReport").val(curCount + "秒后可再次导出"); + } else { + $("#expReport").val(curCount + "秒后可再次导出"); + } + } +} + +//导出excle +documentBindFunc.on('click', '#inexpReport', function () { + //获取table所有行数据 + var parkLot = $("#tollinexp-billtable-pay").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#tollinexp-billtable-pay").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if (parkLot.length < 1) { + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + }, 3000); + return false; + } + //超1万条 缩短查询范围 + if (numTotal > 10000) { + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + }, 3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var req = inexpfun.inexpgetQueryParam(); + var beginTime = DateUtils.long2String(req.beginTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + var url = dataUrl.util.exportAcctRechargeList(); + var forms = exportIncomeDetailFormforbill(url, beginTime, endTime, req.custIds, req.rechargeType); + forms.submit(); +}); +//导出excle +documentBindFunc.on('click', '#expReport', function () { + //获取table所有行数据 + var parkLot = $("#tollinexp-billtable-exp").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#tollinexp-billtable-exp").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if (parkLot.length < 1) { + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + }, 3000); + return false; + } + //超1万条 缩短查询范围 + if (numTotal > 10000) { + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + }, 3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var req = inexpfun.inexpgetQueryParam(); + var beginTime = DateUtils.long2String(req.beginTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + + var url = dataUrl.util.exportAcctPayOutList(); + console.log(beginTime + ',' + endTime) + var forms = exportIncomeDetailFormforbill(url, beginTime, endTime, req.custIds); + forms.submit(); +}); + +function exportIncomeDetailFormforbill(url, beginTime, endTime, custIds, rechargeType) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "get"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "beginTime"; + input.value = beginTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endTime"; + input2.value = endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + //input2.type = "hidden"; + input3.name = "custIds"; + input3.value = custIds; + form.appendChild(input3); + + if (rechargeType != undefined && null != rechargeType) { + var input4 = document.createElement("input"); + //input2.type = "hidden"; + input4.name = "rechargeType"; + input4.value = rechargeType; + form.appendChild(input4); + } + + + return form; + +}; diff --git a/assets/pages/scripts/businessmanage/analogbilling.js b/assets/pages/scripts/businessmanage/analogbilling.js new file mode 100644 index 0000000..f25e7d1 --- /dev/null +++ b/assets/pages/scripts/businessmanage/analogbilling.js @@ -0,0 +1,589 @@ +var plNos = []; +(function () { + var mydate = new Date(); + var year = mydate.getFullYear(); //获取当前年份(2位) + + $("#timeinStartDate").val( moment().subtract('days', 2).format('YYYY-MM-DD hh:mm')); + $("#timeinEndDate").val( moment().subtract('days', 0).format('YYYY-MM-DD hh:mm')); + + $("#timeinStartDate").datetimepicker({ + endDate: moment(year+'-12-29').subtract('seconds', 0).format('YYYY-MM-DD hh:mm'), + format: 'yyyy-mm-dd hh:ii', + minView: 0, + minuteStep:1, + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }).on("changeDate", function (ev) { + var startval = moment($("#timeinStartDate").val()).add('days', 0).format('YYYY-MM-DD HH:mm'); + var val = moment($("#timeinStartDate").val()).add('days', 2).format('YYYY-MM-DD HH:mm'); + // console.log(startval+ ' '+val) + $("#timeinEndDate").datetimepicker("setStartDate", startval); + $("#timeinEndDate").datetimepicker("setEndDate", val); + $("#timeinEndDate").val(val) + $('#timeinEndDate').datetimepicker('update'); + $("#timeinEndDate").datetimepicker({ + format: 'yyyy-MM-dd hh:ii', + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + });; + $("#timeinEndDate").datetimepicker({ + startDate: moment().subtract('days', 2).format('YYYY-MM-DD hh:mm'), + endDate: moment().subtract('days', 0).format('YYYY-MM-DD hh:mm'), + format: 'yyyy-mm-dd hh:ii', + autoclose: true, + forceParse: false, + minView: 0, + minuteStep:1, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + + $('#echart_con').css('width',$(window).width()-245+'px'); + var myChart = echarts.init(document.getElementById('echart_con')); + //条件查询 + $(document).on('click', '#queryBtn', function() { + if(!fun.validateParams()){ + return; + }; + fun.initTable(); + + + }); + var fun = { + //初始下拉框 + init:function () { + //初始化停车场下拉框 + fun.initPark(); + //初始化车辆类型下拉框 + fn.getCarType(fun.setCarTypeSelect); + /*if(!fun.validateParams()){ + return; + };*/ + //ajax 下拉框和出场类型后 请求table表格和图例 + + //fun.initEcharts(); + + + }, + validateParams: function(){ + var carNo = $("#carNo").val().trim(); + if(!/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/.test(carNo)||carNo.length<7) { + swal({title:"提示",text:"请输入正确的车牌号!",type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + + var plNosTemp = $("#parkIds").val(); + if(plNosTemp == "" || plNosTemp == null){ + swal({title:"提示",text:"停车场必选!",type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + var carType = $("#carType").val(); + if(carType == "" || carType == null){ + swal({title:"提示",text:"车辆类型必选!",type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + var inTime = $("#timeinStartDate").val(); + if(inTime == "" || inTime == null){ + swal({title:"提示",text:"进场时间必选!",type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + var outTime = $("#timeinEndDate").val(); + if(outTime == "" || outTime == null){ + swal({title:"提示",text:"出场时间必选!",type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + return true; + + }, + //初始化停车场下拉框 + initPark: function () { + var data = fn.getParkLot(); + $("#parkIds").empty(); + var html = ''; + plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } +// var plnosStr = JSON.stringify(plNos); +// html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + $('#parkIds').trigger('change'); + }, + //设置车辆类型下拉框 + setCarTypeSelect: function (datas) { + $('#carType').empty(); + var html = ''; + + $.each(datas, function (index, data) { + html += ""; + }) + + //html = '' + html; + $('#carType').append(html); + $('#carType').selectpicker('refresh'); + + fun.initTable(); + + }, + initBilling:function(data){ + //load parkFee + var divs = $(".col_right_li_mon"); + //费用 + var totalFee = (data.parkFee/100).toFixed(2)+""; + var frontFee = totalFee.substring(0,totalFee.length-3); + var afterFee = totalFee.substring(totalFee.length-3,totalFee.length); + divs.eq(0).find("span").eq(0).text(frontFee); + divs.eq(0).find("span").eq(1).text(afterFee+" 元"); + //停车时长 + var second = parseInt(data.parkDuration); + var duration = formatSeconds(second); + var patrn = /\d+(\.\d+)?/g; + var nums = duration.match(patrn); + divs.eq(1).find("span").eq(0).text(nums[0]); + divs.eq(1).find("span").eq(1).text(duration.substr(nums[0].length,duration.length)); + //车牌号 + divs.eq(2).text(data.carNo); + //停车场 + var parkName = $("#parkIds").find("option:selected").text(); + divs.eq(3).text(parkName); + $(".col_right_li_mon_ellipsis").attr("title",parkName); + var billingLogId = data.billingLogId; + fun.initEcharts(billingLogId); + }, + initTable:function () { + var plNosTemp = $("#parkIds").val(); + plNos = JSON.parse(plNosTemp); + var inTime = $("#timeinStartDate").val()+':00'; + var outTime = $("#timeinEndDate").val()+':00'; + var carType = $("#carType").val(); + var carNo = $("#carNo").val().trim(); + + var req = { + sysCode: sysComm.sysCode, + plNo: plNos[0], + carType:carType, + carNo:carNo, + inTime:new Date(inTime.replace(new RegExp(/-/gm) ,"/")), + outTime:new Date(outTime.replace(new RegExp(/-/gm) ,"/")), + isShowLog:1 + }; + var opt = { + method: 'post', + url: dataUrl.util.queryBillingRuleByPlNoAndCarType(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code=='8888') { + if(res.data.length>0){ + fun.loadTable(res.data); + } + } + else{ + swal({title:"提示",text:res.msg,type:"warning",timer:3000,allowOutsideClick:true}); + return ; + } + } + }; + sysAjax(opt); + var opt2 = { + method: 'post', + url: dataUrl.util.billing(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code=='8888') { + fun.initBilling(res.data); + } + else{ + swal({title:"提示",text:res.msg,type:"warning",timer:3000,allowOutsideClick:true}); + return ; + } + } + }; + sysAjax(opt2); + + }, + loadTable:function(data){ + //load ruleTable + var ruleTable = $("#ruleTable"); + var tableHead = '' + +'' + +' 车型 ' + +' 适用日期 ' + +' 单日限价 ' + +' 单次限价 ' + +' 单次免费时长 ' + +' 跨时间段规则 ' + +'' + +''; + var tableBody = ''; + $.each(data, function (index, item) { + var fristFreeTime = item.fristFreeTime/60; + if(fristFreeTime<=0){ + fristFreeTime = '不限'; + } + tableBody += '' + +' '+fun.carTypeFormatter(item.carType) +' ' + +' '+fun.applyDateTypeFormatter(item.applyDateType) +' ' + +' '+fun.chargeFormatter(item.dayMaxCharge) +' ' + +' '+fun.chargeFormatter(item.maxCharge) +' ' + +' '+fristFreeTime +' 分钟' + +' '+fun.crossTimeRuleTypeFormatter(item.crossTimeRuleType) +' ' + +''; + }); + tableBody+=''; + ruleTable.html(tableHead+tableBody); + //load ruleDetailTable + var ruleDetailTable = $("#ruleDetailTable"); + var tableHead = '' + +'' + +' 开始时间' + +' 结束时间 ' + +' 时长限制 ' + +' 计费类型 ' + +' 费率 ' + +' 单位免费时长 ' + +'' + +''; + var tableBody = ''; + var num = 1; + $.each(data, function (index, item) { + for(var i=0;i<(item.billingRuleConfigs).length;i++){ + var unitFreeTime = item.billingRuleConfigs[i].unitFreeTime/60; + if(unitFreeTime<=0){ + unitFreeTime = '不限'; + }else{ + unitFreeTime += '分钟'; + } + + tableBody += '' + +' '+fun.timeFormatter(item.billingRuleConfigs[i].startTime) +' ' + +' '+fun.timeFormatter(item.billingRuleConfigs[i].endTime) +' ' + +' '+(fun.formatterSecondToHour(item.billingRuleConfigs[i].startBillingTime))+'-'+(fun.formatterSecondToHour(item.billingRuleConfigs[i].endBillingTime)) +'小时 ' + +' '+fun.billingConfigTypeFormatter(item.billingRuleConfigs[i].billingConfigType) +' ' + +' '+fun.chargeFormatter(item.billingRuleConfigs[i].unitRate)+'/'+fun.unitFormatter(item.billingRuleConfigs[i].unit) +' ' + +' '+unitFreeTime+'' + +''; + } + + }); + tableBody+=''; + ruleDetailTable.html(tableHead+tableBody); + + + }, + formatterSecondToHour:function(value){ + if(value == null){ + return ""; + } + return value/60/60; + }, + timeFormatter: function (value) { + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 3); + } + }, + dateFormatter: function (value) { + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 1); + } + }, + billingConfigTypeFormatter:function(value){ + var result=""; + if (value == null ) { + return "-"; + } + switch (value) { + case 1: + result = '按时'; + break; + case 2: + result = '按次'; + break; + default: + result = '未知'; + } + return result; + }, + unitFormatter:function(value){ + var result=""; + if (value == null ) { + return "-"; + } + switch (value) { + case 1: + result = '分钟'; + break; + case 2: + result = '15分钟'; + break; + case 3: + result = '30分钟'; + break; + case 4: + result = '60分钟'; + break; + case 5: + result = '次'; + break; + default: + result = '未知'; + } + return result; + }, + carTypeFormatter:function(value){ + var result=""; + if (value == null ) { + return "-"; + } + switch (value) { + case 1: + result = '大型车'; + break; + case 2: + result = '小型车'; + break; + default: + result = '未知'; + } + return result; + }, + applyDateTypeFormatter:function(value){ + var result=""; + if (value == null ) { + return "-"; + } + switch (value) { + case -1: + result = '不限'; + break; + case 1: + result = '工作日'; + break; + case 2: + result = '非工作日'; + break; + default: + result = '未知'; + } + return result; + }, + //分-元 + chargeFormatter:function(value){ + + if (value == null||value<0 ) { + return "不限"; + } + return (value/100).toFixed(2)+"元"; + }, + //分-元(不带单位) + feeFormatter:function(value){ + if (value == null ) { + return 0; + } + return (value/100).toFixed(2); + }, + //跨时间段规则类型 + crossTimeRuleTypeFormatter:function(value){ + var result=""; + if (value == null ) { + return "-"; + } + switch (value) { + case 1: + result = '前置匹配'; + break; + case 2: + result = '后置匹配'; + break; + case 3: + result = '完全匹配'; + break; + default: + result = '未知'; + } + return result; + }, + initEcharts:function (billingLogId) { + // 指定图表的配置项和数据 + var option = { + color:['#f7c926','#ff0202','#3598dc'], + tooltip: { +// trigger: 'item', +// formatter: function (params) { +// return '我的'+params.seriesName+':'+params.value+'元'; +// } + trigger: 'axis' + + }, + legend: { + left: 'center', + y:'bottom', + data: ['停车费用'] + }, + xAxis: { + type: 'category', + axisLabel:{ + interval: 0, + rotate:30//倾斜度 -90 至 90 默认为0 + }, + splitLine: {show: false}, + axisLine:{ + show:false, + }, + axisTick:{ + show:false, + }, + data: ['2017-10-10', '2017-10-10', '2017-10-10', '2017-10-10', '2017-10-10', '2017-10-10', '2017-10-10', '2017-10-10', '2017-10-10'] + }, + grid: { + x: '3%', + right: '4%', + y2: '33%', + y:'8%', + containLabel: true + }, + yAxis: { + type: 'value', + axisLine:{ + show:false, + }, + axisTick:{ + show:false, + } + }, + series: [ + { + name: '停车费用', + type: 'line', + data: [11, 32, 91, 27, 81, 247, 41, 51,61], + markPoint:{ + symbolSize :13, + itemStyle:{ + normal:{ + color:'#ff0202' + } + }, + data:[] + } + + } + ] + }; + + // 使用刚指定的配置项和数据显示图表。 + //myChart.setOption(option); + //费用计算明细ajax请求函数 + fun.feeDetailAjax(option, myChart,billingLogId); + + + }, + feeDetailAjax:function(option,myChart,billingLogId){ +// billingLogId = 'fa8d84e6ec88456ca096cbbca0a94a5a'; + if(billingLogId==null || billingLogId == ""){ + return; + } + + var req = { + sysCode: sysComm.sysCode, + id:billingLogId + }; + var opt = { + method: 'post', + async: false, + url: dataUrl.util.queryBillingLogForLineChart(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code=='8888') { + //fun.loadTable(res.data); + if(res.data.length<1){ + return; + } + var dates = []; + var realFeeOfDays = []; + var points=[]; + $.each(res.data.feeRecordChart,function(index,item){ + dates.push(item.xName); + realFeeOfDays.push(item.yFee); + }); + $.each(res.data.pointMarkBeans,function(index,item){ + points.push(item); + + }); + option.xAxis.data = dates; + option.series[0].data = realFeeOfDays; + option.series[0].markPoint.data =points; + } + else{ + swal({title:"提示",text:res.msg,type:"warning",timer:3000,allowOutsideClick:true}); + return ; + } + } + }; + sysAjax(opt); + myChart.setOption(option,true); + myChart.resize(); + } + }; + fun.init(); + window.onresize = function () { + $('#echart_con').css('width',$(window).width()-245+'px'); + myChart.resize(); + } +})(); +function formatSeconds(value) { + var theTime = parseInt(value);// 秒 + var theTime1 = 0;// 分 + var theTime2 = 0;// 小时 + var theTime3 = 0;//天 +// alert(theTime); + if(theTime<60){ + return theTime+'秒'; + } + if (theTime >= 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); +// alert(theTime1+"-"+theTime); + if (theTime1 >= 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + if(theTime2 >= 24){ + theTime3 = parseInt(theTime2/24); + theTime2 = parseInt(theTime2%24); + } + } + } + var result = ''; + if (theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if (theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + if (theTime3 > 0) { + result = "" + parseInt(theTime3) + "天" + result; + } + return result; +}; +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click',".ITD-search-morebtn",function(){ + $(".hide-common-style").toggleClass("display-none"); +}); diff --git a/assets/pages/scripts/businessmanage/businessTmp.js b/assets/pages/scripts/businessmanage/businessTmp.js new file mode 100644 index 0000000..71130df --- /dev/null +++ b/assets/pages/scripts/businessmanage/businessTmp.js @@ -0,0 +1,70 @@ +var urlarr = JSON.parse(sessionStorage.getItem("businessmanageArr")); +var _html = ''; +for(var i=0;i
    '+urlarr[i].name+'
    ' + }else{ + _html += '
  • '+urlarr[i].name+'
  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/vipmanage', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/businessmanage/css/vipmanage.css'); + res.load('../../assets/pages/scripts/businessmanage/pages/vipmanage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-vipmanage').addClass('ITD-topbar-clickactive'); + + + +}); +R.route('/analogbilling', function() { + + $("#pageCssLink").attr("href",'../../assets/pages/scripts/businessmanage/css/analogbilling.css'); + res.load('../../assets/pages/scripts/businessmanage/pages/analogbilling.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-analogbilling').addClass('ITD-topbar-clickactive'); + + +}); +// +R.route('/invoicemanage', function() { + + $("#pageCssLink").attr("href",'../../assets/pages/scripts/businessmanage/css/invoicemanage.css'); + res.load('../../assets/pages/scripts/businessmanage/pages/invoicemanage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-invoicemanage').addClass('ITD-topbar-clickactive'); + + +}); +//peccancymanage +R.route('/peccancymanage', function() { + + $("#pageCssLink").attr("href",'../../assets/pages/scripts/businessmanage/css/peccancymanage.css'); + res.load('../../assets/pages/scripts/businessmanage/pages/peccancymanage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-peccancymanage').addClass('ITD-topbar-clickactive'); + + +}); \ No newline at end of file diff --git a/assets/pages/scripts/businessmanage/css/analogbilling.css b/assets/pages/scripts/businessmanage/css/analogbilling.css new file mode 100644 index 0000000..98cca35 --- /dev/null +++ b/assets/pages/scripts/businessmanage/css/analogbilling.css @@ -0,0 +1,122 @@ +/*公用开始*/ + +.table{ + margin-bottom: 0; +} +/*公用结束*/ +/*搜索css开始。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。*/ +.analog-parking-l { + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.analog-parkinput78{ + width: 78%; + height: 34px; + line-height: 34px; +} +.control-label { + width: 60px; + line-height: 35px; +} +.bootstrap-select.btn-group .dropdown-toggle .filter-option{ + text-overflow: ellipsis; + color: #666; +} +/*.input-group .daterange-bg { + width: 130px; + text-align: left; + background: url(../img/dataicon.png) no-repeat right 0; + background-color: #fff; + padding-right: 40px; +}*/ +/*搜索css结束。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。*/ + + +/*表格css开始。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。*/ +.main_wrap .portlet.light{ + padding-top: 0; + padding-right: 0; +} + +.col_center{ + width: calc(100% - 357px); + width: -webkit-calc(100% - 357px); + width: -moz-calc(100% - 357px); + width: -ms-calc(100% - 357px); + width: -o-calc(100% - 357px); + height: 176px; + overflow-y: scroll; +} +.col_center table thead tr th{ + width: 110px !important; + text-align: center; +} +.col_center table tbody tr td{ + width: 110px !important; + text-align: center; +} +.col_right{ + width: 332px; + height: 175px; + background-color: #fafafa; + margin-left: 25px; + padding-top: 25px; + padding-left: 25px; + box-shadow: 0px 1px 10px 0px rgba(50, 50, 50, 0.2); +} +.col_right_ul{padding-left: 0} +.col_right_ul li{ + float: left; + width: 153px; + margin-bottom: 20px; +} +.col_right_li_title{ + border-left: 2px solid #2abb9b; + font-size: 13px; + padding-left: 10px; + height: 13px; + line-height: 13px; + margin-bottom: 10px; +} +.col_right_li_mon{ + padding-left: 14px; +} +.col_right_li_mon span:nth-of-type(1){ + font-size: 28px; + color: #1f2b3d; +} +.col_right_li_mon span:nth-of-type(2){ + color: #1f2b3d; +} +.col_right_li_title_l{ + border:0; + padding-left: 13px; +} +.col_right_li_mon_ellipsis{ + overflow: hidden; text-overflow:ellipsis; white-space: nowrap; +} +.form-control{ + color: #666 !important; +} + +/*表格css结束。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。*/ + + +/*图例css开始。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。*/ +.echarts_wrap{ + margin-top: 24px; +} +.echarts_wrap_title{ + padding: 5px 10px; + background-color: #1f2b3d; + color: #fff; + width: 110px; + border-radius: 5px!important; +} +.echart_con{ + height: 270px; +} + +/*图例css结束。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。*/ \ No newline at end of file diff --git a/assets/pages/scripts/businessmanage/css/invoicemanage.css b/assets/pages/scripts/businessmanage/css/invoicemanage.css new file mode 100644 index 0000000..78349bc --- /dev/null +++ b/assets/pages/scripts/businessmanage/css/invoicemanage.css @@ -0,0 +1,61 @@ +/*搜索栏----*/ +.invoice-parking-l { + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.invoice-parkinput78 { + width: 78%; + height: 34px; + line-height: 34px; +} +/*弹窗 sta */ +.ITD-form-padleft5-read div.checker,.ITD-form-padleft5-read div.radio { + margin-top: -9px; + margin-left: 0 !important; +} +div.checker,div.radio{ + margin-left: 0 !important; +} +#resetmodel .modal-footer{ + border-top: 0; + text-align: center !important; +} +#write_rule,#writeoper_rule{ + color: #ff0000; +} +.form-group-ul{ + height: 180px; + width: 95%; + overflow-y:auto; +} +.berthAreaList{ + padding-left: 25px; +} +.berthAreaList li{ + float: left; + padding-left: 20px; + width: 110px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + margin: 0px 25px 5px 0; + cursor: pointer; + background: url("../../../img/input-checkexActive.png") no-repeat 0 center; +} +.berthAreaList li.checkexActive{ + background: url("../../../img/input-checkbox.png") no-repeat 0 center; +} + +.radio-list .radio{ + /*margin-right: 0 !important;*/ + /*margin-left: 0px !important;*/ + /*margin-top: -4px !important;*/ +} +.resetMsg-cont{ + height: 80px; + line-height: 80px; + text-align: center; + font-size: 16px; +} diff --git a/assets/pages/scripts/businessmanage/css/vipmanage.css b/assets/pages/scripts/businessmanage/css/vipmanage.css new file mode 100644 index 0000000..d896f83 --- /dev/null +++ b/assets/pages/scripts/businessmanage/css/vipmanage.css @@ -0,0 +1,129 @@ +/*搜索栏----*/ +.vipmanage-parking-l { + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.vipmanage-parkinput78 { + width: 78%; + height: 34px; + line-height: 34px; +} +.bootstrap-select.btn-group .dropdown-menu.inner{ + max-height: 200px!important; +} +.car-number{ + border: 1px solid #ccc; + height: 18px; + line-height: 18px; + padding: 0px 8px; + text-align: center; + display: block; + float: left; + margin:-1px 5px 0; +} +.add-plus,.deduct-minus{ + width: 16px; + height: 16px; + line-height: 16px; + color: #fff; + padding-left: 4px; +} +.row-stye-rule{ + width: 111px; + padding-left: 25px; + margin-bottom: 15px; +} +.vip-wid564{ + width: 664px; + margin-left: 9px; + padding: 15px; + background-color: #f5f7f8; +} +.totla-mon{ + margin-top: 15px; + font-size: 16px; + padding-left: 25px; +} +.totla-mon span{ + margin-left: 10px; + margin-right: 10px; + font-size: 20px; + color: #fe516d; +} +.colstyles-div{ + font-size: 13px; + +} +.colstyles-div span{ + margin-left: 5px; +} +.parkNametit{ + padding-left: 25px; + margin-top: -12px; + height: 35px; + line-height: 35px; +} + +.colfix{ + color: #f00; + padding-left: 25px; + margin-top: -20px; +} +.parkMono{ + height: 160px; + display: none; +} +.form-parkMono{ + height: 100px; + overflow-y: scroll; + background: #fff; + padding-left: 20px; + padding-top: 5px; +} + + + +.tishiMsg{ + height: 30px; + line-height: 30px; +} +.form-body-con-padding{ + padding: 15px 15px; +} +.btn.default:not(.btn-outline){ + background-color: #e1e5ec; +} + + +.progressWidth{ + width: 200px; + height: 15px; + border: 1px solid #efefef; + border-radius: 10px!important; + position: relative; + overflow: hidden; + margin-right: 10px; +} +.progressLoad{ + position: absolute; + left: 0; + top:0; + height: 15px; + background-color: #32c5d2; +} +#write_rule,#change_rule{ + color: #ff0000; +} +#progressWrap { + padding-top: 15px; + padding-left: 38px; + padding-bottom: 15px; +} + +.renewMon{ + margin-right: 10px; +} + + diff --git a/assets/pages/scripts/businessmanage/invoicemanage.js b/assets/pages/scripts/businessmanage/invoicemanage.js new file mode 100644 index 0000000..8f5f5d0 --- /dev/null +++ b/assets/pages/scripts/businessmanage/invoicemanage.js @@ -0,0 +1,462 @@ +/** + * Created by chenbiao on 2017/8/23. + */ + +function formatSeconds(value) { + var theTime = parseInt(value); // 秒 + var theTime1 = 0; // 分 + var theTime2 = 0; // 小时 + // alert(theTime); + if(theTime < 60) { + return theTime + '秒'; + } + if(theTime > 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); + // alert(theTime1+"-"+theTime); + if(theTime1 > 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + } + } + var result = ''; + if(theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if(theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + return result; +}; + +window.downloadFile = function(sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if(/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if(window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if(link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if(document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if(sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; +/*时间筛选框*/ +$("#timeoutEndDate").val(moment().subtract('days', 0).format('YYYY-MM-DD')); +$("#timeoutEndDate").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" +}); +$("#timeoutoperEndDate").val(moment().subtract('days', 0).format('YYYY-MM-DD')); +$("#timeoutoperEndDate").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" +}); +/*搜索条件toggle*/ +$('#transQuery_toggle').on('click', function() { + $('.showtoggle').toggleClass('display-none'); + $(this).find('.transQuery_toggle_arrow').toggleClass('transQuery_toggle_arrow_active'); + +}); + +(function() { + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + /*function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryParkOrderForFinance(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + if(res.code == '8888') { + console.log(res.data); + params.success(res.data); + } + } + }; + sysAjax(opt); + }*/ + + var invoicefun = { + init: function() { + //初始化table + $('#onduty').selectpicker('refresh'); + invoicefun.createTableData(); + }, + //生成表格数据 + createTableData: function() { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'invoiceType', + title: '发票类型', + width: '10%', + align: 'left', + formatter: function(value, row, index) { + if(undefined != value && null != value) { + if(value == '1') { + return '公司' + } else if(value == '0') { + return '个人'; + } else { + return '未知' + } + } + else { + return '-' + } + } + }, + { + field: 'invoiceKind', + title: '发票种类', + width: '10%', + align: 'left', + formatter: function(value, row, index) { + if(undefined != value && null != value) { + if(value == '1') { + return '增值发票' + } else if(value == '0') { + return '普通发票'; + } else { + return '-' + } + }else { + return '-' + } + } + }, + { + field: 'applyDate', + title: '申领时间', + width: '15%', + align: 'left', + formatter: invoicefun.inDatatimeFormatter + }, + { + field: 'fetchTicketWay', + title: '取票方式', + width: '15%', + align: 'left', + formatter: function(value, row, index) { + if(undefined != value && null != value) { + if(value == '1') { + return '自取' + } else if(value == '2') { + return '邮寄' + } + }else{ + return '-'; + } + } + }, + { + field: 'invoiceState', + title: '开票状态', + width: '5%', + align: 'left', + formatter: function(value, row, index) { + if(undefined != value && null != value) { + if(value == '1') { + return '未开票' + } else if(value == '2') { + return '已开票' + }else { + return '未知'; + } + } + } + }, { + field: 'invoiceTotalFee', + title: '发票金额', + width: '10%', + align: 'left', + formatter: invoicefun.moneyFormatter + }, + { + field: 'postDate', + title: '开票时间', + width: '15%', + align: 'left', + formatter: invoicefun.inDatatimeFormatter + }, + { + field: '', + title: '操作', + width: '20%', + align: 'left', + //visible: false, + formatter: invoicefun.freeReasonFormater + } + ] + }); + + }, + /*获取查询参数*/ + getQueryParam: function() { + var _carNumber = $("#_carNumber").val(); + var custPhone = $("#_phone").val(); + var onduty = $('#onduty').val(); + var req = { + custPhone: custPhone, + carNumber: _carNumber, + invoiceState: onduty != '' ? onduty : null + }; + return req; + }, + + //操作 + freeReasonFormater: function(value, row, index) { + var invoiceaddState=row.invoiceState; + var invoiceaddType=row.invoiceType; + var invoiceid=row.id; + var row =JSON.stringify(row).replace(/\"/g,"'"); + var operStr = ''; + if(1 == parseInt(invoiceaddState)) { + operStr = ' 详情开票'; + return operStr; + }else{ + operStr ='详情'; + return operStr; + } + + }, + inDatatimeFormatter: function(value, row, index) { + if(value == null) { + return ""; + } else { + return "
    " + DateUtils.long2String(value, 7) + "
    "; + } + }, + //金额处理 + moneyFormatter: function(value) { + // console.log(typeof value) + if(value == 0 || value == undefined || value == null) { + return 0; + } else { + return(value / 100).toFixed(2); + } + }, + imageformatter: function(value, row, index) { + return ""; + + } + }; + //初始执行 + invoicefun.init(); + //查询 + $(document).on('click', '#invoice-queryBtn', function() { + invoicefun.createTableData(); + }); + //详情公司 弹窗 + documentBindFunc.on('click','.lookMsg',function () { + var type=$(this).attr('data-type') + var row = eval('(' + $(this).attr("data-index") + ')'); + console.log(type) + if(type==0){ + $('#print_perfoot').css('display','block'); + $('#detail_perAddressee').html(row.recipients);//收件人 + $('#detail_peroperAddr').html(row.recipientsAddress);//地址 + $('#detail_perpersonphone').html(row.recipientsPhone);//收件人电话 + // invoicefun.getinvoiceDetailInfo(id); + $('#invoice_perdetailmodel').modal('show'); + }else if(type==1){ + $('#print_foot').css('display','block'); + $('#detail_invoicetopCode').html(row.custName);//抬头 + $('#detail_dutynum').html(row.custTaxid);//税号 + $('#detail_bankNum').html(row.custBankName);//银行 + $('#detail_groupphone').html(row.custPhone);//电话 + $('#detail_groupName').html(row.custCardNo);//账户 + $('#detail_Addressee').html(row.recipients);//收件人 + $('#detail_operAddr').html(row.recipientsAddress);//地址 + $('#detail_personphone').html(row.recipientsPhone);//收件人电话 + // invoicefun.getinvoiceDetailInfo(id); + $('#invoice_detailmodel').modal('show'); + } + + }); + //公司 打印功能 + documentBindFunc.on('click','#detail-print',function () { + var oldstr = document.body.innerHTML;//保存当前页面的HTML + $('#print_foot').css('display','none'); + var newstr = document.getElementById("print_Msg").innerHTML;//得到需要打印的元素HTML + document.body.innerHTML = newstr; + window.print(); + $('#print_foot').css('display','block'); + document.body.innerHTML = oldstr; + + }); + //公司 close 发票弹窗 + documentBindFunc.on('click','#print_close',function () { + $('#invoice_detailmodel').css('display','none'); + $('.modal-backdrop').css('display','none'); + }); + //个人 打印功能 + documentBindFunc.on('click','#detail-perprint',function () { + var oldstr = document.body.innerHTML;//保存当前页面的HTML + $('#print_perfoot').css('display','none'); + var newstr = document.getElementById("print_perMsg").innerHTML;//得到需要打印的元素HTML + document.body.innerHTML = newstr; + window.print(); + $('#print_perfoot').css('display','block'); + document.body.innerHTML = oldstr; + + }); + //个人 close 发票弹窗 + documentBindFunc.on('click','#print_perclose',function () { + $('#invoice_perdetailmodel').css('display','none'); + $('.modal-backdrop').css('display','none'); + }); + //开票弹窗 + $(document).on('click', '.reMsg', function(element) { + var id = $(this).attr('data-index'); + $("#updateId").val(id); + $('#resetmodel').modal('show') + }); + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params) { + var req = invoicefun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryInvoiceListInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + if(res.code == '8888') { + console.log(res.data); + params.success(res.data); + } + } + }; + sysAjax(opt); + } + +})(); + +//发票状态 +$("#reset-submit").on('click', function() { + var id = $("#updateId").val(); + console.log(id); + var req = { + id: id, + sysCode: sysComm.sysCode + }; + + var opt = { + method: 'post', + url: dataUrl.util.updateInvioceById(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + if(res.code == '8888') { + swal({ + title: "提示", + text: "保存成功", + type: "success", + timer: 3000, + allowOutsideClick: true + }); + //关闭添加页面 + $('#resetmodel').modal('hide'); + //初始化table + $('#recordtable').bootstrapTable('refresh', { + silent: true + }); + } else { + swal({ + title: "提示", + text: res.msg, + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } + } + + }; + sysAjax(opt); +}); \ No newline at end of file diff --git a/assets/pages/scripts/businessmanage/pages/analogbilling.html b/assets/pages/scripts/businessmanage/pages/analogbilling.html new file mode 100644 index 0000000..c6b4df8 --- /dev/null +++ b/assets/pages/scripts/businessmanage/pages/analogbilling.html @@ -0,0 +1,252 @@ + +
    +
    + + + + +
    +
    + +
    +
    +
    +
    + 停车计费标准 +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +
    车型 适用日期 单日限价 单次限价 单次免费时长 跨时间段规则
    - - - - - -
    + + + + + + + + + + + + + + + + + + + + + +
    开始时间 结束时间 时长限制 计费类型 费率 单位免费时长
    - - - - - -
    +
    +
    +
      +
    • +
      费用总计
      +
      + 0.00 元 +
      +
    • +
    • +
      停车时长
      +
      + 0.00 分钟 +
      +
    • +
    • +
      车牌号
      +
      + - +
      +
    • +
    • +
      停车场
      +
      + - +
      +
    • +
    +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    +
    + 费用计算明细 +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + + + + diff --git a/assets/pages/scripts/businessmanage/pages/invoicemanage.html b/assets/pages/scripts/businessmanage/pages/invoicemanage.html new file mode 100644 index 0000000..f036e58 --- /dev/null +++ b/assets/pages/scripts/businessmanage/pages/invoicemanage.html @@ -0,0 +1,171 @@ + + +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    +
    + 查询 +
    +
    +
    +
    + + + +
    +
    +
    +
    + 发票列表 + +
    +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + + + diff --git a/assets/pages/scripts/businessmanage/pages/vipmanage.html b/assets/pages/scripts/businessmanage/pages/vipmanage.html new file mode 100644 index 0000000..8e47c40 --- /dev/null +++ b/assets/pages/scripts/businessmanage/pages/vipmanage.html @@ -0,0 +1,517 @@ + + +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    + +
    + +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + +
    + +
    +
    + 查询 +
    +
    +
    +
    + + +
    +
    +
    +
    + 办卡记录 +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/businessmanage/vipmanage.js b/assets/pages/scripts/businessmanage/vipmanage.js new file mode 100644 index 0000000..51351fe --- /dev/null +++ b/assets/pages/scripts/businessmanage/vipmanage.js @@ -0,0 +1,1640 @@ +/** + * Created by chenbiao on 2017/10/26. + */ + +var cacheParkData; +var uploadFileflg=true; //批量上传重复校验标志 +var flg = true; //保存修改防止重复提交 +window.downloadFile = function(sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if(/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if(window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if(link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if(document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if(sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; +/*进场时间筛选框*/ +$('#dateEntranceRange').daterangepicker({ + // timePicker: true, + // timePickerIncrement: 20, + // minDate: moment().subtract('months', 2), + startDate: moment().subtract('days', 0), + endDate: moment().subtract('days', 0), + opens: 'left', //日期选择框的弹出位置 + locale: { + applyLabel: '确定', + cancelLabel: '取消', + // customRangeLabel: '自定义', + daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'], + monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', + '七月', '八月', '九月', '十月', '十一月', '十二月' + ], + // format: 'MM/DD/YYYY HH:mm:ss' + }, + + ranges: { + /* '昨天': [moment().subtract('days', 1), moment().subtract('days', 1)], + '最近一周': [moment().subtract('days', 7), moment().subtract('days', 1)], + '最近一个月': [moment().subtract('months', 1), moment().subtract('days', 1)], + '最近三个月': [moment().subtract('months', 2), moment().subtract('days', 1)],*/ + }, + maxDate: moment().subtract('days', 0), //最大时间 + + }, + function(start, end) { + $('#dateEntranceRange input').val(start.format('YYYY-MM-DD') + ' - ' + end.format('YYYY-MM-DD')); + } +); + +/*搜索条件toggle*/ +$('#transQuery_toggle').on('click', function() { + $('.showtoggle').toggleClass('display-none'); + $(this).find('.transQuery_toggle_arrow').toggleClass('transQuery_toggle_arrow_active'); + +}); + +(function() { + var renewMonCarNum = 1; //卡数量 + var writeCarNum = 1; //填写卡数量 + var fun = { + initSelect: function() { + var cardTypeSelect = new LinkedSelect(); + cardTypeSelect.init([{ + id: "cardTypeSelect", + url: dataUrl.util.getVipCardListSelectItem() + '?noAll=yes', + defaultValue: '', + nullable: false + } + + ]); + var cardNameSelect = new LinkedSelectValues(); + cardNameSelect.init([ + { + id: "cardNameSelect", + //url: dataUrl.util.getVipCardSelectItem() + '?noAll=yes', + url:dataUrl.util.getVipCardNameListSelectItem()+ '?noAll=yes', + defaultValue: '', + nullable: false + } + + ]); + + }, + initParkSelect: function () { + var data = fn.getParkLot(); + + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + + html += ""; + + } + html = '' + html; + $("#parkLotSelect").html(html); + $('#parkLotSelect').selectpicker('refresh'); + fun.createTableData(); + }, + initPark:function(){ + var data = fn.getParkLot(); + var plNos=new Array(); + //console.log(data); + for(var index in data){ + plNos.push(data[index].code); + } + return plNos; + }, + init: function() { + + fun.initParkSelect(); + //初始化下拉框 + fun.initSelect(); + // fun.createTableData(); + + //初始化卡状态 + $('#cardSta').selectpicker('refresh'); + //初始化车型 + $('#carType').selectpicker('refresh'); + + initAddCard(); + }, + //生成表格数据 + createTableData: function() { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'personCustName', + title: '姓名', + width: '10%', + visible: true, + align: 'left' + }, + { + field: 'carNumber', + title: '车牌号', + width: '10%', + align: 'left', + formatter: function(value, row, index) { + if(undefined != value && null != value) { + if(value.length > 8) { + return '无牌车' + } else { + return value; + } + } + } + }, +// { +// field: 'carType', +// title: '车型', +// width: '5%', +// align: 'left', +// formatter: fun.carTypeFormatter +// }, + { + field: 'cardType', + title: '卡类型', + width: '10%', + align: 'left', + formatter: fun.cardTypeFormatter + }, + { + field: 'num', + title: '卡数量', + width: '10%', + align: 'left', + }, + { + field: 'price', + title: '单价', + width: '10%', + align: 'left', + formatter: fun.moneyFormatter + }, + { + field: 'discountAmount', + title: '优惠金额', + width: '10%', + align: 'left', + formatter: function(value, row, index){ + if(value == null || value ==undefined || value ==''){ + return 0; + + }else{ + return(value/ 100).toFixed(2); + } + } + }, + { + field: 'totalAmount', + title: '总金额', + width: '10%', + align: 'left', + formatter: fun.moneyFormatter + }, + +// { +// field: 'cardSta', +// title: '卡状态', +// width: '8%', +// align: 'left', +// visible: false, +// formatter: fun.cardStaFormatter +// }, + { + field: 'effDate', + title: '生效时间', + width: '15%', + align: 'left', + visible: true, + formatter: fun.outDatatimeFormatter + }, + { + field: 'expDate', + title: '失效时间', + width: '15%', + align: 'left', + visible: true, + formatter: function(value, row, index) { + var a=parseInt((row.expDate - row.effDate) / parseInt(1000*3600*24)); + var html=''; + if(value == null) { + return ""; + } else { + if(a<=3){ + html += ""+DateUtils.long2String(value, 1)+" "; + return html; + }else{ + return DateUtils.long2String(value, 1); + } + + } + } + }, + { + field: 'discValue', + title: '折扣', + width: '10%', + align: 'left', + visible: false + + }, + { + field: 'shengyu', + title: '剩余天数', + visible: false, + width: '15%', + align: 'left', + formatter: function(value, row, index) { + var a=parseInt((row.expDate - row.effDate) / parseInt(1000*3600*24)); + if(a<=0){ + return 0; + } + return a; + } + }, + { + field: 'userPhone', + title: '联系方式', + width: '8%', + visible: false, + align: 'left' + }, + { + field: 'address', + title: '地址', + visible: false, + align: 'left' + }, + { + field: 'createDate', + title: '创建时间', + width: '10%', + align: 'left', + visible: false, + formatter: fun.inDatatimeFormatter + }, +// { +// field: 'custCardNo', +// title: '卡号', +// visible: false, +// align: 'left' +// }, + + { + field: 'createName', + title: '创建人', + width: '5%', + align: 'left', + visible: false, + //formatter: fun.intOutFormatter + }, { + field: 'modifyName', + title: '更新人', + width: '5%', + visible: false, + align: 'left', + }, + { + field: 'modifyDate', + title: '更新时间', + width: '10%', + align: 'left', + visible: false, + formatter: fun.inDatatimeFormatter + }, + +// { +// field: 'cardNo', +// title: '卡规则号', +// visible: false, +// align: 'left' +// }, +// +// { +// field: 'park', +// title: '绑定停车场', +// width: '15%', +// align: 'left', +// visible: false, +// formatter: function(value, row, index) { +// var plNames=row.plNames; +// var plName=""; +// for(var i=0;i续费 " + /**if(date.getTime() > row.expDate) { + html += "续费 " + }else{ + html += "续费 " + }*/ + } + + html += "修改"; + + return html; + } + }, + ] + }); + + }, + + /*获取查询参数*/ + getQueryParam: function() { + /*会员卡类型下拉框*/ + var cardType = $("#cardTypeSelect").val(); + /*会员卡名称下拉框*/ + var cardNo = $("#cardNameSelect").val(); + /*卡状态:1:生效 2:失效 3:使用中*/ + var cardState = $("#cardSta").val(); + /*车辆类型下拉框*/ + var carType = $("#carType").val(); + if(cardType == "ALL" || cardType==undefined || cardType=="") { + cardType = null; + } + if(cardNo == "ALL" || cardNo==undefined ||cardNo == "") { + cardNo = null; + } + if(cardState == "ALL" || cardState==undefined ||cardState == "") { + cardState = null; + } + if(carType == "ALL" || carType==undefined ||carType == "") { + carType = null; + } + //var plNos = JSON.parse($("#parkIds").val()); + /*开始时间*/ + var beginTime = null; + /*结束时间*/ + var endTime = null; + + /*解析时间*/ + var dateEntranceRange = $('#dateEntranceRange input').val(); + if(null != dateEntranceRange && dateEntranceRange.trim().length > 0) { + var times = dateEntranceRange.split(' - '); + beginTime = new Date(times[0]); + endTime = new Date(times[1]+" 23:59:59"); + } + + /*车牌号*/ + var carNum = $('#carNumber').val(); + carNum = carNum == null || carNum.length == 0 ? null : carNum.trim(); + var plNos=fun.initPark(); + + var req = { + plNos:plNos, + cardType: cardType, + carType: carType, + cardNo: cardNo, + beginTime: beginTime, + endTime: endTime, + cardState: cardState, + carNum: carNum + }; + console.log(req); + return req; + }, + + payTypeFormater: function(value, row, index) { + //1:支付宝 2:微信 3:银联 4:微信公众号 6:现金 7:IC卡 + var payTypeStr; + switch(value) { + case 1: + payTypeStr = '支付宝' + break; + case 2: + payTypeStr = '微信' + break; + case 3: + payTypeStr = '银联' + break; + case 4: + payTypeStr = '微信公众号' + break; + case 6: + payTypeStr = '现金' + break; + case 7: + payTypeStr = 'IC卡' + break; + default: + payTypeStr = '其他' + } + return payTypeStr; + }, + inDatatimeFormatter: function(value, row, index) { + if(value == null) { + return ""; + } else { + return DateUtils.long2String(value, 1); + } + }, + outDatatimeFormatter: function(value, row, index) { + if(value == null) { + return ""; + } else { + return DateUtils.long2String(value, 1); + } + }, + //金额处理 + moneyFormatter: function(value) { + // console.log(typeof value) + if(value == 0 || value == undefined || value == null|| value == NaN) { + return 0; + } else { + return(value / 100).toFixed(2); + } + }, + carTypeFormatter: function(value, row, index) { + // 1-大型车;2-小型车 + if(value == null) { + return ""; + } else if(1 == value) { + return "大型车"; + } else if(2 == value) { + return "小型车"; + } + }, + cardTypeFormatter: function(value, row, index) { + // 1-年卡;2-半年卡;3-季卡;4-月卡;5-日卡 + if(value == null) { + return ""; + } else if(1 == value) { + return "年卡"; + } else if(2 == value) { + return "半年卡"; + } else if(3 == value) { + return "季卡"; + } else if(4 == value) { + return "月卡"; + } else if(5 == value) { + return "日卡"; + } else if(6 == value) { + return "错峰年卡(周末免费)"; + } else if(7 == value) { + return "错峰月卡(周末免费)"; + } + + }, + cardStaFormatter: function(value, row, index) { + + var date = new Date(); + if(row.effDate == null) { + return "无效"; + } else { + if(row.effDate <= date.getTime() && date.getTime() <= row.expDate) { + return "生效中"; + } else if(date.getTime() < row.effDate){ + return "未生效"; + }else{ + return "已失效"; + } + } + + }, + + }; + + //模版下载 + $(document).on('click', '#excleTemplate', function() { + window.location.href = parkcloudbaseUrl + "vipcard/会员卡批量导入模版.xlsx"; + + + }); + //初始执行 + fun.init(); + $(document).on('click', '#queryBtn', function() { + fun.createTableData(); + }); + //续费数量添加 + $('#add_btn').on('click', function() { + var price = $('#car-type').attr('data-price'); + var month = $('#car-type').attr('data-month'); + var time = $('#effTime-display-none').text(); + renewMonCarNum++; + var newTime=""; + if(month == 0 || month == "0") { + newTime=moment(time).add(1 * renewMonCarNum, 'days').format('YYYY-MM-DD'); + $('#effTime').text(newTime); + } else { + newTime=moment(time).add(month * renewMonCarNum,'months').format('YYYY-MM-DD'); + $('#effTime').text(newTime); + } +// var nowTime=new Date(); +// var nowTime2=new Date(newTime); +// var a=parseInt((nowTime2.getTime() - nowTime.getTime()) / parseInt(1000*3600*24))+1; +// $('#surplusDay').text(a+"天"); + $('#car-number').text(renewMonCarNum); + + $('#addmon').text(moneyFormatter(price * renewMonCarNum)); + }); + //续费数量减去 + $('#deduct_btn').on('click', function() { + var price = $('#car-type').attr('data-price'); + var month = $('#car-type').attr('data-month'); + var time = $('#effTime-display-none').text(); + var showtime = $('#effTime').text(); + if(renewMonCarNum <= 1) { + return; + } + renewMonCarNum--; + var newTime=""; + if(month == 0 || month == "0") { + newTime=moment(showtime).subtract(1 * renewMonCarNum, 'days').format('YYYY-MM-DD'); + } else { + newTime=moment(showtime).subtract(month ,'months').format('YYYY-MM-DD'); + } +// var nowTime=new Date(); +// var nowTime2=new Date(newTime); +// var a=parseInt((nowTime2.getTime() - nowTime.getTime()) / parseInt(1000*3600*24))+1; + $('#effTime').text(newTime); + //$('#surplusDay').text(a+"天"); + $('#car-number').text(renewMonCarNum) + $('#addmon').text(moneyFormatter(price * renewMonCarNum)); + }); + //续费 + $(document).delegate('.renewMon', 'click', function(element) { + + $('#car-number').text('1'); + renewMonCarNum = 1; + var id = $(this).attr('value'); + $('#inputId').val(id); + var modifyRow = $('#recordtable').bootstrapTable('getRowByUniqueId', id); + //赋值 + + var cardTypeName = cardTypeFormatter(modifyRow.cardType); + // 1-年卡;2-半年卡;3-季卡;4-月卡;5-日卡 + $('#car-type').text(cardTypeName); + if(modifyRow.personCustName==null || modifyRow.personCustName==undefined || modifyRow.personCustName==' '){ + $('#cardName').text('-'); + }else{ + $('#cardName').text(modifyRow.personCustName); + } + + $('#custId').val(modifyRow.custId); + $('#newNum').val(modifyRow.num); + $('#discValue').val(modifyRow.discValue); + $('#price').val(modifyRow.price); + $('#cardNo').val(modifyRow.cardNo); + + var cardNo=modifyRow.cardNo; + //根据会员卡编码查询会员卡信息 + queryVipCardByVipCard(cardNo); + //$('#price').val(modifyRow.price); + //console.log(modifyRow.price); + var mon=1; + if(modifyRow.cardType==1){ + mon=12; + } else if(2 == modifyRow.cardType) { + mon=6; + } else if(3 == modifyRow.cardType) { + mon=3; + } else if(4 == modifyRow.cardType) { + mon=1; + } else if(5 == modifyRow.cardType) { + mon=0; + } + var newTime=""; + if(mon == 0 || mon == "0") { + newTime=moment(DateUtils.long2String(modifyRow.expDate, 1)).add(1, 'days').format('YYYY-MM-DD'); + } else { + newTime=moment(DateUtils.long2String(modifyRow.expDate, 1)).add(mon,'months').format('YYYY-MM-DD') + } + var nowTime=new Date(); + var nowTime2=new Date(newTime); + var a; + if(nowTime.getTime() < modifyRow.effDate){ + a=parseInt((modifyRow.expDate - modifyRow.effDate) / parseInt(1000*3600*24))+1; +// console.log("未生效"); +// console.log(a); +// var b=parseInt((modifyRow.expDate - nowTime.getTime()) / parseInt(1000*3600*24))+1; +// console.log(b); + }else{ + a=parseInt((modifyRow.expDate - nowTime.getTime()) / parseInt(1000*3600*24))+1; + } + $('#surplusDay').text(a+"天"); + $('#effTime').text(newTime); + $('#car-type').attr('data-price',modifyRow.price); + $('#car-type').attr('data-month',mon); + //console.log(DateUtils.long2String(modifyRow.expDate, 1)) + //console.log(moment(DateUtils.long2String(modifyRow.expDate, 1)).add('months', 3).format('YYYY-MM-DD')) + $('#effTime-display-none').text(DateUtils.long2String(modifyRow.expDate, 1)); + $('#renewMon').modal('show'); + }); + //确定续费 + $('#renew_sure').on('click', function() { + var id = $('#inputId').val(); + var expDate = $('#effTime').text(); + var num = $('#car-number').text(); + console.log(num); + var custId = $('#custId').val(); + console.log(effTime); + + var isSupportRenew=$("#isSupportRenew").val(); + console.log(isSupportRenew); + if(isSupportRenew=="true"){ + reNewVipCard(expDate, num, id, custId); + }else{ + //关闭添加页面 + $('#renewMon').modal('hide'); + swal({ + title: "提示", + text: "会员卡规则已失效,不能续费", + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } + //ajax 提交 + + }); + //新增 + documentBindFunc.on('click', '#addBtn', function() { + $("#write-submit").removeAttr("disabled"); + $('#write_rule').addClass('display-none'); + //初始化 + $('#num-write').text('1'); + $('#car_name').val(''); + $('#car_license').val(''); + $('#car_pho').val(''); + $('#car-address').val(''); + $('#money').text(''); + //initAddCard(); + //$("#cardnewNames option[value='ALL']").attr("selected","selected"); + $('#cardnewNames').selectpicker('val','ALL'); + + time_select(); + writeCarNum = 1; + var timeval = $('#timeoutEndDate').val(); + + var cardNo = $("#cardnewNames option:selected").attr("cardno"); + + //console.log(cardNo); + if(cardNo == "ALL" || cardNo == "") { + + } else { + //根据会员卡编码查询会员卡信息 + queryVipCardByVipCard(cardNo); + } + + // var monthval = $("#cardnewNames option:selected").attr("month"); + // if(monthval == 0 || monthval == "0") { + // $('#time_lose').text(moment(timeval).add(1 * writeCarNum, 'days').format('YYYY-MM-DD')); + // } else { + // alert(monthval) + // $('#time_lose').text(moment(timeval).add(monthval * writeCarNum, 'months').format('YYYY-MM-DD')); + // } + //$('#time_lose').text(moment(timeval).add(monthval, 'months').format('YYYY-MM-DD')); + $('#infmodel').modal('show'); + + }); + //修改 + $(document).on('click', '.reviseMon', function() { + var id = $(this).attr('value'); + console.log(id); + $('#inputId').val(id); + var modifyRow = $('#recordtable').bootstrapTable('getRowByUniqueId', id); + + var cardTypeName = modifyRow.cardName;// + // 1-年卡;2-半年卡;3-季卡;4-月卡;5-日卡 + $('#updateCardTypeName').text(cardTypeName); + $('#updateEff').text(DateUtils.long2String(modifyRow.effDate, 1)); + $('#car-number').text(modifyRow.num); + $('#updateExp').text(DateUtils.long2String(modifyRow.expDate, 1)); + //console.log(modifyRow.plNames[0]); + if(modifyRow.plNames!=null){ + $("#updatePlName").val(modifyRow.plNames[0]); + } + + $('#cars_name').val(modifyRow.personCustName); + $('#cars_license').val(modifyRow.carNumber); + $('#cars_pho').val(modifyRow.userPhone); + $('#cars-address').val(modifyRow.address); + var cardNo = modifyRow.cardNo; + //console.log(cardNo); + queryVipCardByVipCard(cardNo); + + $('#num').text(modifyRow.num); + $('#custId').val(modifyRow.custId); + $('#cardNo').val(modifyRow.cardNo); + + $('#changemodel').modal('show') + }); + //修改确定提交 + $('#change-submit').on('click', function() { + var name = $.trim($('#cars_name').val()); //卡主姓名 + var license = $.trim($('#cars_license').val()); //车牌号 + var pho = $.trim($('#cars_pho').val()); + if(name == '' || name == undefined || name == null) { + $('#change_rule').removeClass('display-none').text('请输入卡主姓名'); + return; + } else if(pho == '' || pho == undefined || pho == null) { + $('#change_rule').removeClass('display-none').text('请输入联系方式'); + return; + } else if(!/^1[3|4|5|7|8]{1}\d{9}$/.test(pho)||pho.length!=11) { + $('#change_rule').removeClass('display-none').text('请输入正确联系方式'); + return; + } else { + $('#change_rule').addClass('display-none').text(''); + var address = $('#cars-address').val(); + //ajax + var id = $('#inputId').val(); + var cardNo = $('#cardNo').val(); + var custId = $('#custId').val(); + var updateExp= $('#updateExp').text(); + updateVipCard(name, address, license, pho, cardNo, id, custId,updateExp); + + } + }); + //卡片信息填写str**************************************** + //数量加减 + $('#deduct-write').on('click', function() { + var val = $("#cardnewNames option:selected").attr("price"); + var timeval = $('#timeoutEndDate').val(); + var monthval = $("#cardnewNames option:selected").attr("month"); + if(writeCarNum <= 1) { + return; + } + writeCarNum--; + $('#num-write').text(writeCarNum); + var effTimeAndExpTime=""; + if(monthval == 0 || monthval == "0") { + $('#time_lose').text(moment(timeval).add(1 * writeCarNum, 'days').format('YYYY-MM-DD')); + effTimeAndExpTime=timeval+" - "+moment(timeval).add(1 * writeCarNum, 'days').format('YYYY-MM-DD'); + } else { + $('#time_lose').text(moment(timeval).add(monthval * writeCarNum, 'months').format('YYYY-MM-DD')); + effTimeAndExpTime=timeval+" - "+moment(timeval).add(monthval * writeCarNum, 'months').format('YYYY-MM-DD'); + } + $("#effTimeAndExpTime").text(effTimeAndExpTime); + $('#totla-mon span').text(moneyFormatter(writeCarNum * val)); + }); + + $('#add-write').on('click', function() { + var val = $("#cardnewNames option:selected").attr("price"); + var timeval = $('#timeoutEndDate').val(); + var monthval = $("#cardnewNames option:selected").attr("month"); + + // if(writeCarNum<=1){ + // return; + // } + writeCarNum++; + var effTimeAndExpTime=""; + $('#num-write').text(writeCarNum); + if(monthval == 0 || monthval == "0") { + $('#time_lose').text(moment(timeval).add(1 * writeCarNum, 'days').format('YYYY-MM-DD')); + effTimeAndExpTime=timeval+" - "+moment(timeval).add(1 * writeCarNum, 'days').format('YYYY-MM-DD'); + } else { + $('#time_lose').text(moment(timeval).add(monthval * writeCarNum, 'months').format('YYYY-MM-DD')); + effTimeAndExpTime=timeval+" - "+moment(timeval).add(monthval * writeCarNum, 'months').format('YYYY-MM-DD'); + } + $("#effTimeAndExpTime").text(effTimeAndExpTime); + $('#totla-mon span').text(moneyFormatter(writeCarNum * val)); + }); + //卡片信息填写end**************************************** + + /*生效时间筛选框*/ + time_select(); + function time_select() { + $("#timeoutEndDate").val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#timeoutEndDate").datetimepicker({ + //startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left", + }).on('changeDate', function(ev) { + console.log((ev.date).Format("yyyy-MM-dd")); + var val = $("#cardnewNames option:selected").attr("price"); + var timeval = (ev.date).Format("yyyy-MM-dd"); + var monthval = $("#cardnewNames option:selected").attr("month"); + var effTimeAndExpTime=""; + if(monthval == 0 || monthval == "0") { + $('#time_lose').text(moment(timeval).add(1, 'days').format('YYYY-MM-DD')); + effTimeAndExpTime=timeval+" - "+moment(timeval).add(1, 'days').format('YYYY-MM-DD'); + } else { + $('#time_lose').text(moment(timeval).add(monthval * writeCarNum, 'months').format('YYYY-MM-DD')); + effTimeAndExpTime=timeval+" - "+moment(timeval).add(monthval * writeCarNum, 'months').format('YYYY-MM-DD'); + } + $("#effTimeAndExpTime").text(effTimeAndExpTime); + + }); + }; + + //卡名称筛选 + $('#cardnewNames').on('change', function() { + // ; + var val = $("#cardnewNames option:selected").attr("price"); + var timeval = $('#timeoutEndDate').val(); + var monthval = $("#cardnewNames option:selected").attr("month"); + + var effTimeAndExpTime=""; + if(monthval == 0 || monthval == "0") { + $('#time_lose').text(moment(timeval).add(1, 'days').format('YYYY-MM-DD')); + effTimeAndExpTime=timeval+" - "+moment(timeval).add(1, 'days').format('YYYY-MM-DD'); + } else { + $('#time_lose').text(moment(timeval).add(monthval * writeCarNum, 'months').format('YYYY-MM-DD')); + effTimeAndExpTime=timeval+" - "+moment(timeval).add(monthval * writeCarNum, 'months').format('YYYY-MM-DD'); + } + $('#totla-mon span').text(writeCarNum * val); + //卡使用规则ajax + var cardNo = $("#cardnewNames option:selected").attr("cardno"); + + + queryVipCardByVipCard(cardNo); + $("#effTimeAndExpTime").text(effTimeAndExpTime); + + }); + //批量新增 + $(document).on('click', '#addAllbtn', function() { + $("#uploadFailed").empty(); + $('#file_btn').val(''); + $('#progressWrap').addClass('display-none'); + $('#uplate_sure').attr('disabled', "true"); //添加disabled属性 + $(".fileinput-filename").html(''); + $('#addallMsg').modal('show'); + }); + //上传filestr................................................. + $('#uplate_sure').on('click', function() { + uploadFile(); + //ajax + //上传进度 + //上传excel报错 + }); + + function uploadFile() { + var fd = new FormData(); + fd.append("excelFile", document.getElementById('file_btn').files[0]); + fd.append("sysOpName", fn.getUserName()); + fd.append("sysOpId", fn.getUserId()); + var xhr = new XMLHttpRequest(); + xhr.upload.addEventListener("progress", uploadProgress, false); + xhr.addEventListener("load", uploadComplete, false); + xhr.addEventListener("error", uploadFailed, false); + xhr.addEventListener("abort", uploadCanceled, false); + xhr.open("POST", dataUrl.util.batchImportVipCardCustInfo()); //修改成自己的接口 + xhr.send(fd); + } + + function uploadProgress(evt) { + if(evt.lengthComputable) { + var percentComplete = Math.round(evt.loaded * 100 / evt.total); + $('#progressWrap').removeClass('display-none'); + // document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%'; + console.log(percentComplete.toString() + '%') + + if(percentComplete.toString()>=80){ + $('#progressLoad').css('width', 80 + '%'); + $('#progressNumber').text(80 + '%'); + }else{ + $('#progressLoad').css('width', percentComplete.toString() + '%'); + $('#progressNumber').text(percentComplete.toString() + '%'); + } + + } else { + document.getElementById('progressNumber').innerHTML = 'unable to compute'; + } + } + + function uploadComplete(evt) { + /* 服务器端返回响应时候触发event事件*/ + var result = JSON.parse(evt.target.responseText); + console.log(evt.target.responseText); + $("#uploadFailed").empty(); + if(result != null && "8888" != result.code) { + if("1019" == result.code) { + uploadFileflg=true; + $('#uplate_sure').removeAttr("disabled"); //移除disabled属性 + $("#uploadFailed").append("只能上传xlsx或者lsx格式文件"); + return false; + } + if("1020" == result.code) { + uploadFileflg=true; + $('#uplate_sure').removeAttr("disabled"); //移除disabled属性 + $("#uploadFailed").append("请在excle添加数据后上传"); + return false; + } + var uploadFailed = ""; + if(null != result.data) { + uploadFileflg=true; + $('#uplate_sure').removeAttr("disabled"); //移除disabled属性 + $.each(result.data, function(index, row) { + uploadFailed += "
  • " + row.errorMesg + "
  • "; + }); + $("#uploadFailed").append(uploadFailed); + } + + } else { + uploadFileflg=true; + $('#uplate_sure').removeAttr("disabled"); //移除disabled属性 + //alert("成功"); + $('#progressNumber').text(100 + '%'); + $('#progressLoad').css('width', 100 + '%'); + $('#addallMsg').modal('hide'); + //初始化table + $('#recordtable').bootstrapTable('refresh', {silent: true}); + } + + } + + function uploadFailed(evt) { + console.log("There was an error attempting to upload the file."); + } + + function uploadCanceled(evt) { + console.log("The upload has been canceled by the user or the browser dropped the connection."); + } + //上传fileend................................................. + //新增确定提交 + $('#write-submit').on('click', function() { + $("#write-submit").attr("disabled",true); + var plNo = $("#addSelectPlNos").val();//$("input[name='parks']:checked").val(); + console.log(plNo); + var name = $.trim($('#car_name').val()); //卡主姓名 + var license = $.trim($('#car_license').val()); //车牌号 + var pho = $.trim($('#car_pho').val()); + var cardName=$("#cardnewNames").val(); + if("ALL" == cardName){ + $('#write_rule').removeClass('display-none').text('请选择卡名称'); + $("#write-submit").removeAttr("disabled"); + return; + }else if(name == '' || name == undefined || name == null) { + $("#write-submit").removeAttr("disabled"); + $('#write_rule').removeClass('display-none').text('请输入卡主姓名'); + return; + } else if(license == '' || license == undefined || license == null) { + $('#write_rule').removeClass('display-none').text('请输入车牌号'); + $("#write-submit").removeAttr("disabled"); + return; + } else if(!/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4,5}[A-Z0-9挂学警港澳]{1}$/.test(license)||license.length<7) { + $('#write_rule').removeClass('display-none').text('请输入正确车牌号'); + $("#write-submit").removeAttr("disabled"); + return; + } else if(pho == '' || pho == undefined || pho == null) { + $('#write_rule').removeClass('display-none').text('请输入联系方式'); + $("#write-submit").removeAttr("disabled"); + return; + } else if(!/^1[3|4|5|8|7|6}][0-9]\d{4,8}$/.test(pho)||pho.length!=11) { + $('#write_rule').removeClass('display-none').text('请输入正确联系方式'); + $("#write-submit").removeAttr("disabled"); + return; + } else { + $('#write_rule').addClass('display-none').text(''); + var address = $('#car-address').val(); + //ajax + var num = $('#num-write').text(); + console.log(num); + var money = $('#money').text(); + console.log(money); + var effTime = $('#timeoutEndDate').val(); + console.log(effTime); + console.log(name + license + pho + address); + var cardNo = $("#cardnewNames option:selected").attr("cardno"); + + //添加ajax + if(plNo==undefined){ + plNo=null; + } + + saveVipCard(name, address, license, pho, num, effTime, cardNo,plNo); + + } + }); + //导出 + $(document).on('click', "#reportBtn", function() { + var params = fun.getQueryParam(); + var plNos = $("#parkLotSelect").val(); + var url = dataUrl.util.exportVipCardForOpration(); + + url += '?plNos=' + params.plNos; + if(null != params.parkStatus) { + url += '&parkStatus=' + params.parkStatus; + } + if(null != params.payType) { + url += '&payType=' + params.payType; + } + if(null != params.parkType) { + url += '&parkType=' + params.parkType; + } + if(null != params.beginInTime) { + url += '&beginInTime=' + JSON.stringify(params.beginInTime); + + } + if(null != params.endInTime) { + url += '&endInTime=' + JSON.stringify(params.endInTime); + } + if(null != params.beginOutTime) { + url += '&beginOutTime' + JSON.stringify(params.beginOutTime); + } + if(null != params.endOutTime) { + url += '&endOutTime' + JSON.stringify(params.endOutTime); + } + if(null != params.carNum) { + url += '$carNum' + params.carNum + } + url = encodeURI(url); + window.downloadFile(url); + }); + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params) { + var req = fun.getQueryParam(); + var plNos = $("#parkLotSelect").val(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + if(plNos != undefined && plNos != null){ + req.plNos=JSON.parse(plNos); + } + + var opt = { + method: 'post', + url: dataUrl.util.queryVipCardCustInfoForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); + } +}) +(); + +function formatSeconds(value) { + var theTime = parseInt(value); // 秒 + var theTime1 = 0; // 分 + var theTime2 = 0; // 小时 + // alert(theTime); + if(theTime > 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); + // alert(theTime1+"-"+theTime); + if(theTime1 > 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + } + } else { + return theTime + "秒"; + } + var result = ''; + if(theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if(theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + return result; +}; +$(".btn-file").on("change", "input[type='file']", function() { + $('#uploadFailed').empty(); + $('#progressWrap').addClass('display-none'); + var filePath = $(this).val(); + var arr = filePath.split('\\'); + var fileName = arr[arr.length - 1]; + $(".fileinput-filename").html(fileName); + $('#uplate_sure').removeAttr("disabled"); //移除disabled属性 +}); + +function cardTypeFormatter(value) { + var name = ""; + // 1-年卡;2-半年卡;3-季卡;4-月卡;5-日卡 + if(value == null) { + name = ""; + } else if(1 == value) { + name = "年卡"; + } else if(2 == value) { + name = "半年卡"; + } else if(3 == value) { + name = "季卡"; + } else if(4 == value) { + name = "月卡"; + } else if(5 == value) { + name = "日卡"; + } + return name; +}; + +function queryVipCardByVipCard(cardNo) { + console.log(cardNo); + var req = { + cardNo: cardNo, + sysCode: sysComm.sysCode + }; + var vipAjax = { + method: 'post', + url: dataUrl.util.queryVipCardByVipCard(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log("会员卡规则信息"); + console.log(res); + if(res.code == '8888') { + var result = res.data; + if(result != null) { + + var date = new Date(); + + + if(result.effDate <= date.getTime() && date.getTime() <= result.expDate) { + $("#isSupportRenew").val('true'); + } else if(date.getTime() < result.effDate){ + $("#isSupportRenew").val('false'); + }else if(date.getTime() > result.expDate){ + $("#isSupportRenew").val('false'); + } + + if(1==result.useType){ + $("#parkRadio").empty(); + var html = ' '; + var plNames = ""; + var addPlNos = []; + for(var i = 0; i < result.parkList.length; i++) { + + /**html += '
    '+ + '
    ';*/ + addPlNos.push(result.parkList[i].plNo); + plNames=result.parkList[0].plName; + } + $("#addSelectPlNos").val(""); + $("#addSelectPlNos").val(addPlNos); + + + // $("#parkRadio").append(html); + //$("#parkcheck0").attr("checked", true).prop("checked", true); + //var updatePlName = $("#updatePlName").val(); + + //$("#updateParkRadio").text(updatePlName); + //$("#updateParkName").css("display","block"); + //$('.parkNametit').css("display","block"); + //$(".parkMono").css("display","block"); + + + $("#plNames").text(plNames); + $("#plNames1").text(plNames); + + + + }else{ + $(".parkMono").css("display","none"); + $("#updateParkName").css("display","none"); + $('.parkNametit').css("display","none"); + var plNames = ""; + for(var j = 0; j < result.parkList.length; j++) { + plNames += result.parkList[j].plName + " "; + } + + $("#plNames").text(plNames); + $("#plNames1").text(plNames); + } + + + var carTypeName = ""; + if(result.carType == null) { + carTypeName = "不限"; + } else if(1 == result.carType) { + carTypeName = "大型车"; + } else if(2 == result.carType) { + carTypeName = "小型车"; + } + $("#carTypeName").text(carTypeName); + $("#carTypeName1").text(carTypeName); + + //console.log(result.discValue); + if(result.discValue == undefined || result.discValue == "" || result.discValue == null){ + $("#discValue2").text("无折扣"); + }else{ + $("#discValue2").text(result.discValue); + } + + $("#discValue1").text(result.discValue); + //售卖渠道:1-APP、2-公众号、3-平台 + var saleName=""; + if(1==result.saleChannel){ + saleName="APP"; + }else if(2==result.saleChannel){ + saleName="公众号"; + }else if(3==result.saleChannel){ + saleName="平台"; + } + + $("#cardRes").text(saleName); + $("#cardRes1").text(saleName); + //console.log(result.price); + $("#price1").text(moneyFormatter(result.price)); + $("#price").text(moneyFormatter(result.price)); + $("#money").text(moneyFormatter(result.price)); + $("#price").val(moneyFormatter(result.price)); + + + $("#validEndTime").text(DateUtils.long2String(result.validStartTime, 14)+" - "+DateUtils.long2String(result.validEndTime, 14)); + $("#updateValidEndTime").text(DateUtils.long2String(result.validStartTime, 14)+" - "+DateUtils.long2String(result.validEndTime, 14)); + + //特征日标识:-1:不限; 1:工作日; 2:非工作日 + var workName=""; + if(1==result.specialDayType){ + workName="工作日"; + }else if(2==result.specialDayType){ + workName="非工作日"; + }else if(-1==result.specialDayType){ + workName="不限"; + } + + $("#special_day_type").text(workName); + $("#updateSpecial_day_type").text(workName); + + + $("#addmon").text(moneyFormatter(result.price)); + //$("#pirce").text(result.pirce); + var monthval = $("#cardnewNames option:selected").attr("month"); + var timeval = $('#timeoutEndDate').val(); + // console.log(timeval); + var effTimeAndExpTime=""; + if(monthval == 0 || monthval == "0") { + $('#time_lose').text(moment(timeval).add(1 , 'days').format('YYYY-MM-DD')); + effTimeAndExpTime=timeval+" - "+moment(timeval).add(1 , 'days').format('YYYY-MM-DD'); + } else { + $('#time_lose').text(moment(timeval).add(monthval , 'months').format('YYYY-MM-DD')); + effTimeAndExpTime=timeval +" - "+moment(timeval).add(monthval , 'months').format('YYYY-MM-DD'); + } + // console.log(effTimeAndExpTime); + $("#effTimeAndExpTime").text(effTimeAndExpTime); + + + var updateEff=$('#updateEff').text(); + var updateExp=$('#updateExp').text(); + + $("#effTimeAndExpTime1").text(updateEff+" - "+updateExp); + + } + } + } + }; + sysAjax(vipAjax); +}; +$(document).on('click','#parkRadio :radio',function () { + var plNoName =$("#parkRadio input[name='parks']:checked").siblings('span').text(); + // console.log(plNoName); + $("#plNames").text(plNoName); + $("#plNames1").text(plNoName); +}) + + + +function initAddCard() { + var addcardTypeSelect = new LinkedSelectValues(); + addcardTypeSelect.init([{ + id: "cardnewNames", + url: dataUrl.util.getVipCardNameListSelectItem() + '?noAll=yes', + defaultValue: '', + nullable: false + } + + ]); +}; + +function saveVipCard(custName, address, carNumber, userPhone, num, effDate, cardNo,plNo) { + + var createEmpid = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var createName = StrUtil.isEmpty(fn.getUserName()) ? '-1' : fn.getUserName(); + effDate = effDate == null || effDate.length == 0 ? null : new Date(effDate); + var req = { + createEmpid: createEmpid, + effDate: effDate, + cardNo: cardNo, + custName: custName, + address: address, + createName: createName, + carNumber: carNumber, + userPhone: userPhone, + num: num, + plNo:plNo, + sysCode: sysComm.sysCode + }; + + if(flg) { + flg = false; + $("#write-submit").attr("disabled","disabled"); + sysAjax({ + method: 'POST', + url: dataUrl.util.saveVipCardCustInfoAndPerson(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + + // console.log(res.data); + if (res.code == '8888') { + if (res.data) { + $("#write-submit").removeAttr("disabled"); + flg = true; + swal({ + title: "提示", + text: "保存成功", + type: "success", + timer: 3000, + allowOutsideClick: true + }); + //初始化table + $('#recordtable').bootstrapTable('refresh', { + silent: true + }); + //关闭添加页面 + $('#infmodel').modal('hide'); + } else { + flg = true; + $("#write-submit").removeAttr("disabled"); + //关闭添加页面 + $('#infmodel').modal('hide'); + swal({ + title: "提示", + text: res.msg, + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + return false; + } + + } else { + flg = true; + $("#write-submit").removeAttr("disabled"); + //关闭添加页面 + $('#infmodel').modal('hide'); + swal({ + title: "提示", + text: res.msg, + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } + } + }); + } + +}; + +function updateVipCard(custName, address, carNumber, userPhone, cardNo, id, custId,updateExp) { + var modifyEmpid = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var modifyName = StrUtil.isEmpty(fn.getUserName()) ? '-1' : fn.getUserName(); + updateExp = updateExp == null || updateExp.length == 0 ? null : new Date(updateExp); + var req = { + id: id, + modifyEmpid: modifyEmpid, + modifyName: modifyName, + cardNo: cardNo, + custName: custName, + address: address, + expDate:updateExp, + carNumber: carNumber, + userPhone: userPhone, + custId: custId, + sysCode: sysComm.sysCode + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.updateVipCardCustInfoAndPerson(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function(res) { + // console.log(res.data); + if(res.code == '8888') { + if(res.data) { + swal({ + title: "提示", + text: "保存成功", + type: "success", + timer: 3000, + allowOutsideClick: true + }); + //初始化table + $('#recordtable').bootstrapTable('refresh', { + silent: true + }); + //关闭添加页面 + $('#changemodel').modal('hide'); + } else { + //关闭添加页面 + $('#changemodel').modal('hide'); + swal({ + title: "提示", + text: res.msg, + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + return false; + } + + } else { + //关闭添加页面 + $('#changemodel').modal('hide'); + swal({ + title: "提示", + text: res.msg, + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } + } + }); + +}; + +function reNewVipCard(expDate, num, id, custId) { + var modifyEmpid = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var modifyName = StrUtil.isEmpty(fn.getUserName()) ? '-1' : fn.getUserName(); + expDate = expDate == null || expDate.length == 0 ? null : new Date(expDate); + var newNum=$('#newNum').val(); + num=parseInt(num)+parseInt(newNum); + var price = $('#price').val(); + var totalAmount=parseInt(price*100)* parseInt(num); + var discValue = $('#discValue').val(); + //console.log(discValue); + var discountAmount=totalAmount*discValue/10; + // console.log(totalAmount); + //console.log(discountAmount); + var req = { + id: id, + discountAmount:discountAmount, + totalAmount:totalAmount, + createEmpid:modifyEmpid, + modifyEmpid: modifyEmpid, + modifyName: modifyName, + expDate: expDate, + num: num, + custId: custId, + sysCode: sysComm.sysCode + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.updateVipCardCustInfoById(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function(res) { + // console.log(res.data); + if(res.code == '8888') { + if(res.data) { + swal({ + title: "提示", + text: "保存成功", + type: "success", + timer: 3000, + allowOutsideClick: true + }); + //初始化table + $('#recordtable').bootstrapTable('refresh', { + silent: true + }); + //关闭添加页面 + $('#renewMon').modal('hide'); + } else { + //关闭添加页面 + $('#renewMon').modal('hide'); + swal({ + title: "提示", + text: res.msg, + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + return false; + } + + } else { + //关闭添加页面 + $('#renewMon').modal('hide'); + swal({ + title: "提示", + text: res.msg, + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } + } + }); + +}; + +function moneyFormatter (value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return 0; + } else { + return (value / 100).toFixed(2); + } +}; diff --git a/assets/pages/scripts/chargeGroup/chargegroup.css b/assets/pages/scripts/chargeGroup/chargegroup.css new file mode 100644 index 0000000..7ef0899 --- /dev/null +++ b/assets/pages/scripts/chargeGroup/chargegroup.css @@ -0,0 +1,89 @@ + +/*单选复选美化*/ +.ITD-form-group input[type=checkbox], +.ITD-form-group input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.ITD-form-group input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.ITD-form-group input[type=checkbox]:hover + label{ + background: url('../../img/input-checkexActive.png') no-repeat 0 center; + +} +.ITD-form-group input[type=checkbox]:checked + label{ + background: url('../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=checkbox]:checked:hover + label{ + background: url('../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +.ITD-form-group input[type=radio]:hover + label{ + background: url('../../img/input-radio.png') no-repeat 0 center; +} +.ITD-form-group input[type=radio]:checked + label{ + background : url('../../img/input-radio-active.png') no-repeat 0 center; + +} +.ITD-form-group input[type=radio]:checked:hover + label{ + background: url('../../img/input-radio-active.png') no-repeat 0 center; + +} + +/*弹窗 add */ +.chargegroup-daytitImg { + width: 26px; + height: 24px; + top: 5px; + left: 60px; + background: url(img/chargegroup_smallIcon.png) no-repeat; + background-position: -140px -30px; +} +.chargegroup-nighttitImg { + width: 26px; + height: 24px; + top: 5px; + left: 60px; + background: url(img/chargegroup_smallIcon.png) no-repeat; + background-position: -105px -30px; +} +.chargegroup-width80{ + width: 80px; +} +.chargegroup-pad5{ + padding-left: 5px; + padding-right: 5px; +} +.chargegroup-poptime{ + padding: 0 10px +} + + + + + + diff --git a/assets/pages/scripts/chargeGroup/chargegroup.html b/assets/pages/scripts/chargeGroup/chargegroup.html new file mode 100644 index 0000000..f647f14 --- /dev/null +++ b/assets/pages/scripts/chargeGroup/chargegroup.html @@ -0,0 +1,239 @@ + +
    +
    +
    +
    +
    + +
    +
    + 名称/编号 + +
    +
    +
    +
    查询
    +
    + +
    + +
    + +
    +
    +
    + + +
    +
    +
    +
      +
    • 收费组列表
    • +
    • + +
    • +
    +
    +
    +
    +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/chargeGroup/chargegroup.js b/assets/pages/scripts/chargeGroup/chargegroup.js new file mode 100644 index 0000000..1ed1376 --- /dev/null +++ b/assets/pages/scripts/chargeGroup/chargegroup.js @@ -0,0 +1,453 @@ + +var fun ={ + init:function(){ + //初始化办事处下拉框 + fun.getAreaBlocks("#parkAreaCode",true); + //默认收费组表格 初始化加载 + fun.createTableData(); + //查询 + documentBindFunc.on('click','#chargegroup-queryBtn',function(){ + fun.createTableData(); + }); + //删除弹窗显示 + documentBindFunc.on('click','.delMsg',function (element) { + $('#cashiergroupdelete_rule').addClass('display-none').text(""); + var groupCode = $(this).attr('data-index'); + $("#chargegroupupdateId-del").val(groupCode); + $('#chargegroup_deletemodel').modal('show') + }); + //确定删除操作 + documentBindFunc.on('click','#chargegroup-deletesubmit',function (element) { + var groupCode = $("#chargegroupupdateId-del").val(); + var groupCodeList = []; + groupCodeList.push(groupCode); + var req = { + groupCodeList:groupCodeList + }; + req.sysCode = sysComm.sysCode; + $('#chargegroup-deletesubmit').attr('disabled',true); + var opt = { + method: 'post', + url: dataUrl.util.deleteEmployeeGroup(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#chargegroup-deletesubmit').attr('disabled',false); + if (res.code == '8888') { + $('#chargegroup_deletemodel').modal('hide'); + //刷新table + $('#chargegroup-table').bootstrapTable('refresh', { + silent: true + }); + }else{ + $('#cashiergroupdelete_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + //新增弹窗 操作 + documentBindFunc.on('click','#chargegroup-addBtn',function (element) { + + //管理方式初始化 + // document.getElementById("chargegroupadd_chargerType10").select(); + $('#chargegroupadd_chargerType10').parent().addClass('checked');//初始化 + $('#chargegroupadd_chargerType10')[0].checked=true; + $('#chargegroupadd_chargerType20').parent().removeClass('checked'); + + // $('#chargegroupadd_chargerType10').prop('checked',true); + // $('#chargegroupadd_chargerType20').prop('checked',false); + $('#chargegroupadd_rule').addClass('display-none').text(""); + //初始化办事处 + fun.getAreaBlocks('#chargegroupadd_areaCode',false); + //收费组初始化 + $('#chargegroupadd_groupCode').val(''); + //负责人初始化 + $('#chargegroupadd_chargerName').val(''); + //联系电话 + $('#chargegroupadd_phoneNo').val(''); + //备注 + $('#chargegroupMsg').val(''); + laydate.render({ + elem: '#startTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '06:00:00', + min: '00:00:00', + max: '24:00:00', + format: 'HH:mm:ss', + btns: ['confirm'], + position: 'abolute', + /* done: function (value, date, endDate) { + console.log(value); //得到日期生成的值,如:2017-08-18 + console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + + $('#endTime-right').val(value) + }*/ + // range: true + + }); + laydate.render({ + elem: '#endTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '18:00:00', + format: 'HH:mm:ss', + btns: [ 'confirm'], + position: 'abolute', + + + }); + laydate.render({ + elem: '#startTimenight',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '18:00:00', + min: '00:00:00', + max: '24:00:00', + format: 'HH:mm:ss', + btns: [ 'confirm'], + position: 'abolute', + + + }); + laydate.render({ + elem: '#endTimenight',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '06:00:00', + format: 'HH:mm:ss', + btns: ['confirm'], + position: 'abolute', + + }); + $('#chargegroup_addmodel').modal('show'); + + }); + //确定新增操作 + documentBindFunc.on('click','#chargegroupaddwrite-submit',function (element) { + var req = {}; + var areacCodes = JSON.parse($('#chargegroupadd_areaCode').val()); + if(areacCodes.length==0){ + $('#chargegroupadd_rule').removeClass('display-none').text('办事处必填'); + return false; + } + req.plAreaBlockId = areacCodes[0]; + var maintainOpt = $('#chargegroupadd_chargerName').val(); + if(maintainOpt==''|| maintainOpt==null || maintainOpt== undefined){ + $('#chargegroupadd_rule').removeClass('display-none').text('负责人必填'); + return false; + } + req.maintainOpt = maintainOpt; + //管理方式 + req.areaManageType = $('input:radio[name="chargegroupadd_chargerType"]:checked').val(); + req.duringDayTime = $('#startTime').val()+'-'+$('#endTime').val(); + req.duringNightTime = $('#startTimenight').val()+'-'+$('#endTimenight').val(); + var groupName = $('#chargegroupadd_groupCode').val(); + if(groupName=='' || groupName==null || groupName== undefined){ + $('#chargegroupadd_rule').removeClass('display-none').text('收费组必填'); + return false; + } + req.groupName = groupName; + req.phoneNo = $('#chargegroupadd_phoneNo').val(); + req.remark = $('#chargegroupMsg').val(); + req.sysCode = sysComm.sysCode; + $('#chargegroupaddwrite-submit').attr('disabled',true); + var opt = { + method: 'post', + url: dataUrl.util.insertEmployeeGroup(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#chargegroupaddwrite-submit').attr('disabled',false); + if (res.code == '8888') { + $('#chargegroup_addmodel').modal('hide'); + //刷新table + $('#chargegroup-table').bootstrapTable('refresh', { + silent: true + }); + }else{ + $('#chargegroupadd_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + + //修改弹窗 操作 + documentBindFunc.on('click','.relMsg',function (element) { + $('#chargegroup_ruleedit').addClass('display-none').text(""); + var id = $(this).attr('data-index'); + $("#updateId").val(id); + var modifyRow = $('#chargegroup-table').bootstrapTable('getRowByUniqueId', id); + //初始化办事处 + fun.getAreaBlocks('#chargegroup_areaCodeedit',false); + $('#chargegroup_areaCodeedit').val("[\""+modifyRow.plAreaBlockId+"\"]"); + $("#chargegroup_areaCodeedit").selectpicker('refresh'); + //收费组初始化 + $('#chargegroup_groupCodeedit').val(modifyRow.groupName); + //负责人初始化 + $('#chargegroup_chargerNameedit').val(modifyRow.maintainOpt); + //联系电话 + $('#chargegroup_phoneNoedit').val(modifyRow.phoneNo); + //管理方式 + $('#chargegroup_chargerType10edit').parent().removeClass('checked');//匹配类型初始化 + $('#chargegroup_chargerType20edit').parent().removeClass('checked');//匹配类型初始化 + console.log(modifyRow.areaManageType) + $('#chargegroup_chargerType'+modifyRow.areaManageType+'edit').parent().addClass('checked');//前置 + $('#chargegroup_chargerType'+modifyRow.areaManageType+'edit')[0].checked==true; + // $('#chargegroup_chargerType'+modifyRow.areaManageType+'edit').prop('checked',true); + + //备注 + $('#chargegroupMsgedit').val(modifyRow.remark); + laydate.render({ + elem: '#startTimeedit',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + // value: '06:00', + min: '00:00:00', + max: '24:00:00', + format: 'HH:mm:ss', + btns: ['confirm'], + position: 'abolute', + /* done: function (value, date, endDate) { + console.log(value); //得到日期生成的值,如:2017-08-18 + console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + + $('#endTime-right').val(value) + }*/ + // range: true + + }); + laydate.render({ + elem: '#endTimeedit',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + // value: '18:00', + format: 'HH:mm:ss', + btns: [ 'confirm'], + position: 'abolute', + + + }); + laydate.render({ + elem: '#startTimenightedit',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + // value: '18:00', + min: '00:00:00', + max: '24:00:00', + format: 'HH:mm:ss', + btns: [ 'confirm'], + position: 'abolute', + + + }); + laydate.render({ + elem: '#endTimenightedit',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + // value: '06:00', + format: 'HH:mm:ss', + btns: ['confirm'], + position: 'abolute', + + }); + //白班 + if(modifyRow.duringDayTime!=''){ + var duringDays = modifyRow.duringDayTime.split("-"); + $('#startTimeedit').val(duringDays[0]); + $('#endTimeedit').val(duringDays[1]); + } + //夜班 + if(modifyRow.duringNightTime!=''){ + var duringDays = modifyRow.duringNightTime.split("-"); + $('#startTimenightedit').val(duringDays[0]); + $('#endTimenightedit').val(duringDays[1]); + } + $('#chargegroup_changemodel').modal('show'); + + }); + //确定修改 操作 + documentBindFunc.on('click','#chargegroupwrite-submitedit',function (element) { + var req = {}; + var areacCodes = JSON.parse($('#chargegroup_areaCodeedit').val()); + if(areacCodes.length==0){ + $('#chargegroup_ruleedit').removeClass('display-none').text('办事处必填'); + return false; + } + req.plAreaBlockId = areacCodes[0]; + var maintainOpt = $('#chargegroup_chargerNameedit').val(); + if(maintainOpt=='' || maintainOpt==null || maintainOpt== undefined){ + + $('#chargegroup_ruleedit').removeClass('display-none').text('负责人必填'); + return false; + } + req.maintainOpt = maintainOpt; + //管理方式 + req.areaManageType = $('input:radio[name="chargegroupedit_chargerType"]:checked').val(); + req.duringDayTime = $('#startTimeedit').val()+'-'+$('#endTimeedit').val(); + req.duringNightTime = $('#startTimenightedit').val()+'-'+$('#endTimenightedit').val(); + var groupName = $('#chargegroup_groupCodeedit').val(); + if(groupName==''|| groupName ==null || groupName == undefined){ + $('#chargegroup_ruleedit').removeClass('display-none').text('收费组必填'); + return false; + } + req.groupName = groupName; + req.phoneNo = $('#chargegroupedit_phoneNo').val(); + req.remark = $('#chargegroupMsgedit').val(); + req.id = $('#updateId').val(); + req.sysCode = sysComm.sysCode; + $('#chargegroupwrite-submitedit').attr('disabled',true); + var opt = { + method: 'post', + url: dataUrl.util.updateEmployeeGroup(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#chargegroupwrite-submitedit').attr('disabled',false); + if (res.code == '8888') { + $('#chargegroup_changemodel').modal('hide'); + //刷新table + $('#chargegroup-table').bootstrapTable('refresh', { + silent: true + }); + }else{ + $('#chargegroupedit_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + + }, + //获取办事处 + getAreaBlocks:function(domStr,isNeedAll){ + var plData = fn.getParkBlock(); + var html = ""; + var areaIds = []; + $.each(plData, function (index, item) { + areaIds.push(item.code); + html += ""; + }); + if (isNeedAll) { + var areaIdsStr = JSON.stringify(areaIds); + html = "" + html; + } + $(domStr).append(html); + $(domStr).selectpicker('render'); + $(domStr).selectpicker('refresh'); + }, + //生成表格数据 + createTableData: function () { + $('#chargegroup-table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'id', title: '', width: '10%', align: 'left',visible:false}, + {field: 'areaCode', title: '办事处', width: '10%', align: 'left',visible:false}, + {field: 'groupCode', title: '收费组编号', width: '10%', align: 'left'}, + {field: 'groupName', title: '收费组名称', width: '10%', align: 'left'}, + {field: 'maintainOpt', title: '负责人', width: '10%', align: 'left'}, + {field: 'phoneNo', title: '负责人电话', width: '10%', align: 'left',visible:false}, + {field: 'areaManageType', title: '管理方式',titleTooltip:'针对同一个区间的管理(允许同时登陆的收费员数量)', width: '10%',align: 'left',formatter:function(value){ + if(value==10){ + return '单人'; + }else if(value==20){ + return '多人'; + }else{ + return value; + } + }}, + {field: 'duringDayTime', title: '白班时段', width: '15%', align: 'left'}, + {field: 'duringNightTime', title: '夜班时段', width: '15%', align: 'left'}, + + { + field: '', + title: '操作', + width: '10%', + align: 'left', + formatter: fun.opFormater + } + ] + + }); + + }, + /*获取查询参数*/ + getQueryParam: function () { + var parkAreaCode = JSON.parse($("#parkAreaCode").val()); + var groupCode = $('#groupCodeid').val(); + var req = { + plAreaBlockIds: parkAreaCode, + groupCodeOrName:groupCode, + sysCode: sysComm.sysCode + }; + return req; + }, + //操作 + opFormater: function (value, row, index) { + var operStr = '修改' + + '删除'; + return operStr; + }, + //时间 + inDatatimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return "" + DateUtils.long2String(value, 1) + ""; + } + } + +}; + +//初始化 函数 +fun.init(); + +/** + * 默认收费组列表 + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryEmployeeChargeGroupList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} \ No newline at end of file diff --git a/assets/pages/scripts/chargeGroup/img/chargegroup_smallIcon.png b/assets/pages/scripts/chargeGroup/img/chargegroup_smallIcon.png new file mode 100644 index 0000000..78379b6 Binary files /dev/null and b/assets/pages/scripts/chargeGroup/img/chargegroup_smallIcon.png differ diff --git a/assets/pages/scripts/clearfile/clearTmp.js b/assets/pages/scripts/clearfile/clearTmp.js new file mode 100644 index 0000000..dfd0b7b --- /dev/null +++ b/assets/pages/scripts/clearfile/clearTmp.js @@ -0,0 +1,46 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
    '+urlarr[i].name+'
    ' + }else{ + _html += '
  • '+urlarr[i].name+'
  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/temporarysettletob', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/clearfile/temptob/temporarysettletob.css'); + res.load('../../assets/pages/scripts/clearfile/temptob/temporarysettletob.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-temporarysettletob').addClass('ITD-topbar-clickactive'); +}); +R.route('/companysettlement', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/clearfile/compfile/companysettlement.css'); + res.load('../../assets/pages/scripts/clearfile/compfile/companysettlement.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-companysettlement').addClass('ITD-topbar-clickactive'); +}); + diff --git a/assets/pages/scripts/clearfile/compfile/companysettlement.css b/assets/pages/scripts/clearfile/compfile/companysettlement.css new file mode 100644 index 0000000..88e843f --- /dev/null +++ b/assets/pages/scripts/clearfile/compfile/companysettlement.css @@ -0,0 +1,34 @@ +.ITD-complex-table thead tr:nth-of-type(2) th { + border-top: 1px solid #e7ecf1!important; +} +/*input radio style*/ +/*单选复选美化*/ +input[type=checkbox], +input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} +input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} \ No newline at end of file diff --git a/assets/pages/scripts/clearfile/compfile/companysettlement.html b/assets/pages/scripts/clearfile/compfile/companysettlement.html new file mode 100644 index 0000000..c99ce25 --- /dev/null +++ b/assets/pages/scripts/clearfile/compfile/companysettlement.html @@ -0,0 +1,230 @@ + +
    因账单文件隔天下载,结算管理需要T+2 结算查询
    +
    +
    +
    +
    +
    + +
    +
    + 选择时间 +
    + +
    +
    +
    +
    +
    查询
    +
    +
    +
    + +
    +
    +
    + + +
    +
    +
      +
    • +
        +
      • 总收入 (元)
      • +
      • + 0 +
      • +
        +
      +
    • +
    • + +
      + 交易笔数 + 0 +
      +
    • +
    +
    + +
    +
      +
    • +
        +
      • 应结金额 (元)
      • +
      • + 0 +
      • +
        +
      +
    • +
    • + +
      + 交易笔数 + 0 +
      +
    • +
    +
    + +
    +
      +
    • +
        +
      • 总服务费 (元)
      • +
      • + 0 +
      • +
        +
      +
    • +
    • + +
      + 交易笔数 + 0 +
      +
    • +
    +
    +
    +
      +
    • +
        +
      • 找零 (元)
      • +
      • + +
      • +
        +
      +
    • +
    • + +
      + 交易笔数 + 0 +
      +
    • +
    +
    + +
    + + +
    +
    +
    +
      +
    • 公司结算
    • +
    • + +
    • +
    +
    +
    +
    +
    + + + + + + + + + + + + diff --git a/assets/pages/scripts/clearfile/compfile/companysettlement.js b/assets/pages/scripts/clearfile/compfile/companysettlement.js new file mode 100644 index 0000000..8e34884 --- /dev/null +++ b/assets/pages/scripts/clearfile/compfile/companysettlement.js @@ -0,0 +1,906 @@ +var fun = { + init: function () { + fun.querySettleOrg(); + + //时间初始化 + fun.dateInit(); + //汇总 + fun.summarySettle(); + //table 公司 + fun.createTableData(); + }, + dateInit: function () { + $('#compa-daterange-btnsta').val(moment().subtract('months', 0).format('YYYY-MM')); + // $('#compa-daterange-btnend').val(moment().subtract('days', 2).format('YYYY-MM-DD')); + //开始日期 + $("#compa-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 0).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //表格 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: settleOrderTableRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + + [ + { + field: 'orgName', + title: '公司', + width: '10%', + visible: true, + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + commonObj.replacenull(value) + '
    ' + + } + }, + { + field: 'checkDate', + title: '日期', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + commonObj.yearMonthFormatter(value) + '
    ' + + } + }, + { + field: 'settlementActFee', + title: '总收入', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var settlementActFee = parseFloat(value)-parseFloat(row.aliRefundFee) - parseFloat(row.wxRefundFee) + return '
    ' + commonObj.moneyFormatter(settlementActFee) + '
    ' + + } + }, + { + field: 'settlementTotalFee', + title: '应结金额', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var jsmoneyTotal = fun.getSettleFee(row); + return '
    ' + jsmoneyTotal+ '
    ' + + } + }, + { + field: 'settlementTotalFee', + title: '总服务费', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var allSrvFee = fun.getSrvFee(row); + return '
    ' + allSrvFee + '
    ' + + } + }, + { + field: 'caseRefundFee', + title: '找零金额', + width: '10%', + align: "left", + rowspan: 2, + formatter: commonObj.moneyFormatter + }, + { + field: '', + title: '微信', + valign: "middle", + align: "center", + width: '20%', + colspan: 2, + rowspan: 1, + }, + { + field: '', + title: '支付宝', + valign: "middle", + align: "center", + width: '20%', + colspan: 2, + rowspan: 1, + }, + { + field: 'checkStatus', + title: '状态', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + fun.checkStatusFormatter(value) + '
    ' + + } + }, + { + field: 'settlementActFee', + title: '操作', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { +// if(row.checkStatus == 200){ +// return '
    打款
    ' +// } + var html = '-'; + if(row.checkStatus == 200){ + html = "打款"; + } + return html; + } + }, + ], + [ + +// { +// field: 'caseRefundServFee', +// title: '服务费', +// width: '10%', +// align: "left", +// formatter: commonObj.moneyFormatter +// }, + { + field: 'wxFee', + title: '总收入', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(parseFloat(value)-parseFloat(row.wxRefundFee)); + } + }, + { + field: 'wxSrvFee', + title: '服务费', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '总收入', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(parseFloat(value)-parseFloat(row.aliRefundFee)); + } + }, + { + field: 'aliSrvFee', + title: '服务费', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + + ] + + ] + }); + + }, + //获取结算金额 + getSettleFee:function(row){ + var settle = row; + var settlementTotalFee = commonObj.moneyFormatter(settle.settlementTotalFee); + var settlementActFee = commonObj.moneyFormatter(settle.settlementActFee); + //支付宝费用 + var aliFee = commonObj.moneyFormatter(settle.aliFee); + var aliSrvFee = commonObj.moneyFormatter(settle.aliSrvFee); + var aliRefundFee = commonObj.moneyFormatter(settle.aliRefundFee); + var aliChargeNum = commonObj.numberFormatter(settle.aliChargeNum); + //微信费用 + var wxFee = commonObj.moneyFormatter(settle.wxFee); + var wxSrvFee = commonObj.moneyFormatter(settle.wxSrvFee); + var wxRefundFee = commonObj.moneyFormatter(settle.wxRefundFee); + var wxChargeNum = commonObj.numberFormatter(settle.wxChargeNum); + //现金费用 + var caseRefundFee = commonObj.moneyFormatter(settle.caseRefundFee); + var caseRefundServFee = commonObj.moneyFormatter(settle.caseRefundServFee); + var caseRefundNum = commonObj.numberFormatter(settle.caseRefundNum); + //余额 + var balanceFee = commonObj.moneyFormatter(settle.balanceFee); + var balanceSrvFee = commonObj.moneyFormatter(settle.balanceSrvFee); + var balanceChargeNum = commonObj.numberFormatter(settle.balanceChargeNum); + var allSrvFee = commonObj.moneyFormatter((parseFloat(aliSrvFee) + + parseFloat(wxSrvFee))*100); + + var allRefundFee = commonObj.moneyFormatter((parseFloat(wxRefundFee) + + parseFloat(aliRefundFee))*100); + //var allSrvFee = parseFloat(aliSrvFee) + parseFloat(wxSrvFee) + parseFloat(balanceSrvFee); + var alltransNum = aliChargeNum + wxChargeNum + balanceChargeNum; + + var jsmoneyTotal=commonObj.moneyFormatter(row.settlementActFee)-allSrvFee - allRefundFee -caseRefundFee; + if(jsmoneyTotal == NaN || jsmoneyTotal == null || jsmoneyTotal==""){ + return "0.00"; + } + return jsmoneyTotal.toFixed(2); + }, + //获取服务费 + getSrvFee:function(row){ + var settle = row; + + var aliSrvFee = commonObj.moneyFormatter(settle.aliSrvFee); + var wxSrvFee = commonObj.moneyFormatter(settle.wxSrvFee); + var caseRefundServFee = commonObj.moneyFormatter(settle.caseRefundServFee); + var balanceSrvFee = commonObj.moneyFormatter(settle.balanceSrvFee); + + var allSrvFee = commonObj.moneyFormatter((parseFloat(aliSrvFee) + + parseFloat(wxSrvFee) + parseFloat(balanceSrvFee) + parseFloat(caseRefundServFee))*100); + + return allSrvFee; + }, + //核账结果状态:100-待结算;200:待打款;300:已打款;400:打款驳回 + checkStatusFormatter:function(value, row, index){ + if(value == null || value == ''){ + return '-'; + }else if(value == 100){ + return '待结算'; + }else if(value == 200){ + return '待打款'; + }else if(value == 300){ + return '已打款'; + }else if(value == 400){ + return '打款驳回'; + } + return '-'; + }, + //弹窗表格 + createCompanyTableData: function () { + $('#companytable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: CompanyOrderTableRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + + [{ + field: 'orgName', + title: '公司', + width: '10%', + visible: true, + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + commonObj.replacenull(value) + '
    ' + + } + }, + { + field: 'checkDate', + title: '时间', + width: '15%', + visible: true, + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + commonObj.timeOneFormatter(value) + '
    ' + + } + }, + { + field: 'settlementActFee', + title: '总收入', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var settlementActFee = parseFloat(value)-parseFloat(row.aliRefundFee) - parseFloat(row.wxRefundFee) + return '
    ' + commonObj.moneyFormatter(settlementActFee) + '
    ' + + } + }, + { + field: 'settlementTotalFee', + title: '结算总金额', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var jsmoneyTotal = fun.getSettleFee(row); + return '
    ' + jsmoneyTotal+ '
    ' + + } + }, + { + field: 'settlementTotalFee', + title: '总服务费', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var allSrvFee = fun.getSrvFee(row); + return '
    ' +allSrvFee + '
    ' + + } + }, + { + field: 'caseRefundFee', + title: '找零金额', + width: '10%', + align: "left", + rowspan: 2, + formatter: commonObj.moneyFormatter + }, + { + field: '', + title: '微信', + valign: "middle", + align: "center", + width: '20%', + colspan: 2, + rowspan: 1, + }, + { + field: '', + title: '支付宝', + valign: "middle", + align: "center", + width: '20%', + colspan: 2, + rowspan: 1, + }, + { + field: 'checkStatus', + title: '状态', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + fun.checkStatusFormatter(value) + '
    ' + + } + }, + + ], + [ + +// { +// field: 'caseRefundServFee', +// title: '服务费', +// width: '10%', +// align: "left", +// formatter: commonObj.moneyFormatter +// }, + { + field: 'wxFee', + title: '总收入', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(parseFloat(value)-parseFloat(row.wxRefundFee)); + } + }, + { + field: 'wxSrvFee', + title: '服务费', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '总收入', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(parseFloat(value)-parseFloat(row.aliRefundFee)); + } + }, + { + field: 'aliSrvFee', + title: '服务费', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + + ] + + ] + + }); + + }, + + //查询组织ID + querySettleOrg: function () { + $('#company_type').empty(); + var req = { + sysCode: sysComm.sysCode, + }; + var html = ''; + var allOrgIds = [-967]; //防止为空,后台报错 + var opt = { + method: 'post', + url: dataUrl.util.queryToOrgListByFromOrg(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function (res) { + console.log('查询组织:') + console.log(res); + if (res.code == '8888') { + $.each(res.data, function (index, item) { + allOrgIds.push(item.toOrgId); +// html += ' '; + html += ""; + }); + html = ' ' + + html; + $('#company_type').append(html); + //公司 初始化 + $('#company_type').selectpicker('render'); + } + } + }; + sysAjax(opt); + }, + //汇总 + summarySettle: function () { + var dates=$('#compa-daterange-btnsta').val() + var startDate,endDate; + if (null != dates && dates != '') { + startDate = dates + '-01 00:00:00'; + startDate = new Date(startDate.replace(new RegExp(/-/gm), "/")) + } + endDate = startDate; + if (null != endDate && endDate != '') { + endDate = getMonthLastDay(startDate); + } + var orgIds = $("#company_type").val(); + orgIds = JSON.parse(orgIds); + var req = { + sysCode: sysComm.sysCode, + orgIds: orgIds, + startDate: startDate, + endDate: endDate + }; + + var opt = { + method: 'post', + url: dataUrl.util.querySettlementRecordSumforOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log('查询汇总:') + console.log(res); + if (res.code == '8888') { + var settle = res.data; + + var settlementTotalFee = commonObj.moneyFormatter(settle.settlementTotalFee); + var settlementActFee = commonObj.moneyFormatter(settle.settlementActFee); + + + var aliFee = commonObj.moneyFormatter(settle.aliFee); + var aliSrvFee = commonObj.moneyFormatter(settle.aliSrvFee); + var aliRefundFee = commonObj.moneyFormatter(settle.aliRefundFee); + var aliChargeNum = commonObj.numberFormatter(settle.aliChargeNum); + + var wxFee = commonObj.moneyFormatter(settle.wxFee); + var wxSrvFee = commonObj.moneyFormatter(settle.wxSrvFee); + var wxRefundFee = commonObj.moneyFormatter(settle.wxRefundFee); + var wxChargeNum = commonObj.numberFormatter(settle.wxChargeNum); + + var caseRefundFee = commonObj.moneyFormatter(settle.caseRefundFee); + var caseRefundServFee = commonObj.moneyFormatter(settle.caseRefundServFee); + var caseRefundNum = commonObj.numberFormatter(settle.caseRefundNum); + + var balanceFee = commonObj.moneyFormatter(settle.balanceFee); + var balanceSrvFee = commonObj.moneyFormatter(settle.balanceSrvFee); + var balanceChargeNum = commonObj.numberFormatter(settle.balanceChargeNum); + + var allSrvFee = commonObj.moneyFormatter((parseFloat(aliSrvFee) + parseFloat(wxSrvFee) + parseFloat(balanceSrvFee))*100); + //var allSrvFee = commonObj.moneyFormatter(parseFloat(aliSrvFee) + parseFloat(wxSrvFee) + parseFloat(balanceSrvFee)); + var alltransNum = aliChargeNum + wxChargeNum + balanceChargeNum; + // + $('#allSettleFee').text((parseFloat(settlementActFee)-parseFloat(aliRefundFee) - parseFloat(wxRefundFee)).toFixed(2)); + $('#allServFee').text(allSrvFee); + $('#alltransNum').text(alltransNum); + + //应结金额 = 微信支付+支付宝支付 - 找零 - 总服务费-微信退费-支付宝退费 + $('#wxAlSettleFee').text((parseFloat(wxFee)+parseFloat(aliFee) - parseFloat(caseRefundFee)- parseFloat(aliSrvFee)-parseFloat(wxSrvFee)-parseFloat(aliRefundFee)-parseFloat(wxRefundFee)).toFixed(2)); + //$('#wxiAliServFee').text((parseFloat(wxSrvFee)+parseFloat(aliSrvFee)).toFixed(2)); + $('#wxiAlitransNum').text(parseInt(wxChargeNum)+parseInt(aliChargeNum)); + + //总服务费 + $('#aliWxALLServFee').text((parseFloat(wxSrvFee)+parseFloat(aliSrvFee)).toFixed(2)); + //$('#aliServFee').text(aliSrvFee); + $('#aliWxAllpaytransNum').text(0); + + $('#yeSettleFee').text(balanceFee); + $('#inServFee').text(balanceSrvFee); + $('#yetransNum').text(balanceChargeNum); + + $('#noSettleFee').text(caseRefundFee); + $('#noTotalFee').text(caseRefundServFee); + $('#noServFee').text(caseRefundNum); + + } + } + }; + sysAjax(opt); + + + }, +}; + +fun.init(); +//查询 +documentBindFunc.on('click', '#compa-queryBtn', function () { + fun.createTableData(); + // fun.createCompanyTableData(); + fun.summarySettle(); +}); +var detailOrgId; +//明细table 弹窗 +documentBindFunc.on('click', '.compopBtn', function () { + detailOrgId = ($(this).attr('orgid')); + fun.createCompanyTableData(); + $('#compop_alertmodel').modal('show'); +}); +//打款 弹窗 +documentBindFunc.on('click', '.makemoneyBtn', function () { + /* $('#park_out0').parent().removeClass('checked'); + $('#park_out1').parent().removeClass('checked'); + $('#park_out1').parent().addClass('checked'); + $('#park_out0')[0].checked = true;//初始化*/ + $("#settleBeginTime").val(''); + $("#settleEndTime").val(''); + $("#settleOrgId").val(''); + $("#tolltorNum").text(''); + $("#tolltorsum").text(''); + $("#tolltor_amount").val(''); + //初始化 + var orgId = $(this).attr('orgid'); + var rowStr = $(this).attr('row'); + var row = JSON.parse(rowStr); + console.log(row); + var checkDate = row.checkDate; + if(checkDate == undefined || checkDate == 'null' ||orgId == undefined || orgId == 'null'){ + console.log("参数为空"); + return; + } + var date = new Date(parseInt(checkDate)); + $("#settleBeginTime").val(commonObj.yearMonthFormatter(date)+'-01'); + $("#settleEndTime").val(commonObj.timeOneFormatter(getMonthLastDay(date))); + $("#settleOrgId").val(orgId); + $("#tolltorNum").text(commonObj.yearMonthFormatter(date)); + $("#tolltorsum").text(fun.getSettleFee(row)); + $('#recharge_error').addClass('display-none').text(""); + $('#parking_forcemodel').modal('show'); +}); +//提交结算 +documentBindFunc.on('click', '#parking_forcesubmit', function () { + +// var checkStatus = $("input[name='park_out']:checked").val(); +// if(checkStatus == null || checkStatus == undefined || checkStatus == ''){ +// $('#recharge_error').removeClass('display-none').text("请选择是否驳回!"); +// return; +// } + submitTheSettle(300); + +}); +documentBindFunc.on('click', '#parking_forcefsubmit', function () { + + submitTheSettle(400); + +}); +function submitTheSettle(checkStatus){ + var remark = $("#tolltor_amount").val(); + if(remark == null || remark == undefined || remark == ''){ + $('#recharge_error').removeClass('display-none').text("请输入备注信息!"); + return; + } + var req = {}; + req.orgId = $("#settleOrgId").val(); + req.beginTime = $("#settleBeginTime").val(); + req.endTime = $("#settleEndTime").val(); + req.checkStatus = checkStatus; + req.remark = remark; + req.sysCode = sysComm.sysCode; + req.settlementMonth = $("#tolltorNum").text(); + req.settlementTotalFee = ($("#tolltorsum").text())*100; + req.settlementActFee = ($("#tolltorsum").text())*100; + var opt = { + method: 'post', + url: dataUrl.util.updateSettlementRecordCheckStatusByOrgIdAndTime(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + if(res.data){ + $('#recharge_error').removeClass('display-none').text("提交成功!"); + $('#parking_forcemodel').modal('hide'); + fun.createTableData(); + fun.summarySettle(); + }else{ + console.log(res); + } + }else{ + console.log(res); + } + } + }; + sysAjax(opt); +} +function getMonthLastDay(date){ + var current=date; + var currentMonth=current.getMonth(); + var nextMonth=++currentMonth; + var nextMonthDayOne =new Date(current.getFullYear(),nextMonth,1); + var minusDate=1000; + return new Date(nextMonthDayOne.getTime()-minusDate); +} +/** + * 客户结算表格请求函数 + * @param params + */ +function settleOrderTableRequest(params) { + var startDate = $('#compa-daterange-btnsta').val(); + if (null != startDate && startDate != '') { + startDate = startDate + '-01 00:00:00'; + startDate = new Date(startDate.replace(new RegExp(/-/gm), "/")) + } + var endDate = startDate; + if (null != endDate && endDate != '') { + endDate = getMonthLastDay(startDate); + } + var orgIds = $("#company_type").val(); + orgIds = JSON.parse(orgIds); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + var req = { + baseRequest: { + pageNum: pageNum, + pageSize: params.data.limit + }, + sysCode: sysComm.sysCode, + orgIds: orgIds, + startDate: startDate, + endDate: endDate + }; + var opt = { + method: 'post', + url: dataUrl.util.querySettlementRecordSumByOrgIdforOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log('客户结算'); + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +/** + * 公司结算表格请求函数 + * @param params + */ +function CompanyOrderTableRequest(params) { + var startDate = $('#compa-daterange-btnsta').val(); + if (null != startDate && startDate != '') { + startDate = startDate + '-01 00:00:00'; + startDate = new Date(startDate.replace(new RegExp(/-/gm), "/")) + } + var endDate = startDate; + if (null != endDate && endDate != '') { + endDate = getMonthLastDay(startDate); + } + var orgIds = $("#company_type").val(); +// orgIds = JSON.parse(orgIds); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + var req = { + baseRequest: { + pageNum: pageNum, + pageSize: params.data.limit + }, + orgIds: [detailOrgId], + sysCode: sysComm.sysCode, + startDate: startDate, + endDate: endDate + }; + var opt = { + method: 'post', + url: dataUrl.util.querySettlementRecordListByOrgIds(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#caryardReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#caryardReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#caryardReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#caryardReport").val("导出"); + } + else { + curCount--; + $("#caryardReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#caryardReport',function (){ + //获取table所有行数据 + var parkLot = $("#companytable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#companytable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var startDate = $('#compa-daterange-btnsta').val(); + if (null != startDate && startDate != '') { + startDate = startDate + '-01 00:00:00'; + startDate = new Date(startDate.replace(new RegExp(/-/gm), "/")) + } + var endDate = startDate; + if (null != endDate && endDate != '') { + endDate = getMonthLastDay(startDate); + } + var orgIds = $("#company_type").val(); + orgIds = JSON.parse(orgIds); + //设置请求参数 + var req = { + sysCode: sysComm.sysCode, + orgIds: orgIds, + startDate: startDate, + endDate: endDate + }; + var startDate = DateUtils.long2String(req.startDate, 7); + var endDate = DateUtils.long2String(req.endDate, 7); + + var url = dataUrl.util.exportSettlementRecordSumByOrgIdforOrgId(); + var forms = exportIncomeDetailFormforbill(url, startDate, endDate, req.orgIds, req.sysCode + ); + forms.submit(); +}); + +function exportIncomeDetailFormforbill(url, startDate, endDate, orgIds, sysCode +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "startDate"; + input.value = startDate; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endDate"; + input2.value = endDate; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "orgIds"; + input3.value = orgIds; + form.appendChild(input3); + + + var input16 = document.createElement("input"); + input16.name = "sysCode"; + input16.value = sysCode; + form.appendChild(input16); + + return form; + +}; diff --git a/assets/pages/scripts/clearfile/temptob/temporarysettletob.css b/assets/pages/scripts/clearfile/temptob/temporarysettletob.css new file mode 100644 index 0000000..e472501 --- /dev/null +++ b/assets/pages/scripts/clearfile/temptob/temporarysettletob.css @@ -0,0 +1,3 @@ +.ITD-complex-table thead tr:nth-of-type(2) th { + border-top: 1px solid #e7ecf1!important; +} \ No newline at end of file diff --git a/assets/pages/scripts/clearfile/temptob/temporarysettletob.html b/assets/pages/scripts/clearfile/temptob/temporarysettletob.html new file mode 100644 index 0000000..eeb150b --- /dev/null +++ b/assets/pages/scripts/clearfile/temptob/temporarysettletob.html @@ -0,0 +1,226 @@ + +
    每月月初结算上月收入
    +
    +
    +
    +
    + +
    + 选择时间 +
    + +
    +
    +
    +
    +
    查询
    +
    +
    +
    + +
    +
    +
    + + +
    +
    +
      +
    • +
        +
      • 总收入 (元)
      • +
      • + 0 +
      • +
        +
      +
    • +
    • + +
      + 交易笔数 + 0 +
      +
    • +
    +
    + +
    +
      +
    • +
        +
      • 应结金额 (元)
      • +
      • + 0 +
      • +
        +
      +
    • +
    • + +
      + 交易笔数 + 0 +
      +
    • +
    +
    + +
    +
      +
    • +
        +
      • 总服务费 (元)
      • +
      • + 0 +
      • +
        +
      +
    • +
    • + +
      + 交易笔数 + 0 +
      +
    • +
    +
    +
    +
      +
    • +
        +
      • 找零 (元)
      • +
      • + +
      • +
        +
      +
    • +
    • + +
      + 交易笔数 + 0 +
      +
    • +
    +
    + +
    + + +
    +
    +
    +
      +
    • 公司结算
    • + +
    +
    +
    +
    +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/clearfile/temptob/temporarysettletob.js b/assets/pages/scripts/clearfile/temptob/temporarysettletob.js new file mode 100644 index 0000000..3ad7996 --- /dev/null +++ b/assets/pages/scripts/clearfile/temptob/temporarysettletob.js @@ -0,0 +1,863 @@ +var fun = { + init: function () { + + //时间初始化 + fun.dateInit(); + //汇总 + fun.summarySettle(); + //table 公司 + fun.createTableData(); + }, + dateInit: function () { + $('#compa-daterange-btnsta').val(moment().subtract('months', 0).format('YYYY-MM')); + // $('#compa-daterange-btnend').val(moment().subtract('days', 2).format('YYYY-MM-DD')); + //开始日期 + $("#compa-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 0).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //表格 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: settleOrderTableRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + + [ +// { +// field: 'settlementNo', +// title: '结算单号', +// width: '10%', +// visible: true, +// align: "left", +// valign: "middle", +// rowspan: 2, +// formatter: function (value, row, index) { +// return '
    ' + commonObj.replacenull(value) + '
    '; +// } +// }, + { + field: 'orgName', + title: '公司', + width: '10%', + visible: true, + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + commonObj.replacenull(value) + '
    ' + + } + }, + { + field: 'checkDate', + title: '日期', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + commonObj.yearMonthFormatter(value) + '
    ' + + } + }, + { + field: 'settlementActFee', + title: '总收入', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var settlementActFee = parseFloat(value)-parseFloat(row.aliRefundFee) - parseFloat(row.wxRefundFee) + return '
    ' + commonObj.moneyFormatter(settlementActFee) + '
    ' + + } + }, + { + field: 'settlementTotalFee', + title: '应结金额', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var jsmoneyTotal = fun.getSettleFee(row); + return '
    ' + jsmoneyTotal+ '
    ' + + } + }, + { + field: 'settlementTotalFee', + title: '总服务费', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var allSrvFee = fun.getSrvFee(row); + return '
    ' + allSrvFee + '
    ' + + } + }, + { + field: 'caseRefundFee', + title: '找零金额', + width: '10%', + align: "left", + rowspan: 2, + formatter: commonObj.moneyFormatter + }, +// { +// field: 'caseRefundFee', +// title: '找零金额', +// width: '10%', +// align: "left", +// valign: "middle", +// rowspan: 2, +// formatter: function (value, row, index) { +// +// return '
    ' + commonObj.moneyFormatter(value)+ '
    ' +// +// } +// }, + { + field: '', + title: '微信', + valign: "middle", + align: "center", + width: '20%', + colspan: 2, + rowspan: 1, + }, + { + field: '', + title: '支付宝', + valign: "middle", + align: "center", + width: '20%', + colspan: 2, + rowspan: 1, + }, + { + field: 'checkStatus', + title: '状态', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + fun.checkStatusFormatter(value) + '
    ' + + } + }, + { + field: 'settlementActFee', + title: '操作', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { +// if(row.checkStatus == 100 || row.checkStatus == 400){ +// return '
    提交结算
    ' +// } + var html = '-'; + if(row.checkStatus == 100 || row.checkStatus == 400){ + html = "提交结算"; + } + return html; + } + }, + ], + [ + + { + field: 'wxFee', + title: '总收入', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(parseFloat(value)-parseFloat(row.wxRefundFee)); + } + }, + { + field: 'wxSrvFee', + title: '服务费', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '总收入', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(parseFloat(value)-parseFloat(row.aliRefundFee)); + } + }, + { + field: 'aliSrvFee', + title: '服务费', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + + ] + + ] + }); + + }, + + + //获取结算金额 + getSettleFee:function(row){ + var settle = row; + var settlementTotalFee = commonObj.moneyFormatter(settle.settlementTotalFee); + var settlementActFee = commonObj.moneyFormatter(settle.settlementActFee); + //支付宝费用 + var aliFee = commonObj.moneyFormatter(settle.aliFee); + var aliSrvFee = commonObj.moneyFormatter(settle.aliSrvFee); + var aliRefundFee = commonObj.moneyFormatter(settle.aliRefundFee); + var aliChargeNum = commonObj.numberFormatter(settle.aliChargeNum); + //微信费用 + var wxFee = commonObj.moneyFormatter(settle.wxFee); + var wxSrvFee = commonObj.moneyFormatter(settle.wxSrvFee); + var wxRefundFee = commonObj.moneyFormatter(settle.wxRefundFee); + var wxChargeNum = commonObj.numberFormatter(settle.wxChargeNum); + //现金费用 + var caseRefundFee = commonObj.moneyFormatter(settle.caseRefundFee); + var caseRefundServFee = commonObj.moneyFormatter(settle.caseRefundServFee); + var caseRefundNum = commonObj.numberFormatter(settle.caseRefundNum); + //余额 + var balanceFee = commonObj.moneyFormatter(settle.balanceFee); + var balanceSrvFee = commonObj.moneyFormatter(settle.balanceSrvFee); + var balanceChargeNum = commonObj.numberFormatter(settle.balanceChargeNum); + var allSrvFee = commonObj.moneyFormatter((parseFloat(aliSrvFee) + + parseFloat(wxSrvFee))*100); + + var allRefundFee = commonObj.moneyFormatter((parseFloat(wxRefundFee) + + parseFloat(aliRefundFee))*100); + //var allSrvFee = parseFloat(aliSrvFee) + parseFloat(wxSrvFee) + parseFloat(balanceSrvFee); + var alltransNum = aliChargeNum + wxChargeNum + balanceChargeNum; + + var jsmoneyTotal=commonObj.moneyFormatter(row.settlementActFee)-allSrvFee - allRefundFee -caseRefundFee; + if(jsmoneyTotal == NaN || jsmoneyTotal == null || jsmoneyTotal==""){ + return "0.00"; + } + return jsmoneyTotal.toFixed(2); + }, + //获取服务费 + getSrvFee:function(row){ + var settle = row; + + var aliSrvFee = commonObj.moneyFormatter(settle.aliSrvFee); + var wxSrvFee = commonObj.moneyFormatter(settle.wxSrvFee); + var caseRefundServFee = commonObj.moneyFormatter(settle.caseRefundServFee); + var balanceSrvFee = commonObj.moneyFormatter(settle.balanceSrvFee); + + var allSrvFee = commonObj.moneyFormatter((parseFloat(aliSrvFee) + + parseFloat(wxSrvFee))*100); + + return allSrvFee; + }, + //核账结果状态:100-待结算;200:待打款;300:已打款;400:打款驳回 + checkStatusFormatter:function(value, row, index){ + if(value == null || value == ''){ + return '-'; + }else if(value == 100){ + return '待结算'; + }else if(value == 200){ + return '待打款'; + }else if(value == 300){ + return '已打款'; + }else if(value == 400){ + return '打款驳回'; + } + return '-'; + }, + //弹窗表格 + createCompanyTableData: function () { + $('#companytable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: CompanyOrderTableRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + + [{ + field: 'orgName', + title: '公司', + width: '10%', + visible: true, + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + commonObj.replacenull(value) + '
    ' + + } + }, + { + field: 'checkDate', + title: '时间', + width: '15%', + visible: true, + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + commonObj.timeOneFormatter(value) + '
    ' + + } + }, + { + field: 'settlementActFee', + title: '总收入', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var settlementActFee = parseFloat(value)-parseFloat(row.aliRefundFee) - parseFloat(row.wxRefundFee) + return '
    ' + commonObj.moneyFormatter(settlementActFee) + '
    ' + + } + }, + { + field: 'settlementTotalFee', + title: '结算总金额', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var jsmoneyTotal = fun.getSettleFee(row); + return '
    ' + jsmoneyTotal+ '
    ' + + } + }, + { + field: 'settlementTotalFee', + title: '总服务费', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var allSrvFee = fun.getSrvFee(row); + return '
    ' +allSrvFee + '
    ' + + } + }, + { + field: 'caseRefundFee', + title: '找零金额', + width: '10%', + align: "left", + rowspan: 2, + formatter: commonObj.moneyFormatter + }, + { + field: '', + title: '微信', + valign: "middle", + align: "center", + width: '20%', + colspan: 2, + rowspan: 1, + }, + { + field: '', + title: '支付宝', + valign: "middle", + align: "center", + width: '20%', + colspan: 2, + rowspan: 1, + }, + { + field: 'checkStatus', + title: '状态', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + fun.checkStatusFormatter(value) + '
    ' + + } + }, + + ], + [ + + { + field: 'wxFee', + title: '总收入', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(parseFloat(value)-parseFloat(row.wxRefundFee)); + } + }, + { + field: 'wxSrvFee', + title: '服务费', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '总收入', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(parseFloat(value)-parseFloat(row.aliRefundFee)); + } + }, + { + field: 'aliSrvFee', + title: '服务费', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + + + ] + + ] + + }); + + }, + + + //汇总 + summarySettle: function () { + var startDate = $('#compa-daterange-btnsta').val(); + if (null != startDate && startDate != '') { + startDate = startDate + '-01 00:00:00'; + startDate = new Date(startDate.replace(new RegExp(/-/gm), "/")) + } + var endDate = startDate; + if (null != endDate && endDate != '') { + endDate = getMonthLastDay(startDate); + } + var orgId = JSON.parse(fn.getOrgId()); + var req = { + sysCode: sysComm.sysCode, + orgIds: [orgId], + startDate: startDate, + endDate: endDate + }; + + var opt = { + method: 'post', + url: dataUrl.util.querySettlementRecordSumforOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log('查询汇总:') + console.log(res); + if (res.code == '8888') { + var settle = res.data; + + var settlementTotalFee = commonObj.moneyFormatter(settle.settlementTotalFee); + var settlementActFee = commonObj.moneyFormatter(settle.settlementActFee); + + + var aliFee = commonObj.moneyFormatter(settle.aliFee); + var aliSrvFee = commonObj.moneyFormatter(settle.aliSrvFee); + var aliRefundFee = commonObj.moneyFormatter(settle.aliRefundFee); + var aliChargeNum = commonObj.numberFormatter(settle.aliChargeNum); + + var wxFee = commonObj.moneyFormatter(settle.wxFee); + var wxSrvFee = commonObj.moneyFormatter(settle.wxSrvFee); + var wxRefundFee = commonObj.moneyFormatter(settle.wxRefundFee); + var wxChargeNum = commonObj.numberFormatter(settle.wxChargeNum); + + var caseRefundFee = commonObj.moneyFormatter(settle.caseRefundFee); + var caseRefundServFee = commonObj.moneyFormatter(settle.caseRefundServFee); + var caseRefundNum = commonObj.numberFormatter(settle.caseRefundNum); + + var balanceFee = commonObj.moneyFormatter(settle.balanceFee); + var balanceSrvFee = commonObj.moneyFormatter(settle.balanceSrvFee); + var balanceChargeNum = commonObj.numberFormatter(settle.balanceChargeNum); + + var allSrvFee = commonObj.moneyFormatter((parseFloat(aliSrvFee) + parseFloat(wxSrvFee))*100); + //var allSrvFee = commonObj.moneyFormatter(parseFloat(aliSrvFee) + parseFloat(wxSrvFee) + parseFloat(balanceSrvFee)); + var alltransNum = aliChargeNum + wxChargeNum + balanceChargeNum; + //总收入 + $('#allSettleFee').text((parseFloat(settlementActFee)-parseFloat(aliRefundFee) - parseFloat(wxRefundFee)).toFixed(2)); + //$('#allServFee').text(allSrvFee); + $('#alltransNum').text(parseInt(alltransNum)+parseInt(caseRefundNum)); + //应结金额 = 微信支付+支付宝支付 - 找零 - 总服务费-微信退费-支付宝退费 + $('#wxAlSettleFee').text((parseFloat(wxFee)+parseFloat(aliFee) - parseFloat(caseRefundFee)- parseFloat(aliSrvFee)-parseFloat(wxSrvFee)-parseFloat(aliRefundFee)-parseFloat(wxRefundFee)).toFixed(2)); + //$('#wxiAliServFee').text((parseFloat(wxSrvFee)+parseFloat(aliSrvFee)).toFixed(2)); + $('#wxiAlitransNum').text(parseInt(wxChargeNum)+parseInt(aliChargeNum)); + //总服务费 + $('#aliWxALLServFee').text((parseFloat(wxSrvFee)+parseFloat(aliSrvFee)).toFixed(2)); + //$('#aliServFee').text(aliSrvFee); + $('#aliWxAllpaytransNum').text(0); + + //$('#yeSettleFee').text(balanceFee); + //$('#inServFee').text(balanceSrvFee); + //$('#yetransNum').text(balanceChargeNum); + + $('#noSettleFee').text(caseRefundFee); + $('#noTotalFee').text(caseRefundServFee); + $('#noServFee').text(caseRefundNum); + + } + } + }; + sysAjax(opt); + + + }, +}; + +fun.init(); +//查询 +documentBindFunc.on('click', '#compa-queryBtn', function () { + fun.createTableData(); + // fun.createCompanyTableData(); + fun.summarySettle(); +}); +//明细table 弹窗 +documentBindFunc.on('click', '.compopBtn', function () { + fun.createCompanyTableData(); + $('#compop_alertmodel').modal('show'); +}); +//打款 弹窗 +documentBindFunc.on('click', '.comsubmitBtn', function () { + $("#settleBeginTime").val(''); + $("#settleEndTime").val(''); + $("#settleOrgId").val(''); + $("#tolltorNum").text(''); + $("#tolltorsum").text(''); + $("#tolltor_amount").val(''); + //初始化 + var orgId = $(this).attr('orgid'); + var rowStr = $(this).attr('row'); + var row = JSON.parse(rowStr); + console.log(row); + var checkDate = row.checkDate; + if(checkDate == undefined || checkDate == 'null' ||orgId == undefined || orgId == 'null'){ + console.log("参数为空"); + return; + } + var date = new Date(parseInt(checkDate)); + $("#settleBeginTime").val(commonObj.yearMonthFormatter(date)+'-01'); + $("#settleEndTime").val(commonObj.timeOneFormatter(getMonthLastDay(date))); + $("#settleOrgId").val(orgId); + $("#tolltorNum").text(commonObj.yearMonthFormatter(date)); + $("#tolltorsum").text(fun.getSettleFee(row)); + $('#recharge_error').addClass('display-none').text(""); + $('#parking_forcemodel').modal('show'); +}); +//提交结算 +documentBindFunc.on('click', '#parking_forcesubmit', function () { + var remark = $("#tolltor_amount").val(); + if(remark == null || remark == undefined || remark == ''){ +// swal({title:"提示",text:"提交成功!",type:"warning",timer:3000,allowOutsideClick:true}); + $('#recharge_error').removeClass('display-none').text("请输入结算备注信息!"); + return; + } + var req = {}; + req.orgId = $("#settleOrgId").val(); + req.beginTime = $("#settleBeginTime").val(); + req.endTime = $("#settleEndTime").val(); + req.checkStatus = 200; + req.remark = $("#tolltor_amount").val(); + req.sysCode = sysComm.sysCode; + req.settlementMonth = $("#tolltorNum").text(); + req.settlementTotalFee = ($("#tolltorsum").text())*100; + req.settlementActFee = ($("#tolltorsum").text())*100; + var opt = { + method: 'post', + url: dataUrl.util.updateSettlementRecordCheckStatusByOrgIdAndTime(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + if(res.data){ + $('#recharge_error').removeClass('display-none').text("提交结算成功!"); + $('#parking_forcemodel').modal('hide'); + fun.createTableData(); + fun.summarySettle(); + }else{ + console.log(res); + } + }else{ + console.log(res); + } + } + }; + sysAjax(opt); + +}); +function getMonthLastDay(date){ + var current=date; + var currentMonth=current.getMonth(); + var nextMonth=++currentMonth; + var nextMonthDayOne =new Date(current.getFullYear(),nextMonth,1); + var minusDate=1000; + return new Date(nextMonthDayOne.getTime()-minusDate); +} +/** + * 客户结算表格请求函数 + * @param params + */ +function settleOrderTableRequest(params) { + var startDate = $('#compa-daterange-btnsta').val(); + if (null != startDate && startDate != '') { + startDate = startDate + '-01 00:00:00'; + startDate = new Date(startDate.replace(new RegExp(/-/gm), "/")) + } + var endDate = startDate; + if (null != endDate && endDate != '') { +// endDate = endDate + ' 23:59:59'; +// endDate = new Date(endDate.replace(new RegExp(/-/gm), "/")) + endDate = getMonthLastDay(startDate); + } + console.log(startDate,endDate); + //var orgIds = $("#company_type").val(); + var orgId = JSON.parse(fn.getOrgId()); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + var req = { + baseRequest: { + pageNum: pageNum, + pageSize: params.data.limit + }, + sysCode: sysComm.sysCode, + orgIds: [orgId], + startDate: startDate, + endDate: endDate + }; + var opt = { + method: 'post', + url: dataUrl.util.querySettlementRecordSumByOrgIdforOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +/** + * 公司结算表格请求函数 + * @param params + */ +function CompanyOrderTableRequest(params) { + var startDate = $('#compa-daterange-btnsta').val(); + if (null != startDate && startDate != '') { + startDate = startDate + '-01 00:00:00'; + startDate = new Date(startDate.replace(new RegExp(/-/gm), "/")) + } + var endDate = startDate; + if (null != endDate && endDate != '') { + endDate = getMonthLastDay(startDate); + } + var orgId = JSON.parse(fn.getOrgId()); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + var req = { + baseRequest: { + pageNum: pageNum, + pageSize: params.data.limit + }, + orgIds: [orgId], + sysCode: sysComm.sysCode, + startDate: startDate, + endDate: endDate + }; + var opt = { + method: 'post', + url: dataUrl.util.querySettlementRecordListByOrgIds(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#caryardReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#caryardReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#caryardReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#caryardReport").val("导出"); + } + else { + curCount--; + $("#caryardReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#caryardReport',function (){ + //获取table所有行数据 + var parkLot = $("#companytable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#companytable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var startDate = $('#compa-daterange-btnsta').val(); + if (null != startDate && startDate != '') { + startDate = startDate + '-01 00:00:00'; + startDate = new Date(startDate.replace(new RegExp(/-/gm), "/")) + } + var endDate = startDate; + if (null != endDate && endDate != '') { + endDate = getMonthLastDay(startDate); + } + var orgId = JSON.parse(fn.getOrgId()); + //设置请求参数 + var req = { + sysCode: sysComm.sysCode, + orgIds: [orgId], + startDate: startDate, + endDate: endDate + }; + var startDate = DateUtils.long2String(req.startDate, 7); + var endDate = DateUtils.long2String(req.endDate, 7); + + var url = dataUrl.util.exportSettlementRecordSumByOrgIdforOrgId(); + var forms = exportIncomeDetailFormforbill(url, startDate, endDate, req.orgIds, req.sysCode + ); + forms.submit(); +}); + +function exportIncomeDetailFormforbill(url, startDate, endDate, orgIds, sysCode +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "startDate"; + input.value = startDate; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endDate"; + input2.value = endDate; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "orgIds"; + input3.value = orgIds; + form.appendChild(input3); + + + var input16 = document.createElement("input"); + input16.name = "sysCode"; + input16.value = sysCode; + form.appendChild(input16); + + return form; + +}; \ No newline at end of file diff --git a/assets/pages/scripts/components-bootstrap-select.min.js b/assets/pages/scripts/components-bootstrap-select.min.js new file mode 100644 index 0000000..af65931 --- /dev/null +++ b/assets/pages/scripts/components-bootstrap-select.min.js @@ -0,0 +1 @@ +var ComponentsBootstrapSelect=function(){var n=function(){$(".bs-select").selectpicker({iconBase:"fa",tickIcon:"fa-check"})};return{init:function(){n()}}}();App.isAngularJsApp()===!1&&jQuery(document).ready(function(){ComponentsBootstrapSelect.init()}); \ No newline at end of file diff --git a/assets/pages/scripts/danyangFile/danyangTmp.js b/assets/pages/scripts/danyangFile/danyangTmp.js new file mode 100644 index 0000000..7df5472 --- /dev/null +++ b/assets/pages/scripts/danyangFile/danyangTmp.js @@ -0,0 +1,48 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +var _html = ''; +for(var i=0;i
    '+urlarr[i].name+'
    ' + }else{ + _html += '
  • '+urlarr[i].name+'
  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/useranalysis', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/danyangFile/userAna/useranalysis.css'); + res.load('../../assets/pages/scripts/danyangFile/userAna/useranalysis.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-useranalysis').addClass('ITD-topbar-clickactive'); + + +}); +R.route('/usermanage', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/danyangFile/userManage/usermanage.css'); + res.load('../../assets/pages/scripts/danyangFile/userManage/usermanage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-usermanage').addClass('ITD-topbar-clickactive'); + + +}); diff --git a/assets/pages/scripts/danyangFile/userAna/useranalysis.css b/assets/pages/scripts/danyangFile/userAna/useranalysis.css new file mode 100644 index 0000000..0d4e023 --- /dev/null +++ b/assets/pages/scripts/danyangFile/userAna/useranalysis.css @@ -0,0 +1,7 @@ +.index-income-title em{ + background-image:url(../../../img/index-card-title.png); + background-position: -36px -36px; +} +.reg_echarts{ + height: 220px; +} \ No newline at end of file diff --git a/assets/pages/scripts/danyangFile/userAna/useranalysis.html b/assets/pages/scripts/danyangFile/userAna/useranalysis.html new file mode 100644 index 0000000..6d180b5 --- /dev/null +++ b/assets/pages/scripts/danyangFile/userAna/useranalysis.html @@ -0,0 +1,96 @@ + +
    +
    +
      +
    • +
        +
      • 注册总量 (个)
      • +
      • + 0 +
      • +
        +
      +
    • +
    • +
      + IOS + 0 +
      +
      + Android + 0 +
      +
    • +
    +
    +
    +
      +
    • +
        +
      • 今日注册总量 (个)
      • +
      • + 0 +
      • +
        +
      +
    • +
    • +
      + IOS + 0 +
      +
      + Android + 0 +
      +
    • +
    +
    +
    +
      +
    • +
        +
      • 今日活跃度 (个)
      • +
      • + 0 +
      • +
        +
      +
    • +
    • +
      + IOS + 0 +
      +
      + Android + 0 +
      +
    • +
    +
    +
    + + +
    +
    +
    +
    + 今日注册量折线图 +
    +
    +
    +
    +
    +
    +
    +
    +
    + 近7天注册量折线图 +
    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/assets/pages/scripts/danyangFile/userAna/useranalysis.js b/assets/pages/scripts/danyangFile/userAna/useranalysis.js new file mode 100644 index 0000000..d5f6446 --- /dev/null +++ b/assets/pages/scripts/danyangFile/userAna/useranalysis.js @@ -0,0 +1,394 @@ +var fun = { + init:function () { + + fun.queryUserPersonStatisticForLine(); + fun.UserPersonStatisticForWeek(); + fun.queryUserPersonNumTotal(); + }, + //汇总查询 + queryUserPersonNumTotal: function () { + var req=fun.getQueryParam(); + var opts = { + method:'post', + url: dataUrl.util.queryUserPersonStatistic(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + if(res.code == '8888') { + console.log(res) + $("#zcapp_total").html(fun.numberFormatter(res.data.registerNum)); + $("#totalNum_android").html(fun.numberFormatter(res.data.androidRegisterNum)); + $("#totalNum_ios").html(fun.numberFormatter(res.data.iosRegisterNum)); + $("#todayNum_total").html(fun.numberFormatter(res.data.todayRegisterNum)); + $("#todayNum_android").html(fun.numberFormatter(res.data.todayAndroidRegisterNum)); + $("#todayNum_ios").html(fun.numberFormatter(res.data.todayIosRegisterNum)); + $("#hyd_total").html(fun.numberFormatter(res.data.todayActiveNum)); + $("#hyd_ios").html(fun.numberFormatter(res.data.todayIosActiveNum)); + $("#hyd_android").html(fun.numberFormatter(res.data.todayAndroidActiveNum)); + } + } + }; + sysAjax(opts); + }, + //今日注册量折线图 + queryUserPersonStatisticForLine: function () { + var req=fun.getQueryParam(); + var opts = { + method:'post', + url: dataUrl.util.queryUserPersonStatisticForHour(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + if(res.code == '8888') { + var data=res.data; + var zcdata=[]; + for (var i = 0; i < data.length; i++) { + zcdata.push(data[i].num); + } + fun.regamountEcharts(zcdata); + + } + } + }; + sysAjax(opts); + }, + UserPersonStatisticForWeek:function () { + + var startDate = new Date(); + var endDate = new Date(); + startDate.setSeconds(0); + startDate.setHours(0); + startDate.setMinutes(0); + startDate.setDate(startDate.getDate() - 6); + + endDate.setSeconds(59); + endDate.setHours(23); + endDate.setMinutes(59); + endDate.setDate(endDate.getDate() - 0); + var req = { + sysCode: sysComm.sysCode, + startTime: startDate.getTime(), + endTime: endDate.getTime() + } + var inComeAjax = { + method: "post", + url: dataUrl.util.queryUserPersonStatisticForWeek(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + console.log(data); + var dateArray = []; + var incomeArray = []; + $.each(data, function (index, item) { + dateArray.push(item.createDate); + incomeArray.push(item.num); + }) + + fun.weekamountEcharts(dateArray,incomeArray); + } + } + }; + sysAjax(inComeAjax); + }, + weekamountEcharts:function (dateArray,incomeArray) { + console.log(dateArray,incomeArray) + var incomeecharts = echarts.init(document.getElementById('income-echarts')); + incomeoption = { + color:['#5fe98f'], + tooltip: { + trigger: 'axis' + }, + legend: { + right: '2%', + top: '0', + textStyle: { + color: '#888990', + }, + itemWidth: 18, + itemHeight: 10, + }, + grid: { + top: '13%', + left: '1%', + right: '2%', + bottom: '2%', + containLabel: true + }, + + xAxis: { + type: 'category', + boundaryGap: true, + data:dateArray, + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + // splitNumber:10, + // minInterval:2, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + + }, + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + axisLabel: { //调整y轴的lable + textStyle: { + color: 'rgba(0,0,0,0.5)', + } + }, + axisTick: { + show: false + }, + + axisLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + width: 1,//这里是为了突出显示加上的 + } + }, + splitLine:{ + lineStyle:{ + // type:'dashed', + color:'rgba(0,0,0,0.1)', + } + } + }, + series: [ + { + name: '近7天注册量', + type: 'line', + symbol:'none', + // smooth:true, + // data:seriesData, +// data:[4,1,6,2,9,4,1,6,2,9,8,1,23,43,54,34,2,3,43,23,23,1,3,23], + data:incomeArray, + itemStyle : { + normal : { + lineStyle:{ + color:'#f0f0f2', + } + } + }, + areaStyle: { + normal: { + color: '#5fe98f', + opacity:.2 + } + }, + lineStyle: { + normal: { + color:'#5fe98f', + width:2, + } + } + }, + + ] + }; + incomeecharts.setOption(incomeoption, true); + //自适应 + window.onresize = function(){ + + incomeecharts.resize(); + }; + }, + //echarts 用户注册量 + regamountEcharts:function (data) { + + chart = echarts.init(document.getElementById('reg_echarts')); + option = { + color:['#5fe98f'], + tooltip: { + trigger: 'axis' + }, + legend: { + right: '2%', + top: '0', + textStyle: { + color: '#888990', + }, + itemWidth: 18, + itemHeight: 10, + }, + grid: { + top: '13%', + left: '1%', + right: '2%', + bottom: '2%', + containLabel: true + }, + + xAxis: { + type: 'category', + boundaryGap: true, + data:['00:00','01:00','02:00','03:00','04:00','05:00','06:00','07:00','08:00','09:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00','19:00','20:00','21:00','22:00','23:00'], +// data:data.staticTimeStr, + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + // splitNumber:10, + // minInterval:2, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + + }, + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + axisLabel: { //调整y轴的lable + textStyle: { + color: 'rgba(0,0,0,0.5)', + } + }, + axisTick: { + show: false + }, + + axisLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + width: 1,//这里是为了突出显示加上的 + } + }, + splitLine:{ + lineStyle:{ + // type:'dashed', + color:'rgba(0,0,0,0.1)', + } + } + }, + series: [ + { + name: '今日注册量', + type: 'line', + symbol:'none', + // smooth:true, + // data:seriesData, +// data:[4,1,6,2,9,4,1,6,2,9,8,1,23,43,54,34,2,3,43,23,23,1,3,23], + data:data, + itemStyle : { + normal : { + lineStyle:{ + color:'#f0f0f2', + } + } + }, + areaStyle: { + normal: { + color: '#5fe98f', + opacity:.2 + } + }, + lineStyle: { + normal: { + color:'#5fe98f', + width:2, + } + } + }, + + ] + }; + chart.setOption(option, true); + //自适应 + window.onresize = function(){ + + chart.resize(); + }; + }, + + getQueryParam:function(){ +// var startTime = new Date(new Date().toLocaleDateString()).getTime(); + var startTime = new Date(showNowDate()); + var endTime = new Date(); + var req={ + startTime:startTime, + endTime:endTime, + sysCode:sysComm.sysCode + }; + + + return req; + }, + //数量处理 + numberFormatter: function (value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return "0"; + } else { + return value; + } + }, +}; + + + +fun.init(); +setInterval(function () { + fun.init(); +},60000) + +function showNowDate(){ + var mydate = new Date(); + var str = mydate.getFullYear() + "/"; + str += (mydate.getMonth()+1) + "/"; + str += mydate.getDate(); + return str+' 00:00:00'; +} diff --git a/assets/pages/scripts/danyangFile/userManage/usermanage.css b/assets/pages/scripts/danyangFile/userManage/usermanage.css new file mode 100644 index 0000000..669f7a8 --- /dev/null +++ b/assets/pages/scripts/danyangFile/userManage/usermanage.css @@ -0,0 +1,3 @@ +.carnumPop{ + max-width: 240px; +} diff --git a/assets/pages/scripts/danyangFile/userManage/usermanage.html b/assets/pages/scripts/danyangFile/userManage/usermanage.html new file mode 100644 index 0000000..0d6ce2b --- /dev/null +++ b/assets/pages/scripts/danyangFile/userManage/usermanage.html @@ -0,0 +1,90 @@ +
    +
    +
    +
    +
    + +
    + +
    + 手机号 + +
    +
    + 车牌号 + +
    +
    +
    +
    查询
    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
      +
    • 用户列表
    • +
    • + +
    • +
    +
    +
    +
    +
    + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/danyangFile/userManage/usermanage.js b/assets/pages/scripts/danyangFile/userManage/usermanage.js new file mode 100644 index 0000000..6187d25 --- /dev/null +++ b/assets/pages/scripts/danyangFile/userManage/usermanage.js @@ -0,0 +1,237 @@ +/** + * Created by chenbiao on 2018/10/23. + */ + +var userFun={ + init:function () { + //类型初始化 + $('#user_Typeid').selectpicker('refresh'); + $('#unitecarNum').selectpicker('refresh'); + //table 初始化 + userFun.createTableData(); + }, + //生成表格数据 + createTableData: function () { + $('#usermanage_table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + { + field: 'userPhone', + title: '手机号', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'deivceType', + title: '手机类型', + width: '15%', + align: "left", + formatter: userFun.deivceFormatter + }, + { + field: 'carDtolist', + title: '车牌号', + width: '20%', + align: "left", + formatter: userFun.carNumFormatter + }, + { + field: 'acctBalance', + title: '账户余额', + width: '15%', + align: "left", + formatter:commonObj.moneyFormatter, + }, + { + field: 'createDate', + title: '注册时间', + width: '15%', + align: 'left', + formatter:commonObj.timeFormatter, + }, + { + field: 'oper', + title: '操作', + width: '10%', + align: 'left', + formatter:userFun.opFormater + } + ] + }); + + }, + getQueryParam:function () { + //var parkAreaCode = JSON.parse($("#parkAreaCode").val()); + var usertel = $.trim($('#user_Tel').val()); + var usercarnum = $.trim($('#user_Carnumber').val()); + var usertype = JSON.parse($('#user_Typeid').val()); + + var req = { + userPhone: usertel, + carNumber:usercarnum, + deivceTypeList: usertype, + sysCode: sysComm.sysCode + }; + return req; + }, + + deivceFormatter:function (value, row, index) { + var deviceTypeStr; + switch (value) { + case 1: + deviceTypeStr = 'Android' + break; + case 2: + deviceTypeStr = 'IOS' + break; + default: + deviceTypeStr = '-' + } + return deviceTypeStr; + + }, + + //车牌号处理 + carNumFormatter: function (value) { + var carNums = ""; + if ( value == undefined || value == null || value.length<1) { + return "-"; + } else { + $.each(value, function(index,item) { + carNums+=item.carNumber+"、"; + }); + return '
    '+ carNums.substr(0,carNums.length - 1)+'
    '; + } + }, + //操作 + opFormater: function (value, row, index) { + var operStr = "解绑车牌"; + return operStr; + }, + relCarNumber:function(element){ + $("#unitecarNum").empty(); + // $('#unitecarNum').selectpicker('render'); + var ids = []; + var htmls = ''; + var carList = $(element).attr("data-index"); + if(carList == undefined || carList == null || carList.length<1 || carList == "null" || carList == ""){ + $('#usercar_alertmodel').modal('show') + setTimeout(function () { + $('#usercar_alertmodel').modal('hide') + },3000); + return; + } + carList = JSON.parse(carList); + console.log(carList) + $.each(carList, function(index,item) { + ids.push(item.id); + htmls += ""; + }); + $("#unitecarNum").append(htmls); + $('#unitecarNum').selectpicker('refresh'); + + if(ids.length<1){ + $('#usercar_alertmodel').modal('show') + setTimeout(function () { + $('#usercar_alertmodel').modal('hide') + },3000); + return; + } + $('#carnum_unitemodel').modal('show'); + //解绑车牌 确定事件 + documentBindFunc.on('click', '#unite_submit', function (element) { + + // + console.log(ids) + //调用删除接口 + deleteCarNumber(ids); + }); + }, +}; + +//函数 初始化 +userFun.init(); +//查询 按钮事件 +//查询 +documentBindFunc.on('click', '#user_queryBtn', function () { + userFun.createTableData(); +}); +//解绑车牌 +documentBindFunc.on('click', '.relCarnum', function (element) { + userFun.relCarNumber(this); +}); + + + +//解绑车牌 +function deleteCarNumber(ids){ + var carVal=$('#unitecarNum').val(); + console.log(carVal) + //条件查询 + var req={}; + req.sysCode = sysComm.sysCode; + req.id=carVal; + var opt = { + method: 'post', + url: dataUrl.util.delectUserCar(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + console.log("解绑成功!"); + $('#usermanage_table').bootstrapTable('refresh'); + $('#carnum_unitemodel').modal('hide'); + + } + } + }; + sysAjax(opt); +} +/** + * 默认收费组列表 + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = userFun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryPersonForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + console.log(res.data) + $("[data-toggle='tooltip']").tooltip({ + delay: { show: 500, hide: 100 }, + }); + } + } + }; + sysAjax(opt); +} diff --git a/assets/pages/scripts/deviceanaFile/equipmentTmp.js b/assets/pages/scripts/deviceanaFile/equipmentTmp.js new file mode 100644 index 0000000..adb2673 --- /dev/null +++ b/assets/pages/scripts/deviceanaFile/equipmentTmp.js @@ -0,0 +1,53 @@ +/** + * Created by chenbiao on 2017/12/29. + */ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +var _html = ''; +for(var i=0;i
    '+urlarr[i].name+'
    ' + }else{ + _html += '
  • '+urlarr[i].name+'
  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/geodynamicreport', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.css'); + res.load('../../assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-geodynamicreport').addClass('ITD-topbar-clickactive'); + + +}); +R.route('/geodynamiczzl', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/deviceanaFile/geozzlFile/geodynamiczzl.css'); + res.load('../../assets/pages/scripts/deviceanaFile/geozzlFile/geodynamiczzl.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-geodynamiczzl').addClass('ITD-topbar-clickactive'); + + +}); + + diff --git a/assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.css b/assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.css new file mode 100644 index 0000000..20299a9 --- /dev/null +++ b/assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.css @@ -0,0 +1,58 @@ + +/*topbar--------------*/ +.ITD-border-radius .queryBtnGroup{ + margin-left: 82px; +} +.queryBtnGroup div:first-child { + margin-right: 15px; +} +/*echarts 停车时长--------------*/ +/*表头 标题 公共*/ +.panel-heading .btn-export { + position: absolute; + top: 10px; + right: 10px; +} +.dc-normal{ + height: 260px; + position: relative; +} +.geomagneticEcharts{ + position: absolute; + left: 0; + top:0; + right: 0; + bottom: 0; +} +/* new topbar */ +.geomagnetic-parking-l { + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.geomagnetic-input78{ + width: 70%; + height: 34px; + line-height: 34px; +} +.geodynamic-ITD-model-contbody{ + padding: 0 !important; +} +.turnover-opentable{ + max-height: 400px; + overflow-y: auto; +} +.geo-export-btn { + cursor: pointer; + /* padding: 10px 10px 3px 35px; */ + border: 1px solid #b1b1b1; + border-radius: 4px!important; + font-size: 12px; + height: 32px; + width: 70px; + text-indent: 32px; + line-height: 32px; + color: rgba(89,87,87,0.6); + background: url(../../../img/ITD-export-btn.png) no-repeat 10px center; +} diff --git a/assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.html b/assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.html new file mode 100644 index 0000000..dc9a784 --- /dev/null +++ b/assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.html @@ -0,0 +1,142 @@ + +
    + + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    导出
    +
    +
    +
    查询
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    + 设备正常运行时长统计 +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + 设备异常时长统计 +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + 平均停车时长趋势图 +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.js b/assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.js new file mode 100644 index 0000000..f80015f --- /dev/null +++ b/assets/pages/scripts/deviceanaFile/geodynaFile/geodynamicreport.js @@ -0,0 +1,1043 @@ +//设置最早时间-早于这个时间之前数据库内无数据,查询会报错 +var initDate = new Date("2017/11/01 00:00:00"); +//停车时长区间 +var parkDuration = [[0,365*24*60*60],[0,10],[10,30],[30,60],[60,3*60],[3*60,5*60],[5*60,30*60],[30*60,60*60], + [60*60,2*60*60],[2*60*60,5*60*60],[5*60*60,10*60*60],[10*60*60,365*24*60*60]]; +var secondAreas = ["所有时长","0-10s","10-30s","30s-1min","1-3min","3-5min", "5-30min","30min-1h","1-2h", "2-5h","5-10h","10h 以上"]; + +//停车周转次数 +var parkTurnOver = ['所有次数','0次','1次','2-5次','5-10次','10-20次','20-50次','50次以上']; +var turnOverTimes = [[null,null],[0,0],[1,1],[2,5],[5,10],[10,20],[20,50],[50,2147483647]]; +//定义泊位区间缓存区 +var berthRangeCache = {}; +//导出功能 +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; +$("#queryBtn").click(function () { + if(!validDateForDuration()){ + return; + } + funinit.queryGeoDurationDatas(); + funinit.queryGeoDurationDetailDatas(); + +}); +var funinit = { + init:function () { + //初始化块下拉框 + funinit.initParkBlock(-1); + //块下拉框变化,停车场下拉框变化 + funinit.queryBlockChange(); + //初始化状态 + $('#inType').selectpicker('refresh'); + //日历插件 停车时长 + $('#daterange-btn input').val(moment().subtract('days', 1).format('YYYY-MM-DD') + ' - ' + moment().subtract('days',1).format('YYYY-MM-DD')); + $('#daterange-btn').daterangepicker({ + startDate: moment().subtract('days', 1), + endDate: moment().subtract('days', 1), + opens: 'right', //日期选择框的弹出位置 + dateLimit : { + days : 30 + }, //起止时间的最大间隔 + locale: { + applyLabel: '确定', + cancelLabel: '取消', + customRangeLabel: '自定义', + daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'], + monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', + '七月', '八月', '九月', '十月', '十一月', '十二月' + ], + + }, + + ranges: { + '昨天': [moment().subtract('days', 1), moment().subtract('days', 1)], + '最近一周': [moment().subtract('days', 7), moment().subtract('days', 1)], + '最近一个月': [moment().subtract('months', 1), moment().subtract('days', 1)], + }, + maxDate: moment().subtract('days',1), //最大时间 + + }, + function(start, end) { + $('#daterange-btn input').val(start.format('YYYY-MM-DD ') + ' - ' + end.format('YYYY-MM-DD ')); + //alert(start.format('YYYYMMDD') + " " + end.format('YYYYMMDD')); + } + ); + + + }, + //查询并过滤没有地磁的办事处 + getParkBlockFilter:function(datas){ + var data = []; + var blockIdsFilter = []; + var blockIds = []; + $.each(datas, function(index,item) { + blockIds.push(item.code); + }); + var req = { + sysCode:sysComm.sysCode, + areaBlockIds:blockIds + }; + var opt = { + async: false, + data: JSON.stringify(req), + method: "POST", + url: dataUrl.util.getBlockIdListByBlockIds(), + success: function (res) { + if (res.code == '8888') { + blockIdsFilter = res.data; + $.each(datas, function(index,item) { + $.each(blockIdsFilter, function(_index,_item) { + if(item.code == _item){ + data.push(item); + } + }); + + }); + } + } + } + sysAjax(opt); + return data; + }, + //停车区域-块 flag:-1加载所有的,0-加载第一个 1-加载第二个 2-加载第三个 + initParkBlock: function (flag) { + var datas = fn.getParkBlock(); + var data = funinit.getParkBlockFilter(datas); + var html = ''; + var htmls = ''; + var blockIds = [-1]; + for (var i = 0; i < data.length; i++) { + blockIds.push(data[i].code); + html += ""; + } + var blockIdsStr = JSON.stringify(blockIds); + htmls = '' + html; + if(flag == -1){ + $("#plAreaBlockIds").empty(); + $("#plAreaBlockIds1").empty(); + $("#plAreaBlockIds2").empty(); + $("#plAreaBlockIds").append(htmls); + $('#plAreaBlockIds').selectpicker('render'); + //加载周转次数页面的街道办事处 + //右上角 + $("#plAreaBlockIds1").append(htmls); + $('#plAreaBlockIds1').selectpicker('render'); + //单个停车场的街道办事处 + //$("#plAreaBlockIds2").append(''+html); + $("#plAreaBlockIds2").append(htmls); + $('#plAreaBlockIds2').selectpicker('render'); + //加载下拉框 + funinit.initParkSelect(-1); + } + else if(flag == 0){ + $("#plAreaBlockIds").empty(); + $("#plAreaBlockIds").append(htmls); + $('#plAreaBlockIds').selectpicker('render'); + funinit.initParkSelect(0); + } + else if(flag == 1){ + $("#plAreaBlockIds1").empty(); + $("#plAreaBlockIds1").append(htmls); + $('#plAreaBlockIds1').selectpicker('render'); + funinit.initParkSelect(1); + } + else if(flag == 2){ + $("#plAreaBlockIds2").empty(); + $("#plAreaBlockIds2").append(''+html); + $('#plAreaBlockIds2').selectpicker('render'); + funinit.initParkSelect(2); + } + else{ + return; + } + + }, + //根据块信息查询停车场信息 + initParkSelect:function(flag){ + //停车场下拉框 + var data = funinit.getParkingLotMsg(flag); + var htmls = ''; + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].plNo); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + htmls = '' + html; + if(flag == -1){ + $("#parkIds").empty(); + $("#parkIds").append(htmls); + $('#parkIds').selectpicker('render'); + $("#parkIds1").empty(); + $("#parkIds1").append(htmls); + $('#parkIds1').selectpicker('render'); + $("#parkIds2").empty(); + $("#parkIds2").append(htmls); + $('#parkIds2').selectpicker('render'); + $("#parkIds3").empty(); + $("#parkIds3").append(htmls); + $('#parkIds3').selectpicker('render'); + } + else if (flag ==0){ + $("#parkIds").empty(); + $("#parkIds").append(htmls); + $('#parkIds').selectpicker('refresh'); + + $("#parkIds3").empty(); + $("#parkIds3").append(htmls); + $('#parkIds3').selectpicker('refresh'); + } + else if (flag ==1){ + $("#parkIds1").empty(); + $("#parkIds1").append(htmls); + $('#parkIds1').selectpicker('refresh'); + } + else if (flag ==2){ + $("#parkIds2").empty(); + //$("#parkIds2").append(""+html); + $("#parkIds2").append(htmls); + $('#parkIds2').selectpicker('refresh'); + } + else{ + return; + } + + }, + getParkingLotMsg:function(flag){ + var plAreaBlockIds; + if(flag == -1){ + plAreaBlockIds = JSON.parse($("#plAreaBlockIds").val()); + } + else if(flag == 0){ + plAreaBlockIds = JSON.parse($("#plAreaBlockIds").val()); + } + else if(flag == 1){ + plAreaBlockIds = JSON.parse($("#plAreaBlockIds1").val()); + } + else if(flag == 2){ + plAreaBlockIds = JSON.parse($("#plAreaBlockIds2").val()); + } + else{ + return; + } + var parkLot = ""; + var req = { + sysCode:sysComm.sysCode, + areaBlockIds: plAreaBlockIds + }; + var opt = { + async: false, + data:JSON.stringify(req), + method: "POST", + //contentType:"application/x-www-form-urlencoded; charset=UTF-8", + url: dataUrl.util.getParkListByBlockIds(), + success: function (res) { + if (res.code == '8888') { + parkLot = JSON.stringify(res.data); + } + } + } + sysAjax(opt); + return JSON.parse(parkLot); + }, + //块改变查询停车场 + queryBlockChange:function(){ + /*$("#plAreaBlockIds").change(function(){ + funinit.initParkSelect(-1); + });*/ + $("#plAreaBlockIds").change(function(){ + funinit.initParkSelect(0); + }); + $("#plAreaBlockIds1").change(function(){ + funinit.initParkSelect(1); + //重新加载地磁厂商统计图 + factoryTurnOverAjax(); + }); + $("#plAreaBlockIds2").change(function(){ + funinit.initParkSelect(2); + }); + + }, + //详细-停车场下拉框初始化 + initParkIdsSelect:function(){ + var plno = $("#parkIds").val(); + $("#parkIds3").selectpicker('val',plno); + }, + //详细-分布区间初始化 + initSecondArea:function(name){ + var html; + $.each(secondAreas,function(index,item){ + html+=''; + }); + $("#secondArea").empty(); + $("#secondArea").append(html); + $("#secondArea").selectpicker('refresh'); + if(name == null || name == undefined){ + return; + } + $("#secondArea").selectpicker('val',secondAreas.indexOf(name)); + }, + //详细-选择时间初始化 + initDurationDate:function(dates){ + //日历插件 停车时长 + $('#daterangeedit-btngeo input').val(moment().subtract('days', 0).format('YYYY-MM-DD') + ' - ' + moment().subtract('days',0).format('YYYY-MM-DD')); + $('#daterangeedit-btngeo').daterangepicker({ + // startDate: moment().subtract('days', 1), + endDate: moment().subtract('days',0), + opens: 'left', //日期选择框的弹出位置 + dateLimit : { + days : 30 + }, //起止时间的最大间隔 + locale: { + applyLabel: '确定', + cancelLabel: '取消', + customRangeLabel: '自定义', + daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'], + monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', + '七月', '八月', '九月', '十月', '十一月', '十二月' + ], + + }, + + ranges: { + '昨天': [moment().subtract('days', 1), moment().subtract('days', 1)], + '最近一周': [moment().subtract('days', 7), moment().subtract('days', 1)], + '最近一个月': [moment().subtract('months', 1), moment().subtract('days', 1)], + '最近三个月': [moment().subtract('months', 3), moment().subtract('days', 1)], + }, + maxDate: moment().subtract('days', 0), //最大时间 + + }, + + function(start, end) { + $('#daterangeedit-btngeo input').val(start.format('YYYY-MM-DD ') + ' - ' + end.format('YYYY-MM-DD ')); + } + ); + $('#daterangeedit-btngeo input').val(dates); + }, + getQueryParams:function(){ + var plBlockIds = JSON.parse($("#plAreaBlockIds").val()); + var plNos = JSON.parse($("#parkIds").val()); + if(plNos.length<1){ + plNos.push("-1X"); + } + var inType = $("#inType").val(); + var dateValue = $("#daterange-btn input").val(); + var dates=dateValue.split(" - "); + var beginTime = dates[0]+" 00:00:00"; + var endTime = dates[1]+" 23:59:59"; + var req= { + sysCode:sysComm.sysCode, + plBlockIds: plBlockIds, + plNos: plNos, + inType: inType, + beginTime: new Date(beginTime.replace(new RegExp(/-/gm) ,"/")), + endTime: new Date(endTime.replace(new RegExp(/-/gm) ,"/")), + }; + return req; + }, + getDetailQueryParams:function(){ + var plNos = JSON.parse($("#parkIds3").val()); + if(plNos.length<1){ + plNos.push("-1X"); + } + var secondArea = $("#secondArea").val(); + var inType = $("#inType").val(); + var eqpStayBegin = parkDuration[secondArea][0]; + var eqpStayEnd = parkDuration[secondArea][1]; + var dateValue = $("#daterangeedit-btngeo input").val(); + var dates=dateValue.split(" - "); + var beginTime = dates[0]+" 00:00:00"; + var endTime = dates[1]+" 23:59:59"; + var req= { + sysCode:sysComm.sysCode, + plNos: plNos, + inType: inType, + eqpStayBegin: eqpStayBegin, + eqpStayEnd: eqpStayEnd, + beginTime: new Date(beginTime.replace(new RegExp(/-/gm) ,"/")), + endTime: new Date(endTime.replace(new RegExp(/-/gm) ,"/")), + }; + return req; + }, + //查询地磁停车时长数据 + queryGeoDurationDatas:function(){ + var req = funinit.getQueryParams(); + var opt= { + method: 'POST', + url: dataUrl.util.queryEqpInOutPark(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log("图01 02:",res); + if(res.code = "8888"){ + var data = res.data; + funinit.drawGeoDurationCharts(data); + }else{ + + } + } + }; + sysAjax(opt); + }, + //查询地磁平均停车时长数据 + queryGeoDurationDetailDatas:function(){ + var req = funinit.getQueryParams(); + var opt= { + method: 'POST', + url: dataUrl.util.queryEqpDurByTime(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log("图03:",res); + if(res.code = "8888"){ + var data = res.data; + funinit.drawDurationDetailChart(data); + }else{ + + } + } + }; + sysAjax(opt); + }, + //填充两个停车时长扇形图 + drawGeoDurationCharts:function(data){ + var normalDatas = [{value:0, name:'5-30min'},{value:0, name:'30min-1h'},{value:0, name:'1-2h'}, + {value:0, name:'2-5h'},{value:0, name:'5-10h'},{value:0, name:'10h 以上'}]; + var nonormalDatas = [{value:0, name:'0-10s'},{value:0, name:'10-30s'},{value:0, name:'30s-1min'}, + {value:0, name:'1-3min'},{value:0, name:'3-5min'}]; + + normalDatas[0].value=data.normalNum1; + normalDatas[1].value=data.normalNum2; + normalDatas[2].value=data.normalNum3; + normalDatas[3].value=data.normalNum4; + normalDatas[4].value=data.normalNum5; + normalDatas[5].value=data.normalNum6; + + nonormalDatas[0].value=data.nuNum1; + nonormalDatas[1].value=data.nuNum2; + nonormalDatas[2].value=data.nuNum3; + nonormalDatas[3].value=data.nuNum4; + nonormalDatas[4].value=data.nuNum5; + // 地磁正常 + var nomalmainoption = { + color:['#1e95cd','#5fe98f','#fdc94d','#50c0f5','#5ed8a6','#2bb97f','#50c0f5','#fd714b','#a5dff3'], + tooltip: { + trigger: 'item', + formatter: "{a}
    {b}: {c} ({d}%)" + }, + legend: { + orient: 'vertical', + right:'15%', + top:'10%', + selectedMode:false, + hoverAnimation: false, + avoidLabelOverlap: false, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + }, + itemWidth:16, + itemHeight:10, + data:['5-30min','30min-1h','1-2h','2-5h','5-10h','10h 以上'] + }, + series: [ + { + name:'地磁正常', + type:'pie', + radius: ['60%', '70%'], + center:['30%', '50%'], + avoidLabelOverlap: false, + hoverAnimation: false, + legendHoverLink: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '12', + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:normalDatas + } + ] + }; + nomalmain.setOption(nomalmainoption,true); + // nomalmain.dispatchAction({ + // type: 'downplay', + // seriesIndex: 0, + // dataIndex: 0 + // }); + // nomalmain.dispatchAction({ + // type: 'highlight', + // seriesIndex: 0, + // dataIndex: 0 + // }); + // nomalmain.resize(); + // 地磁异常 + var anomalmainoption = { + color:['#1e95cd','#5fe98f','#fdc94d','#50c0f5','#5ed8a6','#2bb97f','#50c0f5','#fd714b','#a5dff3'], + tooltip: { + trigger: 'item', + formatter: "{a}
    {b}: {c} ({d}%)" + }, + legend: { + orient: 'vertical', + right:'15%', + top:'10%', + selectedMode:false, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + }, + itemWidth:16, + itemHeight:10, + data:['0-10s','10-30s','30s-1min','1-3min','3-5min',] + }, + series: [ + { + name:'地磁异常', + type:'pie', + // radius: ['50%', '70%'], + center:['30%', '50%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '20', + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:nonormalDatas + } + ] + }; + anomalmain.setOption(anomalmainoption); + // anomalmain.dispatchAction({ + // type: 'downplay', + // seriesIndex: 0, + // dataIndex: 0 + // }); + // anomalmain.dispatchAction({ + // type: 'highlight', + // seriesIndex: 0, + // dataIndex: 0 + // }); + // anomalmain.resize(); + + }, + //渲染平均停车时长趋势图 + drawDurationDetailChart:function(data){ + //data = [{avgTime:1111,queryDate:"2017-11-22",tatolNum:3456,tatolTime:365},{avgTime:111,queryDate:"2017-11-23",tatolNum:345,tatolTime:36},{avgTime:580,queryDate:"2017-11-24",tatolNum:500,tatolTime:79}]; + var dates = new Array(); + var avgTimes = new Array(); + if(data != null && data.length>0){ + $.each(data, function(index,item) { + dates.push(item.queryDate); + avgTimes.push(((item.avgTime)/(60*60)).toFixed(1));//秒->小时 + }); + } + console.log(dates) + var MeantimeEchartsoption = { + tooltip : { + trigger: 'axis', + axisPointer : { // 坐标轴指示器,坐标轴触发有效 + type : 'shadow' // 默认为直线,可选为:'line' | 'shadow' + } + }, + grid: { + left: '1%', + right: '4%', + bottom: '3%', + top:'14%', + containLabel: true + }, + xAxis : [ + { + type : 'category', + data : dates, + axisLabel: { + // interval:2, + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + // splitNumber:10, + // minInterval:2, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + } + ], + yAxis : [ + { + + type : 'value', + // name:"(小时)", + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + }, + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + } + ], + series : [ + { + name:'平均停车时长', + type:'bar', + barWidth : 20, + data:avgTimes, + itemStyle: { + normal: { + color:'#5cb3d8', + /* color: new echarts.graphic.LinearGradient( + 0, 0, 0, 1, + [ + {offset: 0, color: '#2abb9b'}, + {offset: 1, color: '#57cbf6'} + ] + )*/ + }, + emphasis: { + color:'#5cb3d8', + /*color: new echarts.graphic.LinearGradient( + 0, 0, 0, 1, + [ + {offset: 0, color: '#2abb9b'}, + {offset: 1, color: '#57cbf6'} + ] + )*/ + } + }, + markLine: { + symbolSize:0, + lineStyle:{ + normal:{ + color:'#5fe890' + } + }, + data: [ + {type: 'average', name: '平均值',}, + ] + } + } + ] + }; + MeantimeEcharts.setOption(MeantimeEchartsoption,true); + MeantimeEcharts.resize(); + }, + //加载停车时长详细表信息 + createDurationTableData: function() { + $('#turnoveroentabgeo').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: loadDurationDetailRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'plAreaBlockName', + title: '街道办事处', + width: '10%', + visible: true, + align: 'left' + }, + { + field: 'plName', + title: '车场名称', + width: '10%', + align: 'left' + }, + + { + field: 'parkAreaName', + title: '泊位区间', + width: '10%', + align: 'left', + }, + { + field: 'berthNo', + title: '泊位编号', + width: '8%', + align: 'left', + }, + { + field: 'eqpNo', + title: '地磁编号', + width: '8%', + align: 'left', + }, + { + field: 'eqpInTime', + title: '进场时间', + width: '10%', + align: 'left', + formatter:funinit.dateTimeFormatter + }, + { + field: 'eqpOutTime', + title: '出场时间', + width: '10%', + align: 'left', + formatter:funinit.dateTimeFormatter + }, + { + field: 'eqpParkingDuration', + title: '停车时长', + width: '10%', + align: 'left', + formatter:funinit.timeFormatter + }, + { + field: 'pdaInType', + title: 'PDA是否录入', + width: '8%', + align: 'left', + formatter:funinit.pdaInTipeFormatter + }, + { + field: 'inChargerCode', + title: '入场收费员编号', + width: '8%', + align: 'left' + }, + { + field: 'inType', + title: '入场录入状态', + width: '8%', + align: 'left', + formatter:funinit.inTipeFormatter + }, + { + field: 'outChargerCode', + title: '出场收费员编号', + width: '8%', + align: 'left' + }, + { + field: 'outType', + title: '出场录入状态', + width: '8%', + align: 'left', + formatter:funinit.inTipeFormatter + }, + ] + }); + $("#geopopmodel").modal('show'); + }, + timeFormatter:function(value) { + var theTime = parseInt(value);// 秒 + var theTime1 = 0;// 分 + var theTime2 = 0;// 小时 + var theTime3 = 0;//天 + if(theTime<60){ + return theTime+'秒'; + } + if (theTime >= 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); + if (theTime1 >= 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + if(theTime2 >= 24){ + theTime3 = parseInt(theTime2/24); + theTime2 = parseInt(theTime2%24); + } + } + } + var result = ''; + if (theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if (theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + if (theTime3 > 0) { + result = "" + parseInt(theTime3) + "天" + result; + } + return result; + }, + dateTimeFormatter: function(value, row, index) { + if(value == null) { + return ""; + } else { + return DateUtils.long2String(value, 7); + } + }, + inTipeFormatter:function(value){ + if(value==null){ + return ""; + } + else if(value == "0"){ + return "不一致"; + } + else if(value == "1"){ + return "一致"; + } + else{ + return "未知"; + } + }, + pdaInTipeFormatter:function(value){ + if(value==null){ + return ""; + } + else if(value == "0"){ + return "否"; + } + else if(value == "1"){ + return "是"; + } + else{ + return "未知"; + } + } +}; +funinit.init(); + +//绑定下拉框的change事件 +documentBindFunc.on('change', '#plAreaBlockIds1', function () { + funinit.initParkSelect(1); + //重新加载地磁厂商统计图 + factoryTurnOverAjax(); +}); +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function loadDurationDetailRequest(params) { + var req = funinit.getDetailQueryParams(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryEqpInOutParkForList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log("图04:",res); + if(res.code == '8888') { + params.success(res.data); + } + else{ + + } + } + }; + sysAjax(opt); +} +function durationsClickFun(param){ + console.log(param) + //初始化弹窗表格查询条件 + funinit.initParkIdsSelect(); + var name = "所有时长";//param.data.name; + funinit.initSecondArea(name); + var dates = $("#daterange-btn input").val(); + funinit.initDurationDate(dates); + funinit.createDurationTableData(); +} +// 地磁正常 弹窗 +documentBindFunc.on('click','#geopopnormalBtn',function () { + if(!validDateForDuration()){ + return; + } + durationsClickFun(); +}) +var nomalmain = echarts.init(document.getElementById('nomalmain')); +/*nomalmain.on('click',function(param){ + if(!validDateForDuration()){ + return; + } + durationsClickFun(param); +});*/ + +//地磁异常 弹窗 +documentBindFunc.on('click','#geopopabnormalBtn',function () { + if(!validDateForDuration()){ + return; + } + durationsClickFun(); +}) +var anomalmain = echarts.init(document.getElementById('anomalmain')); +/*anomalmain.on('click',function(param){ + if(!validDateForDuration()){ + return; + } + durationsClickFun(param); +});*/ + +documentBindFunc.on('click', '#queryBtngeo', function() { + var dateValue = $("#daterangeedit-btngeo input").val(); + var dates=dateValue.split(" - "); + var beginTime = dates[0]+" 00:00:00"; + beginTime = new Date(beginTime.replace(new RegExp(/-/gm) ,"/")); + if(beginTime \ No newline at end of file diff --git a/assets/pages/scripts/deviceanaFile/geozzlFile/geodynamiczzl.js b/assets/pages/scripts/deviceanaFile/geozzlFile/geodynamiczzl.js new file mode 100644 index 0000000..6474b14 --- /dev/null +++ b/assets/pages/scripts/deviceanaFile/geozzlFile/geodynamiczzl.js @@ -0,0 +1,1156 @@ +//设置最早时间-早于这个时间之前数据库内无数据,查询会报错 +var initDate = new Date("2017/11/01 00:00:00"); +//导出功能 +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; + +//查询按钮 +$(document).on('click', '#zzl-qerBtn', function() { + var dateValue = $("#zzl-daterange-btn input").val(); + var dates=dateValue.split(" - "); + var beginTime = dates[0]+" 00:00:00"; + beginTime = new Date(beginTime.replace(new RegExp(/-/gm) ,"/")); + if(beginTime" + data[i].name + ""; + } + var blockIdsStr = JSON.stringify(blockIds); + htmls = '' + html; + + $("#zzl-plAreaBlockIds").empty(); + + $("#zzl-plAreaBlockIds").append(htmls); + $('#zzl-plAreaBlockIds').selectpicker('render'); + //加载下拉框 + zzlfun.initParkSelect(); + + }, + //根据块信息查询停车场信息 + initParkSelect:function(){ + //停车场下拉框 + var data = zzlfun.getParkingLotMsg(); + var htmls = ''; + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].plNo); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + htmls = '' + html; + + $("#zzl-parkIds").empty(); + $("#zzl-parkIds").append(htmls); + $('#zzl-parkIds').selectpicker('refresh'); + + $("#parkIds1").empty(); + $("#parkIds1").append(htmls); + $('#parkIds1').selectpicker('refresh'); + + }, + getParkingLotMsg:function(){ + var plAreaBlockIds; + plAreaBlockIds = JSON.parse($("#zzl-plAreaBlockIds").val()); + + var parkLot = ""; + var req = { + sysCode:sysComm.sysCode, + areaBlockIds: plAreaBlockIds + }; + var opt = { + async: false, + data:JSON.stringify(req), + method: "POST", + //contentType:"application/x-www-form-urlencoded; charset=UTF-8", + url: dataUrl.util.getParkListByBlockIds(), + success: function (res) { + if (res.code == '8888') { + parkLot = JSON.stringify(res.data); + } + } + } + sysAjax(opt); + return JSON.parse(parkLot); + }, + //块改变查询停车场 + queryBlockChange:function(){ + + $("#zzl-plAreaBlockIds").change(function(){ + zzlfun.initParkSelect(); + }); + + }, + //停车场下拉框change + parkSelectChange: function () { + var plNos = JSON.parse($("#parkIds1").val()); + if (plNos.length > 1) { + //选择的全部 + //设置空数组即可 + zzlfun.setBerthRange([]); + } else { + //先初始化 + zzlfun.setBerthRange([]); + //选择的单个停车场 + var plNo = plNos[0]; + var rows = berthRangeCache[plNo]; + if (undefined != rows && null != rows && rows.length != 0) { + zzlfun.setBerthRange(rows); + } else { + zzlfun.getBerthRange(plNos); + } + + } + }, + //根据停车场编码获取泊位区间 + getBerthRange: function (plNos) { + if(plNos.length<1){ + return; + } + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + sysCode: sysComm.sysCode, + plNos: plNos + }; + var opt = { + method: 'post', + url: dataUrl.util.queryTpPRegionAreaForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var plNo = plNos[0]; + //设置缓存 + berthRangeCache[plNo] = res.data.rows; + zzlfun.setBerthRange(res.data.rows); + } + } + }; + sysAjax(opt); + }, + //设置泊位区间 + setBerthRange: function (datas) { + $('#regionArea').empty(); + var html = ''; + $.each(datas, function (index, item) { + html += ""; + }); + html = '' + html; + $('#regionArea').append(html) + $('#regionArea').selectpicker('refresh'); + }, + + //详细-停车场下拉框初始化 + initParkIdsSelect:function(){ + var plno = $("#zzl-parkIds").val(); + $("#parkIds1").selectpicker('val',plno); + }, + //详细-分布区间初始化 + initSecondArea:function(name){ + var html; + $.each(secondAreas,function(index,item){ + html+=''; + }); + $("#secondArea").empty(); + $("#secondArea").append(html); + $("#secondArea").selectpicker('refresh'); + if(name == null || name == undefined){ + return; + } + $("#secondArea").selectpicker('val',secondAreas.indexOf(name)); + }, + /*获取查询参数*/ + getQueryParam: function() { + var plBlockIds = JSON.parse($("#zzl-plAreaBlockIds").val()); + var plNos = []; + var plnos = $("#zzl-parkIds").val(); + if(plnos==null||plnos==''){ + plNos.push("-1X"); + } + else{ + plNos = JSON.parse(plnos); + } + var dates = $('#zzl-daterange-btn input').val(); + var date = dates.split(' - '); + var beginTime = date[0] +" 00:00:00"; + var endTime = date[1] +" 23:59:59"; + var req = { + sysCode: sysComm.sysCode, + plBlockIds: plBlockIds, + plNos: plNos, + beginTime: new Date(beginTime.replace(new RegExp(/-/gm) ,"/")), + endTime: new Date(endTime.replace(new RegExp(/-/gm) ,"/")), + }; + + return req; + }, + //查询全部停车场周转次数统计 + zzlDrawTurnOver:function (data) { + var datas = [{value:0, name:'所有次数'},{value:0, name:'0次'},{value:0, name:'1次'},{value:0, name:'2-5次'},{value:0, name:'5-10次'}, + {value:0, name:'10-20次'},{value:0, name:'20-50次'},{value:0, name:'50次以上'}]; + if(data != undefined && data != null){ + datas[1].value = data.normalNum0; + datas[1].name = parkTurnOver[1]; + datas[2].value = data.normalNum1; + datas[2].name = parkTurnOver[2]; + datas[3].value = data.normalNum2; + datas[3].name = parkTurnOver[3]; + datas[4].value = data.normalNum3; + datas[4].name = parkTurnOver[4]; + datas[5].value = data.normalNum4; + datas[5].name = parkTurnOver[5]; + datas[6].value = data.normalNum5; + datas[6].name = parkTurnOver[6]; + datas[7].value = data.normalNum6; + datas[7].name = parkTurnOver[7]; + datas.splice(0,1); + } + + var parlAllchart = echarts.init(document.getElementById('zzl-parkAll-chart')); + // 指定图表的配置项和数据 + var topleftoption = { + color:['#1e95cd','#5fe98f','#fdc94d','#50c0f5','#5ed8a6','#2bb97f','#50c0f5','#fd714b','#a5dff3'], + tooltip: { + trigger: 'item', + formatter: "{a}
    {b}: {c} ({d}%)" + }, + legend: { + orient: 'vertical', + right:'8%', + top:'5%', + selectedMode:false, + hoverAnimation: false, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + }, + itemWidth:16, + itemHeight:10, + // data:parkTurnOver + data:['全部','0次','1次','2-5次','5-10次','10-20次','20-50次','50次以上'] + }, + series: [ + { + name:'全部停车场', + type:'pie', + radius: ['60%', '70%'], + center:['30%', '50%'], + avoidLabelOverlap: false, + hoverAnimation:false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '12', + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:datas/*[{value:335, name:'全部'}, + {value:310, name:'0次'}, + {value:234, name:'1次'}, + {value:135, name:'2-5次'}, + {value:35, name:'5-10次'}, + {value:15, name:'10-20次'}, + {value:135, name:'20-50次'}, + {value:548, name:'50次以上'} + ]*/ + } + ] + }; + + parlAllchart.setOption(topleftoption,true); + // parlAllchart.dispatchAction({ + // type: 'downplay', + // seriesIndex: 0, + // dataIndex: 0 + // }); + // parlAllchart.dispatchAction({ + // type: 'highlight', + // seriesIndex: 0, + // dataIndex: 0 + // }); + + }, + //街道办事处 echarts + zzlDrawFactoryTurnOver:function (data) { + var factoryNames = new Array(); + var factoryTurnOverXDatas = new Array(); + $.each(parkTurnOver, function(index,item) { + factoryTurnOverXDatas.push(item); + }); + factoryTurnOverXDatas.splice(0,1); + var datas = new Array(); + var obj = new Object(); + var value = new Array(); + if(data.length>0){ + $.each(data, function(index,item) { + value = []; + obj = new Object(); + factoryNames.push(item.factoryName); + obj.name = item.factoryName; + obj.type = 'line'; + value.push(item.normalNum0); + value.push(item.normalNum1); + value.push(item.normalNum2); + value.push(item.normalNum3); + value.push(item.normalNum4); + value.push(item.normalNum5); + value.push(item.normalNum6); + obj.data = value; + datas.push(obj); + }); + }else { + console.log(data); + value = []; + obj = new Object(); + obj.name = '无厂商'; + obj.type = 'line'; + value.push(0); + value.push(0); + value.push(0); + value.push(0); + value.push(0); + value.push(0); + value.push(0); + obj.data = value; + datas.push(obj); + + } + var lineecharts = echarts.init(document.getElementById('zzl-topright-echarts')); + var lineoption = { + color:['#1e95cd','#5fe98f','#fdc94d','#50c0f5','#5ed8a6','#2bb97f','#50c0f5','#fd714b','#a5dff3'], + tooltip: { + trigger: 'item', + formatter: '{a}
    {b} : {c}' + }, + legend: { + itemHeight:10, + right: '10', + top:'0', + data: factoryNames + //data: ['大华','华赛','烽火'] + }, + xAxis: { + type: 'category', + axisLabel: { + interval:0, + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + data: factoryTurnOverXDatas + //data: ['0次','1次','2-5次','5-10次','10-20次','20-50次','50次以上'] + }, + grid: { + top: '13%', + left: '1%', + right: '3%', + bottom: '2%', + containLabel: true + }, + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + }, + + series: datas + }; + lineecharts.setOption(lineoption,true); + lineecharts.resize(); + }, + //默认生成表格数据 + zzlcreateTableData: function() { + $('#zzlrecordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: zzltableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'plName', + title: ' 车场名称', + width: '10%', + visible: true, + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'normalNum0', + title: ' 0次', + width: '10%', + align: 'left', + formatter: commonObj.replacenull + }, + + { + field: 'normalNum1', + title: ' 1次', + width: '10%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'normalNum2', + title: ' 2-5次', + width: '10%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'normalNum3', + title: ' 5-10次', + width: '10%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'normalNum4', + title: ' 10-20次', + width: '10%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'normalNum5', + title: ' 20-50次', + width: '10%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'normalNum6', + title: ' 50次以上', + width: '10%', + align: 'left', + formatter: commonObj.replacenull + }, + + ] + }); + }, + //详细-次数初始化 + initTurnOverTimes:function(){ + var html; + $.each(parkTurnOver,function(index,item){ + html+=''; + }); + $("#zzl-number").empty(); + $("#zzl-number").append(html); + $("#zzl-number").selectpicker('refresh'); + $("#zzl-number").selectpicker('val',0); + }, + //初始化周转次数详细弹窗 + loadTurnOverDetailTable:function (){ + //初始化停车场 + var plno = $('#zzl-parkIds').val(); + $('#parkIds1').selectpicker('val',plno); + //zzlfun.initParkSelect(); + //初始化日期选择 + //zzlfun.initSelectDates(); + //初始化次数 + zzlfun.initTurnOverTimes(); + //初始化泊位区间 + zzlfun.setBerthRange([]); + //加载数据 + zzlfun.zzlcreateTurnoverData(); + + }, + isOnlineFormatter:function(value){ + if(value==null){ + return ""; + } + else if(value == "0"){ + return "在线"; + } + else if(value == "1"){ + return "离线"; + } + else{ + return "故障"; + } + }, + //单个停车场周转次数 + zzlcreateTurnoverData: function() { + $('#turnoveroentab').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: zzltableDetailLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'plAreaBlockName', + title: '街道办事处', + width: '10%', + visible: true, + align: 'left' + }, + { + field: 'plName', + title: '车场名称', + width: '10%', + align: 'left', + + }, + + { + field: 'parkAreaName', + title: '泊位区间', + width: '10%', + align: 'left', + }, + + { + field: 'berthNo', + title: '泊位编号', + width: '10%', + align: 'left', + }, + { + field: 'eqpNo', + title: '地磁编号', + width: '10%', + align: 'left', + }, + { + field: 'factoryName', + title: '传感器厂商', + width: '10%', + align: 'left', + }, + + { + field: 'eqpIsOnline', + title: '地磁状态', + width: '15%', + align: 'left', + formatter:zzlfun.isOnlineFormatter + }, + { + field: 'num', + title: '周转次数', + width: '10%', + align: 'left', + } + ] + }); + }, +}; + +zzlfun.init(); + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#exportPark").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#exportPark").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#exportPark").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#exportPark").val("导出"); + } + else { + curCount--; + $("#exportPark").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#exportPark',function (){ + //获取table所有行数据 + var parkLot = $("#zzlrecordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#zzlrecordtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + //导出函数 + zzlfun.exportEqpInOutParkAllStatisticExcel(); +}); +// 全部停车场详情 弹窗 +documentBindFunc.on('click','#openparkAll',function () { + var dateValue = $("#zzl-daterange-btn input").val(); + var dates=dateValue.split(" - "); + var beginTime = dates[0]+" 00:00:00"; + beginTime = new Date(beginTime.replace(new RegExp(/-/gm) ,"/")); + if(beginTime + +
    +
    +
    +
    +
    + +
    +
    + 泊位编号 + +
    +
    + 地磁编号 + +
    +
    + +
    +
    查询
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + 查询时间 + +
    +
    + +
    +
    +
    + + + + +
    +
    +
    +
      +
    • 详细记录
    • +
    • + +
    • +
    +
    +
    +
    +
    + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/devicemanageFile/deveiceData/geomagneticData.js b/assets/pages/scripts/devicemanageFile/deveiceData/geomagneticData.js new file mode 100644 index 0000000..f56bc51 --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/deveiceData/geomagneticData.js @@ -0,0 +1,408 @@ +/** + * Created by chenbiao on 2017/8/25. + */ +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; + + +$(function () { + + +//点击导入 弹窗 + $(document).on('click','#enterbtn',function () { + $('.geomanage-con').css('display','none'); + $('.alert_over').css('display','block'); + }) + + + +//关闭弹窗 取消地磁信息 + documentBindFunc.on('click','.loading_alert_cancel',function () { + $('.alert_over').css('display','none'); + $('.geomanage-con').css('display','block'); + }) +//保存弹窗 地磁信息 + documentBindFunc.on('click','.loading_alert_ok',function () { + $('.alert_over').css('display','none'); + $('.geomanage-con').css('display','block'); + }) + +}) +var fun ={ + init: function () { + + // 周转次数查询时间 + $('#queryTime').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#queryTime").datetimepicker({ + startDate: moment().subtract('days', 0).format('2017-11-01'), + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + forceParse: false, + minView: 3, + minuteStep:1, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }).on('changeDate', function(ev){ + var time = moment(ev.date).format('YYYY-MM-DD'); + } + ); + + //初始化设备状态 + $('#eventTypes').selectpicker('render'); + //初始化停车场下拉框 + fun.initPark(); + //初始化设备类型 + fn.getEqpType(fun.getEqpType); + //初始化车位信息下拉框 + fn.getFactoryInfo(fun.initFactory); + //基本信息 + fun.createTableData(); + //条件查询 + fun.parkingSpaceQuery(); + + }, + //停车场下拉框 + initPark: function () { + var data = fn.getParkLot(3); + $("#parkIds").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + + }, + initFactory:function(data){ + $("#factory").empty(); + var html = ""; + $.each(data,function (index,item) { + html += ""; + }) + $("#factory").append(html); + $('#factory').selectpicker('render'); + }, + //初始化设备类型下拉框 + getEqpType:function(datas){ + $('#eqpType').empty(); + var html = ""; + $.each(datas, function(index,item) { + html += ""; + }) + $('#eqpType').append(html); + $('#eqpType').selectpicker('render'); + }, + //生成表格数据 + createTableData: function () { + $('#eqpTable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '上一页', + paginationNextText: '下一页', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'plName', title: '停车场名称', width: '15%', align: 'left',formatter:commonObj.replacenull}, + {field: 'berthNo', title: '泊位编号', width: '15%', align: 'left',formatter:commonObj.replacenull}, + {field: 'eqpNo', title: '设备编号', width: '15%', align: 'left',formatter:commonObj.replacenull}, + {field: 'factoryName', title: '设备型号', width: '15%', align: 'left',formatter:commonObj.replacenull}, + {field: 'eventType', title: '设备状态', width: '15%', align: 'left',formatter:fun.eventTypeFormatter}, + {field: 'eqpType', title: '设备类型', width: '15%', align: 'left',formatter:fun.eqpTypeFormatter}, + {field: 'createTime', title: '上报时间', width: '15%', align: 'left',formatter:commonObj.timeFormatter} + ] + }); + + }, + eventTypeFormatter:function(value,row,index){ + if(value=='11'){ + return "车辆入场"; + }else if (value=='10'){ + return "车辆出场"; + }else if (value=='9'){ + return "设备心跳"; + }else if (value=='12'){ + return "车位检测器电压低电压"; + }else if (value=='13'){ + return "车位检测器电压正常"; + }else if(value=='99'){ + return "系统判断为离线"; + }else{ + return "-"; + } + }, + eqpTypeFormatter:function(value,row,index){ + if(value=='1'){ + return "地磁"; + }else if (value=='2'){ + return "视频桩"; + }else if (value=='3'){ + return "地锁"; + }else if (value=='4'){ + return "网关"; + }else if (value=='5'){ + return "中继器"; + }else{ + return "其他"; + } + }, + /*获取查询参数*/ + getQueryParam: function () { + /*停车场编码*/ + var plNos = JSON.parse($("#parkIds").val()); + var geomagneticNo = $("#geomagneticNo").val(); + var berthNo = $("#berthNo").val(); + var eventTypes = JSON.parse($("#eventTypes").val()); + var factoryNos = JSON.parse($("#factory").val()); + var createTime = $("#queryTime").val()+" 00:00:00"; + var eqpType = JSON.parse($("#eqpType").val()); + if( eqpType.length == 0){ + eqpType = ''; + }else{ + eqpType = eqpType[0]; + } + + //条件查询 + var req= { + baseRequest:{ + pageNum:0, + pageSize:1 + }, + sysCode:sysComm.sysCode, + plNos: plNos, + eqpNo: geomagneticNo, + berthNo:berthNo, + eventTypes:eventTypes, + factoryNos:factoryNos, + createTime:createTime, + eqpType:eqpType + }; + return req; + }, + //操作显示 + operFormatter:function(value,row,index){ + var operStr =''+ + ''; + return operStr; + }, + formatTableUnit:function(value,row,index){ + return { + css: { + "white-space":"nowrap" + } + } + }, + //条件查询 + parkingSpaceQuery:function () { + documentBindFunc.on('click', '#parkingSpaceQuery', function () { + //初始化table + fun.createTableData(); + }); + }, + //停车场下拉框 + initAddParkSelect: function () { + var data = fn.getParkLot(); + $("#addParkLot").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + $("#addParkLot").append(html); + $('#addParkLot').selectpicker('refresh'); + }, + downloadOper: function (element) { + var params = fun.getQueryParam(); + var url = dataUrl.util.exportParkEqpLogExcel(); + + url += '?plNos=' + params.plNos; + if(null != params.eqpNo){ + url+='&eqpNo='+params.eqpNo; + } + if(null != params.eqpType){ + url+='&eqpType=' +params.eqpType; + } + + if(null != params.factoryNos){ + url+='&factoryNos='+params.factoryNos + } + + if(null != params.berthNo){ + url+='&berthNo='+params.berthNo + } + + if(null != params.eventTypes){ + url+='&eventTypes='+params.eventTypes + } + + if(null != params.createTime){ + url+='&createTime='+params.createTime + } + + // +'&eqpNo='+params.eqpNo + // +'&eqpType=' +params.eqpType+'&factoryNos='+params.factoryNos + // +'&berthNo='+params.berthNo+'&eventTypes='+params.eventTypes + // +'&createTime='+params.createTime; + url = encodeURI(url); + window.downloadFile(url); + } + +}; + +fun.init(); +//停车场默认加载 +function tableLoadRequest(params){ + var plNos = JSON.parse($("#parkIds").val()); + var geomagneticNo = $("#geomagneticNo").val(); + var berthNo = $("#berthNo").val(); + var eventTypes = JSON.parse($("#eventTypes").val()); + var factoryNos = JSON.parse($("#factory").val()); + var createTime = $("#queryTime").val(); + var eqpType = JSON.parse($("#eqpType").val())[0]; + //设置请求参数 + var pageNum = (params.data.offset/params.data.limit)+1; + //条件查询 + var req= { + baseRequest:{ + pageNum:pageNum, + pageSize:params.data.limit + }, + sysCode:sysComm.sysCode, + plNos: plNos, + eqpNo: geomagneticNo, + berthNo:berthNo, + eventTypes:eventTypes, + factoryNos:factoryNos, + createTime:createTime, + eqpType:eqpType + }; + var cehicleFlowTableAjax= { + method: params.type, + url: dataUrl.util.queryParkEqpLogForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + params.success(res.data); + }else{ + + } + } + }; + sysAjax(cehicleFlowTableAjax); +}; + + +//点击导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#reportBtn").val("导出"); + } + else { + curCount--; + $("#reportBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#reportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#eqpTable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#eqpTable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + fun.downloadOper(this); + +}); \ No newline at end of file diff --git a/assets/pages/scripts/devicemanageFile/devieceTmp.js b/assets/pages/scripts/devicemanageFile/devieceTmp.js new file mode 100644 index 0000000..6a8fb25 --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/devieceTmp.js @@ -0,0 +1,70 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
    '+urlarr[i].name+'
    ' + }else{ + _html += '
  • '+urlarr[i].name+'
  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/geomagneticmanage', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.css'); + res.load('../../assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-geomagneticmanage').addClass('ITD-topbar-clickactive'); +}); +R.route('/pdamanage', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.css'); + res.load('../../assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-pdamanage').addClass('ITD-topbar-clickactive'); + +}); +R.route('/roadgate', function() { + + $("#pageCssLink").attr("href",'../../assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.css'); + res.load('../../assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-roadgate').addClass('ITD-topbar-clickactive'); + +}); +R.route('/geomagneticData', function() { + + $("#pageCssLink").attr("href",'../../assets/pages/scripts/devicemanageFile/deveiceData/geomagneticData.css'); + res.load('../../assets/pages/scripts/devicemanageFile/deveiceData/geomagneticData.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-geomagneticData').addClass('ITD-topbar-clickactive'); + +}); +R.route('/screenmanage', function() { + + $("#pageCssLink").attr("href",'../../assets/pages/scripts/devicemanageFile/screenFile/screenmanage.css'); + res.load('../../assets/pages/scripts/devicemanageFile/screenFile/screenmanage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-screenmanage').addClass('ITD-topbar-clickactive'); + +}); \ No newline at end of file diff --git a/assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.css b/assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.css new file mode 100644 index 0000000..7f060bd --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.css @@ -0,0 +1,274 @@ +/*搜索*/ + + + +/*弹窗*/ +.geomanage-parkinput{ + width: 180px !important; + padding-left: 12px; + height: 34px; + line-height: 34px; +} +.geomanage-mapBg{ + background: url(img/geomanage_baidimapIco.png) no-repeat; + width: 34px; + height: 34px; + position: absolute; + top: 0; + left: 190px; + background-position: 10px 9px; + cursor: pointer; +} + +/*表格*/ +/*fixed-table-container top*/ +.fixed-table-container thead th .th-inner{ + padding: 6px 30px 6px 24px!important; +} +/* +#geomanageTable .bs-checkbox{ + padding-left: 0 !important; +} +*/ + + +/*echarts*/ +.geomagneticmanage-wrap{ + height: 180px; +} +.geomagneticmanage-con{ + width: 50%; + height: 100%; +} +.geomagneticmanage-con-l{ + left: 50%; + top:50%; + transform: translate(-50%,-50%); +} +.geomagneticmanage-con-name{ + /*font-size: 16px;*/ + /*padding-left: 12px;*/ +} +.geomagneticmanage-con-title-1{ + min-width: 100px; + font-size: 16px; + padding-left: 20px; + background: url("img/geomagneticmanage-con-title-1.png") no-repeat 0 center; + margin-bottom: 12px; +} +.geomagneticmanage-con-title-2{ + min-width: 100px; + font-size: 16px; + padding-left: 20px; + background: url("img/geomagneticmanage-con-title-2.png") no-repeat 0 center; + margin-bottom: 12px; +} +.geomagneticmanage-con-title-3{ + min-width: 100px; + font-size: 16px; + padding-left: 20px; + background: url("img/geomagneticmanage-con-title-3.png") no-repeat 0 center; + margin-bottom: 12px; +} +.geomagneticmanage-con-num{ + font-size: 36px; +} +.geomagneticmanage-echarts{ + width: 100%; + height: 100%; +} +/*批量上传 -------*/ +.cardrule-poptop-cont{ + height: 34px; + line-height: 34px; + width: 100%; +} +.padding-left0{ + padding-left: 0 !important; +} +.card-about-con{ + height: 32px; + line-height: 32px; + padding-left: 24px; + border: 1px dotted #f0f0f0; + margin-bottom: 20px; +} +.card-about-con li { + margin-right: 50px; +} +.card-list-header{ + height: 36px; + line-height: 36px; + background-color: #fafafa; + padding-left: 24px; +} +.card-list-header li:nth-of-type(1),.card-list-wrap li:nth-of-type(1){ + width: 120px; +} +.card-list-header li:nth-of-type(2),.card-list-wrap li:nth-of-type(2){ + width: 120px; +} +.card-list-header li:nth-of-type(3),.card-list-wrap li:nth-of-type(3){ + width: 140px; +} +.card-list-header li:nth-of-type(4),.card-list-wrap li:nth-of-type(4){ + width: 120px; +} +.card-list-header li:nth-of-type(5),.card-list-wrap li:nth-of-type(5){ + width: 90px; +} +.card-list-header li:nth-of-type(6),.card-list-wrap li:nth-of-type(6){ + width: 100px; +} +.card-list-header li:nth-of-type(7),.card-list-wrap li:nth-of-type(7){ + width: 140px; +} +.card-list-header li:nth-of-type(8),.card-list-wrap li:nth-of-type(8){ + width: 90px; +} +.card-list-header li:nth-of-type(9),.card-list-wrap li:nth-of-type(9){ + width: 90px; +}.card-list-header li:nth-of-type(10),.card-list-wrap li:nth-of-type(10){ + width: 70px; +} +.rulepos-abs{ + position: absolute; + top: 3px; +} +.card-list-wrap{ + padding-left: 24px; + height: 40px; + border-bottom: 1px solid #e7ecf1; +} +.card-list-wrap li{ + line-height: 36px; + height: 36px; +} +.devname-inp,.devNo-inp,.devqueryTime,.xlNo-inp{ + height: 30px; + line-height: 30px; + width: 90px; +} +.devqueryTime{ + height: 30px; + line-height: 30px; + width: 120px; + +} +.devheartbeatTime{ + height: 30px; + line-height: 30px; + width: 80px; +} +.dev_lon,.dev_lat{ + height: 30px; + line-height: 30px; + width: 80px; +} +.card-add-wrap li:nth-of-type(1){ + padding-left: 24px; + color: #fd714b; + width: 350px; + margin-right: 50px; +} +.card-list-main{ + min-height: 50px; + /*max-height: 200px;*/ + /*overflow-y: auto;*/ +} +.card-list-wrap li:nth-of-type(4) input{ + width: 60px; +} +#card-list-main .card-list-wrap{ + display: block; +} +.card-add-wrap{ + height: 60px; + padding-top: 20px; +} +.card-add-wrap li:nth-of-type(2){ + cursor: pointer; + color: #fff; + width: 94px; + height: 28px; + text-align: center; + line-height: 28px; + background-color: #fcca4c; + border-radius: 4px!important; +} + +/*批量上传 -------*/ +.page-content{ + min-width: 1200px !important; +} +.card-batch-wrap{ + height: 54px; + background-color: #fafafa; + border-bottom: 1px solid #e8e8e8; +} +.card-batch-left{ + width: 161px; + height: 34px; + margin-top: 10px; + padding-left: 20px; + border-right: 1px solid #e8e8e8; + background:url("img/pop_word_ico.png") no-repeat 20px center; +} +.batch-left-toptit{ + height: 20px; + line-height: 20px; + font-size: 14px; + margin-left: 30px; + background: url("img/pop_unload.png") no-repeat 90px ; +} +.batch-left-jdt{ + width: 100px; + height: 3px; + background-color: #e8e8e8; + border-radius: 5px!important; + vertical-align: middle; + overflow: hidden; + margin-top: 5px; + margin-left: 30px; +} +.left-jdt-scale{ + width: 60%; + height: 3px; + border-radius: 5px!important; + background-color: #50c1f4; +} +.card-batch-right{ + padding-top: 10px; + width: 140px; + height: 34px; + padding-left: 24px; +} +.card-batch-upload{ + height: 34px; + width: 80px; + margin: 10px 50px 0 10px; +} +.cardrule-error-ifo{ + text-align: center; + color:#f00; + height: 30px; + line-height: 30px; +} +#carTypeedit,#renewTimeedit,#renewPriceedit,#renewDisedit,#renewCardtypeedit,#renewlicesenType,#renewlicesenTime,#renewlicesenPrice,#renewlicesenDisval,#renewlicesenCardtype{ + margin-left: 3px; +} +.card-daterange-bg { + width: 55%; + text-align: left; + /*background: url(../../img/dataicon.png) no-repeat 94% 9px;*/ + background: #fff; + padding-right: 25px; + border-radius: 4px !important; +} +.btn.default:not(.btn-outline) { + border: 1px solid #c2cad8; +} +.turnover-opentable { + max-height: 400px; + overflow-y: auto; +} \ No newline at end of file diff --git a/assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.html b/assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.html new file mode 100644 index 0000000..949c295 --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.html @@ -0,0 +1,680 @@ +
    +
    +
    +
    +
    +
    + +
    +
    + 泊位编号 + +
    +
    + 设备编号 + +
    +
    +
    +
    更多
    +
    +
    +
    查询
    +
    + +
    + +
    + + + + + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + 地磁在线 +
    +
    + 0 +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + 地磁离线 +
    +
    + 0 +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + 地磁故障 +
    +
    + 0 +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
  • 详细记录
  • +
  • + + + + + + + + +
  • +
    +
    +
    +
    + +
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.js b/assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.js new file mode 100644 index 0000000..038f252 --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/geomagnetismFile/geomagneticmanage.js @@ -0,0 +1,2191 @@ +/** + * Created by chenbiao on 2017/8/25. + */ +var fun ={ + init: function () { + //初始化停车场下拉框 + fun.initPark(); + //时间初始化 + fun.timeInit(); + //初始化设备状态 + $('#eqpIsOnline').selectpicker('render'); + $('#usedType').selectpicker('render'); + //初始化设备类型 + //fn.getEqpType(fun.getEqpType); + //初始化车位信息下拉框 + fn.getFactoryInfo(fun.initFactory); + + + //基本信息 + fun.createTableData(); + //初始化图表数据 + fun.initChartAjax(); + //条件查询 + fun.parkingSpaceQuery(); + //修改弹窗 + documentBindFunc.on('click', '[updategeomagnetic]', function() { + fun.updateGeomagnetic(this); + }); + + //接入方式单选框事件 + $('#geomanage-verifycode').attr("disabled",true); + documentBindFunc.on('change','input[name=\'geomanage-joinmethod-add\']',function () { + var v = $(this).val(); + if(v=="10"){//设备直连 + //序列号无需输入 + $('#geomanage-verifycode').attr("disabled",true); + }else{ + $('#geomanage-verifycode').attr("disabled",false); + } + }); + + }, + timeInit:function () { + //心跳时间 + $("#heart_daydaterange_btnsta").datetimepicker({ + language: 'zh-CN', + format: 'yyyy-mm-dd hh:ii:00', + autoclose: 1, + minuteStep:10,//分钟间隔10分钟 + forceParse: false, + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }); + //最新进出场上报时间 + $("#geoNew_daydaterange_btnsta").datetimepicker({ + language: 'zh-CN', + format: 'yyyy-mm-dd hh:ii:00', + autoclose: 1, + minuteStep:10,//分钟间隔10分钟 + forceParse: false, + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }) + }, + //停车场下拉框 + initPark: function () { + var data = fn.getParkLot(3); + $("#parkIds").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + + }, + initFactory:function(data){ + $("#factory").empty(); + var html = ""; + $.each(data,function (index,item) { + html += ""; + }) + $("#factory").append(html); + $('#factory').selectpicker('render'); + }, + initAddFactory:function(data){ + $("#geomanage-gooderadd").empty(); + var html = ""; + $.each(data,function (index,item) { + html += ""; + }) + $("#geomanage-gooderadd").append(html); + $('#geomanage-gooderadd').selectpicker('render'); + }, + //初始化设备类型下拉框 + getEqpType:function(datas){ + $('#eqpType').empty(); + var html =''; + $.each(datas, function(index,item) { + html += ""; + }) + $('#eqpType').append(html); + $('#eqpType').selectpicker('render'); + }, + //生成表格数据 + createeqpTableData: function () { + //生成上报表格数据 + $('#eqpNotable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '上一页', + paginationNextText: '下一页', + ajax: eqpNoLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'plName', title: '停车场名称', width: '15%', align: 'left',formatter:commonObj.replacenull}, + {field: 'berthNo', title: '泊位编号', width: '15%', align: 'left',formatter:commonObj.replacenull}, + {field: 'eqpNo', title: '设备编号', width: '15%', align: 'left',formatter:commonObj.replacenull}, + {field: 'factoryName', title: '设备型号', width: '15%', align: 'left',formatter:commonObj.replacenull}, + {field: 'eventType', title: '设备状态', width: '15%', align: 'left',formatter:fun.eventTypeFormatter}, + {field: 'eqpType', title: '设备类型', width: '15%', align: 'left',formatter:fun.eqpTypeFormatter}, + {field: 'createTime', title: '上报时间', width: '15%', align: 'left',formatter:commonObj.timeFormatter} + ] + }); + }, + createTableData: function () { + $('#geomanageTable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {title:'',width: '5%',checkbox: true,align: 'center'}, + {field: 'id', title: '主键', width: '15%', align: 'left',visible: false}, + {field: 'lonId', title: '经度', width: '15%', align: 'left',visible: false}, + {field: 'latId', title: '维度', width: '15%', align: 'left',visible: false}, + { + field: 'plName', + title: '泊位信息', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + commonObj.replacenull(value) + '
    ' + + '
    ' + commonObj.replacenull(row.berthNo) + '
    ' + } + }, + { + field: 'factoryName', + title: '设备型号', + width: '10%', + align: "left", + formatter: function (value, row, index) { + var str = "设备直连"; + if(row.joinMethod!=undefined && row.joinMethod!="" && row.joinMethod!=null && row.joinMethod=="20"){ + str = "NB-电信IOT"; + } + return '
    ' + (value==null?"未知":value) +'
    '; + } + }, + { + field: 'eqpNo', + title: '设备编号', + width: '10%', + align: "left", + formatter: function (value, row, index) { + var verifyCodeStr = ""; + console.log(row) + if(row.verifyCode!=undefined && row.verifyCode!="" && row.verifyCode!=null){ + verifyCodeStr = row.verifyCode; + } + return '
    ' +fun.eqpIsOnlineFormatter(row.eqpIsOnline,row,index)+" "+ commonObj.replacenull(value) +'
    ' + + '
    ' + commonObj.replacenull(verifyCodeStr) + '
    ' + } + }, + {field: 'gatewayNo', title: '主机信息', width: '10%', align: 'left',formatter:commonObj.replacenull}, + {field: 'heartbeatTime', title: '心跳时间', width: '10%', align: 'left',formatter:commonObj.timeFormatter}, + {field: 'inOutTime', title: '进出场上报时间', width: '10%', align: 'left',formatter:commonObj.timeFormatter}, + {field: 'usedType', title: '使用状态', width: '10%', align: 'left',formatter:fun.usedTypeFormatter}, + {field: 'eqpType', title: '设备类型', width: '10%', align: 'left',visible: false,formatter:fun.eqpTypeFormatter}, + {field: 'heartbeatInterval', title: '心跳间隔(秒)', width: '15%', align: 'left',visible: false}, + {field: 'installTime', title: '设备安装时间', width: '10%', align: 'left',formatter:commonObj.timeFormatter,visible: false}, + {field: 'remark', title: '备注', width: '10%', align: 'left', + formatter:function (value, row, index) { + return '
    '+commonObj.replacenull(value)+'
    ' + } + }, + {field: 'oper', title: '操作', width: '10%', align: 'left',formatter:fun.operFormatter} + ], + /* onCheckAll: function (row) { + getIdSelections(); + }, + onUncheckAll:function (row) { + getIdSelections(); + }*/ + }); + + }, + eventTypeFormatter:function(value,row,index){ + if(value=='11'){ + return "车辆入场"; + }else if (value=='10'){ + return "车辆出场"; + }else if (value=='9'){ + return "设备心跳"; + }else if (value=='12'){ + return "车位检测器电压低电压"; + }else if (value=='13'){ + return "车位检测器电压正常"; + }else if(value=='99'){ + return "系统判断为离线"; + }else{ + return "-"; + } + }, + eqpTypeFormatter:function(value,row,index){ + if(value=='1'){ + return "地磁"; + }else if (value=='2'){ + return "视频桩"; + }else if (value=='3'){ + return "地锁"; + }else if (value=='4'){ + return "网关"; + }else if (value=='5'){ + return "中继器"; + }else{ + return "其他"; + } + }, + operFormatter: function(value, row, index) { + var operStr = '修改'; + return operStr; + }, + eqpIsOnlineFormatter:function(value,row,index){ + //是否在线:0-在线;1-掉线;2-故障 + if(value=='0' || value=='21'){ + //../css/img/geomagneticmanage-con-title-1.png + var operStr = ''; + return operStr; + // return "在线"; + }else if (value=='1'){ + var operStr = ''; + return operStr; + // return "离线"; + }else if (value=='2'){ + var operStr = ''; + return operStr; + }else if(value===null||value===undefined||value===''){ + return '-'; + }else{ + return value; + } + }, + usedTypeFormatter:function(value,row,index){ + if(value=='10'){ + return "调试"; + }else if (value=='20'){ + return "商用"; + }else{ + return "调试"; + } + }, + eqpTypeFormatter:function(value,row,index){ + if(value=='1'){ + return "地磁"; + }else if (value=='2'){ + return "视频桩"; + }else if (value=='3'){ + return "地锁"; + }else if (value=='4'){ + return "网关"; + }else if (value=='5'){ + return "中继器"; + }else{ + return "其他"; + } + }, + + /*获取查询参数*/ + getQueryParam: function () { + /*停车场名称编码*/ + var plNos = JSON.parse($("#parkIds").val()); + var geomagneticNo = $("#geomagneticNo").val(); + var berthNo = $("#berthNo").val(); + var eqpIsOnline = $("#eqpIsOnline").val(); + var factoryNos = JSON.parse($("#factory").val()); + var usedType = $("#usedType").val(); + var heartbeatTime = $("#heart_daydaterange_btnsta").val(); + if(heartbeatTime!=null && heartbeatTime != ''){ + heartbeatTime = new Date((heartbeatTime).replace(/-/g, "/")); + }else{ + heartbeatTime = null; + } + var inOutTime = $("#geoNew_daydaterange_btnsta").val(); + if(inOutTime!=null && inOutTime != ''){ + inOutTime = new Date((inOutTime).replace(/-/g, "/")) + }else{ + inOutTime = null; + } + //条件查询 + var req= { + sysCode:sysComm.sysCode, + plNos: plNos, + eqpNo: geomagneticNo, + berthNo:berthNo, + eqpIsOnline:eqpIsOnline, + factoryNos:factoryNos, + heartbeatTime:heartbeatTime, + inOutTime:inOutTime, + usedType:usedType + }; + return req; + }, + // //操作显示 + // operFormatter:function(value,row,index){ + // var operStr =''+ + // ''; + // return operStr; + // }, + formatTableUnit:function(value,row,index){ + return { + css: { + "white-space":"nowrap" + } + } + }, + //条件查询 + parkingSpaceQuery:function () { + documentBindFunc.on('click', '#queryBtn', function () { + //初始化table + fun.createTableData(); + fun.initChartAjax(); + }); + }, + //新增地磁初始化停车场下拉框 + initAddParkSelect: function (plNo) { + var data = fn.getParkLot(3); + $("#parkNameadd").empty(); + $("#parkNameadd_modify").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + $("#parkNameadd").append(html); + $('#parkNameadd').selectpicker('render'); + $("#parkNameadd_modify").append(html); + $('#parkNameadd_modify').selectpicker('render'); + //查询停车场下未绑定地磁的泊位编码 + fun.getBerthInfoForNoBindEqpByPlNo(plNo==null?plNos[0]:plNo); + }, + //批量导入地磁初始化停车场下拉框 + initImportParkSelect: function () { + var data = fn.getParkLot(3); + $("#geomanage_parkName").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + $("#geomanage_parkName").append(html); + $('#geomanage_parkName').selectpicker('render'); + }, + //查询停车场下未绑定地磁的泊位编码 + getBerthInfoForNoBindEqpByPlNo:function (plNo) { + //console.log(plNo); + var req={ + pklNo:plNo, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.getBerthInfoForNoBindEqpByPlNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + var data=res.data; + $("#berthNumadd").empty(); + $("#berthNumadd_modify").empty(); + $("#geomanage_berthNum").empty(); + console.log(data) + var html = ''; + var berthNo=[]; +// if(data.length==0){ +// html += ""; +// } + html += ""; + for (var i = 0; i < data.length; i++) { + + if(berthNo.indexOf(data[i])==-1){ + berthNo.push(data[i]); + html += ""; + } + } + //console.log(html) + $("#berthNumadd").append(html); + $('#berthNumadd').selectpicker('refresh'); + $("#geomanage_berthNum").append(html); + $('#geomanage_berthNum').selectpicker('refresh'); + + + //获取要修改的信息 + var modifyid = $("#geomanage_modify_id").val(); + if(modifyid!=null && modifyid!=''){ + //根据唯一值获取行数据 + var modifyRow = $('#geomanageTable').bootstrapTable('getRowByUniqueId', modifyid); + if(modifyRow!=null && modifyRow!=undefined){ + var modifyPlno = modifyRow.plNo; + if(modifyPlno==plNo){ + html += ""; + } + $("#berthNumadd_modify").append(html); + $('#berthNumadd_modify').val(modifyRow.berthNo); + //初始化泊位编号 + $('#berthNumadd_modify').selectpicker('refresh'); + } + } + } + } + }; + sysAjax(optAjax); + }, + + + updateGeomagnetic:function(element){ + $('#geomanage-addParkinglot_modify').css('display','none'); + + + //初始化安装时间 + $("#geomanage-queryTime_modify").datetimepicker({ + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-right" + }); + + + var id = $(element).attr('dataid'); + $("#geomanage_modify_id").val(id); + //根据唯一值获取行数据 + var modifyRow = $('#geomanageTable').bootstrapTable('getRowByUniqueId', id); + //console.log(modifyRow); + //初始化停车场 + fun.initAddParkSelect(modifyRow.plNo); + //初始化厂商 + fn.getFactoryInfo(fun.initAddFactory); + //fun.getBerthInfoForNoBindEqpByPlNo(modifyRow.plNo); + $("#parkNameadd_modify").val(modifyRow.plNo); + $("#geomanage-gooderadd_modify").text(modifyRow.factoryName); + $("#geomanage-deviceNum_modify").text(modifyRow.eqpNo); + $("#geomanage-deviceTypenum_modify").val(modifyRow.eqpModel); + $("#userType_add_modify").val(modifyRow.usedType); + if(modifyRow.lonId==null ||modifyRow.lonId==''||modifyRow.lonId==undefined||modifyRow.latId==null||modifyRow.latId==''||modifyRow.latId==undefined){ + $("#geomanage-lonlat-add_modify").val(''); + }else { + $("#geomanage-lonlat-add_modify").val(modifyRow.lonId+","+modifyRow.latId); + } + + + //$("#geomanage-deviceType_modify").val(modifyRow.eqpType); + + $("#geomanage-deviceName_modify").val(modifyRow.eqpName); + + $("#geomanage-heartbeatTime_modify").val(modifyRow.heartbeatInterval); + + $("#geomanage-queryTime_modify").val(modifyRow.installTime==null?"":DateUtils.long2String(modifyRow.installTime,1)); + + $("#geomanage-remark-add_modify").val(modifyRow.remark); + var joinMethod = modifyRow.joinMethod; + if(joinMethod==undefined || joinMethod == null || joinMethod=="" || joinMethod==10){ + + $('#geomanage-joinmethod-modify').text("设备直连"); + $('#geomanage-verifycode-modify').text("无"); + }else if(joinMethod==20){ + $('#geomanage-joinmethod-modify').text("NB-电信IOT"); + $('#geomanage-verifycode-modify').text(modifyRow.verifyCode); + } + + //初始化设备类型 + //$('#geomanage-deviceType_modify').selectpicker('refresh'); + $('#userType_add_modify').selectpicker('refresh'); + $("#parkNameadd_modify").selectpicker('render'); + + $('#geomanage_modifymodel').modal('show'); + }, + initChart:function (count,onLineCount,downLineCount,faultCount) { + /*echarts*/ + var onLineRatio=0; + var downLineRatio=0; + var faultRatio=0; + if(0!=parseInt(count) && count!=null){ + onLineRatio=(parseInt(onLineCount)*100/parseInt(count)).toFixed(0); + downLineRatio=(parseInt(downLineCount)*100/parseInt(count)).toFixed(0); + faultRatio=(parseInt(faultCount)*100/parseInt(count)).toFixed(0); + }else{ + onLineRatio=0; + downLineRatio=0; + faultRatio=0; + } + + console.log(onLineCount) + console.log(count) + var onLine = echarts.init(document.getElementById('geomagneticmanage-online')); + var onlineOption = { + color:['#d9dbe1','#d9dbe1','#d9dbe1'], + title: { + text: onLineRatio+'%', + x: 'center', + y: 'center', + textStyle: { + fontWeight: 'normal', + color: '#26be96', + fontSize: 24 + } + }, + tooltip: { + show:false + }, + + series: [ + { + hoverAnimation:false, + name:'访问来源', + type:'pie', + radius: ['60%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + { + tooltip: { + show: false + }, + value:onLineRatio, + name:'在数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#2abb9b' // 0% 处的颜色 + }, { + offset: 1, color: '#5ecde2' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + { + value:100-onLineRatio, + name:'总数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#d9dbe1' // 0% 处的颜色 + }, { + offset: 1, color: '#d9dbe1' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + + + + ] + }, + { + hoverAnimation:false, + type: 'pie', + tooltip: { + show: false + }, + animation: false, + clockWise: false, + radius: ['72%', '74%'], + itemStyle:{ + corlor:'#f00' + }, + hoverAnimation: false, + tooltip: { + show: false + }, + labelLine: { + normal: { + show: false + } + }, + data: [{ + value: 100, + + }, { + value: 0, + + // itemStyle: placeHolderStyle + } + + ] + } + ] + }; + onLine.setOption(onlineOption); + + var offLine = echarts.init(document.getElementById('geomagneticmanage-offline')); + var offlineOption = { + color:['#d9dbe1','#d9dbe1','#d9dbe1'], + title: { + text: downLineRatio+'%', + x: 'center', + y: 'center', + textStyle: { + fontWeight: 'normal', + color: '#59b2ed', + fontSize: 24 + } + }, + tooltip: { + show:false + }, + + series: [ + { + hoverAnimation:false, + name:'访问来源', + type:'pie', + radius: ['60%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + { + tooltip: { + show: false + }, + value:downLineRatio, + name:'在数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#59b2ed' // 0% 处的颜色 + }, { + offset: 1, color: '#6ed3f8' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + { + value:100-downLineRatio, + name:'总数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#d9dbe1' // 0% 处的颜色 + }, { + offset: 1, color: '#d9dbe1' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + + + + ] + }, + { + hoverAnimation:false, + type: 'pie', + tooltip: { + show: false + }, + animation: false, + clockWise: false, + radius: ['72%', '74%'], + itemStyle:{ + corlor:'#f00' + }, + hoverAnimation: false, + tooltip: { + show: false + }, + labelLine: { + normal: { + show: false + } + }, + data: [{ + value: 100, + + }, { + value: 0, + + // itemStyle: placeHolderStyle + } + + ] + } + ] + }; + offLine.setOption(offlineOption); + + var faultLine = echarts.init(document.getElementById('geomagneticmanage-fault')); + var faultlineOption = { + color:['#d9dbe1','#d9dbe1','#d9dbe1'], + title: { + text: faultRatio+'%', + x: 'center', + y: 'center', + textStyle: { + fontWeight: 'normal', + color: '#fe6372', + fontSize: 24 + } + }, + tooltip: { + show:false + }, + + series: [ + { + hoverAnimation:false, + name:'访问来源', + type:'pie', + radius: ['60%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + { + tooltip: { + show: false + }, + value:faultRatio, + name:'在数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#fe6372' // 0% 处的颜色 + }, { + offset: 1, color: '#fea886' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + { + value:100-faultRatio, + name:'总数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#d9dbe1' // 0% 处的颜色 + }, { + offset: 1, color: '#d9dbe1' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + + + + ] + }, + { + hoverAnimation:false, + type: 'pie', + tooltip: { + show: false + }, + animation: false, + clockWise: false, + radius: ['72%', '74%'], + itemStyle:{ + corlor:'#f00' + }, + hoverAnimation: false, + tooltip: { + show: false + }, + labelLine: { + normal: { + show: false + } + }, + data: [{ + value: 100, + + }, { + value: 0, + + // itemStyle: placeHolderStyle + } + + ] + } + ] + }; + faultLine.setOption(faultlineOption); + }, + initChartAjax:function () { + var req = fun.getQueryParam(); + //设置请求参数 + req.baseRequest={ + sysCode:sysComm.sysCode, + pageNum:1, + pageSize:0 + } + req.sysCode=sysComm.sysCode; + var optAjax= { + method: "post", + url: dataUrl.util.statisticEqpCountByCondition(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res); + if(res.code = "8888"){ + var data=res.data; + var onLineCount=data.onlineEqpNum; + var downLineCount=data.offLineEqpNum; + var count=data.allEqpNum; + var faultCount=count-downLineCount-onLineCount; + + $("#onLineCount").text(onLineCount); + $("#downLineCount").text(downLineCount); + $("#faultCount").text(faultCount); + // count = count+onLineCount+downLineCount+faultCount; + fun.initChart(count,onLineCount,downLineCount,faultCount); + + + + } + } + }; + sysAjax(optAjax); + }, + +} +fun.init(); + +$(function () { + + //点击新增 弹窗 + $(document).on('click','#geomanage-addBtn',function () { + $('#geomanage-addParkinglot').text(''); + $('#geomanage-addParkinglot').addClass('display-none'); + + //初始化停车场 + fun.initAddParkSelect(); + //初始化厂商 + fn.getFactoryInfo(fun.initAddFactory); + //初始化泊位编号 + $('#berthNumadd').selectpicker('refresh'); + //初始化设备类型 + //$('#geomanage-deviceType').selectpicker('refresh'); + $('#userType_add').selectpicker('refresh'); + + $("#geomanage-deviceNum").val(""); + $("#geomanage-deviceTypenum").val(""); + $("#geomanage-lonlat-add").val(""); + $("#geomanage-deviceName").val(""); + + $("#geomanage-heartbeatTime").val(""); + + $("#geomanage-queryTime").val(""); + + $("#geomanage-remark-add").val(""); + $("#geomanage-verifycode").val(""); + + //初始使用时间 + $("#geomanage-touseTime").datetimepicker({ + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-right" + }); + //初始化安装时间 + $("#geomanage-queryTime").datetimepicker({ + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-right" + }); + $('#geomanage-queryTime').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //初始化泊位编号 + $('#geomanage_addmodel').modal('show'); + + }); + + //新增时停车场变化,联动泊位编号也变化 + $(document).on('change','#parkNameadd',function () { + var plNo=$("#parkNameadd").val(); + //console.log(plNo) + //查询停车场下未绑定地磁的泊位编码 + + fun.getBerthInfoForNoBindEqpByPlNo(plNo); + }); + + //修改时停车场变化,联动泊位编号也变化 + $(document).on('change','#parkNameadd_modify',function () { + var plNo=$("#parkNameadd_modify").val(); + //console.log(plNo) + //查询停车场下未绑定地磁的泊位编码 + fun.getBerthInfoForNoBindEqpByPlNo(plNo); + }); + + //点击新增确认按钮 + documentBindFunc.on('click','#geomanage-add-submit',function () { + /***1、基本校验 ***/ + var plNo=$("#parkNameadd").val(); + var factoryNo=$("#geomanage-gooderadd").val(); + var eqpNo=$("#geomanage-deviceNum").val(); + var eqpModel=$("#geomanage-deviceTypenum").val(); + + var usedType=$("#userType_add").val(); + + var lonAndLat=$("#geomanage-lonlat-add").val(); + console.log(lonAndLat); + //经度 + var lonId; + //维度 + var latId; + if(lonAndLat ==null ||lonAndLat==''||lonAndLat==undefined){ + console.log(123) + lonAndLat =lonAndLat.split(","); + lonId = lonAndLat[0]; + latId = lonAndLat[0]; + }else { + lonAndLat =lonAndLat.split(","); + lonId = lonAndLat[0]; + latId = lonAndLat[1]; + } + + + var berthNo=$("#berthNumadd").val(); + + //var eqpType=$("#geomanage-deviceType").val(); + + var eqpName=$("#geomanage-deviceName").val(); + + var heartbeatInterval=$("#geomanage-heartbeatTime").val(); + + var installTime=$("#geomanage-queryTime").val(); + + var remark=$("#geomanage-remark-add").val(); + + var createOp=fn.getUserId()==null?-1:fn.getUserId(); + + var joinMethod = $("input[name='geomanage-joinmethod-add']:checked").val(); + + var verifyCode = $("#geomanage-verifycode").val(); + /***2、校验设备编号是否唯一 ***/ + + //设备编号校验 + if(eqpNo == "" || eqpNo == null || eqpNo == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备编号为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + //设备名称校验 + /*else if(eqpName == "" || eqpName == null || eqpName == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备名称为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + }*/ + //设备型号校验 +// else if(berthNo == "" || berthNo == null || berthNo == undefined){ +// $("#geomanage-addParkinglot").text(""); +// $("#geomanage-addParkinglot").text("无泊位编号可绑定!"); +// $('#geomanage-addParkinglot').show(); +// return false; +// } + //接入方式校验 + else if(joinMethod == "" || joinMethod == null || joinMethod == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("接入方式为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + //接入方式为NB-IOT时,序列号必填 + else if(joinMethod == "20" && (verifyCode == "" || verifyCode == null || verifyCode == undefined)){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("序列号为必填项!"); + $('#geomanage-addParkinglot').show(); + } + //安装时间校验 + else if(installTime == "" || installTime == null || installTime == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("安装日期为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + else if(heartbeatInterval== "" || heartbeatInterval == null || heartbeatInterval == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("心跳间隔为必填项!"); + $('#geomanage-addParkinglot').show(); + }else{ + /***3、保存数据 ***/ + installTime =new Date((installTime + " 00:00:00").replace(/-/g, "/")); + var req={ + plNo:plNo, + factoryNo:factoryNo, + eqpNo:eqpNo, + eqpModel:eqpModel, + usedType:usedType, + berthNo:berthNo, + //eqpType:eqpType, + eqpName:eqpName, + heartbeatInterval:heartbeatInterval, + installTime:installTime, + remark:remark, + createOp:createOp, + lonId:lonId, + latId:latId, + joinMethod:joinMethod, + verifyCode:verifyCode, + sysCode:sysComm.sysCode + }; + + var optAjax= { + method: "post", + url: dataUrl.util.saveEqpMsg(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code == "8888"){ + $('#geomanage_addmodel').modal('hide'); + $("#geomanage-addParkinglot").text(""); + $('#geomanage-addParkinglot').hide(); + fun.initChartAjax(); + $('#geomanageTable').bootstrapTable('refresh', { + silent: true + }); + }else{ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text(res.msg); + $('#geomanage-addParkinglot').show(); + } + } + }; + sysAjax(optAjax); + } + }); + + //点击继续新增按钮 + documentBindFunc.on('click','#geomanage-addother-submit',function () { + + /***1、基本校验 ***/ + var plNo=$("#parkNameadd").val(); + var factoryNo=$("#geomanage-gooderadd").val(); + var eqpNo=$("#geomanage-deviceNum").val(); + var eqpModel=$("#geomanage-deviceTypenum").val(); + + var usedType=$("#userType_add").val(); + + var lonAndLat=$("#geomanage-lonlat-add").val(); + //经度 + var lonId; + //维度 + var latId; + if(lonAndLat !=null ){ + lonAndLat =lonAndLat.split(","); + lonId = lonAndLat[0]; + latId = lonAndLat[1]; + } + + + var berthNo=$("#berthNumadd").val(); + + //var eqpType=$("#geomanage-deviceType").val(); + + var eqpName=$("#geomanage-deviceName").val(); + + var heartbeatInterval=$("#geomanage-heartbeatTime").val(); + + var installTime=$("#geomanage-queryTime").val(); + + var remark=$("#geomanage-remark-add").val(); + + var createOp=fn.getUserId()==null?-1:fn.getUserId(); + var joinMethod = $("input[name='geomanage-joinmethod-add']:checked").val(); + + var verifyCode = $("#geomanage-verifycode").val(); + /***2、校验设备编号是否唯一 ***/ + + //设备编号校验 + if(eqpNo == "" || eqpNo == null || eqpNo == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备编号为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + /*//设备名称校验 + else if(eqpName == "" || eqpName == null || eqpName == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备名称为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + //设备型号校验 + else if(eqpModel == "" || eqpModel == null || eqpModel == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备型号为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + }*/ + //接入方式校验 + else if(joinMethod == "" || joinMethod == null || joinMethod == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("接入方式为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + //接入方式为NB-IOT时,序列号必填 + else if(joinMethod == "20"){ + + if(verifyCode == "" || verifyCode == null || verifyCode == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("序列号为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + } + //安装时间校验 + else if(installTime == "" || installTime == null || installTime == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("安装日期为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + else if(heartbeatInterval== "" || heartbeatInterval == null || heartbeatInterval == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("心跳间隔为必填项!"); + $('#geomanage-addParkinglot').show(); + } + //经纬度校验 + /* else if(lonAndLat == "" || lonAndLat == null || lonAndLat == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("经纬度为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + }*/else{ + /***3、保存数据 ***/ + installTime =new Date((installTime + ":59").replace(/-/g, "/")); + var req={ + plNo:plNo, + factoryNo:factoryNo, + eqpNo:eqpNo, + eqpModel:eqpModel, + usedType:usedType, + berthNo:berthNo, + //eqpType:eqpType, + eqpName:eqpName, + heartbeatInterval:heartbeatInterval, + installTime:installTime, + remark:remark, + createOp:createOp, + lonId:lonId, + latId:latId, + joinMethod:joinMethod, + verifyCode:verifyCode, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.saveEqpMsg(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code == "8888"){ + ////初始化停车场 + fun.initAddParkSelect(); + //初始化厂商 + //fn.getFactoryInfo(fun.initAddFactory); + $("#geomanage-addParkinglot").text(""); + + $('#geomanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initChartAjax(); + $('#geomanage_alertmodel').modal('show'); + setTimeout(function () { + $('#geomanage_alertmodel').modal('hide'); + },2000); + }else{ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text(res.msg); + $('#geomanage-addParkinglot').show(); + } + } + }; + sysAjax(optAjax); + } + }); + + //点击修改确认按钮 + documentBindFunc.on('click','#geomanage-add-submit_modify',function () { + /***1、基本校验 ***/ + var id=$("#geomanage_modify_id").val(); + var plNo=$("#parkNameadd_modify").val(); + var eqpModel=$("#geomanage-deviceTypenum_modify").val(); + + var usedType=$("#userType_add_modify").val(); + + var lonAndLat=$("#geomanage-lonlat-add_modify").val(); + //经度 + var lonId; + //维度 + var latId; + if(lonAndLat ==null ||lonAndLat==''||lonAndLat==undefined){ + lonAndLat =lonAndLat.split(","); + lonId = 0; + latId = 0; + }else { + lonAndLat =lonAndLat.split(","); + lonId = lonAndLat[0]; + latId = lonAndLat[1]; + } + + + var eqpNo = $("#geomanage-deviceNum_modify").text(); + var berthNo=$("#berthNumadd_modify").val(); + + //var eqpType=$("#geomanage-deviceType_modify").val(); + + //var eqpName=$("#geomanage-deviceName_modify").val(); + + var heartbeatInterval=$("#geomanage-heartbeatTime_modify").val(); + + var installTime=$("#geomanage-queryTime_modify").val(); + + var remark=$("#geomanage-remark-add_modify").val(); + + var createOp=fn.getUserId()==null?-1:fn.getUserId(); + + /***2、校验设备编号是否唯一 ***/ + + /*//设备编号校验 + if(eqpNo == "" || eqpNo == null || eqpNo == undefined){ + $("#geomanage-addParkinglot_modify").text(""); + $("#geomanage-addParkinglot_modify").text("设备编号为必填项!"); + $('#geomanage-addParkinglot_modify').show(); + return false; + }*/ + /*//设备名称校验 + else if(eqpName == "" || eqpName == null || eqpName == undefined){ + $("#geomanage-addParkinglot_modify").text(""); + $("#geomanage-addParkinglot_modify").text("设备名称为必填项!"); + $('#geomanage-addParkinglot_modify').show(); + return false; + } + //设备型号校验 + else if(eqpModel == "" || eqpModel == null || eqpModel == undefined){ + $("#geomanage-addParkinglot_modify").text(""); + $("#geomanage-addParkinglot_modify").text("设备型号为必填项!"); + $('#geomanage-addParkinglot_modify').show(); + return false; + }*/ + + // + if(heartbeatInterval== "" || heartbeatInterval == null || heartbeatInterval == undefined){ + $("#geomanage-addParkinglot_modify").text(""); + $("#geomanage-addParkinglot_modify").text("心跳间隔为必填项!"); + $('#geomanage-addParkinglot_modify').show(); + }else{ + /***3、保存数据 ***/ + installTime =new Date((installTime + " 00:00:00").replace(/-/g, "/")); + var req={ + id:id, + plNo:plNo, + //factoryNo:factoryNo, + eqpNo:eqpNo, + eqpModel:eqpModel, + usedType:usedType, + berthNo:berthNo, + //eqpType:eqpType, + //eqpName:eqpName, + heartbeatInterval:heartbeatInterval, + installTime:installTime, + remark:remark, + createOp:createOp, + lonId:lonId, + latId:latId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.updateEqpMsg(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + + console.log(res) + if(res.code == "8888"){ + + $('#geomanage_modifymodel').modal('hide'); + $("#geomanage-addParkinglot_modify").text(""); + $('#geomanage-addParkinglot_modify').hide(); + fun.initChartAjax(); + $('#geomanageTable').bootstrapTable('refresh', { + silent: true + }); + }else{ + $("#geomanage-addParkinglot_modify").text(""); + $("#geomanage-addParkinglot_modify").text(res.msg); + $('#geomanage-addParkinglot_modify').show(); + } + } + }; + sysAjax(optAjax); + } + }); + + //删除弹窗 + documentBindFunc.on('click','#geomanage-del',function () { + // + var ids2 = []; + ids2 = getIdSelections(); + + if(ids2[0] == null) { + swal({ + title: "提示", + text: '请选择至少一条记录!', + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } else { + $('#geomanage_deletemodel').modal('show'); + } + }); + + //删除确定按钮 + documentBindFunc.on('click','#geomanage-parkdelete-submit',function () { + + var eqpDtos = []; + eqpDtos = $.map($("#geomanageTable").bootstrapTable('getSelections'), function(row) { + var eqpDto = {}; + eqpDto.id = row.id; + eqpDto.joinMethod = row.joinMethod; + eqpDto.deviceId = row.deviceId; + return eqpDto; + }); + var opId=fn.getUserId()==null?-1:fn.getUserId(); + var req={ + eqps:eqpDtos, + opId:opId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.deleteEqpMsgById(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + $('#geomanage_deletemodel').modal('hide'); + $('#geomanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initChartAjax(); + fun.createTableData(); + } + } + }; + sysAjax(optAjax); + }); + + //解绑主机 + documentBindFunc.on('click','#geoUnBindHostBtn',function () { + var ids2 = []; + ids2 = getIdSelections(); + + if(ids2[0] == null) { + swal({ + title: "提示", + text: '请选择至少一条记录!', + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } + else { + swal({title: '提示',text: '确定要解绑主机?',type: 'warning',showCancelButton: true, + allowOutsideClick:false,confirmButtonText: '确定',cancelButtonText: '关闭', + }).then(function(isConfirm) { + if (isConfirm === true) { + //解绑 + var opId=fn.getUserId()==null?-1:fn.getUserId(); + var req={ + ids:ids2, + opId:opId, + hostNo:'', + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.bindEqpHostByIds(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888" && res.data){ + swal({title: "提示",text: '已解绑!',type: "success",timer: 3000,allowOutsideClick: true}); + fun.initChartAjax(); + fun.createTableData(); + }else{ + swal({title: "提示",text: '解绑失败!',type: "warning",timer: 3000,allowOutsideClick: true}); + } + } + }; + sysAjax(optAjax); + } else if (isConfirm === false) { + swal.close() + } + }); + } + }); + + //绑定主机 + documentBindFunc.on('click','#geoBindHostBtn',function () { + var ids = []; + ids = getIdSelections(); + + if(ids[0] == null) { + swal({ + title: "提示", + text: '请选择至少一条记录!', + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } + else { + //查询主机信息 + var req={ + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.queryTpPEqpHostList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + var html; + for (var i = 0; i < res.data.length; i++) { + html += ""; + } + $('#bindhost_modify').html(html); + $('#bindhost_modify').selectpicker('render'); + $('#bindhost_model').modal('show'); + }else{ + swal({title: "提示",text: res.msg,type: "warning",timer: 3000,allowOutsideClick: true}); + } + } + }; + sysAjax(optAjax); + + } + }); + + //确定绑定按钮 + documentBindFunc.on('click','#geoBindHostComfirmBtn',function () { + $('#bindhost_model').modal('hide'); + swal({title: '提示',text: '确定要绑定该主机?',type: 'warning',showCancelButton: true, + allowOutsideClick:false,confirmButtonText: '确定',cancelButtonText: '关闭', + }).then(function(isConfirm) { + if (isConfirm === true) { + //解绑 + var opId=fn.getUserId()==null?-1:fn.getUserId(); + var ids = ids = getIdSelections(); + var hostNo = $('#bindhost_modify').val(); + var req={ + ids:ids, + opId:opId, + hostNo:hostNo, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.bindEqpHostByIds(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888" && res.data){ + swal({title: "提示",text: '已绑定该主机!',type: "success",timer: 3000,allowOutsideClick: true}); + fun.initChartAjax(); + fun.createTableData(); + }else{ + swal({title: "提示",text: '绑定失败!',type: "warning",timer: 3000,allowOutsideClick: true}); + } + } + }; + sysAjax(optAjax); + } else if (isConfirm === false) { + swal.close() + } + }); + }); + + //地磁上报信息优化 弹窗 + documentBindFunc.on('click','.geopopMsg',function (){ + // 查询时间 + $('#queryTime').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#queryTime").datetimepicker({ + // startDate: moment().subtract('days', 0).format('2017-11-01'), + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + forceParse: false, + minView: 3, + minuteStep:1, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + //初始化设备状态 + $('#eventTypes').selectpicker('render'); + plNoval = []; + plval = $(this).attr("data-parking"); + plNoval.push(plval) + eqpNoval = $(this).attr("data-value"); + fun.createeqpTableData(); + $('#eqpNo_model').modal('show'); + + }); + //地磁上报信息优化 弹窗 + documentBindFunc.on('click','#eqp_queryBtn',function (){ + fun.createeqpTableData(); + }); +}); + +//停车场默认加载 +function tableLoadRequest(params){ + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset/params.data.limit)+1; + req.baseRequest={ + pageNum:pageNum, + pageSize:params.data.limit + } + var cehicleFlowTableAjax= { + method: params.type, + url: dataUrl.util.queryEqpPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + params.success(res.data); + }else{ + + } + } + }; + sysAjax(cehicleFlowTableAjax); +}; + +//上报地磁信息 +function eqpNoLoadRequest(params){ + var createTime = $("#queryTime").val(); + // var createTime = $("#queryTime").val()+" 00:00:00"; + var eventTypes = JSON.parse($("#eventTypes").val()); + var pageNum = (params.data.offset/params.data.limit)+1; + //条件查询 + var req= { + baseRequest:{ + pageNum:pageNum, + pageSize:params.data.limit + }, + sysCode:sysComm.sysCode, + plNos: plNoval, + eventTypes:eventTypes, + eqpNo: eqpNoval, + createTime:createTime, + }; + var cehicleFlowTableAjax= { + method: params.type, + url: dataUrl.util.queryParkEqpLogForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + params.success(res.data); + }else{ + + } + } + }; + sysAjax(cehicleFlowTableAjax); +} + +function getIdSelections() { + return $.map($("#geomanageTable").bootstrapTable('getSelections'), function(row) { + return row.id; + }); +}; + +//点击导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#geomanage-recordBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#geomanage-recordBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#geomanage-recordBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#geomanage-recordBtn").val("导出"); + } + else { + curCount--; + $("#geomanage-recordBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#geomanage-recordBtn',function (){ + //获取table所有行数据 + var parkLot = $("#geomanageTable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#geomanageTable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + var req = fun.getQueryParam(); + var url = dataUrl.util.eqpMsgToExcleForPage(); + var forms = exportGeomagneticForm(url, req.plNos,req.eqpNo, req.berthNo,req.eqpIsOnline, + req.factoryNos,req.usedType + ); + forms.submit(); +}); + +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); +}); +//导入取消 +documentBindFunc.on('click', "#cancel_btn", function () { + $('#geoleading_model').addClass('display-none'); + $('.geo_normals').removeClass('display-none'); + +}); + +//批量导入打开对话框 +documentBindFunc.on('click', '#geoleadingBtn', function() { + $('#geoleading-error').addClass('display-none').text(''); + $('#error-ifo-add').addClass('display-none').text(''); + // $('#areamanage_file_btn').val(''); + $('#file_btn').val(''); +// $('#geoleading_sure').attr('disabled', "true"); //添加disabled属性 + $('#uplate_sure').attr('disabled', "true"); //添加disabled属性 + $(".fileinput-filename").html(''); + $('.geo_normals').addClass('display-none'); + $('#geoleading_model').removeClass('display-none'); + + //初始化 header + //1.停车场初始化 + fun.initImportParkSelect(); + //2.所有设备型号 + geomanage_gooderNoInit(); + + + //清空表格 部分 + $('#card-list-mainNew').empty(); + +}); + +//新增时停车场变化,联动泊位编号也变化 +//$(document).on('change','#geomanage_parkName',function () { +// var plNo=$("#geomanage_parkName").val(); +// //console.log(plNo) +// //查询停车场下未绑定地磁的泊位编码 +// +// fun.getBerthInfoForNoBindEqpByPlNo(plNo); +//}); + + +//设备型号初始化 +function geomanage_gooderNoInit(){ + //初始化车位信息下拉框 + fn.getFactoryInfo(function (data) { + $("#geomanage_gooderNo").empty(); + var html = ""; + $.each(data,function (index,item) { + html += ""; + }) + $("#geomanage_gooderNo").append(html); + $('#geomanage_gooderNo').selectpicker('render');//设备型号 + }); +} + + + + + +//模版下载 +documentBindFunc.on('click', '#excleTemplate', function() { + window.location.href = parkcloudbaseUrl + "eqp/地磁批量导入模板.xlsx"; + +}); + +//upload function + +//上传filestr................................................. +documentBindFunc.on('click', '#uplate_sure', function() { + $("#card-list-mainNew").empty(); + var url =dataUrl.util.batchImportEQPInfo(); + ajaxSubmit("form1",url,function(res){ + if(res.code == '8888') { + var data = res.data; + if(data != null && data.length >100 ){ + $('#error-ifo-add').removeClass('display-none').text("一次最多上传100条数据"); + return; + }else if(data == null || data == "" || data == undefined){ + $('#error-ifo-add').removeClass('display-none').text("请在excle添加数据后上传"); + return; + } + $.each(data,function(index,row){ + if(row.length <7){ + $('#error-ifo-add').removeClass('display-none').text("上传的excle不正确"); + return; + } + var htmlData ='
      '+ + '
    • '+ + ''+ + '
    • '+ + '
    • '+ + ''+ + '
    • '+ + '
    • '+ + ''+ + '
    • '+ + '
    • '+ + ''+ + '
    • '+ + '
    • '+ + ' '+ + '
    • '+ + '
    • '+ + ''+ + '
    • '+ + '
    • '+ + ''+ + '
    • '+ + '
    • '+ + ''+ + '
    • '+ + '
    • '+ + ''+ + '
    • '+ + '
    • '+ + '删除'+ + '
    • '+ + + '
    '; + + $("#card-list-mainNew").append(htmlData); + //初始化安装时间 + $(".devqueryTime").datetimepicker({ + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + $('.userType_modify').selectpicker('refresh');//设备型号 + $('.dev_joinmethods').selectpicker('refresh');//设备型号 + + }); + + + } + }); + function ajaxSubmit(formId,url,callback){ + $("#"+formId).ajaxSubmit({ + url: url, //后台方法的路径 + type: 'post', //当要提交自定义参数时,这个参数要设置成post + dataType: 'json', //服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。 + beforeSend: function (xhr) { + xhr.setRequestHeader("x-auth-token", fn.getToken()); + }, + success: function(data) { // data 保存提交后返回的数据,一般为 json 数据 + callback(data); + } + }); + }; + + documentBindFunc.on('click', '.del-btn', function() { + $(this).parent().parent().remove(); + }); + + + + +}); + + +//上传fileend................................................. +// 数字 校验 +function clearNoNum(obj) +{ +//先把非数字的都替换掉,除了数字和. + obj.value = obj.value.replace(/[^\d.]/g,""); +//必须保证第一个为数字而不是. + obj.value = obj.value.replace(/^\./g,""); +//保证只有出现一个.而没有多个. + obj.value = obj.value.replace(/\.{2,}/g,"."); +//保证.只出现一次,而不能出现两次以上 + obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); +} +// 导入确定 事件 +documentBindFunc.on('click', '#devleading_sure', function() { + var flg= true; + var allParkName=$.trim($('#geomanage_parkName').val()); +// var allberthName=$.trim($('#geomanage_berthNum').val()); + var eqpMode=$.trim($('#geomanage_gooderNo').val()); + if(allParkName == '' || allParkName == undefined || allParkName == null){ + $('#error-ifo-add').removeClass('display-none').text('请选择停车场'); + flg=false; + return; + }/* if(allberthName == '' || allberthName == undefined || allberthName == null){ + $('#error-ifo-add').removeClass('display-none').text('请选择泊位编号'); + flg=false; + return; + }*/ if(eqpMode == '' || eqpMode == undefined || eqpMode == null){ + $('#error-ifo-add').removeClass('display-none').text('请选择设备型号'); + flg=false; + return; + } + var ulDocument = $("#card-list-mainNew").find('ul.card-list-wrap'); + var detailList = []; + $.each(ulDocument,function(index,row){ + var lis = $(this).find('li'); + console.log(lis.html()); + var eqpNo = lis.find('.devname-inp').val(); //设备编号 + var verifyCode = lis.find('.xlNo-inp').val(); //电信IOT验证码,一般为设备的imei号 :序号 + var berthNo = lis.find('.devNo-inp').val(); //改为泊位编号 + var joinMethod = lis.find('.dev_joinmethods').val(); // 接入方式 + var usedType = lis.find('.userType_modify').val(); //设备使用类型:10-调试中;20-商用中 + var heartbeatInterval = lis.find('.devheartbeatTime').val(); //心跳时间 + var installTime = lis.find('.devqueryTime').val(); //安装时间 + var lonId = lis.find('.dev_lon').val(); //经度 + var latId = lis.find('.dev_lat').val(); //维度 + if(joinMethod != null && joinMethod != '' && joinMethod != '11'){ +// if(verifyCode == '' || verifyCode == undefined || verifyCode == null){ +// $('#error-ifo-add').removeClass('display-none').text('请填写第'+(index+1)+'行序列号'); +// flg=false; +// return; +// } + } + if(verifyCode == '' || verifyCode == undefined || verifyCode == null){ + $('#error-ifo-add').removeClass('display-none').text('请填写第'+(index+1)+'行序列号'); + flg=false; + return; + } + if(eqpNo == '' || eqpNo == undefined || eqpNo == null){ + $('#error-ifo-add').removeClass('display-none').text('请填写第'+(index+1)+'行设备编号'); + flg=false; + return; + } if(heartbeatInterval == '' || heartbeatInterval == undefined || heartbeatInterval == null){ + $('#error-ifo-add').removeClass('display-none').text('请填写第'+(index+1)+'行心跳间隔'); + flg=false; + return; + } /*if(installTime == '' || installTime == undefined || installTime == null){ + $('#error-ifo-add').removeClass('display-none').text('请选择第'+(index+1)+'行安装时间'); + flg=false; + return; + } if(lonId == '' || lonId == undefined || lonId == null){ + $('#error-ifo-add').removeClass('display-none').text('请填写第'+(index+1)+'行经度值'); + flg=false; + return; + } if(latId == '' || latId == undefined || latId == null){ + $('#error-ifo-add').removeClass('display-none').text('请填写第'+(index+1)+'行纬度值'); + flg=false; + return; + }*/ + var batchInsertEqpDTOList ={}; + batchInsertEqpDTOList.plNo=allParkName; + batchInsertEqpDTOList.berthNo=berthNo; + batchInsertEqpDTOList.factoryNo =JSON.parse(eqpMode)[0]; + batchInsertEqpDTOList.eqpNo=eqpNo; + batchInsertEqpDTOList.verifyCode=verifyCode; + batchInsertEqpDTOList.joinMethod=joinMethod; + batchInsertEqpDTOList.usedType=usedType; + batchInsertEqpDTOList.heartbeatInterval=heartbeatInterval; + batchInsertEqpDTOList.installTime=new Date(installTime); + batchInsertEqpDTOList.lonId=lonId; + batchInsertEqpDTOList.latId=latId; + batchInsertEqpDTOList.eqpType=1; //1-地磁;2-视频桩;3-地锁,4-网关,5-中继器等 + batchInsertEqpDTOList.lonLatType=1; //百度 + batchInsertEqpDTOList.createTime= new Date(); + batchInsertEqpDTOList.eqpIsOnline=1 + batchInsertEqpDTOList.dataState=1 + batchInsertEqpDTOList.optFlg=1 + batchInsertEqpDTOList.createOp=fn.getUserId(); + detailList.push(batchInsertEqpDTOList); + }); + if(!flg){ + return; + } + if(detailList.length < 1){ + $('#error-ifo-add').removeClass('display-none').text('请先上传地磁数据'); + flg = false; + } + if(!flg){ + return; + } + //保存 + var req = { + sysCode: sysComm.sysCode, + batchInsertEqpDTOList:detailList + }; + if(flg){ + $('#devleading_sure').attr("disabled",true); + flg=false; + $("#alert_sure").attr("readonly","readonly"); + var opt = { + method: 'post', + url: dataUrl.util.batchInsetExcleList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if(res.code=='8888'){ + flg=true; + $('#devleading_sure').removeAttr("disabled"); + $('#geoleading_model').addClass('display-none'); + $('.geo_normals').removeClass('display-none'); + fun.createTableData(); + }else{ + flg=true; + $('#error-ifo-add').removeClass('display-none').text(res.msg); + return; + } + + } + }; + sysAjax(opt); + } + + + + + +}); + +//input change +function inputChangeupload() { + // documentBindFunc.on("change", "#file_btn", function() + // console.log($(this)) + var filePath = $('#file_btn').val(); + var arr = filePath.split('\\'); + var fileName = arr[arr.length - 1]; + console.log(fileName) + $(".fileinput-filename").html(fileName); + $('#uplate_sure').removeAttr("disabled"); //移除disabled属性 + // }); +} + +function exportGeomagneticForm(url, plNos, eqpNo, berthNo, eqpIsOnline,factoryNos,usedType +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "plNos"; + input.value = plNos; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "eqpNo"; + input2.value = eqpNo; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "isOnline"; + input3.value = eqpIsOnline; + form.appendChild(input3); + + + var input4 = document.createElement("input"); + input4.name = "factoryNos"; + input4.value = factoryNos; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "berthNo"; + input5.value = berthNo; + form.appendChild(input5); + + var input6 = document.createElement("input"); + input6.name = "usedType"; + input6.value = usedType; + form.appendChild(input6); + + return form; + +}; + diff --git a/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/cardrule-person-ico.png b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/cardrule-person-ico.png new file mode 100644 index 0000000..47360e5 Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/cardrule-person-ico.png differ diff --git a/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-1.png b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-1.png new file mode 100644 index 0000000..1899bcc Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-1.png differ diff --git a/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-2.png b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-2.png new file mode 100644 index 0000000..0377bd3 Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-2.png differ diff --git a/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-3.png b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-3.png new file mode 100644 index 0000000..0745d1c Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomagneticmanage-con-title-3.png differ diff --git a/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomanage_baidimapIco.png b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomanage_baidimapIco.png new file mode 100644 index 0000000..c139675 Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/geomanage_baidimapIco.png differ diff --git a/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_unload.png b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_unload.png new file mode 100644 index 0000000..d06267e Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_unload.png differ diff --git a/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_upload.png b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_upload.png new file mode 100644 index 0000000..a9b1f8c Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_upload.png differ diff --git a/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_word_ico.png b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_word_ico.png new file mode 100644 index 0000000..5a91dc3 Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/geomagnetismFile/img/pop_word_ico.png differ diff --git a/assets/pages/scripts/devicemanageFile/img/guidepop_leftico.png b/assets/pages/scripts/devicemanageFile/img/guidepop_leftico.png new file mode 100644 index 0000000..0c31b25 Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/img/guidepop_leftico.png differ diff --git a/assets/pages/scripts/devicemanageFile/img/guidepop_rightico.png b/assets/pages/scripts/devicemanageFile/img/guidepop_rightico.png new file mode 100644 index 0000000..9a81000 Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/img/guidepop_rightico.png differ diff --git a/assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-1.png b/assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-1.png new file mode 100644 index 0000000..1899bcc Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-1.png differ diff --git a/assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-2.png b/assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-2.png new file mode 100644 index 0000000..0377bd3 Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-2.png differ diff --git a/assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-3.png b/assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-3.png new file mode 100644 index 0000000..0745d1c Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomagneticmanage-con-title-3.png differ diff --git a/assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomanage_baidimapIco.png b/assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomanage_baidimapIco.png new file mode 100644 index 0000000..c139675 Binary files /dev/null and b/assets/pages/scripts/devicemanageFile/pdamanageFile/img/geomanage_baidimapIco.png differ diff --git a/assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.css b/assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.css new file mode 100644 index 0000000..137ff64 --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.css @@ -0,0 +1,70 @@ +/*搜索*/ + + + +/*弹窗*/ +.pdamanage-parkinput{ + width: 180px !important; + padding-left: 12px; + height: 34px; + line-height: 34px; +} + + +/*表格*/ +/*fixed-table-container top*/ +.fixed-table-container thead th .th-inner{ + padding: 6px 30px 6px 24px!important; +} +/* +#pdamanageTable .bs-checkbox{ + padding-left: 0 !important; +} +*/ + + +/*echarts*/ +.pdamanage-wrap{ + height: 180px; +} +.pdamanage-con{ + width: 50%; + height: 100%; +} +.pdamanage-con-l{ + left: 50%; + top:50%; + transform: translate(-50%,-50%); +} +.pdamanage-con-name{ + /*font-size: 16px;*/ + /*padding-left: 12px;*/ +} +.pdamanage-con-title-1{ + min-width: 100px; + font-size: 16px; + padding-left: 20px; + background: url("img/geomagneticmanage-con-title-1.png") no-repeat 0 center; + margin-bottom: 12px; +} +.pdamanage-con-title-2{ + min-width: 100px; + font-size: 16px; + padding-left: 20px; + background: url("img/geomagneticmanage-con-title-2.png") no-repeat 0 center; + margin-bottom: 12px; +} +.pdamanage-con-title-3{ + min-width: 100px; + font-size: 16px; + padding-left: 20px; + background: url("img/geomagneticmanage-con-title-3.png") no-repeat 0 center; + margin-bottom: 12px; +} +.pdamanage-con-num{ + font-size: 36px; +} +.pdamanage-echarts{ + width: 100%; + height: 100%; +} \ No newline at end of file diff --git a/assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.html b/assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.html new file mode 100644 index 0000000..6e501d8 --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.html @@ -0,0 +1,321 @@ +
    +
    +
    +
    +
    + +
    +
    + 设备编号 + +
    +
    + +
    + +
    +
    +
    更多
    +
    +
    +
    查询
    +
    + +
    + +
    + + + +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + PDA在线 +
    +
    + 0 +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + PDA离线 +
    +
    + 0 +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + PDA停用 +
    +
    + 0 +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + +
  • 详细记录
  • +
  • + + + +
  • +
    +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.js b/assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.js new file mode 100644 index 0000000..4f86531 --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/pdamanageFile/pdamanage.js @@ -0,0 +1,1201 @@ +/** + * Created by chenbiao on 2017/8/25. + */ +var fun ={ + init: function () { + //初始化停车场下拉框 + fun.initPark(); + //初始化设备状态 + $('#registerState').selectpicker('render'); + $('#onlineFlg').selectpicker('render'); + $('#pdaStatus').selectpicker('render'); + + + //修改弹窗 + documentBindFunc.on('click', '[updatepdamanage]', function() { + fun.updatePDAManage(this); + }); + //停用弹窗 + documentBindFunc.on('click', '[closestate]', function() { + fun.closestatePDAManage(this); + }); + //启用用弹窗 + documentBindFunc.on('click', '[openstate]', function() { + fun.openstatePDAManage(this); + }); + + //基本信息 + fun.createTableData(); + fun.initPDAChartAjax(); + //条件查询 + fun.parkingSpaceQuery(); + }, + //停车场下拉框 + initPark: function () { + var data = fn.getParkLot(3); + $("#parkIds").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + + }, + + + //生成表格数据 + createTableData: function () { + $('#pdamanageTable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {title:'',width: '5%',checkbox: true,align: 'center'}, + {field: 'id', title: '主键', width: '15%', align: 'left',visible: false}, + { + field: 'pdaNo', + title: '设备信息', + width: '15%', + align: "left", + formatter: function (value, row, index) { + return '
    名称:' +commonObj.replacenull(row.pdaName)+'
    ' + + '
    '+fun.pdaStatusFormatter(row.pdaStatus,row,index)+"  " + commonObj.replacenull(value)+ '
    '; + } + }, + { + field: 'plName', + title: '登录信息', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
    车场:' +(value==null?"":value)+'
    ' + + '
    人员:' + (row.chargerCode==null?"":row.chargerCode)+(row.chargerName==null?"":"-"+row.chargerName)+ '
    ' + } + }, + + { + field: 'pdaType', + title: '软件信息', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
    类型:' +fun.pdaTypeFormatter(row.pdaType, row, index)+'
    ' + + '
    版本:' + (row.softwareVersion==null?"":row.softwareVersion)+ '
    ' + } + }, + { + field: 'carnoRegisterno', + title: '车牌识别码', + width: '15%', + align: "left", + formatter: function (value, row, index) { + return '
    识别码:' +(value==""?"未分配":value)+'
    ' + + '
    状态:' + fun.registerStateFormatter(row.registerState,row,index)+ '
    ' + } + }, + {field: 'simNo', title: 'SIM号', width: '15%', align: 'left',visible:false}, + {field: 'enableTime', title: '启用时间', width: '15%', align: 'left',formatter:commonObj.timeFormatter,visible:false}, + {field: 'disableTime', title: '停用时间', width: '15%', align: 'left',formatter:commonObj.timeFormatter,visible:false}, + {field: 'registernoDistributeTime', title: '激活码分配时间', width: '15%', align: 'left',formatter:commonObj.timeFormatter,visible:false}, + {field: 'registernoStateTime', title: '激活码变更时间', width: '15%', align: 'left',formatter:commonObj.timeFormatter,visible:false}, + {field: 'latestUsedTime', title: '最近使用时间', width: '10%', align: 'left',formatter:commonObj.timeFormatter}, + {field: 'oper', title: '操作', width: '10%', align: 'left',formatter:fun.operFormatter} + ] + }); + + }, + pdaStatusFormatter:function(value,row,index){ + if(1==parseInt(value)){ + if(0==parseInt(row.onlineFlg)){ + var operStr = ''; + return operStr; + //return "在线"; + }else if(1==parseInt(row.onlineFlg)){ + var operStr = ''; + return operStr; + // return "离线"; + } + }else{ + var operStr = ''; + return operStr; + //return "停用"; + } + }, + pdaTypeFormatter:function(value,row,index){ + if(row.chargerCode==null || row.chargerCode==""||row.chargerCode==undefined){ + return "-"; + } + if(1==parseInt(value)){ + return "巡查员设备"; + }else{ + return "收费员设备"; + } + }, + registerStateFormatter:function(value,row,index){ + /**激活状态 1-未激活,2-激活成功,3-激活失败*/ + if (value==null||value==undefined||value=='') { + return "-"; + }else if(1==parseInt(value)){ + return "未激活"; + }else if(2==parseInt(value)){ + return "激活成功"; + }else if(3==parseInt(value)){ + return "激活失败"; + } + }, + /*获取查询参数*/ + getQueryParam: function () { + + /*停车场编码*/ + var plNos = JSON.parse($("#parkIds").val()); + var plNo = []; + if(plNos.length==1){ + plNo.push(plNos[0]); + } + var pdaNo = $("#pdaNo").val(); + + + var registerState = $("#registerState").val(); + var pdaStatus = $("#pdaStatus").val(); + var onlineFlg = $("#onlineFlg").val(); + if(registerState==undefined || registerState == "全部"){ + registerState=null; + } + if(pdaStatus==undefined || pdaStatus == "全部"){ + pdaStatus=null; + } + if(onlineFlg==undefined || onlineFlg == "全部"){ + onlineFlg=null; + } + + //条件查询 + var req= { + sysCode:sysComm.sysCode, + plNos: plNo, + pdaNo: pdaNo, + pdaStatus:pdaStatus, + registerState:registerState, + onlineFlg:onlineFlg + }; + return req; + }, + //操作显示 + operFormatter:function(value,row,index){ + var operStr = '修改'; + if(1==parseInt(row.pdaStatus)){ + //1、表示启用 + operStr+='停用'; + }else{ + operStr+='启用'; + } + return operStr; + }, + updatePDAManage:function(element){ + //初始化停车场 + fun.initAddParkSelect(); + var id = $(element).attr('dataid'); + $("#pdamanage_modify_id").val(id); + //根据唯一值获取行数据 + var modifyRow = $('#pdamanageTable').bootstrapTable('getRowByUniqueId', id); + console.log(modifyRow); + $("#pdaparkNameadd_modify").val(modifyRow.plNo); + + $("#pdamanage-deviceName_modify").val(modifyRow.pdaName); + $("#pdamanage-deviceNum_modify").val(modifyRow.pdaNo); + $("#pdamanage-deviceType_modify").val(modifyRow.pdaType); + $("#pda-serviceTel-add_modify").val(modifyRow.simNo); + $('#pda-registerno-add_modify').val(modifyRow.carnoRegisterno); + $("#pdamanage-remark-add_modify").val(modifyRow.remark); + $('#pda-registerno-add_modify').attr("disabled",false); + //判断激活状态,如果激活成功,则不允许修改激活码 + if(modifyRow.registerState==2){ + $('#pda-registerno-add_modify').attr("disabled",true); + } + + //初始化设备类型 + $('#pdamanage-deviceType_modify').selectpicker('refresh'); + $("#pdaparkNameadd_modify").selectpicker('render'); + + $('#pdamanage_modifymodel').modal('show'); + + + }, + closestatePDAManage:function(element){ + var id = $(element).attr('dataid'); + var datapdano = $(element).attr('datapdano'); + var opId=fn.getUserId()==null?-1:fn.getUserId(); + var req={ + id:id, + pdaNo:datapdano, + pdaStatus:0, + disableTime:new Date(), + modifyOp:opId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.updatePda(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + $('#pdamanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initPDAChartAjax(); + } + } + }; + sysAjax(optAjax); + }, + openstatePDAManage:function(element){ + var id = $(element).attr('dataid'); + var datapdano = $(element).attr('datapdano'); + var opId=fn.getUserId()==null?-1:fn.getUserId(); + var req={ + id:id, + pdaStatus:1, + pdaNo:datapdano, + enableTime:new Date(), + modifyOp:opId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.updatePda(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + /*swal({ + title: "提示", + text: '启用成功!', + type: "warning", + timer: 3000, + allowOutsideClick: true + });*/ + $('#pdamanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initPDAChartAjax(); + } + } + }; + sysAjax(optAjax); + }, + formatTableUnit:function(value,row,index){ + return { + css: { + "white-space":"nowrap" + } + } + }, + //条件查询 + parkingSpaceQuery:function () { + documentBindFunc.on('click', '#queryBtn', function () { + //初始化table + fun.createTableData(); + fun.initPDAChartAjax(); + }); + }, + //停车场下拉框 + initAddParkSelect: function () { + var data = fn.getParkLot(); + $("#pdaparkNameadd").empty(); + $("#pdaparkNameadd_modify").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + $("#pdaparkNameadd").append(html); + $('#pdaparkNameadd').selectpicker('render'); + $("#pdaparkNameadd_modify").append(html); + $('#pdaparkNameadd_modify').selectpicker('render'); + }, + initPDAChart:function (count,onLineCount,downLineCount,faultCount) { + /*echarts*/ + var onLineRatio=0; + var downLineRatio=0; + var faultRatio=0; + if(0!=parseInt(count) && count!=null){ + onLineRatio=(parseInt(onLineCount)*100/parseInt(count)).toFixed(2); + downLineRatio=(parseInt(downLineCount)*100/parseInt(count)).toFixed(2); + faultRatio=(parseInt(faultCount)*100/parseInt(count)).toFixed(2); + }else{ + onLineRatio=0; + downLineRatio=0; + faultRatio=0; + } + + var onLine = echarts.init(document.getElementById('pdamanage-online')); + var onlineOption = { + color:['#d9dbe1','#d9dbe1','#d9dbe1'], + title: { + text: onLineRatio+'%', + x: 'center', + y: 'center', + textStyle: { + fontWeight: 'normal', + color: '#26be96', + fontSize: 24 + } + }, + tooltip: { + show:false + }, + + series: [ + { + hoverAnimation:false, + name:'访问来源', + type:'pie', + radius: ['60%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + { + tooltip: { + show: false + }, + value:onLineRatio, + name:'在数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#2abb9b' // 0% 处的颜色 + }, { + offset: 1, color: '#5ecde2' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + { + value:100-onLineRatio, + name:'总数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#d9dbe1' // 0% 处的颜色 + }, { + offset: 1, color: '#d9dbe1' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + + + + ] + }, + { + hoverAnimation:false, + type: 'pie', + tooltip: { + show: false + }, + animation: false, + clockWise: false, + radius: ['72%', '74%'], + itemStyle:{ + corlor:'#f00' + }, + hoverAnimation: false, + tooltip: { + show: false + }, + labelLine: { + normal: { + show: false + } + }, + data: [{ + value: 100, + + }, { + value: 0, + + // itemStyle: placeHolderStyle + } + + ] + } + ] + }; + onLine.setOption(onlineOption,true); + + var offLine = echarts.init(document.getElementById('pdamanage-offline')); + var offlineOption = { + color:['#d9dbe1','#d9dbe1','#d9dbe1'], + title: { + text: downLineRatio+'%', + x: 'center', + y: 'center', + textStyle: { + fontWeight: 'normal', + color: '#59b2ed', + fontSize: 24 + } + }, + tooltip: { + show:false + }, + + series: [ + { + hoverAnimation:false, + name:'访问来源', + type:'pie', + radius: ['60%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + { + tooltip: { + show: false + }, + value:downLineRatio, + name:'在数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#59b2ed' // 0% 处的颜色 + }, { + offset: 1, color: '#6ed3f8' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + { + value:100-downLineRatio, + name:'总数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#d9dbe1' // 0% 处的颜色 + }, { + offset: 1, color: '#d9dbe1' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + + + + ] + }, + { + hoverAnimation:false, + type: 'pie', + tooltip: { + show: false + }, + animation: false, + clockWise: false, + radius: ['72%', '74%'], + itemStyle:{ + corlor:'#f00' + }, + hoverAnimation: false, + tooltip: { + show: false + }, + labelLine: { + normal: { + show: false + } + }, + data: [{ + value: 100, + + }, { + value: 0, + + // itemStyle: placeHolderStyle + } + + ] + } + ] + }; + offLine.setOption(offlineOption,true); + + var faultLine = echarts.init(document.getElementById('pdamanage-fault')); + var faultlineOption = { + color:['#d9dbe1','#d9dbe1','#d9dbe1'], + title: { + text: faultRatio+'%', + x: 'center', + y: 'center', + textStyle: { + fontWeight: 'normal', + color: '#fe6372', + fontSize: 24 + } + }, + tooltip: { + show:false + }, + + series: [ + { + hoverAnimation:false, + name:'访问来源', + type:'pie', + radius: ['60%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + { + tooltip: { + show: false + }, + value:faultRatio, + name:'在数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#fe6372' // 0% 处的颜色 + }, { + offset: 1, color: '#fea886' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + { + value:100-faultRatio, + name:'总数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#d9dbe1' // 0% 处的颜色 + }, { + offset: 1, color: '#d9dbe1' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + + + + ] + }, + { + hoverAnimation:false, + type: 'pie', + tooltip: { + show: false + }, + animation: false, + clockWise: false, + radius: ['72%', '74%'], + itemStyle:{ + corlor:'#f00' + }, + hoverAnimation: false, + tooltip: { + show: false + }, + labelLine: { + normal: { + show: false + } + }, + data: [{ + value: 100, + + }, { + value: 0, + + // itemStyle: placeHolderStyle + } + + ] + } + ] + }; + faultLine.setOption(faultlineOption,true); + }, + initPDAChartAjax:function () { + //设置请求参数 + var req = fun.getQueryParam(); + req.sysCode=sysComm.sysCode; + var optAjax= { + method: "post", + url: dataUrl.util.statisticPdaCountByCondition(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + //console.log(res); + if(res.code == "8888"){ + var data=res.data; + var onLineCount=data.onlineEqpNum; + var downLineCount=data.offLineEqpNum; + var count=data.allEqpNum; + var faultCount=count-downLineCount-onLineCount; + + $("#onLineCount_pda").text(onLineCount); + $("#downLineCount_pda").text(downLineCount); + $("#faultCount_pda").text(faultCount); + + fun.initPDAChart(count,onLineCount,downLineCount,faultCount); + } + } + }; + sysAjax(optAjax); + }, + +} +fun.init(); + +$(function () { + + +//点击新增 弹窗 + $(document).on('click','#pdamanage-addBtn',function () { + + //初始化停车场 + fun.initAddParkSelect(); + $('#pdaparkNameadd').selectpicker('render'); + //初始化设备类型 + $('#pdamanage-deviceType').selectpicker('refresh'); + + $("#pdamanage-addParkinglot").text(""); + $('#pdamanage-addParkinglot').hide(); + $("#pdamanage-deviceName").val(""); + $("#pdamanage-deviceNum").val(""); + $("#pda-serviceTel-add").val(""); + $('#pda-registerno-add').val(""); + $("#pdamanage-remark-add").val(""); + + $("#pdamanage-deviceName").focus(); + + $('#pdamanage_addmodel').modal('show'); + }); + //点击新增确认按钮 + documentBindFunc.on('click','#pdamanage-add-submit',function () { + /***1、基本校验 ***/ + var plNo=$("#pdaparkNameadd").val(); + + var pdaName=$("#pdamanage-deviceName").val(); + var pdaNo=$("#pdamanage-deviceNum").val(); + var pdaType=$("#pdamanage-deviceType").val(); + var simNo=$("#pda-serviceTel-add").val(); + var registerno=$('#pda-registerno-add').val(); + var remark=$("#pdamanage-remark-add").val(); + + + var createOp=fn.getUserId()==null?-1:fn.getUserId(); + + /***2、校验设备编号是否唯一 ***/ + + //设备名称校验 + if(pdaName == "" || pdaName == null || pdaName == undefined){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("设备名称为必填项!"); + $('#pdamanage-addParkinglot').show(); + return false; + } + //设备编号校验 + else if(pdaNo == "" || pdaNo == null || pdaNo == undefined){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("设备编号为必填项!"); + $('#pdamanage-addParkinglot').show(); + return false; + } + //手机号校验 + /* else if(simNo == "" || simNo == null || simNo == undefined){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("手机号为必填项!"); + $('#pdamanage-addParkinglot').show(); + return false; + }*/else{ + var orgId = fn.getOrgId(); + /***3、保存数据 ***/ + var req={ + plNo:plNo, + pdaName:pdaName, + pdaNo:pdaNo, + pdaType:pdaType, + simNo:simNo, + carnoRegisterno:registerno, + remark:remark, + createOp:createOp, + //chargerCode:createOp, + pdaStatus:1, + enableTime:new Date(), + orgId:orgId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.insertPda(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code == "8888"){ + $('#pdamanage_addmodel').modal('hide'); + $("#pdamanage-addParkinglot").text(""); + $('#pdamanage-addParkinglot').hide(); + $('#pdamanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initPDAChartAjax(); + }else if(res.code == "3003"){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("设备编号已存在!"); + $('#pdamanage-addParkinglot').show(); + } + } + }; + sysAjax(optAjax); + } + + + + + }); + //点击继续新增确认按钮 + documentBindFunc.on('click','#pdamanage-addother-submit',function () { + /***1、基本校验 ***/ + var plNo=$("#pdaparkNameadd").val(); + var pdaName=$("#pdamanage-deviceName").val(); + var pdaNo=$("#pdamanage-deviceNum").val(); + var pdaType=$("#pdamanage-deviceType").val(); + var simNo=$("#pda-serviceTel-add").val(); + var registerno=$('#pda-registerno-add').val(); + var remark=$("#pdamanage-remark-add").val(); + var createOp=fn.getUserId()==null?-1:fn.getUserId(); + + /***2、校验设备编号是否唯一 ***/ + //设备名称校验 + if(pdaName == "" || pdaName == null || pdaName == undefined){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("设备名称为必填项!"); + $('#pdamanage-addParkinglot').show(); + return false; + } + //设备编号校验 + else if(pdaNo == "" || pdaNo == null || pdaNo == undefined){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("设备编号为必填项!"); + $('#pdamanage-addParkinglot').show(); + return false; + } + //手机号校验 + /* else if(simNo == "" || simNo == null || simNo == undefined){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("手机号为必填项!"); + $('#pdamanage-addParkinglot').show(); + return false; + }*/ + else{ + /***3、保存数据 ***/ + var orgId = fn.getOrgId(); + var req={ + plNo:plNo, + pdaName:pdaName, + pdaNo:pdaNo, + pdaType:pdaType, + simNo:simNo, + carnoRegisterno:registerno, + remark:remark, + createOp:createOp, + //chargerCode:createOp, + pdaStatus:1, + orgId:orgId, + enableTime:new Date(), + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.insertPda(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code == "8888"){ + //初始化停车场 + fun.initAddParkSelect(); + //初始化设备类型 + $('#pdamanage-deviceType').selectpicker('refresh'); + $("#pdamanage-addParkinglot").text(""); + $('#pdamanage-addParkinglot').hide(); + $('#pdamanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initPDAChartAjax(); + }else if(res.code == "3003"){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("设备编号已存在!"); + $('#pdamanage-addParkinglot').show(); + } + } + }; + sysAjax(optAjax); + } + + + + + }); + + + //点击修改确认按钮 + documentBindFunc.on('click','#pdamanage-add-submit_modify',function () { + /***1、基本校验 ***/ + var plNo=$("#pdaparkNameadd_modify").val(); + var id = $("#pdamanage_modify_id").val(); + + var pdaName=$("#pdamanage-deviceName_modify").val(); + var pdaNo=$("#pdamanage-deviceNum_modify").val(); + var pdaType=$("#pdamanage-deviceType_modify").val(); + var simNo=$("#pda-serviceTel-add_modify").val(); + var registerno=$('#pda-registerno-add_modify').val(); + var remark=$("#pdamanage-remark-add_modify").val(); + + + var createOp=fn.getUserId()==null?-1:fn.getUserId(); + + /***2、校验设备编号是否唯一 ***/ + + //设备名称校验 + if(pdaName == "" || pdaName == null || pdaName == undefined){ + $("#pdamanage-addParkinglot_modify").text(""); + $("#pdamanage-addParkinglot_modify").text("设备名称为必填项!"); + $('#pdamanage-addParkinglot_modify').show(); + return false; + } + //设备编号校验 + else if(pdaNo == "" || pdaNo == null || pdaNo == undefined){ + $("#pdamanage-addParkinglot_modify").text(""); + $("#pdamanage-addParkinglot_modify").text("设备编号为必填项!"); + $('#pdamanage-addParkinglot_modify').show(); + return false; + } + //手机号校验 + /* else if(simNo == "" || simNo == null || simNo == undefined){ + $("#pdamanage-addParkinglot_modify").text(""); + $("#pdamanage-addParkinglot_modify").text("手机号为必填项!"); + $('#pdamanage-addParkinglot_modify').show(); + return false; + }*/else{ + /***3、保存数据 ***/ + var req={ + id:id, + plNo:plNo, + pdaName:pdaName, + pdaNo:pdaNo, + pdaType:pdaType, + simNo:simNo, + carnoRegisterno:registerno, + remark:remark, + createOp:createOp, + modifyOp:createOp, + //chargerCode:createOp, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.updatePda(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code == "8888"){ + $('#pdamanage_modifymodel').modal('hide'); + $("#pdamanage-addParkinglot_modify").text(""); + $('#pdamanage-addParkinglot_modify').hide(); + $('#pdamanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initPDAChartAjax(); + }else if(res.code == "3003"){ + $("#pdamanage-addParkinglot_modify").text(""); + $("#pdamanage-addParkinglot_modify").text("设备编号已存在!"); + $('#pdamanage-addParkinglot_modify').show(); + } + } + }; + sysAjax(optAjax); + } + + + + + }); + + + + //删除弹窗 + documentBindFunc.on('click','#pdamanage-del',function () { + // + var ids2 = []; + ids2 = pdagetIdSelections(); + + if(ids2[0] == null) { + swal({ + title: "提示", + text: '请选择至少一条记录!', + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } else { + $('#pdamanage_deletemodel').modal('show'); + } + }); + + //删除确定按钮 + documentBindFunc.on('click','#pdamanage-parkdelete-submit',function () { + // + var ids2 = []; + ids2 = pdagetIdSelections(); + var opId=fn.getUserId()==null?-1:fn.getUserId(); + var req={ + ids:ids2, + modifyOp:opId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.deletePda(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + $('#pdamanage_deletemodel').modal('hide'); + $('#pdamanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initPDAChartAjax(); + } + } + }; + sysAjax(optAjax); + + + + }); + + +}) +//停车场默认加载 +function tableLoadRequest(params){ + var req = fun.getQueryParam(); + //设置请求参数 + //条件查询 + var pageNum = (params.data.offset/params.data.limit)+1; + req.baseRequest={ + pageNum:pageNum, + pageSize:params.data.limit + } + req.sysCode=sysComm.sysCode; + var cehicleFlowTableAjax= { + method: params.type, + url: dataUrl.util.queryPdaInfo4pabe(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + params.success(res.data); + }else{ + + } + } + }; + sysAjax(cehicleFlowTableAjax); +}; + +function pdagetIdSelections() { + return $.map($("#pdamanageTable").bootstrapTable('getSelections'), function(row) { + return row.id + }); +}; + + +//点击导出 +// $(document).on('click', '#geomanage-recordBtn', function () { +// var req = fun.getQueryParam(); +// var url = dataUrl.util.eqpMsgToExcleForPage(); +// var forms = exportGeomagneticForm(url, req.plNos,req.eqpNo, req.berthNo,req.eqpIsOnline, +// req.factoryNos,req.usedType +// ); +// forms.submit(); +// }); + + + + +function exportGeomagneticForm(url, plNos, eqpNo, berthNo, eqpIsOnline,factoryNos,usedType +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "plNos"; + input.value = plNos; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "eqpNo"; + input2.value = eqpNo; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "isOnline"; + input3.value = eqpIsOnline; + form.appendChild(input3); + + + var input4 = document.createElement("input"); + input4.name = "factoryNos"; + input4.value = factoryNos; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "berthNo"; + input5.value = berthNo; + form.appendChild(input5); + + var input6 = document.createElement("input"); + input6.name = "usedType"; + input6.value = usedType; + form.appendChild(input6); + + return form; + +}; + diff --git a/assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.css b/assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.css diff --git a/assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.html b/assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.html new file mode 100644 index 0000000..75cfb49 --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.html @@ -0,0 +1,2 @@ +
    道闸
    + \ No newline at end of file diff --git a/assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.js b/assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/roadgateFile/roadgate.js diff --git a/assets/pages/scripts/devicemanageFile/screenFile/screenmanage.css b/assets/pages/scripts/devicemanageFile/screenFile/screenmanage.css new file mode 100644 index 0000000..b9aead7 --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/screenFile/screenmanage.css @@ -0,0 +1,75 @@ +.toll-basic-ifo-park-height { + height: 34px; + line-height: 34px; +} +.toll-basic-borderbototm { + border-bottom: 1px solid #f0f0f0; +} +.carflowpic-icon span { + display: inline-block; + width: 16px; + height: 16px; + margin-right: 10px; + vertical-align: middle; + /* margin-top: -3px; */ + /*background-image: url(caryard-basic-ifo.png);*/ + /*background-repeat: no-repeat;*/ + /*background-position: -64px 0;*/ +} +.toll-basic-ifo-type { + display: inline-block; + width: 18px; + height: 18px; + margin-right: 10px; + vertical-align: sub; + /* margin-top: -3px; */ + background-image: url(../../../img/person-icon.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.business-icon{ + margin-right: 10px; +} +.toll-basic-ifo-park-wrap li { + padding-left: 23px; +} +.toll-basic-ifo-park-wrap li div:nth-of-type(1) { + width: 50%; +} +.maxWid100{ + max-width: 100px; + display: inline-block; + height: 34px; + line-height: 34px; + margin-right: 5px; +} +.pop-common{ + height: 234px; + width: 370px; + margin-top: 10px; + margin-left: 4px; + position: relative; +} +.pop-common img{ + height: 234px; + width: 320px; + margin-left: 25px; +} +.guiico_left{ + top: 50%; + left: 0; + margin-top: -12px; + background: url("../img/guidepop_leftico.png") no-repeat; + background-size: 24px 24px; + height: 24px; + width: 24px; +} +.guiico_right{ + top: 50%; + right: 0; + margin-top: -12px; + background: url("../img/guidepop_rightico.png") no-repeat; + background-size: 24px 24px; + height: 24px; + width: 24px; +} \ No newline at end of file diff --git a/assets/pages/scripts/devicemanageFile/screenFile/screenmanage.html b/assets/pages/scripts/devicemanageFile/screenFile/screenmanage.html new file mode 100644 index 0000000..b2d8b61 --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/screenFile/screenmanage.html @@ -0,0 +1,155 @@ +
    +
    +
    +
    +
    + 名称/编码 + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    查询
    +
    + +
    + +
    +
    +
    +
    + + +
    +
    +
    +
    + +
  • 详细列表
  • +
  • + + + +
  • +
    +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/devicemanageFile/screenFile/screenmanage.js b/assets/pages/scripts/devicemanageFile/screenFile/screenmanage.js new file mode 100644 index 0000000..c18453c --- /dev/null +++ b/assets/pages/scripts/devicemanageFile/screenFile/screenmanage.js @@ -0,0 +1,460 @@ + +var syncFun={ + init: function () { + + //初始化设备状态 + $('#screenJB').selectpicker('render'); + $('#devStatus').selectpicker('render'); + $('#screenStatus').selectpicker('render'); + //基本信息 + syncFun.createTableData(); + + //查看弹窗 + documentBindFunc.on('click', '[lookGuide]', function() { + syncFun.lookscreenManage(this); + }); + //回显弹窗 + documentBindFunc.on('click', '[openGuideImg]', function() { + syncFun.openImgManage(this); + }); + + + }, + getQueryParam:function () { + var guidesNo = $.trim($("#guidesNo").val());//诱导屏名称 + var screenJB = $("#screenJB").val();//级别 + var devStatus = $("#devStatus").val();//设备状态 + var screenStatus = $("#screenStatus").val();//屏幕状态 + var levels = []; + if(screenJB==undefined || screenJB == "全部"){ + levels = null; + }else{ + levels = [screenJB]; + } + if(devStatus==undefined || devStatus == "全部"){ + devStatus=null; + } + if(screenStatus==undefined || screenStatus == "全部"){ + screenStatus=null; + } + + //条件查询 + var req= { + sysCode:sysComm.sysCode, + nameOrNo:guidesNo, + ledDeviceStatus:devStatus, + ledScreenStatus:screenStatus, + levels:levels, + dataState:1, + }; + return req; + }, + createTableData:function () { + $('#screenmanageTable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'id', title: '主键', width: '15%', align: 'left',visible: false}, + { + field: 'guideName', + title: '诱导屏名称', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'level', + title: '诱导屏级别', + width: '10%', + align: "left", + formatter:syncFun.levelFormatter + + }, + + { + field: 'guideNo', + title: '诱导屏编码', + width: '20%', + align: "left", + formatter:commonObj.replacenull + + }, + { + field: 'eqpImei', + title: '诱导屏IMEI', + width: '20%', + align: "left", + formatter:function(value,row,index){ + var operStr = '
    '+commonObj.replacenull(value)+'
    '; + return operStr; + }, + + }, + { + field: 'ledDeviceStatus', + title: '设备状态', + width: '10%', + align: 'left', + formatter:syncFun.ledDeviceStatusFormatter + }, + { + field: 'ledScreenStatus', + title: '屏幕状态', + width: '10%', + align: 'left', + formatter:syncFun.ledScreenStatusFormatter + }, + { + field: 'oper', + title: '操作', + width: '15%', + align: 'left', + formatter:syncFun.operFormatter + } + ] + }); + }, + //操作显示 + operFormatter:function(value,row,index){ + var operStr = '查看' + +'回显'; + + return operStr; + }, + levelFormatter:function(value,row,index){ + if(value == null){ + return "-"; + }if(value == 1){ + return "一级"; + }if(value == 2){ + return "二级"; + }if(value == 3){ + return "三级"; + } + }, + ledDeviceStatusFormatter:function(value,row,index){ + if(value == null){ + return "-"; + }if(value == 1){ + return "启用"; + }if(value == 2){ + return "停用"; + }else{ + return "未知"; + } + }, + ledScreenStatusFormatter:function(value,row,index){ + if(value == null){ + return "-"; + }if(value == 1){ + return "在线"; + }if(value == 2){ + return "离线"; + }else{ + return "未知"; + } + }, + guideTypeFormatter:function(value,row,index){ + if(value == null){ + return "-"; + }if(value == 1){ + return "点阵屏"; + }if(value == 2){ + return "光带屏"; + }if(value == 3){ + return "复合屏"; + }else{ + return "未知"; + } + }, + echoTypeFormatter:function(value,row,index){ + if(value == null){ + return "-"; + }if(value == 1){ + return "诱导屏IP"; + }if(value == 2){ + return "诱导屏IMEI"; + }if(value == 2){ + return "诱导屏编码"; + }else{ + return "未知"; + } + }, + lookscreenManage:function(element) { + var id = $(element).attr('dataid'); + // $("#pdamanage_modify_id").val(id); + //根据唯一值获取行数据 + var row = $('#screenmanageTable').bootstrapTable('getRowByUniqueId', id); + console.log(row); + $("[id^='_']").text(""); + $("#screenparkShow").html(""); + + $("#_guideNo").text(commonObj.replacenull(row.guideNo)); + $("#_guideName").text(commonObj.replacenull(row.guideName)); + $("#_guideType").text(syncFun.guideTypeFormatter(row.guideType)); + $("#_eqpImei").text(commonObj.replacenull(row.eqpImei)); + $("#_eqpImei").attr('title',commonObj.replacenull(row.eqpImei)); + $("#_eqpPort").text(commonObj.replacenull(row.eqpPort)); + $("#_lonId").text(commonObj.replacenull(row.lonId)); + $("#_address").text(commonObj.replacenull(row.address)); + $("#_latId").text(commonObj.replacenull(row.latId)); + $("#_level").text(syncFun.levelFormatter(row.level)); + $("#_echoType").text(syncFun.echoTypeFormatter(row.echoType)); + $("#_eqpIp").text(commonObj.replacenull(row.eqpIp)); + $("#_installDate").text(commonObj.timeFormatter(row.installDate)); + $("#_lightBandIp").text(commonObj.replacenull(row.lightBandIp)); + var req = { + guideNo:row.guideNo, + sysCode:sysComm.sysCode, + dataState:1, + } + var ajax= { + method: 'post', + url: dataUrl.util.getGuideScreenConfigInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if(res.code = "8888"){ + if(res.data != null && (res.data).length > 0){ + var data = res.data; + var html = ''; + $.each(data, function(index,item) { + html += commonObj.replacenull(item.plName)+' '; + }); + $("#screenparkShow").html(html); + $("#screenparkShow").attr('title',html); + + } + }else{ + console.log(res); + } + } + }; + sysAjax(ajax); + $('#screen_detailmodel').modal('show'); + + }, + openImgManage:function(element) { + var id = $(element).attr('dataid'); + var row = $('#screenmanageTable').bootstrapTable('getRowByUniqueId', id); + var guideNo = row.guideNo; + $(".pop-common").empty(); + var guideHtml = ''; + var req = { + guideNo:row.guideNo, + sysCode:sysComm.sysCode, + dataState:1, + } + var ajax= { + method: 'post', + url: dataUrl.util.getGuideScreenInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if(res.code = "8888"){ + console.log(res); + if(res.data != null){ + var data = res.data; + if(!(data.showPic)){ + //不显示图片 + guideHtml+=''; + $(".pop-common").append(guideHtml); + }else{ + //大于一个图时 轮播 + if(data.filePaths.length>1){ + guideHtml+='
    '; + + $(".pop-common").append(guideHtml); + //轮播 函数部分 + var obt1 = document.getElementById("guiico_left"); + var obt2 = document.getElementById("guiico_right"); + var oImg = document.getElementById("guilevel_img"); + var index = 0; + function funTab() { + oImg.src = data.filePaths[index]; + // oImg.dataIMG = data.filePaths[index]; + } + funTab(); + obt1.onclick = prevImg; + obt2.onclick = nextImg; + function nextImg() { + // $('.pop-common').css('display','block'); + index++; + if(index > data.filePaths.length - 1) { + index = 0; + } + funTab(); + }; + function prevImg() { + + index--; + if(index < 0) { + index = data.filePaths.length - 1;//那么下标修改为最大下标 这样就可以循环显示图片 + } + funTab();//显示图片和文字信息 + }; + var timers; + timers=setInterval(function() { + index++; + if(index > data.filePaths.length - 1) { + index = 0; + } + funTab(); + },3000); + //给文档绑定一个按键事件, 来响应键盘的按键 + document.onkeydown = function(event) { + //兼容主流浏览器的写法 获取按键事件 + var e = event || window.event || arguments.callee.caller.arguments[0]; + if(e && e.keyCode == 37) { // 按 左方向键 (37 是←方向键码值) + prevImg();//这里是方法调用 ,方法名后要加括号, 立刻调用方法 + } + if(e && e.keyCode == 39) { // 按 右方向键(39 是→方向键码值) + nextImg();//这里是方法调用 ,方法名后要加括号, 立刻调用方法 + } + }; + + }else{ + //返回一个图 + guideHtml+=''; + $(".pop-common").append(guideHtml); + } + } + }else{ + guideHtml+=''; + $(".pop-common").append(guideHtml); + } + }else{ + guideHtml+=''; + $(".pop-common").append(guideHtml); + } + } + }; + sysAjax(ajax); + $('#screen_showmodel').modal('show'); + }, + +}; +//查看 原图 +documentBindFunc.on('click', ".pop-common", function () { + var imgs = $(this).find('img').attr('src'); + window.open(imgs, "_blank"); +}); +//查询按钮 +documentBindFunc.on('click', "#queryBtn", function () { + syncFun.createTableData(); +}); + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#screenmanage_syncBtn").attr("disabled", "true"); + $(".ITD-panelbtnsync-icon").css("width", "156px"); + $("#screenmanage_syncBtn").val(curCount + "秒后可再次同步"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#screenmanage_syncBtn").removeAttr("disabled");//启用按钮 + $(".ITD-panelbtnsync-icon").css("width", "90px"); + $("#screenmanage_syncBtn").val("一键同步"); + } + else { + curCount--; + $("#screenmanage_syncBtn").val(curCount + "秒后可再次同步"); + } +} + +//一键同步 +documentBindFunc.on('click', "#screenmanage_syncBtn", function () { + $('.ITD-alertmodel-contentmsg').text(''); + //执行倒计时函数 + sendMessage(); + var req = { + sysCode:sysComm.sysCode + }; + var ajax= { + method: 'post', + url: dataUrl.util.synAllGuideInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if(res.code = "8888"){ + syncFun.createTableData(); + $('.ITD-alertmodel-contentmsg').text('同步成功!'); + $('#records_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#records_alertmodel').modal('hide') + },2000); + + }else{ + // console.log(res.msg); + $('.ITD-alertmodel-contentmsg').text(res.msg); + $('#records_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#records_alertmodel').modal('hide') + },2000); + } + } + }; + sysAjax(ajax); +}); + +syncFun.init(); + + + +//停车场默认加载 +function tableLoadRequest(params){ + var req = syncFun.getQueryParam(); + //设置请求参数 + //条件查询 + var pageNum = (params.data.offset/params.data.limit)+1; + req.baseRequest={ + pageNum:pageNum, + pageSize:params.data.limit + } + req.sysCode=sysComm.sysCode; + var cehicleFlowTableAjax= { + method: params.type, + url: dataUrl.util.queryGuideScreenForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + params.success(res.data); + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + }else{ + + } + } + }; + sysAjax(cehicleFlowTableAjax); +}; \ No newline at end of file diff --git a/assets/pages/scripts/equipmentPeration/css/geomagneticData.css b/assets/pages/scripts/equipmentPeration/css/geomagneticData.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/equipmentPeration/css/geomagneticData.css diff --git a/assets/pages/scripts/equipmentPeration/css/geomagneticmanage.css b/assets/pages/scripts/equipmentPeration/css/geomagneticmanage.css new file mode 100644 index 0000000..428a31d --- /dev/null +++ b/assets/pages/scripts/equipmentPeration/css/geomagneticmanage.css @@ -0,0 +1,72 @@ +/*搜索*/ + + + +/*弹窗*/ +.geomanage-parkinput{ + width: 180px !important; + padding-left: 12px; + height: 34px; + line-height: 34px; +} +.geomanage-mapBg{ + background: url(../css/img/geomanage_baidimapIco.png) no-repeat; + width: 34px; + height: 34px; + position: absolute; + top: 0; + left: 190px; + background-position: 10px 9px; + cursor: pointer; +} + +/*表格*/ +/*fixed-table-container top*/ +.fixed-table-container thead th .th-inner{ + padding: 6px 30px 6px 24px!important; +} + + + +/*echarts*/ +.geomagneticmanage-wrap{ + height: 180px; +} +.geomagneticmanage-con{ + width: 50%; + height: 100%; +} +.geomagneticmanage-con-l{ + left: 50%; + top:50%; + transform: translate(-50%,-50%); +} +.geomagneticmanage-con-name{ + /*font-size: 16px;*/ + /*padding-left: 12px;*/ +} +.geomagneticmanage-con-title-1{ + font-size: 16px; + padding-left: 20px; + background: url("../css/img/geomagneticmanage-con-title-1.png") no-repeat 0 center; + margin-bottom: 12px; +} +.geomagneticmanage-con-title-2{ + font-size: 16px; + padding-left: 20px; + background: url("../css/img/geomagneticmanage-con-title-2.png") no-repeat 0 center; + margin-bottom: 12px; +} +.geomagneticmanage-con-title-3{ + font-size: 16px; + padding-left: 20px; + background: url("../css/img/geomagneticmanage-con-title-3.png") no-repeat 0 center; + margin-bottom: 12px; +} +.geomagneticmanage-con-num{ + font-size: 36px; +} +.geomagneticmanage-echarts{ + width: 100%; + height: 100%; +} \ No newline at end of file diff --git a/assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-1.png b/assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-1.png new file mode 100644 index 0000000..1899bcc Binary files /dev/null and b/assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-1.png differ diff --git a/assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-2.png b/assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-2.png new file mode 100644 index 0000000..0377bd3 Binary files /dev/null and b/assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-2.png differ diff --git a/assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-3.png b/assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-3.png new file mode 100644 index 0000000..0745d1c Binary files /dev/null and b/assets/pages/scripts/equipmentPeration/css/img/geomagneticmanage-con-title-3.png differ diff --git a/assets/pages/scripts/equipmentPeration/css/img/geomanage_baidimapIco.png b/assets/pages/scripts/equipmentPeration/css/img/geomanage_baidimapIco.png new file mode 100644 index 0000000..c139675 Binary files /dev/null and b/assets/pages/scripts/equipmentPeration/css/img/geomanage_baidimapIco.png differ diff --git a/assets/pages/scripts/equipmentPeration/css/pdamanage.css b/assets/pages/scripts/equipmentPeration/css/pdamanage.css new file mode 100644 index 0000000..d264c57 --- /dev/null +++ b/assets/pages/scripts/equipmentPeration/css/pdamanage.css @@ -0,0 +1,63 @@ +/*搜索*/ + + + +/*弹窗*/ +.pdamanage-parkinput{ + width: 180px !important; + padding-left: 12px; + height: 34px; + line-height: 34px; +} + + +/*表格*/ +/*fixed-table-container top*/ +.fixed-table-container thead th .th-inner{ + padding: 6px 30px 6px 24px!important; +} + + + +/*echarts*/ +.pdamanage-wrap{ + height: 180px; +} +.pdamanage-con{ + width: 50%; + height: 100%; +} +.pdamanage-con-l{ + left: 50%; + top:50%; + transform: translate(-50%,-50%); +} +.pdamanage-con-name{ + /*font-size: 16px;*/ + /*padding-left: 12px;*/ +} +.pdamanage-con-title-1{ + font-size: 16px; + padding-left: 20px; + background: url("../css/img/geomagneticmanage-con-title-1.png") no-repeat 0 center; + margin-bottom: 12px; +} +.pdamanage-con-title-2{ + font-size: 16px; + padding-left: 20px; + background: url("../css/img/geomagneticmanage-con-title-2.png") no-repeat 0 center; + margin-bottom: 12px; +} +.pdamanage-con-title-3{ + font-size: 16px; + padding-left: 20px; + background: url("../css/img/geomagneticmanage-con-title-3.png") no-repeat 0 center; + margin-bottom: 12px; +} +.pdamanage-con-num{ + font-size: 36px; +} +.pdamanage-echarts{ + width: 100%; + height: 100%; +} \ No newline at end of file diff --git a/assets/pages/scripts/equipmentPeration/equipmentPerationTmp.js b/assets/pages/scripts/equipmentPeration/equipmentPerationTmp.js new file mode 100644 index 0000000..aa181de --- /dev/null +++ b/assets/pages/scripts/equipmentPeration/equipmentPerationTmp.js @@ -0,0 +1,56 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
    '+urlarr[i].name+'
    ' + }else{ + _html += '
  • '+urlarr[i].name+'
  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/geomagneticmanage', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/equipmentPeration/css/geomagneticmanage.css'); + res.load('../../assets/pages/scripts/equipmentPeration/pages/geomagneticmanage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-geomagneticmanage').addClass('ITD-topbar-clickactive'); + +}); +R.route('/pdamanage', function() { + + $("#pageCssLink").attr("href",'../../assets/pages/scripts/equipmentPeration/css/pdamanage.css'); + res.load('../../assets/pages/scripts/equipmentPeration/pages/pdamanage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-pdamanage').addClass('ITD-topbar-clickactive'); + +}); +R.route('/geomagneticData', function() { + + $("#pageCssLink").attr("href",'../../assets/pages/scripts/equipmentPeration/css/geomagneticData.css'); + res.load('../../assets/pages/scripts/equipmentPeration/pages/geomagneticData.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-geomagneticData').addClass('ITD-topbar-clickactive'); + +}); diff --git a/assets/pages/scripts/equipmentPeration/geomagneticData.js b/assets/pages/scripts/equipmentPeration/geomagneticData.js new file mode 100644 index 0000000..70be0c1 --- /dev/null +++ b/assets/pages/scripts/equipmentPeration/geomagneticData.js @@ -0,0 +1,329 @@ +/** + * Created by chenbiao on 2017/8/25. + */ +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; + + +$(function () { + + +//点击导入 弹窗 + $(document).on('click','#enterbtn',function () { + $('.geomanage-con').css('display','none'); + $('.alert_over').css('display','block'); + }) + + + +//关闭弹窗 取消地磁信息 + documentBindFunc.on('click','.loading_alert_cancel',function () { + $('.alert_over').css('display','none'); + $('.geomanage-con').css('display','block'); + }) +//保存弹窗 地磁信息 + documentBindFunc.on('click','.loading_alert_ok',function () { + $('.alert_over').css('display','none'); + $('.geomanage-con').css('display','block'); + }) + +}) +var fun ={ + init: function () { + + // 周转次数查询时间 + $('#queryTime').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#queryTime").datetimepicker({ + startDate: moment().subtract('days', 0).format('2017-11-01'), + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + forceParse: false, + minView: 3, + minuteStep:1, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }).on('changeDate', function(ev){ + var time = moment(ev.date).format('YYYY-MM-DD'); + } + ); + + //初始化设备状态 + $('#eventTypes').selectpicker('render'); + //初始化停车场下拉框 + fun.initPark(); + //初始化设备类型 + fn.getEqpType(fun.getEqpType); + //初始化车位信息下拉框 + fn.getFactoryInfo(fun.initFactory); + //基本信息 + fun.createTableData(); + //条件查询 + fun.parkingSpaceQuery(); + //导出 + $("#reportBtn").click(function () { + fun.downloadOper(this); + + }); + }, + //停车场下拉框 + initPark: function () { + var data = fn.getParkLot(); + $("#parkIds").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + + }, + initFactory:function(data){ + $("#factory").empty(); + var html = ""; + $.each(data,function (index,item) { + html += ""; + }) + $("#factory").append(html); + $('#factory').selectpicker('render'); + }, + //初始化设备类型下拉框 + getEqpType:function(datas){ + $('#eqpType').empty(); + var html =''; + $.each(datas, function(index,item) { + html += ""; + }) + $('#eqpType').append(html); + $('#eqpType').selectpicker('render'); + }, + //生成表格数据 + createTableData: function () { + $('#eqpTable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'plName', title: '车场名称', width: '15%', align: 'left'}, + {field: 'berthNo', title: '泊位编号', width: '15%', align: 'left'}, + {field: 'eqpNo', title: '地磁编号', width: '15%', align: 'left'}, + {field: 'factoryName', title: '厂家名称', width: '15%', align: 'left'}, + {field: 'eventType', title: '设备状态', width: '15%', align: 'left',formatter:fun.eventTypeFormatter}, + {field: 'eqpType', title: '设备类型', width: '15%', align: 'left',formatter:fun.eqpTypeFormatter}, + {field: 'createTime', title: '上报时间', width: '15%', align: 'left',formatter:fun.timeFormatter} + ] + }); + + }, + eventTypeFormatter:function(value,row,index){ + if(value=='11'){ + return "车辆入场"; + }else if (value=='10'){ + return "车辆出场"; + }else if (value=='9'){ + return "设备心跳"; + }else if (value=='12'){ + return "车位检测器电压低电压"; + }else if (value=='13'){ + return "车位检测器电压正常"; + }else{ + return "系统判断为故障"; + } + }, + eqpTypeFormatter:function(value,row,index){ + if(value=='1'){ + return "地磁"; + }else if (value=='2'){ + return "视频桩"; + }else if (value=='3'){ + return "地锁"; + }else if (value=='4'){ + return "网关"; + }else if (value=='5'){ + return "中继器"; + }else{ + return "其他"; + } + }, + timeFormatter:function(value,row,index){ + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 7) ; + } + }, + /*获取查询参数*/ + getQueryParam: function () { + /*停车场编码*/ + var plNos = JSON.parse($("#parkIds").val()); + var geomagneticNo = $("#geomagneticNo").val(); + var berthNo = $("#berthNo").val(); + var eventTypes = JSON.parse($("#eventTypes").val()); + var factoryNos = JSON.parse($("#factory").val()); + var createTime = $("#queryTime").val()+" 00:00:00"; + var eqpType = JSON.parse($("#eqpType").val())[0]; + //条件查询 + var req= { + baseRequest:{ + pageNum:0, + pageSize:1 + }, + sysCode:sysComm.sysCode, + plNos: plNos, + eqpNo: geomagneticNo, + berthNo:berthNo, + eventTypes:eventTypes, + factoryNos:factoryNos, + createTime:createTime, + eqpType:eqpType + }; + return req; + }, + //操作显示 + operFormatter:function(value,row,index){ + var operStr =''+ + ''; + return operStr; + }, + formatTableUnit:function(value,row,index){ + return { + css: { + "white-space":"nowrap" + } + } + }, + //条件查询 + parkingSpaceQuery:function () { + documentBindFunc.on('click', '#parkingSpaceQuery', function () { + //初始化table + fun.createTableData(); + }); + }, + //停车场下拉框 + initAddParkSelect: function () { + var data = fn.getParkLot(); + $("#addParkLot").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + $("#addParkLot").append(html); + $('#addParkLot').selectpicker('refresh'); + }, + downloadOper: function (element) { + + var params = fun.getQueryParam(); + var url = dataUrl.util.exportParkEqpLogExcel(); + url += '?plNos=' + params.plNos+'&eqpNo='+params.eqpNo + +'&eqpType=' +params.eqpType+'&factoryNos='+params.factoryNos + +'&berthNo='+params.berthNo+'&eventTypes='+params.eventTypes + +'&createTime='+params.createTime; + url = encodeURI(url); + window.downloadFile(url); + } + +} +//停车场默认加载 +function tableLoadRequest(params){ + var plNos = JSON.parse($("#parkIds").val()); + var geomagneticNo = $("#geomagneticNo").val(); + var berthNo = $("#berthNo").val(); + var eventTypes = JSON.parse($("#eventTypes").val()); + var factoryNos = JSON.parse($("#factory").val()); + var createTime = $("#queryTime").val(); + var eqpType = JSON.parse($("#eqpType").val())[0]; + //设置请求参数 + var pageNum = (params.data.offset/params.data.limit)+1; + //条件查询 + var req= { + baseRequest:{ + pageNum:pageNum, + pageSize:params.data.limit + }, + sysCode:sysComm.sysCode, + plNos: plNos, + eqpNo: geomagneticNo, + berthNo:berthNo, + eventTypes:eventTypes, + factoryNos:factoryNos, + createTime:createTime, + eqpType:eqpType + }; + var cehicleFlowTableAjax= { + method: params.type, + url: dataUrl.util.queryParkEqpLogForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + params.success(res.data); + }else{ + + } + } + }; + sysAjax(cehicleFlowTableAjax); +}; + +$(function(){ + fun.init(); + +}) diff --git a/assets/pages/scripts/equipmentPeration/geomagneticmanage.js b/assets/pages/scripts/equipmentPeration/geomagneticmanage.js new file mode 100644 index 0000000..fe2015e --- /dev/null +++ b/assets/pages/scripts/equipmentPeration/geomagneticmanage.js @@ -0,0 +1,1385 @@ +/** + * Created by chenbiao on 2017/8/25. + */ +var fun ={ + init: function () { + //初始化停车场下拉框 + fun.initPark(); + //初始化设备状态 + $('#eqpIsOnline').selectpicker('render'); + $('#usedType').selectpicker('render'); + //初始化设备类型 + //fn.getEqpType(fun.getEqpType); + //初始化车位信息下拉框 + fn.getFactoryInfo(fun.initFactory); + + + //基本信息 + fun.createTableData(); + //初始化图表数据 + fun.initChartAjax(); + //条件查询 + fun.parkingSpaceQuery(); + //修改弹窗 + documentBindFunc.on('click', '[updategeomagnetic]', function() { + fun.updateGeomagnetic(this); + }); + }, + //停车场下拉框 + initPark: function () { + var data = fn.getParkLot(); + $("#parkIds").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + + }, + initFactory:function(data){ + $("#factory").empty(); + var html = ""; + $.each(data,function (index,item) { + html += ""; + }) + $("#factory").append(html); + $('#factory').selectpicker('render'); + }, + initAddFactory:function(data){ + $("#geomanage-gooderadd").empty(); + $("#geomanage-gooderadd_modify").empty(); + var html = ""; + $.each(data,function (index,item) { + html += ""; + }) + $("#geomanage-gooderadd").append(html); + $('#geomanage-gooderadd').selectpicker('render'); + $("#geomanage-gooderadd_modify").append(html); + $('#geomanage-gooderadd_modify').selectpicker('render'); + }, + //初始化设备类型下拉框 + getEqpType:function(datas){ + $('#eqpType').empty(); + var html =''; + $.each(datas, function(index,item) { + html += ""; + }) + $('#eqpType').append(html); + $('#eqpType').selectpicker('render'); + }, + //生成表格数据 + createTableData: function () { + $('#geomanageTable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {title:'',width: '5%',checkbox: true,align: 'center'}, + {field: 'id', title: '主键', width: '15%', align: 'left',visible: false}, + {field: 'lonId', title: '经度', width: '15%', align: 'left',visible: false}, + {field: 'latId', title: '维度', width: '15%', align: 'left',visible: false}, + {field: 'plName', title: '车场名称', width: '15%', align: 'left'}, + {field: 'berthNo', title: '泊位编号', width: '15%', align: 'left'}, + {field: 'eqpNo', title: '设备编号', width: '15%', align: 'left'}, + {field: 'eqpName', title: '设备名称', width: '15%', align: 'left'}, + {field: 'eqpIsOnline', title: '状态', width: '10%', align: 'left',formatter:fun.eqpIsOnlineFormatter}, + {field: 'heartbeatTime', title: '最新上报时间', width: '10%', align: 'left',formatter:fun.timeFormatter}, + {field: 'usedType', title: '使用状态', width: '10%', align: 'left',formatter:fun.usedTypeFormatter}, + {field: 'usedTime', title: '使用状态变更时间', width: '10%', align: 'left',visible: false,formatter:fun.timeFormatter}, + {field: 'factoryName', title: '厂家名称', width: '15%', align: 'left'}, + {field: 'eqpType', title: '设备类型', width: '10%', align: 'left',visible: false,formatter:fun.eqpTypeFormatter}, + {field: 'heartbeatInterval', title: '心跳间隔(秒)', width: '15%', align: 'left',visible: false}, + {field: 'installTime', title: '设备安装时间', width: '10%', align: 'left',formatter:fun.timeFormatter,visible: false}, + {field: 'remark', title: '备注', width: '10%', align: 'left'}, + {field: 'oper', title: '操作', width: '10%', align: 'left',formatter:fun.operFormatter} + ], + /* onCheckAll: function (row) { + getIdSelections(); + }, + onUncheckAll:function (row) { + getIdSelections(); + }*/ + }); + + }, + operFormatter: function(value, row, index) { + var operStr = '修改'; + return operStr; + }, + eqpIsOnlineFormatter:function(value,row,index){ + //是否在线:0-在线;1-掉线;2-故障 + if(value=='0' || value=='21'){ + //../css/img/geomagneticmanage-con-title-1.png + var operStr = ''; + return operStr; + // return "在线"; + }else if (value=='1'){ + var operStr = ''; + return operStr; + // return "离线"; + }else if (value=='2'){ + var operStr = ''; + return operStr; + // return "故障"; + }else{ + return value; + } + }, + usedTypeFormatter:function(value,row,index){ + if(value=='10'){ + return "调试中"; + }else if (value=='20'){ + return "商用中"; + }else{ + return ""; + } + }, + eqpTypeFormatter:function(value,row,index){ + if(value=='1'){ + return "地磁"; + }else if (value=='2'){ + return "视频桩"; + }else if (value=='3'){ + return "地锁"; + }else if (value=='4'){ + return "网关"; + }else if (value=='5'){ + return "中继器"; + }else{ + return "其他"; + } + }, + timeFormatter:function(value,row,index){ + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 7) ; + } + }, + /*获取查询参数*/ + getQueryParam: function () { + /*停车场编码*/ + var plNos = JSON.parse($("#parkIds").val()); + var geomagneticNo = $("#geomagneticNo").val(); + var berthNo = $("#berthNo").val(); + var eqpIsOnline = $("#eqpIsOnline").val(); + var factoryNos = JSON.parse($("#factory").val()); + var usedType = $("#usedType").val(); + + //条件查询 + var req= { + sysCode:sysComm.sysCode, + plNos: plNos, + eqpNo: geomagneticNo, + berthNo:berthNo, + eqpIsOnline:eqpIsOnline, + factoryNos:factoryNos, + usedType:usedType + }; + return req; + }, + // //操作显示 + // operFormatter:function(value,row,index){ + // var operStr =''+ + // ''; + // return operStr; + // }, + formatTableUnit:function(value,row,index){ + return { + css: { + "white-space":"nowrap" + } + } + }, + //条件查询 + parkingSpaceQuery:function () { + documentBindFunc.on('click', '#queryBtn', function () { + //初始化table + fun.createTableData(); + fun.initChartAjax(); + }); + }, + //新增地磁初始化停车场下拉框 + initAddParkSelect: function (plNo) { + var data = fn.getParkLot(); + $("#parkNameadd").empty(); + $("#parkNameadd_modify").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + $("#parkNameadd").append(html); + $('#parkNameadd').selectpicker('render'); + $("#parkNameadd_modify").append(html); + $('#parkNameadd_modify').selectpicker('render'); + //查询停车场下未绑定地磁的泊位编码 + fun.getBerthInfoForNoBindEqpByPlNo(plNo==null?plNos[0]:plNo); + }, + //查询停车场下未绑定地磁的泊位编码 + getBerthInfoForNoBindEqpByPlNo:function (plNo) { + //console.log(plNo); + var req={ + pklNo:plNo, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.getBerthInfoForNoBindEqpByPlNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + var data=res.data; + $("#berthNumadd").empty(); + $("#berthNumadd_modify").empty(); + var html = ''; + var berthNo=[]; + for (var i = 0; i < data.length; i++) { + if(berthNo.indexOf(data[i])==-1){ + berthNo.push(data[i]); + html += ""; + } + } + //console.log(html) + $("#berthNumadd").append(html); + $('#berthNumadd').selectpicker('refresh'); + + //获取要修改的信息 + var modifyid = $("#geomanage_modify_id").val(); + if(modifyid!=null && modifyid!=''){ + //根据唯一值获取行数据 + var modifyRow = $('#geomanageTable').bootstrapTable('getRowByUniqueId', modifyid); + if(modifyRow!=null && modifyRow!=undefined){ + var modifyPlno = modifyRow.plNo; + if(modifyPlno==plNo){ + html += ""; + } + $("#berthNumadd_modify").append(html); + $('#berthNumadd_modify').val(modifyRow.berthNo); + //初始化泊位编号 + $('#berthNumadd_modify').selectpicker('refresh'); + } + } + } + } + }; + sysAjax(optAjax); + }, + + + updateGeomagnetic:function(element){ + + $('#geomanage-addParkinglot_modify').css('display','none'); + + + //初始化安装时间 + $("#geomanage-queryTime_modify").datetimepicker({ + format: 'yyyy-mm-dd hh:ii', + autoclose: true, + // startView: 3, + //maxDate:moment().subtract('months', 3), + // minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-right" + }); + + + var id = $(element).attr('dataid'); + $("#geomanage_modify_id").val(id); + //根据唯一值获取行数据 + var modifyRow = $('#geomanageTable').bootstrapTable('getRowByUniqueId', id); + //console.log(modifyRow); + //初始化停车场 + fun.initAddParkSelect(modifyRow.plNo); + //初始化厂商 + fn.getFactoryInfo(fun.initAddFactory); + //fun.getBerthInfoForNoBindEqpByPlNo(modifyRow.plNo); + $("#parkNameadd_modify").val(modifyRow.plNo); + $("#geomanage-gooderadd_modify").val(modifyRow.factoryNo); + $("#geomanage-deviceNum_modify").val(modifyRow.eqpNo); + $("#geomanage-deviceTypenum_modify").val(modifyRow.eqpModel); + $("#userType_add_modify").val(modifyRow.usedType); + $("#geomanage-lonlat-add_modify").val(modifyRow.lonId==null?"":modifyRow.lonId+","+modifyRow.latId==null?"":modifyRow.latId); + + //$("#geomanage-deviceType_modify").val(modifyRow.eqpType); + + $("#geomanage-deviceName_modify").val(modifyRow.eqpName); + + $("#geomanage-heartbeatTime_modify").val(modifyRow.heartbeatInterval); + + $("#geomanage-queryTime_modify").val(modifyRow.installTime==null?"":DateUtils.long2String(modifyRow.installTime,7)); + + $("#geomanage-remark-add_modify").val(modifyRow.remark); + + //初始化设备类型 + //$('#geomanage-deviceType_modify').selectpicker('refresh'); + $('#userType_add_modify').selectpicker('refresh'); + $("#parkNameadd_modify").selectpicker('render'); + $("#geomanage-gooderadd_modify").selectpicker('refresh'); + + $('#geomanage_modifymodel').modal('show'); + }, + initChart:function (count,onLineCount,downLineCount,faultCount) { + /*echarts*/ + var onLineRatio=0; + var downLineRatio=0; + var faultRatio=0; + if(0!=parseInt(count) && count!=null){ + onLineRatio=(parseInt(onLineCount)*100/parseInt(count)).toFixed(2); + downLineRatio=(parseInt(downLineCount)*100/parseInt(count)).toFixed(2); + faultRatio=(parseInt(faultCount)*100/parseInt(count)).toFixed(2); + } + + var onLine = echarts.init(document.getElementById('geomagneticmanage-online')); + var onlineOption = { + color:['#d9dbe1','#d9dbe1','#d9dbe1'], + title: { + text: onLineRatio+'%', + x: 'center', + y: 'center', + textStyle: { + fontweight: 'normal', + color: '#26be96', + fontSize: 24 + } + }, + tooltip: { + show:false + }, + + series: [ + { + hoverAnimation:false, + name:'访问来源', + type:'pie', + radius: ['50%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontweight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + { + tooltip: { + show: false + }, + value:onLineCount, + name:'在数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#2abb9b' // 0% 处的颜色 + }, { + offset: 1, color: '#5ecde2' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + { + value:count-onLineCount, + name:'总数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#d9dbe1' // 0% 处的颜色 + }, { + offset: 1, color: '#d9dbe1' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + + + + ] + }, + { + hoverAnimation:false, + type: 'pie', + tooltip: { + show: false + }, + animation: false, + clockWise: false, + radius: ['72%', '74%'], + itemStyle:{ + corlor:'#f00' + }, + hoverAnimation: false, + tooltip: { + show: false + }, + labelLine: { + normal: { + show: false + } + }, + data: [{ + value: 100, + + }, { + value: 0, + + // itemStyle: placeHolderStyle + } + + ] + } + ] + }; + onLine.setOption(onlineOption); + + var offLine = echarts.init(document.getElementById('geomagneticmanage-offline')); + var offlineOption = { + color:['#d9dbe1','#d9dbe1','#d9dbe1'], + title: { + text: downLineRatio+'%', + x: 'center', + y: 'center', + textStyle: { + fontweight: 'normal', + color: '#59b2ed', + fontSize: 24 + } + }, + tooltip: { + show:false + }, + + series: [ + { + hoverAnimation:false, + name:'访问来源', + type:'pie', + radius: ['50%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontweight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + { + tooltip: { + show: false + }, + value:downLineCount, + name:'在数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#59b2ed' // 0% 处的颜色 + }, { + offset: 1, color: '#6ed3f8' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + { + value:count-downLineCount, + name:'总数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#d9dbe1' // 0% 处的颜色 + }, { + offset: 1, color: '#d9dbe1' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + + + + ] + }, + { + hoverAnimation:false, + type: 'pie', + tooltip: { + show: false + }, + animation: false, + clockWise: false, + radius: ['72%', '74%'], + itemStyle:{ + corlor:'#f00' + }, + hoverAnimation: false, + tooltip: { + show: false + }, + labelLine: { + normal: { + show: false + } + }, + data: [{ + value: 100, + + }, { + value: 0, + + // itemStyle: placeHolderStyle + } + + ] + } + ] + }; + offLine.setOption(offlineOption); + + var faultLine = echarts.init(document.getElementById('geomagneticmanage-fault')); + var faultlineOption = { + color:['#d9dbe1','#d9dbe1','#d9dbe1'], + title: { + text: faultRatio+'%', + x: 'center', + y: 'center', + textStyle: { + fontweight: 'normal', + color: '#fe6372', + fontSize: 24 + } + }, + tooltip: { + show:false + }, + + series: [ + { + hoverAnimation:false, + name:'访问来源', + type:'pie', + radius: ['50%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontweight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + { + tooltip: { + show: false + }, + value:faultCount, + name:'在数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#fe6372' // 0% 处的颜色 + }, { + offset: 1, color: '#fea886' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + { + value:count-faultCount, + name:'总数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#d9dbe1' // 0% 处的颜色 + }, { + offset: 1, color: '#d9dbe1' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + + + + ] + }, + { + hoverAnimation:false, + type: 'pie', + tooltip: { + show: false + }, + animation: false, + clockWise: false, + radius: ['72%', '74%'], + itemStyle:{ + corlor:'#f00' + }, + hoverAnimation: false, + tooltip: { + show: false + }, + labelLine: { + normal: { + show: false + } + }, + data: [{ + value: 100, + + }, { + value: 0, + + // itemStyle: placeHolderStyle + } + + ] + } + ] + }; + faultLine.setOption(faultlineOption); + }, + initChartAjax:function () { + var req = fun.getQueryParam(); + //设置请求参数 + req.baseRequest={ + sysCode:sysComm.sysCode, + pageNum:1, + pageSize:0 + } + req.sysCode=sysComm.sysCode; + var optAjax= { + method: "post", + url: dataUrl.util.statisticEqpCountByCondition(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res); + if(res.code = "8888"){ + var data=res.data; + var onLineCount=data.onlineEqpNum; + var downLineCount=data.offLineEqpNum; + var count=data.allEqpNum; + var faultCount=count-onLineCount-downLineCount; + $("#onLineCount").text(onLineCount); + $("#downLineCount").text(downLineCount); + $("#faultCount").text(faultCount); + //console.log(count); + count = count+onLineCount+downLineCount+faultCount; + fun.initChart(count,onLineCount,downLineCount,faultCount); + + + + } + } + }; + sysAjax(optAjax); + }, + +} +fun.init(); + +$(function () { + + +//点击新增 弹窗 + $(document).on('click','#geomanage-addBtn',function () { + $('#geomanage-addParkinglot').text(''); + $('#geomanage-addParkinglot').addClass('display-none'); + + //初始化停车场 + fun.initAddParkSelect(); + //初始化厂商 + fn.getFactoryInfo(fun.initAddFactory); + //初始化泊位编号 + $('#berthNumadd').selectpicker('refresh'); + //初始化设备类型 + //$('#geomanage-deviceType').selectpicker('refresh'); + $('#userType_add').selectpicker('refresh'); + + $("#geomanage-deviceNum").val(""); + $("#geomanage-deviceTypenum").val(""); + $("#geomanage-lonlat-add").val(""); + $("#geomanage-deviceName").val(""); + + $("#geomanage-heartbeatTime").val(""); + + $("#geomanage-queryTime").val(""); + + $("#geomanage-remark-add").val(""); + + //初始使用时间 + $("#geomanage-touseTime").datetimepicker({ + format: 'yyyy-mm-dd hh:ii', + autoclose: true, + // startView: 3, + //maxDate:moment().subtract('months', 3), + // minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-right" + }); + //初始化安装时间 + $("#geomanage-queryTime").datetimepicker({ + format: 'yyyy-mm-dd hh:ii', + autoclose: true, + // startView: 3, + //maxDate:moment().subtract('months', 3), + // minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-right" + }); + //初始化泊位编号 + + $('#geomanage_addmodel').modal('show'); + + }); + //新增时停车场变化,联动泊位编号也变化 + $(document).on('change','#parkNameadd',function () { + var plNo=$("#parkNameadd").val(); + //console.log(plNo) + //查询停车场下未绑定地磁的泊位编码 + + fun.getBerthInfoForNoBindEqpByPlNo(plNo); + }); + //修改时停车场变化,联动泊位编号也变化 + $(document).on('change','#parkNameadd_modify',function () { + var plNo=$("#parkNameadd_modify").val(); + //console.log(plNo) + //查询停车场下未绑定地磁的泊位编码 + fun.getBerthInfoForNoBindEqpByPlNo(plNo); + }); + //点击新增确认按钮 + documentBindFunc.on('click','#geomanage-add-submit',function () { + /***1、基本校验 ***/ + var plNo=$("#parkNameadd").val(); + var factoryNo=$("#geomanage-gooderadd").val(); + var eqpNo=$("#geomanage-deviceNum").val(); + var eqpModel=$("#geomanage-deviceTypenum").val(); + + var usedType=$("#userType_add").val(); + + var lonAndLat=$("#geomanage-lonlat-add").val(); + //经度 + var lonId; + //维度 + var latId; + if(lonAndLat !=null ){ + lonAndLat =lonAndLat.split(","); + lonId = lonAndLat[0]; + latId = lonAndLat[1]; + } + + + var berthNo=$("#berthNumadd").val(); + + //var eqpType=$("#geomanage-deviceType").val(); + + var eqpName=$("#geomanage-deviceName").val(); + + var heartbeatInterval=$("#geomanage-heartbeatTime").val(); + + var installTime=$("#geomanage-queryTime").val(); + + var remark=$("#geomanage-remark-add").val(); + + var createOp=fn.getUserId()==null?-1:fn.getUserId(); + + /***2、校验设备编号是否唯一 ***/ + + //设备编号校验 + if(eqpNo == "" || eqpNo == null || eqpNo == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备编号为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + //设备名称校验 + else if(eqpName == "" || eqpName == null || eqpName == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备名称为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + //设备型号校验 + else if(eqpModel == "" || eqpModel == null || eqpModel == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备型号为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + + //安装时间校验 + else if(installTime == "" || installTime == null || installTime == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("安装时间为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + else if(heartbeatInterval== "" || heartbeatInterval == null || heartbeatInterval == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("心跳间隔为必填项!"); + $('#geomanage-addParkinglot').show(); + }else{ + /***3、保存数据 ***/ + installTime =new Date((installTime + ":59").replace(/-/g, "/")); + var req={ + plNo:plNo, + factoryNo:factoryNo, + eqpNo:eqpNo, + eqpModel:eqpModel, + usedType:usedType, + berthNo:berthNo, + //eqpType:eqpType, + eqpName:eqpName, + heartbeatInterval:heartbeatInterval, + installTime:installTime, + remark:remark, + createOp:createOp, + lonId:lonId, + latId:latId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.saveEqpMsg(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code == "8888"){ + $('#geomanage_addmodel').modal('hide'); + $("#geomanage-addParkinglot").text(""); + $('#geomanage-addParkinglot').hide(); + $('#geomanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initChartAjax(); + }else if(res.code == "3002"){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备编号已存在!"); + $('#geomanage-addParkinglot').show(); + } + } + }; + sysAjax(optAjax); + } + + + + + }); + //点击继续新增按钮 + documentBindFunc.on('click','#geomanage-addother-submit',function () { + + /***1、基本校验 ***/ + var plNo=$("#parkNameadd").val(); + var factoryNo=$("#geomanage-gooderadd").val(); + var eqpNo=$("#geomanage-deviceNum").val(); + var eqpModel=$("#geomanage-deviceTypenum").val(); + + var usedType=$("#userType_add").val(); + + var lonAndLat=$("#geomanage-lonlat-add").val(); + //经度 + var lonId; + //维度 + var latId; + if(lonAndLat !=null ){ + lonAndLat =lonAndLat.split(","); + lonId = lonAndLat[0]; + latId = lonAndLat[1]; + } + + + var berthNo=$("#berthNumadd").val(); + + //var eqpType=$("#geomanage-deviceType").val(); + + var eqpName=$("#geomanage-deviceName").val(); + + var heartbeatInterval=$("#geomanage-heartbeatTime").val(); + + var installTime=$("#geomanage-queryTime").val(); + + var remark=$("#geomanage-remark-add").val(); + + var createOp=fn.getUserId()==null?-1:fn.getUserId(); + + /***2、校验设备编号是否唯一 ***/ + + //设备编号校验 + if(eqpNo == "" || eqpNo == null || eqpNo == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备编号为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + //设备名称校验 + else if(eqpName == "" || eqpName == null || eqpName == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备名称为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + //设备型号校验 + else if(eqpModel == "" || eqpModel == null || eqpModel == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备型号为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + + //安装时间校验 + else if(installTime == "" || installTime == null || installTime == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("安装时间为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + } + else if(heartbeatInterval== "" || heartbeatInterval == null || heartbeatInterval == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("心跳间隔为必填项!"); + $('#geomanage-addParkinglot').show(); + } + //经纬度校验 + /* else if(lonAndLat == "" || lonAndLat == null || lonAndLat == undefined){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("经纬度为必填项!"); + $('#geomanage-addParkinglot').show(); + return false; + }*/else{ + /***3、保存数据 ***/ + installTime =new Date((installTime + ":59").replace(/-/g, "/")); + var req={ + plNo:plNo, + factoryNo:factoryNo, + eqpNo:eqpNo, + eqpModel:eqpModel, + usedType:usedType, + berthNo:berthNo, + //eqpType:eqpType, + eqpName:eqpName, + heartbeatInterval:heartbeatInterval, + installTime:installTime, + remark:remark, + createOp:createOp, + lonId:lonId, + latId:latId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.saveEqpMsg(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code == "8888"){ + ////初始化停车场 + fun.initAddParkSelect(); + //初始化厂商 + fn.getFactoryInfo(fun.initAddFactory); + $("#geomanage-addParkinglot").text(""); + + $('#geomanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initChartAjax(); + $('#geomanage_alertmodel').modal('show'); + setTimeout(function () { + $('#geomanage_alertmodel').modal('hide'); + },2000); + }else if(res.code == "3002"){ + $("#geomanage-addParkinglot").text(""); + $("#geomanage-addParkinglot").text("设备编号已存在!"); + $('#geomanage-addParkinglot').show(); + } + } + }; + sysAjax(optAjax); + } + + }); + + + //点击修改确认按钮 + documentBindFunc.on('click','#geomanage-add-submit_modify',function () { + /***1、基本校验 ***/ + var id=$("#geomanage_modify_id").val(); + var plNo=$("#parkNameadd_modify").val(); + var factoryNo=$("#geomanage-gooderadd_modify").val(); + var eqpNo=$("#geomanage-deviceNum_modify").val(); + var eqpModel=$("#geomanage-deviceTypenum_modify").val(); + + var usedType=$("#userType_add_modify").val(); + + var lonAndLat=$("#geomanage-lonlat-add_modify").val(); + //经度 + var lonId; + //维度 + var latId; + if(lonAndLat !=null ){ + lonAndLat =lonAndLat.split(","); + lonId = lonAndLat[0]; + latId = lonAndLat[1]; + } + + + var berthNo=$("#berthNumadd_modify").val(); + + //var eqpType=$("#geomanage-deviceType_modify").val(); + + var eqpName=$("#geomanage-deviceName_modify").val(); + + var heartbeatInterval=$("#geomanage-heartbeatTime_modify").val(); + + var installTime=$("#geomanage-queryTime_modify").val(); + + var remark=$("#geomanage-remark-add_modify").val(); + + var createOp=fn.getUserId()==null?-1:fn.getUserId(); + + /***2、校验设备编号是否唯一 ***/ + + //设备编号校验 + if(eqpNo == "" || eqpNo == null || eqpNo == undefined){ + $("#geomanage-addParkinglot_modify").text(""); + $("#geomanage-addParkinglot_modify").text("设备编号为必填项!"); + $('#geomanage-addParkinglot_modify').show(); + return false; + } + //设备名称校验 + else if(eqpName == "" || eqpName == null || eqpName == undefined){ + $("#geomanage-addParkinglot_modify").text(""); + $("#geomanage-addParkinglot_modify").text("设备名称为必填项!"); + $('#geomanage-addParkinglot_modify').show(); + return false; + } + //设备型号校验 + else if(eqpModel == "" || eqpModel == null || eqpModel == undefined){ + $("#geomanage-addParkinglot_modify").text(""); + $("#geomanage-addParkinglot_modify").text("设备型号为必填项!"); + $('#geomanage-addParkinglot_modify').show(); + return false; + } + + //安装时间校验 + else if(installTime == "" || installTime == null || installTime == undefined){ + $("#geomanage-addParkinglot_modify").text(""); + $("#geomanage-addParkinglot_modify").text("安装时间为必填项!"); + $('#geomanage-addParkinglot_modify').show(); + return false; + } + else if(heartbeatInterval== "" || heartbeatInterval == null || heartbeatInterval == undefined){ + $("#geomanage-addParkinglot_modify").text(""); + $("#geomanage-addParkinglot_modify").text("心跳间隔为必填项!"); + $('#geomanage-addParkinglot_modify').show(); + }else{ + /***3、保存数据 ***/ + installTime =new Date((installTime + ":59").replace(/-/g, "/")); + var req={ + id:id, + plNo:plNo, + factoryNo:factoryNo, + eqpNo:eqpNo, + eqpModel:eqpModel, + usedType:usedType, + berthNo:berthNo, + //eqpType:eqpType, + eqpName:eqpName, + heartbeatInterval:heartbeatInterval, + installTime:installTime, + remark:remark, + createOp:createOp, + lonId:lonId, + latId:latId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.updateEqpMsg(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + + console.log(res) + if(res.code == "8888"){ + + $('#geomanage_modifymodel').modal('hide'); + $("#geomanage-addParkinglot_modify").text(""); + $('#geomanage-addParkinglot_modify').hide(); + $('#geomanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initChartAjax(); + }else if(res.code == "3002"){ + $("#geomanage-addParkinglot_modify").text(""); + $("#geomanage-addParkinglot_modify").text("设备编号已存在!"); + $('#geomanage-addParkinglot_modify').show(); + } + } + }; + sysAjax(optAjax); + } + }); + + + + + +//删除弹窗 + documentBindFunc.on('click','#geomanage-del',function () { + // + var ids2 = []; + ids2 = getIdSelections(); + + if(ids2[0] == null) { + swal({ + title: "提示", + text: '请选择至少一条记录!', + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } else { + $('#geomanage_deletemodel').modal('show'); + } + }); + + //删除确定按钮 + documentBindFunc.on('click','#geomanage-parkdelete-submit',function () { + // + var ids2 = []; + ids2 = getIdSelections(); + var opId=fn.getUserId()==null?-1:fn.getUserId(); + var req={ + ids:ids2, + opId:opId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.deleteEqpMsgById(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + $('#geomanage_deletemodel').modal('hide'); + $('#geomanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initChartAjax(); + fun.createTableData(); + } + } + }; + sysAjax(optAjax); + + + + }); + + + +}) +//停车场默认加载 +function tableLoadRequest(params){ + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset/params.data.limit)+1; + req.baseRequest={ + pageNum:pageNum, + pageSize:params.data.limit + } + var cehicleFlowTableAjax= { + method: params.type, + url: dataUrl.util.queryEqpPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + params.success(res.data); + }else{ + + } + } + }; + sysAjax(cehicleFlowTableAjax); +}; + + + +function getIdSelections() { + return $.map($("#geomanageTable").bootstrapTable('getSelections'), function(row) { + return row.id; + }); +}; + +//点击导出 +$(document).on('click', '#geomanage-recordBtn', function () { + var req = fun.getQueryParam(); + var url = dataUrl.util.eqpMsgToExcleForPage(); + var forms = exportGeomagneticForm(url, req.plNos,req.eqpNo, req.berthNo,req.eqpIsOnline, + req.factoryNos,req.usedType + ); + forms.submit(); +}); + + + + +function exportGeomagneticForm(url, plNos, eqpNo, berthNo, eqpIsOnline,factoryNos,usedType +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "plNos"; + input.value = plNos; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "eqpNo"; + input2.value = eqpNo; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "isOnline"; + input3.value = eqpIsOnline; + form.appendChild(input3); + + + var input4 = document.createElement("input"); + input4.name = "factoryNos"; + input4.value = factoryNos; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "berthNo"; + input5.value = berthNo; + form.appendChild(input5); + + var input6 = document.createElement("input"); + input6.name = "usedType"; + input6.value = usedType; + form.appendChild(input6); + + return form; + +}; + diff --git a/assets/pages/scripts/equipmentPeration/pages/geomagneticData.html b/assets/pages/scripts/equipmentPeration/pages/geomagneticData.html new file mode 100644 index 0000000..bccc4b5 --- /dev/null +++ b/assets/pages/scripts/equipmentPeration/pages/geomagneticData.html @@ -0,0 +1,84 @@ +
    + +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    + 查询 +
    +
    +
    +
    + + + +
    +
    +
    +
    + 详细记录 +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + +
    + \ No newline at end of file diff --git a/assets/pages/scripts/equipmentPeration/pages/geomagneticmanage.html b/assets/pages/scripts/equipmentPeration/pages/geomagneticmanage.html new file mode 100644 index 0000000..2cd5519 --- /dev/null +++ b/assets/pages/scripts/equipmentPeration/pages/geomagneticmanage.html @@ -0,0 +1,443 @@ +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    + +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    + 查询 +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + 地磁在线 +
    +
    + 0 +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + 地磁离线 +
    +
    + 0 +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + 地磁故障 +
    +
    + 0 +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + 详细记录 +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/equipmentPeration/pages/pdamanage.html b/assets/pages/scripts/equipmentPeration/pages/pdamanage.html new file mode 100644 index 0000000..9715af4 --- /dev/null +++ b/assets/pages/scripts/equipmentPeration/pages/pdamanage.html @@ -0,0 +1,322 @@ +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    + +
    + + +
    +
    + + +
    +
    +
    + 查询 +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + PDA在线 +
    +
    + 0 +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + PDA离线 +
    +
    + 0 +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + PDA停用 +
    +
    + 0 +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + 详细记录 +
    +
    + +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/equipmentPeration/pdamanage.js b/assets/pages/scripts/equipmentPeration/pdamanage.js new file mode 100644 index 0000000..eb8a0f7 --- /dev/null +++ b/assets/pages/scripts/equipmentPeration/pdamanage.js @@ -0,0 +1,1154 @@ +/** + * Created by chenbiao on 2017/8/25. + */ +var fun ={ + init: function () { + + + + //初始化停车场下拉框 + fun.initPark(); + //初始化设备状态 + $('#registerState').selectpicker('render'); + $('#onlineFlg').selectpicker('render'); + $('#pdaStatus').selectpicker('render'); + + + //修改弹窗 + documentBindFunc.on('click', '[updatepdamanage]', function() { + fun.updatePDAManage(this); + }); + //停用弹窗 + documentBindFunc.on('click', '[closestate]', function() { + fun.closestatePDAManage(this); + }); + //启用用弹窗 + documentBindFunc.on('click', '[openstate]', function() { + fun.openstatePDAManage(this); + }); + + //基本信息 + fun.createTableData(); + fun.initPDAChartAjax(); + //条件查询 + fun.parkingSpaceQuery(); + }, + //停车场下拉框 + initPark: function () { + var data = fn.getParkLot(); + $("#parkIds").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + + }, + + + //生成表格数据 + createTableData: function () { + $('#pdamanageTable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {title:'',width: '5%',checkbox: true,align: 'center'}, + {field: 'id', title: '主键', width: '15%', align: 'left',visible: false}, + {field: 'plName', title: '车场名称', width: '15%', align: 'left'}, + {field: 'pdaNo', title: '设备编号', width: '15%', align: 'left'}, + {field: 'pdaName', title: '设备名称', width: '15%', align: 'left'}, + {field: 'chargerCode', title: '收费员', width: '15%', align: 'left',visible:false}, + {field: 'pdaStatus', title: '状态', width: '15%', align: 'left',formatter:fun.pdaStatusFormatter}, + {field: 'simNo', title: 'SIM号', width: '15%', align: 'left'}, + {field: 'softwareVersion', title: 'PDA版本号', width: '15%', align: 'left'}, + {field: 'carnoRegisterno', title: '激活码', width: '15%', align: 'left'}, + {field: 'registerState', title: '激活状态', width: '15%', align: 'left',formatter:fun.registerStateFormatter}, + {field: 'enableTime', title: '启用时间', width: '15%', align: 'left',formatter:fun.timeFormatter,visible:false}, + {field: 'disableTime', title: '停用时间', width: '15%', align: 'left',formatter:fun.timeFormatter,visible:false}, + {field: 'registernoDistributeTime', title: '激活码分配时间', width: '15%', align: 'left',formatter:fun.timeFormatter,visible:false}, + {field: 'registernoStateTime', title: '激活码变更时间', width: '15%', align: 'left',formatter:fun.timeFormatter,visible:false}, + {field: 'latestUsedTime', title: '最近使用时间', width: '10%', align: 'left',formatter:fun.timeFormatter}, + {field: 'oper', title: '操作', width: '10%', align: 'left',formatter:fun.operFormatter} + ] + }); + + }, + pdaStatusFormatter:function(value,row,index){ + if(1==parseInt(value)){ + if(0==parseInt(row.onlineFlg)){ + return "在线"; + }else if(1==parseInt(row.onlineFlg)){ + return "离线"; + } + }else{ + return "停用"; + } + }, + registerStateFormatter:function(value,row,index){ + /**激活状态 1-未激活,2-激活成功,3-激活失败*/ + if(null==value){ + return ""; + }else if(1==parseInt(value)){ + return "未激活"; + }else if(2==parseInt(value)){ + return "激活成功"; + }else if(3==parseInt(value)){ + return "激活失败"; + } + }, + timeFormatter:function(value,row,index){ + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 7) ; + } + }, + /*获取查询参数*/ + getQueryParam: function () { + + /*停车场编码*/ + var plNos = JSON.parse($("#parkIds").val()); + var pdaNo = $("#pdaNo").val(); + + + var registerState = $("#registerState").val(); + var pdaStatus = $("#pdaStatus").val(); + var onlineFlg = $("#onlineFlg").val(); + if(registerState==undefined || registerState == "全部"){ + registerState=null; + } + if(pdaStatus==undefined || pdaStatus == "全部"){ + pdaStatus=null; + } + if(onlineFlg==undefined || onlineFlg == "全部"){ + onlineFlg=null; + } + + //条件查询 + var req= { + sysCode:sysComm.sysCode, + plNos: plNos, + pdaNo: pdaNo, + pdaStatus:pdaStatus, + registerState:registerState, + onlineFlg:onlineFlg + + }; + return req; + }, + //操作显示 + operFormatter:function(value,row,index){ + var operStr = '修改'; + if(1==parseInt(row.pdaStatus)){ + //1、表示启用 + operStr+='停用'; + }else{ + operStr+='启用'; + } + return operStr; + }, + updatePDAManage:function(element){ + //初始化停车场 + fun.initAddParkSelect(); + var id = $(element).attr('dataid'); + $("#pdamanage_modify_id").val(id); + //根据唯一值获取行数据 + var modifyRow = $('#pdamanageTable').bootstrapTable('getRowByUniqueId', id); + console.log(modifyRow); + $("#pdaparkNameadd_modify").val(modifyRow.plNo); + + $("#pdamanage-deviceName_modify").val(modifyRow.pdaName); + $("#pdamanage-deviceNum_modify").val(modifyRow.pdaNo); + $("#pdamanage-deviceType_modify").val(modifyRow.pdaType); + $("#pda-serviceTel-add_modify").val(modifyRow.simNo); + $('#pda-registerno-add_modify').val(modifyRow.carnoRegisterno); + $("#pdamanage-remark-add_modify").val(modifyRow.remark); + $('#pda-registerno-add_modify').attr("disabled",false); + //判断激活状态,如果激活成功,则不允许修改激活码 + if(modifyRow.registerState==2){ + $('#pda-registerno-add_modify').attr("disabled",true); + } + + //初始化设备类型 + $('#pdamanage-deviceType_modify').selectpicker('refresh'); + $("#pdaparkNameadd_modify").selectpicker('render'); + + $('#pdamanage_modifymodel').modal('show'); + + + }, + closestatePDAManage:function(element){ + var id = $(element).attr('dataid'); + + var opId=fn.getUserId()==null?-1:fn.getUserId(); + var req={ + id:id, + pdaStatus:0, + disableTime:new Date(), + modifyOp:opId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.updatePda(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + swal({ + title: "提示", + text: '停用成功!', + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + $('#pdamanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initPDAChartAjax(); + } + } + }; + sysAjax(optAjax); + }, + openstatePDAManage:function(element){ + var id = $(element).attr('dataid'); + + var opId=fn.getUserId()==null?-1:fn.getUserId(); + var req={ + id:id, + pdaStatus:1, + enableTime:new Date(), + modifyOp:opId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.updatePda(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + swal({ + title: "提示", + text: '启用成功!', + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + $('#pdamanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initPDAChartAjax(); + } + } + }; + sysAjax(optAjax); + }, + formatTableUnit:function(value,row,index){ + return { + css: { + "white-space":"nowrap" + } + } + }, + //条件查询 + parkingSpaceQuery:function () { + documentBindFunc.on('click', '#queryBtn', function () { + //初始化table + fun.createTableData(); + fun.initPDAChartAjax(); + }); + }, + //停车场下拉框 + initAddParkSelect: function () { + var data = fn.getParkLot(); + $("#pdaparkNameadd").empty(); + $("#pdaparkNameadd_modify").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + $("#pdaparkNameadd").append(html); + $('#pdaparkNameadd').selectpicker('render'); + $("#pdaparkNameadd_modify").append(html); + $('#pdaparkNameadd_modify').selectpicker('render'); + }, + initPDAChart:function (count,onLineCount,downLineCount,faultCount) { + /*echarts*/ + var onLineRatio=0; + var downLineRatio=0; + var faultRatio=0; + if(0!=parseInt(count) && count!=null){ + onLineRatio=(parseInt(onLineCount)*100/parseInt(count)).toFixed(2); + downLineRatio=(parseInt(downLineCount)*100/parseInt(count)).toFixed(2); + faultRatio=(parseInt(faultCount)*100/parseInt(count)).toFixed(2); + } + + var onLine = echarts.init(document.getElementById('pdamanage-online')); + var onlineOption = { + color:['#d9dbe1','#d9dbe1','#d9dbe1'], + title: { + text: onLineRatio+'%', + x: 'center', + y: 'center', + textStyle: { + fontweight: 'normal', + color: '#26be96', + fontSize: 24 + } + }, + tooltip: { + show:false + }, + + series: [ + { + hoverAnimation:false, + name:'访问来源', + type:'pie', + radius: ['50%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontweight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + { + tooltip: { + show: false + }, + value:onLineCount, + name:'在数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#2abb9b' // 0% 处的颜色 + }, { + offset: 1, color: '#5ecde2' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + { + value:count-onLineCount, + name:'总数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#d9dbe1' // 0% 处的颜色 + }, { + offset: 1, color: '#d9dbe1' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + + + + ] + }, + { + hoverAnimation:false, + type: 'pie', + tooltip: { + show: false + }, + animation: false, + clockWise: false, + radius: ['72%', '74%'], + itemStyle:{ + corlor:'#f00' + }, + hoverAnimation: false, + tooltip: { + show: false + }, + labelLine: { + normal: { + show: false + } + }, + data: [{ + value: 100, + + }, { + value: 0, + + // itemStyle: placeHolderStyle + } + + ] + } + ] + }; + onLine.setOption(onlineOption,true); + + var offLine = echarts.init(document.getElementById('pdamanage-offline')); + var offlineOption = { + color:['#d9dbe1','#d9dbe1','#d9dbe1'], + title: { + text: downLineRatio+'%', + x: 'center', + y: 'center', + textStyle: { + fontweight: 'normal', + color: '#59b2ed', + fontSize: 24 + } + }, + tooltip: { + show:false + }, + + series: [ + { + hoverAnimation:false, + name:'访问来源', + type:'pie', + radius: ['50%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontweight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + { + tooltip: { + show: false + }, + value:downLineCount, + name:'在数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#59b2ed' // 0% 处的颜色 + }, { + offset: 1, color: '#6ed3f8' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + { + value:count-downLineCount, + name:'总数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#d9dbe1' // 0% 处的颜色 + }, { + offset: 1, color: '#d9dbe1' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + + + + ] + }, + { + hoverAnimation:false, + type: 'pie', + tooltip: { + show: false + }, + animation: false, + clockWise: false, + radius: ['72%', '74%'], + itemStyle:{ + corlor:'#f00' + }, + hoverAnimation: false, + tooltip: { + show: false + }, + labelLine: { + normal: { + show: false + } + }, + data: [{ + value: 100, + + }, { + value: 0, + + // itemStyle: placeHolderStyle + } + + ] + } + ] + }; + offLine.setOption(offlineOption,true); + + var faultLine = echarts.init(document.getElementById('pdamanage-fault')); + var faultlineOption = { + color:['#d9dbe1','#d9dbe1','#d9dbe1'], + title: { + text: faultRatio+'%', + x: 'center', + y: 'center', + textStyle: { + fontweight: 'normal', + color: '#fe6372', + fontSize: 24 + } + }, + tooltip: { + show:false + }, + + series: [ + { + hoverAnimation:false, + name:'访问来源', + type:'pie', + radius: ['50%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontweight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + { + tooltip: { + show: false + }, + value:faultCount, + name:'在数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#fe6372' // 0% 处的颜色 + }, { + offset: 1, color: '#fea886' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + { + value:count-faultCount, + name:'总数', + itemStyle:{ + normal:{ + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [{ + offset: 0, color: '#d9dbe1' // 0% 处的颜色 + }, { + offset: 1, color: '#d9dbe1' // 100% 处的颜色 + }], + globalCoord: false // 缺省为 false + } + } + }, + }, + + + + ] + }, + { + hoverAnimation:false, + type: 'pie', + tooltip: { + show: false + }, + animation: false, + clockWise: false, + radius: ['72%', '74%'], + itemStyle:{ + corlor:'#f00' + }, + hoverAnimation: false, + tooltip: { + show: false + }, + labelLine: { + normal: { + show: false + } + }, + data: [{ + value: 100, + + }, { + value: 0, + + // itemStyle: placeHolderStyle + } + + ] + } + ] + }; + faultLine.setOption(faultlineOption,true); + }, + initPDAChartAjax:function () { + //设置请求参数 + var req = fun.getQueryParam(); + req.sysCode=sysComm.sysCode; + var optAjax= { + method: "post", + url: dataUrl.util.statisticPdaCountByCondition(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + //console.log(res); + if(res.code == "8888"){ + var data=res.data; + var onLineCount=data.onlineEqpNum; + var downLineCount=data.offLineEqpNum; + var count=data.allEqpNum; + var faultCount=count-downLineCount-onLineCount; + + $("#onLineCount_pda").text(onLineCount); + $("#downLineCount_pda").text(downLineCount); + $("#faultCount_pda").text(faultCount); + + fun.initPDAChart(count,onLineCount,downLineCount,faultCount); + } + } + }; + sysAjax(optAjax); + }, + +} +fun.init(); + +$(function () { + + +//点击新增 弹窗 + $(document).on('click','#pdamanage-addBtn',function () { + + //初始化停车场 + fun.initAddParkSelect(); + $('#pdaparkNameadd').selectpicker('render'); + //初始化设备类型 + $('#pdamanage-deviceType').selectpicker('refresh'); + + $("#pdamanage-addParkinglot").text(""); + $('#pdamanage-addParkinglot').hide(); + $("#pdamanage-deviceName").val(""); + $("#pdamanage-deviceNum").val(""); + $("#pda-serviceTel-add").val(""); + $('#pda-registerno-add').val(""); + $("#pdamanage-remark-add").val(""); + + $('#pdamanage_addmodel').modal('show'); + }); + //点击新增确认按钮 + documentBindFunc.on('click','#pdamanage-add-submit',function () { + /***1、基本校验 ***/ + var plNo=$("#pdaparkNameadd").val(); + + var pdaName=$("#pdamanage-deviceName").val(); + var pdaNo=$("#pdamanage-deviceNum").val(); + var pdaType=$("#pdamanage-deviceType").val(); + var simNo=$("#pda-serviceTel-add").val(); + var registerno=$('#pda-registerno-add').val(); + var remark=$("#pdamanage-remark-add").val(); + + + var createOp=fn.getUserId()==null?-1:fn.getUserId(); + + /***2、校验设备编号是否唯一 ***/ + + //设备名称校验 + if(pdaName == "" || pdaName == null || pdaName == undefined){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("设备名称为必填项!"); + $('#pdamanage-addParkinglot').show(); + return false; + } + //设备编号校验 + else if(pdaNo == "" || pdaNo == null || pdaNo == undefined){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("设备编号为必填项!"); + $('#pdamanage-addParkinglot').show(); + return false; + } + //手机号校验 + /* else if(simNo == "" || simNo == null || simNo == undefined){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("手机号为必填项!"); + $('#pdamanage-addParkinglot').show(); + return false; + }*/else{ + /***3、保存数据 ***/ + var req={ + plNo:plNo, + pdaName:pdaName, + pdaNo:pdaNo, + pdaType:pdaType, + simNo:simNo, + carnoRegisterno:registerno, + remark:remark, + createOp:createOp, + chargerCode:createOp, + pdaStatus:1, + enableTime:new Date(), + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.insertPda(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code == "8888"){ + $('#pdamanage_addmodel').modal('hide'); + $("#pdamanage-addParkinglot").text(""); + $('#pdamanage-addParkinglot').hide(); + $('#pdamanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initPDAChartAjax(); + }else if(res.code == "3003"){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("设备编号已存在!"); + $('#pdamanage-addParkinglot').show(); + } + } + }; + sysAjax(optAjax); + } + + + + + }); + //点击继续新增确认按钮 + documentBindFunc.on('click','#pdamanage-addother-submit',function () { + /***1、基本校验 ***/ + var plNo=$("#pdaparkNameadd").val(); + var pdaName=$("#pdamanage-deviceName").val(); + var pdaNo=$("#pdamanage-deviceNum").val(); + var pdaType=$("#pdamanage-deviceType").val(); + var simNo=$("#pda-serviceTel-add").val(); + var registerno=$('#pda-registerno-add').val(); + var remark=$("#pdamanage-remark-add").val(); + var createOp=fn.getUserId()==null?-1:fn.getUserId(); + + /***2、校验设备编号是否唯一 ***/ + //设备名称校验 + if(pdaName == "" || pdaName == null || pdaName == undefined){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("设备名称为必填项!"); + $('#pdamanage-addParkinglot').show(); + return false; + } + //设备编号校验 + else if(pdaNo == "" || pdaNo == null || pdaNo == undefined){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("设备编号为必填项!"); + $('#pdamanage-addParkinglot').show(); + return false; + } + //手机号校验 + /* else if(simNo == "" || simNo == null || simNo == undefined){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("手机号为必填项!"); + $('#pdamanage-addParkinglot').show(); + return false; + }*/ + else{ + /***3、保存数据 ***/ + var req={ + plNo:plNo, + pdaName:pdaName, + pdaNo:pdaNo, + pdaType:pdaType, + simNo:simNo, + carnoRegisterno:registerno, + remark:remark, + createOp:createOp, + chargerCode:createOp, + pdaStatus:1, + enableTime:new Date(), + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.insertPda(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code == "8888"){ + //初始化停车场 + fun.initAddParkSelect(); + //初始化设备类型 + $('#pdamanage-deviceType').selectpicker('refresh'); + $("#pdamanage-addParkinglot").text(""); + $('#pdamanage-addParkinglot').hide(); + $('#pdamanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initPDAChartAjax(); + }else if(res.code == "3003"){ + $("#pdamanage-addParkinglot").text(""); + $("#pdamanage-addParkinglot").text("设备编号已存在!"); + $('#pdamanage-addParkinglot').show(); + } + } + }; + sysAjax(optAjax); + } + + + + + }); + + + //点击修改确认按钮 + documentBindFunc.on('click','#pdamanage-add-submit_modify',function () { + /***1、基本校验 ***/ + var plNo=$("#pdaparkNameadd_modify").val(); + var id = $("#pdamanage_modify_id").val(); + + var pdaName=$("#pdamanage-deviceName_modify").val(); + var pdaNo=$("#pdamanage-deviceNum_modify").val(); + var pdaType=$("#pdamanage-deviceType_modify").val(); + var simNo=$("#pda-serviceTel-add_modify").val(); + var registerno=$('#pda-registerno-add_modify').val(); + var remark=$("#pdamanage-remark-add_modify").val(); + + + var createOp=fn.getUserId()==null?-1:fn.getUserId(); + + /***2、校验设备编号是否唯一 ***/ + + //设备名称校验 + if(pdaName == "" || pdaName == null || pdaName == undefined){ + $("#pdamanage-addParkinglot_modify").text(""); + $("#pdamanage-addParkinglot_modify").text("设备名称为必填项!"); + $('#pdamanage-addParkinglot_modify').show(); + return false; + } + //设备编号校验 + else if(pdaNo == "" || pdaNo == null || pdaNo == undefined){ + $("#pdamanage-addParkinglot_modify").text(""); + $("#pdamanage-addParkinglot_modify").text("设备编号为必填项!"); + $('#pdamanage-addParkinglot_modify').show(); + return false; + } + //手机号校验 + /* else if(simNo == "" || simNo == null || simNo == undefined){ + $("#pdamanage-addParkinglot_modify").text(""); + $("#pdamanage-addParkinglot_modify").text("手机号为必填项!"); + $('#pdamanage-addParkinglot_modify').show(); + return false; + }*/else{ + /***3、保存数据 ***/ + var req={ + id:id, + plNo:plNo, + pdaName:pdaName, + pdaNo:pdaNo, + pdaType:pdaType, + simNo:simNo, + carnoRegisterno:registerno, + remark:remark, + createOp:createOp, + modifyOp:createOp, + chargerCode:createOp, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.updatePda(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code == "8888"){ + $('#pdamanage_modifymodel').modal('hide'); + $("#pdamanage-addParkinglot_modify").text(""); + $('#pdamanage-addParkinglot_modify').hide(); + $('#pdamanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initPDAChartAjax(); + }else if(res.code == "3003"){ + $("#pdamanage-addParkinglot_modify").text(""); + $("#pdamanage-addParkinglot_modify").text("设备编号已存在!"); + $('#pdamanage-addParkinglot_modify').show(); + } + } + }; + sysAjax(optAjax); + } + + + + + }); + + + + //删除弹窗 + documentBindFunc.on('click','#pdamanage-del',function () { + // + var ids2 = []; + ids2 = pdagetIdSelections(); + + if(ids2[0] == null) { + swal({ + title: "提示", + text: '请选择至少一条记录!', + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } else { + $('#pdamanage_deletemodel').modal('show'); + } + }); + + //删除确定按钮 + documentBindFunc.on('click','#pdamanage-parkdelete-submit',function () { + // + var ids2 = []; + ids2 = pdagetIdSelections(); + var opId=fn.getUserId()==null?-1:fn.getUserId(); + var req={ + ids:ids2, + modifyOp:opId, + sysCode:sysComm.sysCode + }; + var optAjax= { + method: "post", + url: dataUrl.util.deletePda(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + $('#pdamanage_deletemodel').modal('hide'); + $('#pdamanageTable').bootstrapTable('refresh', { + silent: true + }); + fun.initPDAChartAjax(); + } + } + }; + sysAjax(optAjax); + + + + }); + + +}) +//停车场默认加载 +function tableLoadRequest(params){ + var req = fun.getQueryParam(); + //设置请求参数 + //条件查询 + var pageNum = (params.data.offset/params.data.limit)+1; + req.baseRequest={ + pageNum:pageNum, + pageSize:params.data.limit + } + req.sysCode=sysComm.sysCode; + var cehicleFlowTableAjax= { + method: params.type, + url: dataUrl.util.queryPdaInfo4pabe(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code = "8888"){ + params.success(res.data); + }else{ + + } + } + }; + sysAjax(cehicleFlowTableAjax); +}; + +function pdagetIdSelections() { + return $.map($("#pdamanageTable").bootstrapTable('getSelections'), function(row) { + return row.id + }); +}; + + +//点击导出 +// $(document).on('click', '#geomanage-recordBtn', function () { +// var req = fun.getQueryParam(); +// var url = dataUrl.util.eqpMsgToExcleForPage(); +// var forms = exportGeomagneticForm(url, req.plNos,req.eqpNo, req.berthNo,req.eqpIsOnline, +// req.factoryNos,req.usedType +// ); +// forms.submit(); +// }); + + + + +function exportGeomagneticForm(url, plNos, eqpNo, berthNo, eqpIsOnline,factoryNos,usedType +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "plNos"; + input.value = plNos; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "eqpNo"; + input2.value = eqpNo; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "isOnline"; + input3.value = eqpIsOnline; + form.appendChild(input3); + + + var input4 = document.createElement("input"); + input4.name = "factoryNos"; + input4.value = factoryNos; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "berthNo"; + input5.value = berthNo; + form.appendChild(input5); + + var input6 = document.createElement("input"); + input6.name = "usedType"; + input6.value = usedType; + form.appendChild(input6); + + return form; + +}; + diff --git a/assets/pages/scripts/home/caryard.js b/assets/pages/scripts/home/caryard.js new file mode 100644 index 0000000..a3d2011 --- /dev/null +++ b/assets/pages/scripts/home/caryard.js @@ -0,0 +1,1328 @@ +var fun = { + init:function(){ + fun.queryParkRealTimeDatasByPlNos(); + fun.initPark(); + fun.createTableData(); + }, + //初始化停车场下拉框 + initPark: function () { + var data = fn.getParkLot(); + $("#caryard_parkIds").empty(); + var html = ''; + plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#caryard_parkIds").append(html); + $('#caryard_parkIds').selectpicker('render'); + }, + /*获取查询参数*/ + getQueryParam: function() { + //停车场 + var plnos = JSON.parse($("#caryard_parkIds").val()); + var plType = $('#caryard_parkTypes').val(); + + var filterPark = fn.getParkLot(); + var filterPlNos = []; + for (var i = 0; i < filterPark.length; i++) { + + if(filterPark[i].type == plType || plType == '-1'){ + filterPlNos.push(filterPark[i].code); + } + + } + var resultPlNos = []; + $.each(plnos,function (index,item) { + console.log(item) + console.log(filterPlNos.indexOf(item)) + if(filterPlNos.indexOf(item)>=0){ + resultPlNos.push(item); + } + }) + + if(resultPlNos.length == 0){ + resultPlNos.push('X'); + } + + var req = { + plNos: resultPlNos, + }; + return req; + }, + //占用率 + rateEchart: function (chartRate, berthNum, useBerthNum) { + console.log(chartRate); + console.log(berthNum); + console.log(useBerthNum); + var chart = echarts.init(document.getElementById('caryard-parking-echart')); + var option = { + title: { + text: chartRate + '%', + textStyle: { + color: '#000', + fontSize: '18', + align: 'center', + fontFamily: '微软雅黑' + }, + top: '60', + left: 'center' + }, + legendHoverLink: false, + series: [ + { + name: '', + type: 'pie', + radius: '65%', + center: ['50%', '50%'], + legendHoverLink: false, + avoidLabelOverlap: false, + startAngle: 180, + hoverAnimation: false, + label: {normal: {show: false}}, + data: [ + { + value: 50, + name: '', + itemStyle: {normal: {color: '#edf7fb'}, emphasis: {color: '#edf7fb'}}, + label: {normal: {show: false}} + }, + { + value: 50, + name: '', + itemStyle: {normal: {color: '#edf7fb'}, emphasis: {color: '#edf7fb'}}, + label: {normal: {show: false}} + } + ] + }, + { + name: '具体比例', + type: 'pie', + radius: ['75%', '85%'], + //radius: ['50%', '50%'], + center: ['50%', '50%'], + legendHoverLink: false, + avoidLabelOverlap: false, + hoverAnimation: false, + // hoverOffset:0, + startAngle: 180, + color: ['#5fe98f', '#cccc'], + label: { + normal: { + show: false, + position: 'inside', + formatter: '{c}%' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontWeight: 'bold' + } + } + + }, + labelLine: { + normal: { + show: false + } + }, + data: [ + + { + value: useBerthNum, + name: '20~25岁', + itemStyle: {normal: {color: '#5fe98f'}, emphasis: {color: '#5fe98f'}}, + label: {normal: {show: false}} + }, + { + value: (berthNum-useBerthNum), + name: '25~30岁', + itemStyle: {normal: {color: '#cccc'}, emphasis: {color: '#cccc'}}, + label: {normal: {show: false}} + }, + // { + // value: 25, + // name: '20~25岁', + // itemStyle: {normal: {color: '#5fe98f'}, emphasis: {color: '#5fe98f'}}, + // label: {normal: {show: false}} + // }, + // { + // value: 5, + // name: '25~30岁', + // itemStyle: {normal: {color: '#cccc'}, emphasis: {color: '#cccc'}}, + // label: {normal: {show: false}} + // }, + // {value:4, name:'',itemStyle:{normal:{color:'#fff'},emphasis:{color:'#fff'}}, label:{normal: {show: false}}} + ] + } + ] + }; + chart.setOption(option, true); + //自适应 + /* window.onresize = function(){ + chart.resize(); + };*/ + }, + //利用率 + usageEchart: function (xTimeDatas,occupyDatas) { + var mychart = echarts.init(document.getElementById('berth-usage-echart')); + var option = { + color: ['#5fe98f'], + animationDuration:2000, + tooltip : { + trigger: 'axis', + textStyle:{ + fontSize:'12px' + }, + padding:[10,10,10,10], + formatter: function (params) { + //return params[0].value+'%' + return (params[0].value*100).toFixed(2) +'%' + }, + }, + + + grid: { + top: '10%', + left: '2%', + right: '2%', + bottom: '0%', + containLabel: true + }, + // legend: { + // top: '0', + // right: '24', + // + // }, + + + xAxis: { + type: 'category', + boundaryGap: true, + data: xTimeDatas, + // nameGap:'2', + // boundaryGap:['2%','2%'], + axisLabel: { + // interval:0, + show: true, + textStyle: { + color: 'rgba(0,0,0,0.8)', + fontSize: '12px', + fontFamily: '微软雅黑' + }, + + }, + + // splitNumber:2, + // // minInterval:2, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + }, + yAxis: { + type: 'value', + splitNumber: 2, + // minInterval:2, + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.8)', + fontSize: '12px', + fontFamily: '微软雅黑' + }, + formatter: function (value) { + return value*100 +'%' + }, + }, + axisTick: { + show: false, + }, + axisLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + width: 1,//这里是为了突出显示加上的 + } + }, + splitLine:{ + lineStyle:{ + // type:'dashed', + color:'rgba(0,0,0,0.1)', + } + } + }, + series: [ + { + name: '24小时泊位占用率', + type: 'line', + data: occupyDatas, + symbol: 'circle', + symbolSize: 10, + itemStyle: { + normal: { + lineStyle: { + color: '#f0f0f2', + } + } + }, + areaStyle: { + normal: { + color: '#effdf4' + } + }, + lineStyle: { + normal: { + color: '#5fe98f', + width: 2, + } + } + }, + + ] + }; + mychart.setOption(option, true); + // 自适应 + window.onresize = mychart.resize; + }, + queryParkRealTimeDatasByPlNos: function () { + var data = fn.getParkLot(); + var plNos = []; + var openParkCount = 0; + var closeParkCount = 0; + var allParkCount = data.length; + var berthsNum = 0; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + if (parseInt(data[i].type) == 1) { + openParkCount += 1; + } else { + closeParkCount += 1; + } + berthsNum += parseInt(data[i].berthsNum); + + } + $("#allParkCount").text(allParkCount); + $("#openParkCount").text(openParkCount); + $("#closeParkCount").text(closeParkCount); + + + if (plNos.length < 1) { + plNos.push("-1X"); + } + + var req = { + sysCode: sysComm.sysCode, + plNos: plNos + }; + var opt = { + method: 'post', + url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + var berthFreeNum = data.berthFreeNum; + var berthNum = data.berthNum; + var parkIncome = data.parkIncome; + var allIncome=data.allIncome; + var useBerthNum = parseInt(berthNum) - parseInt(berthFreeNum); + var rate = (useBerthNum * 100 / berthNum).toFixed(2); + + var parkOnLinePayNum=data.parkOnLinePayNum==null?0:data.parkOnLinePayNum; + var parkOffLinePayNum=data.parkOffLinePayNum==null?0:data.parkOffLinePayNum; + var vipPayNum=data.vipCardChargeNum==null?0:data.vipCardChargeNum; + $("#allParkBerthNum").text(berthsNum); + $("#allFreeBerthNum").text(berthFreeNum); + $("#incomeCount").text(parkOnLinePayNum+parkOffLinePayNum+vipPayNum); + $("#parkIncome").text(fun.money(allIncome)); + if(isNaN(rate)){ + rate = 0; + } + $("#rate").text(rate); + + } + } + }; + sysAjax(opt); + }, + money:function (value) { + if(value==null || value==undefined || value =="0.00"){ + return 0.00; + }else{ + return (value/100).toFixed(2); + } + }, + //生成表格数据 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'plName', + title: '车场基本信息', + width: '10%', + visible: true, + align: "left", + formatter: function (value, row, index) { + // console.log(row.plNo) + if(row.plAddress==null||row.plAddress==undefined||row.plAddress==''){ + row.plAddress = '-' + } + if(value==null||value==undefined||value==''){ + value = '-' + } + return '
    ' + value + '
    ' + + '
    ' + row.plAddress + '
    ' + } + }, + { + field: 'carNumber', + title: '泊位信息', + width: '10%', + align: "left", + formatter: function (value, row, index) { + var berthNum = row.berthNum; + var freeBerthNum = row.berthFreeNum; + if(freeBerthNum==undefined || freeBerthNum ==null || freeBerthNum==""){ + freeBerthNum = 0; + } + if(berthNum==undefined || berthNum ==null || berthNum==""){ + berthNum = 0; + } + var useBerthNum = berthNum - freeBerthNum; + console.log(berthNum+','+freeBerthNum) + var rate = 0; + if(berthNum!=undefined && berthNum !=null && berthNum!=0){ + rate=useBerthNum * 100 / berthNum; + } + if(berthNum == 0){ + rate = 100; + } + if (rate < 40) { + return '
    占用' + useBerthNum + '个充足
    总共' + berthNum + '个 占用率 : ' + rate.toFixed(2) + '%
    ' + } else if (rate >= 40 && rate <= 60) { + return '
    占用' + useBerthNum + '个平衡
    总共' + berthNum + '个 占用率 : ' + rate.toFixed(2) + '%
    ' + } else { + return '
    占用' + useBerthNum + '个紧张
    总共' + berthNum + '个 占用率 : ' + rate.toFixed(2) + '%
    ' + } + + } + }, + { + field: 'cardType', + title: '车流量', + width: '10%', + align: "left", + formatter: function (value, row, index) { + var incarNum = row.inCarNum; + if(incarNum==undefined || incarNum ==null || incarNum==""){ + incarNum = 0; + } + var outCarNum = row.outCarNum; + if(outCarNum==undefined || outCarNum ==null || outCarNum==""){ + outCarNum = 0; + } + return '
    入场:' + incarNum + '辆
    ' + + '
    出场:' + outCarNum + '辆
    ' + } + }, + { + field: 'num', + title: '设备信息', + width: '10%', + align: "left", + formatter: function (value, row, index) { + var onlinePDACount = row.onlinePDACount == null ? 0 : row.onlinePDACount; + var allPDACount = row.allPDACount == null ? 0 : row.allPDACount; + var onlineEqpCount = row.onlineEqpCount == null ? 0 : row.onlineEqpCount; + var allEqpCount = row.allEqpCount == null ? 0 : row.allEqpCount; + var signInTollCollector = row.signInTollCollector == null ? 0 : row.signInTollCollector; + return '
    地磁:在线' + onlineEqpCount + '/' + allEqpCount + '
    ' + + '
    PDA:在线' + signInTollCollector + '
    ' + } + }, + { + field: 'price', + title: '人员信息', + width: '10%', + align: "left", + formatter: function (value, row, index) { + var allTollCollector = row.allTollCollector == null ? 0 : row.allTollCollector; + var signInTollCollector = row.signInTollCollector == null ? 0 : row.signInTollCollector; + return '
    收费员:
    ' + + '
    应签到:' + allTollCollector + '人    实签到:' + signInTollCollector + '人
    ' + } + }, + + + ] + }); + + }, + alertIfo: function (plNo, plName) { + plNo = $("#dataplno").val(); + + //初始化 + $("#basePlName").text(''); + $("#basePlType").text(''); + $("#baseDeviceType").text(''); + $("#baseBerthNum").text('0个'); + $("#baseInOutNum").text("2出2入"); + $("#baseBusiCircle").text(''); + $("#baseAddress").text(''); + $("#baseParkImg").empty(); + $("#baseMaxCarTwo").text('0'); + $("#baseMaxCarThree").text('0'); + $("#baseMaxCarFirst").text('0'); + + $("#baseSmallCarFirst").text('0'); + $("#baseSmallCarTwo").text('0'); + $("#baseSmallCarThree").text('0'); + + + var req = { + sysCode: sysComm.sysCode, + pklNo: plNo + }; + var getParkLotEqpCountChart = { + method: "post", + url: dataUrl.util.queryParkingBaseInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + + var result = res.data; + console.log(result); + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + //停车类型 + var parkType; + var eqpName; + if (1 == result.plType) { + parkType = '路侧'; + eqpName = '地磁'; + + } else if (2 == result.plType) { + parkType = '封闭'; + eqpName = '道闸'; + } else { + parkType = '未知'; + eqpName = '地磁'; + } + + + //商圈属性1:商场、2:医院、3:小区、4:学校、5:写字楼、6:景区、7:交通场站、8:其他 + var busiCircle; + if (1 == result.busiCircle) { + busiCircle = '商场' + } else if (2 == result.busiCircle) { + busiCircle = '医院' + } else if (3 == result.busiCircle) { + busiCircle = '小区' + } else if (4 == result.busiCircle) { + busiCircle = '学校' + } else if (5 == result.busiCircle) { + busiCircle = '写字楼' + } else if (6 == result.busiCircle) { + busiCircle = '景区' + } else if (7 == result.busiCircle) { + busiCircle = '交通场站' + } else { + busiCircle = '其他' + } + $("#basePlName").text(result.plName); + $("#basePlType").text(parkType); + $("#baseDeviceType").text(eqpName); + $("#baseBerthNum").text(result.plBerthNum + '个'); + $("#baseInOutNum").text((result.plExitNum == null ? 0 : result.plExitNum) + "出" + (result.plEntranceNum == null ? 0 : result.plEntranceNum) + "入"); + $("#baseBusiCircle").text(busiCircle); + $("#baseAddress").text(result.plAddress); + +// photoList + var photos = result.picUrls; + var html = ''; + $.each(photos, function (index, item) { + html += "
  • "; + }); + html += '
    '; + $("#baseParkImg").html(html); + var plRate=result.plRate; + if(plRate==null || plRate==undefined || plRate==''||plRate==='[]'){ + + $("#plRate").empty(); + var htmlnew='
  • '+ + '
    '+ + // '
    '+ + '
    暂未配置
    '+ + '
    暂未配置
    '+ + '
  • '; + + + $("#plRate").html(htmlnew); + }else{ + plRate = JSON.parse(plRate); + + console.log(plRate); + $("#plRate").empty(); + var htmlnew=''; + for(var index in plRate){ + htmlnew += '
  • '+ + '
    '+ + // '
    '+ + '
    '+plRate[index].standard+'
    '+ + '
    '+plRate[index].standardInfo+'
    '+ + ''; + } + + $("#plRate").html(htmlnew); + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + + } + + + + } + } + }; + sysAjax(getParkLotEqpCountChart); + // $('#m_r_bar li').eq(0).click(); + + $('#caryard_alertmodel').modal('show'); + + + }, + //根据停车场编码获取车位信息 + getBerthInfoByPlNo: function (plNo) { + //数据初始化 + $('#allBerthNum').text(''); + $('#freeBerthNum').text(''); + $('#useBerthNum').text(''); + $('#caryard-berth-ifo-main').html(''); + //判断是否为封闭停车场 + var plTypeStr = $("#basePlType").text(); + if(plTypeStr == '封闭'){ + plNo = $("#dataplno").val(); + var plName = $("#dataplname").val(); + $("#parkDataPlName").text(plName); + /**1、查询实时停车场数据 **/ + var plNos = []; + plNos.push(plNo); + var req = { + sysCode: sysComm.sysCode, + plNos: plNos + }; + var opt = { + method: 'post', + url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data = res.data; + var berthFreeNum = data.berthFreeNum; + var berthNum = data.berthNum; + var useBerthNum = parseInt(berthNum) - parseInt(berthFreeNum); + $('#allBerthNum').text(berthNum); + $('#freeBerthNum').text(berthFreeNum); + $('#useBerthNum').text(useBerthNum); + $('#caryard-berth-ifo-main').html('
    封闭停车场暂无泊位数据
    '); + } + } + }; + sysAjax(opt); + return; + } + plNo = $("#dataplno").val(); + var allBerths = 0; + var freeBerths = 0; + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + sysCode: sysComm.sysCode, + plNo: plNo + } + var opt = { + method: 'post', + url: dataUrl.util.queryBerthByBerthForPage(), + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + var data = res.data.rows; + $('#caryard-berth-ifo-main').empty(); + var _html = ''; + // var allBerthData=[]; + var freeBerthData = []; + var useBerthData = []; + if (data != null && data.length > 0) { + for (var m = data.length - 1; m >= 0; m--) { + allBerths += 1; + // allBerthData.push(data[m].berthNo); + if (parseInt(data[m].isOccupy) == 2) { + freeBerths += 1; + freeBerthData.push(data[m].berthNo); + } else if (parseInt(data[m].isOccupy) == 1) { + useBerthData.push(data[m].berthNo); + } + } + } + + $('#allBerthNum').text(allBerths); + $('#freeBerthNum').text(freeBerths); + $('#useBerthNum').text(parseInt(allBerths) - parseInt(freeBerths)); + + var number = data.length; + var num = Math.ceil(number / 9); + console.log(num); + + + // var number = 45; + // var num = Math.ceil(number/15); + // $('#caryard-berth-ifo-main').empty(); + // var _html = ''; + for(var i=0;i=0;k--){ + if (parseInt(data[number-1-k].isOccupy) == 2) { + _html += '
    ' + data[number-1-k].berthNo + '
    '; + } else if (parseInt(data[number-1-k].isOccupy) == 1) { + _html += '
    ' + data[number-1-k].berthNo + '
    '; + } + } + }else{ + for(var j=0;j<9;j++){ + if (parseInt(data[9*i+j].isOccupy) == 2) { + _html += '
    ' + data[9*i+j].berthNo + '
    '; + } else if (parseInt(data[9*i+j].isOccupy) == 1) { + _html += '
    ' + data[9*i+j].berthNo + '
    '; + } + } + } + + _html += '
  • '; + } + + + + + + // for(var i=0;i= 0; m--) { + // if (parseInt(data[m].isOccupy) == 2) { + // _html += '
    ' + data[m].berthNo + '
    '; + // } else if (parseInt(data[m].isOccupy) == 1) { + // _html += '
    ' + data[m].berthNo + '
    '; + // } + // } + // _html += ''; + // }else{ + // + // } + // } + + + + + //for(var i=0;i= 0; m--) { + // if (parseInt(data[m].isOccupy) == 2) { + // _html += '
    ' + data[m].berthNo + '
    '; + // } else { + // _html += '
    ' + data[m].berthNo + '
    '; + // } + // } + // //} + // } + + + //} + + + // for (var i = 0; i < num; i++) { + // _html += '
  • '; + // if (i != (num - 1)) { + // for (var k = 0; k < useBerthData.length; k++) { + // _html += '
    ' + useBerthData[k] + '
    '; + // } + // } else { + // for (var j = 0; j < freeBerthData.length; j++) { + // _html += '
    ' + freeBerthData[j] + '
    '; + // } + // } + // + // _html += '
  • '; + // } + // + $('#caryard-berth-ifo-main').html(_html); + + } + + } + } + sysAjax(opt); + }, + turnOverRateOccupyCarFlowLineCharts:function () { + + var plNos = []; + var plNo = $("#dataplno").val(); + plNos.push(plNo); + + if (plNos.length < 1) { + plNos.push("-1X"); + } + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + } + var opt = { + method: 'post', + url: dataUrl.util.queryTodayVehicleFlowOccupyRateAndTurnOver(), + async: false, + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var data = res.data; + + var xAxisData = []; + var seriesData = []; + + + var time = new Date().getHours() + 1; + for (var i = 0; i < time; i++) { + var item = data[i]; + var hour = item.hour + ''; + if (hour.length == 1) { + hour = '0' + hour; + } + hour += ':00'; + xAxisData.push(hour); + seriesData.push(item.avgTurnoverRate.toFixed(2)); + } + + + } + } + } + sysAjax(opt); + }, + loadParkDatas: function (plNo) { + plNo = $("#dataplno").val(); + var plName = $("#dataplname").val(); + $("#parkDataPlName").text(plName); + /**1、查询实时停车场数据 **/ + var plNos = []; + plNos.push(plNo); + var req = { + sysCode: sysComm.sysCode, + plNos: plNos + }; + var opt = { + method: 'post', + url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data = res.data; + var berthFreeNum = data.berthFreeNum; + var berthNum = data.berthNum; + + + var useBerthNum = parseInt(berthNum) - parseInt(berthFreeNum); + var rate = 0; + if(berthNum!=undefined && berthNum !=null && berthNum!=0){ + rate = parseInt(useBerthNum * 100 / berthNum); + } + $("#parkDataFreeBerthNum").text(berthNum); + var parkDataAllIncome = data.allIncome; + $("#parkDataAllIncome").text(fun.money(parkDataAllIncome)); + var parkOnLinePayNum=data.parkOnLinePayNum==null?0:data.parkOnLinePayNum; + var parkOffLinePayNum=data.parkOffLinePayNum==null?0:data.parkOffLinePayNum; + var vipPayNum=data.vipCardChargeNum==null?0:data.vipCardChargeNum; + + $("#parkDataIncomeCount").text(parkOnLinePayNum+parkOffLinePayNum+vipPayNum); + + + /**今日交易 **/ + var parkIncome = data.parkIncome; + var parkWxIncome=data.parkWxIncome; + var parkAliIncome = data.parkAliIncome; + var parkCashIncome=data.parkCashIncome; + var parkBalanceIncome = data.parkBalanceIncome; + + if(parseInt(parkIncome)==0){ + var wxRate=0; + var aliRate=0; + var cashRate=0; + var otherRate=0; + }else{ + var wxRate=parseInt(parkWxIncome*100/parkIncome); + var aliRate=parseInt(parkAliIncome*100/parkIncome); + var cashRate=parseInt(parkCashIncome*100/parkIncome); + var otherRate=parseInt(parkBalanceIncome*100/parkIncome); + } + + $("#wxRate").css("width",wxRate+'%'); + $("#aliRate").css("width",aliRate+'%'); + $("#cashRate").css("width",cashRate+'%'); + $("#otherRate").css("width",otherRate+'%'); + + /**占用率 **/ + fun.rateEchart(rate, berthNum, useBerthNum); + + + + } + } + }; + sysAjax(opt); + + + //2左下角设备状态 + $("#eqpInfo").empty(); + + //初始化 + $("#eqpInfo").html('
  • 岗亭服务器' + + '' + + ' 无
  • ' + + '
  • 地磁' + + '' + + ' 无
  • ' + + '
  • 视频桩' + + '' + + ' 无
  • ' + + '
  • 地锁' + + '' + + ' 无
  • ' + + '
  • 网关' + + '' + + ' 无
  • ' + + '
  • 道闸' + + '' + + ' 无
  • ' + + '
  • PDA' + + '' + + ' 无
  • '); + + + fun.queryParkData(plNo); + + }, + queryParkData:function (plNo) { + var occupydData=getOccupyXDatas(); + var req = { + sysCode: sysComm.sysCode, + pklNo: plNo, + }; + var opttwo={ + method: "post", + url: dataUrl.util.queryParkingdatas(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: true, + success: function (res) { + console.log(res); + if (res.code == '8888') { + var parkDatas = res.data; + //console.log(displayCountry); + + //1-地磁;2-视频桩;3-地锁,4-网关,5-中继器等' 9-PDA + var eqpType = [0, 1, 2, 3, 4, 5, 9]; + $.each(parkDatas.deviceVoList, function (index, item) { + var sub = eqpType.indexOf(item.type); + if (sub != -1) { + var html = $("#eqpInfo").find('li').eq(sub).html(); + html = html.replace("无", "在线"); + if (item.onlineCount < item.allCount) { + html = html.replace("ITD-common-color000", "color-status-abnormal").replace("在线", "故障"); + } + $("#eqpInfo").find('li').eq(sub).html(html); + } + }); + + if(parkDatas.statisList != null && (parkDatas.statisList).length >0){ + $.each(parkDatas.statisList, function (index, item) { + var curDate = new Date(); + curDate.setTime(item.statisticEndTime); + for(inData in occupydData.xTimeDatas){ + if(occupydData.xTimeDatas[inData] == (curDate.getHours()+':00')){ + occupydData.occupyDatas[inData]=(1-(item.freeRatio < 0 ? 0 : item.freeRatio)).toFixed(2); + occupydData.turnOverDatas[inData]=item.turnoverRatio < 0 ? 0 : (item.turnoverRatio).toFixed(2); + } + } + + }); + //第一、二个数后台未返回,补零 + //occupydData.occupyDatas[0]=0; + //occupydData.turnOverDatas[0]=0; + } + + // console.log(occupydData.xTimeDatas); + // console.log(occupydData.occupyDatas); + + /**24小时利用率 **/ + fun.usageEchart(occupydData.xTimeDatas,occupydData.occupyDatas); + + } + }}; + + sysAjax(opttwo); + }, +}; + +fun.init(); +//查询 事件 +documentBindFunc.on('click', '#caryard_queryBtn', function () { + fun.createTableData(); +}); + + +setInterval(function () { + fun.queryParkRealTimeDatasByPlNos(); +},commonObj.refreshDataTime); + +/*弹窗js---------------------------------------------------------------------------*/ + + +//上下滚动播报 +(function ($) { + $.fn.myScroll = function (options) { + //榛樿閰嶇疆 + var defaults = { + speed: 40, + rowHeight: 24 //姣忚鐨勯珮搴� + }; + + var opts = $.extend({}, defaults, options), intId = []; + + function marquee(obj, step) { + + obj.find("ul").animate({ + marginTop: '-=1' + }, 0, function () { + var s = Math.abs(parseInt($(this).css("margin-top"))); + if (s >= step) { + $(this).find("li").slice(0, 1).appendTo($(this)); + $(this).css("margin-top", 0); + } + }); + } + + this.each(function (i) { + var sh = opts["rowHeight"], speed = opts["speed"], _this = $(this); + intId[i] = setInterval(function () { + if (_this.find("ul").height() <= _this.height()) { + clearInterval(intId[i]); + } else { + marquee(_this, sh); + } + }, speed); + + _this.hover(function () { + clearInterval(intId[i]); + }, function () { + intId[i] = setInterval(function () { + if (_this.find("ul").height() <= _this.height()) { + clearInterval(intId[i]); + } else { + marquee(_this, sh); + } + }, speed); + }); + + }); + + } + +})(jQuery); +$("div.list_lh").myScroll({ + speed: 40, //数值越大,速度越慢 + rowHeight: 28 //li的高度 +}); +// $(document).delegate('.info-alert', 'click', function () { +// // var plNo = $(this).attr("dataplno"); +// // var plName = $(this).attr("dataplname"); +// // console.log(plNo); +// // $("#dataplno").val(plNo); +// // $("#dataplname").val(plName); +// // $('#ITD-alert-tab-wrap li').eq(0).click(); +// // fun.alertIfo(); +// }); +$('#recordtable').on('click-row.bs.table', function (e, row, element) +{ + //$(element).css({"color":"blue","font-size":"16px;"}); + console.log(row); + var plNo = row.plNo; + var plName = row.plName; + console.log(plNo); + $("#dataplno").val(plNo); + $("#dataplname").val(plName); + $('#ITD-alert-tab-wrap li').eq(0).click(); + +}); +/** + *弹窗切换 + **/ +$('#ITD-alert-tab-wrap li').on('click', function () { + var _index = $(this).index(); + $('#ITD-alert-tab-wrap>li').eq(_index).addClass('ITD-alert-tab-active').siblings().removeClass('ITD-alert-tab-active'); + $('#ITD-alertcon-tab-wrap>li').eq(_index).removeClass('display-none').siblings().addClass('display-none'); + + if (0 == _index) { + fun.alertIfo(); + } else if (1 == _index) { + fun.getBerthInfoByPlNo(); + } else { + console.log(33333); + fun.loadParkDatas(); + } + +}); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryParkinglotBasicFactsByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#caryardReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#caryardReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#caryardReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#caryardReport").val("导出"); + } + else { + curCount--; + $("#caryardReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#caryardReport',function (){ + //获取table所有行数据 + var parkLot = $("#recordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //执行倒计时函数 + sendMessage(); + var data = fn.getParkLot(); + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + + } + if (plNos.length < 1) { + plNos.push("-1X"); + } + + var plNos = fun.getQueryParam().plNos; + + var url = dataUrl.util.exportParkinglotBasicFactsByPlNos(); + + var form = caryardForm(url, plNos); + console.log(form); + form.submit(); + + +}); + + +function caryardForm(url,plNos){ + var form = document.createElement("form"); + form.style.display='none';; + form.action = url; + form.method="post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "plNos"; + input.value = plNos; + form.appendChild(input); + return form; + +} + + + + +//费率转换 +function parsePlRate(plRate) { + if (null == plRate) { + return []; + } + var plRateData = JSON.parse(plRate); + console.log(plRateData); + var result = []; + var patrn = /\d+(\.\d+)?/g; + $.each(plRateData, function (index, item) { + var temp = item.standard; + var data = {}; + data.carType = temp.substring(0, temp.indexOf(":")); + var nums = temp.match(patrn); + data.first = nums[0];//第一小时10元 + data.second = nums[1];//后1.5元/半小时 + temp = item.standardInfo; + nums = temp.match(patrn); + data.third = nums[0];//24小时 + data.four = nums[1];//60元 + result.push(data); + }) + + + return result; +} + + + + + +//5、24小时占用率x时间轴获取 +function getOccupyXDatas(){ + + var occupyDatas=[]; + var turnOverDatas=[]; + var xTimeDatas=[]; + + + var curDate = new Date(); + for (var i=0;i<24;i++){ + curDate.setTime(curDate.getTime()+60*60*1000); + xTimeDatas.push(curDate.getHours()+':00'); + + occupyDatas[i]=0; + turnOverDatas[i]=0; + } + var occupydData={ + occupyDatas:occupyDatas, + turnOverDatas:turnOverDatas, + xTimeDatas:xTimeDatas + } + return occupydData; +} + + diff --git a/assets/pages/scripts/home/generaloperation.js b/assets/pages/scripts/home/generaloperation.js new file mode 100644 index 0000000..91071da --- /dev/null +++ b/assets/pages/scripts/home/generaloperation.js @@ -0,0 +1,867 @@ +var plNos=[];var plNos1=[];var plNos2=[]; +var chartData; +var generalFun={ + init:function () { + // generalFun.generalIncomeTotal(); + generalFun.getParkNums(); + generalFun.getRealTimeDatas(); + generalFun.turnOverRateOccupyCarFlowLineCharts(); + generalFun.zfzbChartsFun(); + //统计设备数量 + generalFun.staticEqpNums(); + + + }, + /*获取查询参数*/ + getQueryParam: function () { + var data = fn.getParkLot(); + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + + } + if (plNos.length < 1) { + plNos.push("-1X"); + } + + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + + }; + return req; + + }, + //获取停车场数量 + getParkNums:function(){ + //获取停车场 + plNos=[];plNos1=[];plNos2=[]; + var data = fn.getParkLotByPlType(1); + for (var i = 0; i < data.length; i++) { + plNos1.push(data[i].code); + } + + //获取封闭的停车场 + data = fn.getParkLotByPlType(2); + for (var i = 0; i < data.length; i++) { + plNos2.push(data[i].code); + } + plNos=plNos.concat(plNos1); + plNos=plNos.concat(plNos2); + $("#parkTotalNum").html(plNos.length); + $("#OutparkNum").html(plNos1.length); + $("#inParkNum").html(plNos2.length); + // $("#OutparkNum").attr('title',plNos1.length+"/"+plNos2.length); + }, + //查询停车场实时运行情况数据-泊位个数、占用率、周转次数 + getRealTimeDatas:function(){ + var outBerthNum = 0; + var inBerthNum = 0; + var outAllIncome = 0; + var inAllIncome = 0; + var outBerthFreeNum = 0; + var inBerthFreeNum = 0; + var outOutCarNum = 0; + var inOutCarNum = 0; + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + }; + var realTimeAjax = { + method: "post", + url: dataUrl.util.queryParkRealTimeListByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + if (data != null && data.length > 0) { + $.each(data, function(index,item) { + if(plNos1.indexOf(item.plNo) > -1){ + outBerthNum+=item.berthNum; + outAllIncome+=item.allIncome; + outBerthFreeNum+=item.berthFreeNum; + outOutCarNum+=item.outCarNum; + }else if(plNos2.indexOf(item.plNo) > -1){ + inBerthNum+=item.berthNum; + inAllIncome+=item.allIncome; + inBerthFreeNum+=item.berthFreeNum; + inOutCarNum+=item.outCarNum; + } + }); + //泊位数 + $("#pBerthTotalNum").text(outBerthNum + inBerthNum); + $("#OutpBerthNum-side").text(outBerthNum ); + $("#OutpBerthNum-close").text(inBerthNum); + // $("#OutpBerthNum").attr('title',outBerthNum +"/"+ inBerthNum); + //占用率 + $("#orderActFeeTotal").attr('title',generalFun.moneyFomatter(outAllIncome + inAllIncome)) + $("#orderActFeeTotal").text(generalFun.moneyFomatter(outAllIncome + inAllIncome)); + $("#OutorderActFeeToal-side").text(generalFun.moneyFomatter(outAllIncome)); + $("#OutorderActFeeToal-close").text(generalFun.moneyFomatter(inAllIncome)); + var berthNum = inBerthNum+outBerthNum; + var berthFreeNum = inBerthFreeNum+outBerthFreeNum; + $("#orderActFeeParkTotal").text(((berthNum - berthFreeNum)*100/(berthNum<1?1:berthNum)).toFixed(2)+"%"); + var outOccupyRate = (((outBerthNum - outBerthFreeNum)*100/(outBerthNum<1?1:outBerthNum)).toFixed(2)); + var inOccupyRate = (((inBerthNum - inBerthFreeNum)*100/(inBerthNum<1?1:inBerthNum)).toFixed(2)); + $("#OutorderActFeePark-side").text(outOccupyRate +"%"); + $("#OutorderActFeePark-close").text(inOccupyRate+"%"); + //周转次数 + var outCarNum = inOutCarNum+outOutCarNum; + $("#orderActFeeVipCardTotal").text(outCarNum); + $("#OutorderActFeeVipCard-side").text(outOutCarNum ); + $("#OutorderActFeeVipCard-close").text(inOutCarNum); + } + } + else { + console.log(res); + } + } + }; + sysAjax(realTimeAjax); + }, + //总收入 + generalIncomeTotal:function () { + var req = generalFun.getQueryParam(); + var opt = { + method: 'post', + //url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + async:false, + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + + } + } + } + sysAjax(opt); + }, + moneyFomatter:function(value){ + if(value==null){ + return "0.00"; + } + else{ + return (value/100).toFixed(2); + } + }, + //支付方式占比 + zfzbChartsFun:function () { + var dataValue=[ + {value: 5000, name: "支付宝"}, + {value: 8000, name: "微信"}, + {value: 2000, name: "余额"}, + {value: 5000, name: "现金"} + ]; + var allIncome=0; + var req = generalFun.getQueryParam(); + var opt = { + method: 'post', + url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + async:false, + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var data = res.data; + dataValue[0].value=generalFun.moneyFomatter(data.allAliIncome); + dataValue[1].value=generalFun.moneyFomatter(data.allWxIncome); + dataValue[2].value=generalFun.moneyFomatter(data.allBalanceIncome); + dataValue[3].value=generalFun.moneyFomatter(data.allCashIncome); + allIncome = generalFun.moneyFomatter(data.allIncome); + } + } + } + sysAjax(opt); +// var zfzbecharts = echarts.init(document.getElementById('zfzb-echarts')); +// zfzboption = { +// color:['#1e95cd','#5fe98f','#fdc94d','#50c0f5'], +// title: { +// subtext: "" + allIncome, +// //subtext: "20000", +// text: '总金额', +// textStyle: { +// color: 'rgba(0,0,0,0.45)', +// fontSize: '14', +// align: 'middle', +// verticalAlign: 'middle', +// }, +// subtextStyle: { +// color: 'rgba(0,0,0,0.85)', +// fontSize: '24', +// align: 'middle', +// verticalAlign: 'middle', +// }, +// left: 'center', +// top: '105', +// +// }, +// tooltip: { +// trigger: 'item', +// formatter: "{a}
    {b}: {c} ({d}%)" +// }, +// legend: { +// selectedMode:false, +// orient: 'horizontal', +// bottom: '30', +// icon:'circle', +// data:['支付宝','微信','余额','现金'] +// }, +// series: [ +// { +// name:'支付方式占比', +// type:'pie', +// radius: ['55%', '65%'], +// center: ['50%', '40%'], +// hoverAnimation: false, +// avoidLabelOverlap: false, +// legendHoverLink: false, +// label: { +// normal: { +// show: false, +// position: 'center' +// }, +// emphasis: { +// show: false, +// textStyle: { +// fontSize: '14', +// } +// } +// }, +// labelLine: { +// normal: { +// show: false +// } +// }, +// data:dataValue +// // data:[ +// // {value: 5000, name: "支付宝"}, +// // {value: 8000, name: "微信"}, +// // {value: 2000, name: "余额"}, +// // {value: 5000, name: "现金"} +// // ] +// } +// ] +// } +// zfzbecharts.setOption(zfzboption, true); +// //自适应 +// window.onresize = function(){ +// zfzbecharts.resize(); +// }; + }, + //车流量、占用率、周转次数折线图 按停车场类型 + turnOverRateOccupyCarFlowLineCharts:function() { + var req = generalFun.getQueryParam(); + var opt = { + method: 'post', + url: dataUrl.util.queryTodayVehicleFlowOccupyRateAndTurnOver(), + + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + chartData = res.data; + //车流量 + cllEcharts(chartData); + //占用率 + //zylEcharts(chartData); + } + } + } + sysAjax(opt); + }, + //统计设备数量 + staticEqpNums:function() { + var req = generalFun.getQueryParam(); + req.eqpTypes=[-1];/**设备类型:-1 全部 1-地磁;2-视频桩;3-地锁,4-网关,5-中继器 9-PDA,10-道闸*/ + var opt = { + method: 'post', + url: dataUrl.util.statisticParkLotEqpCountByPlNos(), + async:false, + data: JSON.stringify(req), + success: function (res) { + + var ydata = ['地磁', 'PDA','道闸']; + var onLineEqpNum = [0,0,0];//在线 + var offLineEqpNum = [0,0,0];//掉线 + var faultEqpNum = [0,0,0];//故障 + + if (res.data != null) { + for (var i = 0; i < res.data.length; i++) { + //eqpType 1:地磁 9:POS机 + if (res.data[i].eqpType == 1) {//地磁 + //eqpState 设备状态:1-掉线,0-在线 + if (res.data[i].eqpState == 0) { + onLineEqpNum[0] = res.data[i].eqpNum; + } else if(res.data[i].eqpState == 1){ + offLineEqpNum[0] += res.data[i].eqpNum; + }else if(res.data[i].eqpState == 2){ + faultEqpNum[0] += res.data[i].eqpNum; + } + } else if (res.data[i].eqpType == 9) {//pos机 + if (res.data[i].eqpState == 0) { + onLineEqpNum[1] = res.data[i].eqpNum; + }else if(res.data[i].eqpState == 1){ + offLineEqpNum[1] += res.data[i].eqpNum; + }else if(res.data[i].eqpState == 2){ + faultEqpNum[1] += res.data[i].eqpNum; + } + }else if (res.data[i].eqpType == 10) {//道闸 + if (res.data[i].eqpState == 0) { + onLineEqpNum[2] = res.data[i].eqpNum; + }else if(res.data[i].eqpState == 1){ + offLineEqpNum[2] += res.data[i].eqpNum; + }else if(res.data[i].eqpState == 2){ + faultEqpNum[2] += res.data[i].eqpNum; + } + } + } + //汇总数据 + //总数 + var allGeoNum = onLineEqpNum[0]+offLineEqpNum[0]+faultEqpNum[0]; + var allPdaNum = onLineEqpNum[1]+offLineEqpNum[1]+faultEqpNum[1]; + var allDZNum = onLineEqpNum[2]+offLineEqpNum[2]+faultEqpNum[2]; + //地磁 + var onLineGeoRate = ((onLineEqpNum[0]*100)/(allGeoNum<1?1:allGeoNum)).toFixed(2)+"%"; + var offLineGeoRate = ((offLineEqpNum[0]*100)/(allGeoNum<1?1:allGeoNum)).toFixed(2)+"%"; + var faultGeoRate = ((faultEqpNum[0]*100)/(allGeoNum<1?1:allGeoNum)).toFixed(2)+"%"; + //pda + var onLinePdaRate = ((onLineEqpNum[1]*100)/(allPdaNum<1?1:allPdaNum)).toFixed(2)+"%"; + var offLinePdaRate = ((offLineEqpNum[1]*100)/(allPdaNum<1?1:allPdaNum)).toFixed(2)+"%"; + var faultPdaRate = ((faultEqpNum[1]*100)/(allPdaNum<1?1:allPdaNum)).toFixed(2)+"%"; + //道闸 + var onLineDZRate = ((onLineEqpNum[2]*100)/(allDZNum<1?1:allDZNum)).toFixed(2)+"%"; + var offLineDZRate = ((offLineEqpNum[2]*100)/(allDZNum<1?1:allDZNum)).toFixed(2)+"%"; + var faultDZRate = ((faultEqpNum[2]*100)/(allDZNum<1?1:allDZNum)).toFixed(2)+"%"; + + + if(fn.getUserId() == 10146){ + //应武警、金洋要求,市政处账号 演示时,固定设备数 + allPdaNum = 301; + var onLinePDANum = 103; + var offLinePDANum = allPdaNum - onLinePDANum; + var faultPDANum = 0; + onLinePdaRate = (onLinePDANum*100/allPdaNum).toFixed(2)+"%"; + offLinePdaRate = (offLinePDANum*100/allPdaNum).toFixed(2)+"%"; + faultPdaRate = (faultPDANum*100/allPdaNum).toFixed(2)+"%"; + + + allGeoNum = 3006; + var onLineGeoNum = 2750; + var offLineGeoNum = allGeoNum - onLineGeoNum; + var faultGeoNum = 0; + + onLineGeoRate = (onLineGeoNum*100/allGeoNum).toFixed(2)+"%"; + offLineGeoRate = (offLineGeoNum*100/allGeoNum).toFixed(2)+"%"; + faultGeoRate = (faultGeoNum*100/allGeoNum).toFixed(2)+"%"; + + allDZNum = 28; + var onLineDZNum = 26; + var offLineDZNum = allDZNum - onLineDZNum; + var faultDZNum = 0; + + onLineDZRate = (onLineDZNum*100/allDZNum).toFixed(2)+"%"; + offLineDZRate = (offLineDZNum*100/allDZNum).toFixed(2)+"%"; + faultDZRate = (faultDZNum*100/allDZNum).toFixed(2)+"%"; + + } + + + $("#allGeoNum").text(allGeoNum+" / "+onLineGeoRate); + $("#onlineGeoNum").css("width",onLineGeoRate); + $("#offLineGeoNum").css("width",offLineGeoRate); + $("#faultGeoNum").css("width",faultGeoRate); + + + + + + $("#allPdaNum").text(allPdaNum+" / "+onLinePdaRate); + $("#onlinePdaNum").css("width",onLinePdaRate); + $("#offLinePdaNum").css("width",offLinePdaRate); + $("#faultPdaNum").css("width",faultPdaRate); + + $("#allDZNum").text(allDZNum+" / "+onLineDZRate); + $("#onlineDZNum").css("width",onLineDZRate); + $("#offLineDZNum").css("width",offLineDZRate); + $("#faultDZNum").css("width",faultDZRate); + } + + } + } + sysAjax(opt); + }, + +}; +generalFun.init(); +setInterval(function () { + generalFun.init(); +},commonObj.refreshDataTime); +// -----------------------------------------支付方式 + + +// -----------------------------------------实时统计 + +//切换 车流量 占用率 周转次数 +$('#tab-btn-wrap li').on('click',function () { + var _index = $(this).index(); + if(_index==0){ + cllEcharts(chartData); + }else if(_index==1){ + zylEcharts(chartData); + }else{ + zzlEcharts(chartData); + }; + $(this).addClass('tabAction').siblings().removeClass('tabAction'); + +}); +//车流量 +function cllEcharts(data) { + var xAxisData = []; + var inseriesData = []; + var outseriesData = []; + var time = new Date().getHours()+1; + for(var i=0;i 1000) { + incomeArray[3]++; + var myIcon = new BMap.Icon("../../assets/pages/img/mmap/its-park1.png", new BMap.Size(30, 40), { + offset: new BMap.Size(10, 40), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon}); + map.addOverlay(marker[i]); + } else if (popAllnum > 500 && popAllnum <= 1000) { + incomeArray[2]++; + var myIcon2 = new BMap.Icon("../../assets/pages/img/mmap/its-park2.png", new BMap.Size(30, 40), { + offset: new BMap.Size(10, 40), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon2}); + map.addOverlay(marker[i]); + + } else if (popAllnum > 100 && popAllnum <= 500) { + incomeArray[1]++; + var myIcon3 = new BMap.Icon("../../assets/pages/img/mmap/its-park3.png", new BMap.Size(30, 40), { + offset: new BMap.Size(10, 40), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon3}); + map.addOverlay(marker[i]); + + } else if (popAllnum <= 100 || popAllnum == undefined || popAllnum == "" || popAllnum == null) { + incomeArray[0]++; + var myIcon4 = new BMap.Icon("../../assets/pages/img/mmap/its-park4.png", new BMap.Size(30, 40), { + offset: new BMap.Size(10, 40), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon4}); + map.addOverlay(marker[i]); + + } + //debugger; + marker[i].poilat = mapData[i].lat; + marker[i].poilot = mapData[i].lot; + marker[i].parkNo = mapData[i].parkNo; + marker[i].popAllnum = mapData[i].allnum; + marker[i].popltnum = mapData[i].ltnum; + marker[i].popvipnum = mapData[i].vipnum; + marker[i].popbjnum = mapData[i].bjnum; + marker[i].popalinum = mapData[i].alinum; + marker[i].popwxnum = mapData[i].wxnum; + marker[i].popxjnum = mapData[i].xjnum; + marker[i].popyynum = mapData[i].yynum; + marker[i].plname = mapData[i].plname; + + marker[i].addEventListener("mouseover", function (n) { + + var poilat = n.target.poilat; + var parkNo = n.target.parkNo; + var plname = n.target.plname; + var poilot = n.target.poilot; + var popAllnum = Number(n.target.popAllnum); + var popltnum = Number(n.target.popltnum); + var popvipnum = Number(n.target.popvipnum); + var popbjnum = Number(n.target.popbjnum); + var popalinum = Number(n.target.popalinum); + var popwxnum = Number(n.target.popwxnum); + var popxjnum = Number(n.target.popxjnum); + var popyynum = Number(n.target.popyynum); + + addInfoWindow(poilat, parkNo, plname, poilot, popAllnum, popltnum, popvipnum, popbjnum,popalinum,popwxnum,popxjnum,popyynum); + }); + marker[i].addEventListener("mouseout", function () { + closeInfoWindow(); + }) + } + removeCluster(marker); + } + + +}; + +//mapFun.init(); +//占用率统计条 +function incomeStatic() { + var t1 = (incomeArray[0] * 100 / incomeArray[4]).toFixed(2); + var t2 = (incomeArray[1] * 100 / incomeArray[4]).toFixed(2); + var t3 = (incomeArray[2] * 100 / incomeArray[4]).toFixed(2); +// var t4=(incomeArray[3]*100/incomeArray[4]).toFixed(2); + var t4 = (100 - t1 - t2 - t3).toFixed(2); + $(".incomeprofile-per-main").find('li').eq(0).css("width", t1 + '%'); + $(".incomeprofile-per-main").find('li').eq(1).css("width", t2 + '%'); + $(".incomeprofile-per-main").find('li').eq(2).css("width", t3 + '%'); + $(".incomeprofile-per-main").find('li').eq(3).css("width", t4 + '%'); + $(".incomeprofile-per-area").find('span').eq(1).html(t1 + '%'); + $(".incomeprofile-per-area").find('span').eq(3).html(t2 + '%'); + $(".incomeprofile-per-area").find('span').eq(5).html(t3 + '%'); + $(".incomeprofile-per-area").find('span').eq(7).html(t4 + '%'); +}; + +function removeCluster(marker) { + if (clear_flag) { + markerClusterer.clearMarkers(); //此步骤需要 + } + markerClusterer = new BMapLib.MarkerClusterer(map, + { + markers: marker, + styles: [{ + url: '../../assets/pages/img/mmap/parkicon_culter.png', + size: new BMap.Size(53, 52), + zIndex: 0 + }], + }); + markerClusterer.setMaxZoom(13); + clear_flag = true; +} +//close pop弹窗 +function closeInfoWindow() { + $(".pop_models").css('display', 'none'); +} +//停车场信息弹窗 +function addInfoWindow(poilat, parkNo, plname, poilot, popAllnum, popltnum, popvipnum, popbjnum,popalinum,popwxnum,popxjnum,popyynum) { + + $('.BMapLabel').empty(); + var parkNo = parkNo; + var poilat = poilat; + var poilot = poilot; + var plname = plname; + var popAllnum = popAllnum; + var popltnum = popltnum; + var popvipnum = popvipnum; + var popbjnum = popbjnum; + var popalinum = popalinum; + var popwxnum = popwxnum; + var popxjnum = popxjnum; + var popyynum = popyynum; + var point = new BMap.Point(poilat, poilot); + var myLabel = new BMap.Label('
    ' + + '
    ' + plname + '
    ' + + '
    总计:' + popAllnum + '
    ' + + '
    临停:' + popltnum + '
    ' + + '
    会员卡:' + popvipnum + '
    ' + + '
    补缴:' + popbjnum + '
    ' + + '
    支付方式:
    ' + + '
    支付宝:' + popalinum + '
    ' + + '
    微信:' + popwxnum + '
    ' + + '
    现金:' + popxjnum + '
    ' + + '
    余额:' + popyynum + '
    ' + + '
    ', { + offset: new BMap.Size(30, -85), //label的偏移量,为了让label的中心显示在点上 + position: point + }); + + myLabel.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + padding: "5px", + whiteSpace: "normal", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px", + zIndex: "1000" + } + ); + map.addOverlay(myLabel); + $('.pop_models').parent().parent().css('z-index', 99999999) +} + + +function drawPie(id, color, subtext, text, seriesData, seriesName) { + var chart = echarts.init(document.getElementById(id)); + chart.setOption( + { + color: [color, '#D7D7D7'], + title: { + subtext: text, + text: subtext, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12', + align: 'middle', + verticalAlign: 'middle', + }, + subtextStyle: { + color: '#000', + fontSize: '18', + align: 'middle', + verticalAlign: 'middle', + }, + left: 'center', + top: '50', + + }, + tooltip: { + trigger: 'item', + show: false, + formatter: "{a}
    {b}: {c} ({d}%)" + }, + + series: [ + { + name: seriesName, + hoverAnimation: false, + legendHoverLink: false, + type: 'pie', + hoverOffset: 5, + selectedOffset: 3, + radius: ['78%', '88%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data: seriesData + } + ] + } + ); +}; + + +//停车场实时收入 +function queryParkRealTimeListByPlNos(plNos) { + var result = []; + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + }; + var realTimeAjax = { + method: "post", + url: dataUrl.util.queryParkRealTimeListByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function (res) { + + if (res.code == '8888') { + var data = res.data; + + result = data; + + + } else { + console.log(res); + } + } + }; + sysAjax(realTimeAjax); + return result; +}; + +//停车场实时收入 +function queryParkRealTimeDatasByPlNos(plNos) { + var result = []; + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + }; + var realTimeAjax = { + method: "post", + url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function (res) { + + if (res.code == '8888') { + var data = res.data; + + result = data; + + + } else { + console.log(res); + } + } + }; + sysAjax(realTimeAjax); + return result; +}; + + +//得到map +function queryPlMap() { + var map = {}; + var data = fn.getParkLot(); + $.each(data, function (index, item) { + + map[item.code]= item.name; + }); + + return map; +} + + +var chart = echarts.init(document.getElementById('tytj-echarts')); +var option = { + series: [{ + type: 'liquidFill', + color: ['#63BBFF'], + radius: '60%', + data: [0.4], + outline: { + show: true, + borderDistance: 5, + itemStyle: { + color: 'none', + borderColor: '#38A2FF', + borderWidth: 5, + shadowBlur: 0, + shadowColor: 'rgba(255, 255, 255, 0)' + } + }, + backgroundStyle: { + color: '#fff' + }, + label: { + normal: { + formatter: '', + textStyle: { + fontSize: 98 + } + } + } + // label: { + // + // normal: { + // // formatter: '{a}\n{b}\nValue: {c}', + // textStyle: { + // color: 'red', + // insideColor: 'yellow', + // fontSize: 50 + // } + // } + // }, + + }] +}; +var plNos = []; +chart.setOption(option); +var fun = { + //时间处理 + datetimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 7); + } + }, + getQueryParams: function () { + var times = ($('#incomeprofile-dateTime input').val()).split(" - "); + var beginTime = times[0] + " 00:00:00"; + var endTime = times[1] + " 23:59:59"; + beginTime = new Date(beginTime.replace(new RegExp(/-/gm), "/")); + endTime = new Date(endTime.replace(new RegExp(/-/gm), "/")); + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + plNos: plNos, + beginTime: beginTime, + endTime: endTime, + sysCode: sysComm.sysCode + }; + return req; + }, + initPark: function () { + + var data = fn.getParkLot(); + mapData = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + //填充mapData + var mapItem = { + parkNo: "", + plname: "", + lat: "0", + lot: "0", + allnum: "0", + ltnum: "0", + vipnum: "0", + bjnum: "0" + }; + mapItem.parkNo = data[i].code; + mapItem.plname = data[i].name; + mapItem.lat = data[i].lonId; + mapItem.lot = data[i].latId; + mapData.push(mapItem); + } + }, + drawParkIncomeDatas: function (data) { + + var allIncomeFee = 0; + var vipIncomeFee = 0; + var backIncomeFee = 0; + var tempIncomeFee = 0; + if (data.length > 0) { + $.each(data, function (index, item) { + allIncomeFee += item.allIncomeFee; + vipIncomeFee += item.vipIncomeFee; + backIncomeFee += item.backIncomeFee; + }); + } + tempIncomeFee = allIncomeFee - vipIncomeFee - backIncomeFee; + $("#allIncome").html(fun.moneyFomatter(allIncomeFee)); + $("#tempIncome").html(fun.moneyFomatter(tempIncomeFee)); + $("#vipIncome").html(fun.moneyFomatter(vipIncomeFee)); + $("#backIncome").html(fun.moneyFomatter(backIncomeFee)); + + }, + drawParkIncomeList: function (data) { + //debugger; + var html = ''; + var i = 1; + if (data.length > 0) { + //收入相同的情况下,按中文排序 + data.sort(function (a, b) { + if (b.allIncomeFee == a.allIncomeFee) { + return (a.plName).localeCompare(b.plName, 'zh'); + } else { + return b.allIncomeFee - a.allIncomeFee; + } + }); + + $.each(data, function (index, item) { + html += '
  • ' + (index + 1) + '' + item.plName + '' + fun.moneyFomatter(item.allIncomeFee) + '
  • '; + }); + } + else { + //按中文排序 + mapData.sort(function (a, b) { + return (a.plname).localeCompare(b.plname, 'zh'); + }); + $.each(mapData, function (index, item) { + if (index < 10) { + html += '
  • ' + (index + 1) + '' + item.plname + '' + fun.moneyFomatter(0) + '
  • '; + } + }); + } + $(".incomeprofile-ranking").html(html); + }, + drawParkIncomeMap: function (data) { + //mapData初始化 + $.each(mapData, function (_index, _item) { + //开始填充mapData + _item.allnum = fun.moneyFomatter(0); + _item.ltnum = fun.moneyFomatter(0); + _item.vipnum = fun.moneyFomatter(0); + _item.bjnum = fun.moneyFomatter(0); + _item.alinum = fun.moneyFomatter(0); + _item.wxnum = fun.moneyFomatter(0); + _item.xjnum = fun.moneyFomatter(0); + _item.yynum = fun.moneyFomatter(0); + }); + if (data != null && data.length > 0) { + $.each(data, function (index, item) { + $.each(mapData, function (_index, _item) { + //开始填充mapData + if (item.plNo == _item.parkNo) { + _item.allnum = fun.moneyFomatter(item.allIncomeFee); + _item.ltnum = fun.moneyFomatter(item.allIncomeFee - item.vipIncomeFee - item.backIncomeFee); + _item.vipnum = fun.moneyFomatter(item.vipIncomeFee); + _item.bjnum = fun.moneyFomatter(item.backIncomeFee); + _item.alinum = fun.moneyFomatter(item.aliFee); + _item.wxnum = fun.moneyFomatter(item.wxFee); + _item.xjnum = fun.moneyFomatter(item.cashFee); + _item.yynum = fun.moneyFomatter(item.balanceFee); + } + }); + }); + currentLon = mapData[0].lot; + currentLat = mapData[0].lat; + + } + //加载地图 + mapFun.init(); + }, + queryIncomeStatistic: function (plNos) { + var req = fun.getQueryParams(); + + var endTime = moment().format('YYYY-MM-DD'); + var reqEndTime = moment(req.endTime.getTime()).format('YYYY-MM-DD'); + var reqStartTime = moment(req.beginTime.getTime()).format('YYYY-MM-DD'); + if (reqStartTime==endTime && reqEndTime == endTime){ + var map = queryPlMap(); + var data = queryParkRealTimeListByPlNos(plNos) + + var transDatas = []; + //debugger; + $.each(data, function (index, item) { + + var transData = { + + /**停车场编号*/ + plNo: item.plNo, + + /**停车场名称*/ + plName: map[item.plNo], + + /**订单应收金额 单位:分*/ + totalFee: item.parkIncome, + + /**订单实收金额 单位:分*/ + actFee: item.parkIncome, + + /**欠费金额 单位:分*/ + arrearageFee: item.escapeFee, + + /**支付宝费用*/ + aliFee: item.allAliIncome, + + /**微信费用*/ + wxFee: item.allWxIncome, + + /**现金费用*/ + cashFee: item.allCashIncome, + + /**余额费用*/ + balanceFee: item.allBalanceIncome, + + /**停车收入 **/ + parkIncomeFee: item.parkIncome, + + /**会员卡收入 **/ + vipIncomeFee: item.vipCardIncome, + + /**补缴收入 **/ + backIncomeFee: item.backIncome, + + /**总的收入 **/ + allIncomeFee: item.allIncome + + }; + + + transDatas.push(transData); + }) + + //停车收入概况 + fun.drawParkIncomeDatas(transDatas); + //停车排行榜 + fun.drawParkIncomeList(transDatas); + //停车收入地图数据 + fun.drawParkIncomeMap(transDatas); + + return; + + } + + var commonAjax = { + method: "post", + url: dataUrl.util.queryIncomeStatistic(), + async: false, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + if (res.data != null) { + var data = res.data; + //停车收入概况 + fun.drawParkIncomeDatas(data); + //停车排行榜 + fun.drawParkIncomeList(data); + //停车收入地图数据 + fun.drawParkIncomeMap(data); + } + + } + else { + console.log(res); + } + } + }; + sysAjax(commonAjax); + }, + drawIncomeStatisticForPayType: function (data) { + var wxFee = data.wxFee; + var cashFee = data.cashFee; + var aliFee = data.aliFee; + var actFee = data.actFee; + var arrearageFee = data.arrearageFee; + var aliRate = ((aliFee * 100) / (actFee < 1 ? 1 : actFee)).toFixed(0); + var wxRate = ((wxFee * 100) / (actFee < 1 ? 1 : actFee)).toFixed(0); + var cashRate = ((cashFee * 100) / (actFee < 1 ? 1 : actFee)).toFixed(0); + var otherRate = 100 - aliRate - wxRate - cashRate; + if (actFee < 1 || otherRate < 0) { + otherRate = (0).toFixed(0); + } + var totalFee = arrearageFee + actFee; + var arrearageRate = ((arrearageFee == null ? 0 : arrearageFee) / (totalFee < 1 ? 1 : totalFee)).toFixed(4); + var zfbData = [ + {value: Number(aliRate), name: '支付宝', selected: true}, + {value: Number(100 - aliRate), name: '总计'}, + ]; + var zfbName = '支付宝'; + drawPie('zfbMoney', '#1890FF', '支付宝', aliRate + '%', zfbData, zfbName); + + var wxData = [ + {value: Number(wxRate), name: '微信', selected: true}, + {value: Number(100 - wxRate), name: '总计'}, + ]; + var wxName = '微信'; + drawPie('wxMoney', '#5fe98f', '微信', wxRate + '%', wxData, wxName); + + var xjData = [ + {value: Number(cashRate), name: '现金', selected: true}, + {value: Number(100 - cashRate), name: '总计'}, + ]; + + var xjName = '现金'; + drawPie('xjMoney', '#FACC14', '现金', cashRate + '%', xjData, xjName); + + var qtData = [ + {value: Number(otherRate), name: '其他', selected: true}, + {value: Number(100 - otherRate), name: '总计',}, + ]; + var qtName = '其他'; + drawPie('qtMoney', '#37CBCB', '其他', otherRate + '%', qtData, qtName); + + //逃逸金额 + $("#arrearageRate").html((arrearageRate * 100).toFixed(2) + '%'); + option.series[0].data[0] = arrearageRate; + chart.setOption(option); + + }, + queryIncomeStatisticForPayType: function (plNos) { + + var req = fun.getQueryParams(); + var endTime = moment().format('YYYY-MM-DD'); + var reqEndTime = moment(req.endTime.getTime()).format('YYYY-MM-DD'); + var reqStartTime = moment(req.beginTime.getTime()).format('YYYY-MM-DD') + if (reqStartTime==endTime && reqEndTime == endTime) { + var map = queryPlMap(); + var item = queryParkRealTimeDatasByPlNos(plNos) + console.log('item:'); + console.log(JSON.stringify(item)); + var transData = { + + /**停车场编号*/ + plNo: item.plNo, + + /**停车场名称*/ + plName: map[item.plNo], + + /**订单应收金额 单位:分*/ + totalFee: item.allIncome + item.escapeFee, + + /**订单实收金额 单位:分*/ + actFee: item.allIncome, + + /**欠费金额 单位:分*/ + arrearageFee: item.escapeFee, + + /**支付宝费用*/ + aliFee: item.allAliIncome, + + /**微信费用*/ + wxFee: item.allWxIncome, + + /**现金费用*/ + cashFee: item.allCashIncome, + + /**余额费用*/ + balanceFee: item.allBalanceIncome, + + /**停车收入 **/ + parkIncomeFee: item.parkIncome, + + /**会员卡收入 **/ + vipIncomeFee: item.vipCardIncome, + + /**补缴收入 **/ + backIncomeFee: item.backIncome, + + /**总的收入 **/ + allIncomeFee: item.allIncome + + }; + + console.log('transData:'); + console.log(JSON.stringify(transData)); + //收入占比、逃逸统计 + fun.drawIncomeStatisticForPayType(transData); + + return; + + } + + + var commonAjax = { + method: "post", + url: dataUrl.util.queryIncomeStatisticForPayType(), + async: false, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + if (res.data != null) { + var data = res.data; + //收入占比、逃逸统计 + fun.drawIncomeStatisticForPayType(data); + } + + } + else { + console.log(res); + } + } + }; + sysAjax(commonAjax); + }, + moneyFomatter: function (value) { + if (value == null) { + return "0.00"; + } + else { + return (value / 100).toFixed(2); + } + }, +}; +fun.initPark(); +fun.queryIncomeStatisticForPayType(plNos); +fun.queryIncomeStatistic(plNos); + +//定位停车场位置 +documentBindFunc.on('click','.incomeprofile-ranking li',function(){ + // debugger + var plNo = $(this).find(".ITD-cursor-pointer").attr("value"); + + var lot = ""; + var lat=""; + $.each(mapData,function(index,rows){ + if(rows.parkNo == plNo){ + lat = rows.lat; + lot = rows.lot; + return ; + } + + }); + var point = new BMap.Point(lat, lot); + map.setCenter(point); + map.centerAndZoom(point, 20); +}); \ No newline at end of file diff --git a/assets/pages/scripts/home/incomeprofile_init.js b/assets/pages/scripts/home/incomeprofile_init.js new file mode 100644 index 0000000..fa36512 --- /dev/null +++ b/assets/pages/scripts/home/incomeprofile_init.js @@ -0,0 +1,709 @@ +/** + * 默认从缓存读的实时数据 + */ +//时间初始化 +/*进场时间筛选框*/ +$('#incomeprofile-dateTime input').val(moment().subtract('days', 1).format('YYYY-MM-DD')+ ' - ' + moment().subtract('days', 1).format('YYYY-MM-DD')); +$('#incomeprofile-dateTime').daterangepicker({ + // timePicker: true, + // timePickerIncrement: 20, + // minDate: moment().subtract('months', 2), + startDate: moment().subtract('days', 1), + endDate: moment().subtract('days', 1), + opens: 'left', //日期选择框的弹出位置 + // dateLimit : { + // days : 6 + // }, + locale: { + applyLabel: '确定', + cancelLabel: '取消', + customRangeLabel: '自定义', + daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'], + monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', + '七月', '八月', '九月', '十月', '十一月', '十二月'], + // format: 'MM/DD/YYYY HH:mm:ss' + }, + + ranges: { + + '昨天': [moment().subtract('days', 1), moment().subtract('days', 1)], + '最近一周': [moment().subtract('days', 6), moment().subtract('days', 0)], + // '最近一个月': [moment().subtract('months', 1), moment().subtract('days', 1)], + // '最近三个月': [moment().subtract('months', 2), moment().subtract('days', 1)], + }, + maxDate: moment().subtract('days', 0), //最大时间 + + }, + function (start, end) { + $('#incomeprofile-dateTime input').val(start.format('YYYY-MM-DD') + ' - ' + end.format('YYYY-MM-DD')); + + } +); +//地图 部分 +var map; //Map实例 +//后台传过来 +var currentLat = 118.922316; +var currentLon = 42.25953; +var clear_flag=false; +//收益-按收益程度计数 +var incomeArray=[0,0,0,0,0]; +//数据 +mapData=[ + { + parkNo:"001", + plname:"万达广场", + lat:"118.973744", + lot:"42.275538", + allnum:"3000", + ltnum:"1000", + vipnum:"1000", + bjnum:"1000" + }, + { + parkNo:"002", + plname:"万达广场西街", + lat:"118.971157", + lot:"42.28429", + allnum:"600", + ltnum:"200", + vipnum:"200", + bjnum:"200" + }, + { + parkNo:"003", + plname:"万达广场北街", + lat:"118.98668", + lot:"42.275324", + allnum:"300", + ltnum:"100", + vipnum:"100", + bjnum:"100" + }, + { + parkNo:"004", + plname:"万达广场东街", + lat:"118.944999", + lot:"42.272762", + allnum:"90", + ltnum:"10", + vipnum:"10", + bjnum:"70" + }, +]; +var mapFun={ + init:function () { + map = new BMap.Map("allmap", {enableMapClick: false}); + //设置地图中心点,当前城市 + var point = new BMap.Point(currentLat,currentLon); + //初始化地图,设置中心点坐标和地图级别。 + map.centerAndZoom(point, 13); + //启用滚轮放大缩小 + map.enableScrollWheelZoom(true); + //检测浏览器兼容 + if (typeof(Worker) === "undefined") { + if (navigator.userAgent.indexOf("MSIE 9.0") <= 0) { + alert("定制个性地图示例:IE9以下不兼容,推荐使用百度浏览器、chrome、firefox、safari、IE10"); + } + } + //添加朦层 + /*var bdary = new BMap.Boundary(); + bdary.get("中华人民共和国", function(rs){ //获取行政区域 + map.clearOverlays(); //清除地图覆盖物 + var count = rs.boundaries.length; //行政区域的点有多少个 + if (count === 0) { + alert('未能获取当前输入行政区域'); + return ; + } + var pointArray = []; + for (var i = 0; i < count; i++) { + var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 0, strokeColor: "#C5E3FF",fillColor:"#C5E3FF",fillOpacity: 0.3, }); + map.addOverlay(ply); //添加覆盖物 + } + });*/ + + + mapFun.drawMarker(mapData); + incomeStatic(); + }, + drawMarker:function (mapData) { + //清除以前的点位 + map.clearOverlays(); + //第7步:绘制点 + var marker = []; + var poilat = null;//坐标 + var poilot = null; + var parkNo = null;//编号 + var popAllnum = null;//总计 + var popltnum = null;//临停 + var popvipnum = null;//会员卡 + var popbjnum = null;//补缴 + var plname = null;//停车场名称 + incomeArray=[0,0,0,0,0]; + for (var i = 0; i < mapData.length; i++) { + poilat = mapData[i].lat; + poilot = mapData[i].lot; + parkNo = mapData[i].parkNo; + popAllnum = mapData[i].allnum; + popltnum = mapData[i].ltnum; + popvipnum = mapData[i].vipnum; + popbjnum = mapData[i].bjnum; + plname = mapData[i].plname; + var point = new BMap.Point(poilat, poilot); + incomeArray[4]++; + if (popAllnum>1000) { + incomeArray[3]++; + var myIcon = new BMap.Icon("../../assets/pages/img/mmap/its-park1.png",new BMap.Size(30, 40),{ + offset: new BMap.Size(10, 40), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon}); + map.addOverlay(marker[i]); + } else if (popAllnum>500 && popAllnum<=1000) { + incomeArray[2]++; + var myIcon2 = new BMap.Icon("../../assets/pages/img/mmap/its-park2.png", new BMap.Size(30,40),{ + offset: new BMap.Size(10, 40), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon2}); + map.addOverlay(marker[i]); + + } else if (popAllnum>100&&popAllnum<=500) { + incomeArray[1]++; + var myIcon3 = new BMap.Icon("../../assets/pages/img/mmap/its-park3.png", new BMap.Size(30,40),{ + offset: new BMap.Size(10, 40), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon3}); + map.addOverlay(marker[i]); + + }else if (popAllnum<100 ||popAllnum==undefined || popAllnum=="" ||popAllnum==null) { + incomeArray[0]++; + var myIcon4 = new BMap.Icon("../../assets/pages/img/mmap/its-park4.png", new BMap.Size(30,40),{ + offset: new BMap.Size(10, 40), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon4}); + map.addOverlay(marker[i]); + + } + marker[i].poilat = mapData[i].lat; + marker[i].poilot = mapData[i].lot; + marker[i].parkNo = mapData[i].parkNo; + marker[i].popAllnum = mapData[i].allnum; + marker[i].popltnum = mapData[i].ltnum; + marker[i].popvipnum = mapData[i].vipnum; + marker[i].popbjnum = mapData[i].bjnum; + marker[i].plname = mapData[i].plname; + + marker[i].addEventListener("mouseover", function (n) { + + var poilat = n.target.poilat; + var parkNo = n.target.parkNo; + var plname = n.target.plname; + var poilot = n.target.poilot; + var popAllnum = Number(n.target.popAllnum); + var popltnum = Number(n.target.popltnum); + var popvipnum = Number(n.target.popvipnum); + var popbjnum = Number(n.target.popbjnum); + /*var req = { + sysCode: sysComm.sysCode, + cityId: sysComm.cityId, + plNos: [parkNo] + } + + var opt = { + method: "post", + data: JSON.stringify(req), + url: dataUrl.util.queryParkFreeBerthsByPkNos(), + success: function (res, xhr, status) { + if (res.code == '8888') { + freepop = res.data[parkNo]; + addInfoWindow(parkNo, newpoiX, newpoiY,parkName, freepop, allnumpop) + } + } + } + sysAjax(opt); + */ + addInfoWindow(poilat,parkNo,plname,poilot,popAllnum,popltnum,popvipnum,popbjnum); + }); + marker[i].addEventListener("mouseout", function () { + closeInfoWindow(); + }) + } + //removeCluster(marker); + } + + + +}; + +//mapFun.init(); +//占用率统计条 +function incomeStatic(){ + var t1=(incomeArray[0]*100/incomeArray[4]).toFixed(2)+'%'; + var t2=(incomeArray[1]*100/incomeArray[4]).toFixed(2)+'%'; + var t3=(incomeArray[2]*100/incomeArray[4]).toFixed(2)+'%'; + var t4=(incomeArray[3]*100/incomeArray[4]).toFixed(2)+'%'; + $(".incomeprofile-per-main").find('li').eq(0).css("width",t1); + $(".incomeprofile-per-main").find('li').eq(1).css("width",t2); + $(".incomeprofile-per-main").find('li').eq(2).css("width",t3); + $(".incomeprofile-per-main").find('li').eq(3).css("width",t4); + $(".incomeprofile-per-area").find('span').eq(1).html(t1); + $(".incomeprofile-per-area").find('span').eq(3).html(t2); + $(".incomeprofile-per-area").find('span').eq(5).html(t3); + $(".incomeprofile-per-area").find('span').eq(7).html(t4); +}; + +function removeCluster(marker) { + if (clear_flag) { + markerClusterer.clearMarkers(); //此步骤需要 + } + markerClusterer = new BMapLib.MarkerClusterer(map, + { + markers: marker, + styles: [{ + url: '../../assets/pages/img/mmap/parkicon_culter.png', + size: new BMap.Size(68, 67), + zIndex:0 + }], + }); + markerClusterer.setMaxZoom(13); + clear_flag = true; +} +//close pop弹窗 +function closeInfoWindow() { + $(".pop_models").css('display', 'none'); +} +//停车场信息弹窗 +function addInfoWindow(poilat,parkNo,plname,poilot,popAllnum,popltnum,popvipnum,popbjnum) { + + $('.BMapLabel').empty(); + var parkNo = parkNo; + var poilat = poilat; + var poilot = poilot; + var plname = plname; + var popAllnum = popAllnum; + var popltnum = popltnum; + var popvipnum = popvipnum; + var popbjnum = popbjnum; + var point = new BMap.Point(poilat, poilot); + var myLabel = new BMap.Label('
    ' + + '
    '+plname+'
    ' + + '
    总计:'+popAllnum+'
    ' + + '
    临停:'+popltnum+'
    ' + + '
    会员卡:'+popvipnum+'
    ' + + '
    补缴:'+popbjnum+'
    ' + + '
    ', { + offset: new BMap.Size(30, -85), //label的偏移量,为了让label的中心显示在点上 + position: point + }); + + myLabel.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + padding: "5px", + whiteSpace: "normal", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px", + zIndex: "1000" + } + ); + map.addOverlay(myLabel); + $('.pop_models').parent().parent().css('z-index',99999999) +} + +//地图分割线 +//var zfbData = [ +// {value:50, name:'支付宝',selected:true}, +// {value:100-50, name:'总计'}, +//]; +//var zfbName = '支付宝'; +//drawPie('zfbMoney','#1890FF','支付宝','50%',zfbData,zfbName); +// +//var wxData = [ +// {value:20, name:'微信',selected:true}, +// {value:100-20, name:'总计'}, +//]; +//var wxName = '现金'; +//drawPie('wxMoney','#2FC25B','微信','20%',wxData,wxName); +// +//var xjData = [ +// {value:20, name:'现金',selected:true}, +// {value:100-20, name:'总计'}, +//]; +//var wxName = '现金'; +//drawPie('xjMoney','#FACC14','现金','20%',wxData,wxName); +// +//var qtData = [ +// {value:10, name:'其他',selected:true}, +// {value:100-10, name:'总计',}, +//]; +//var qtName = '其他'; +//drawPie('qtMoney','#37CBCB','其他','10%',qtData,qtName); + +function drawPie(id,color,subtext,text,seriesData,seriesName) { + var chart = echarts.init(document.getElementById(id)); + chart.setOption( + { + color:[color,'#D7D7D7'], + title:{ + subtext:text, + text:subtext, + textStyle:{ + color:'rgba(0,0,0,0.5)', + fontSize:'12', + align:'middle', + verticalAlign:'middle', + }, + subtextStyle:{ + color:'#000', + fontSize:'18', + align:'middle', + verticalAlign:'middle', + }, + left:'center', + top:'50', + + }, + tooltip: { + trigger: 'item', + show:false, + formatter: "{a}
    {b}: {c} ({d}%)" + }, + + series: [ + { + name:seriesName, + hoverAnimation:false, + legendHoverLink:false, + type:'pie', + hoverOffset:5, + selectedOffset:3, + radius: ['70%', '88%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:seriesData + } + ] + } + ); +}; + + + +var chart = echarts.init(document.getElementById('tytj-echarts')); +var option = { + series: [{ + type: 'liquidFill', + color: ['#63BBFF'], + radius: '80%', + data: [0.4], + outline: { + show: true, + borderDistance: 3, + itemStyle: { + color: 'none', + borderColor: '#38A2FF', + borderWidth: 3, + shadowBlur: 0, + shadowColor: 'rgba(255, 255, 255, 0)' + } + }, + backgroundStyle: { + color: '#fff' + }, + label: { + normal: { + formatter: '', + textStyle: { + fontSize: 98 + } + } + } + // label: { + // + // normal: { + // // formatter: '{a}\n{b}\nValue: {c}', + // textStyle: { + // color: 'red', + // insideColor: 'yellow', + // fontSize: 50 + // } + // } + // }, + + }] +}; +var plNos=[]; +chart.setOption(option); +var fun={ + //时间处理 + datetimeFormatter: function(value, row, index) { + if(value == null) { + return ""; + } else { + return DateUtils.long2String(value, 7); + } + }, + getQueryParams:function(){ + var times=($('#incomeprofile-dateTime input').val()).split(" - "); + var beginTime = times[0]+" 00:00:00"; + var endTime = times[1]+" 23:59:59"; + beginTime = new Date(beginTime.replace(new RegExp(/-/gm) ,"/")); + endTime = new Date(endTime.replace(new RegExp(/-/gm) ,"/")); + var req={ + baseRequest :{ + pageNum: 1, + pageSize: 0 + }, + plNos:plNos, + beginTime: beginTime, + endTime: endTime, + sysCode:sysComm.sysCode + }; + return req; + }, + initPark:function(){ + + var data = fn.getParkLot(); + mapData=[]; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + //填充mapData + var mapItem={ + parkNo:"", + plname:"", + lat:"0", + lot:"0", + allnum:"0", + ltnum:"0", + vipnum:"0", + bjnum:"0" + }; + mapItem.parkNo=data[i].code; + mapItem.plname=data[i].name; + mapItem.lat=data[i].lonId; + mapItem.lot=data[i].latId; + mapData.push(mapItem); + } + }, + drawParkIncomeDatas:function(data){ + var allIncomeFee = 0; + var vipIncomeFee = 0; + var backIncomeFee = 0; + var tempIncomeFee = 0; + if(data.length>0){ + $.each(data, function(index,item) { + allIncomeFee+=item.allIncome; + vipIncomeFee+=item.vipCardIncome; + backIncomeFee+=item.backIncome; + tempIncomeFee+=item.parkIncome; + }); + } + //tempIncomeFee = allIncomeFee-vipIncomeFee-tempIncomeFee; + $("#allIncome").html(fun.moneyFomatter(allIncomeFee)); + $("#tempIncome").html(fun.moneyFomatter(tempIncomeFee)); + $("#vipIncome").html(fun.moneyFomatter(vipIncomeFee)); + $("#backIncome").html(fun.moneyFomatter(backIncomeFee)); + + }, + drawParkIncomeList:function(data){ + var html=''; + var i=1; + if(data.length>0){ + + $.each(data, function(index,item) { + $.each(mapData, function(_index,_item) { + if(item.plNo==_item.parkNo){ + item.plName=_item.plname; + } + }); + }); + //收入相同的情况下,按中文排序 + data.sort(function(a,b){ + if(b.allIncome == a.allIncome){ + return(a.plName).localeCompare(b.plName,'zh'); + }else{ + return b.allIncome - a.allIncome; + } + }); + $.each(data, function(index,item) { + html+='
  • '+(index+1)+''+item.plName+''+fun.moneyFomatter(item.allIncome)+'
  • '; + }); + } + else{ + //按中文排序 + mapData.sort(function(a,b){ + return(a.plname).localeCompare(b.plname,'zh'); + }); + $.each(mapData, function(index,item) { + if(index<10){ + html+='
  • '+(index+1)+''+item.plname+''+fun.moneyFomatter(0)+'
  • '; + } + }); + } + $(".incomeprofile-ranking").html(html); + }, + drawParkIncomeMap:function(data){ + //mapData初始化 + $.each(mapData, function(_index,_item) { + //开始填充mapData + _item.allnum=fun.moneyFomatter(0); + _item.ltnum=fun.moneyFomatter(0); + _item.vipnum=fun.moneyFomatter(0); + _item.bjnum=fun.moneyFomatter(0); + }); + if (data != null && data.length>0) { + $.each(data, function(index,item) { + $.each(mapData, function(_index,_item) { + //开始填充mapData + if(item.plNo==_item.parkNo){ + _item.allnum=fun.moneyFomatter(item.allIncome); +// _item.ltnum=fun.moneyFomatter(item.allIncomeFee-item.vipIncomeFee-item.backIncomeFee); + _item.ltnum=fun.moneyFomatter(item.parkIncome); + _item.vipnum=fun.moneyFomatter(item.vipCardIncome); + _item.bjnum=fun.moneyFomatter(item.backIncome); + } + }); + }); + currentLon=mapData[0].lot; + currentLat=mapData[0].lat; + + } + //加载地图 + mapFun.init(); + }, + queryIncomeStatistic:function(plNos){ + var req = fun.getQueryParams(); + var commonAjax = { + method: "post", + url: dataUrl.util.queryParkRealTimeListByPlNos(), + async:false, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + if(res.data!=null){ + var data = res.data; + //停车收入概况 + fun.drawParkIncomeDatas(data); + //停车排行榜 + fun.drawParkIncomeList(data); + //停车收入地图数据 + fun.drawParkIncomeMap(data); + } + + } + else { + console.log(res); + } + } + }; + sysAjax(commonAjax); + }, + drawIncomeStatisticForPayType:function(data){ + var aliFee = data.parkAliIncome; + var wxFee = data.parkWxIncome; + var cashFee = data.parkCashIncome; + var aliFee = data.parkBalanceIncome; + var actFee = data.parkIncome; + var arrearageFee = data.escapeFee; + var aliRate = ((aliFee*100)/(actFee<1?1:actFee)).toFixed(2); + var wxRate = ((wxFee*100)/(actFee<1?1:actFee)).toFixed(2); + var cashRate = ((cashFee*100)/(actFee<1?1:actFee)).toFixed(2); + var otherRate = 100-aliRate-wxRate-cashRate; + if(actFee<1){ + otherRate=(0).toFixed(2); + } + var arrearageRate = ((arrearageFee==null?0:arrearageFee)/(actFee<1?1:actFee)).toFixed(4); + var zfbData = [ + {value:aliRate, name:'支付宝',selected:true}, + {value:100-aliRate, name:'总计'}, + ]; + var zfbName = '支付宝'; + drawPie('zfbMoney','#1890FF','支付宝',aliRate+'%',zfbData,zfbName); + + var wxData = [ + {value:wxRate, name:'微信',selected:true}, + {value:100-wxRate, name:'总计'}, + ]; + var wxName = '现金'; + drawPie('wxMoney','#5fe98f','微信',wxRate+'%',wxData,wxName); + + var xjData = [ + {value:cashRate, name:'现金',selected:true}, + {value:100-cashRate, name:'总计'}, + ]; + var wxName = '现金'; + drawPie('xjMoney','#FACC14','现金',cashRate+'%',wxData,wxName); + + var qtData = [ + {value:otherRate, name:'其他',selected:true}, + {value:100-otherRate, name:'总计',}, + ]; + var qtName = '其他'; + drawPie('qtMoney','#37CBCB','其他',otherRate+'%',qtData,qtName); + + //逃逸金额 + $("#arrearageRate").html((arrearageRate*100).toFixed(2)+'%'); + option.series[0].data[0] = arrearageRate; + chart.setOption(option); + + }, + queryIncomeStatisticForPayType:function(plNos){ + var req = fun.getQueryParams(); + var commonAjax = { + method: "post", + url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + async:false, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + if(res.data!=null){ + var data = res.data; + //收入占比、逃逸统计 + fun.drawIncomeStatisticForPayType(data); + } + + } + else { + console.log(res); + } + } + }; + sysAjax(commonAjax); + }, + moneyFomatter:function(value){ + if(value==null){ + return "0.00"; + } + else{ + return (value/100).toFixed(2); + } + }, +}; +fun.initPark(); +fun.queryIncomeStatisticForPayType(plNos); +fun.queryIncomeStatistic(plNos); diff --git a/assets/pages/scripts/home/index.js b/assets/pages/scripts/home/index.js new file mode 100644 index 0000000..37e9d85 --- /dev/null +++ b/assets/pages/scripts/home/index.js @@ -0,0 +1,2111 @@ +(function () { + var COUNT_FRAMERATE, COUNT_MS_PER_FRAME, DIGIT_FORMAT, DIGIT_HTML, DIGIT_SPEEDBOOST, DURATION, FORMAT_MARK_HTML, + FORMAT_PARSER, FRAMERATE, FRAMES_PER_VALUE, MS_PER_FRAME, MutationObserver, Odometer, RIBBON_HTML, + TRANSITION_END_EVENTS, TRANSITION_SUPPORT, VALUE_HTML, addClass, createFromHTML, fractionalPart, now, + removeClass, requestAnimationFrame, round, transitionCheckStyles, trigger, truncate, wrapJQuery, _jQueryWrapped, + _old, _ref, _ref1, + __slice = [].slice; + + VALUE_HTML = ''; + + RIBBON_HTML = '' + VALUE_HTML + ''; + + DIGIT_HTML = '8' + RIBBON_HTML + ''; + + FORMAT_MARK_HTML = ''; + + DIGIT_FORMAT = '(,ddd).dd'; + + FORMAT_PARSER = /^\(?([^)]*)\)?(?:(.)(d+))?$/; + + FRAMERATE = 30; + + DURATION = 2000; + + COUNT_FRAMERATE = 20; + + FRAMES_PER_VALUE = 2; + + DIGIT_SPEEDBOOST = .5; + + MS_PER_FRAME = 1000 / FRAMERATE; + + COUNT_MS_PER_FRAME = 1000 / COUNT_FRAMERATE; + + TRANSITION_END_EVENTS = 'transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd'; + + transitionCheckStyles = document.createElement('div').style; + + TRANSITION_SUPPORT = (transitionCheckStyles.transition != null) || (transitionCheckStyles.webkitTransition != null) || (transitionCheckStyles.mozTransition != null) || (transitionCheckStyles.oTransition != null); + + requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame; + + MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; + + createFromHTML = function (html) { + var el; + el = document.createElement('div'); + el.innerHTML = html; + return el.children[0]; + }; + + removeClass = function (el, name) { + return el.className = el.className.replace(new RegExp("(^| )" + (name.split(' ').join('|')) + "( |$)", 'gi'), ' '); + }; + + addClass = function (el, name) { + removeClass(el, name); + return el.className += " " + name; + }; + + trigger = function (el, name) { + var evt; + if (document.createEvent != null) { + evt = document.createEvent('HTMLEvents'); + evt.initEvent(name, true, true); + return el.dispatchEvent(evt); + } + }; + + now = function () { + var _ref, _ref1; + return (_ref = (_ref1 = window.performance) != null ? typeof _ref1.now === "function" ? _ref1.now() : void 0 : void 0) != null ? _ref : +(new Date); + }; + + round = function (val, precision) { + if (precision == null) { + precision = 0; + } + if (!precision) { + return Math.round(val); + } + val *= Math.pow(10, precision); + val += 0.5; + val = Math.floor(val); + return val /= Math.pow(10, precision); + }; + + truncate = function (val) { + if (val < 0) { + return Math.ceil(val); + } else { + return Math.floor(val); + } + }; + + fractionalPart = function (val) { + return val - round(val); + }; + + _jQueryWrapped = false; + + (wrapJQuery = function () { + var property, _i, _len, _ref, _results; + if (_jQueryWrapped) { + return; + } + if (window.jQuery != null) { + _jQueryWrapped = true; + _ref = ['html', 'text']; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + property = _ref[_i]; + _results.push((function (property) { + var old; + old = window.jQuery.fn[property]; + return window.jQuery.fn[property] = function (val) { + var _ref1; + if ((val == null) || (((_ref1 = this[0]) != null ? _ref1.odometer : void 0) == null)) { + return old.apply(this, arguments); + } + return this[0].odometer.update(val); + }; + })(property)); + } + return _results; + } + })(); + + setTimeout(wrapJQuery, 0); + + Odometer = (function () { + function Odometer(options) { + var e, k, property, v, _base, _i, _len, _ref, _ref1, _ref2, + _this = this; + this.options = options; + this.el = this.options.el; + if (this.el.odometer != null) { + return this.el.odometer; + } + this.el.odometer = this; + _ref = Odometer.options; + for (k in _ref) { + v = _ref[k]; + if (this.options[k] == null) { + this.options[k] = v; + } + } + if ((_base = this.options).duration == null) { + _base.duration = DURATION; + } + this.MAX_VALUES = ((this.options.duration / MS_PER_FRAME) / FRAMES_PER_VALUE) | 0; + this.resetFormat(); + this.value = this.cleanValue((_ref1 = this.options.value) != null ? _ref1 : ''); + this.renderInside(); + this.render(); + try { + _ref2 = ['innerHTML', 'innerText', 'textContent']; + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + property = _ref2[_i]; + if (this.el[property] != null) { + (function (property) { + return Object.defineProperty(_this.el, property, { + get: function () { + var _ref3; + if (property === 'innerHTML') { + return _this.inside.outerHTML; + } else { + return (_ref3 = _this.inside.innerText) != null ? _ref3 : _this.inside.textContent; + } + }, + set: function (val) { + return _this.update(val); + } + }); + })(property); + } + } + } catch (_error) { + e = _error; + this.watchForMutations(); + } + this; + } + + Odometer.prototype.renderInside = function () { + this.inside = document.createElement('div'); + this.inside.className = 'odometer-inside'; + this.el.innerHTML = ''; + return this.el.appendChild(this.inside); + }; + + Odometer.prototype.watchForMutations = function () { + var e, + _this = this; + if (MutationObserver == null) { + return; + } + try { + if (this.observer == null) { + this.observer = new MutationObserver(function (mutations) { + var newVal; + newVal = _this.el.innerText; + _this.renderInside(); + _this.render(_this.value); + return _this.update(newVal); + }); + } + this.watchMutations = true; + return this.startWatchingMutations(); + } catch (_error) { + e = _error; + } + }; + + Odometer.prototype.startWatchingMutations = function () { + if (this.watchMutations) { + return this.observer.observe(this.el, { + childList: true + }); + } + }; + + Odometer.prototype.stopWatchingMutations = function () { + var _ref; + return (_ref = this.observer) != null ? _ref.disconnect() : void 0; + }; + + Odometer.prototype.cleanValue = function (val) { + var _ref; + if (typeof val === 'string') { + val = val.replace((_ref = this.format.radix) != null ? _ref : '.', ''); + val = val.replace(/[.,]/g, ''); + val = val.replace('', '.'); + val = parseFloat(val, 10) || 0; + } + return round(val, this.format.precision); + }; + + Odometer.prototype.bindTransitionEnd = function () { + var event, renderEnqueued, _i, _len, _ref, _results, + _this = this; + if (this.transitionEndBound) { + return; + } + this.transitionEndBound = true; + renderEnqueued = false; + _ref = TRANSITION_END_EVENTS.split(' '); + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + event = _ref[_i]; + _results.push(this.el.addEventListener(event, function () { + if (renderEnqueued) { + return true; + } + renderEnqueued = true; + setTimeout(function () { + _this.render(); + renderEnqueued = false; + return trigger(_this.el, 'odometerdone'); + }, 0); + return true; + }, false)); + } + return _results; + }; + + Odometer.prototype.resetFormat = function () { + var format, fractional, parsed, precision, radix, repeating, _ref, _ref1; + format = (_ref = this.options.format) != null ? _ref : DIGIT_FORMAT; + format || (format = 'd'); + parsed = FORMAT_PARSER.exec(format); + if (!parsed) { + throw new Error("Odometer: Unparsable digit format"); + } + _ref1 = parsed.slice(1, 4), repeating = _ref1[0], radix = _ref1[1], fractional = _ref1[2]; + precision = (fractional != null ? fractional.length : void 0) || 0; + return this.format = { + repeating: repeating, + radix: radix, + precision: precision + }; + }; + + Odometer.prototype.render = function (value) { + var classes, cls, match, newClasses, theme, _i, _len; + if (value == null) { + value = this.value; + } + this.stopWatchingMutations(); + this.resetFormat(); + this.inside.innerHTML = ''; + theme = this.options.theme; + classes = this.el.className.split(' '); + newClasses = []; + for (_i = 0, _len = classes.length; _i < _len; _i++) { + cls = classes[_i]; + if (!cls.length) { + continue; + } + if (match = /^odometer-theme-(.+)$/.exec(cls)) { + theme = match[1]; + continue; + } + if (/^odometer(-|$)/.test(cls)) { + continue; + } + newClasses.push(cls); + } + newClasses.push('odometer'); + if (!TRANSITION_SUPPORT) { + newClasses.push('odometer-no-transitions'); + } + if (theme) { + newClasses.push("odometer-theme-" + theme); + } else { + newClasses.push("odometer-auto-theme"); + } + this.el.className = newClasses.join(' '); + this.ribbons = {}; + this.formatDigits(value); + return this.startWatchingMutations(); + }; + + Odometer.prototype.formatDigits = function (value) { + var digit, valueDigit, valueString, wholePart, _i, _j, _len, _len1, _ref, _ref1; + this.digits = []; + if (this.options.formatFunction) { + valueString = this.options.formatFunction(value); + _ref = valueString.split('').reverse(); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + valueDigit = _ref[_i]; + if (valueDigit.match(/0-9/)) { + digit = this.renderDigit(); + digit.querySelector('.odometer-value').innerHTML = valueDigit; + this.digits.push(digit); + this.insertDigit(digit); + } else { + this.addSpacer(valueDigit); + } + } + } else { + wholePart = !this.format.precision || !fractionalPart(value) || false; + _ref1 = value.toString().split('').reverse(); + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + digit = _ref1[_j]; + if (digit === '.') { + wholePart = true; + } + this.addDigit(digit, wholePart); + } + } + }; + + Odometer.prototype.update = function (newValue) { + var diff, + _this = this; + newValue = this.cleanValue(newValue); + if (!(diff = newValue - this.value)) { + return; + } + removeClass(this.el, 'odometer-animating-up odometer-animating-down odometer-animating'); + if (diff > 0) { + addClass(this.el, 'odometer-animating-up'); + } else { + addClass(this.el, 'odometer-animating-down'); + } + this.stopWatchingMutations(); + this.animate(newValue); + this.startWatchingMutations(); + setTimeout(function () { + _this.el.offsetHeight; + return addClass(_this.el, 'odometer-animating'); + }, 0); + return this.value = newValue; + }; + + Odometer.prototype.renderDigit = function () { + return createFromHTML(DIGIT_HTML); + }; + + Odometer.prototype.insertDigit = function (digit, before) { + if (before != null) { + return this.inside.insertBefore(digit, before); + } else if (!this.inside.children.length) { + return this.inside.appendChild(digit); + } else { + return this.inside.insertBefore(digit, this.inside.children[0]); + } + }; + + Odometer.prototype.addSpacer = function (chr, before, extraClasses) { + var spacer; + spacer = createFromHTML(FORMAT_MARK_HTML); + spacer.innerHTML = chr; + if (extraClasses) { + addClass(spacer, extraClasses); + } + return this.insertDigit(spacer, before); + }; + + Odometer.prototype.addDigit = function (value, repeating) { + var chr, digit, resetted, _ref; + if (repeating == null) { + repeating = true; + } + if (value === '-') { + return this.addSpacer(value, null, 'odometer-negation-mark'); + } + if (value === '.') { + return this.addSpacer((_ref = this.format.radix) != null ? _ref : '.', null, 'odometer-radix-mark'); + } + if (repeating) { + resetted = false; + while (true) { + if (!this.format.repeating.length) { + if (resetted) { + throw new Error("Bad odometer format without digits"); + } + this.resetFormat(); + resetted = true; + } + chr = this.format.repeating[this.format.repeating.length - 1]; + this.format.repeating = this.format.repeating.substring(0, this.format.repeating.length - 1); + if (chr === 'd') { + break; + } + this.addSpacer(chr); + } + } + digit = this.renderDigit(); + digit.querySelector('.odometer-value').innerHTML = value; + this.digits.push(digit); + return this.insertDigit(digit); + }; + + Odometer.prototype.animate = function (newValue) { + if (!TRANSITION_SUPPORT || this.options.animation === 'count') { + return this.animateCount(newValue); + } else { + return this.animateSlide(newValue); + } + }; + + Odometer.prototype.animateCount = function (newValue) { + var cur, diff, last, start, tick, + _this = this; + if (!(diff = +newValue - this.value)) { + return; + } + start = last = now(); + cur = this.value; + return (tick = function () { + var delta, dist, fraction; + if ((now() - start) > _this.options.duration) { + _this.value = newValue; + _this.render(); + trigger(_this.el, 'odometerdone'); + return; + } + delta = now() - last; + if (delta > COUNT_MS_PER_FRAME) { + last = now(); + fraction = delta / _this.options.duration; + dist = diff * fraction; + cur += dist; + _this.render(Math.round(cur)); + } + if (requestAnimationFrame != null) { + return requestAnimationFrame(tick); + } else { + return setTimeout(tick, COUNT_MS_PER_FRAME); + } + })(); + }; + + Odometer.prototype.getDigitCount = function () { + var i, max, value, values, _i, _len; + values = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + for (i = _i = 0, _len = values.length; _i < _len; i = ++_i) { + value = values[i]; + values[i] = Math.abs(value); + } + max = Math.max.apply(Math, values); + return Math.ceil(Math.log(max + 1) / Math.log(10)); + }; + + Odometer.prototype.getFractionalDigitCount = function () { + var i, parser, parts, value, values, _i, _len; + values = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + parser = /^\-?\d*\.(\d*?)0*$/; + for (i = _i = 0, _len = values.length; _i < _len; i = ++_i) { + value = values[i]; + values[i] = value.toString(); + parts = parser.exec(values[i]); + if (parts == null) { + values[i] = 0; + } else { + values[i] = parts[1].length; + } + } + return Math.max.apply(Math, values); + }; + + Odometer.prototype.resetDigits = function () { + this.digits = []; + this.ribbons = []; + this.inside.innerHTML = ''; + return this.resetFormat(); + }; + + Odometer.prototype.animateSlide = function (newValue) { + var boosted, cur, diff, digitCount, digits, dist, end, fractionalCount, frame, frames, i, incr, j, mark, + numEl, oldValue, start, _base, _i, _j, _k, _l, _len, _len1, _len2, _m, _ref, _results; + oldValue = this.value; + fractionalCount = this.getFractionalDigitCount(oldValue, newValue); + if (fractionalCount) { + newValue = newValue * Math.pow(10, fractionalCount); + oldValue = oldValue * Math.pow(10, fractionalCount); + } + if (!(diff = newValue - oldValue)) { + return; + } + this.bindTransitionEnd(); + digitCount = this.getDigitCount(oldValue, newValue); + digits = []; + boosted = 0; + for (i = _i = 0; 0 <= digitCount ? _i < digitCount : _i > digitCount; i = 0 <= digitCount ? ++_i : --_i) { + start = truncate(oldValue / Math.pow(10, digitCount - i - 1)); + end = truncate(newValue / Math.pow(10, digitCount - i - 1)); + dist = end - start; + if (Math.abs(dist) > this.MAX_VALUES) { + frames = []; + incr = dist / (this.MAX_VALUES + this.MAX_VALUES * boosted * DIGIT_SPEEDBOOST); + cur = start; + while ((dist > 0 && cur < end) || (dist < 0 && cur > end)) { + frames.push(Math.round(cur)); + cur += incr; + } + if (frames[frames.length - 1] !== end) { + frames.push(end); + } + boosted++; + } else { + frames = (function () { + _results = []; + for (var _j = start; start <= end ? _j <= end : _j >= end; start <= end ? _j++ : _j--) { + _results.push(_j); + } + return _results; + }).apply(this); + } + for (i = _k = 0, _len = frames.length; _k < _len; i = ++_k) { + frame = frames[i]; + frames[i] = Math.abs(frame % 10); + } + digits.push(frames); + } + this.resetDigits(); + _ref = digits.reverse(); + for (i = _l = 0, _len1 = _ref.length; _l < _len1; i = ++_l) { + frames = _ref[i]; + if (!this.digits[i]) { + this.addDigit(' ', i >= fractionalCount); + } + if ((_base = this.ribbons)[i] == null) { + _base[i] = this.digits[i].querySelector('.odometer-ribbon-inner'); + } + this.ribbons[i].innerHTML = ''; + if (diff < 0) { + frames = frames.reverse(); + } + for (j = _m = 0, _len2 = frames.length; _m < _len2; j = ++_m) { + frame = frames[j]; + numEl = document.createElement('div'); + numEl.className = 'odometer-value'; + numEl.innerHTML = frame; + this.ribbons[i].appendChild(numEl); + if (j === frames.length - 1) { + addClass(numEl, 'odometer-last-value'); + } + if (j === 0) { + addClass(numEl, 'odometer-first-value'); + } + } + } + if (start < 0) { + this.addDigit('-'); + } + mark = this.inside.querySelector('.odometer-radix-mark'); + if (mark != null) { + mark.parent.removeChild(mark); + } + if (fractionalCount) { + return this.addSpacer(this.format.radix, this.digits[fractionalCount - 1], 'odometer-radix-mark'); + } + }; + + return Odometer; + + })(); + + Odometer.options = (_ref = window.odometerOptions) != null ? _ref : {}; + + setTimeout(function () { + var k, v, _base, _ref1, _results; + if (window.odometerOptions) { + _ref1 = window.odometerOptions; + _results = []; + for (k in _ref1) { + v = _ref1[k]; + _results.push((_base = Odometer.options)[k] != null ? (_base = Odometer.options)[k] : _base[k] = v); + } + return _results; + } + }, 0); + + Odometer.init = function () { + var el, elements, _i, _len, _ref1, _results; + if (document.querySelectorAll == null) { + return; + } + elements = document.querySelectorAll(Odometer.options.selector || '.odometer'); + _results = []; + for (_i = 0, _len = elements.length; _i < _len; _i++) { + el = elements[_i]; + _results.push(el.odometer = new Odometer({ + el: el, + value: (_ref1 = el.innerText) != null ? _ref1 : el.textContent + })); + } + return _results; + }; + + if ((((_ref1 = document.documentElement) != null ? _ref1.doScroll : void 0) != null) && (document.createEventObject != null)) { + _old = document.onreadystatechange; + document.onreadystatechange = function () { + if (document.readyState === 'complete' && Odometer.options.auto !== false) { + Odometer.init(); + } + return _old != null ? _old.apply(this, arguments) : void 0; + }; + } else { + document.addEventListener('DOMContentLoaded', function () { + if (Odometer.options.auto !== false) { + return Odometer.init(); + } + }, false); + } + + if (typeof define === 'function' && define.amd) { + define([], function () { + return Odometer; + }); + } else if (typeof exports !== "undefined" && exports !== null) { + module.exports = Odometer; + } else { + window.Odometer = Odometer; + } + +}).call(this); +//获取停车场 +//存放停车场编号的全局变量 +var plNos = []; +var plNos1 = []; +var plNos2 = []; +var parkData = []; + +var specialAccount = ['10122','10014','10050']; +//specialAccount = []; +(function () { + + var fun = { + //停车场下拉框 + initSelect: function () { + // window.odometerOptions = { + // format: '(ddd).dd' + // }; + // setTimeout(function(){ + // $('#parkNum').html(49); + // }, 1000); + + var data = []; + + debugger + //赤峰账号特殊处理 + if((specialAccount.indexOf(fn.getUserId()) >= 0) && fn.getOrgId() ==10003){ + data = fn.getParkLot(3); + }else{ + data = fn.getParkLot(); + } + + + if(fn.getUserId()) + $("#parktype").empty(); + var html = ''; + + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + var a = {plNo: data[i].code, plName: data[i].name, allIncome: 0}; + parkData.push(a); + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parktype").append(html); + $('#parktype').selectpicker('render'); + + var tempPlno = getQueryString('plNo'); + if (undefined != tempPlno && null != tempPlno && tempPlno.length > 1) { + plNos = [tempPlno]; + $('#parktype').selectpicker('val', JSON.stringify(plNos)); + } + + //赤峰账号特殊处理 + if((specialAccount.indexOf(fn.getUserId()) >= 0) && fn.getOrgId() ==10003){ + data = fn.getParkLotByPlType(1,3); + }else{ + data = fn.getParkLotByPlType(1); + } + //获取路侧的停车场 + //data = fn.getParkLotByPlType(1); + for (var i = 0; i < data.length; i++) { + plNos1.push(data[i].code); + } + if (plNos1.length < 1) { + plNos1.push(-1); + } + + //赤峰账号特殊处理 + if((specialAccount.indexOf(fn.getUserId()) >= 0) && fn.getOrgId() ==10003){ + data = fn.getParkLotByPlType(2,3); + }else{ + data = fn.getParkLotByPlType(2); + } + //获取封闭的停车场 + //data = fn.getParkLotByPlType(2); + for (var i = 0; i < data.length; i++) { + plNos2.push(data[i].code); + } + if (plNos2.length < 1) { + plNos2.push(-1); + } + userName(); + indexDataRefresh(plNos, plNos1, plNos2); + +// timer = setInterval(function(){indexDataRefresh(plNos,plNos1,plNos2);;},60*1000); + }, + + }; + + fun.initSelect(); + if (fn.getOpImgPath() != '' && fn.getOpImgPath() != undefined && fn.getOpImgPath() != null && fn.getOpImgPath() != "null") { + + $('#welcome-pic').css('background-image', "url(" + fn.getOpImgPath() + ")"); + } else { + $('#welcome-pic').css('background-image', "url(../../assets/pages/img/user-pic.png)"); + } + + setInterval(function () { + // incomeecharts.clear(); + plNos = []; + plNos1 = []; + plNos2 = []; + fun.initSelect(); + }, commonObj.refreshDataTime) + +})(); + + +//获取获取和时间状态 +function userName() { + $('#welcome-msg').text(fn.getUserName() + ' , ' + welcome()) +}; + +function welcome() { + var date = new Date(); + var hour = date.getHours(); + if (hour < 6) { + return "凌晨好!" + } else if (hour < 9) { + return "早上好!" + } else if (hour < 12) { + return "上午好!" + } else if (hour < 14) { + return "中午好!" + } else if (hour < 18) { + return "下午好!" + } else if (hour < 22) { + return "晚上好!" + } else { + return "夜里好!" + } +} + +//获取请求URL中的参数 +function getQueryString(name) { + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); + var r = window.location.search.substr(1).match(reg); + if (r != null) return unescape(r[2]); + return null; +} + +//首页数据刷新 +function indexDataRefresh(plNos, plNos1, plNos2) { + if (undefined == plNos || null == plNos || plNos.length <= 0) { + var selectData = $("#parktype").val(); + //如果plNos不传,从下拉框中获取. + plNos = JSON.parse(selectData); + } + //获取停车场数量 + getParkNums(plNos, plNos1, plNos2); + //获取泊位数量以及占用率-总的 + getBerthNumAndOccupyRate(plNos, 0); + //获取泊位数量以及占用率-路侧 + getBerthNumAndOccupyRate(plNos1, 1); + //获取泊位数量以及占用率-封闭 + getBerthNumAndOccupyRate(plNos2, 2); +// //获取今日总收入-总的 +// getTodayInCome(plNos,0); +// //获取今日总收入-路侧 +// getTodayInCome(plNos1,1); +// //获取今日总收入-封闭 +// getTodayInCome(plNos2,2); + //获取收费员人数-总的 + getChargerNumFromDuty(plNos, 0); + //获取收费员人数-路侧 + getChargerNumFromDuty(plNos1, 1); + //获取收费员人数-封闭 + getChargerNumFromDuty(plNos2, 2); + //设备数量-总的 +// getDeviceNums(null,0);//只查路侧 + //设备数量-路侧 +// getDeviceNums(null,1); + //设备数量-封闭 +// getDeviceNums([-1],2); + //查询停车场实时运行情况数据-收入概况&占用率概况 + queryParkRealTimeDatasByPlNos(plNos); + //查询近七日收入 + incomeTrendCharts(plNos, 7); + //查询停车场收入 + // queryParkIncomeDatas(plNos); + +} + +//获取停车场数量 +function getParkNums(plNos, plNos1, plNos2) { + // $("#parkNum").html(plNos.length); + setTimeout(function () { + $('#parkNum').html(plNos.length); + }, 10); + $("#parkNumLC").html(plNos1.length); + $("#parkNumFB").html(plNos2.length); + if (plNos.indexOf(-1) == 0) { + $("#parkNum").html(0); + } + if (plNos1.indexOf(-1) == 0) { + $("#parkNumLC").html(0); + } + if (plNos2.indexOf(-1) == 0) { + $("#parkNumFB").html(0); + } +} + +function moneyFomatter(value) { + if (value == null) { + return "0.00"; + } else { + return (value / 100).toFixed(2); + } +} + +//今日收入-按路侧、封闭进行区分 +function getTodayInCome(plNos, plType) { + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + }; + var inComeAjax = { + method: "post", + url: dataUrl.util.queryChargerIncomeByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + if (plType == 0) { + $("#income").html(moneyFomatter(data.allIncome)); + } else if (plType == 1) { + $("#incomeLC").html(moneyFomatter(data.allIncome)); + } else if (plType == 2) { + $("#incomeFB").html(moneyFomatter(data.allIncome)); + } + + + } else { + console.log(res); + } + } + }; + sysAjax(inComeAjax); +}; + +//收费员人数-按路侧、封闭进行区分 +function getChargerNum(plNos, plType) { + var req = { + sysCode: sysComm.sysCode, + chargerType: 0,//收费员 + plNos: plNos, + }; + var inComeAjax = { + method: "post", + url: dataUrl.util.queryEmployeeNumByPlNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + if (plType == 0) { + setTimeout(function () { + $("#chargerNum").html(data); + }, 10); + } else if (plType == 1) { + $("#chargerNumLC").html(data); + } else if (plType == 2) { + $("#chargerNumFB").html(data); + } + + + } else { + console.log(res); + } + } + }; + sysAjax(inComeAjax); +}; + +//收费员人数-按路侧、封闭进行区分(以排班为准) +function getChargerNumFromDuty(plNos, plType) { + var chargers = fn.getChargers(plNos); + //应武警要求,市政账号 路侧车场加一个收费员 + if (fn.getUserId() == '10146') { + if (plType == 0) { + setTimeout(function () { + $("#chargerNum").html(chargers.length + 1); + }, 10); + } else if (plType == 1) { + $("#chargerNumLC").html(chargers.length + 1); + } else if (plType == 2) { + $("#chargerNumFB").html(chargers.length); + } + } else { + if (plType == 0) { + setTimeout(function () { + $("#chargerNum").html(chargers.length); + }, 10); + } else if (plType == 1) { + $("#chargerNumLC").html(chargers.length); + } else if (plType == 2) { + $("#chargerNumFB").html(chargers.length); + } + } +}; + +//获取泊位数量以及占用率-按路侧、封闭进行区分 +function getBerthNumAndOccupyRate(plNos, plType) { + + + if (fn.getUserId() == '10146') { + getBerthNumForShizhengchu(plType); + return; + } + + + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + }; + var berthAjax = { + method: "post", + url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + + if (plType == 0) { + //空余泊位数 + var berthFreeNum = data.berthFreeNum; + //总泊位数 + var berthTotalNum = data.berthNum; + if (berthFreeNum == null || berthFreeNum == undefined || berthFreeNum == '') { + berthFreeNum = 0; + } + if (berthTotalNum == null || berthTotalNum == undefined || berthTotalNum == '') { + berthTotalNum = 0; + } + //占用车位数 + $("#park_current_berthNum").text(parseInt(berthTotalNum) - parseInt(berthFreeNum)); + //总车位数 + $("#park_current_berthTotalNum").text(parseInt(berthTotalNum)); + $("#berthNum").html(data.berthNum); + $("#turnoverNum").html((data.outCarNum / (data.berthNum < 1 ? 1 : data.berthNum)).toFixed(2)); + } else { + var berthNum = data.berthNum; + var berthFreeNum = data.berthFreeNum; + var occupyRate = ((berthNum - berthFreeNum) * 100 / (berthNum < 1 ? 1 : berthNum)).toFixed(2); + if (plType == 1) { + $("#occupyRateLC").html(berthNum); + $("#turnoverNumLC").html((data.outCarNum / (berthNum < 1 ? 1 : berthNum)).toFixed(2)); + } else if (plType == 2) { + $("#occupyRateFB").html(berthNum); + $("#turnoverNumFB").html((data.outCarNum / (berthNum < 1 ? 1 : berthNum)).toFixed(2)); + } + } + + + } else { + console.log(res); + } + } + }; + sysAjax(berthAjax); +}; + + +//市政处 泊位数特殊处理 +function getBerthNumForShizhengchu(plType) { + + debugger; + + var ziyingplNos = []; + var feiziyingPlNos = []; + var allPlNos = []; + + + //1:自营,2:非自营,3:全部 默认自营1 + var resultParkLot = fn.getParkLot(1); + $.each(resultParkLot, function (index, item) { + if(plType == 0 ||item.type == plType){ + ziyingplNos.push(item.code); + } + + }); + + resultParkLot = fn.getParkLot(2); + $.each(resultParkLot, function (index, item) { + if(plType == 0 ||item.type == plType){ + feiziyingPlNos.push(item.code); + } + + }) + + resultParkLot = fn.getParkLot(3); + $.each(resultParkLot, function (index, item) { + if(plType == 0 ||item.type == plType){ + allPlNos.push(item.code); + } + }) + + + var ziyingData = {}; + var feiziyingData = {}; + var allData = {}; + + + var req = { + sysCode: sysComm.sysCode, + plNos: ziyingplNos, + }; + var berthAjax = { + method: "post", + url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + ziyingData = res.data; + + } else { + console.log(res); + } + } + }; + sysAjax(berthAjax); + + req = { + sysCode: sysComm.sysCode, + plNos: feiziyingPlNos, + }; + berthAjax = { + method: "post", + url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + feiziyingData = res.data; + + } else { + console.log(res); + } + } + }; + sysAjax(berthAjax); + + + req = { + sysCode: sysComm.sysCode, + plNos: allPlNos, + }; + berthAjax = { + method: "post", + url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + allData = res.data; + + } else { + console.log(res); + } + } + }; + sysAjax(berthAjax); + + + if (plType == 0) { + //空余泊位数 + var berthFreeNum = allData.berthFreeNum; + //总泊位数 + var berthTotalNum = allData.berthNum; + if (berthFreeNum == null || berthFreeNum == undefined || berthFreeNum == '') { + berthFreeNum = 0; + } + if (berthTotalNum == null || berthTotalNum == undefined || berthTotalNum == '') { + berthTotalNum = 0; + } + //占用车位数 + $("#park_current_berthNum").text(parseInt(berthTotalNum) - parseInt(berthFreeNum)); + //总车位数 + $("#park_current_berthTotalNum").text(parseInt(berthTotalNum)); + $("#berthNum").html(allData.berthNum); + $("#turnoverNum").html((allData.outCarNum / (allData.berthNum < 1 ? 1 : allData.berthNum)).toFixed(2)); + } else { + var berthNum = allData.berthNum; + var berthFreeNum = allData.berthFreeNum; + var occupyRate = ((berthNum - berthFreeNum) * 100 / (berthNum < 1 ? 1 : berthNum)).toFixed(2); + + var html = (allData.berthNum==undefined?'0':allData.berthNum) +'(运营:'+(ziyingData.berthNum==undefined?'0':ziyingData.berthNum)+";非运营:"+(feiziyingData.berthNum==undefined?'0':feiziyingData.berthNum)+")"; + + if (plType == 1) { + // var html = '总泊位:'+allData.berthNum +'/运营:'+ziyingData.berthNum+"/非运营:"+feiziyingData.berthNum; + $("#occupyRateLC").html(html); + $("#turnoverNumLC").html((allData.outCarNum / (berthNum < 1 ? 1 : berthNum)).toFixed(2)); + } else if (plType == 2) { + $("#occupyRateFB").html(html); + $("#turnoverNumFB").html((allData.outCarNum / (berthNum < 1 ? 1 : berthNum)).toFixed(2)); + } + } + + +} + + +//获取设备数量以及占用率-按路侧、封闭进行区分 +function getDeviceNums(plNos, plType) { + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + eqpTypes: [-1] + }; + var berthAjax = { + method: "post", + url: dataUrl.util.statisticParkLotEqpCountByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + // console.log(res); + var ydata = ['地磁', 'PDA', '视频桩']; + var seriesdata = [0, 0, 0];//在线 + var serieserrordata = [0, 0, 0];//掉线 + var totalDevice = 0;//总共设备 + var onLineDevice = 0;//在线设备 + + if (res.data != null) { + $("[data-toggle='tooltip']").tooltip({delay: {show: 500, hide: 100},}); + for (var i = 0; i < res.data.length; i++) { + totalDevice += Number(res.data[i].eqpNum); + //eqpType 1:地磁 2:POS机 + if (res.data[i].eqpType == 1) {//地磁 + //eqpState 设备状态:1-掉线,0-在线 + if (res.data[i].eqpState == 0) { + seriesdata[0] = res.data[i].eqpNum; + onLineDevice += res.data[i].eqpNum; + } else { + serieserrordata[0] += res.data[i].eqpNum; + } + } else if (res.data[i].eqpType == 9) {//pos机 + + if (res.data[i].eqpState == 0) { + seriesdata[1] = res.data[i].eqpNum; + onLineDevice += res.data[i].eqpNum; + } else { + serieserrordata[1] += res.data[i].eqpNum; + } + } + } + //填写数据 + if (plType == 0) { + + setTimeout(function () { + $("#deviceNum").html(totalDevice); + }, 10); + + } else { + var occupyRate = ((onLineDevice) * 100 / (totalDevice < 1 ? 1 : totalDevice)).toFixed(2); + if (plType == 1) { + $("#deviceNumLC").html(totalDevice); + $("#deviceNumLCTitle").attr('data-original-title', "地磁" + (seriesdata[0] + serieserrordata[0]) + "个,PDA" + (seriesdata[1] + serieserrordata[1]) + "个"); + + } else if (plType == 2) { + $("#deviceNumFB").html(totalDevice); + } + } + } else { + console.log(res); + } + } + }; + sysAjax(berthAjax); +}; + +//查询停车场实时运行情况数据-收入概况&占用率概况 +function queryParkRealTimeDatasByPlNos(plNos) { + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + }; + var realTimeAjax = { + method: "post", + url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + + if (res.code == '8888') { + var data = res.data; + if (data != null) { + drawIncomeDatas(data.allIncome, data.allCashIncome, data.allWxIncome, data.allAliIncome, data.allBalanceIncome, data.escapeFee); + drawOccupyDatas(data.inCarNum, data.outCarNum, data.parkInsideNum, (data.parkInsideNum) - (data.parkVipInsideNum), data.parkVipInsideNum, data.berthFreeNum, data.berthNum); + } + } else { + console.log(res); + } + } + }; + sysAjax(realTimeAjax); +}; + +//收入概况 +function drawIncomeDatas(allIncome, allCashIncome, allWxIncome, allAliIncome, allBalanceIncome, escapeFee) { +// $("#parkCashIncome").html(moneyFomatter(allCashIncome)); +// $("#parkWxIncome").html(moneyFomatter(allWxIncome)); +// $("#parkAliIncome").html(moneyFomatter(allAliIncome)); +// $("#parkBalanceIncome").html(moneyFomatter(allBalanceIncome)); + $("#parkIncome").html(moneyFomatter(allIncome)); + $("#parkIncome").attr('title', moneyFomatter(allIncome)); + $("#escapeFee").html(moneyFomatter(escapeFee)); + $("#escapeFee").attr('title', moneyFomatter(escapeFee)); + allIncome = (allIncome < 1 ? 1 : allIncome); + var cashRate = (allCashIncome * 100 / allIncome).toFixed(2); + var wxRate = (allWxIncome * 100 / allIncome).toFixed(2); + var aliRate = (allAliIncome * 100 / allIncome).toFixed(2); + var balanceRate = (allBalanceIncome * 100 / allIncome).toFixed(2); + + $(".pos-abs.pay-way-scale").eq(0).css("width", wxRate + '%'); + $(".pos-abs.pay-way-scale").eq(1).css("width", aliRate + '%'); + $(".pos-abs.pay-way-scale").eq(2).css("width", balanceRate + '%'); + $(".pos-abs.pay-way-scale").eq(3).css("width", cashRate + '%'); + $("#weixin-title").attr('title', moneyFomatter(allWxIncome) + '元'); + $("#alipay-title").attr('title', moneyFomatter(allAliIncome) + '元'); + $("#yy-title").attr('title', moneyFomatter(allBalanceIncome) + '元'); + $("#xj-title").attr('title', moneyFomatter(allCashIncome) + '元'); + + + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + //逃逸金额 +// var escapeRate = (escapeFee*100/(allIncome<1?1:allIncome)).toFixed(2); +// TYJEcharts = echarts.init(document.getElementById('tyje-echarts')); +// var TYJEoption = { +// color:['#0D9BFF','#D7D7D7'], +// title:{ +// text:escapeRate+'%', +// textStyle:{ +// color:'#4a4a4a', +// fontSize:'24', +// align:'middle', +// verticalAlign:'middle', +// }, +// left:'center', +// top:'middle', +// }, +// tooltip: { +// trigger: 'item', +// show:false, +// formatter: "{a}
    {b}: {c} ({d}%)" +// }, +// +// series: [ +// { +// name:'访问来源', +// hoverAnimation:false, +// legendHoverLink:false, +// type:'pie', +// radius: ['70%', '88%'], +// avoidLabelOverlap: false, +// label: { +// normal: { +// show: false, +// position: 'center' +// }, +// emphasis: { +// show: false, +// textStyle: { +// fontSize: '30', +// fontWeight: 'bold' +// } +// } +// }, +// labelLine: { +// normal: { +// show: false +// } +// }, +// data:[ +// {value:escapeRate, name:'直接访问'}, +// {value:100-escapeRate, name:'邮件营销'}, +// ] +// } +// ] +// }; +// TYJEcharts.setOption(TYJEoption, true); + +} + +//占用率概况 +function drawOccupyDatas(inCarNum, outCarNum, parkInsideNum, parkTmpInsideNum, parkVipInsideNum, berthFreeNum, berthNum) { + $("#inCarNum").html(inCarNum + "(辆)"); + $("#outCarNum").html(outCarNum + "(辆)"); +// $("#parkInsideNum").html(parkInsideNum); +// $(".park-first").css('width',(parkInsideNum*100/(berthNum<1?1:berthNum))+"%"); +// $("#parkTmpInsideNum").html(parkTmpInsideNum); +// $(".park-second").css('width',(parkTmpInsideNum*100/(berthNum<1?1:berthNum))+"%"); +// $("#parkVipInsideNum").html(parkVipInsideNum); +// $(".park-three").css('width',(parkVipInsideNum*100/(berthNum<1?1:berthNum))+"%"); + + var occupyRate = ((berthNum - berthFreeNum) * 100 / (berthNum < 1 ? 1 : berthNum)).toFixed(2); +// var occupyRate = 20; +// dcsboption.title.text = occupyRate+"%"; +// dcsboption.series[0].data[0].value = occupyRate; +// dcsboption.series[0].data[1].value = 100-occupyRate; +// +// dcsboption.series[1].data[0].value = occupyRate; +// dcsboption.series[1].data[1].value = 100-occupyRate; +// // dcsboption.series[1].data[2].value = 100; +// dcsbChart.setOption(dcsboption, true); + +} + +//近几天收入趋势折线图 num为第几天 +function incomeTrendCharts(plNos, num) { + var startDate = new Date(); + var endDate = new Date(); + startDate.setSeconds(0); + startDate.setHours(0); + startDate.setMinutes(0); + startDate.setDate(startDate.getDate() - num); + + endDate.setSeconds(59); + endDate.setHours(23); + endDate.setMinutes(59); + endDate.setDate(endDate.getDate() - 1); + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + startDate: startDate.getTime(), + endDate: endDate.getTime() + } + var inComeAjax = { + method: "post", + url: dataUrl.util.queryIncomeOfDay(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + handelIncomeTrendData(data); + } + } + }; + sysAjax(inComeAjax); +} + +function handelIncomeTrendData(data) { + var dateArray = []; + var incomeArray = []; + $.each(data, function (index, item) { + dateArray.push(item.dayStr); + incomeArray.push(moneyFomatter(item.inCome)); + }) + incomeoption.xAxis.data = dateArray; + incomeoption.series[0].data = incomeArray; + incomeecharts.setOption(incomeoption, true); + +} + +//停车收入排行查询 +function queryParkIncomeDatas(plNos) { + var dataList = "";//返回的数据 + //条件查询 + var req = { + baseRequest: { + pageNum: 1, + pageSize: 1000 + }, + sysCode: sysComm.sysCode, + plNos: plNos + }; + //1.分页查询停车场信息统计和今日收益 + var inComeAjax = { + method: "post", + url: dataUrl.util.queryParkRealTimeListByPlNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if ("8888" == res.code) { + var data = res.data; + if (data != null && data.length > 0) { + handelParkStaticsTic(data); + } + + } + } + }; + sysAjax(inComeAjax); +} + +function handelParkStaticsTic(data) { + $.each(data, function (index, item) { + $.each(parkData, function (_index, _item) { + if (_item.plNo == item.plNo) { + _item.allIncome = item.allIncome; + } + }); + + }); + //排序 收入相同的情况下,按中文排序 + parkData.sort(function (a, b) { + if (b.allIncome == a.allIncome) { + return (a.plName).localeCompare(b.plName, 'zh'); + } else { + return b.allIncome - a.allIncome; + } + }); + var html = ""; + console.log(parkData) + $.each(parkData, function (index, item) { + html = html + "
  • " + (index + 1) + "" + item.plName + "" + moneyFomatter(item.allIncome) + "
  • "; + + }); + $(".income-top").html(html); +} + +//快捷入口 +// (function($){ +// $.fn.rollSlide = function(obj){v +// var $self = this, +// orientation = obj.orientation || 'left', //婊氬姩鏂瑰紡 +// num = obj.num || 1, //婊氬姩鏁伴噺 +// v = (typeof obj.v === 'number') ? obj.v : 0, //婊氬姩閫熷害 +// minTime = (typeof obj.space === 'number') ? ((obj.space >= 100) ? obj.space : 100) : 100, //鏈€灏忛棿闅斾负 100 ms 锛� +// space = minTime + v || 5000 + v, //婊氬姩闂撮殧 榛樿 5000ms +// isRoll = obj.isRoll, //鑷姩鎾斁 +// isStart = true, +// roll = function(ori, n, v){ +// var $ul = $self.find('.roll__list'), +// $item = $ul.find('li'), +// range = 0, +// i,len = $item.length, +// sliceItem = [], +// cloneSliceItem = [], +// startTime = (new Date()).getTime(), +// //瀛樻斁婊氬姩杩囩殑 item +// memory = function(){ +// var arr = []; +// +// if(ori === 'left' || ori === 'top'){ +// for(i = 0; i < n; i++){ +// range += ori === 'left' ? $($item[i]).outerWidth(true) : $($item[i]).outerHeight(true); // left 鍙� width锛宼op 鍙� height +// arr.push($item[i]); +// } +// } else if(ori === 'right' || ori === 'bottom'){ +// for(i = len - n; n > 0; n--, i++){ +// range += ori === 'right' ? $($item[i]).outerWidth(true) : $($item[i]).outerHeight(true); +// arr.push($item[i]); +// } +// } +// return arr; +// }; +// +// isStart = false; //鍏抽棴婊氬姩 +// sliceItem = memory(); +// cloneSliceItem = $(sliceItem).clone(); +// //鍒ゆ柇寰€鍝釜鏂瑰悜绉诲姩 +// switch (ori){ +// case 'left': +// $ul.append(cloneSliceItem); +// $ul.animate({ +// 'left': -range + 'px' +// },v,function(){ +// $(this).css({'left': 0}); +// $(sliceItem).remove(); +// isStart = true; //寮€鍚粴鍔� +// }); +// break; +// case 'right': +// $ul.prepend(cloneSliceItem); +// $ul.css('left', -range + 'px'); +// $ul.animate({ +// 'left': 0 +// },v,function(){ +// $(sliceItem).remove(); +// isStart = true; //寮€鍚粴鍔� +// }); +// break; +// case 'top': +// $ul.append(cloneSliceItem); +// $ul.animate({ +// 'top': -range + 'px' +// },v,function(){ +// $(this).css({'top': 0}); +// $(sliceItem).remove(); +// isStart = true; //寮€鍚粴鍔� +// }); +// break; +// case 'bottom': +// $ul.prepend(cloneSliceItem); +// $ul.css('top', -range + 'px'); +// $ul.animate({ +// 'top': 0 +// },v, function(){ +// $(sliceItem).remove(); +// isStart = true; //寮€鍚粴鍔� +// }); +// break; +// } +// }, +// init = function(){ +// var $ul = $self.find('.roll__list'), +// $item = $ul.find('li'), +// len = $item.length, +// timer; +// +// num = num <= len ? num : len; //婊氬姩涓暟瓒呰繃鍒楄〃鏁帮紝鍙栧垪琛ㄦ暟 +// if(len > 1){ +// $self.on('click', '.pre', function(){ +// if(isStart){ +// //妯悜婊氬姩 +// if(orientation === 'left' || orientation === 'right'){ +// roll('right', num, v); +// } else{ //绾靛悜婊氬姩 +// roll('bottom', num, v); +// } +// } +// }). +// on('click', '.next', function(){ +// if(isStart){ +// //妯悜婊氬姩 +// if(orientation === 'left' || orientation === 'right'){ +// roll('left', num, v); +// } else{ //绾靛悜婊氬姩 +// roll('top', num, v); +// } +// } +// }). +// hover(function(){ +// clearInterval(timer); +// }, function(){ +// if(isRoll){ +// timer = setInterval(function(){ +// roll(orientation, num, v); +// },space); +// } +// }). +// trigger('mouseout'); +// } +// }; +// +// init(); +// }; +// $.fn.rollNoInterval = function(){ +// var $self = this, +// $ul = $self.find('.roll__list'), +// $item = $ul.find('li'), +// len = $item.length, +// timer, +// left = function(){ +// var offset, i, +// range, +// $sliceItem; +// +// $sliceItem = $($item[0]); +// range = $sliceItem.outerWidth(true); +// timer = setInterval(function(){ +// offset = $ul.css('left'); +// offset = parseInt(offset); +// if(offset > -range){ +// i = offset - 1; +// $ul.css('left', i + 'px'); +// offset = $ul.css('left'); +// } else{ +// $sliceItem.detach(); +// $ul.css('left', 0); +// $ul.append($sliceItem); +// $sliceItem = $($ul.find('li')[0]); +// range = $sliceItem.outerWidth(true); +// } +// }, 50); +// }, +// right = function(){ +// var offset, i, +// range, +// $sliceItem; +// +// $sliceItem = $($item[len - 1]); +// range = $sliceItem.outerWidth(true); +// timer = setInterval(function(){ +// offset = $ul.css('right'); +// offset = parseInt(offset); +// if(offset > -range){ +// i = offset - 1; +// $ul.css('right', i + 'px'); +// offset = $ul.css('right'); +// } else{ +// $sliceItem.detach(); +// $ul.css('right', 0); +// $ul.prepend($sliceItem); +// $sliceItem = $($ul.find('li')[len - 1]); +// range = $sliceItem.outerWidth(true); +// } +// }, 50); +// }, +// top = function(){ +// var offset, i, +// range, +// $sliceItem; +// +// $sliceItem = $($item[0]); +// range = $sliceItem.outerHeight(true); +// timer = setInterval(function(){ +// offset = $ul.css('top'); +// offset = parseInt(offset); +// if(offset > -range){ +// i = offset - 1; +// $ul.css('top', i + 'px'); +// offset = $ul.css('top'); +// } else{ +// $sliceItem.detach(); +// $ul.css('top', 0); +// $ul.append($sliceItem); +// $sliceItem = $($ul.find('li')[0]); +// range = $sliceItem.outerHeight(true); +// } +// }, 50); +// }, +// bottom = function(){ +// var offset, i, +// range, +// $sliceItem; +// +// $sliceItem = $($item[len - 1]); +// range = $sliceItem.outerHeight(true); +// timer = setInterval(function(){ +// offset = $ul.css('bottom'); +// offset = parseInt(offset); +// if(offset > -range){ +// i = offset - 1; +// $ul.css('bottom', i + 'px'); +// offset = $ul.css('bottom'); +// } else{ +// $sliceItem.detach(); +// $ul.css('bottom', 0); +// $ul.prepend($sliceItem); +// $sliceItem = $($ul.find('li')[len - 1]); +// range = $sliceItem.outerHeight(true); +// } +// }, 50); +// }, +// init = function(){ +// $self.hover(function(){ +// clearInterval(timer); +// }, function(){ +// +// }); +// }; +// +// //init(); +// return { +// left: left, +// right: right, +// top: top, +// bottom: bottom +// } +// } +// })(jQuery); +// $('#index-access-wrap').rollSlide({ +// orientation: 'right', +// num: 2, +// v: 1500, +// space: 3000, +// isRoll: true +// }); + + +(function (T, h, i, n, k, P, a, g, e) { + g = function () { + P = h.createElement(i); + a = h.getElementsByTagName(i)[0]; + P.src = k; + P.charset = "utf-8"; + P.async = 1; + a.parentNode.insertBefore(P, a) + }; + T["ThinkPageWeatherWidgetObject"] = n; + T[n] || (T[n] = function () { + (T[n].q = T[n].q || []).push(arguments) + }); + T[n].l = +new Date(); + if (T.attachEvent) { + T.attachEvent("onload", g) + } else { + T.addEventListener("load", g, false) + } +}(window, document, "script", "tpwidget", "//widget.seniverse.com/widget/chameleon.js")) +tpwidget("init", { + "flavor": "slim", + "location": "WX4FBXXFKE4F", + "geolocation": "enabled", + "language": "zh-chs", + "unit": "c", + "theme": "chameleon", + "container": "tp-weather-widget", + "bubble": "disabled", + "alarmType": "circle", + "uid": "U09DCF5ADF", + "hash": "5792c0c80cfc77da7283341fe8f9b809" +}); +tpwidget("show"); +$('#showNowDate').html(showNowDate()); + + +//上下滚动播报 +(function ($) { + $.fn.myScroll = function (options) { + //榛樿閰嶇疆 + var defaults = { + speed: 40, + rowHeight: 24 //姣忚鐨勯珮搴� + }; + + var opts = $.extend({}, defaults, options), intId = []; + + function marquee(obj, step) { + + obj.find("ul").animate({ + marginTop: '-=1' + }, 0, function () { + var s = Math.abs(parseInt($(this).css("margin-top"))); + if (s >= step) { + $(this).find("li").slice(0, 1).appendTo($(this)); + $(this).css("margin-top", 0); + } + }); + } + + this.each(function (i) { + var sh = opts["rowHeight"], speed = opts["speed"], _this = $(this); + intId[i] = setInterval(function () { + if (_this.find("ul").height() <= _this.height()) { + clearInterval(intId[i]); + } else { + marquee(_this, sh); + } + }, speed); + + _this.hover(function () { + clearInterval(intId[i]); + }, function () { + intId[i] = setInterval(function () { + if (_this.find("ul").height() <= _this.height()) { + clearInterval(intId[i]); + } else { + marquee(_this, sh); + } + }, speed); + }); + + }); + + } + +})(jQuery); + + +//首页公告查询 +queryNoticeDatas(); + +//首页公告查询 +function queryNoticeDatas() { + var dataList = "";//返回的数据 + //条件查询 + var req = { + baseRequest: { + pageNum: 1, + pageSize: 20 + }, + sysCode: sysComm.sysCode, + noticeBigTypes: [200] + }; + //1.分页查询停车场信息统计和今日收益 + var inComeAjax = { + method: "post", + url: dataUrl.util.queryNoticeForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if ("8888" == res.code) { + $("#index-notice-main").empty() + var data = res.data.rows; + var html = ''; + if (data != null && data.length > 0) { + data.sort(function (a, b) { + return b.effDate < a.effDate ? 1 : -1 + }) + for (var index in data) { + var noticeTime = data[index].effDate == null ? "" : DateUtils.long2String(data[index].effDate, 1); + + html += '
  • ' + data[index].noticeTitle + + '' + noticeTime + '
  • '; + } + + } + //console.log(html); + $("#index-notice-main").append(html); + $("div.list_lh").myScroll({ + speed: 40, //数值越大,速度越慢 + rowHeight: 28 //li的高度 + }); + + + } + } + }; + sysAjax(inComeAjax); +} + + +$(document).on('click', '#index-notice-main li', function () { + var id = $(this).attr('data-id'); + var url = $(this).attr('data-url'); + var title = $(this).attr('data-title'); + var time = $(this).attr('data-time'); + // console.log(id); + // console.log(url); + sessionStorage.setItem('newsid', id); + window.location.href = 'notice.html?url=' + url + +}); + +//近7日收入折线图 +var incomeecharts = echarts.init(document.getElementById('income-echarts')); +var incomeoption = { + color: ['#5fe98f'], + tooltip: { + trigger: 'item', + + backgroundColor: '#5fe98f', + // extraCssText: 'box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);', + borderColor: '#5fe98f', + padding: 0, + textStyle: { + color: '#fff', + fontSize: '14px', + fontFamily: '微软雅黑' + }, + + // extraCssText: 'box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);', + formatter: function (params) { + var str = ''; + //console.log(params) + str += '
    ' + params.data + '元
    '; + return str; + }, + extraCssText: 'border-radius:20px!important;' + }, + // legend: { + // top: '0', + // right: '24', + // + // }, + grid: { + top: '13%', + left: '1%', + right: '2%', + bottom: '2%', + containLabel: true + }, + + xAxis: { + type: 'category', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12px', + fontFamily: '微软雅黑' + } + }, + + splitLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + axisTick: { + show: false + }, + data: [1, 2, 3, 4, 5], + }, + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12px', + fontFamily: '微软雅黑' + } + }, + axisLabel: { //调整y轴的lable + textStyle: { + color: 'rgba(0,0,0,0.5)', + } + }, + axisTick: { + show: false + }, + + axisLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + width: 1,//这里是为了突出显示加上的 + } + }, + splitLine: { + lineStyle: { + // type:'dashed', + color: 'rgba(0,0,0,0.1)', + } + } + }, + series: [ + { + name: '近7日收入折线图', + type: 'line', + data: [], + symbol: 'circle', + symbolSize: 10, + itemStyle: { + normal: { + lineStyle: { + color: '#f0f0f2', + } + } + }, + areaStyle: { + normal: { + color: '#effdf4' + } + }, + lineStyle: { + normal: { + color: '#5fe98f', + width: 2, + } + } + }, + + ] +}; +incomeecharts.setOption(incomeoption, true); +//实时泊位占用数 +// var dcsbChart = echarts.init(document.getElementById('index-zylecharts')); +// var dcsboption = { +// title: { +// text: '80%', +// textStyle:{ +// color:'#000', +// fontSize:'18', +// align:'center', +// fontFamily:'微软雅黑' +// }, +// top:'65', +// left:'center' +// }, +// legendHoverLink: false, +// series: [ +// { +// name:'', +// type:'pie', +// radius:'80%', +// center:['50%','50%'], +// legendHoverLink: false, +// avoidLabelOverlap: false, +// startAngle :180, +// hoverAnimation:false, +// label:{normal: {show: false}}, +// data:[ +// {value:50, name:'',itemStyle:{normal:{color:'#edf7fb'},emphasis:{color:'#edf7fb'}}, label:{normal: {show: false}}}, +// {value:50, name:'',itemStyle:{normal:{color:'#edf7fb'},emphasis:{color:'#edf7fb'}}, label:{normal: {show: false}}} +// ] +// }, +// { +// name:'具体比例', +// type:'pie', +// radius: ['88%', '98%'], +// center:['50%','50%'], +// legendHoverLink: false, +// avoidLabelOverlap: false, +// hoverAnimation:false, +// // hoverOffset:0, +// startAngle :180, +// color:['#5fe98f','#cccc'], +// label: { +// normal: { +// show: false, +// position: 'inside', +// formatter:'{c}%' +// }, +// emphasis: { +// show: false, +// textStyle: { +// fontSize: '30', +// fontWeight: 'bold' +// } +// } +// +// }, +// labelLine: { +// normal: { +// show: false +// } +// }, +// data:[ +// +// {value:2, name:'20~25岁',itemStyle:{normal:{color:'#5fe98f'},emphasis:{color:'#5fe98f'}}, label:{normal: {show: false}}}, +// {value:2, name:'25~30岁',itemStyle:{normal:{color:'#cccc'},emphasis:{color:'#cccc'}}, label:{normal: {show: false}}}, +// // {value:4, name:'',itemStyle:{normal:{color:'#fff'},emphasis:{color:'#fff'}}, label:{normal: {show: false}}} +// ] +// } +// ] +// }; +// dcsbChart.setOption(dcsboption, true); + +//自适应 +window.onresize = function () { + + incomeecharts.resize(); +}; + + + + + diff --git a/assets/pages/scripts/home/maplib.js b/assets/pages/scripts/home/maplib.js new file mode 100755 index 0000000..413cfb4 --- /dev/null +++ b/assets/pages/scripts/home/maplib.js @@ -0,0 +1,607 @@ +/** + * @fileoverview MarkerClusterer标记聚合器用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能。 + * 主入口类是MarkerClusterer, + * 基于Baidu Map API 1.2。 + * + * @author Baidu Map Api Group + * @version 1.2 + */ + + +/** + * @namespace BMap的所有library类均放在BMapLib命名空间下 + */ +var BMapLib = window.BMapLib = BMapLib || {}; +(function(){ + + /** + * 获取一个扩展的视图范围,把上下左右都扩大一样的像素值。 + * @param {Map} map BMap.Map的实例化对象 + * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象 + * @param {Number} gridSize 要扩大的像素值 + * + * @return {BMap.Bounds} 返回扩大后的视图范围。 + */ + var getExtendedBounds = function(map, bounds, gridSize){ + bounds = cutBoundsInRange(bounds); + var pixelNE = map.pointToPixel(bounds.getNorthEast()); + var pixelSW = map.pointToPixel(bounds.getSouthWest()); + pixelNE.x += gridSize; + pixelNE.y -= gridSize; + pixelSW.x -= gridSize; + pixelSW.y += gridSize; + var newNE = map.pixelToPoint(pixelNE); + var newSW = map.pixelToPoint(pixelSW); + return new BMap.Bounds(newSW, newNE); + }; + + /** + * 按照百度地图支持的世界范围对bounds进行边界处理 + * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象 + * + * @return {BMap.Bounds} 返回不越界的视图范围 + */ + var cutBoundsInRange = function (bounds) { + var maxX = getRange(bounds.getNorthEast().lng, -180, 180); + var minX = getRange(bounds.getSouthWest().lng, -180, 180); + var maxY = getRange(bounds.getNorthEast().lat, -74, 74); + var minY = getRange(bounds.getSouthWest().lat, -74, 74); + return new BMap.Bounds(new BMap.Point(minX, minY), new BMap.Point(maxX, maxY)); + }; + + /** + * 对单个值进行边界处理。 + * @param {Number} i 要处理的数值 + * @param {Number} min 下边界值 + * @param {Number} max 上边界值 + * + * @return {Number} 返回不越界的数值 + */ + var getRange = function (i, mix, max) { + mix && (i = Math.max(i, mix)); + max && (i = Math.min(i, max)); + return i; + }; + + /** + * 判断给定的对象是否为数组 + * @param {Object} source 要测试的对象 + * + * @return {Boolean} 如果是数组返回true,否则返回false + */ + var isArray = function (source) { + return '[object Array]' === Object.prototype.toString.call(source); + }; + + /** + * 返回item在source中的索引位置 + * @param {Object} item 要测试的对象 + * @param {Array} source 数组 + * + * @return {Number} 如果在数组内,返回索引,否则返回-1 + */ + var indexOf = function(item, source){ + var index = -1; + if(isArray(source)){ + if (source.indexOf) { + index = source.indexOf(item); + } else { + for (var i = 0, m; m = source[i]; i++) { + if (m === item) { + index = i; + break; + } + } + } + } + return index; + }; + + /** + *@exports MarkerClusterer as BMapLib.MarkerClusterer + */ + var MarkerClusterer = + /** + * MarkerClusterer + * @class 用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能 + * @constructor + * @param {Map} map 地图的一个实例。 + * @param {Json Object} options 可选参数,可选项包括:
    + * markers {Array} 要聚合的标记数组
    + * girdSize {Number} 聚合计算时网格的像素大小,默认60
    + * maxZoom {Number} 最大的聚合级别,大于该级别就不进行相应的聚合
    + * minClusterSize {Number} 最小的聚合数量,小于该数量的不能成为一个聚合,默认为2
    + * isAverangeCenter {Boolean} 聚合点的落脚位置是否是所有聚合在内点的平均值,默认为否,落脚在聚合内的第一个点
    + * styles {Array} 自定义聚合后的图标风格,请参考TextIconOverlay类
    + */ + BMapLib.MarkerClusterer = function(map, options){ + if (!map){ + return; + } + this._map = map; + this._markers = []; + this._clusters = []; + + var opts = options || {}; + this._gridSize = opts["gridSize"] || 60; + this._maxZoom = opts["maxZoom"] || 18; + this._minClusterSize = opts["minClusterSize"] || 2; + this._isAverageCenter = false; + if (opts['isAverageCenter'] != undefined) { + this._isAverageCenter = opts['isAverageCenter']; + } + this._styles = opts["styles"] || []; + + var that = this; + this._map.addEventListener("zoomend",function(){ + that._redraw(); + }); + + this._map.addEventListener("moveend",function(){ + that._redraw(); + }); + + var mkrs = opts["markers"]; + isArray(mkrs) && this.addMarkers(mkrs); + }; + + /** + * 添加要聚合的标记数组。 + * @param {Array} markers 要聚合的标记数组 + * + * @return 无返回值。 + */ + MarkerClusterer.prototype.addMarkers = function(markers){ + for(var i = 0, len = markers.length; i } markers 需要被删除的marker数组 + * + * @return {Boolean} 删除成功返回true,否则返回false + */ + MarkerClusterer.prototype.removeMarkers = function(markers) { + var success = false; + for (var i = 0; i < markers.length; i++) { + var r = this._removeMarker(markers[i]); + success = success || r; + } + + if (success) { + this._clearLastClusters(); + this._createClusters(); + } + return success; + }; + + /** + * 从地图上彻底清除所有的标记 + * @return 无返回值 + */ + MarkerClusterer.prototype.clearMarkers = function() { + this._clearLastClusters(); + this._removeMarkersFromMap(); + this._markers = []; + }; + + /** + * 重新生成,比如改变了属性等 + * @return 无返回值 + */ + MarkerClusterer.prototype._redraw = function () { + this._clearLastClusters(); + this._createClusters(); + }; + + /** + * 获取网格大小 + * @return {Number} 网格大小 + */ + MarkerClusterer.prototype.getGridSize = function() { + return this._gridSize; + }; + + /** + * 设置网格大小 + * @param {Number} size 网格大小 + * @return 无返回值 + */ + MarkerClusterer.prototype.setGridSize = function(size) { + this._gridSize = size; + this._redraw(); + }; + + /** + * 获取聚合的最大缩放级别。 + * @return {Number} 聚合的最大缩放级别。 + */ + MarkerClusterer.prototype.getMaxZoom = function() { + return this._maxZoom; + }; + + /** + * 设置聚合的最大缩放级别 + * @param {Number} maxZoom 聚合的最大缩放级别 + * @return 无返回值 + */ + MarkerClusterer.prototype.setMaxZoom = function(maxZoom) { + this._maxZoom = maxZoom; + this._redraw(); + }; + + /** + * 获取聚合的样式风格集合 + * @return {Array} 聚合的样式风格集合 + */ + MarkerClusterer.prototype.getStyles = function() { + return this._styles; + }; + + /** + * 设置聚合的样式风格集合 + * @param {Array} styles 样式风格数组 + * @return 无返回值 + */ + MarkerClusterer.prototype.setStyles = function(styles) { + this._styles = styles; + this._redraw(); + }; + + /** + * 获取单个聚合的最小数量。 + * @return {Number} 单个聚合的最小数量。 + */ + MarkerClusterer.prototype.getMinClusterSize = function() { + return this._minClusterSize; + }; + + /** + * 设置单个聚合的最小数量。 + * @param {Number} size 单个聚合的最小数量。 + * @return 无返回值。 + */ + MarkerClusterer.prototype.setMinClusterSize = function(size) { + this._minClusterSize = size; + this._redraw(); + }; + + /** + * 获取单个聚合的落脚点是否是聚合内所有标记的平均中心。 + * @return {Boolean} true或false。 + */ + MarkerClusterer.prototype.isAverageCenter = function() { + return this._isAverageCenter; + }; + + /** + * 获取聚合的Map实例。 + * @return {Map} Map的示例。 + */ + MarkerClusterer.prototype.getMap = function() { + return this._map; + }; + + /** + * 获取所有的标记数组。 + * @return {Array} 标记数组。 + */ + MarkerClusterer.prototype.getMarkers = function() { + return this._markers; + }; + + /** + * 获取聚合的总数量。 + * @return {Number} 聚合的总数量。 + */ + MarkerClusterer.prototype.getClustersCount = function() { + var count = 0; + for(var i = 0, cluster; cluster = this._clusters[i]; i++){ + cluster.isReal() && count++; + } + return count; + }; + + /** + * @ignore + * Cluster + * @class 表示一个聚合对象,该聚合,包含有N个标记,这N个标记组成的范围,并有予以显示在Map上的TextIconOverlay等。 + * @constructor + * @param {MarkerClusterer} markerClusterer 一个标记聚合器示例。 + */ + function Cluster(markerClusterer){ + this._markerClusterer = markerClusterer; + this._map = markerClusterer.getMap(); + this._minClusterSize = markerClusterer.getMinClusterSize(); + this._isAverageCenter = markerClusterer.isAverageCenter(); + this._center = null;//落脚位置 + this._markers = [];//这个Cluster中所包含的markers + this._gridBounds = null;//以中心点为准,向四边扩大gridSize个像素的范围,也即网格范围 + this._isReal = false; //真的是个聚合 + + this._clusterMarker = new BMapLib.TextIconOverlay(this._center, this._markers.length, {"styles":this._markerClusterer.getStyles()}); + //this._map.addOverlay(this._clusterMarker); + } + + /** + * 向该聚合添加一个标记。 + * @param {Marker} marker 要添加的标记。 + * @return 无返回值。 + */ + Cluster.prototype.addMarker = function(marker){ + if(this.isMarkerInCluster(marker)){ + return false; + }//也可用marker.isInCluster判断,外面判断OK,这里基本不会命中 + + if (!this._center){ + this._center = marker.getPosition(); + this.updateGridBounds();// + } else { + if(this._isAverageCenter){ + var l = this._markers.length + 1; + var lat = (this._center.lat * (l - 1) + marker.getPosition().lat) / l; + var lng = (this._center.lng * (l - 1) + marker.getPosition().lng) / l; + this._center = new BMap.Point(lng, lat); + this.updateGridBounds(); + }//计算新的Center + } + + marker.isInCluster = true; + this._markers.push(marker); + + var len = this._markers.length; + if(len < this._minClusterSize ){ + this._map.addOverlay(marker); + //this.updateClusterMarker(); + return true; + } else if (len === this._minClusterSize) { + for (var i = 0; i < len; i++) { + this._markers[i].getMap() && this._map.removeOverlay(this._markers[i]); + } + + } + this._map.addOverlay(this._clusterMarker); + this._isReal = true; + this.updateClusterMarker(); + return true; + }; + + /** + * 判断一个标记是否在该聚合中。 + * @param {Marker} marker 要判断的标记。 + * @return {Boolean} true或false。 + */ + Cluster.prototype.isMarkerInCluster= function(marker){ + if (this._markers.indexOf) { + return this._markers.indexOf(marker) != -1; + } else { + for (var i = 0, m; m = this._markers[i]; i++) { + if (m === marker) { + return true; + } + } + } + return false; + }; + + /** + * 判断一个标记是否在该聚合网格范围中。 + * @param {Marker} marker 要判断的标记。 + * @return {Boolean} true或false。 + */ + Cluster.prototype.isMarkerInClusterBounds = function(marker) { + return this._gridBounds.containsPoint(marker.getPosition()); + }; + + Cluster.prototype.isReal = function(marker) { + return this._isReal; + }; + + /** + * 更新该聚合的网格范围。 + * @return 无返回值。 + */ + Cluster.prototype.updateGridBounds = function() { + var bounds = new BMap.Bounds(this._center, this._center); + this._gridBounds = getExtendedBounds(this._map, bounds, this._markerClusterer.getGridSize()); + }; + + /** + * 更新该聚合的显示样式,也即TextIconOverlay。 + * @return 无返回值。 + */ + Cluster.prototype.updateClusterMarker = function () { + if (this._map.getZoom() > this._markerClusterer.getMaxZoom()) { + this._clusterMarker && this._map.removeOverlay(this._clusterMarker); + for (var i = 0, marker; marker = this._markers[i]; i++) { + this._map.addOverlay(marker); + } + return; + } + + if (this._markers.length < this._minClusterSize) { + this._clusterMarker.hide(); + return; + } + + this._clusterMarker.setPosition(this._center); + + this._clusterMarker.setText(this._markers.length); + + var thatMap = this._map; + var thatBounds = this.getBounds(); + this._clusterMarker.addEventListener("click", function(event){ + thatMap.setViewport(thatBounds); + }); + + }; + + /** + * 删除该聚合。 + * @return 无返回值。 + */ + Cluster.prototype.remove = function(){ + for (var i = 0, m; m = this._markers[i]; i++) { + this._markers[i].getMap() && this._map.removeOverlay(this._markers[i]); + }//清除散的标记点 + this._map.removeOverlay(this._clusterMarker); + this._markers.length = 0; + delete this._markers; + } + + /** + * 获取该聚合所包含的所有标记的最小外接矩形的范围。 + * @return {BMap.Bounds} 计算出的范围。 + */ + Cluster.prototype.getBounds = function() { + var bounds = new BMap.Bounds(this._center,this._center); + for (var i = 0, marker; marker = this._markers[i]; i++) { + bounds.extend(marker.getPosition()); + } + return bounds; + }; + + /** + * 获取该聚合的落脚点。 + * @return {BMap.Point} 该聚合的落脚点。 + */ + Cluster.prototype.getCenter = function() { + return this._center; + }; + +})(); diff --git a/assets/pages/scripts/home/messagecenter.js b/assets/pages/scripts/home/messagecenter.js new file mode 100644 index 0000000..328fea6 --- /dev/null +++ b/assets/pages/scripts/home/messagecenter.js @@ -0,0 +1,346 @@ +/* + ================================ + @作者:andy + @修改者:andy + @模块描述:消息中心js + @创建日期:2018/08/07 + @修改日期:2018/08/07 + ================================ + */ + +var fun = { + // 初始化 + init: function () { + fun.timeInit(); + //需要删除 + //初始化办事处下拉框 + fun.getAreaBlocks("#parkAreaCode", true); + //默认表格 初始化加载 + fun.createTableData(); + // + $('#msg-type').selectpicker('render'); + }, + //需要删除 + //获取办事处 + getAreaBlocks: function (domStr, isNeedAll) { + var plData = fn.getParkBlock(); + var html = ""; + var areaIds = []; + $.each(plData, function (index, item) { + areaIds.push(item.code); + html += ""; + }); + if (isNeedAll) { + var areaIdsStr = JSON.stringify(areaIds); + html = "" + html; + } + $(domStr).append(html); + $(domStr).selectpicker('render'); + $(domStr).selectpicker('refresh'); + }, + + //时间初始化 + timeInit: function () { + //进场时间初始化 + // $('#msg-daterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + // $('#msg-daterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#msg-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + clearBtn: true, //添加清除按钮,可选值:true/false + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("change", function () { + $("#msg-daterange-btnend").val(''); + }); + //结束日期 + $("#msg-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + clearBtn: true, //添加清除按钮,可选值:true/false + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("click", function () { + $("#msg-daterange-btnend").datetimepicker("setStartDate", $("#msg-daterange-btnsta").val()) + }); + }, + //生成表格数据 + createTableData: function () { + $('#msgcentertable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers: true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId: 'id', + columns: [ + {field: 'id', title: '', width: '10%', align: 'left', visible: false}, + { + field: 'adviceType', + title: '通知', + width: '10%', + align: 'left', + formatter: fun.adviceTypeFormatter + }, + { + field: 'adviceType', + title: '状态', + width: '10%', + align: 'left', + formatter: fun.statusTypeFormatter + }, + { + field: 'advice', + title: '内容', + + align: 'left', + formatter: fun.msgFormatter + }, + { + field: 'createDate', + title: '时间', + width: '20%', + align: 'left', + formatter: fun.msgTimeFormatter + }, + ] + + }); + + }, + /*获取查询参数*/ + getQueryParam: function () { + + var req = { + sysCode: sysComm.sysCode, + opId: fn.getUserId() + }; + + + var startCreateDate = $('#msg-daterange-btnsta').val(); + + var endCreateDate = $('#msg-daterange-btnend').val(); + + if (null != startCreateDate) { + req.startCreateDate = new Date(startCreateDate.replace(new RegExp(/-/gm), "/")); + } + + if (null != endCreateDate) { + req.endCreateDate = new Date(endCreateDate.replace(new RegExp(/-/gm), "/")); + } + + var adviceType = $('#msg-type').val(); + if (null != adviceType && adviceType > 0) { + req.adviceType = adviceType; + } + + var readState = $('#msg-toptab').find('div.ITD-graynav-topbaractive').attr('data-msg'); + if (null != readState && readState != 'all') { + req.readState = readState; + } + + + return req; + }, + //通知类型 + adviceTypeFormatter: function (value, row, index) { + // 分已读和未读 未读添加类:fontBold 异常添加类:abnormalIco 正常添加类:normalIco + var opStr = ''; + + if (row.readState == 10) { + //未读 + opStr = '
    '; + } else { + //已读 + opStr = '
    ' + } + + if (value < 0) { + opStr += '异常通知
    '; + } else { + opStr += '待办通知
    '; + } + + + return opStr; + }, + //内容 + msgFormatter: function (value, row, index) { + var msgStr = ''; + // 分已读和未读 未读添加类:fontBold 异常添加类:abnormalIcox 正常添加类:abnormalIco + if (row.readState == 10) { + //未读 + msgStr = '
    ' + value + '
    '; + } else { + //已读 + msgStr = '
    ' + value + '
    '; + } + + + return msgStr; + }, + statusTypeFormatter:function(value, row, index){ + var msgStr = ''; + // 分已读和未读 未读添加类:fontBold 异常添加类:abnormalIcox 正常添加类:abnormalIco + if (row.readState == 10) { + //未读 + msgStr = "
    未读
    "; + } else { + //已读 + msgStr = "
    已读
    "; + } + + + return msgStr; + }, + + //时间 + msgTimeFormatter: function (value, row, index) { + // 分已读和未读 未读添加类:fontBold 异常添加类:abnormalIcox 正常添加类:abnormalIco + var msgStr = ''; + // 分已读和未读 未读添加类:fontBold 异常添加类:abnormalIcox 正常添加类:abnormalIco + if (row.readState == 10) { + //未读 + msgStr = "
    " + fun.DatetimeFormatter(value) + "
    "; + } else { + //已读 + msgStr = "
    " + fun.DatetimeFormatter(value) + "
    "; + } + + + return msgStr; + + }, + //时间 + DatetimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return "" + DateUtils.long2String(value, 7) + ""; + } + }, +}; +fun.init(); + +//行点击事件 +$('#msgcentertable').on('click-row.bs.table', function (e, row, element) { + var ids = []; + console.log() + element.find('.fontBold ').removeClass('fontBold ') + element.find('.abnormalIco ').removeClass('abnormalIco').addClass('noabnormalIco'); + element.find('.noredystatus').text('已读'); + ids.push(row.id); + if (row.readState == 10) { + var noReadNum = $('#bar-tzNum').text(); + if(/^[0-9]+$/.test(noReadNum)) { + noReadNum = parseInt(noReadNum)-1; + $('#bar-tzNum').text(noReadNum); + if(noReadNum == 0){ + $('#bar-tzNum').addClass('display-none'); + } + } + console.log(ids) + console.log(row.readState) + updateReadState(ids); + } + +}); + +documentBindFunc.on('click', "#queryBtn", function () { + fun.createTableData(); +}) + +//切换 搜索部分 是否生效 +documentBindFunc.on('click', "#msg-toptab div.ITD-graynav-topbar", function () { + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + //切换完后,调用查询表格 + fun.createTableData(); + +}); + +// 点击全部已读 +documentBindFunc.on('click', "#readallBtn", function () { + //消息通知 为0 + $('#bar-tzNum').addClass('display-none').text('0'); + //调用更新函数 + updateReadState(); + + +}); +/** + * 默认收费组列表 + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.querySysOpAdviceForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + $("[data-toggle='tooltip']").tooltip({ + delay: { show: 500, hide: 100 }, + }); + } + } + }; + sysAjax(opt); +} +//更新已读消息 +function updateReadState(ids) { + var req = fun.getQueryParam(); + req.readState = 20; + if (undefined != ids && ids.length > 0) { + req.ids = ids; + } + var opt = { + method: 'post', + url: dataUrl.util.updateOpAdviceReadState(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + // fun.createTableData(); + + } + } + }; + sysAjax(opt); + +} diff --git a/assets/pages/scripts/home/newsnotice.js b/assets/pages/scripts/home/newsnotice.js new file mode 100644 index 0000000..7da952f --- /dev/null +++ b/assets/pages/scripts/home/newsnotice.js @@ -0,0 +1,74 @@ +/** + * Created by mac on 18/5/28. + */ +var id = sessionStorage.getItem('newsid'); + // flag 1 为副标题 + // flag 0 为段落内容 +var newsArr ; +if(id==1){ + newsArr = [ + { + flag:0, + con:'作为本市首部停车治理的地方性法规,《北京市机动车停车条例》于今年3月30日获北京市人大常委会表决通过,5月1日起正式施行。《条例》最打眼之处就是首提“共享停车”概念,即“推进单位或者个人开展停车泊位有偿错时共享”。在《条例》正式实施即将满月之际,北京青年报派出多路记者深入社区、单位、胡同探访后发现,共享停车的真实现状令人担忧。为何出现地方法规有了规定却难执行的情况?共享停车推行中到底阻力何在?于今年3月30日获北京市人大常委会表决通过,5月1日起正式施行。《条例》最打眼之处就是首提“共享停车”概念,即“推进单位或者个人开展停车泊位有偿错时共享”。在《条例》正式实施即将满月之际,北京青年报派出多路记者深入社区、单位、胡同探访后发现,共享停车的真实现状令人担忧。为何出现地方法规有了规定却难执行的情况?共享停车推行中到底阻力何在?' + }, + { + flag:0, + con:'作为本市首部停车治理的地方性法规,《北京市机动车停车条例》于今年3月30日获北京市人大常委会表决通过,5月1日起正式施行。《条例》最打眼之处就是首提“共享停车”概念,即“推进单位或者个人开展停车泊位有偿错时共享”。在《条例》正式实施即将满月之际,北京青年报派出多路记者深入社区、单位、胡同探访后发现,共享停车的真实现状令人担忧。为何出现地方法规有了规定却难执行的情况?共享停车推行中到底阻力何在?' + }, + { + flag:1, + con:'01' + }, + { + flag:1, + con:'停车政策密集出台' + }, + { + flag:0, + con:'作为本市首部停车治理的地方性法规,《北京市机动车停车条例》于今年3月30日获北京市人大常委会表决通过,5月1日起正式施行。《条例》最打眼之处就是首提“共享停车”概念,即“推进单位或者个人开展停车泊位有偿错时共享”。在《条例》正式实施即将满月之际,北京青年报派出多路记者深入社区、单位、胡同探访后发现,共享停车的真实现状令人担忧。为何出现地方法规有了规定却难执行的情况?共享停车推行中到底阻力何在?' + }, + { + flag:0, + con:'作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规,《北京市机动车停车条例》于今年3月30日获北京市人大常委会表决通过,5月1日起正式施行。《条例》最打眼之处就是首提“共享停车”概念,即“推进单位或者个人开展停车泊位有偿错时共享”。在《条例》正式实施即将满月之际,北京青年报派出多路记者深入社区、单位、胡同探访后发现,共享停车的真实现状令人担忧。为何出现地方法规有了规定却难执行的情况?共享停车推行中到底阻力何在?' + } + + ]; +}else if(id == 2){ + newsArr = [ + { + flag:0, + con:'12312312' + }, + { + flag:0, + con:'作为本市首部停车治理的地方性法规,《北京市机动车停车条例》于今年3月30日获北京市人大常委会表决通过,5月1日起正式施行。《条例》最打眼之处就是首提“共享停车”概念,即“推进单位或者个人开展停车泊位有偿错时共享”。在《条例》正式实施即将满月之际,北京青年报派出多路记者深入社区、单位、胡同探访后发现,共享停车的真实现状令人担忧。为何出现地方法规有了规定却难执行的情况?共享停车推行中到底阻力何在?于今年3月30日获北京市人大常委会表决通过,5月1日起正式施行。《条例》最打眼之处就是首提“共享停车”概念,即“推进单位或者个人开展停车泊位有偿错时共享”。在《条例》正式实施即将满月之际,北京青年报派出多路记者深入社区、单位、胡同探访后发现,共享停车的真实现状令人担忧。为何出现地方法规有了规定却难执行的情况?共享停车推行中到底阻力何在?作为本市首部停车治理的地方性法规,《北京市机动车停车条例》于今年3月30日获北京市人大常委会表决通过,5月1日起正式施行。《条例》最打眼之处就是首提“共享停车”概念,即“推进单位或者个人开展停车泊位有偿错时共享”。在《条例》正式实施即将满月之际,北京青年报派出多路记者深入社区、单位、胡同探访后发现,共享停车的真实现状令人担忧。为何出现地方法规有了规定却难执行的情况?共享停车推行中到底阻力何在?' + }, + { + flag:1, + con:'01' + }, + { + flag:1, + con:'停车政策密集出台' + }, + { + flag:0, + con:'作为本市首部停车治理的地方性法规,《北京市机动车停车条例》于今年3月30日获北京市人大常委会表决通过,5月1日起正式施行。《条例》最打眼之处就是首提“共享停车”概念,即“推进单位或者个人开展停车泊位有偿错时共享”。在《条例》正式实施即将满月之际,北京青年报派出多路记者深入社区、单位、胡同探访后发现,共享停车的真实现状令人担忧。为何出现地方法规有了规定却难执行的情况?共享停车推行中到底阻力何在?' + }, + { + flag:0, + con:'作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规作为本市首部停车治理的地方性法规,《北京市机动车停车条例》于今年3月30日获北京市人大常委会表决通过,5月1日起正式施行。《条例》最打眼之处就是首提“共享停车”概念,即“推进单位或者个人开展停车泊位有偿错时共享”。在《条例》正式实施即将满月之际,北京青年报派出多路记者深入社区、单位、胡同探访后发现,共享停车的真实现状令人担忧。为何出现地方法规有了规定却难执行的情况?共享停车推行中到底阻力何在?' + } + + ]; +}else{ + +}; +$.each(newsArr,function (i,item) { + if(item.flag == 0){ + $('#news-content').append('
  • '+item.con+'
  • ') + }else{ + $('#news-content').append('
  • '+item.con+'
  • ') + } +}) + diff --git a/assets/pages/scripts/home/notice.js b/assets/pages/scripts/home/notice.js new file mode 100644 index 0000000..0463cd9 --- /dev/null +++ b/assets/pages/scripts/home/notice.js @@ -0,0 +1,37 @@ + +$(function(){ +/** + * 获取公共通知类型 + */ +function createNoticContent(){ + var url = getQueryString('url'); + $('#content').empty(); + var protocol = window.location. protocol; + var host = window.location.host; + + var urlPre = protocol+'//' +host+'/' + console.log(urlPre) + $('#content').load(urlPre+'admin/SubMenus/'+url); + // $('#content').load(urlPre+'activity_notice/html/'+url); + + //$('#content').load('http://47.96.41.38/activity_notice/html/'+url); +} + + +/** + * 根据名称获取URL后的查询参数 + * @param name + * @returns {null} + */ +function getQueryString(name) { + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); + var r = window.location.search.substr(1).match(reg); + if (r != null) return unescape(r[2]); return null; +} + + +/** + * 调用 + */ +createNoticContent(); +}); \ No newline at end of file diff --git a/assets/pages/scripts/home/parksingledetail.js b/assets/pages/scripts/home/parksingledetail.js new file mode 100644 index 0000000..128aa7b --- /dev/null +++ b/assets/pages/scripts/home/parksingledetail.js @@ -0,0 +1,626 @@ +/** + * Created by mac on 17/12/13. + */ +//获取 上一个搜索页面传来的参数 + +function GetQueryString(name) { + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); + var r = window.location.search.substr(1).match(reg); + if (r != null)return decodeURI(r[2]); + return null; +} +// var searchUrl = window.location.href; +// var searchData = searchUrl.split("="); //截取 url中的“=”,获得“=”后面的参数 +//停车场名称 +var plName = decodeURI(GetQueryString('plName')); //decodeURI解码 +//停车场类型 +var plType = decodeURI(GetQueryString('type')); +//停车场编码 +var plNo = decodeURI(GetQueryString('plNo')); +//停车场总车位数 +var totalBerthsNum = decodeURI(GetQueryString('totalBerthsNum')); + +$("#searchText span").text(plName); + + +var vehicleChart = echarts.init(document.getElementById('vehicleChart')); +var vehicleoption = { + color: ['rgba(38,190,150,.8)', 'rgba(67,158,218,.8)'], + tooltip: { + trigger: 'axis' + }, + + grid: { + top: '5%', + left: '3%', + right: '4%', + bottom: '5%', + containLabel: true + }, + + xAxis: { + type: 'category', + boundaryGap: true, + data: ['1日', '2日', '3日', '4日', '5日', '6日', '7日'], + // data: xAxisData, + axisLabel: { + show: true, + textStyle: { + color: 'rgba(136,137,144,.8)', + } + }, + axisTick: { + show: false, + }, + axisLine: { + show: false + }, + + }, + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(136,137,144,.8)', + } + }, + axisTick: { + show: false, + }, + axisLine: { + show: false + }, + }, + series: [ + { + name: '近7天收费趋势', + type: 'line', + data: [], + symbol:'image://../../assets/pages/img/symbol.png', + symbolOffset:[0,0], + symbolSize:16, + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ + offset: 0, + color: '#8ec6ad', + }, { + offset: 1, + color: 'rgba(142,198,173,.1)' + + }]) + } + }, + // data: seriesInCount, + + }, + + ] +}; + +vehicleChart.setOption(vehicleoption, true); +window.onresize = function () { + vehicleChart.resize(); +} + + +var fun = { + init: function () { + fun.incomeTrendCharts(7); + fun.todayParkCarNumStatic([plNo]); + fun.todayInCome([plNo]); + fun.todayOccupyRate([plNo]); + fun.createTableData(); + fun.parkLotDetailInfo([plNo]); + }, + //近几天收入趋势折线图 num为第几天 + incomeTrendCharts: function (num) { + var startDate = new Date(); + var endDate = new Date(); + startDate.setSeconds(0); + startDate.setHours(0); + startDate.setMinutes(0); + startDate.setDate(startDate.getDate() - num); + endDate.setDate(endDate.getDate() - 1); + var req = { + sysCode: sysComm.sysCode, + plNos: [plNo], + startDate: startDate.getTime(), + endDate: endDate.getTime() + } + var inComeAjax = { + method: "post", + url: dataUrl.util.queryIncomeOfDay(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + fun.handelIncomeTrendData(data); + } + } + }; + sysAjax(inComeAjax); + + }, + handelIncomeTrendData: function (data) { + var dateArray = []; + var incomeArray = []; + $.each(data, function (index, item) { + dateArray.push(item.dayStr); + incomeArray.push(fun.moneyFormatter(item.inCome)); + }) + vehicleoption.xAxis.data = dateArray; + console.log(incomeArray) + vehicleoption.series[0].data = incomeArray; + vehicleChart.setOption(vehicleoption, true); + }, + //今日停车次数统计 + todayParkCarNumStatic: function (plNos) { + var beginTime = DateUtil.dataFormat(new Date().getTime(), "yyyy-MM-dd") + " 00:00:00"; + var endTime = DateUtil.dataFormat(new Date().getTime(), "yyyy-MM-dd") + " 23:59:59"; + var req = { + sysCode: sysComm.sysCode, + parkIdList: plNos, + beginTime: beginTime, + endTime: endTime, + }; + var inComeAjax = { + method: "post", + url: dataUrl.util.queryParingCount(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + fun.handelParkCarNumStaticData(data); + } + } + }; + sysAjax(inComeAjax); + }, + //处理停车次数统计 + handelParkCarNumStaticData: function (data) { + + var allCount = data[0].escapeCount + data[0].freeParkingCount + data[0].temporaryParkingCount + data[0].dayOrMonthCardParkCount; + //进场车数量 + $('#inParkNum').html(allCount); + //出场车数量 + $('#outParkNum').html(0); + if (plType == 1) { + //免费开闸 或者 逃逸的数量 + + $('#freeCarNum').html(data[0].freeParkingCount); + $("#freeCarNum").attr('data-value',data[0].freeParkingCount); + $("#freeCarNum").counterUp({ + delay: 10, + time: 1000 + }); + } else { + //免费开闸 或者 逃逸的数量 + $('#freeCarNum').html(data[0].freeParkingCount); + $("#freeCarNum").attr('data-value',data[0].freeParkingCount); + $("#freeCarNum").counterUp({ + delay: 10, + time: 1000 + }); + } + + + }, + //今日收入-按路侧、封闭进行区分 + todayInCome:function(plNos) { + var req = { + sysCode: sysComm.sysCode, + parkIdList: plNos, + }; + var inComeAjax = { + method: "post", + url: dataUrl.util.getTodayIncome(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var result = res.data; + var html = ''; + html+=getMoneyYuan(result.payedTotalAmount)+getMoneySmallNumber(result.payedTotalAmount); + $("#todayIncom").html(html); + $("#todayIncom").attr('data-value',html); + $("#todayIncom").counterUp({ + delay: 10, + time: 1000 + }); + } + + } + } + sysAjax(inComeAjax); + }, + //今日占用率 + todayOccupyRate:function(plNos) { + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + } + var opt = { + method: 'post', + url: dataUrl.util.getRealtimeoccupationRate(), + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var data = res.data; + var freeBerth = data.freeBerthNum; + $("#freeBerth").html(freeBerth); + $("#freeBerth").attr('data-value',freeBerth); + $("#freeBerth").counterUp({ + delay: 10, + time: 1000 + }); + + } + } + } + sysAjax(opt); + }, + //生成表格数据 + createTableData: function() { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + //pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + showColumns: false, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'createTime', + title: '日期', + width: '30%', + align: 'left', + formatter:fun.datetimeFormatter + }, + { + field: 'parkName', + title: '停车场', + width: '30%', + align: 'left' + }, + + { + field: 'orderTotalFee', + title: '金额(元)', + width: '20%', + align: 'left', + formatter: fun.moneyFormatter + }, + { + field: 'payType', + title: '支付方式', + width: '20%', + align: 'left', + formatter: fun.payTypeFormatter + } + + ] + }); + + }, + //停车场车位详情 + parkLotDetailInfo:function(plNos){ + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + } + var opt = { + method: 'post', + url: dataUrl.util.queryParkLotCarDetailInfo(), + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var data = res.data; + fun.handelParkLotDetailInfo(data); + } + } + } + sysAjax(opt); + + }, + //处理车位详情信息 + handelParkLotDetailInfo:function(datas){ + var rate = 0; + //今日进出车量 + $('#inParkNum').text(datas[0].inCarNum); + $('#outParkNum').text(datas[0].outCarNum); + + //场内车辆 + $('#allCarNum').text(datas[0].allCarNum+'/'+totalBerthsNum); + rate = ((datas[0].allCarNum)/totalBerthsNum*100).toFixed(2)+'%'; + $(".per-pross-first").eq(0).css("width",rate); + $(".per-pross-icon").eq(0).css("left",rate); + //场内授权车辆 + $('#vipCarNum').text(datas[0].vipCarNum+'/'+totalBerthsNum); + rate = ((datas[0].vipCarNum)/totalBerthsNum*100).toFixed(2)+'%'; + $(".per-pross-first").eq(1).css("width",rate); + $(".per-pross-icon").eq(1).css("left",rate); + //场内临时车辆 + $('#tmpCar').text(datas[0].tmpCar+'/'+totalBerthsNum); + rate = ((datas[0].tmpCar)/totalBerthsNum*100).toFixed(2)+'%'; + $(".per-pross-first").eq(2).css("width",rate); + $(".per-pross-icon").eq(2).css("left",rate); + + + }, + //金额处理 + moneyFormatter:function (value) { + // console.log(typeof value) + if(value==0 || value==undefined || value==null){ + return 0; + }else{ + return (value/100).toFixed(2); + } + }, + //时间处理 + datetimeFormatter: function(value, row, index) { + if(value == null) { + return ""; + } else { + return DateUtils.long2String(value, 1); + } + }, + + +} +tableLoadRequest(); +//支付方式 +function payTypeFormatter(value){ + if(value == null) { + return ""; + } + switch (value){ + case 1: + return '支付宝'; + break; + case 2: + return '微信'; + break; + case 3: + return '银联'; + break; + case 4: + return '微信公众号'; + break; + case 5: + return '账户余额'; + break; + case 6: + return '现金'; + break; + case 7: + return 'IC卡'; + break; + default: + break; + } +}; +//金额处理 +function moneyFormatter(value) { + // console.log(typeof value) + if(value==0 || value==undefined || value==null){ + return 0; + }else{ + return (value/100).toFixed(2); + } +}; +//时间处理 + function datetimeFormatter(value) { + if(value == null) { + return ""; + } else { + return DateUtils.long2String(value, 1); + } +}; +function tableLoadRequest(params) { + var count = 20; + var req={ + sysCode:sysComm.sysCode, + count:count, + parkIds:[plNo] + }; + + var opt = { + method: 'post', + url: dataUrl.util.queryRecentOutParkOrder(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + + var data = res.data; + $('#breakNewsList').empty(); + $.each(data,function (i,item) { + console.log(item.createTime); + $('#breakNewsList').append('
  • '+datetimeFormatter(item.createTime)+'
    '+item.parkName+'
    '+moneyFormatter(item.orderTotalFee)+'
    '+payTypeFormatter(item.payType)+'
  • ') + }) + // data.rows = res.data; + // data.total = count; + // params.success(data); + + } + } + }; + sysAjax(opt); +} + +fun.init(); +//金额处理 取整元 +function getMoneyYuan(value){ + return parseInt(value / 100); +} +//金额处理-取角、分 .34 +function getMoneySmallNumber(value){ + var money = (value / 100).toFixed(2); + return money.slice(money.length-3,money.length); +} + +function ScrollText(content,btnPrevious,btnNext,autoStart,timeout,isSmoothScroll) +{ + this.Speed = 5; + this.Timeout = timeout; + this.stopscroll =false; + this.isSmoothScroll= isSmoothScroll; + this.LineHeight = 20; + this.NextButton = this.$(btnNext); + this.PreviousButton = this.$(btnPrevious); + this.ScrollContent = this.$(content); + this.ScrollContent.innerHTML += this.ScrollContent.innerHTML; + + if(this.PreviousButton) + + { + this.PreviousButton.onclick = this.GetFunction(this,"Previous"); + this.PreviousButton.onmouseover = this.GetFunction(this,"MouseOver"); + this.PreviousButton.onmouseout = this.GetFunction(this,"MouseOut"); + } + if(this.NextButton){ + this.NextButton.onclick = this.GetFunction(this,"Next"); + this.NextButton.onmouseover = this.GetFunction(this,"MouseOver"); + this.NextButton.onmouseout = this.GetFunction(this,"MouseOut"); + } + this.ScrollContent.onmouseover = this.GetFunction(this,"MouseOver"); + this.ScrollContent.onmouseout = this.GetFunction(this,"MouseOut"); + + if(autoStart) + { + this.Start(); + } +} + +ScrollText.prototype = { + + $:function(element) + { + return document.getElementById(element); + }, + Previous:function() + { + this.stopscroll = true; + this.Scroll("up"); + }, + Next:function() + { + this.stopscroll = true; + this.Scroll("down"); + }, + Start:function() + { + if(this.isSmoothScroll) + { + this.AutoScrollTimer = setInterval(this.GetFunction(this,"SmoothScroll"), this.Timeout); + } + else + { + this.AutoScrollTimer = setInterval(this.GetFunction(this,"AutoScroll"), this.Timeout); + } + }, + Stop:function() + { + clearTimeout(this.AutoScrollTimer); + this.DelayTimerStop = 0; + }, + MouseOver:function() + { + this.stopscroll = true; + }, + MouseOut:function() + { + this.stopscroll = false; + }, + AutoScroll:function() + { + if(this.stopscroll) + { + return; + } + this.ScrollContent.scrollTop++; + if(parseInt(this.ScrollContent.scrollTop) % this.LineHeight != 0) + { + this.ScrollTimer = setTimeout(this.GetFunction(this,"AutoScroll"), this.Speed); + } + else + { + if(parseInt(this.ScrollContent.scrollTop) >= parseInt(this.ScrollContent.scrollHeight) / 2) + { + this.ScrollContent.scrollTop = 0; + } + clearTimeout(this.ScrollTimer); + //this.AutoScrollTimer = setTimeout(this.GetFunction(this,"AutoScroll"), this.Timeout); + } + }, + SmoothScroll:function() + { + if(this.stopscroll) + { + return; + } + this.ScrollContent.scrollTop++; + if(parseInt(this.ScrollContent.scrollTop) >= parseInt(this.ScrollContent.scrollHeight) / 2) + { + this.ScrollContent.scrollTop = 0; + } + }, + Scroll:function(direction) + { + + if(direction=="up") + { + this.ScrollContent.scrollTop--; + } + else + { + this.ScrollContent.scrollTop++; + } + if(parseInt(this.ScrollContent.scrollTop) >= parseInt(this.ScrollContent.scrollHeight) / 2) + { + this.ScrollContent.scrollTop = 0; + } + else if(parseInt(this.ScrollContent.scrollTop)<=0) + { + this.ScrollContent.scrollTop = parseInt(this.ScrollContent.scrollHeight) / 2; + } + + if(parseInt(this.ScrollContent.scrollTop) % this.LineHeight != 0) + { + this.ScrollTimer = setTimeout(this.GetFunction(this,"Scroll",direction), this.Speed); + } + }, + GetFunction:function(variable,method,param) + { + return function() + { + variable[method](param); + } + } +} + +function ignoreError() { + return true; +} +window.onerror = ignoreError; +var scroll2 = new ScrollText("breakNewsList","pre2","next2",true,50,true); +scroll2.LineHeight = 63; diff --git a/assets/pages/scripts/home/weekly.js b/assets/pages/scripts/home/weekly.js new file mode 100644 index 0000000..f9db3f1 --- /dev/null +++ b/assets/pages/scripts/home/weekly.js @@ -0,0 +1,387 @@ +var fun={ + init:function () { + fun.weekLineEchartsdata(); + fun.weekRankEchartsdata(); + fun.weekCirlceEchartsdata(); + fun.weekCreateTableData(); + }, + //收入折线图 + weekLineEchartsdata:function () { + var incomeecharts = echarts.init(document.getElementById('weekly-linechart')); + var incomeoption = { + color:['#5fe98f'], + tooltip: { + trigger: 'item', + + backgroundColor: '#5fe98f', + // extraCssText: 'box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);', + borderColor:'#5fe98f', + padding:0, + textStyle:{ + color:'#fff', + fontSize:'14px', + fontFamily:'微软雅黑' + }, + + // extraCssText: 'box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);', + formatter:function (params) { + var str =''; + //console.log(params) + // str +='
    '+params.data+'元
    '; + str +='
    4元
    '; + return str; + }, + extraCssText:'border-radius:20px!important;' + }, + // legend: { + // top: '0', + // right: '24', + // + // }, + grid: { + top: '13%', + left: '2%', + right: '4%', + bottom: '2%', + containLabel: true + }, + + xAxis: { + type: 'category', + boundaryGap: false, + data:['05/21','05/22','05/23','05/24','05/25','05/26','05/27'], + + axisLabel: { + interval:0, + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + // splitNumber:10, + // minInterval:2, + axisTick: { + show: false, + }, + axisLine: { + show: false + }, + splitLine:{ + lineStyle:{ + color:'#f0f0f2', + } + } + }, + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + axisTick: { + show: false, + }, + axisLine: { + show: false + }, + splitLine:{ + lineStyle:{ + color:'#f0f0f2', + } + } + }, + series: [ + { + name: '近7日收入折线图', + type: 'line', + data:[53,26,57,33,67,88,345], + symbol:'circle', + symbolSize:10, + itemStyle : { + normal : { + lineStyle:{ + color:'#f0f0f2', + } + } + }, + areaStyle: { + normal: { + color: '#effdf4' + } + }, + lineStyle: { + normal: { + color:'#5fe98f', + width:2, + } + } + }, + + ] + }; + incomeecharts.setOption(incomeoption, true); + //自适应 + window.onresize = function(){ + incomeecharts.resize(); + }; + }, + //收入排行条形图 + weekRankEchartsdata:function () { + var rankecharts = echarts.init(document.getElementById('weekly-rankechart')); + var rankoption = { + tooltip: { + trigger: 'axis', + show:false, + axisPointer: { + type: 'shadow' + } + }, + grid: { + top: '0%', + left: '2%', + right: '4%', + bottom: '2%', + containLabel: true + }, + xAxis: { + type: 'value', + scale: false, + show:false, + splitLine:{ + show:false + } + // boundaryGap: [0, 0.01] + }, + yAxis: { + scale: true, + axisTick: { + show: false, + }, + axisLine: { + show: false + }, + splitLine:{ + show:false + }, + type: 'category', + data: ["扬中", "南京", "广州", "天津", "无锡", "常德", "赤峰", "北京昌平区文化中心", "北京东城区文化中心", "北京西城区文化中心"], + axisLabel: { + interval:0, + show: true, + textStyle: { + color: 'rgba(0,0,0,0.6)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + }, + series: [ + { + name: '收入', + type: 'bar', + itemStyle: { + normal:{ + color: function (params){ + var colorList = ["#a5dff3", "#5dc2c3", "#fd714b", "#50c0f5", "#2bb97f", "#5ed8a6", "#50c0f5", "#fdc94d", "#5fe98f", "#1e95cd"]; + return colorList[params.dataIndex]; + } + }, + }, + label:{ + position:'right', + show:true, + formatter:'{c}元', + color: 'rgba(0,0,0,.6)', + fontSize:'12px', + fontFamily: '微软雅黑' + }, + data: [12333, 13893, 23823, 32937, 43893, 53293,63232, 73209, 73509,80982] + }, + + + ] + }; + rankecharts.setOption(rankoption, true); + //自适应 + window.onresize = function(){ + rankecharts.resize(); + }; + }, + //在线支付占比 + weekCirlceEchartsdata:function () { + var dcsbChart = echarts.init(document.getElementById('weekly-zfzbechart')); + var dcsboption = { + title: { + text: '80%', + textStyle:{ + color:'#000', + fontSize:'18', + align:'center', + fontFamily:'微软雅黑' + }, + top:'115', + left:'center' + }, + legendHoverLink: false, + series: [ + { + name:'', + type:'pie', + radius:'80%', + center:['50%','50%'], + legendHoverLink: false, + avoidLabelOverlap: false, + startAngle :180, + hoverAnimation:false, + label:{normal: {show: false}}, + data:[ + {value:50, name:'',itemStyle:{normal:{color:'#edf7fb'},emphasis:{color:'#edf7fb'}}, label:{normal: {show: false}}}, + {value:50, name:'',itemStyle:{normal:{color:'#edf7fb'},emphasis:{color:'#edf7fb'}}, label:{normal: {show: false}}} + ] + }, + { + name:'支付占比', + type:'pie', + radius: ['88%', '98%'], + center:['50%','50%'], + legendHoverLink: false, + avoidLabelOverlap: false, + hoverAnimation:false, + // hoverOffset:0, + startAngle :180, + color:['#5fe98f','#d5d8d8'], + label: { + normal: { + show: false, + position: 'inside', + formatter:'{c}%' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontWeight: 'bold' + } + } + + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + + {value:2, name:'20~25岁',itemStyle:{normal:{color:'#5fe98f'},emphasis:{color:'#5fe98f'}}, label:{normal: {show: false}}}, + {value:2, name:'25~30岁',itemStyle:{normal:{color:'#d5d8d8'},emphasis:{color:'#d5d8d8'}}, label:{normal: {show: false}}}, + ] + } + ] + }; + dcsbChart.setOption(dcsboption, true); + }, + //table参数 + getQueryParam:function () { + + }, + //表格数据 + weekCreateTableData: function () { + $('#weeklytable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + // sortable: true, //是否启用排序 + // sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + + {field: 'plName', title: '车场名称', width: '20%', align: "left"}, + { + field: 'advFee', + title: ' 应收', + width: '15%', + align: "left", + formatter: fun.moneyFormatter + }, + { + field: 'actFee', + title: ' 实收', + width: '15%', + align: "left", + formatter: fun.moneyFormatter + }, + { + field: 'actFee', + title: ' 免费开闸次数', + width: '15%', + align: "left", + // formatter: fun.moneyFormatter + }, + { + field: 'actFee', + title: ' 免费开闸占比', + width: '15%', + align: "left", + // formatter: fun.moneyFormatter + }, + + ] + }); + }, + //金额处理 + moneyFormatter: function (value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return 0; + } else { + return (value / 100).toFixed(2); + } + }, +}; +fun.init(); +/** + * 默认table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + /* var req = fun.getQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryIncomeStatisticForPark(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt);*/ +} diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/generaloperation-tjqst-title.png b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/generaloperation-tjqst-title.png new file mode 100755 index 0000000..07873fc Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/generaloperation-tjqst-title.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/geo_pop_offonIco.png b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/geo_pop_offonIco.png new file mode 100644 index 0000000..9e018c0 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/geo_pop_offonIco.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/georeceive_smallIcon.png b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/georeceive_smallIcon.png new file mode 100644 index 0000000..78379b6 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/georeceive_smallIcon.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/income-sstj-icon.png b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/income-sstj-icon.png new file mode 100755 index 0000000..dcf4f68 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/income-sstj-icon.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-bws-top.png b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-bws-top.png new file mode 100755 index 0000000..fa790d9 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-bws-top.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-shebei-title.png b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-shebei-title.png new file mode 100755 index 0000000..41e745d Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-shebei-title.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-tip-icon.png b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-tip-icon.png new file mode 100644 index 0000000..dffebae Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-tip-icon.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-zys-top.png b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-zys-top.png new file mode 100755 index 0000000..31b7031 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/sycs-zys-top.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/terrestrial-allmoney.png b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/terrestrial-allmoney.png new file mode 100644 index 0000000..706abed Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/terrestrial-allmoney.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/way-echarts-l.png b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/way-echarts-l.png new file mode 100644 index 0000000..d91bd07 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/way-echarts-l.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/way-echarts-r.png b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/way-echarts-r.png new file mode 100644 index 0000000..57ca06e Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/img/way-echarts-r.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.css b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.css new file mode 100644 index 0000000..2a6494e --- /dev/null +++ b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.css @@ -0,0 +1,206 @@ +/*搜索---------------------------------*/ +.geoday-abspos{ + right: 8%; + z-index: 5; +} +/*单选复选美化*/ +.hide-common-style input[type=checkbox], +.hide-common-style input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.hide-common-style input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.hide-common-style input[type=checkbox]:hover + label{ + background: url('../../../img/input-checkexActive.png') no-repeat 0 center; + +} +.hide-common-style input[type=checkbox]:checked + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.hide-common-style input[type=checkbox]:checked:hover + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} +.hide-common-style input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + margin-right: 24px; +} +.hide-common-style input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +.hide-common-style input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.hide-common-style input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} + + +/*卡片---------------------------------*/ +.sycs-zys-wrap>li{ + padding: 15px 0 20px; +} +.sycs-zys-wrap>li:nth-of-type(1){ + border-bottom: 1px solid #E8E8E8; +} +.sycs-zys-top{ + height: 66px; +} +.sycs-zys-top li:nth-of-type(1){ + padding-left: 24px; + line-height:24px; + height: 24px; +} +.sycs-zys-top li:nth-of-type(2){ + padding-left: 18px; +} +.sycs-zsy-mon{ + display: inline-block; + width: 28px; + height: 24px; + background: url("img/sycs-zys-top.png") no-repeat 0 center; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 20px; +} +.sycs-bws-num{ + display: inline-block; + width: 28px; + height: 24px; + background: url("img/sycs-bws-top.png") no-repeat 0 center; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 20px; +} +.sycs-tip-icon{ + width: 14px; + height: 14px; + background: url("img/sycs-tip-icon.png") no-repeat; + cursor: pointer; +} +.sycs-zys-bottom{ + height: 57px; + +} +.sycs-zys-bottom li{ + padding-left: 20px; + height: 35px; + line-height: 35px; +} +.sycs-zys-bottom li>span:nth-of-type(1){ + margin-right: 20px; +} +.lcbwpjsy-number{ + margin-top: 23px; +} +/*.lcbwpjsy-number-dowm span:after{ + content: ''; + border-top:5px solid #F5222D; + border-left:5px solid transparent; + border-right:5px solid transparent; + border-bottom:5px solid transparent; + position: absolute; + top:50%; + margin-top: -2px; + left:5px; +} +.lcbwpjsy-number-up span:after{ + content: ''; + border-top:5px solid #52C41A; + border-left:5px solid transparent; + border-right:5px solid transparent; + border-bottom:5px solid transparent; + position: absolute; + top:50%; + margin-top: -2px; + left:5px; +}*/ + +.sycs-shebei-title{ + padding: 21px 0 21px 25px; + background: url("img/sycs-shebei-title.png") no-repeat 0 center; +} +.sycs-shebei-echart{ + height: 132px; +} +.sycs-shebei-echart li{ + flex: 1; + height: 132px; + +} + +.tab-btn-wrap li{ + float: left; + padding: 0 15px; + height:32px; + line-height: 32px; + cursor: pointer; + background:rgba(255,255,255,1); + text-align: center; +} +.tab-btn-wrap li:nth-of-type(1){ + border-left:1px solid #D9D9D9; + border-top:1px solid #D9D9D9; + border-bottom:1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2){ + border-right:1px solid #D9D9D9; + border-top:1px solid #D9D9D9; + border-bottom:1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction{ + border: 1px solid #1E95CD; + color: #1E95CD; +} +.georece-echarts-con{ + height: 312px; +} +.georece-tjqst-title .bootstrap-select{ + position: absolute; + right: 0; + z-index: 100; + top:10px; +} +.georece-tjqst-title .bootstrap-select .dropdown-toggle{ + opacity: 0; +} + + + + +/*图例---------------------------------*/ +.georece-tjqst-title { + background: url(img/income-sstj-icon.png) no-repeat 14px center !important; + padding-left: 38px; +} +.georece-echarts-wrap { + height: 349px; +} + + + +/*表格---------------------------------*/ \ No newline at end of file diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.html b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.html new file mode 100644 index 0000000..f882676 --- /dev/null +++ b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.html @@ -0,0 +1,255 @@ +
    +
    + + +
    +
    +
    + +
    +
    + +
    +
    + 日期 +
    + +
    + - +
    + +
    +
    + +
    +
    +
    更多
    +
    +
    +
    查询
    +
    +
    +
    +
    +
    + 白天费率 +
    + + 元/次 +
    +
    +
    + 夜间费率 +
    + + 元/次 +
    +
    +
    + 免费时长 +
    + + 分钟 +
    +
    +
    + + + + +
    + +
    +
    + + +
    +
    +
    +
      +
    • +
        +
      • + 总应收 +
      • +
      • +
        + ¥ +
      • +
      +
    • +
    • +
        +
      • + 路侧泊位平均收益 + +
      • +
      • + 封闭泊位平均收益 + +
      • + +
      +
    • +
    +
    +
    +
    +
    +
      +
    • +
        +
      • + 泊位数 +
      • +
      • +
        + 0 +
        +
      • +
      + +
    • +
    • +
        +
      • + 路侧泊位数 + 0 +
      • +
      • + 封闭泊位数 + 0 +
      • + +
      +
    • +
    +
    +
    +
    +
    +
    设备
    +
      +
    • +
    • +
    +
    +
    + +
    + + +
    +
    +
    +
    + 收入趋势 + +
    +
    + + +
    +
    +
    +
    + +
      +
    • 泊位平均收益
    • +
    • 总收入
    • +
      +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    +
      +
    • 详细记录
    • +
    • + +
    • +
    +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.js b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.js new file mode 100644 index 0000000..68a6091 --- /dev/null +++ b/assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.js @@ -0,0 +1,1900 @@ +var colors = ['#1e95cd', '#5fe98f', '#fdc94d', '#50c0f5', '#5ed8a6', '#2bb97f']; +var fun = { + // ---------------------------------------------初始化 + init: function () { + + //近7天收入下拉多选矿初始化 + $('.parkselectpicker').selectpicker({ + + 'selectedText': '全部', + // width:'150px', + style: 'btn-info', + size: 4, + dropdownAlignRight: 'left', + maxOptions: 5, + noneSelectedText: '请选择停车场' + }); + + $('.parkselectpicker').selectpicker('val', 1);//默认选中 + $('.parkselectpicker').selectpicker('refresh'); + + //初始化 办事处 停车场 + commSelect.area_Pl_LinkedSelect("#georece-transSelecarea", "#georece-transSelectPark",function(item){ + if(item.type == 2){ + return false; + } + return true; + }); + /** 日 时间初始化 **/ + $('#georece-daydaterange-btnsta').val(moment().subtract('days', 7).format('YYYY-MM-DD')); + $('#georece-daydaterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#georece-daydaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#georece-daydaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + /** 月 时间初始化 **/ + $('#georece-monthdaterange-btnsta').val(moment().subtract('months', 6).format('YYYY-MM')); + $('#georece-monthdaterange-btnend').val(moment().subtract('months', 0).format('YYYY-MM')); + //开始日期 + $("#georece-monthdaterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 0).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#georece-monthdaterange-btnend").datetimepicker({ + endDate: moment().subtract('months', 0).format('YYYY-MM'), + //startDate:startVal, + format: 'yyyy-mm', + weekStart: 1, + autoclose: true, + startView: 3, + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + + fun.queryManySelect(); + + fun.queryAllIncomeData(); + fun.initGeoNumsAjax(); + + fun.initMyChartAjax(); + //fun.lineSyEcharts('georeceEcharts', '泊位平均收益'); + + fun.queryIncomeCalculationGroupByPlNoForNum(); + + + }, + queryManySelect: function () { + var data = JSON.parse($('#georece-transSelectPark').val()); + //var data2 = $('#georece-transSelectPark').text(); + console.log(data); + //console.log(data2); + $("#parkselectpicker").empty(); + var html = ''; + var plNames = fn.getPlNamesByPlNos(data); + //console.log() + if (data.length > 1) { + // var plnosStr = JSON.stringify(data); + // html = '' + html; + for (var i = 0; i < data.length; i++) { + html += ""; + } + } else { + html = '' + html; + } + + + $("#parkselectpicker").append(html); + $("#parkselectpicker").selectpicker('refresh'); + }, + /*获取查询参数*/ + getQueryParamForIncome: function () { + var plNos = JSON.parse($('#georece-transSelectPark').val()); + /**统计分类 1、日 2、周、3 月**/ + var timeType = $('#queryType').val(); + /** 按时或次 1、按时 2、按次**/ + var billType = $("#incomeBillType").val(); + + /*开始时间*/ + var beginTime; + /*结束时间*/ + var endTime; + //日 + if (3 == parseInt(timeType)) { + beginTime = $("#georece-monthdaterange-btnsta").val(); + endTime = $("#georece-monthdaterange-btnend").val(); + beginTime = beginTime + "-01 00:00:00"; + var dates = endTime.split("-"); + if (dates[1] == '02') { + endTime = endTime + "-28 23:59:59"; + } else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07' + || dates[1] == '08' || dates[1] == '10' || dates[1] == '12') { + endTime = endTime + "-31 23:59:59"; + } else { + endTime = endTime + "-30 23:59:59"; + } + + } else { + beginTime = $("#georece-daydaterange-btnsta").val(); + endTime = $("#georece-daydaterange-btnend").val(); + beginTime = beginTime + " 00:00:00"; + endTime = endTime + " 23:59:59"; + } + + + var freeTimeLength = $("#free-timesLen").val(); + var singleDayTop = 120; + var dayMinAmount = $("#day-rateVal").val(); + var dayMaxAmount = $("#day-rateVal").val(); + var dayMinAmountAfter = $("#day-rateVal").val(); + var dayMaxAmountAfter = $("#day-rateVal").val(); + var nightMaxAmountAfter = $("#night-rateVal").val(); + var nightMinAmountAfter = $("#night-rateVal").val(); + var nightMinAmount = $("#night-rateVal").val(); + var nightMaxAmount = $("#night-rateVal").val(); + + + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + var req = { + plNos: plNos, + freeTimeLength: freeTimeLength, + singleDayTop: singleDayTop * 100, + beginTime: beginTime, + endTime: endTime, + dayMinAmount: dayMinAmount * 100, + dayMaxAmount: dayMaxAmount * 100, + nightMinAmount: nightMinAmount * 100, + nightMaxAmount: nightMaxAmount * 100, + dayMinAmountAfter: dayMinAmountAfter * 100, + nightMinAmountAfter: nightMinAmountAfter * 100, + nightMaxAmountAfter: nightMaxAmountAfter * 100, + dayMaxAmountAfter: dayMaxAmountAfter * 100, + billType: billType, + timeType: timeType, + }; + //如果按时的话,费率按照固定费率 白天:首小时 超过一小时后1元每小时 夜间:免费 设置费率 + /** billType 按时或次 1、按时 2、按次**/ + if (1 == billType) { + // req.dayMinAmount = 300; + // req.dayMaxAmount = 300; + // req.dayMinAmountAfter = 300; + // req.dayMaxAmountAfter = 300; + + // req.nightMinAmount =300 ; + // req.nightMaxAmount = 300; + req.nightMinAmountAfter = 0; + req.nightMaxAmountAfter = 0; + } + + + //console.log(req); + return req; + }, + queryAllIncomeData: function () { + var req = fun.getQueryParamForIncome(); + + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.sysCode = sysComm.sysCode; + req.groupType = 3; + req.timeType = 100; + req.plNos = getPlNosByPlType(req.plNos, 1); + + var opt = { + method: 'post', + url: dataUrl.util.queryIncomeCalculationGroupByPlNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + + + var allAmount = 0.0; + var closeAvgAmount = 0.0; + var openAvgAmount = 0.0; + var closeAmount = 0.0; + var openAmount = 0.0; + var closeBerthNum = 0; + var openBerthNum = 0; + var allBerthNum = 0; + // var berth = fn.getParkLotBerthCountByPlNos(req.plNos); + // console.log(berth); + + if (res.code == '8888') { + var data = res.data; + console.log(data); + + if (data.rows.length > 0) { + var data = data.rows; + for (var index in data) { + var amount = data[index].amount == null ? 0 : data[index].amount; + var berthNum = data[index].berthNum == null ? 0 : data[index].berthNum; + if (1 == parseInt(data[index].plType)) { + openAmount = parseInt(openAmount) + parseInt(amount); + openBerthNum = parseInt(openBerthNum) + parseInt(berthNum); + } else if (2 == parseInt(data[index].plType)) { + closeAmount = parseInt(closeAmount) + parseInt(amount); + closeBerthNum = parseInt(closeBerthNum) + parseInt(berthNum); + } + } + allBerthNum = openBerthNum + closeBerthNum; + // openBerthNum = berth.openBerthNum; + // closeBerthNum = berth.closeBerthNum; + $("#incomeCloseBerthNum").text('0'); + $("#incomeOpenBerthNum").text(openBerthNum); + $("#incomeAllBerthNum").text(openBerthNum); + $("#incomeAllBerthNum").attr('title', openBerthNum); + + allAmount = parseInt(openAmount) + parseInt(closeAmount); + /**3、赋值 ***/ + if (0 != parseInt(openBerthNum)) { + openAvgAmount = (openAmount / (parseInt(openBerthNum) * 100)).toFixed(2); + } + if (0 != parseInt(closeBerthNum)) { + closeAvgAmount = (closeAmount / (parseInt(closeBerthNum) * 100)).toFixed(2); + } + allAmount = (parseInt(allAmount) / 100).toFixed(2); + //这个算出来是泊位数,跟统计地磁数接口算出来的不一致 + //$("#IncomeBerthNum").text(openBerthNum); + + } + + // console.log(allAmount); + // console.log(closeAvgAmount); + // console.log(openAvgAmount); + $("#incomeCloseAmount").text('0'); + $("#incomeOpenAmount").text(openAvgAmount); + $("#incomeAllAmount").text((openAmount / 100).toFixed(0)); + $("#incomeAllAmount").attr('title', (openAmount / 100).toFixed(0)); + + } + } + }; + sysAjax(opt); + }, + queryAllIncomeDataForTime: function () { + var req = fun.getQueryParamForIncome(); + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.sysCode = sysComm.sysCode; + req.plNos = getPlNosByPlType(req.plNos, 1); + //初始化总应收及 路侧、封闭平均收益 + var opt = { + method: 'post', + url: dataUrl.util.getSummationIncomeInfoForPlTypeByTime(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + + if (res.code == '8888') { + var data = res.data; + console.log("全部收益"); + console.log(data); + + var allIncomeData = data[0]; + + allIncomeData = (allIncomeData == undefined || allIncomeData == null) ? {} : allIncomeData; + var lcIncomeData = data[1]; + lcIncomeData = (lcIncomeData == undefined || lcIncomeData == null) ? {} : lcIncomeData; + var fbIncomeData = data[2]; + fbIncomeData = (fbIncomeData == undefined || fbIncomeData == null) ? {} : fbIncomeData; + + //泊位数 + $("#incomeOpenBerthNum").html(lcIncomeData.berthNum == null ? 0 : lcIncomeData.berthNum); + $("#incomeAllBerthNum").html(allIncomeData.berthNum == null ? 0 : allIncomeData.berthNum); + + //路侧平均收益 + $("#incomeOpenAmount").html(lcIncomeData.avgAmount == null ? 0 : (lcIncomeData.avgAmount / 100).toFixed(2)); + //封闭平均收益 + //$("#incomeCloseAmount").html(fbIncomeData.avgAmount == null ? 0 : (fbIncomeData.avgAmount / 100).toFixed(2)); + $("#incomeCloseAmount").html(0); + + + var allIncome = allIncomeData.amount; + allIncome = allIncome == null ? 0 : (allIncome / 100).toFixed(0); + $('#incomeAllAmount').html(allIncome); + $("#incomeAllAmount").attr('title', allIncome); + + } + + } + }; + sysAjax(opt); + + + }, + initGeoNumsAjax: function () { + var reqs = fun.getQueryParamForIncome(); + var req = { + plNos: reqs.plNos, + faultNumTimes: 1,//失败次数大于1次即为异常 + beginTime: DateUtils.long2String(reqs.beginTime, 1), + endTime: DateUtils.long2String(reqs.endTime, 1), + sysCode: sysComm.sysCode + }; + var easyUIOps = { + method: "POST", + url: dataUrl.util.statisticsGeoNumsByStatus(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + var data = res.data; + //console.log("地磁数量统计:",data); + console.log(data.normalNum) + console.log(data.allNum) + if(data.allNum == 0){ + var per = 0; + }else{ + + var per = ((data.normalNum)/data.allNum*100).toFixed(0); + } + var dczxData = [ + {value: per, name: '地磁在线', selected: true}, + {value: 100-per, name: '总计',}, + ]; + fun.drawPie('dczxEcharts', '#1890FF', '地磁在线', data.normalNum, dczxData, '地磁在线'); + + var dzzxData = [ + {value: 0, name: '道闸在线', selected: true}, + {value: 100, name: '总计',}, + ]; + + + fun.drawPie('dzzxEcharts', '#FACC14', '道闸在线', '0', dzzxData, '道闸在线'); + + + } + } + }; + sysAjax(easyUIOps); + }, + //查询停车场收入折线图 + initMyChartAjax: function (manyPlNos) { + + + var req = fun.getQueryParamForIncome(); + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.groupType = 3; + if (manyPlNos != null && manyPlNos != undefined && manyPlNos.length > 0) { + req.plNos = manyPlNos; + } + req.plNos = getPlNosByPlType(req.plNos, 1); + console.log(req.plNos) + req.sysCode = sysComm.sysCode; + var easyUIOps = { + method: "POST", + url: dataUrl.util.queryIncomeCalculationGroupByPlNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res) + if (res.code == '8888') { + var data = res.data.rows; + var xStringData = []; + var xNameData = []; + var seriseData = {}; + var avgSeriseData = {}; + var seriseDataValue = []; + + /**统计分类 1、日 2、周、3 月**/ + var timeType = $('#queryType').val(); + /*开始时间*/ + var StringBeginTime; + /*结束时间*/ + var StringEndTime; + //日 + if (3 == parseInt(timeType)) { + StringBeginTime = $("#georece-monthdaterange-btnsta").val(); + StringEndTime = $("#georece-monthdaterange-btnend").val(); + } else { + StringBeginTime = $("#georece-daydaterange-btnsta").val(); + StringEndTime = $("#georece-daydaterange-btnend").val(); + } + + + var returnData = getxSeriesData(data, req, StringBeginTime, StringEndTime, timeType); + + + xStringData = returnData.xStringData; + seriseDataValue = returnData.seriseDataValue; + var plNosNew = req.plNos; + //console.log(plNosNew); + xNameData = fn.getPlNamesByPlNos(plNosNew); + // console.log(xNameData); + /***判断停车场个数,如果大于5个则汇总为一条直线**/ + if (req.plNos.length > 5) { + xNameData.push('全部'); + var code = 100; + /**创建默认的series **/ + var seriseDataVO = { + code: 100, + name: '全部', + type: 'line', + smooth: true, + data: seriseDataValue.slice(0), + areaStyle: { + normal: { + color: '#1890FF', + opacity: .2 + } + }, + lineStyle: { + normal: { + color: '#1890FF', + width: 2, + } + } + + }; + var avgSeriseDataVO = { + code: 100, + name: '全部', + type: 'line', + smooth: true, + data: seriseDataValue.slice(0), + areaStyle: { + normal: { + color: '#1890FF', + opacity: .2 + } + }, + lineStyle: { + normal: { + color: '#1890FF', + width: 2, + } + } + + }; + seriseData[code] = seriseDataVO; + avgSeriseData[code] = avgSeriseDataVO; + + /** 给series对象赋值****/ + + for (var x in xStringData) { + var berthNum = 0; + var amount = 0; + var avgamount = 0; + for (var allindexThree in data) { + var stringTime = data[allindexThree].staticDate; + if (xStringData[x] == stringTime) { + amount = parseInt(amount) + parseInt(data[allindexThree].amount / 100); + berthNum = parseInt(berthNum) + parseInt(data[allindexThree].berthNum); + } + } + seriseData[100].data[x] = (parseInt(seriseData[100].data[x]) + parseInt(amount)).toFixed(2); + if (parseInt(berthNum) == 0) { + avgSeriseData[100].data[x] = (parseFloat(avgSeriseData[100].data[x]) + parseFloat(amount)).toFixed(2); + } else { + avgamount = amount / berthNum; + avgSeriseData[100].data[x] = (parseFloat(avgSeriseData[100].data[x]) + parseFloat(avgamount)).toFixed(2); + } + } + + + } else { + + + if (data.length > 0) { + for (var indexTwo in data) { + /**2、办事处的多少 ***/ + if (xNameData.indexOf(data[indexTwo].plName) == -1) { + xNameData.push(data[indexTwo].plName); + /**3、创建默认的series **/ + var code = data[indexTwo].plNo; + plNosNew.remove(code); + var seriseDataVO = { + code: code, + name: data[indexTwo].plName, + type: 'line', + smooth: true, + data: seriseDataValue.slice(0), + areaStyle: { + normal: { + color: colors[indexTwo], + opacity: .2 + } + }, + lineStyle: { + normal: { + color: colors[indexTwo], + width: 2, + } + } + + }; + var avgSeriseDataVO = { + code: code, + name: data[indexTwo].plName, + type: 'line', + smooth: true, + data: seriseDataValue.slice(0), + areaStyle: { + normal: { + color: colors[indexTwo], + opacity: .2 + } + }, + lineStyle: { + normal: { + color: colors[indexTwo], + width: 2, + } + } + + } + seriseData[code] = seriseDataVO; + avgSeriseData[code] = avgSeriseDataVO; + } + } + //console.log(seriseData); + /**补齐没有数据的停车场 **/ + var xNameDataNew = fn.getPlNamesByPlNos(plNosNew); + for (var noplno in plNosNew) { + /**2、办事处的多少 ***/ + + /**3、创建默认的series **/ + var code = plNosNew[noplno]; + var seriseDataVO = { + code: code, + name: xNameDataNew[noplno], + type: 'line', + smooth: true, + data: seriseDataValue.slice(0), + areaStyle: { + normal: { + color: colors[plNosNew.length - noplno - 1], + opacity: .2 + } + }, + lineStyle: { + normal: { + color: colors[plNosNew.length - noplno - 1], + width: 2, + } + } + + }; + var avgSeriseDataVO = { + code: code, + name: xNameDataNew[noplno], + type: 'line', + smooth: true, + data: seriseDataValue.slice(0), + areaStyle: { + normal: { + color: colors[plNosNew.length - noplno - 1], + opacity: .2 + } + }, + lineStyle: { + normal: { + color: colors[plNosNew.length - noplno - 1], + width: 2, + } + } + + } + seriseData[code] = seriseDataVO; + avgSeriseData[code] = avgSeriseDataVO; + + } + /** 4、给series对象赋值****/ + for (var x in xStringData) { + for (var indexThree in data) { + var stringTime = data[indexThree].staticDate; + if (xStringData[x] == stringTime) { + var codeTwo = data[indexThree].plNo; + seriseData[codeTwo].data[x] = (data[indexThree].amount / 100).toFixed(2); + + var berthNum = data[indexThree].berthNum; + if (parseInt(berthNum) == 0) { + avgSeriseData[codeTwo].data[x] = (data[indexThree].amount / 100).toFixed(2); + } else { + avgSeriseData[codeTwo].data[x] = (data[indexThree].amount / (berthNum * 100)).toFixed(2); + } + + } + + } + } + } else { + /**查询后端1条数据都没有补齐停车场 **/ + for (var xname in xNameData) { + /**创建默认的series **/ + var code = plNosNew[xname]; + + var seriseDataVO = { + code: plNosNew[xname], + name: xNameData[xname], + type: 'line', + smooth: true, + data: seriseDataValue.slice(0), + areaStyle: { + normal: { + color: colors[xname], + opacity: .2 + } + }, + lineStyle: { + normal: { + color: colors[xname], + width: 2, + } + } + + }; + var avgSeriseDataVO = { + code: plNosNew[xname], + name: xNameData[xname], + type: 'line', + smooth: true, + data: seriseDataValue.slice(0), + areaStyle: { + normal: { + color: colors[xname], + opacity: .2 + } + }, + lineStyle: { + normal: { + color: colors[xname], + width: 2, + } + } + + } + seriseData[code] = seriseDataVO; + avgSeriseData[code] = avgSeriseDataVO; + } + + } + + + } + + console.log(xStringData); + // console.log(xNameData); + // console.log(seriseData); + // console.log(avgSeriseData); + + + // console.log(seriseDataNew); + var incomeindex = $("#incomeindex").val(); + if (incomeindex == 0) { + //console.log(incomeindex); + var avgSeriseDataNew = []; + for (var avgindexFour in avgSeriseData) { + avgSeriseDataNew.push(avgSeriseData[avgindexFour]); + } + fun.lineSyEcharts('georeceEcharts', '泊位平均收益', xStringData, xNameData, avgSeriseDataNew); + } else { + //console.log(incomeindex); + var seriseDataNew = []; + for (var indexFour in seriseData) { + seriseDataNew.push(seriseData[indexFour]); + } + fun.lineSyEcharts('georeceEcharts', '泊位总收益', xStringData, xNameData, seriseDataNew); + } + + + } + } + }; + sysAjax(easyUIOps); + }, + //生成汇总表格数据按时间 + queryIncomeCalculationGroupByPlNoForNum: function () { + /** 按时**/ + $('#georeceTable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers: true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + singleSelect: false, + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: queryIncomeCalculationGroupByPlNo, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'plName', + title: ' 车场名称', + width: '5%', + align: 'left', + formatter: fun.incomeOperFormatter + }, + { + field: 'berthNum', + title: ' 泊位数量', + width: '5%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'amount', + title: ' 应收', + width: '8%', + align: 'left', + formatter: commonObj.moneyFormatter + }, + { + field: 'avgAmount', + title: ' 泊位平均收益', + width: '5%', + align: 'left', + formatter: avgAmountFormatter + }, + { + field: 'allNum', + title: ' 总停车次数', + width: '8%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'freeNum', + title: ' 免费停车次数', + width: '8%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'dayNum', + title: ' 白天停车次数', + width: '8%', + align: 'left', + formatter: dayParkNumFormatter + }, + { + field: 'nightNum', + title: ' 夜间停车次数', + width: '8%', + align: 'left', + formatter: nightParkNumFormatter + } + ] + }); + + + }, + queryIncomeCalculationGroupByPlNoForTime: function () { + /** 按时**/ + $('#georeceTable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers: true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + singleSelect: false, + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: queryIncomeCalculationGroupByPlNo, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'plName', + title: ' 车场名称', + width: '5%', + align: 'left', + formatter: fun.incomeOperFormatter + }, + { + field: 'berthNum', + title: ' 泊位数量', + width: '5%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'amount', + title: ' 应收', + width: '8%', + align: 'left', + formatter: commonObj.moneyFormatter + }, + { + field: 'avgAmount', + title: ' 泊位平均收益', + width: '5%', + align: 'left', + formatter: avgAmountFormatter + }, + { + field: 'avgParkDuration', + title: ' 泊位平均时长', + width: '5%', + align: 'left', + formatter: avgParkDurationFormatter + }, + { + field: 'allParkDuration', + title: ' 总停车时长', + width: '8%', + align: 'left', + formatter: avgParkDurationFormatter + }, + { + field: 'allNum', + title: ' 总停车次数', + width: '8%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'freeNum', + title: ' 免费停车次数', + width: '8%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'dayNum', + title: ' 白天停车次数', + width: '8%', + align: 'left', + formatter: dayParkNumFormatter + }, + { + field: 'nightNum', + title: ' 夜间停车次数', + width: '8%', + align: 'left', + formatter: nightParkNumFormatter + } + ] + }); + + + }, + + //操作显示 + incomeOperFormatter: function (value, row, index) { + + var operStr = '' + (value==null? '-':value) + ''; + return operStr; + }, + + incomeLookOper: function (element) { + + $('#popAreaname').text(''); + var plName = $(element).attr('plname'); + $('#popAreaname').text(plName); + var plNo = $(element).attr('plno'); + parkIdList = []; + parkIdList.push(plNo); + + /** 按时或次 1、按时 2、按次**/ + var billType = $("#incomeBillType").val(); + if (1 == parseInt(billType)) { + /** 按时**/ + $('#incometable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers: true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + singleSelect: false, + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: getIncomeCalculationForOne, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'staticDate', + title: ' 周期', + width: '5%', + align: 'left' + }, + { + field: 'berthNum', + title: ' 泊位数量', + width: '5%', + align: 'left' + }, + { + field: 'amount', + title: ' 应收', + width: '8%', + align: 'left', + formatter: moneyFormatter + }, + { + field: 'avgAmount', + title: ' 泊位平均收益', + width: '5%', + align: 'left', + formatter: avgAmountFormatter + }, + { + field: 'avgParkDuration', + title: ' 泊位平均时长', + width: '5%', + align: 'left', + formatter: avgParkDurationFormatter + }, + { + field: 'allParkDuration', + title: ' 总停车时长', + width: '8%', + align: 'left', + formatter: avgParkDurationFormatter + }, + { + field: 'allNum', + title: ' 总停车次数', + width: '8%', + align: 'left' + }, + { + field: 'freeNum', + title: ' 免费停车次数', + width: '8%', + align: 'left' + }, + { + field: 'dayNum', + title: ' 白天停车次数', + width: '8%', + align: 'left', + formatter: dayParkNumFormatter + }, + { + field: 'nightNum', + title: ' 夜间停车次数', + width: '8%', + align: 'left', + formatter: nightParkNumFormatter + } + ] + }); + } else { + $('#incometable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers: true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + singleSelect: false, + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: getIncomeCalculationForOne, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'staticDate', + title: ' 周期', + width: '5%', + align: 'left' + }, + { + field: 'berthNum', + title: ' 泊位数量', + width: '5%', + align: 'left' + }, + { + field: 'amount', + title: ' 应收', + width: '8%', + align: 'left', + formatter: moneyFormatter + }, + { + field: 'avgAmount', + title: ' 泊位平均收益', + width: '5%', + align: 'left', + formatter: avgAmountFormatter + }, + { + field: 'allNum', + title: ' 总停车次数', + width: '8%', + align: 'left' + }, + { + field: 'freeNum', + title: ' 免费停车次数', + width: '8%', + align: 'left' + }, + { + field: 'dayNum', + title: ' 白天停车次数', + width: '8%', + align: 'left', + formatter: dayParkNumFormatter + }, + { + field: 'nightNum', + title: ' 夜间停车次数', + width: '8%', + align: 'left', + formatter: nightParkNumFormatter + } + ] + }); + + } + + $('#income_myModal').modal('show'); + + + }, + + // ---------------------------------------------搜索 + + + // ---------------------------------------------图例 + drawPie: function (id, color, subtext, text, seriesData, seriesName) { + + var chart = echarts.init(document.getElementById(id)); + chart.setOption( + { + color: [color, '#D7D7D7'], + title: { + subtext: text + "", + text: subtext, + textStyle: { + color: 'rgba(0,0,0,0.45)', + fontSize: '14', + align: 'middle', + verticalAlign: 'middle', + }, + subtextStyle: { + color: '#000', + fontSize: '24', + align: 'middle', + verticalAlign: 'middle', + }, + left: 'center', + top: '40', + + }, + tooltip: { + trigger: 'item', + show: false, + formatter: "{a}
    {b}: {c} ({d}%)" + }, + + series: [ + { + name: seriesName, + hoverAnimation: false, + legendHoverLink: false, + type: 'pie', + hoverOffset: 5, + selectedOffset: 3, + radius: ['78%', '88%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'left' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontweight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data: seriesData + } + ] + } + ); + + }, + lineSyEcharts: function (id, seriesName, xStringData, xNameData, seriseData) { + + var realNameData = []; + for (var i in xNameData) { + if (xNameData[i] == "") { + continue; + } + if (i % 5 == 0) { + realNameData.push(""); + } + realNameData.push(xNameData[i]); + + } + + + var selected = {}; + for (var i in xNameData) { + if (xNameData[i] == "") { + continue; + } + + if (i < 5) { + selected[xNameData[i]] = true; + } else { + selected[xNameData[i]] = false; + } + } + + console.log(seriseData); + + + var chart = echarts.init(document.getElementById(id)); + console.log(xStringData + '/////////////////////') + var option = { + color: colors, + tooltip: { + trigger: 'axis' + }, + legend: { + top: '0', + right: '24', + + }, + grid: { + top: '13%', + left: '1%', + right: '5%', + bottom: '2%', + containLabel: true + }, + + + xAxis: { + type: 'category', + boundaryGap: false, + data: xStringData, + axisLabel: { + //interval: 0, + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12px', + fontFamily: '微软雅黑' + } + }, + // splitNumber:10, + // minInterval:2, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + + + }, + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12px', + fontFamily: '微软雅黑' + } + }, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + }, + series: seriseData + }; + + chart.setOption(option, true); + } + + +}; + +// ---------------------------------------------搜索 +//切换头部收入topbar +documentBindFunc.on('click', "#georece-toptab div", function () { + var index = $(this).index(); + console.log(index) + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + $("#georece-toptab").val(index); + if (index == 0) { + $('.georece_Numpay').text('元/次'); + $("#incomeBillType").val(2); + $('#night-rateVal').val(0) + // $('#switch-count-wrap').removeClass('display-none'); + // $('#switch-time-wrap').addClass('display-none'); + } else { + $('.georece_Numpay').text('元/小时'); + $('.georece_Numpay_night').text('元/次') + $('#night-rateVal').val(3) + $("#incomeBillType").val(1); + // $('#switch-count-wrap').addClass('display-none'); + // $('#switch-time-wrap').removeClass('display-none'); + } + /** 函数 表格数据 **/ + +}); +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); +}); +//日 点击 +documentBindFunc.on('click', '#georece-checkStyle1,#georece-checkStyle2', function () { + $('.georece-choosedateday').removeClass('display-none'); + $('.georece-choosedatemonth').addClass('display-none'); + $('#queryType').attr('data-value', '1'); + $('#queryType').val(1); +}); +//日 点击 +documentBindFunc.on('click', '#georece-checkStyle2', function () { + $('.georece-choosedateday').removeClass('display-none'); + $('.georece-choosedatemonth').addClass('display-none'); + $('#queryType').attr('data-value', '2'); + $('#queryType').val(2); +}); +//月 点击 +documentBindFunc.on('click', '#georece-checkStyle3', function () { + $('.georece-choosedatemonth').removeClass('display-none'); + $('.georece-choosedateday').addClass('display-none'); + $('#queryType').attr('data-value', '3'); + $('#queryType').val(3); +}); + +//点击搜索 +documentBindFunc.on('click', '#georece-billQueryBtn', function () { + var billType = $("#incomeBillType").val(); + $('#incomeAllBerthNum').attr('title',0); + $('#incomeAllBerthNum').text(0); + $('#incomeOpenBerthNum').text(0); + $('#incomeCloseBerthNum').text(0); + if (2 == parseInt(billType)) { + fun.queryAllIncomeData(); + fun.queryIncomeCalculationGroupByPlNoForNum(); + } else { + fun.queryAllIncomeDataForTime(); + fun.queryIncomeCalculationGroupByPlNoForTime(); + } + fun.initMyChartAjax(); + fun.initGeoNumsAjax(); + + fun.queryManySelect(); +}); + +//点击详情弹框 +documentBindFunc.on('click', '[incomeLookOper]', function () { + fun.incomeLookOper(this); +}); + + +//点击导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#reportBtn").val("导出"); + } + else { + curCount--; + $("#reportBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#reportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#georeceTable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#georeceTable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //执行倒计时函数 + sendMessage(); + + var req = fun.getQueryParamForIncome(); + var beginTime = DateUtils.long2String(req.beginTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + var url = dataUrl.util.exportIncomeCalculation(); + req.plNos = getPlNosByPlType(req.plNos, 1); + var forms = exportIncomeDetailForm(url, beginTime, endTime, req.plNos, req.dayMinAmount, req.dayMaxAmount, + req.nightMinAmount, req.nightMaxAmount, req.billType, req.freeTimeLength, req.singleDayTop, req.timeType, + req.dayMinAmountAfter, req.nightMinAmountAfter, req.dayMaxAmountAfter, req.nightMaxAmountAfter); + forms.submit(); +}); + +//泊位军收益 总收入切换 +$('#tab-btn-wrap li').on('click', function () { + var _index = $(this).index(); + $("#incomeindex").val(_index); + fun.initMyChartAjax(); + $(this).addClass('tabAction').siblings().removeClass('tabAction'); +}) +$('#parkselectpicker').on('hidden.bs.select', function (e) { + // do something... + var manyPlNos = []; + var shopIdsNodes = $('#parkselectpicker option:selected'); + var shopIds = ''; + shopIdsNodes.each(function () { + var plNo = $(this).val(); + if (plNo.indexOf(",") != -1) { + manyPlNos = JSON.parse($(this).val()); + } else { + if (manyPlNos.indexOf(plNo) == -1) { + manyPlNos.push(plNo); + } + } + }) + console.log(manyPlNos); + fun.initMyChartAjax(manyPlNos); + //console.log(shopIds); + +}); +// ---------------------------------------------图例 +fun.init(); + + +function avgParkDurationFormatter(value) { + if (value == null || value == undefined || value == 0) { + return 0 + '时'; + } else { + return value + '时'; + } +} +function avgAmountFormatter(value, row, index) { + var amount = row.amount; + var berthNum = row.berthNum; + + if (berthNum == null || berthNum == undefined || berthNum == 0) { + return (amount / 100).toFixed(2); + } else { + return (amount / (berthNum * 100)).toFixed(2); + } +} + +function moneyFormatter(value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return "0.00"; + } else { + return (value / 100).toFixed(2); + } +}; + +function dayParkNumFormatter(value, row, index) { + var num = row.day1hourNum + + row.day2hourNum + + row.day3hourNum + + row.day4hourNum + + row.day5hourNum + + row.day6hourNum + + row.day7hourNum + + row.day8hourNum + + row.day9hourNum + + row.day10hourNum + + row.day11hourNum + + row.day12hourNum; + if (value == undefined || value == null) { + return num; + + } else { + return value; + } + + +} + +function nightParkNumFormatter(value, row, index) { + var num = row.night1hourNum + + row.night2hourNum + + row.night3hourNum + + row.night4hourNum + + row.night5hourNum + + row.night6hourNum + + row.night7hourNum + + row.night8hourNum + + row.night9hourNum + + row.night10hourNum + + row.night11hourNum + + row.night12hourNum; + if (value == undefined || value == null) { + return num; + + } else { + return value; + } + +} + + +//停车场详情服务 +var parkIdList = []; +function getIncomeCalculationForOne(params) { + var req = fun.getQueryParamForIncome(); + + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.sysCode = sysComm.sysCode; + req.groupType = 3; + req.plNos = parkIdList; + req.plNos = getPlNosByPlType(req.plNos, 1); + + var opt = { + method: 'post', + url: dataUrl.util.queryIncomeCalculationGroupByPlNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + + } + } + }; + sysAjax(opt); + +} + +//停车场服务 +function queryIncomeCalculationGroupByPlNo(params) { + var req = fun.getQueryParamForIncome(); + + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + + req.sysCode = sysComm.sysCode; + req.groupType = 3; + req.timeType = 100; + req.plNos = getPlNosByPlType(req.plNos, 1); + //console.log(req); + var opt = { + method: 'post', + url: dataUrl.util.queryIncomeCalculationGroupByPlNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + + } + } + }; + sysAjax(opt); +} + + +function exportIncomeDetailForm(url, beginTime, endTime, plNos, dayMinAmount, dayMaxAmount, + nightMinAmount, nightMaxAmount, billType, freeTimeLength, singleDayTop, timeType, + dayMinAmountAfter, nightMinAmountAfter, dayMaxAmountAfter, nightMaxAmountAfter) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "beginTime"; + input.value = beginTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endTime"; + input2.value = endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + //input2.type = "hidden"; + input3.name = "plNos"; + input3.value = plNos; + form.appendChild(input3); + + + var plAreaBlockIds = new Array(); + var input15 = document.createElement("input"); + //input15.type = "hidden"; + input15.name = "plAreaBlockIds"; + input15.value = plAreaBlockIds; + form.appendChild(input15); + + + var input16 = document.createElement("input"); + //input15.type = "hidden"; + input16.name = "dayMinAmountAfter"; + input16.value = dayMinAmountAfter; + form.appendChild(input16); + + var input17 = document.createElement("input"); + input17.name = "nightMinAmountAfter"; + input17.value = nightMinAmountAfter; + form.appendChild(input17); + + var input18 = document.createElement("input"); + input18.name = "dayMaxAmountAfter"; + input18.value = dayMaxAmountAfter; + form.appendChild(input18); + + var input19 = document.createElement("input"); + input19.name = "nightMaxAmountAfter"; + input19.value = nightMaxAmountAfter; + form.appendChild(input19); + + + var input4 = document.createElement("input"); + //input2.type = "hidden"; + input4.name = "dayMinAmount"; + input4.value = dayMinAmount; + form.appendChild(input4); + + var input5 = document.createElement("input"); + //input2.type = "hidden"; + input5.name = "dayMaxAmount"; + input5.value = dayMaxAmount; + form.appendChild(input5); + + var input6 = document.createElement("input"); + //input2.type = "hidden"; + input6.name = "nightMinAmount"; + input6.value = nightMinAmount; + form.appendChild(input6); + + var input7 = document.createElement("input"); + //input2.type = "hidden"; + input7.name = "nightMaxAmount"; + input7.value = nightMaxAmount; + form.appendChild(input7); + + var input8 = document.createElement("input"); + //input2.type = "hidden"; + input8.name = "billType"; + input8.value = billType; + form.appendChild(input8); + + var input9 = document.createElement("input"); + //input2.type = "hidden"; + input9.name = "freeTimeLength"; + input9.value = freeTimeLength; + form.appendChild(input9); + + var input10 = document.createElement("input"); + //input2.type = "hidden"; + input10.name = "singleDayTop"; + input10.value = singleDayTop; + form.appendChild(input10); + var input11 = document.createElement("input"); + //input2.type = "hidden"; + input11.name = "timeType"; + input11.value = timeType; + form.appendChild(input11); + + return form; + +}; + + +// 日期,在原有日期基础上,增加days天数,默认增加1天 +function addDate(date, days) { + if (days == undefined || days == '') { + days = 1; + } + + date.setDate(date.getDate() + days); + var month = date.getMonth() + 1; + var day = date.getDate(); + return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day); +} + +//计算天数差 +function getDayNumber(date1, date2) { + //默认格式为"20030303",根据自己需要改格式和方法 + + var year1 = date1.substr(0, 4); + var year2 = date2.substr(0, 4); + var month1 = date1.substr(4, 2); + var month2 = date2.substr(4, 2); + // www.jquerycn.cn + var day1 = date1.substr(6, 2); + var day2 = date2.substr(6, 2); + + temp1 = year1 + "/" + month1 + "/" + day1; + temp2 = year2 + "/" + month2 + "/" + day2; + + var dateaa = new Date(temp1); + var datebb = new Date(temp2); + var date = datebb.getTime() - dateaa.getTime(); + var time = Math.floor(date / (1000 * 60 * 60 * 24)); + return time; +} + +//计算月数差 +function getMonthNumber(date1, date2) { + //默认格式为"20030303",根据自己需要改格式和方法 + var year1 = date1.substr(0, 4); + var year2 = date2.substr(0, 4); + var month1 = date1.substr(4, 2); + var month2 = date2.substr(4, 2); + + var len = (year2 - year1) * 12 + (month2 - month1); + + return len; + +} +// 日期,在原有日期基础上,增加days天数,默认增加1天 +function addMonth(date, months) { + if (months == undefined || months == '') { + months = 1; + } + + date.setMonth(date.getMonth() + months); + var month = date.getMonth() + 1; + var day = date.getDate(); + return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day); +} + +// 日期月份/天的显示,如果是1位数,则在前面加上'0' +function getFormatDate(arg) { + if (arg == undefined || arg == '') { + return ''; + } + + var re = arg + ''; + if (re.length < 2) { + re = '0' + re; + } + + return re; +} + +function getxSeriesData(data, req, StringBeginTime, StringEndTime, queryType) { + var xStringData = []; + var seriseDataValue = []; + var returnData = { + xStringData: xStringData, + seriseDataValue: seriseDataValue + }; + var beginTimeArray = StringBeginTime.split("-"); + + var endTimeArray = StringEndTime.split("-"); + if (queryType == 1) { + xStringData.push(StringBeginTime); + seriseDataValue.push(0); + //按天的页面 + var length = getDayNumber(beginTimeArray[0] + beginTimeArray[1] + beginTimeArray[2], endTimeArray[0] + endTimeArray[1] + endTimeArray[2]) + 1 + for (var i = 1; i < length; i++) { + xStringData.push(addDate(req.beginTime, 1)); + seriseDataValue.push(0); + } + } else if (queryType == 3) { + xStringData.push(beginTimeArray[0] + '-' + beginTimeArray[1]); + seriseDataValue.push(0); + //按月的页面 + var length = getMonthNumber(beginTimeArray[0] + beginTimeArray[1] + beginTimeArray[2], endTimeArray[0] + endTimeArray[1] + endTimeArray[2]) + 1 + for (var i = 0; i < length; i++) { + for (var i = 1; i < length; i++) { + var tempDate = new Date(addMonth(req.beginTime, 1).replace(/-/g, "/")); + tempDate = tempDate.getFullYear() + '-' + getFormatDate(tempDate.getMonth() + 1); + xStringData.push(tempDate); + seriseDataValue.push(0); + } + + } + + } else { + var weekArray = getYearWeekByRemote(StringBeginTime, StringEndTime); + console.log(weekArray); + var beginweek = weekArray[0]; + var endweek = weekArray[1]; + //按周的页面 + // var beginweek = getYearWeek(beginTimeArray[0], beginTimeArray[1], beginTimeArray[2]); + // var endweek = getYearWeek(endTimeArray[0], endTimeArray[1], endTimeArray[2]); + for (var i = beginweek; i <= endweek; i++) { + xStringData.push(i + "周"); + seriseDataValue.push(0); + } + + } + + return returnData; +}; + + +function getYearWeekByRemote(beginStr, endStr) { + var weekArray = []; + + var times = [] + times.push(beginStr); + times.push(endStr); + + var req = { + times: times, + sysCode: sysComm.sysCode + }; + var easyUIOps = { + method: "POST", + async: false, + url: dataUrl.util.timeToWeek(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + weekArray = res.data; + console.log(weekArray); + + } + }; + + sysAjax(easyUIOps); + return weekArray; +} + + +//判断当前日期为当年第几周 +var getYearWeek = function (a, b, c) { + //date1是当前日期 + //date2是当年第一天 + //d是当前日期是今年第多少天 + //用d + 当前年的第一天的周差距的和在除以7就是本年第几周 + var date1 = new Date(a, parseInt(b) - 1, c), date2 = new Date(a, 0, 1), + d = Math.round((date1.valueOf() - date2.valueOf()) / 86400000); + return Math.ceil((d + ((date2.getDay() + 1) - 1)) / 7); +}; + +//判断当前日期为当月第几周 +var getMonthWeek = function (a, b, c) { + //a = d = 当前日期 + //b = 6 - w = 当前周的还有几天过完(不算今天) + //a + b 的和在除以7 就是当天是当前月份的第几周 + var date = new Date(a, parseInt(b) - 1, c), w = date.getDay(), d = date.getDate(); + return Math.ceil((d + 6 - w) / 7); +}; + +function getPlNosByPlType(plNos, plType) { + var newPlNos = []; + var data = fn.getParkLot(); + for (var index in plNos) { + for (var indexTwo in data) { + if (plNos[index] == data[indexTwo].code && parseInt(plType) == parseInt(data[indexTwo].type)) { + newPlNos.push(plNos[index]); + } + + } + } + + return newPlNos; + +} diff --git a/assets/pages/scripts/incomeAnalysisFile/incomeanaTmp.js b/assets/pages/scripts/incomeAnalysisFile/incomeanaTmp.js new file mode 100644 index 0000000..dce88eb --- /dev/null +++ b/assets/pages/scripts/incomeAnalysisFile/incomeanaTmp.js @@ -0,0 +1,60 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
    '+urlarr[i].name+'
    ' + }else{ + _html += '
  • '+urlarr[i].name+'
  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/parkingfee', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.css'); + res.load('../../assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-parkingfee').addClass('ITD-topbar-clickactive'); +}); +R.route('/incomecalculation', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.css'); + res.load('../../assets/pages/scripts/incomeAnalysisFile/incomeCalculation/incomecalculation.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-incomecalculation').addClass('ITD-topbar-clickactive'); + +}); +R.route('/incomecalculations', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.css'); + res.load('../../assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-incomecalculations').addClass('ITD-topbar-clickactive'); + +}); +R.route('/tollincome', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/incomeAnalysisFile/tollincome/tollincome.css'); + res.load('../../assets/pages/scripts/incomeAnalysisFile/tollincome/tollincome.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-tollincome').addClass('ITD-topbar-clickactive'); + +}); diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/generaloperation-tjqst-title.png b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/generaloperation-tjqst-title.png new file mode 100755 index 0000000..07873fc Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/generaloperation-tjqst-title.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/geo_pop_offonIco.png b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/geo_pop_offonIco.png new file mode 100644 index 0000000..9e018c0 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/geo_pop_offonIco.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/georeceive_smallIcon.png b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/georeceive_smallIcon.png new file mode 100644 index 0000000..78379b6 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/georeceive_smallIcon.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/income-sstj-icon.png b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/income-sstj-icon.png new file mode 100755 index 0000000..dcf4f68 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/income-sstj-icon.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-bws-top.png b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-bws-top.png new file mode 100755 index 0000000..fa790d9 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-bws-top.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-shebei-title.png b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-shebei-title.png new file mode 100755 index 0000000..41e745d Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-shebei-title.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-tip-icon.png b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-tip-icon.png new file mode 100644 index 0000000..dffebae Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-tip-icon.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-zys-top.png b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-zys-top.png new file mode 100755 index 0000000..31b7031 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/sycs-zys-top.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/terrestrial-allmoney.png b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/terrestrial-allmoney.png new file mode 100644 index 0000000..706abed Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/terrestrial-allmoney.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/way-echarts-l.png b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/way-echarts-l.png new file mode 100644 index 0000000..d91bd07 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/way-echarts-l.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/way-echarts-r.png b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/way-echarts-r.png new file mode 100644 index 0000000..57ca06e Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/img/way-echarts-r.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.css b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.css new file mode 100644 index 0000000..2a6494e --- /dev/null +++ b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.css @@ -0,0 +1,206 @@ +/*搜索---------------------------------*/ +.geoday-abspos{ + right: 8%; + z-index: 5; +} +/*单选复选美化*/ +.hide-common-style input[type=checkbox], +.hide-common-style input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.hide-common-style input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.hide-common-style input[type=checkbox]:hover + label{ + background: url('../../../img/input-checkexActive.png') no-repeat 0 center; + +} +.hide-common-style input[type=checkbox]:checked + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.hide-common-style input[type=checkbox]:checked:hover + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} +.hide-common-style input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + margin-right: 24px; +} +.hide-common-style input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +.hide-common-style input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.hide-common-style input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} + + +/*卡片---------------------------------*/ +.sycs-zys-wrap>li{ + padding: 15px 0 20px; +} +.sycs-zys-wrap>li:nth-of-type(1){ + border-bottom: 1px solid #E8E8E8; +} +.sycs-zys-top{ + height: 66px; +} +.sycs-zys-top li:nth-of-type(1){ + padding-left: 24px; + line-height:24px; + height: 24px; +} +.sycs-zys-top li:nth-of-type(2){ + padding-left: 18px; +} +.sycs-zsy-mon{ + display: inline-block; + width: 28px; + height: 24px; + background: url("img/sycs-zys-top.png") no-repeat 0 center; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 20px; +} +.sycs-bws-num{ + display: inline-block; + width: 28px; + height: 24px; + background: url("img/sycs-bws-top.png") no-repeat 0 center; + background-size: 100% 100%; + vertical-align: bottom; + margin-right: 20px; +} +.sycs-tip-icon{ + width: 14px; + height: 14px; + background: url("img/sycs-tip-icon.png") no-repeat; + cursor: pointer; +} +.sycs-zys-bottom{ + height: 57px; + +} +.sycs-zys-bottom li{ + padding-left: 20px; + height: 35px; + line-height: 35px; +} +.sycs-zys-bottom li>span:nth-of-type(1){ + margin-right: 20px; +} +.lcbwpjsy-number{ + margin-top: 23px; +} +/*.lcbwpjsy-number-dowm span:after{ + content: ''; + border-top:5px solid #F5222D; + border-left:5px solid transparent; + border-right:5px solid transparent; + border-bottom:5px solid transparent; + position: absolute; + top:50%; + margin-top: -2px; + left:5px; +} +.lcbwpjsy-number-up span:after{ + content: ''; + border-top:5px solid #52C41A; + border-left:5px solid transparent; + border-right:5px solid transparent; + border-bottom:5px solid transparent; + position: absolute; + top:50%; + margin-top: -2px; + left:5px; +}*/ + +.sycs-shebei-title{ + padding: 21px 0 21px 25px; + background: url("img/sycs-shebei-title.png") no-repeat 0 center; +} +.sycs-shebei-echart{ + height: 132px; +} +.sycs-shebei-echart li{ + flex: 1; + height: 132px; + +} + +.tab-btn-wrap li{ + float: left; + padding: 0 15px; + height:32px; + line-height: 32px; + cursor: pointer; + background:rgba(255,255,255,1); + text-align: center; +} +.tab-btn-wrap li:nth-of-type(1){ + border-left:1px solid #D9D9D9; + border-top:1px solid #D9D9D9; + border-bottom:1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2){ + border-right:1px solid #D9D9D9; + border-top:1px solid #D9D9D9; + border-bottom:1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction{ + border: 1px solid #1E95CD; + color: #1E95CD; +} +.georece-echarts-con{ + height: 312px; +} +.georece-tjqst-title .bootstrap-select{ + position: absolute; + right: 0; + z-index: 100; + top:10px; +} +.georece-tjqst-title .bootstrap-select .dropdown-toggle{ + opacity: 0; +} + + + + +/*图例---------------------------------*/ +.georece-tjqst-title { + background: url(img/income-sstj-icon.png) no-repeat 14px center !important; + padding-left: 38px; +} +.georece-echarts-wrap { + height: 349px; +} + + + +/*表格---------------------------------*/ \ No newline at end of file diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.html b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.html new file mode 100644 index 0000000..1d7ed94 --- /dev/null +++ b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.html @@ -0,0 +1,196 @@ +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + 日期 +
    + +
    + - +
    + +
    +
    + +
    +
    +
    查询
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
      +
    • +
        +
      • + 总应收 +
      • +
      • +
        + ¥ +
      • +
      +
    • +
    • +
        +
      • + 路侧泊位平均收益 + +
      • + +
      +
    • +
    +
    +
    +
    +
    +
      +
    • +
        +
      • + 泊位数 +
        +
      • +
      • +
        + 0 +
        +
      • +
      + +
    • +
    • +
        +
      • + 路侧泊位数 + 0 +
      • + + +
      +
    • +
    +
    +
    +
    +
    +
    设备 +
    +
    +
      +
    • +
    • +
    +
    +
    + +
    + + +
    +
    +
    +
    + 收入趋势 + +
    +
    + + +
    +
    +
    +
    + +
      +
    • 泊位平均收益
    • +
    • 总收入
    • +
      +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    +
      +
    • 详细记录
    • +
    • + +
    • +
    +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.js b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.js new file mode 100644 index 0000000..af94ec2 --- /dev/null +++ b/assets/pages/scripts/incomeAnalysisFile/incomecalculFile/incomecalculations.js @@ -0,0 +1,1041 @@ +var colors = ['#1e95cd', '#5fe98f', '#fdc94d', '#50c0f5', '#5ed8a6', '#2bb97f']; +$(function () { + $("[data-toggle='tooltip']").tooltip(); +}); + +var fun = { + // ---------------------------------------------初始化 + init: function () { + + //近7天收入下拉多选矿初始化 + $('.parkselectpicker').selectpicker({ + + 'selectedText': '全部', + // width:'150px', + style: 'btn-info', + size: 4, + dropdownAlignRight: 'left', + maxOptions: 5, + noneSelectedText: '请选择停车场' + }); + + $('.parkselectpicker').selectpicker('val', 1);//默认选中 + $('.parkselectpicker').selectpicker('refresh'); + + //初始化 办事处 停车场 + commSelect.area_Pl_LinkedSelect("#georece-transSelecarea", "#georece-transSelectPark", function (item) { + if (item.type == 2) { + return false; + } + return true; + }); + /** 日 时间初始化 **/ + $('#georece-daydaterange-btnsta').val(moment().subtract('days', 7).format('YYYY-MM-DD')); + $('#georece-daydaterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#georece-daydaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#georece-daydaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + /** 月 时间初始化 **/ + $('#georece-monthdaterange-btnsta').val(moment().subtract('months', 6).format('YYYY-MM')); + $('#georece-monthdaterange-btnend').val(moment().subtract('months', 0).format('YYYY-MM')); + //开始日期 + $("#georece-monthdaterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 0).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#georece-monthdaterange-btnend").datetimepicker({ + endDate: moment().subtract('months', 0).format('YYYY-MM'), + //startDate:startVal, + format: 'yyyy-mm', + weekStart: 1, + autoclose: true, + startView: 3, + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + + //收入趋势停车场选择对比 + fun.queryManySelect(); + fun.queryAllIncomeData(); + fun.initGeoNumsAjax(); + fun.querySummaryEqpVirtualParkRecordStatisticByPlNoForPage(); + fun.initMyChartAjax(); + + + }, + queryManySelect: function () { + var data = JSON.parse($('#georece-transSelectPark').val()); + //var data2 = $('#georece-transSelectPark').text(); + console.log(data); + //console.log(data2); + $("#parkselectpicker").empty(); + var html = ''; + var plNames = fn.getPlNamesByPlNos(data); + //console.log() + if (data.length > 1) { + // var plnosStr = JSON.stringify(data); + // html = '' + html; + for (var i = 0; i < data.length; i++) { + html += ""; + } + } else { + html = '' + html; + } + + + $("#parkselectpicker").append(html); + $("#parkselectpicker").selectpicker('refresh'); + }, + /*获取查询参数*/ + getQueryParams: function () { + + var plNos = JSON.parse($('#georece-transSelectPark').val()); + var startDate = new Date(($('#georece-daydaterange-btnsta').val() + ' 00:00:00').replace(/\-/g, "/")); + var endDate = new Date(($('#georece-daydaterange-btnend').val() + ' 23:59:59').replace(/\-/g, "/")); + + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + startDate: startDate, + endDate: endDate + } + return req; + }, + + + queryIncomeType:function(){ + + return $($('#tab-btn-wrap').find('li.tabAction')).data('code'); + + }, + + //根据查询总收入 及 地磁数量 + queryAllIncomeData: function () { + var req = fun.getQueryParams(); + + var opt = { + method: 'post', + url: dataUrl.util.querySummaryEqpVirtualParkRecordStatisticForIncomeAndEqpNum(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var eqpNum = commonObj.isnull(res.data.eqpNum); + var income = commonObj.moneyFormatter(res.data.income); + var eqpAvgIncome = 0; + + if(res.data.income < 0 ||res.data.income == null || res.data.eqpNum == null ||res.data.eqpNum ==0) { + eqpAvgIncome = commonObj.moneyFormatter(0); + }else { + eqpAvgIncome = commonObj.moneyFormatter(res.data.income/res.data.eqpNum); + } + + //var eqpAvgIncome = commonObj.moneyFormatter(res.data.income/res.data.eqpNum); + $('#incomeAllAmount').text(income); + $('#incomeOpenAmount').text(eqpAvgIncome); + $('#incomeAllBerthNum').text(eqpNum); + $('#incomeOpenBerthNum').text(eqpNum); + + } + + } + } + sysAjax(opt); + }, + + + + + //查询设备信息 + initGeoNumsAjax: function () { + var reqs = fun.getQueryParams(); + var req = { + plNos: reqs.plNos, + faultNumTimes: 1,//失败次数大于1次即为异常 + beginTime: DateUtils.long2String(reqs.startDate.getTime(), 1), + endTime: DateUtils.long2String(reqs.endDate.getTime(), 1), + sysCode: sysComm.sysCode + }; + var easyUIOps = { + method: "POST", + url: dataUrl.util.statisticsGeoNumsByStatus(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + var data = res.data; + //console.log("地磁数量统计:",data); + console.log(data.normalNum) + console.log(data.allNum) + if (data.allNum == 0) { + var per = 0; + } else { + + var per = ((data.normalNum) / data.allNum * 100).toFixed(0); + } + var dczxData = [ + {value: per, name: '地磁在线', selected: true}, + {value: 100 - per, name: '总计',}, + ]; + fun.drawPie('dczxEcharts', '#1890FF', '地磁在线', data.normalNum, dczxData, '地磁在线'); + + var dzzxData = [ + {value: 0, name: '道闸在线', selected: true}, + {value: 100, name: '总计',}, + ]; + + + fun.drawPie('dzzxEcharts', '#FACC14', '道闸在线', '0', dzzxData, '道闸在线'); + + + } + } + }; + sysAjax(easyUIOps); + }, + + + //查询停车场收入折线图 + initMyChartAjax: function (plNos,queryType) { + + var req = fun.getQueryParams(); + + if(queryType != undefined && queryType !=null ){ + req.queryType = queryType; + }else{ + req.queryType = 1; + } + + if(plNos != undefined && plNos !=null && plNos.length >0){ + req.plNos = plNos; + } + + req.plNos = getPlNosByPlType(req.plNos, 1); + + req.sysCode = sysComm.sysCode; + var opt = { + method: "POST", + url: dataUrl.util.querySummaryEqpVirtualParkRecordStatisticByDate(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + fun.lineSyEcharts(res.data,req); + } + + + } + }; + sysAjax(opt); + }, + + //生成汇总表格数据按时间 + querySummaryEqpVirtualParkRecordStatisticByPlNoForPage: function () { + /** 按时**/ + $('#georeceTable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers: true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + singleSelect: false, + method: 'POST',//请求方法 + sortable: true, //是否启用排序 + sortOrder: "asc", + paginationPreText: '<', + paginationNextText: '>', + ajax: querySummaryEqpVirtualParkRecordStatisticByPlNoForPage, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'plName', + title: ' 车场名称', + width: '5%', + align: 'left', + formatter: fun.incomeOperFormatter + }, + { + field: 'eqpNum', + title: ' 泊位数量', + width: '5%', + align: 'left', + sortable: true, + formatter: commonObj.replacenull + }, + { + field: 'income', + title: ' 应收', + width: '8%', + align: 'left', + sortable: true, + formatter: commonObj.moneyFormatter + }, + { + field: 'eqpAvgIncome', + title: ' 泊位平均收益', + width: '5%', + align: 'left', + sortable: true, + formatter: commonObj.moneyFormatter + }, + { + field: 'parkNum', + title: ' 总停车次数', + width: '8%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'freeParkNum', + title: ' 免费停车次数', + width: '8%', + align: 'left', + formatter: commonObj.replacenull + } + + ] + }); + + + }, + + + //操作显示 + incomeOperFormatter: function (value, row, index) { + + var operStr = '' + (value == null ? '-' : value) + ''; + return operStr; + }, + + incomeLookOper: function (element) { + + $('#popAreaname').text(''); + var plName = $(element).attr('plname'); + $('#popAreaname').text(plName); + var plNo = $(element).attr('plno'); + + $('#incometable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers: true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + queryParams: function (params) { + params.plNo = plNo; + return params; + }, + singleSelect: false, + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: queryEqpVirtualParkRecordStatisticForPage, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'statisticDate', + title: ' 周期', + width: '5%', + align: 'left', + formatter: commonObj.timeOneFormatter + }, + { + field: 'eqpNum', + title: ' 泊位数量', + width: '5%', + align: 'left' + }, + { + field: 'income', + title: ' 应收', + width: '8%', + align: 'left', + formatter: commonObj.moneyFormatter + }, + { + field: 'eqpAvgIncome', + title: ' 泊位平均收益', + width: '5%', + align: 'left', + formatter: commonObj.moneyFormatter + }, + { + field: 'parkNum', + title: ' 总停车次数', + width: '8%', + align: 'left' + }, + { + field: 'freeParkNum', + title: ' 免费停车次数', + width: '8%', + align: 'left' + } + + + ] + }); + + + $('#income_myModal').modal('show'); + + + }, + + + + // ---------------------------------------------图例 + drawPie: function (id, color, subtext, text, seriesData, seriesName) { + + var chart = echarts.init(document.getElementById(id)); + chart.setOption( + { + color: [color, '#D7D7D7'], + title: { + subtext: text + "", + text: subtext, + textStyle: { + color: 'rgba(0,0,0,0.45)', + fontSize: '14', + align: 'middle', + verticalAlign: 'middle', + }, + subtextStyle: { + color: '#000', + fontSize: '24', + align: 'middle', + verticalAlign: 'middle', + }, + left: 'center', + top: '40', + + }, + tooltip: { + trigger: 'item', + show: false, + formatter: "{a}
    {b}: {c} ({d}%)" + }, + + series: [ + { + name: seriesName, + hoverAnimation: false, + legendHoverLink: false, + type: 'pie', + hoverOffset: 5, + selectedOffset: 3, + radius: ['78%', '88%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'left' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontweight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data: seriesData + } + ] + } + ); + + }, + + lineSyEcharts: function (mapData,req) { + + + var type = fun.queryIncomeType(); + var xData = []; + var startDate = req.startDate; + var endDate = req.endDate; + + while (true){ + + if(startDate.getTime() >endDate.getTime()){ + break; + } + xData.push(commonObj.timeOneFormatter(startDate)); + startDate.setDate(startDate.getDate()+1); + } + + + var seriseData = []; + + + for (var key in mapData) { + + var seriseItem = { + type: 'line' + }; + + seriseItemName = ''; + seriseItemData = []; + + $.each(mapData[key], function (index, item) { + + if (key == 'all') { + seriseItemName = '全部'; + } else { + seriseItemName = item.plName; + } + + if(type =='all'){ + seriseItemData.push(commonObj.moneyFormatter(item.income)); + } + if(type == 'avg'){ + seriseItemData.push(commonObj.moneyFormatter(item.income/item.eqpNum)); + } + + + }) + seriseItem.name=seriseItemName; + seriseItem.data = seriseItemData; + seriseData.push(seriseItem); + + + } + + + var chart = echarts.init(document.getElementById('georeceEcharts')); + var option = { + color: colors, + tooltip: { + trigger: 'axis' + }, + legend: { + top: '0', + right: '24', + + }, + grid: { + top: '13%', + left: '1%', + right: '5%', + bottom: '2%', + containLabel: true + }, + + + xAxis: { + type: 'category', + boundaryGap: false, + data: xData, + axisLabel: { + //interval: 0, + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12px', + fontFamily: '微软雅黑' + } + }, + // splitNumber:10, + // minInterval:2, + axisTick: { + show: false, + }, + splitLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + + + }, + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12px', + fontFamily: '微软雅黑' + } + }, + axisTick: { + show: false, + }, + splitLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + }, + series: seriseData + }; + + chart.setOption(option, true); + } + + +}; + + +//点击搜索 +documentBindFunc.on('click', '#georece-billQueryBtn', function () { + //汇总收入新 + fun.queryAllIncomeData(); + //详细记录表格 + fun.querySummaryEqpVirtualParkRecordStatisticByPlNoForPage(); + fun.initMyChartAjax(); + fun.initGeoNumsAjax(); + fun.queryManySelect(); +}); + +//点击详情弹框 +documentBindFunc.on('click', '[incomeLookOper]', function () { + fun.incomeLookOper(this); +}); + + +//点击导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#reportBtn").val("导出"); + } else { + curCount--; + $("#reportBtn").val(curCount + "秒后可再次导出"); + } +} + +//导出excle +documentBindFunc.on('click', '#reportBtn', function () { + //获取table所有行数据 + var parkLot = $("#georeceTable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#georeceTable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if (parkLot.length < 1) { + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + }, 3000); + return false; + } + //超1万条 缩短查询范围 + if (numTotal > 10000) { + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + }, 3000); + return false; + } + //执行倒计时函数 + sendMessage(); + + var req = fun.getQueryParams(); + var startDate = commonObj.timeFormatter(req.startDate.getTime()); + var endDate = commonObj.timeFormatter(req.endDate.getTime()) + var url = dataUrl.util.exportEqpVirtualParkRecord(); + req.plNos = getPlNosByPlType(req.plNos, 1); + var forms = exportIncomeDetailForm(url, startDate, endDate, req.plNos); + forms.submit(); +}); + +//泊位军收益 总收入切换 +$('#tab-btn-wrap li').on('click', function () { + var _index = $(this).index(); + $("#incomeindex").val(_index); + fun.initMyChartAjax(); + $(this).addClass('tabAction').siblings().removeClass('tabAction'); +}) +$('#parkselectpicker').on('hidden.bs.select', function (e) { + var manyPlNos = []; + var shopIdsNodes = $('#parkselectpicker option:selected'); + shopIdsNodes.each(function () { + var plNo = $(this).val(); + if (plNo.indexOf(",") != -1) { + manyPlNos = JSON.parse($(this).val()); + } else { + if (manyPlNos.indexOf(plNo) == -1) { + manyPlNos.push(plNo); + } + } + }) + fun.initMyChartAjax(manyPlNos,2); + +}); +// ---------------------------------------------图例 +fun.init(); + + +function queryEqpVirtualParkRecordStatisticForPage(params) { + var req = fun.getQueryParams(); + + var pageNum = (params.data.offset / params.data.limit) + 1; + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.plNos = [params.data.plNo] + + var opt = { + method: 'post', + url: dataUrl.util.queryEqpVirtualParkRecordStatisticForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + + } + } + }; + sysAjax(opt); + +} + +//停车场服务 +function querySummaryEqpVirtualParkRecordStatisticByPlNoForPage(params) { + var req = fun.getQueryParams(); + + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + + pageNum: pageNum, + pageSize: params.data.limit, + sortOrder:params.data.order,//排序 + sortName:params.data.sort,//排序字段 + + }; + req.queryType = 1; + var opt = { + method: 'post', + url: dataUrl.util.querySummaryEqpVirtualParkRecordStatisticByPlNoForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + + } + } + }; + sysAjax(opt); +} + + +function exportIncomeDetailForm(url, beginTime, endTime, plNos) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "startDate"; + input.value = beginTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endDate"; + input2.value = endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + //input2.type = "hidden"; + input3.name = "plNos"; + input3.value = plNos; + form.appendChild(input3); + + + + + return form; + +}; + + +// 日期,在原有日期基础上,增加days天数,默认增加1天 +function addDate(date, days) { + if (days == undefined || days == '') { + days = 1; + } + + date.setDate(date.getDate() + days); + var month = date.getMonth() + 1; + var day = date.getDate(); + return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day); +} + +//计算天数差 +function getDayNumber(date1, date2) { + //默认格式为"20030303",根据自己需要改格式和方法 + + var year1 = date1.substr(0, 4); + var year2 = date2.substr(0, 4); + var month1 = date1.substr(4, 2); + var month2 = date2.substr(4, 2); + // www.jquerycn.cn + var day1 = date1.substr(6, 2); + var day2 = date2.substr(6, 2); + + temp1 = year1 + "/" + month1 + "/" + day1; + temp2 = year2 + "/" + month2 + "/" + day2; + + var dateaa = new Date(temp1); + var datebb = new Date(temp2); + var date = datebb.getTime() - dateaa.getTime(); + var time = Math.floor(date / (1000 * 60 * 60 * 24)); + return time; +} + +//计算月数差 +function getMonthNumber(date1, date2) { + //默认格式为"20030303",根据自己需要改格式和方法 + var year1 = date1.substr(0, 4); + var year2 = date2.substr(0, 4); + var month1 = date1.substr(4, 2); + var month2 = date2.substr(4, 2); + + var len = (year2 - year1) * 12 + (month2 - month1); + + return len; + +} + +// 日期,在原有日期基础上,增加days天数,默认增加1天 +function addMonth(date, months) { + if (months == undefined || months == '') { + months = 1; + } + + date.setMonth(date.getMonth() + months); + var month = date.getMonth() + 1; + var day = date.getDate(); + return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day); +} + +// 日期月份/天的显示,如果是1位数,则在前面加上'0' +function getFormatDate(arg) { + if (arg == undefined || arg == '') { + return ''; + } + + var re = arg + ''; + if (re.length < 2) { + re = '0' + re; + } + + return re; +} + +function getxSeriesData(data, req, StringBeginTime, StringEndTime, queryType) { + var xStringData = []; + var seriseDataValue = []; + var returnData = { + xStringData: xStringData, + seriseDataValue: seriseDataValue + }; + var beginTimeArray = StringBeginTime.split("-"); + + var endTimeArray = StringEndTime.split("-"); + if (queryType == 1) { + xStringData.push(StringBeginTime); + seriseDataValue.push(0); + //按天的页面 + var length = getDayNumber(beginTimeArray[0] + beginTimeArray[1] + beginTimeArray[2], endTimeArray[0] + endTimeArray[1] + endTimeArray[2]) + 1 + for (var i = 1; i < length; i++) { + xStringData.push(addDate(req.beginTime, 1)); + seriseDataValue.push(0); + } + } else if (queryType == 3) { + xStringData.push(beginTimeArray[0] + '-' + beginTimeArray[1]); + seriseDataValue.push(0); + //按月的页面 + var length = getMonthNumber(beginTimeArray[0] + beginTimeArray[1] + beginTimeArray[2], endTimeArray[0] + endTimeArray[1] + endTimeArray[2]) + 1 + for (var i = 0; i < length; i++) { + for (var i = 1; i < length; i++) { + var tempDate = new Date(addMonth(req.beginTime, 1).replace(/-/g, "/")); + tempDate = tempDate.getFullYear() + '-' + getFormatDate(tempDate.getMonth() + 1); + xStringData.push(tempDate); + seriseDataValue.push(0); + } + + } + + } else { + var weekArray = getYearWeekByRemote(StringBeginTime, StringEndTime); + console.log(weekArray); + var beginweek = weekArray[0]; + var endweek = weekArray[1]; + //按周的页面 + // var beginweek = getYearWeek(beginTimeArray[0], beginTimeArray[1], beginTimeArray[2]); + // var endweek = getYearWeek(endTimeArray[0], endTimeArray[1], endTimeArray[2]); + for (var i = beginweek; i <= endweek; i++) { + xStringData.push(i + "周"); + seriseDataValue.push(0); + } + + } + + return returnData; +}; + + +function getYearWeekByRemote(beginStr, endStr) { + var weekArray = []; + + var times = [] + times.push(beginStr); + times.push(endStr); + + var req = { + times: times, + sysCode: sysComm.sysCode + }; + var easyUIOps = { + method: "POST", + async: false, + url: dataUrl.util.timeToWeek(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + weekArray = res.data; + console.log(weekArray); + + } + }; + + sysAjax(easyUIOps); + return weekArray; +} + + +//判断当前日期为当年第几周 +var getYearWeek = function (a, b, c) { + //date1是当前日期 + //date2是当年第一天 + //d是当前日期是今年第多少天 + //用d + 当前年的第一天的周差距的和在除以7就是本年第几周 + var date1 = new Date(a, parseInt(b) - 1, c), date2 = new Date(a, 0, 1), + d = Math.round((date1.valueOf() - date2.valueOf()) / 86400000); + return Math.ceil((d + ((date2.getDay() + 1) - 1)) / 7); +}; + +//判断当前日期为当月第几周 +var getMonthWeek = function (a, b, c) { + //a = d = 当前日期 + //b = 6 - w = 当前周的还有几天过完(不算今天) + //a + b 的和在除以7 就是当天是当前月份的第几周 + var date = new Date(a, parseInt(b) - 1, c), w = date.getDay(), d = date.getDate(); + return Math.ceil((d + 6 - w) / 7); +}; + +function getPlNosByPlType(plNos, plType) { + var newPlNos = []; + var data = fn.getParkLot(); + for (var index in plNos) { + for (var indexTwo in data) { + if (plNos[index] == data[indexTwo].code && parseInt(plType) == parseInt(data[indexTwo].type)) { + newPlNos.push(plNos[index]); + } + + } + } + + return newPlNos; + +} diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/generaloperation-tjqst-title.png b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/generaloperation-tjqst-title.png new file mode 100755 index 0000000..07873fc Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/generaloperation-tjqst-title.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/geo_pop_offonIco.png b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/geo_pop_offonIco.png new file mode 100644 index 0000000..9e018c0 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/geo_pop_offonIco.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/georeceive_smallIcon.png b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/georeceive_smallIcon.png new file mode 100644 index 0000000..78379b6 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/georeceive_smallIcon.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/income-sstj-icon.png b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/income-sstj-icon.png new file mode 100755 index 0000000..dcf4f68 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/income-sstj-icon.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/parkfee-zffs-icon.png b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/parkfee-zffs-icon.png new file mode 100755 index 0000000..f16e2e3 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/parkfee-zffs-icon.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-bws-top.png b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-bws-top.png new file mode 100755 index 0000000..fa790d9 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-bws-top.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-shebei-title.png b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-shebei-title.png new file mode 100755 index 0000000..41e745d Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-shebei-title.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-tip-icon.png b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-tip-icon.png new file mode 100644 index 0000000..dffebae Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-tip-icon.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-zys-top.png b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-zys-top.png new file mode 100755 index 0000000..31b7031 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/sycs-zys-top.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/terrestrial-allmoney.png b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/terrestrial-allmoney.png new file mode 100644 index 0000000..706abed Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/terrestrial-allmoney.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/way-echarts-l.png b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/way-echarts-l.png new file mode 100644 index 0000000..d91bd07 Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/way-echarts-l.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/way-echarts-r.png b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/way-echarts-r.png new file mode 100644 index 0000000..57ca06e Binary files /dev/null and b/assets/pages/scripts/incomeAnalysisFile/parkingFee/img/way-echarts-r.png differ diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.css b/assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.css new file mode 100644 index 0000000..50aa70c --- /dev/null +++ b/assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.css @@ -0,0 +1,118 @@ +/*新样式*/ +/*topbar 查询条件 sta*/ +.parkincome-checkStyle{ + float: left; + width: 95px; + height: 34px; + line-height: 34px; + text-align: center; + cursor: pointer; +} +.parkincome-baractive{ + color: #2abb9b; + background: rgb(233,248,244); +} +.parkincome-queryAbs{ + top: 80px; + right: 24px; +} +/*单选复选美化*/ +.hide-common-style input[type=checkbox], +.hide-common-style input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.hide-common-style input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.hide-common-style input[type=checkbox]:hover + label{ + background: url('../../../img/input-checkexActive.png') no-repeat 0 center; + +} +.hide-common-style input[type=checkbox]:checked + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.hide-common-style input[type=checkbox]:checked:hover + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.hide-common-style input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + margin-right: 24px; +} +.hide-common-style input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +.hide-common-style input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.hide-common-style input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +/*topbar 查询条件 end*/ + +/*echarts 样式*/ +.parkincome-echarts{ + height:220px; + background-color: #fff !important; +} +.parkincome-echarts-l-title{ + margin-left: -15px; + width: 100%; + top:40%; + color: #626c72; + font-size: 20px; + z-index: 10; +} +.parkincome-echarts-l-subtext{ + margin-left: -15px; + width: 100%; + top:55%; + color: #888990; + font-size: 12px; + z-index: 10; +} +.parkincome-echarts-l{ + width: 100%; + height: 100%; +} +/* new topbar */ +.parkincome-parking-l { + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.parkincome-input78{ + width: 78%; + height: 34px; + line-height: 34px; +} +.incomereport-echarts-wrap{ + height: 349px; +} +.incomereport-ttcsf-title{ + background: url(img/income-sstj-icon.png) no-repeat 14px center !important; + padding-left: 38px; +} diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.html b/assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.html new file mode 100644 index 0000000..e63dda1 --- /dev/null +++ b/assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.html @@ -0,0 +1,140 @@ + +
    +
    + + +
    +
    +
    + +
    +
    + +
    +
    + 日期 +
    + +
    + - +
    + +
    +
    + +
    +
    +
    更多
    +
    +
    +
    查询
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    + 停车场收费 +
    + +
    + +
    + +
    +
    +
    +
    +
    + 支付方式收费 +
    +
    +
    +
    + + + +
    +
    + +
    +
    +
    + + +
    +
    +
    +
      +
    • 收入明细
    • +
    • + +
    • +
    +
    +
    + +
    + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.js b/assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.js new file mode 100644 index 0000000..9eccda2 --- /dev/null +++ b/assets/pages/scripts/incomeAnalysisFile/parkingFee/parkingfee.js @@ -0,0 +1,1134 @@ +/** + * Created by chenbiao on 2017/12/29. + */ +//收入折线echarts对象 +var incomeLineChart; +//支付方式 环形图 echarts对象 +var payTypePidChart; + +function pageInit() { + console.log('停车收入'); + //导出功能 + window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; + } + + window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; + window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; + //隐藏显示 查询条件 搜索框 hide-common-style + documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); + }); + //切换头部收入topbar + documentBindFunc.on('click', "#parkincome-toptab div", function () { + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + //console.log(index); + $("#parkincome-toptab").val(index); + //初始化加载收入统计 + parkincomefun.getCustIncomeForParkPay(); + parkincomefun.getCustIncomeForParkPayForChart(); + /** 函数 表格数据 **/ + parkincomefun.parkincomecreateTableData(); + + + }) + //绑定打印事件 + //documentBindFunc.on('click', '.ITD-search-printbtn', function () { + //parkincomefun.printPage(); + //}) + var parkincomefun = { + init: function () { + + commSelect.area_Pl_LinkedSelect("#parkincome-transSelecarea", "#parkincome-transSelectPark"); + //初始化 + /**日 时间初始化*/ + $('#parkincome-daydaterange-btnsta').val(moment().subtract('days', 7).format('YYYY-MM-DD')); + $('#parkincome-daydaterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#parkincome-daydaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#parkincome-daydaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + /** 月 时间初始化 **/ + $('#parkincome-monthdaterange-btnsta').val(moment().subtract('months', 7).format('YYYY-MM')); + $('#parkincome-monthdaterange-btnend').val(moment().subtract('months', 1).format('YYYY-MM')); + //开始日期 + $("#parkincome-monthdaterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 0).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#parkincome-monthdaterange-btnend").datetimepicker({ + endDate: moment().subtract('months', 0).format('YYYY-MM'), + //startDate:startVal, + format: 'yyyy-mm', + weekStart: 1, + autoclose: true, + startView: 3, + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + + + //初始化加载收入统计 + parkincomefun.getCustIncomeForParkPay(); + parkincomefun.getCustIncomeForParkPayForChart(); + /** 函数 表格数据 **/ + parkincomefun.parkincomecreateTableData(); + + }, + + zzlEcharts: function (dataValue, totalFee) { + console.log(totalFee) + var chart = echarts.init(document.getElementById('incomereport-echarts-zffs')); + chart.setOption( + { + color: ['#1e95cd','#5fe98f','#fdc94d','#50c0f5'], + title: { + subtext: "" + totalFee, + text: '总金额', + textStyle: { + color: 'rgba(0,0,0,0.45)', + fontSize: '14', + align: 'middle', + verticalAlign: 'middle', + }, + subtextStyle: { + color: '#000', + fontSize: '24', + align: 'middle', + verticalAlign: 'middle', + }, + left: 'center', + top: '140', + + }, + tooltip: { + trigger: 'item', + // show: false, + formatter: "{a}
    {b}: {c} ({d}%)" + }, + + series: [ + { + name: '停车场收费', + hoverAnimation: false, + legendHoverLink: false, + type: 'pie', + hoverOffset: 5, + selectedOffset: 3, + radius: ['60%', '70%'], + center: ['50%', '50%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '30', + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data: dataValue, + itemStyle: { + normal: { + opacity: 1, + borderWidth: 2, + borderColor: '#fff' + } + } + } + ] + } + ); + + payTypePidChart = chart; + }, + + ttcsfEcharts: function (dataX, dataY) { + var chart = echarts.init(document.getElementById('incomereport-echarts-ttcsf')); + var option = { + color: ['#1890FF'], + tooltip: { + trigger: 'axis' + }, + legend: { + right: '2%', + top: '0', + textStyle: { + color: '#888990', + }, + itemWidth: 18, + itemHeight: 10, + }, + grid: { + top: '8%', + left: '2%', + right: '5%', + bottom: '5%', + containLabel: true + }, + + xAxis: { + type: 'category', + boundaryGap: false, + data: dataX, + axisLabel: { + // interval:0, + // rotate:30, + show: true, + /*formatter:function(value) + { + return value.split("").join("\n"); + },*/ + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + }, + }, + // splitNumber:10, + // minInterval:2, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + + + + }, + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + }, + + }, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + }, + series: [ + { + name: '总收入', + type: 'line', + // symbol:'circle', + // smooth: true, + data: dataY, + itemStyle : { + normal : { + lineStyle:{ + color:'#f0f0f2', + } + } + }, + areaStyle: { + normal: { + color: '#1e95cd', + opacity: .2 + } + }, + lineStyle: { + normal: { + color: '#1e95cd', + width: 2, + } + } + }, + + ] + }; + console.log(JSON.stringify(option)) + chart.setOption(option, true); + // 自适应 + window.onresize = chart.resize; + incomeLineChart = chart; + }, + + //默认生成表格数据-day + parkincomecreateTableData: function () { + $('#parkincome-billtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + sortable: true, //是否启用排序 + sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: parkincometableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'staticDate', + title: ' 统计时间', + width: '15%', + align: "left", + formatter: parkincomefun.staticDateFormatter + + }, + { + field: 'actFee', + title: ' 实收', + width: '10%', + align: "left", + sortable: true, + formatter: commonObj.moneyFormatter + }, + { + field: 'orderNum', + title: ' 交易笔数', + width: '10%', + align: "left", + formatter:commonObj.replacenull + + }, + + { + field: 'wxFee', + title: ' 微信', + width: '10%', + align: "left", + sortable: true, + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: ' 支付宝', + width: '10%', + align: "left", + sortable: true, + formatter: commonObj.moneyFormatter + }, + { + field: 'cashFee', + title: ' 现金', + width: '10%', + align: "left", + sortable: true, + formatter: commonObj.moneyFormatter + }, + { + field: 'balanceFee', + title: ' 余额', + width: '10%', + sortable: true, + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'arrearageFee', + title: ' 欠费金额', + width: '10%', + sortable: true, + align: "left", + formatter: commonObj.moneyFormatter + }, + + + ] + }); + }, + + //金额处理 + moneyFormatter: function (value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return "0.00"; + } else { + return (value / 100).toFixed(2); + } + }, + staticDateFormatter: function (value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return '-'; + } else { + var queryType = $('#queryType').attr('data-value'); + if (1 == queryType) { + return DateUtils.long2String(value, 1); + } else { + return DateUtils.long2String(value, 13); + } + + } + }, + /*获取查询参数*/ + parkincomegetQueryParam: function () { + var plAreaBlockIds = JSON.parse($("#parkincome-transSelecarea").val()); + var plNos = JSON.parse($("#parkincome-transSelectPark").val()); + if (plNos.length < 1) { + plNos.push("-1X"); + } + var queryType = $('#queryType').attr('data-value'); + var beginTime = null; + var endTime = null; + if (queryType == '1') { + var dateValue1 = $("#parkincome-daydaterange-btnsta").val(); + var dateValue2 = $("#parkincome-daydaterange-btnend").val(); + beginTime = dateValue1 + " 00:00:00"; + endTime = dateValue2 + " 23:59:59"; + } else { + var beginTimeQ = $("#parkincome-monthdaterange-btnsta").val(); + var endTimeQ = $("#parkincome-monthdaterange-btnend").val(); + beginTime = beginTimeQ + "-01 00:00:00"; + var dates = endTimeQ.split("-"); + if (dates[1] == '02') { + endTime = endTimeQ + "-28 23:59:59"; + } else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07' + || dates[1] == '08' || dates[1] == '10' || dates[1] == '12') { + endTime = endTimeQ + "-31 23:59:59"; + } else { + endTime = endTimeQ + "-30 23:59:59"; + } + } + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + var req = { + sysCode: sysComm.sysCode, + plAreaBlockIds: plAreaBlockIds, + plNos: plNos, + type: queryType, + beginTime: beginTime, + endTime: endTime + }; + return req; + }, + //查询停车场收费折线图 + getCustIncomeForParkPayForChart: function () { + var req = parkincomefun.parkincomegetQueryParam(); + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + var index = $("#parkincome-toptab").val(); + //console.log(index); + var url = dataUrl.util.queryIncomeStatisticForPark(); + if (1 == index) { + url = dataUrl.util.queryIncomeStatisticForVipCard(); + } else if (2 == index) { + url = dataUrl.util.queryIncomeStatisticForBack(); + } + var opt = { + method: 'POST', + url: url, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + var dataX = []; + var dataY = []; + if (res.code = "8888") { + var data = res.data; + + + var queryType = $('#queryType').attr('data-value'); + var beginTime = null; + var endTime = null; + if (queryType == '1') { + beginTime = $("#parkincome-daydaterange-btnsta").val(); + endTime = $("#parkincome-daydaterange-btnend").val(); + } else { + beginTime = $("#parkincome-monthdaterange-btnsta").val(); + endTime = $("#parkincome-monthdaterange-btnend").val(); + } + var beginTimeArray = beginTime.split("-"); + + var endTimeArray = endTime.split("-"); + if (queryType == '1') { + dataX.push(beginTime); + //按天的页面 + var length = getDayNumber(beginTimeArray[0] + beginTimeArray[1] + beginTimeArray[2], endTimeArray[0] + endTimeArray[1] + endTimeArray[2]) + 1 + for (var i = 1; i < length; i++) { + dataX.push(addDate(req.beginTime, 1)); + } + } else { + dataX.push(beginTimeArray[0] + '-' + beginTimeArray[1]) + //按月的页面 + var length = getMonthNumber(beginTimeArray[0] + beginTimeArray[1] + beginTimeArray[2], endTimeArray[0] + endTimeArray[1] + endTimeArray[2]) + 1 + for (var i = 0; i < length; i++) { + for (var i = 1; i < length; i++) { + var tempDate = new Date(addMonth(req.beginTime, 1).replace(/-/g, "/")); + tempDate = tempDate.getFullYear() + '-' + getFormatDate(tempDate.getMonth() + 1); + dataX.push(tempDate); + } + + } + + } + + if (data.rows != null && data.rows.length > 0) { + $.each(dataX, function (index, staticTimeStr) { + var flag = false; + $.each(data.rows, function (index, ajaxData) { + + if (staticTimeStr == parkincomefun.staticDateFormatter(ajaxData.staticDate)) { + flag = true; + dataY.push(parkincomefun.moneyFormatter(ajaxData.actFee)); + } + }) + if (!flag) { + dataY.push(0); + } + }) + + } else { + $.each(dataX, function () { + dataY.push(0); + }) + } + + parkincomefun.ttcsfEcharts(dataX, dataY); + + } else { + + } + } + }; + sysAjax(opt); + }, + + //查询支付方式收费饼图 + getCustIncomeForParkPay: function () { + var req = parkincomefun.parkincomegetQueryParam(); + req.groupType = 100; + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + var index = $("#parkincome-toptab").val(); + //console.log(index); + var url = dataUrl.util.queryIncomeStatisticForPark(); + if (1 == index) { + url = dataUrl.util.queryIncomeStatisticForVipCard(); + } else if (2 == index) { + url = dataUrl.util.queryIncomeStatisticForBack(); + } + var opt = { + method: 'POST', + url: url, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code = "8888") { + var data = res.data; + var dataValue = []; + var totalFee = 0; + if (data.rows != null && data.rows.length > 0) { + var data = data.rows[0]; + var dataali = {name: "支付宝", value: parkincomefun.moneyFormatter(data.aliFee),}; + var datawx = {name: "微信", value: parkincomefun.moneyFormatter(data.wxFee)}; + var datacash = {name: "现金", value: parkincomefun.moneyFormatter(data.cashFee)}; + var databalance = {name: "余额", value: parkincomefun.moneyFormatter(data.balanceFee),selected:true,}; + dataValue.push(dataali); + dataValue.push(datawx); + dataValue.push(datacash); + dataValue.push(databalance); + totalFee = data.aliFee + data.wxFee + data.cashFee + data.balanceFee; + console.log(totalFee) + totalFee = parkincomefun.moneyFormatter(totalFee); + + } else { + var dataali = {name: "支付宝", value: 0}; + var datawx = {name: "微信", value: 0}; + var datacash = {name: "现金", value: 0}; + var databalance = {name: "余额", value: 0}; + dataValue.push(dataali); + dataValue.push(datawx); + dataValue.push(datacash); + dataValue.push(databalance); + } + console.log(dataValue); + parkincomefun.zzlEcharts(dataValue, totalFee); + + } else { + + } + } + }; + sysAjax(opt); + }, + //打印页面 + printPage: function () { + //标题头 + $('#print-title').text($('#parkincome-toptab div.ITD-graynav-topbaractive').text() + '报表'); + + $('#print-park').text($('#parkincome-transSelecarea').find("option:selected").text() + ' ' + $('#parkincome-transSelectPark').find("option:selected").text()) + + var startDateStr; + var endDateStr; + if ($('.parkincome-choosedateday').hasClass('display-none')) { + //按照月检索的 + //开始时间月份框 + startDateStr = $("#parkincome-monthdaterange-btnsta").val(); + //结束时间月份框 + endDateStr = $("#parkincome-monthdaterange-btnend").val(); + } else { + //按照日检索的 + + //开始时间日期框 + startDateStr = $("#parkincome-daydaterange-btnsta").val(); + //结束时间日期框 + endDateStr = $("#parkincome-daydaterange-btnend").val(); + + } + $('#print-select-date').text(startDateStr + ' - ' + endDateStr); + + //获取收入折线图图表 + var incomeLinePng = incomeLineChart.getDataURL(); + $('#incomereport-echarts-ttcsf-print').attr('src', incomeLinePng); + + //获取支付方式图表 + var payTypePng = payTypePidChart.getDataURL(); + $('#incomereport-echarts-zffs-print').attr('src', payTypePng); + + //开始请求数据 + var req = parkincomefun.parkincomegetQueryParam(); + + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 1000 + }; + req.sysCode = sysComm.sysCode; + var index = $("#parkincome-toptab").val(); + //console.log(index); + var url = dataUrl.util.queryIncomeStatisticForPark(); + if (1 == index) { + url = dataUrl.util.queryIncomeStatisticForVipCard(); + } else if (2 == index) { + url = dataUrl.util.queryIncomeStatisticForBack(); + } + $('#table-print-body').empty(); + var opt = { + method: 'post', + url: url, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + console.log('print:'); + console.log(res); + + var html = ''; + $.each(res.data.rows, function (index, row) { + html += '' + + '' + parkincomefun.staticDateFormatter(row.staticDate) + '' + + '' + parkincomefun.moneyFormatter(row.actFee) + '' + + '' + row.orderNum + '' + + '' + parkincomefun.moneyFormatter(row.wxFee) + '' + + '' + parkincomefun.moneyFormatter(row.aliFee) + '' + + '' + parkincomefun.moneyFormatter(row.cashFee) + '' + + '' + parkincomefun.moneyFormatter(row.balanceFee) + '' + + + + '' + }) + $('#table-print-body').append(html); + + //调用打印 + $(".cloud-print").print({ + append: $('.cloud-print').html(), + stylesheet: '/parkingcloud/assets/global/css/print/print.css' + }); + + } + } + }; + sysAjax(opt); + + + } + + , + + }; + + //默认页面初始执行函数 + parkincomefun.init(); + /** + * 默认table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ + function parkincometableLoadRequest(params) { + var req = parkincomefun.parkincomegetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit, + sortOrder:params.data.order,//排序 + sortName:params.data.sort,//排序字段 + }; + req.sysCode = sysComm.sysCode; + var index = $("#parkincome-toptab").val(); + //console.log(index); + var url = dataUrl.util.queryIncomeStatisticForPark(); + if (1 == index) { + url = dataUrl.util.queryIncomeStatisticForVipCard(); + } else if (2 == index) { + url = dataUrl.util.queryIncomeStatisticForBack(); + } + + var opt = { + method: 'post', + url: url, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); + } + + //日月切换 点击事件 + //日 点击 + documentBindFunc.on('click', '#parkincome-checkStyle1', function () { + // $('.parkincome-monthreportbar').removeClass('parkincome-baractive'); + $('.parkincome-choosedateday').removeClass('display-none'); + // $('.parkincome-dayreportbar').addClass('parkincome-baractive'); + $('.parkincome-choosedatemonth').addClass('display-none'); + $('#queryType').attr('data-value', '1'); + $('#parkIncomeByMonth').addClass('display-none'); + $('#parkIncomeByDay').removeClass('display-none'); + // $('#tableByDay').removeClass('display-none'); + // $('#tableByMonth').addClass('display-none'); + parkincomefun.parkincomecreateTableData(); + parkincomefun.getCustIncomeForParkPay(); + parkincomefun.getCustIncomeForParkPayForChart(); + }); + //月 点击 + documentBindFunc.on('click', '#parkincome-checkStyle0', function () { + // $('.parkincome-dayreportbar').removeClass('parkincome-baractive'); + $('.parkincome-choosedatemonth').removeClass('display-none'); + // $('.parkincome-monthreportbar').addClass('parkincome-baractive'); + $('.parkincome-choosedateday').addClass('display-none'); + $('#queryType').attr('data-value', '2'); + $('#parkIncomeByMonth').removeClass('display-none'); + $('#parkIncomeByDay').addClass('display-none'); + // $('#tableByDay').addClass('display-none'); + // $('#tableByMonth').removeClass('display-none'); + parkincomefun.parkincomecreateTableData(); + parkincomefun.getCustIncomeForParkPay(); + parkincomefun.getCustIncomeForParkPayForChart(); + }); + + //点击查询事件 + documentBindFunc.on('click', '#parkincome-billQueryBnt', function () { + var queryType = $('#queryType').attr('data-value'); + if (queryType == '1') { + parkincomefun.getCustIncomeForParkPay(); + parkincomefun.parkincomecreateTableData(); + parkincomefun.getCustIncomeForParkPayForChart(); + } else { + parkincomefun.getCustIncomeForParkPay(); + parkincomefun.parkincomecreateTableData(); + parkincomefun.getCustIncomeForParkPayForChart(); + } + }); + + //导出 + var InterValObj; //timer变量,控制时间 + var count = 8; //间隔函数,1秒执行 + var curCount;//当前剩余秒数 + + function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#parkincome-detailBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#parkincome-detailBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 + } + + //timer处理函数 + function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#parkincome-detailBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#parkincome-detailBtn").val("导出"); + } + else { + curCount--; + $("#parkincome-detailBtn").val(curCount + "秒后可再次导出"); + } + } + //导出excle + documentBindFunc.on('click','#parkincome-detailBtn',function (){ + //判断日 月 纬度 + var type = $('#queryType').attr('data-value'); + var parkLot,numTotal; + if (type == '1') { + //获取table所有行数据 + parkLot = $("#parkincome-billtable").bootstrapTable('getData'); + //获取table总条数 + numTotal = $("#parkincome-billtable").bootstrapTable('getOptions').totalRows; + }else { + //获取table所有行数据 + parkLot = $("#parkincome-billtable-month").bootstrapTable('getData'); + //获取table总条数 + numTotal = $("#parkincome-billtable-month").bootstrapTable('getOptions').totalRows; + } + + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //执行倒计时函数 + sendMessage(); + + var plAreaBlockIds = JSON.parse($("#parkincome-transSelecarea").val()); + var plNos = JSON.parse($("#parkincome-transSelectPark").val()); + if (plNos.length < 1) { + plNos.push("-1X"); + } + var beginTime = null; + var endTime = null; + if (type == '1') { + var dateValue1 = $("#parkincome-daydaterange-btnsta").val(); + var dateValue2 = $("#parkincome-daydaterange-btnend").val(); + beginTime = dateValue1 + " 00:00:00"; + endTime = dateValue2 + " 23:59:59"; + } else { + var beginTimeQ = $("#parkincome-monthdaterange-btnsta").val(); + var endTimeQ = $("#parkincome-monthdaterange-btnend").val(); + beginTime = beginTimeQ + "-01 00:00:00"; + var dates = endTimeQ.split("-"); + if (dates[1] == '02') { + endTime = endTimeQ + "-28 23:59:59"; + } else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07' + || dates[1] == '08' || dates[1] == '10' || dates[1] == '12') { + endTime = endTimeQ + "-31 23:59:59"; + } else { + endTime = endTimeQ + "-30 23:59:59"; + } + } + + var queryType = $("#parkincome-toptab").val(); + if (queryType == null || queryType == undefined || queryType == "") { + queryType = 0; + } + var url = dataUrl.util.exportToIncomeStatistic(); + + var form = construtForm(url, beginTime, endTime, plNos, type, plAreaBlockIds, queryType); + console.log(form); + form.submit(); + + + }); + + //停车收入打印 + $(document).on('click','#parkIncomePrint',function(){ + ; + + var queryType = $("#parkincome-toptab").val(); //0、停车收入:1、会员卡 2、补缴 + var plNos = JSON.parse($("#parkincome-transSelectPark").val()); //停车场 + var beginTime = ""; + var endTime =""; + var type =$("input[name='parkincome-checkStyle']:checked").val() //统计周期 1、日 2、月 + var userName = fn.getUserName(); + if(type != null && type !="" && "1"==type){ + beginTime =$("#parkincome-daydaterange-btnsta").val()+" 00:00:00"; + endTime = $("#parkincome-daydaterange-btnend").val()+" 23:59:59"; + + }else{ + beginTime =$("#parkincome-monthdaterange-btnsta").val()+"-01 00:00:00"; + endTime = $("#parkincome-monthdaterange-btnend").val()+"-31 23:59:59"; + } + if (queryType == null || queryType == undefined || queryType == "") { + queryType = 0; + } + + + + + + var url = dataUrl.util.parkingIncomePrint(); + var openUrl = "";//弹出窗口的url + var iWidth=800; //弹出窗口的宽度; + var iHeight=800; //弹出窗口的高度; + var iTop = (window.screen.availHeight-80-iHeight)/2; //获得窗口的垂直位置; + var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置; + var win= window.open('',"","height="+iHeight+", width="+iWidth+", top="+iTop+", left="+iLeft+",location=no,resizable=no"); + + var html="
    "; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + html+="
    "; + html += " \ No newline at end of file diff --git a/assets/pages/scripts/incomeAnalysisFile/tollincome/tollincome.js b/assets/pages/scripts/incomeAnalysisFile/tollincome/tollincome.js new file mode 100644 index 0000000..b919be5 --- /dev/null +++ b/assets/pages/scripts/incomeAnalysisFile/tollincome/tollincome.js @@ -0,0 +1,658 @@ +/** + * Created by mac on 18/5/19. + */ +var fun = { + init:function () { + //fun.initParkBlock(); + //收费员初始化 + $('#tollincome-person').selectpicker('render'); + commSelect.area_Pl_LinkedSelect("#tollincome-plAreaBlockIds", "#tollincome-parkIds",null,"",1); + + //块下拉框变化,停车场下拉框变化 + //fun.queryBlockChange(); + //停车场下拉框变化,收费员下拉框变化 + fun.queryParkChange(); + fun.initChargerSelect(); + fun.dateInit(); + fun.monthdateInit(); + fun.createTableData(); + fun.incomecasierTotal(); + + }, + dateInit:function () { + // 日 + $('#temtob-daterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#temtob-daterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#temtob-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + $("#temtob-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + + }, + monthdateInit: function () { + /** 月 时间初始化 **/ + $('#temtob-monthdaterange-btnsta').val(moment().subtract('months', 1).format('YYYY-MM')); + $('#temtob-monthdaterange-btnend').val(moment().subtract('months', 1).format('YYYY-MM')); + //开始日期 + $("#temtob-monthdaterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#temtob-monthdaterange-btnend").datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + //startDate:startVal, + format: 'yyyy-mm', + weekStart: 1, + autoclose: true, + startView: 3, + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //停车区域-块 + initParkBlock: function () { + var data = fn.getParkBlock(); + var html = ''; + var htmls = ''; + var blockIds = [-1]; + for (var i = 0; i < data.length; i++) { + blockIds.push(data[i].code); + html += ""; + } + var blockIdsStr = JSON.stringify(blockIds); + htmls = '' + html; + + $("#tollincome-plAreaBlockIds").empty(); + + $("#tollincome-plAreaBlockIds").append(htmls); + $('#tollincome-plAreaBlockIds').selectpicker('render'); + //加载下拉框 + fun.initParkSelect(); + + }, + //根据块信息查询停车场信息 + initParkSelect:function(){ + //停车场下拉框 + var data = fun.getParkingLotMsg(); + var htmls = ''; + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].plNo); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + htmls = '' + html; + + $("#tollincome-parkIds").empty(); + $("#tollincome-parkIds").append(htmls); + $('#tollincome-parkIds').selectpicker('refresh'); + + /*$("#parkIds1").empty(); + $("#parkIds1").append(htmls); + $('#parkIds1').selectpicker('refresh');*/ + //收费员初始化 + fun.initChargerSelect(); + + }, + //根据停车场编号查询收费员信息 + initChargerSelect:function(){ + //停车场下拉框 + var data = fun.getChargerMsg(); + var htmls = ''; + var html = ''; + var chargerCodes = []; + for (var i = 0; i < data.length; i++) { + chargerCodes.push(data[i].chargerCode); + html += ""; + } + var chargerCodesStr = JSON.stringify(chargerCodes); + htmls = '' + html; + + $("#tollincome-person").empty(); + $("#tollincome-person").append(htmls); + $('#tollincome-person').selectpicker('refresh'); + + }, + getParkingLotMsg:function(){ + var plAreaBlockIds; + plAreaBlockIds = JSON.parse($("#tollincome-plAreaBlockIds").val()); + var parkLot = ""; + var req = { + sysCode:sysComm.sysCode, + areaBlockIds: plAreaBlockIds + }; + var opt = { + async: false, + data:JSON.stringify(req), + method: "POST", + //contentType:"application/x-www-form-urlencoded; charset=UTF-8", + url: dataUrl.util.getParkListByBlockIds(), + success: function (res) { + if (res.code == '8888') { + parkLot = JSON.stringify(res.data); + } + } + } + sysAjax(opt); + return JSON.parse(parkLot); + }, + getChargerMsg:function(){ + var plNos; + plNos = JSON.parse($("#tollincome-parkIds").val()); + var plNo = ""; + // if (plNos.length > 1) { + // plNo = ""; + // } else { + // plNo = plNos[0]; + // } + var chargers = ""; + var req = { + baseRequest:{pageNum: 1, pageSize: 1000}, + plNo: plNo, + parkAreaCode: "", + groupCode: "", + onduty: "", + status: "", + nameOrNo: "", +// chargerCodes:fn.getChargerCodes(), + orgId:fn.getOrgId(), + sysCode: sysComm.sysCode + }; + var opt = { + async: false, + data:JSON.stringify(req), + method: "POST", + url: dataUrl.util.queryCashierListInfo(), + success: function (res) { + if (res.code == '8888') { + chargers = JSON.stringify(res.data.rows); + } + } + } + sysAjax(opt); + return JSON.parse(chargers); + }, + //块改变查询停车场 + queryBlockChange:function(){ + $("#tollincome-plAreaBlockIds").change(function(){ + fun.initParkSelect(); + }); + }, + //停车场改变查询收费员 + queryParkChange:function(){ + $("#tollincome-parkIds").change(function(){ + fun.initChargerSelect(); + }); + }, + //结算记录表格 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: settleOrderTableRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + + { + field: 'staticDateStr', + title: '时间', + width: '10%', + visible: true, + align: "left", + formatter: function (value, row, index) { + return '
    ' + commonObj.replacenull(value) + '
    ' + + } + }, + { + field: 'sourceName', + title: '收费员名称', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + commonObj.replacenull(value) + '
    ' + + } + }, + { + field: 'plName', + title: '车场名称', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + commonObj.replacenull(value) + '
    ' + } + }, + { + field: 'plType', + title: '车场类型', + width: '10%', + visible: false, + align: "left", + formatter: function (value, row, index) { + var result = ""; + if(value==1){ + result = "路侧"; + }else{ + result = "封闭"; + } + return '
    ' + commonObj.replacenull(result) + '
    ' + } + }, + { + field: 'berthRangeName', + title: '泊位区间', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + commonObj.replacenull(value) + '
    ' + } + }, + { + field: 'actFee', + title: '总收入', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + commonObj.moneyFormatter(value) + '
    ' + } + }, + { + field: 'errorOrderNum', + title: '异常订单数', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + fun.numberFormatter(value) + '
    ' + } + }, + { + field: 'errorFee', + title: '异常金额', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + commonObj.moneyFormatter(value) + '
    ' + } + }, + { + field: 'backActFee', + title: '补缴收入', + width: '10%', + visible: false, + align: "left", + formatter: function (value, row, index) { + return '
    ' + commonObj.moneyFormatter(value) + '
    ' + } + }, + + + ] + }); + + }, + /*获取查询参数*/ + getQueryParam: function () { + var plBlockIds = JSON.parse($("#tollincome-plAreaBlockIds").val()); + var plNos = []; + var plnos = $("#tollincome-parkIds").val(); + if(plnos==null||plnos==''){ + plNos.push("-1X"); + } + else{ + plNos = JSON.parse(plnos); + } + var chargerCodes = []; + var chargercodes = $("#tollincome-person").val(); + if(chargercodes==null||chargercodes==''){ + chargerCodes.push("-1X"); + } + else{ + chargerCodes = JSON.parse(chargercodes); + } + if(chargerCodes.length ==0){ + chargerCodes = null; + } + var reportDate,reportDateEnd,TabTag; + if($('#tollIncomeType').val()==1){ + reportDate = $("#temtob-daterange-btnsta").val(); + reportDateEnd = $("#temtob-daterange-btnend").val(); + TabTag=0; + }else { + reportDate = $("#temtob-monthdaterange-btnsta").val(); + reportDateEnd = $("#temtob-monthdaterange-btnend").val(); + TabTag=4; + } + + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + reportDate: reportDate, + reportDateEnd: reportDateEnd, + sourceCodes:chargerCodes, + reportTabTag: TabTag + + }; + return req; + }, + //初始化 + initDatas: function () { + $("[id$='Num']").html(fun.numberFormatter(0)); + $("[id$='Fee']").html(fun.moneyFormatter(0)); + }, + //汇总查询 + incomecasierTotal: function (reportTabTag) { + //初始化 + fun.initDatas(); + var req = fun.getQueryParam(); + var opt = { + async: false, + method: 'post', + url: dataUrl.util.queryIncomeParkSourceForTotal(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if ("8888" == res.code) { + var data = res.data; + + //开始渲染汇总数据 + + var orderActFeeTotal = 0; + var abnormalOrderNum = 0; + var abnormalActFeeTotal = 0; + var chargerNum = 0; + //明细 + $.each(data, function (index, row) { + + if (row.plType == 1) { + orderActFeeTotal += row.orderActFeeTotal; + chargerNum += row.chargerNum; + $("#outTotalFee").text(fun.moneyFormatter(row.orderActFeeTotal)); + $("#outChargerNum").text(fun.numberFormatter(row.chargerNum)); + abnormalActFeeTotal += row.abnormalActFeeTotal; + $("#outAbnormalActFee").text(fun.moneyFormatter(row.abnormalActFeeTotal)); + + abnormalOrderNum += row.abnormalOrderNum; + $("#outAbnormalOrderNum").text(fun.numberFormatter(row.abnormalOrderNum)); + } + else if (row.plType == 2) { + orderActFeeTotal += row.orderActFeeTotal; + chargerNum += row.chargerNum; + $("#inTotalFee").text(fun.moneyFormatter(row.orderActFeeTotal)); + $("#inChargerNum").text(fun.numberFormatter(row.chargerNum)); + abnormalActFeeTotal += row.abnormalActFeeTotal; + $("#inAbnormalActFee").text(fun.moneyFormatter(row.abnormalActFeeTotal)); + + abnormalOrderNum += row.abnormalOrderNum; + $("#inAbnormalOrderNum").text(fun.numberFormatter(row.abnormalOrderNum)); + } + $("#allTotalFee").text(fun.moneyFormatter(orderActFeeTotal)); + $("#allChargerNum").text(fun.numberFormatter(chargerNum)); + $("#allAbnormalActFee").text(fun.moneyFormatter(abnormalActFeeTotal)); + $("#allAbnormalOrderNum").text(fun.numberFormatter(abnormalOrderNum)); + + }); + } + } + }; + sysAjax(opt); + + }, + //金额格式化 + moneyFormatter: function (value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return "0.00"; + } else { + return (value / 100).toFixed(2); + } + }, + //字符串格式化 + strFormatter: function (value) { + // console.log(typeof value) + if ( value == undefined || value == null) { + return "-"; + } else { + return value; + } + }, + //金额格式化 + numberFormatter: function (value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return 0; + } else { + return parseInt(value); + } + }, + //导出函数 + exportChargerStaticExcel:function(){ + //校验日期 + var url = ""; + var req = fun.getQueryParam(); + if(req.sourceCodes == null || req.sourceCodes.length == 0){ + url = dataUrl.util.exportIncomeParkSourceEveryDayForPage() + '?reportTabTag=' + req.reportTabTag + '&reportDate=' + req.reportDate + '&reportDateEnd=' + req.reportDateEnd + '&plNos=' + req.plNos + '&sourceCodes=&sysCode='+sysComm.sysCode; + }else{ + url = dataUrl.util.exportIncomeParkSourceEveryDayForPage() + '?reportTabTag=' + req.reportTabTag + '&reportDate=' + req.reportDate + '&reportDateEnd=' + req.reportDateEnd + '&plNos=' + req.plNos + '&sourceCodes=' + req.sourceCodes +'&sysCode='+sysComm.sysCode; + } + + window.downloadFile(url); + }, + +}; + +//日月切换 点击事件s +//日 点击 +documentBindFunc.on('click', '#temtobdaytype', function () { + $('.bill-choosedateday').removeClass('display-none'); + $('.bill-choosedatemonth').addClass('display-none'); + $('#temtobmonthtype').removeClass('ITD-graynav-topbaractive'); + $('#temtobdaytype').addClass('ITD-graynav-topbaractive'); + $('#tollIncomeType').attr('data-value', '1'); + $("#tollIncomeType").val(1); + fun.createTableData(); + fun.incomecasierTotal(); +}); +//月 点击 +documentBindFunc.on('click', '#temtobmonthtype', function () { + $('.bill-choosedatemonth').removeClass('display-none'); + $('.bill-choosedateday').addClass('display-none'); + $('#temtobdaytype').removeClass('ITD-graynav-topbaractive'); + $('#temtobmonthtype').addClass('ITD-graynav-topbaractive'); + $('#tollIncomeType').attr('data-value', '2'); + $("#tollIncomeType").val(2); + fun.createTableData(); + fun.incomecasierTotal(); +}); + + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#tollincomereportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#tollincomereportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#tollincomereportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#tollincomereportBtn").val("导出"); + } + else { + curCount--; + $("#tollincomereportBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#tollincomereportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#recordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + fun.exportChargerStaticExcel(); +}); + + +/** + * 结算记录表格请求函数 + * @param params + */ +function settleOrderTableRequest(params) { + var req = fun.getQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + req .baseRequest= { + pageNum: pageNum, + pageSize: params.data.limit + }; + var opt = { + async: false, + method: 'post', + url: dataUrl.util.queryParkChargerIncomeForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + + + +fun.init(); +//查询 +documentBindFunc.on('click', '#temtob-queryBtn', function () { + fun.createTableData(); + fun.incomecasierTotal(); +}); +//导出功能 +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; diff --git a/assets/pages/scripts/incomereportFile/incomeCasier/img/card-caiserperson-icon.png b/assets/pages/scripts/incomereportFile/incomeCasier/img/card-caiserperson-icon.png new file mode 100644 index 0000000..4aff347 Binary files /dev/null and b/assets/pages/scripts/incomereportFile/incomeCasier/img/card-caiserperson-icon.png differ diff --git a/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-1.png b/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-1.png new file mode 100755 index 0000000..136040e Binary files /dev/null and b/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-1.png differ diff --git a/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-2.png b/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-2.png new file mode 100644 index 0000000..042d7fc Binary files /dev/null and b/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-2.png differ diff --git a/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-3.png b/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-3.png new file mode 100755 index 0000000..7373cc7 Binary files /dev/null and b/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-3.png differ diff --git a/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-4.png b/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-4.png new file mode 100644 index 0000000..e716d45 Binary files /dev/null and b/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-4.png differ diff --git a/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-5.png b/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-5.png new file mode 100644 index 0000000..ae2d291 Binary files /dev/null and b/assets/pages/scripts/incomereportFile/incomeCasier/img/incomecasier-li-5.png differ diff --git a/assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.css b/assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.css new file mode 100644 index 0000000..1232093 --- /dev/null +++ b/assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.css @@ -0,0 +1,117 @@ +.common-parking-l{ + float: left; + width: 70px; + height: 34px; + line-height: 34px; +} + + +/*收入汇总*/ +.incomecasier-caption{ + padding-top: 20px; +} +.incomecasier-caption-date{ + padding-bottom: 20px; +} +.common-display-bfb { + width: 100%; + height: 164px; +} +.common-display-bfb-li { + float: left; + width: 20%; + /* height: 165px; */ +} +.incomecasier-ul-wrap{ + border: 1px solid #E8E8E8; +} +.incomecasier-ul-wrap li{ + border-right: 1px solid #E8E8E8; + /*box-shadow: 1px 0px 1px 0px rgba(0,0,0,0.1); + -webkit-box-shadow: 1px 0px 1px 0px rgba(0,0,0,0.1); + -moz-box-shadow: 1px 0px 1px 0px rgba(0,0,0,0.1);*/ +} +.incomecasier-ul-wrap li:last-child{ + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; +} +.incomecasier-li-top{ + border-bottom: 1px solid #E8E8E8; +} +.incomecasier-ul-wrap li:nth-of-type(1) .incomecasier-li-top{ + padding:21px 18px; + background-color:#FFF1DB; +} +.li-left-1{ + width: 56px; + height: 56px; + /*padding-top: 3px;*/ +} +.li-left-1 img{ + width: 56px; + height: 56px; +} +.incomecasier-ul-wrap li:nth-of-type(2) .incomecasier-li-top{ + padding:21px 18px; + background-color:#DFF9EB; +} +.li-left-2{ + width: 56px; + height: 56px; + padding-top: 4px; +} +.li-left-2 img{ + width: 56px; + height: 56px; +} +.incomecasier-ul-wrap li:nth-of-type(3) .incomecasier-li-top{ + padding:21px 18px; + background-color:#FFF9DB; +} +.li-left-3{ + width: 56px; + height: 56px; +} +.li-left-3 img{ + width: 56px; + height: 56px; +} +.incomecasier-li-top .float-right{ + min-width: 80px; +} +.incomecasier-ul-wrap li:nth-of-type(4) .incomecasier-li-top{ + padding:21px 18px; + background-color:#DFF3F4; +} +.li-left-4{ + width: 56px; + height: 56px; +} +.li-left-4 img{ + width: 56px; + height: 56px; +} +.incomecasier-ul-wrap li:nth-of-type(5) .incomecasier-li-top{ + padding:21px 18px; + background-color:#FFF1DB; +} +.li-left-5{ + width: 56px; + height: 56px; +} +.li-left-5 img{ + width: 56px; + height: 56px; +} +.incomecasier-li-bottom{ + padding:16px 20px; + height: 47px; +} +.incomefixwid{ + max-width: 124px; +} +.card-b-r{ + width: calc(100% - 60px); + text-align: right; +} \ No newline at end of file diff --git a/assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.html b/assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.html new file mode 100644 index 0000000..bc0721b --- /dev/null +++ b/assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.html @@ -0,0 +1,172 @@ + +
    +
    + + +
    +
    +
    + 日期 +
    + +
    +
    + + +
    +
    查询
    +
    +
    +
    + +
    +
    + +
    + +
    + \ No newline at end of file diff --git a/assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.js b/assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.js new file mode 100644 index 0000000..a384dc2 --- /dev/null +++ b/assets/pages/scripts/incomereportFile/incomeCasier/incomecasier.js @@ -0,0 +1,440 @@ +//日 周 月 切换 +var reportDateTag = 1; +$('#incomecasier-toptab li').on('click', function () { + var _index = $(this).index(); + switch (_index) { + case 0: + $('.incomecasier-choosedatemonth').addClass('display-none'); + $('.incomecasier-choosedateweek').addClass('display-none'); + $('.incomecasier-choosedateday').removeClass('display-none'); + $('#incomecasier-toptab li').eq(0).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + + reportDateTag = 1; + //汇总查询 + incomecasierFun.incomecasierTotal(reportDateTag); + //分页查询 + incomecasierFun.createTableData(); + break; + case 1: + $('.incomecasier-choosedateday').addClass('display-none'); + $('.incomecasier-choosedatemonth').addClass('display-none'); + $('.incomecasier-choosedateweek').removeClass('display-none'); + $('#incomecasier-toptab li').eq(1).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + + reportDateTag = 2; + //汇总查询 + incomecasierFun.incomecasierTotal(reportDateTag); + //分页查询 + incomecasierFun.createTableData(); + break; + case 2: + $('.incomecasier-choosedateday').addClass('display-none'); + $('.incomecasier-choosedateweek').addClass('display-none'); + $('.incomecasier-choosedatemonth').removeClass('display-none'); + $('#incomecasier-toptab li').eq(2).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + + reportDateTag = 3; + //汇总查询 + incomecasierFun.incomecasierTotal(reportDateTag); + //分页查询 + incomecasierFun.createTableData(); + break; + + } +}); +var incomecasierFun = { + init: function () { + incomecasierFun.dayDate(); + incomecasierFun.weekDate(); + incomecasierFun.monthDate(); + //汇总查询 + incomecasierFun.incomecasierTotal(reportDateTag); + //分页查询 + incomecasierFun.createTableData(); + //打印 + incomecasierFun.incomeCasierPrint(); + }, + //初始化 + initDatas: function () { + $("#outOrderActFeeToal").text(commonObj.moneyFormatter(0)); + $("#inOrderActFeeToal").text(commonObj.moneyFormatter(0)); + $("#orderActFeeTotal").text(commonObj.moneyFormatter(0)); + $("#outAbnormalActFeeTotal").text(commonObj.moneyFormatter(0)); + $("#inAbnormalActFeeTotal").text(commonObj.moneyFormatter(0)); + $("#abnormalActFeeTotal").text(commonObj.moneyFormatter(0)); + $("#outAbnormalOrderNum").text(commonObj.moneyFormatter(0)); + $("#inAbnormalOrderNum").text(commonObj.moneyFormatter(0)); + $("#abnormalOrderNum").text(commonObj.moneyFormatter(0)); + $("#chargerNum").text(commonObj.moneyFormatter(0)); + $("#outChargerNum").text(commonObj.moneyFormatter(0)); + $("#inChargerNum").text(commonObj.moneyFormatter(0)); + $("#parkTotalNum").text(commonObj.moneyFormatter(0)); + $("#outParkNum").text(commonObj.moneyFormatter(0)); + $("#inParkNum").text(commonObj.moneyFormatter(0)); + }, + //汇总查询 + incomecasierTotal: function (reportTabTag) { + //初始化 + incomecasierFun.initDatas(); + var req = incomecasierFun.getQueryParam(); + var reportTabTagName = ""; + if ("1" == reportTabTag) { + reportTabTagName = "日"; + } else if ("2" == reportTabTag) { + reportTabTagName = "周"; + } else { + reportTabTagName = "月"; + } + + var opt = { + method: 'post', + url: dataUrl.util.queryIncomeParkSourceForTotal(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if ("8888" == res.code) { + var data = res.data; + console.log(data) + var orgName = ''; + if (data != null && data.length > 0 && data[0].orgName != null) { + orgName = data[0].orgName; + } + $("#orgName").val(orgName); + $("#orgNameTitle").text(orgName + " 收费员统计" + reportTabTagName + "报"); + + //开始渲染汇总数据 + + var orderActFeeTotal = 0; + var yesOrderActFeeTotal = 0; + var abnormalOrderNum = 0; + var abnormalActFeeTotal = 0; + var parkTotalNum = 0; + var chargerNum = 0; + //明细 + $.each(data, function (index, row) { + + if (row.plType == 1) { + orderActFeeTotal += row.orderActFeeTotal; + parkTotalNum += row.parkNum; + chargerNum += row.chargerNum; + $("#outOrderActFeeToal").text(commonObj.moneyFormatter(row.orderActFeeTotal)); + $("#outParkNum").text(commonObj.numberFormatter(row.parkNum)); + $("#outChargerNum").text(commonObj.numberFormatter(row.chargerNum)); + abnormalActFeeTotal += row.abnormalActFeeTotal; + $("#outAbnormalActFeeTotal").text(commonObj.moneyFormatter(row.abnormalActFeeTotal)); + + abnormalOrderNum += row.abnormalOrderNum; + $("#outAbnormalOrderNum").text(commonObj.numberFormatter(row.abnormalOrderNum)); + } + else if (row.plType == 2) { + orderActFeeTotal += row.orderActFeeTotal; + parkTotalNum += row.parkNum; + chargerNum += row.chargerNum; + $("#inOrderActFeeToal").text(commonObj.moneyFormatter(row.orderActFeeTotal)); + $("#inParkNum").text(commonObj.numberFormatter(row.parkNum)); + $("#inChargerNum").text(commonObj.numberFormatter(row.chargerNum)); + abnormalActFeeTotal += row.abnormalActFeeTotal; + $("#inAbnormalActFeeTotal").text(commonObj.moneyFormatter(row.abnormalActFeeTotal)); + + abnormalOrderNum += row.abnormalOrderNum; + $("#inAbnormalOrderNum").text(commonObj.numberFormatter(row.abnormalOrderNum)); + } + $("#orderActFeeTotal").text(commonObj.moneyFormatter(orderActFeeTotal)); + $("#parkTotalNum").text(commonObj.numberFormatter(parkTotalNum)); + $("#chargerNum").text(commonObj.numberFormatter(chargerNum)); + $("#abnormalActFeeTotal").text(commonObj.moneyFormatter(abnormalActFeeTotal)); + $("#abnormalOrderNum").text(commonObj.numberFormatter(abnormalOrderNum)); +// + + + }); + //计算环比 +// var rate = (orderActFeeTotal/100-yesOrderActFeeTotal/100)*100/(yesOrderActFeeTotal/100<1?1:yesOrderActFeeTotal/100).toFixed(2)+"%"; +// console.log(rate); + } + } + }; + sysAjax(opt); + + }, + dayDate: function () { + $('#incomecasier-daydaterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#incomecasier-daydaterange-btnsta').datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + weekDate: function () { + $('#incomecasier-weekdaterange-btnsta').attr('data-text',moment().subtract('days', 7).format('YYYY-MM-DD') + '-' + moment().subtract('days', 1).format('YYYY-MM-DD')) + $('#incomecasier-weekdaterange-btnsta').html(moment().subtract('days', 7).format('YYYY-MM-DD') + ' 至 ' + moment().subtract('days', 1).format('YYYY-MM-DD')); + + }, + monthDate: function () { + $('#incomecasier-monthdaterange-btnsta').val(moment().subtract('months', 1).format('YYYY-MM')); + $('#incomecasier-monthdaterange-btnsta').datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //默认生成表格数据-临停收入 + createTableData: function () { + $('#incomecaiser-billtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + sortable: true, //是否启用排序 + sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'plName', + title: '车场名称', + width: '10%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'sourceName', + title: '姓名', + width: '5%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'plType', + title: '车场类型', + width: '5%', + align: "left", + formatter: incomecasierFun.plTypeFormatter + }, + + { + field: 'berthRangeName', + title: '泊位区间', + width: '5%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'workOffworkTime', + title: '上下班时间', + width: '5%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'actFee', + title: '实收', + width: '5%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝收入', + width: '5%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'wxFee', + title: '微信收入', + width: '5%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'cashFee', + title: '现金收入', + width: '5%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'balanceFee', + title: '余额收入', + width: '5%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'errorOrderNum', + title: '异常订单数', + width: '5%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'errorFee', + title: '异常金额', + width: '5%', + align: "left", + formatter: commonObj.moneyFormatter + }, + + { + field: 'backActFee', + title: '补缴', + width: '5%', + align: "left", + formatter: commonObj.moneyFormatter + }, + ] + }); + }, + //停车场类型 + plTypeFormatter: function (value) { + if (value == undefined || value == null) { + return ''; + } else if (value == 1) { + return "路侧"; + } else if (value == 2) { + return "封闭"; + } + }, + + /*获取查询参数*/ + getQueryParam: function () { + var data = fn.getParkLot(); + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + } + if (plNos.length < 1) { + plNos.push("-1X"); + } + var reportDate ; + var reportTabTag = reportDateTag; + + + if (reportTabTag == 1) { + reportDate = $("#incomecasier-daydaterange-btnsta").val(); + $("#reportDateTitle").text(reportDate); + } else if (reportTabTag == 2) { + reportDate = $("#incomecasier-weekdaterange-btnsta").attr('data-text'); + var reportDateStr = $("#incomecasier-weekdaterange-btnsta").html(); + $("#reportDateTitle").text(reportDateStr); + reportDate = reportDate.substring(11, 21); + } else if (reportTabTag == 3) { + reportDate = $("#incomecasier-monthdaterange-btnsta").val(); + $("#reportDateTitle").text(reportDate); + } + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + reportDate: reportDate, + reportTabTag: reportTabTag + + }; + return req; + }, + + //打印 + incomeCasierPrint: function () { + $(document).on('click', '#incomeCasierPrint', function () { + var reportTitle = $('#orgNameTitle').html(); + var req = incomecasierFun.getQueryParam(); + var userName = fn.getUserName(); + var orgId = fn.getOrgId(); + var orgName = $("#orgName").val(); + //begin调用打印 + var url = dataUrl.util.queryIncomeParkSourcePrint(); + var openUrl = "";//弹出窗口的url + var iWidth = 800; //弹出窗口的宽度; + var iHeight = 800; //弹出窗口的高度; + var iTop = (window.screen.availHeight - 80 - iHeight) / 2; //获得窗口的垂直位置; + var iLeft = (window.screen.availWidth - 10 - iWidth) / 2; //获得窗口的水平位置; + var win = window.open('', reportTitle, "height=" + iHeight + ", width=" + iWidth + ", top=" + iTop + ", left=" + iLeft + ",location=no,resizable=no"); + + + + var html = "
    "; + html += ""; + html+=""; + html +=""; + html += ""; + html += ""; + html += ""; + html += ""; + + html += "
    "; + html += " + \ No newline at end of file diff --git a/assets/pages/scripts/incomereportFile/incomeParking/incomeparking.js b/assets/pages/scripts/incomereportFile/incomeParking/incomeparking.js new file mode 100644 index 0000000..2669fe0 --- /dev/null +++ b/assets/pages/scripts/incomereportFile/incomeParking/incomeparking.js @@ -0,0 +1,1171 @@ +// 搜索日期切换 + + +//日 周 月 切换 +var reportDateTag=1; +var srzbechartsPie; +$('#parkincome-toptab li').on('click',function () { + var _index = $(this).index(); + switch (_index){ + case 0: + $('.parkincome-choosedatemonth').addClass('display-none'); + $('.parkincome-choosedateweek').addClass('display-none'); + $('.parkincome-choosedateday').removeClass('display-none'); + $('#parkincome-toptab li').eq(0).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + // incomeparkFun.dayDate(); + reportDateTag=1; + tabFunction(reportDateTag); + break; + case 1: + $('.parkincome-choosedateday').addClass('display-none'); + $('.parkincome-choosedatemonth').addClass('display-none'); + $('.parkincome-choosedateweek').removeClass('display-none'); + $('#parkincome-toptab li').eq(1).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + // incomeparkFun.weekDate(); + reportDateTag=2; + tabFunction(reportDateTag); + break; + case 2: + $('.parkincome-choosedateday').addClass('display-none'); + $('.parkincome-choosedateweek').addClass('display-none'); + $('.parkincome-choosedatemonth').removeClass('display-none'); + $('#parkincome-toptab li').eq(2).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + // incomeparkFun.monthDate(); + reportDateTag=3; + tabFunction(reportDateTag); + break; + + } +}) +//切换tcb事件 +function tabFunction(reportDateTag){ + incomeparkFun.incomeparkTotal(reportDateTag); + incomeparkFun.queryIncomeParkForPayType(); + var index = $("#srzb-tabbar .srzb-active").index(); + if(index==0){ + //临停数据 + incomeparkFun.ltsrcreateTableData(); + $("#reportLi").css({display:"block"}); + }else{ + //会员卡数据 + incomeparkFun.vipcreateTableData(); + $("#reportLi").css({display:"none"}); + } +} +//支付方式占比 +var incomeparkFun={ + init:function(){ + + //incomeparkFun.srzbChartsFun(); + incomeparkFun.dayDate(); + incomeparkFun.weekDate(); + incomeparkFun.monthDate(); + //汇总查询 + incomeparkFun.incomeparkTotal(1); + incomeparkFun.queryIncomeParkForPayType(); + //临停数据 + incomeparkFun.ltsrcreateTableData(); + }, + //汇总查询 + incomeparkTotal:function(reportTabTag){ + //获取停车场信息 + //获取停车场信息 + var data = fn.getParkLot(); + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + } + var reportDate=""; + var reportTabTag=reportDateTag; + if(reportTabTag==1){ + reportDate=$("#incomepark-daydaterange-btnsta").val(); + }else if(reportTabTag==2){ + var reportDateStr=$("#incomepark-weekdaterange-btnsta").attr('data-text'); + reportDate=reportDateStr.substring(11,21); + }else if(reportTabTag==3){ + reportDate=$("#incomepark-monthdaterange-btnsta").val(); + } + var reportTabTagName = ""; + if("1" ==reportTabTag){ + reportTabTagName="日"; + $("#reportDateTitle").text(reportDate); + }else if("2" ==reportTabTag){ + reportTabTagName="周"; + }else{ + reportTabTagName="月"; + } + //条件查询 + var req = { + reportDate:reportDate, + plNos:plNos, + reportTabTag:reportTabTag, + sysCode:sysComm.sysCode + }; + + var opt = { + method: 'post', + url: dataUrl.util.queryIncomeParkAndVipForTotal(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if("8888" == res.code){ + var data = res.data; + console.log(data) + if(data.orgName==null || data.orgName==undefined || data.orgName ==''){ + data.orgName=" "; + } + $("#orgName").val(data.orgName); + $("#orgNameTitle").text(data.orgName+" 停车场统计"+reportTabTagName+"报"); + if(reportTabTagName=='周'){ + console.log(reportTabTagName); + $("#reportDateTitle").text($("#incomepark-weekdaterange-btnsta").html()) + }else{ + $("#reportDateTitle").text(reportDate); + } + + $("#parkTotalNum").text(data.parkTotalNum); //停车场总个数 + $("#pBerthTotalNum").text(data.pBerthTotalNum); //泊位总个数 + $("#orderActFeeTotal").text(moneyFormatter(data.orderActFeeTotal)); //总收入 + $("#orderActFeeParkTotal").text(moneyFormatter(data.orderActFeeParkTotal)); //临时停车总收入 + $("#orderActFeeVipCardTotal").text(moneyFormatter(data.orderActFeeVipCardTotal)); //会员卡总收入 + //明细 + var incomeParkAndVipDetailList = data.incomeParkAndVipDetailList; + $.each(incomeParkAndVipDetailList,function(index,row){ + if("1" ==row.plType){//路侧停车场 + $("#OutparkNum").text(row.parkNum); //路测停车场个数 + $("#OutpBerthNum").text(row.pBerthNum); //路测泊位个数 + $("#OutorderActFeeToal").text(moneyFormatter(row.orderActFeeToal)); //路测总收入 + $("#OutorderActFeePark").text(moneyFormatter(row.orderActFeePark)); //路测临停车收入 + $("#OutorderActFeeVipCard").text(moneyFormatter(row.orderActFeeVipCard)); //路测会员卡收入 + + }else{ + $("#InparkNum").text(row.parkNum); //封闭停车场个数 + $("#InpBerthNum").text(row.pBerthNum); //封闭泊位个数 + $("#InorderActFeeToal").text(moneyFormatter(row.orderActFeeToal)); //封闭总收入 + $("#InorderActFeePark").text(moneyFormatter(row.orderActFeePark)); //封闭临停车收入 + $("#InorderActFeeVipCard").text(moneyFormatter(row.orderActFeeVipCard)); //封闭会员卡收入 + } + }); + + } + } + }; + sysAjax(opt); + + + + }, + dayDate:function() { + $('#incomepark-daydaterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#incomepark-daydaterange-btnsta').datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + weekDate:function() { + $('#incomepark-weekdaterange-btnsta').attr('data-text',moment().subtract('days', 7).format('YYYY-MM-DD')+'-'+moment().subtract('days', 1).format('YYYY-MM-DD')) + $('#incomepark-weekdaterange-btnsta').html(moment().subtract('days', 7).format('YYYY-MM-DD')+' 至 '+moment().subtract('days', 1).format('YYYY-MM-DD')); + + }, + + monthDate:function() { + $('#incomepark-monthdaterange-btnsta').val(moment().subtract('months', 1).format('YYYY-MM')); + $('#incomepark-monthdaterange-btnsta').datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //默认生成表格数据-临停收入 + ltsrcreateTableData: function () { + $('#incomepark-billtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + sortable: true, //是否启用排序 + sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: incomeparktableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'number', + title: '排名', + width: '2%', + align: "left", + formatter:function(value,row,index){ + //return index+1; //序号正序排序从1开始 + var pageSize=$('#incomepark-billtable').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条 + var pageNumber=$('#incomepark-billtable').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页 + var operStr=''; + var topNo=pageSize * (pageNumber - 1) + index + 1; + if(topNo==1){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else if(topNo==2){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else if(topNo==3){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else { + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + } + + } + + }, + { + field: 'plName', + title: '车场名称', + width: '10%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'plType', + title: '车场类型', + width: '3%', + align: "left", + formatter: incomeparkFun.plTypeFormatter + }, + { + field: 'berthNum', + title: '泊位数', + width: '2%', + align: "left", + formatter: incomeparkFun.numberFormatter + }, + { + field: 'chargerNum', + title: '收费员人数', + width: '2%', + align: "left", + formatter: incomeparkFun.numberFormatter + }, + + { + field: 'wxFee', + title: '微信', + width: '2%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '2%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'balanceFee', + title: '余额', + width: '2%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'cashFee', + title: '现金', + width: '2%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'actFee', + title: '总收入', + width: '2%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'totalFee', + title: '应收金额', + width: '2%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'actFee', + title: '泊位平均收益', + width: '2%', + align: "left", + formatter: incomeparkFun.avgFeeFormatter + }, + { + field: 'totalFee', + title: '泊位平均应收收益', + width: '2%', + align: "left", + formatter: incomeparkFun.avgFeeFormatter + }, + ] + }); + }, + //表格数据-会员卡收入 + vipcreateTableData: function () { + $('#incomepark-billtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + sortable: true, //是否启用排序 + sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: incomeviptableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'number', + title: '排名', + width: '2%', + align: "left", + formatter:function(value,row,index){ + //return index+1; //序号正序排序从1开始 + var pageSize=$('#incomepark-billtable').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条 + var pageNumber=$('#incomepark-billtable').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页 + var operStr=''; + var topNo=pageSize * (pageNumber - 1) + index + 1; + if(topNo==1){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else if(topNo==2){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else if(topNo==3){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else { + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + } + } + + }, + { + field: 'plName', + title: '车场名称', + width: '10%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'plType', + title: '车场类型', + width: '5%', + align: "left", + formatter: incomeparkFun.plTypeFormatter + }, + { + field: 'berthNum', + title: '泊位数', + width: '2%', + align: "left", + formatter: incomeparkFun.numberFormatter + }, + { + field: 'actFee', + title: '总收入', + width: '2%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'wxFee', + title: '微信', + width: '2%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '2%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'balanceFee', + title: '余额', + width: '2%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'cashFee', + title: '现金', + width: '2%', + align: "left", + formatter: commonObj.moneyFormatter + }, +// { +// field: 'actFee', +// title: '泊位平均收益', +// width: '2%', +// align: "left", +// formatter: incomeparkFun.avgFeeFormatter +// }, + ] + }); + }, + + //数量处理 + numberFormatter: function (value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null||value =='') { + return 0; + } else { + return value; + } + }, + //停车场类型 + plTypeFormatter: function (value) { + if (value == undefined || value == null||value =='') { + return ''; + } else if(value==1){ + return "路侧"; + }else if(value==2){ + return "封闭"; + } + }, + //泊位平均收益 + avgFeeFormatter: function (value,row,index) { + var days = incomeparkFun.incomeparkgetQueryParam().days; + if (value == undefined || value == null ||value =='') { + return commonObj.moneyFormatter(0); + } + if(row.berthNum == undefined || row.berthNum == null || row.berthNum == 0){ + return commonObj.moneyFormatter(value); + } + else { + var avgFee = (value/row.berthNum/days).toFixed(2); + return commonObj.moneyFormatter(avgFee); + } + }, + /*获取查询参数*/ + incomeparkgetQueryParam: function () { + var days = 1;//查询间隔天数 + var dayArray = [1,31,28,31,30,31,30,31,31,30,31,30,31]//每月的天数 + //0,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10,11,12 + var data = fn.getParkLot(); + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + + } + if (plNos.length < 1) { + plNos.push("-1X"); + } + + var reportTabTag=reportDateTag; + if(reportTabTag==1){ + var reportDate=$("#incomepark-daydaterange-btnsta").val(); + days = 1; + }else if(reportTabTag==2){ + var reportDate=$("#incomepark-weekdaterange-btnsta").attr('data-text'); + reportDate=reportDate.substring(11,21); + days = 7; + }else if(reportTabTag==3){ + var reportDate=$("#incomepark-monthdaterange-btnsta").val(); + var i = reportDate.substring(5,7); + i=Number(i); + days = dayArray[i]; + } + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + reportDate: reportDate, + reportTabTag:reportTabTag, + days:days + }; + return req; + + }, + + //查询支付方式收费饼图 + queryIncomeParkForPayType: function () { + + $("#outwxfee").text("0.00"); + $("#outalifee").text("0.00"); + $("#outcashfee").text("0.00"); + $("#outbalancefee").text("0.00"); + $("#inwxfee").text("0.00"); + $("#inalifee").text("0.00"); + $("#incashfee").text("0.00"); + $("#inbalancefee").text("0.00"); + $("#allwxfee").text("0.00"); + $("#allalifee").text("0.00"); + $("#allcashfee").text("0.00"); + $("#allbalancefee").text("0.00"); + var req = incomeparkFun.incomeparkgetQueryParam(); + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + var index = $("#disPrint").val(); + console.log(index); + var url = dataUrl.util.queryIncomeParkForPayType(); + if (1 == parseInt(index)) { + url = dataUrl.util.queryIncomeParkForPayType(); + } else { + url = dataUrl.util.queryIncomeVipForPayType(); + } + var opt = { + method: 'POST', + url: url, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == "8888") { + var data = res.data; + if (data != null && data.length > 0) { + for(var index in data){ + if(1==parseInt(data[index].plType)){ + $("#outwxfee").text(commonObj.moneyFormatter(data[index].wxFee)); + $("#outalifee").text(commonObj.moneyFormatter(data[index].aliFee)); + $("#outcashfee").text(commonObj.moneyFormatter(data[index].cashFee)); + $("#outbalancefee").text(commonObj.moneyFormatter(data[index].balanceFee)); + }else if(2==parseInt(data[index].plType)){ + $("#inwxfee").text(commonObj.moneyFormatter(data[index].wxFee)); + $("#inalifee").text(commonObj.moneyFormatter(data[index].aliFee)); + $("#incashfee").text(commonObj.moneyFormatter(data[index].cashFee)); + $("#inbalancefee").text(commonObj.moneyFormatter(data[index].balanceFee)); + }else{ + $("#allwxfee").text(commonObj.moneyFormatter(data[index].wxFee)); + $("#allalifee").text(commonObj.moneyFormatter(data[index].aliFee)); + $("#allcashfee").text(commonObj.moneyFormatter(data[index].cashFee)); + $("#allbalancefee").text(commonObj.moneyFormatter(data[index].balanceFee)); + dataValue=[ + {value:commonObj.moneyFormatter(data[index].aliFee), name:'支付宝'}, + {value:commonObj.moneyFormatter(data[index].wxFee), name:'微信'}, + {value:commonObj.moneyFormatter(data[index].balanceFee), name:'余额'}, + {value:commonObj.moneyFormatter(data[index].cashFee), name:'现金'}, + ] + + incomeparkFun.srzbChartsFun(dataValue); + // srzbChartsFun(dataValue); + + } + } + + + + }else{ + dataValue=[ + {value:0, name:'支付宝'}, + {value:0, name:'微信'}, + {value:0, name:'余额'}, + {value:0, name:'现金'} + ]; + //console.log(dataValue); + incomeparkFun.srzbChartsFun(dataValue); + } + + + } else { + dataValue=[ + {value:0, name:'支付宝'}, + {value:0, name:'微信'}, + {value:0, name:'余额'}, + {value:0, name:'现金'} + ]; + //console.log(dataValue); + incomeparkFun.srzbChartsFun(dataValue); + // srzbChartsFun(dataValue); + + } + } + }; + sysAjax(opt); + }, + + srzbChartsFun:function (dataValue) { + console.log(dataValue); + srzbechartsPie = echarts.init(document.getElementById('srzb-echarts')); + srzboption = { + color:['#1E95CD','#5fe98f','#fdc94d','#50c0f5'], + title: { + // subtext: "" + totalFee, + // text: '总计', + textStyle: { + color: '#c2c2c2', + fontSize: '14', + align: 'middle', + verticalAlign: 'middle', + }, + subtextStyle: { + color: '#000', + fontSize: '24', + align: 'middle', + verticalAlign: 'middle', + }, + left: 'center', + top: '60', + + }, + tooltip: { + trigger: 'item', + formatter: "{a}
    {b}: {c} ({d}%)" + }, + legend: { + selectedMode:false, + orient: 'horizontal', + bottom: '0', + icon:'circle', + data:['支付宝','微信','余额','现金'] + }, + + series: [ + { + name:'支付方式占比', + type:'pie', + radius: ['55%', '65%'], + center: ['50%', '40%'], + hoverAnimation: false, + avoidLabelOverlap: false, + legendHoverLink: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '14', + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:dataValue + } + ] + } + srzbechartsPie.setOption(srzboption, true); + window.srzbechartsPie=srzbechartsPie; + //自适应 + window.onresize = function(){ + srzbechartsPie.resize(); + }; + } + +}; +incomeparkFun.init(); + + + +//临停 会员卡收入 切换 +documentBindFunc.on('click', "#srzb-tabbar div", function () { + var index = $(this).index(); + //console.log(index); + $(this).addClass('srzb-active').siblings('div').removeClass('srzb-active'); + //加载临停数据 index=0 + if(index==0){ + incomeparkFun.ltsrcreateTableData(); + $('#disPrint').attr('data-size','1'); + $('#disPrint').val(1); + $("#reportLi").css({display:"block"}); + }else{ + incomeparkFun.vipcreateTableData(); + $('#disPrint').val(2); + $("#reportLi").css({display:"none"}); + + } + incomeparkFun.queryIncomeParkForPayType(); + +}); + +// 收入明细 + +/** + * 默认table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ +function incomeparktableLoadRequest(params) { + var req = incomeparkFun.incomeparkgetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + + var opt = { + method: 'post', + url: dataUrl.util.queryParkIncomeForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +/** + * 默认table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ +function incomeviptableLoadRequest(params) { + var req = incomeparkFun.incomeparkgetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + + var opt = { + method: 'post', + url: dataUrl.util.queryVipCardIncomeForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +/** + * 金额处理 + * @param value + * @returns {*} + */ +function moneyFormatter (value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return "0.00"; + } else { + return (value / 100).toFixed(2); + } +} + +//打印 +//打印功能 +documentBindFunc.on('click','#incomeParkPrint',function () { + //printTarget();网页打印 + + //; + var data = fn.getParkLot(); + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + } + var userName = fn.getUserName(); + var reportDate=""; + var reportTabTag = $("#parkincome-toptab").find("li.ITD-graynav-topbaractive").attr('reportdatetabtag'); + if(reportTabTag==1){ + reportDate=$("#incomepark-daydaterange-btnsta").val(); + }else if(reportTabTag==2){ + var reportDateStr=$("#incomepark-weekdaterange-btnsta").attr('data-text'); + reportDate=reportDateStr.substring(11,21); + }else if(reportTabTag==3){ + reportDate=$("#incomepark-monthdaterange-btnsta").val(); + } + var indexparkAndVipTag = $("#srzb-tabbar .srzb-active").index(); //明细切换 0:临时停车 1:会员卡 + var orgName = $("#orgName").val(); + var orgId = fn.getOrgId(); + //begin调用打印 + var url = dataUrl.util.incomeParkAndVipPrint(); + var openUrl = "";//弹出窗口的url + var iWidth=800; //弹出窗口的宽度; + var iHeight=800; //弹出窗口的高度; + var iTop = (window.screen.availHeight-80-iHeight)/2; //获得窗口的垂直位置; + var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置; + var win= window.open('','_blank',"height="+iHeight+", width="+iWidth+", top="+iTop+", left="+iLeft+",location=no,resizable=no"); + + var html="收入报表
    "; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + html+="
    "; + html += " + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/inspectionFile/inspectionGroup/inspectiongroup.js b/assets/pages/scripts/inspectionFile/inspectionGroup/inspectiongroup.js new file mode 100644 index 0000000..64f3fa2 --- /dev/null +++ b/assets/pages/scripts/inspectionFile/inspectionGroup/inspectiongroup.js @@ -0,0 +1,607 @@ +var insfun = { + init: function () { + //commSelect.plName_select("#ins-transSelectPark"); + $('#ins-taskType').selectpicker('refresh'); + $('#ins-handleType').selectpicker('refresh'); + insfun.initParkSelect(); + + //新增加载泊位区间 + $("#cashieradd_parkName").change(function () { + //新增加载泊位区间 + insfun.addInitParkAreaBlocks(); + }); + }, + //新增加载泊位区间 + addInitParkAreaBlocks: function () { + $("#cashieradd-berthAreaList").empty(); + + var parkIds = []; + var plNo=$("#cashieradd_parkName").val(); + parkIds.push(plNo); + console.log(parkIds); + if (parkIds.length > 1) { + //表示停车场选择的是全部,不做处理 + return; + } + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + plNos: parkIds, + sysCode: sysComm.sysCode + }; + var opt = { + method: 'post', + url: dataUrl.util.queryTpPRegionAreaForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + + if (res.data.total == 0) { + return; + } + var datas = res.data.rows; + $("#cashieradd-berthAreaList").empty(); + var html = ''; + for (var i in datas) { + html += '
  • ' + datas[i].parkAreaName + '
  • '; + } + $("#cashieradd-berthAreaList").append(html); + } + } + }; + sysAjax(opt); + + }, + initParkSelect: function () { + //停车场下拉框 + $("#ins-transSelectPark").empty(); + var data = fn.getParkLot(3); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + + $("#ins-transSelectPark").append(html); + $("#ins-transSelectPark").selectpicker('refresh'); + + insfun.createTableData(); + + }, + initParkSelectForAdd: function () { + //停车场下拉框 + $("#cashieradd_parkName").empty(); + var data = fn.getParkLot(); + var html = ''; + for (var i = 1; i < data.length; i++) { + html += ""; + } + + $("#cashieradd_parkName").append(html); + $("#cashieradd_parkName").selectpicker('refresh'); + + }, + initInspactionData: function () { + var req = { + chargerType:"1", + orgId:fn.getOrgId(), + sysCode: sysComm.sysCode + }; + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCashierListInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data=res.data.rows; + if(data !=null && data !=undefined && data.length>0){ + $("#ins_people_add").empty(); + var html = ""; + for (var i = 1; i < data.length; i++) { + html += ""; + } + $("#ins_people_add").append(html); + $("#ins_people_add").selectpicker('refresh'); + } + } + } + }; + sysAjax(opt); + + }, + //默认生成表格数据 + createTableData:function () { + $('#ins-billtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + // sortable: true, //是否启用排序 + // sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: feetableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + + {field: 'plName', title: '车场名称', width: '10%', align: "left",formatter:commonObj.replacenull}, + { + field: 'parkAreaNames', + title: '泊位区间', + width: '20%', + align: "left", + formatter:commonObj.replacenull + // sortable: true + }, + { + field: 'workType', + title: '任务类型', + width: '5%', + align: "left", + formatter:insfun.workTypeFormater + }, + { + field: 'remark', + title: '任务内容', + width: '20%', + align: "left", + formatter:insfun.solveconFormater + + }, + { + field: 'createDate', + title: '下发时间', + width: '10%', + align: "left", + formatter:commonObj.timeFormatter + + }, { + field: 'modfiyDate', + title: '上报时间', + width: '10%', + align: "left", + formatter:commonObj.timeFormatter + + }, + { + field: 'solveName', + title: '巡查员', + width: '10%', + align: "left", + formatter:commonObj.replacenull + }, + // { + // field: 'reason', + // title: '处理意见', + // width: '15%', + // align: "left", + // + // }, + { + field: 'solveState', + title: '处理状态', + width: '10%', + align: "left", + formatter:insfun.solveStateFormater + }, + { + field: 'poptype', + title: '操作', + width: '5%', + align: "left", + formatter:insfun.popFormater + }, + + ] + }); + + }, + popFormater:function (value, row, index) { + var solveState=row.solveState; + /**处理状态: 5:待下发(巡查工单)4:待接收(巡检工单)*/ + if (solveState==null||solveState==undefined||solveState=='') { + return "-"; + } else if(5==solveState){ + return "下发 删除"; + } + + }, + workTypeFormater: function (value, row, index) { + /**工单具体类型:401:车位巡检;402:设备巡检;403:人员监督*/ + if (value==null||value==undefined||value=='') { + return "-"; + } else if(401==value){ + return "车位巡检"; + } else if(402==value){ + return "设备巡检"; + } else if(403==value){ + return "人员监督"; + } + }, + solveStateFormater: function (value, row, index) { + /**处理状态: 5:待下发(巡查工单)4:待接收(巡检工单) 1-待处理;2-处理中;3:处理完成*/ + if (value==null||value==undefined||value=='') { + return "-"; + } else if(5==value){ + return "待下发"; + } else if(4==value){ + return "待接收"; + }else if(1==value){ + return "待处理"; + }else if(2==value){ + return "处理中"; + }else if(3==value){ + return "处理完成"; + } + }, + solveconFormater: function (value, row, index) { + if (value==null||value==undefined||value=='') { + return '
    -
    '; + } + return '
    '+value+'
    '; + }, + /*获取查询参数*/ + feegetQueryParam: function () { + var plNos = []; + var plnos = $("#ins-transSelectPark").val(); + if(plnos==null||plnos==''){ + plNos.push("-1X"); + } + else{ + plNos = JSON.parse(plnos); + } + //全部任务类型 + var workTypes=[]; + var workType=$("#ins-taskType").val(); + if(workType!=null && workType!='' && workType!=undefined &&workType !="ALL"){ + workTypes.push(workType); + } + //全部处理状态 + var solveStates=[]; + var solveState=$("#ins-handleType").val(); + if(solveState!=null && solveState!='' && solveState!=undefined &&solveState !="ALL"){ + solveStates.push(solveState); + } + var req = { + sysCode: sysComm.sysCode, + workBigTypes: [400], + workTypes: workTypes, + //complaintName: complaintName, + //remark: remark, + plNos: plNos, + solveStates:solveStates, + }; + console.log(req); + return req; + }, + //保存新建巡查工单 + inspactionAddSubmit:function(){ + + var plNo=$('#cashieradd_parkName').val(); + var plName=$('#cashieradd_parkName option:selected').text(); + + var workType=$('#ins_taskType_add').val(); + + var chargCode=$("#ins_people_add").val(); + var chargCodeName=$('#ins_people_add option:selected').text(); + + + var workTitle=$('#task_title').val(); + var remark=$('#task_content').val(); + + var parkAreaNames=[]; + var parkAreaCodes=[]; + var liMax=0; + // 收费员管辖的泊位区间编号列表 + $('#cashieradd-berthAreaList li').each(function () { + liMax+=1; + if ($(this).hasClass('a-active')) { + var parkAreaCode=$(this).attr('value'); + var parkAreaName=$(this).attr('parkareaname'); + parkAreaCodes.push(parkAreaCode); + parkAreaNames.push(parkAreaName); + } + }); + // if (parkAreaCodes.length == 0) { + // throw("泊位区间不能为空"); + // } + if(parseInt(liMax)==parkAreaCodes.length || parkAreaCodes.length == 0){ + parkAreaCodes="-1"; + parkAreaNames="全部"; + }else{ + parkAreaCodes=parkAreaCodes.toString(); + parkAreaNames=parkAreaNames.toString(); + } + + + console.log(plNo+plName); + console.log(workType); + console.log(remark); + + + var createEmpId = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var createEmpName = StrUtil.isEmpty(fn.getUserName()) ? '-1' : fn.getUserName(); + var req = { + parkAreaCodes: parkAreaCodes, + parkAreaNames: parkAreaNames, + plNo: plNo, + plName: plName, + workBigType: 400, + workType: workType, + remark: remark, + sysCode: sysComm.sysCode, + solveName: chargCodeName, + solveId: chargCode, + workTitle:workTitle, + createEmpId: createEmpId, + createEmpName: createEmpName + + }; + console.log(req); + var opt = { + method: 'post', + url: dataUrl.util.saveOrderWorkForInspection(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + + var data = res.data; + $('#inspectiongroup_addInfo').modal('hide'); + $('#ins-billtable').bootstrapTable('refresh', { + silent: true + }); + + } + } + } + sysAjax(opt); + + }, + //保存下发工单 + inspactionForPublishSubmit:function(){ + var id=$("#updateId").val(); + var workId=$("#updateWorkId").val(); + var solveId = $('#solveId').val(); + var solveName = $('#solveName').val(); + var createEmpId = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var createEmpName = StrUtil.isEmpty(fn.getUserName()) ? '-1' : fn.getUserName(); + var req = { + id:id, + workId:workId, + sysCode: sysComm.sysCode, + createEmpId: createEmpId, + createEmpName: createEmpName, + solveId:solveId, + solveName:solveName + + }; + var opt = { + method: 'post', + url: dataUrl.util.saveOrderWorkForPublish(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + $('#modelForPublish').modal('hide'); + $('#ins-billtable').bootstrapTable('refresh', { + silent: true + }); + + } + } + } + sysAjax(opt); + + }, + //删除巡检工单 + inspactionForDeleteSubmit:function(){ + var id=$("#deleteId").val(); + var req = { + id:id, + sysCode: sysComm.sysCode, + }; + var opt = { + method: 'post', + url: dataUrl.util.deleteOrderWorkForInspection(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + $('#modelForDelete').modal('hide'); + $('#ins-billtable').bootstrapTable('refresh', { + silent: true + }); + + } + } + } + sysAjax(opt); + + }, +}; +insfun.init(); + +/** + * 默认table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ +function feetableLoadRequest(params) { + var req = insfun.feegetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryOrderWorkForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + // console.log(res); + if(res.code == '8888') { + params.success(res.data); + console.log(res.data) + $("[data-toggle='tooltip']").tooltip(); + } + else{ + + } + } + }; + sysAjax(opt); +} + +//搜索 +documentBindFunc.on('click', '#ins-QueryBtn', function () { + insfun.createTableData(); + +}); +//新增弹窗 +documentBindFunc.on('click', '#inspectiongroup_addBtn', function () { + $('#cinspectiongroup_rule').addClass('display-none').text(''); + + insfun.initInspactionData(); + //管理泊位区间 + $("#cashieradd-berthAreaList").empty(); + var html = ' '; + $("#cashieradd-berthAreaList").append(html); + //内容 + $("#task_content").val(''); + //标题 + $("#task_title").val(''); + + //全选 初始化 actContentAll + $('#actContentAll').removeClass('checkexActive'); + //停车场 + insfun.initParkSelectForAdd(); + //在职状态 + $("#ins_taskType_add").selectpicker('render'); + //巡查组 + $("#ins_people_add").selectpicker('render'); + //值班类型 + //$("#cashieradd_onduty").selectpicker('render'); + //新增加载泊位区间 + insfun.addInitParkAreaBlocks(); + + + $('#inspectiongroup_addInfo').modal('show'); + +}); + +//新增全选或全不选 +documentBindFunc.on("click", "#actContentAll", function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $("#cashieradd-berthAreaList li").addClass('checkexActive'); + } else { + flag = false; + $("#cashieradd-berthAreaList li").removeClass('checkexActive'); + } + +}); +//新增收费员信息 管理泊位区间 +$('#cashieradd-berthAreaList').delegate('li', 'click', function () { + var flag = true; + $(this).toggleClass('a-active'); + // if ($(this).hasClass('checkexActive')) { + // $('#cashieradd-berthAreaList li').each(function () { + // if ($(this).hasClass('checkexActive')) { + // } else { + // flag = false; + // $('#actContentAll').parent().removeClass('checked') + // } + // }); + // if (flag) { + // console.log(flag) + // $('#actContentAll').parent().addClass('checked') + // } + // } else { + // flag = false; + // $('#actContentAll').parent().removeClass('checked') + // } +}); +//保存弹窗 +documentBindFunc.on('click', '#inspectiongroup-submit', function () { + var compliant=$.trim($('#task_title').val()); + var carpho=$.trim($('#task_content').val()); + if(compliant == null || compliant =="" || compliant ==undefined){ + $('#cinspectiongroup_rule').removeClass('display-none').text('错误提示:请输入任务标题'); + return false; + }else if(carpho == null || carpho =="" || carpho ==undefined){ + $('#cinspectiongroup_rule').removeClass('display-none').text('错误提示:请输入任务内容'); + return false; + }else{ + // 成功 ajax + $('#cinspectiongroup_rule').addClass('display-none'); + insfun.inspactionAddSubmit(); + } +}); + + +//下发弹窗 +documentBindFunc.on('click','.popClick',function () { + var id = $(this).attr('data-index'); + var workId = $(this).attr('data-workid'); + var solveId = $(this).attr('data-solveid'); + var solveName =$(this).attr('data-solvename'); + $("#updateId").val(id); + $("#updateWorkId").val(workId); + $("#solveId").val(solveId); + $("#solveName").val(solveName); + $('#modelForPublish').modal('show'); +}); + +//删除弹窗 +documentBindFunc.on('click','.popClickDelete',function () { + var id = $(this).attr('data-index'); + $("#deleteId").val(id); + $('#modelForDelete').modal('show'); +}); + +//下发弹窗确认 +documentBindFunc.on('click','#inspectiongroup_forpublish',function () { + insfun.inspactionForPublishSubmit(); +}); + +//删除弹窗确认 +documentBindFunc.on('click','#inspectiongroup_fordelete',function () { + insfun.inspactionForDeleteSubmit(); +}); + diff --git a/assets/pages/scripts/inspectionFile/inspectionPer/inspectionper-nodata.png b/assets/pages/scripts/inspectionFile/inspectionPer/inspectionper-nodata.png new file mode 100644 index 0000000..a57e60d Binary files /dev/null and b/assets/pages/scripts/inspectionFile/inspectionPer/inspectionper-nodata.png differ diff --git a/assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.css b/assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.css new file mode 100644 index 0000000..b70a155 --- /dev/null +++ b/assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.css @@ -0,0 +1,432 @@ +/*公用----------------------------------------------------*/ + + + + + +/*主体----------------------------------------------------*/ + +.box-con>li{ + width: calc((100% - 36px)/3); + width: -webkit-calc((100% - 36px)/3); + width: -moz-calc((100% - 36px)/3); + float: left; + height: 215px; + margin-bottom: 18px; +} +.box-con>li:nth-child(3n-1){ + margin-left:18px ; + margin-right:18px ; +} +.sign-tollcollectormanage{ + background: url("sign-icon.png") no-repeat right 15px ; +} +.nosign-tollcollectormanage{ + background: url("nosign-icon.png") no-repeat right 15px ; +} +.signed-tollcollectormanage{ + background: url("signed_icon.png") no-repeat right 15px ; +} + + +.box-con-pic-wrap{ + padding: 31px 30px 0 28px; +} +.box-con-pic{ + width: 80px; + height: 80px; + background: url("tollcollectormanage-head.png") no-repeat; +} +.box-con-name{ + margin: 16px 0 7px; + text-align: center; +} +.watch-type-day{ + width: 38px; + height: 20px; + line-height: 20px; + font-size: 12px; + color: #fff; + text-align: center; + background: rgba(254,200,77,1); + margin: 0 auto; +} +.watch-type-night{ + width: 38px; + height: 20px; + line-height: 20px; + font-size: 12px; + color: #fff; + text-align: center; + background: #1E95CD; + margin: 0 auto; +} +.box-con-inf-wrap{ + width: calc(100% - 150px); + width: -webkit-calc(100% - 150px); + width: -moz-calc(100% - 150px); + padding-top: 54px; + font-size: 12px; + color: rgba(0,0,0,.60); +} +.box-con-inf-wrap li{ + margin-bottom: 8px; +} +.box-con-opration{ + height: 36px; + background: #e8f4fa; + bottom: -36px; + left: 0; + width: 100%; + transition:bottom 1s; + -moz-transition:bottom 1s; /* Firefox 4 */ + -webkit-transition:bottom 1s; /* Safari and Chrome */ + -o-transition:bottom 1s; /* Opera */ +} +.box-con>li:hover .box-con-opration{ + bottom: 0; +} +.box-con-opration li{ + cursor: pointer; + margin-top: 6px; + padding: 4px 8px; + float: left; + color: #1e95cd; + font-size: 12px; + background: rgba(255,255,255,.5); + border-radius: 2px!important; + margin-left: 6px; +} + + + +/*弹窗----------------------------------------------------*/ +/*详情弹窗 sta*/ +.ITD-alertcon-tab-wrap{ + max-height: 488px; + overflow-y: auto; +} +.ITD-alert-tab-wrap{ + padding-top: 7px; +} +.ITD-alert-tab-wrap li{ + cursor: pointer; + float: left; + height: 60px; + line-height: 60px; + padding: 0 10px; + margin-right: 70px; +} +.ITD-alert-tab-active{ + border-bottom: 3px solid #5fe98f; +} + + +.toll-basic-ino-name{ + height: 57px; + line-height: 57px; +} +.toll-basic-borderbototm{ + border-bottom: 1px solid #f0f0f0; +} +.toll-basic-ifo-park-height{ + height: 34px; + line-height: 34px; +} + +.toll-basic-ifo-park span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../../img/person-icon.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.toll-basic-ifo-park-wrap li{ + padding-left: 23px; +} +.toll-basic-ifo-park-wrap li div:nth-of-type(1){ + width: 50%; +} +.toll-basic-ifo-park-wrap li div span:nth-of-type(2){ + width: 60px; + display: inline-block; + text-align:justify; + text-align-last:justify; +} +.toll-basic-ifo-type{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../../img/person-icon.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.toll-basic-ifo-device{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../../img/sex-icon.png); + background-repeat: no-repeat; + /*background-position: -54px 0;*/ +} +.toll-basic-ifo-total{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image:url(../../../img/business-icon.png); + background-repeat: no-repeat; + /*background-position: -18px 0;*/ +} +.toll-basic-ifo-entrance{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../../img/type-icon.png); + background-repeat: no-repeat; + /*background-position: -16px 0;*/ +} +.toll-basic-ifo-business{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../../img/telphone-icon.png); + background-repeat: no-repeat; + /*background-position: -32px 0;*/ +} +.toll-basic-ifo-address{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../../img/status-icon.png); + background-repeat: no-repeat; + /*background-position: -48px 0;*/ +} +.toll-basic-ifo-time{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../../img/time-icon.png); + background-repeat: no-repeat; + /*background-position: -48px 0;*/ +} +.toll-basic-ifo-address-wrap{ + max-width: 310px; +} +.toll-basic-ifo-fees,.toll-basic-ifo-feesbot{ + height: 37px; + line-height: 37px; +} +.toll-basic-ifo-fees span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -54px -18px ; +} +.toll-basic-ifo-feesbot span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../../img/information-icon.png); + background-repeat: no-repeat; + +} +.toll-basic-ifo-fees-wrap li{ + padding-left: 23px; + height:67px ; +} +.toll-basic-ifo-fees-wrap li div{ + float: left; +} +.toll-basic-ifo-fees-smallicon{ + width: 51px; + height: 51px; + background-image:url("../../../img/toll-persongroup-icon.png") ; + background-repeat: no-repeat; + background-position: 0 0; + margin-top: 8px; + margin-right: 30px; +} +.toll-basic-ifo-fees-bigicon{ + width: 51px; + height: 51px; + background-image:url("../../../img/toll-cloud-icon.png") ; + background-repeat: no-repeat; + /*background-position: -51px 0;*/ + margin-top: 8px; + margin-right: 30px; +} +.toll-basic-ifo-fees-type{ + width: 70px; + line-height: 67px; +} +.toll-basic-ifo-fees-rule{ + width: 150px; + margin-right: 65px; + line-height: 24px; + padding-top: 10px; +} +.toll-basic-ifo-fees-max{ + line-height: 67px; +} +.toll-basic-ifo-fees-max{ + width: 220px; +} +.toll-basic-ifo-fees-typeArea{ + width: 530px; + line-height: 30px; +} +.toll-basic-no-float{ + float: none !important; +} +.toll-basic-areamsg{ + width: 470px; +} +/*新增 修改 弹窗 sta ------*/ +.ITD-form-padleft5-read div.checker,.ITD-form-padleft5-read div.radio { + margin-top: -9px; + margin-left: 0 !important; +} +div.checker,div.radio{ + margin-left: 0 !important; +} +#resetmodel .modal-footer{ + border-top: 0; + text-align: center !important; +} +#write_rule,#writeoper_rule{ + color: #ff0000; +} +.form-group-ul{ + height: 120px; + width: 95%; + overflow-y:auto; +} +.berthAreaList{ + padding-left: 25px; +} +.berthAreaList li{ + float: left; + padding-left: 20px; + width: 110px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + margin: 0px 25px 5px 0; + cursor: pointer; + background: url("../../../img/input-checkexActive.png") no-repeat 0 center; +} +.berthAreaList li.checkexActive{ + background: url("../../../img/input-checkbox.png") no-repeat 0 center; +} + +.radio-list .radio{ + /*margin-right: 0 !important;*/ + /*margin-left: 0px !important;*/ + /*margin-top: -4px !important;*/ +} +.resetMsg-cont{ + height: 80px; + line-height: 80px; + text-align: center; + font-size: 14px; + /*color: rgba;*/ +} + +.ITD-daterange-bg{ + width: 180px !important; +} + +/*单选复选美化*/ +.ITD-form-group input[type=checkbox], +.ITD-form-group input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.ITD-form-group input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.ITD-form-group input[type=checkbox]:hover + label{ + background: url('../../../img/input-checkexActive.png') no-repeat 0 center; + +} +.ITD-form-group input[type=checkbox]:checked + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=checkbox]:checked:hover + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +.ITD-form-group input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +.ITD-form-group input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.ITD-form-group input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.inspectionper-nodata{ + width: 56px; + height: 75px; + background: url("inspectionper-nodata.png") no-repeat center 0; + margin: 0 auto; +} + diff --git a/assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.html b/assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.html new file mode 100644 index 0000000..c0bd9ec --- /dev/null +++ b/assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.html @@ -0,0 +1,613 @@ + +
    +
    +
    +
    + +
    + 姓名/编号 + +
    +
    +
    +
    新增
    +
    +
    +
    查询
    +
    +
    +
    + + + +
    +
    +
    + +
    +
      + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.js b/assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.js new file mode 100644 index 0000000..80fd979 --- /dev/null +++ b/assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.js @@ -0,0 +1,1058 @@ +var fun = { + init: function () { + //初始化停车场下拉框 + commSelect.plName_select("#parkIds", true); + $("#parkIds").change(function () { + //加载泊位区间 + fun.initParkAreaBlocks(); + }); + //修改停车场下拉框 + $("#cashieredit_parkName").change(function () { + //加载泊位区间 + fun.editInitParkAreaBlocks(); + }); + //表示停车场选择的是全部,不做处理 + $('#parkAreaCode').selectpicker('render'); + //初始化值班类型 + $('#onduty').selectpicker('refresh'); + //初始化签到状态 + $('#status').selectpicker('refresh'); + //初始化巡查组 + $('#groupCode').selectpicker('refresh'); + $('#cashieradd_groupCode').selectpicker('refresh'); +// $('#cashieredit_groupCode').selectpicker('refresh'); + //fun.initGroups(); + //基本信息 + fun.createTableData(); + //新增确定事件 + fun.addChargerSubmit(); + //休假确定事件 + fun.vacationSubmit(); + //修改确定事件 + fun.editChargerSubmit(); + //新增加载泊位区间 +// $("#cashieradd_parkName").change(function () { +// //新增加载泊位区间 +// fun.addInitParkAreaBlocks(); +// }); + //重置密码提交事件 + fun.resetPwd(); + //删除提交事件 + fun.deleteChargerSubmit(); + }, + //新增加载泊位区间 + addInitParkAreaBlocks: function () { + $("#cashieradd-berthAreaList").empty(); + var parkIds = JSON.parse($("#cashieradd_parkName").val()); + console.log(parkIds); + if (parkIds.length > 1) { + //表示停车场选择的是全部,不做处理 + return; + } + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + plNos: parkIds, + sysCode: sysComm.sysCode + }; + var opt = { + method: 'post', + url: dataUrl.util.queryTpPRegionAreaForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + + if (res.data.total == 0) { + return; + } + var datas = res.data.rows; + $("#cashieradd-berthAreaList").empty(); + var html = ''; + for (var i in datas) { + html += '
  • ' + datas[i].parkAreaName + '
  • '; + } + $("#cashieradd-berthAreaList").append(html); + } + } + }; + sysAjax(opt); + + }, + //修改 初始化泊位区间 + editInitParkAreaBlocks: function (plNo, bindAreaCodeMap) { + $("#cashieredit-berthAreaList").empty(); + var parkIds = []; + if (plNo == null || plNo == "") { + parkIds = JSON.parse($("#cashieredit_parkName").val()); + if (parkIds.length > 1) { + //表示停车场选择的是全部,不做处理 + return; + } + } else { + parkIds.push(plNo); + } + + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + plNos: parkIds, + sysCode: sysComm.sysCode + }; + var opt = { + method: 'post', + url: dataUrl.util.queryTpPRegionAreaForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + + if (res.data.total == 0) { + return; + } + var datas = res.data.rows; + $("#cashieredit-berthAreaList").empty(); + var isAllChecked = true; + var html = ''; + for (var i in datas) { + var parkAreaCode = datas[i].parkAreaCode; + var checkexActive = ""; + if (bindAreaCodeMap != null) { + var parkAreaName = bindAreaCodeMap[parkAreaCode]; + if (parkAreaName != null && parkAreaName != '') { + checkexActive = "checkexActive"; + } else { + isAllChecked = false; + } + } + + html += '
  • ' + datas[i].parkAreaName + '
  • '; + } + if (isAllChecked) { + $('#edit_actContentAll').addClass('checkexActive'); + } else { + $('#edit_actContentAll').removeClass('checkexActive'); + } + $("#cashieredit-berthAreaList").append(html); + } + } + }; + sysAjax(opt); + + }, + //初始化泊位区间 + initParkAreaBlocks: function () { + $("#parkAreaCode").empty(); + var parkIds = JSON.parse($("#parkIds").val()); + if (parkIds.length > 1) { + //表示停车场选择的是全部,不做处理 + $('#parkAreaCode').selectpicker('render'); + return; + } + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + plNos: parkIds, + sysCode: sysComm.sysCode + }; + var opt = { + method: 'post', + url: dataUrl.util.queryTpPRegionAreaForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + + if (res.data.total == 0) { + return; + } + var data = res.data.rows; + $("#parkAreaCode").empty(); + var html = ''; + for (var key in data) { + var parkArea = data[key]; + html += ""; + } + html = '' + html; + $("#parkAreaCode").append(html); + $('#parkAreaCode').selectpicker('refresh'); + } + } + }; + sysAjax(opt); + }, + //初始化巡查组 + initGroups: function () { + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + sysCode: sysComm.sysCode + }; + var opt = { + async: true, + method: 'post', + url: dataUrl.util.queryCashierGroups(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + var data = res.data; + $("#groupCode").empty(); + $("#cashieradd_groupCode").empty(); + $("#cashieredit_groupCode").empty(); + + var html = ''; + for (var key in data) { + html += ""; + } + $("#cashieradd_groupCode").append(html); + $("#cashieradd_groupCode").selectpicker('refresh'); + $("#cashieredit_groupCode").append(html); + $("#cashieredit_groupCode").selectpicker('refresh'); + html = '' + html; + $("#groupCode").append(html); + $('#groupCode').selectpicker('refresh'); + } + } + }; + sysAjax(opt); + }, + //生成表格数据 + createTableData: function () { + var req = fun.getQueryParam(); + //设置请求参数 + // var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + orgId:fn.getOrgId(), + pageNum: 1, + pageSize: 0 + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCashierListInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + fun.createtollCollectorContent(res.data.rows); + } + } + }; + sysAjax(opt); + + }, + + createtollCollectorContent: function (data) { + $("#insp_collector_content").empty(); + if(data.length == 0){ + $("#insp_collector_content").append("
    ") + }else{ + var html = ''; + $.each(data, function (index, item) { + //签到状态(-1:未签到 0:已签到 1:已签退) + if (item.status == -1) { + html += '
  • '; + } else if (item.status == 0) { + html += '
  • '; + } else if (item.status == 1) { + html += '
  • '; + } else { + html += '
  • '; + } +// if (item.status == 0) { +// html += '
  • '; +// } else { +// html += '
  • '; +// } + html += '
      ' + + '
    • ' + + '
    • ' + item.chargerName + '
    • ' + + '
    ' + + '
      ' + + '
    • 编号 : ' + item.chargerCode + '
    • ' + + '
    • 联系方式 : ' + item.phoneNo + '
    • ' + +// '
    • 归属停车场 : ' + item.plName + '
    • ' + + '
    • 签到时间 : ' + fun.inDatatimeFormatter(item.signModifyTime) + '
    • ' + + '
    • 入职时间 : ' + DateUtils.long2String(item.entryTime, 1) + '
    • ' + + '
    ' + + '
    ' + + '
      ' + + '
    • 查看
    • ' + + '
    • 编辑
    • ' + +// '
    • 休假
    • ' + + '
    • 重置密码
    • '; + + if (item.status == 0) { + html += '
    • 强制签退
    • '; + } + + + html += '
    • 删除
    • ' + + '
    ' + + '
  • '; + }) +// console.log(html); + $("#insp_collector_content").append(html); + } + + + }, + /*获取查询参数*/ + getQueryParam: function () { + var parkIds = JSON.parse($("#parkIds").val()); + var plNo = ""; + if (parkIds.length > 1) { + plNo = ""; + } else { + plNo = parkIds[0]; + } + var parkAreaCode = $("#parkAreaCode").val(); + var status = $('#status').val(); + var nameOrNo = $('#chargerName').val(); + var req = { + chargerType:"1", + plNo: plNo, + parkAreaCode: parkAreaCode, + status: status, + nameOrNo: nameOrNo, + sysCode: sysComm.sysCode + }; + return req; + }, + //操作 + freeReasonFormater: function (value, row, index) { + var operStr = '详情' + + '修改' + + '重置密码'; + if (row.status == 0) { + //已经签到的才可以强制签退 + operStr += '强制签退'; + } + + return operStr; + }, + //时间 + inDatatimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return "" + DateUtils.long2String(value, 7) + ""; + } + }, + //根据主键查询详细信息 + getCashierDetailInfo: function (row) { + // + var data = JSON.parse(row); + $('#baseBerthNum').html(data.chargerCode); + $('#basePlType').html(data.chargerName); + $('#baseDeviceType').html(data.chargerSex == 0 ? '女' : '男'); + $('#baseInOutNum').html(data.cardId); + $('#baseBusiCircle').html(data.phoneNo); + $('#baseAddress').html(data.entryStatus == 0 ? '离职' : '在职'); + $('#baseenterTime').html(DateUtils.long2String(data.entryTime, 1)); + }, + //根据主键查询详细信息 + getCashierDetailInfoForUpdate: function (id) { + //查询详细信息 + var req = { + id: id + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.getCashierDetailInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var modifyRow = res.data; + + $('#updateChargerCode').val(modifyRow.chargerCode); + $('#cashieredit_rule').addClass('display-none').text(''); + $('#cashieredit_chargerName').val(modifyRow.chargerName); + $('#cashieredit_chargerSex' + modifyRow.chargerSex).prop("checked", true); + $('#cashieredit_cardId').val(modifyRow.cardId); + $('#cashieredit_phoneNo').val(modifyRow.phoneNo); + $('#cashieredit_entryStatus').val(modifyRow.entryStatus); + //在职状态 + $("#cashieredit_entryStatus").selectpicker('refresh'); + $("#cashieredit_entryTime").val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#cashieredit_entryTime").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + $('#cashieredit_entryTime').val(DateUtils.long2String(modifyRow.entryTime, 1)); + $('#cashieredit_groupCode').val(modifyRow.groupCode); + //$("#cashieredit_groupCode").selectpicker('refresh'); + $('#cashieredit_addr').val(modifyRow.addr); + $('#cashieredit_onduty').val(modifyRow.onduty); + $("#cashieredit_onduty").selectpicker('refresh'); + + } + } + }; + sysAjax(opt); + }, + //详情 table 签到记录 + getCashiertableData: function () { + $('#cashierMsg-table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers: true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId: 'id', + columns: [ + // {title:'',width: '4%',checkbox: true,align: 'center'}, + {field: 'id', title: '', width: '10%', align: 'left', visible: false}, + {field: 'signInTime', title: '签到时间', width: '5%', align: 'left', + formatter: fun.inDatatimeFormatter + }, + {field: 'status', title: '签到状态', width: '10%', align: 'left', + formatter: function (value, row, index) { + if (undefined != value && null != value) { + if (value == '0') { + return '已签到' + } else if (value == '1') { + return '已签退'; + } + } + } + }, + {field: 'signOutTime', title: '签退时间', width: '10%', align: 'left', + formatter: fun.inDatatimeFormatter + }, + { + field: 'signOutType', + title: '签退类型', + width: '5%', + align: 'left', + formatter: function (value, row, index) { + if (undefined != value && null != value) { + if (value == '0') { + return '云平台操作强制签退' + } else if (value == '1') { + return '巡查员正常签退'; + } else if (value == '2') { + return '登录设备变更强制签退' + }else if (value == '3') { + return '超时未上报心跳,系统强制签退' + } + } + } + }, + + ] + + }); + }, + //新增确定操作 + addChargerSubmit: function () { + documentBindFunc.on('click', '#cashieraddwrite-submit', function () { + try { + addCharger(); + } catch (err) { + $('#cashieradd_rule').removeClass('display-none').text(err); + } + + }); + function addCharger() { + + + var chargerName = $('#cashieradd_chargerName').val(); + if (chargerName == "") { + throw("姓名不能为空"); + } + var phoneNo = $('#cashieradd_phoneNo').val(); + if (phoneNo == "") { + throw("联系电话不能为空"); + } + if (phoneNo.length != 11) { + throw("联系电话格式不正确"); + } + + var chargerSex = $('input:radio[name="cashieradd_chargerSex"]:checked').val(); + var addr = $('#cashieradd_addr').val(); + var cardId = $('#cashieradd_cardId').val(); + var entryTime = new Date($('#cashieradd_entryTime').val() + ' 00:00:00'); + var entryStatus = $('#cashieradd_entryStatus').val(); + // 巡查员管辖的泊位区间编号列表 + var berthAreaCodeList = []; +// $('#cashieradd-berthAreaList li').each(function () { +// if ($(this).hasClass('checkexActive')) { +// var berthAreaCodeObj = +// { +// parkAreaCode: $(this).attr('value'), +// plNo: $(this).attr('plno'), +// }; +// berthAreaCodeList.push(berthAreaCodeObj); +// } +// }); +// if (berthAreaCodeList.length == 0) { +// throw("泊位区间不能为空"); +// } + $('#cashieraddwrite-submit').attr("disabled", true); + var orgId = fn.getOrgId(); + var req = { + chargerType:"1", + chargerName: chargerName, + phoneNo: phoneNo, + chargerSex: chargerSex, + addr: addr, + orgId:orgId, + cardId: cardId, + entryTime: entryTime, + entryStatus: entryStatus, + parkAreaCodes: berthAreaCodeList, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.insertEmployee(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#cashieraddwrite-submit').removeAttr("disabled"); + //console.log(res.code); + if (res.code == '8888') { + $('#cashieradd_rule').removeClass('display-none').text("保存成功"); + //初始化table + fun.createTableData(); + $('#cashier_infmodel').modal('hide'); + } else { + $('#cashieradd_rule').removeClass('display-none').text(res.msg); + } + + } + }; + sysAjax(opt); + } + }, + //休假确定操作 + vacationSubmit: function () { + documentBindFunc.on('click', '#vacation-submit', function () { + var thingMsg = $.trim($('#vacation-thingMsg').val()); + if (thingMsg == '' || thingMsg == undefined || thingMsg == null) { + $('#vacation_rule').removeClass('display-none').text('请填写休假理由'); + return; + } else { + // ajax + + $('#toll_vacationmodel').modal('hide'); + } + }); + }, + //修改确定操作 + editChargerSubmit: function () { + documentBindFunc.on('click', '#cashiereditwrite-submit', function () { + try { + editCharger(); + } catch (err) { + $('#cashieredit_rule').removeClass('display-none').text(err); + } + + }); + function editCharger() { + // + var chargerName = $('#cashieredit_chargerName').val(); + var phoneNo = $('#cashieredit_phoneNo').val(); + var chargerSex = $('input:radio[name="cashieredit_chargerSex"]:checked').val(); + var cardId = $('#cashieredit_cardId').val(); + var addr = $('#cashieredit_addr').val(); + var entryTime = new Date($('#cashieredit_entryTime').val() + ' 00:00:00'); + var entryStatus = $('#cashieredit_entryStatus').val(); + var orgId =fn.getOrgId(); + if (chargerName == "") { + throw("姓名不能为空"); + } + if (phoneNo == "") { + throw("联系电话不能为空"); + } + if (phoneNo.length != 11) { + throw("联系电话格式不正确"); + } + var id = $('#updateId').val(); + var chargerCode = $('#updateChargerCode').val(); + var req = { + id: id, + chargerCode: chargerCode, + chargerName: chargerName, + phoneNo: phoneNo, + chargerSex: chargerSex, + addr: addr, + cardId: cardId, + entryTime: entryTime, + entryStatus: entryStatus, + chargerType:1, + orgId:orgId, + sysCode: sysComm.sysCode + } + $('#cashiereditwrite-submit').attr("disabled", true); + var opt = { + method: 'post', + url: dataUrl.util.updateEmployee(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#cashiereditwrite-submit').removeAttr("disabled"); + //console.log(res.code); + if (res.code == '8888') { + $('#cashieredit_rule').removeClass('display-none').text("修改成功"); + //初始化table + $('#cashier-table').bootstrapTable('refresh', { + silent: true + }); + fun.createTableData(); + $('#cashier_changemodel').modal('hide'); + } else { + $('#cashieredit_rule').removeClass('display-none').text(res.msg); + } + + } + }; + sysAjax(opt); + } + }, + //重置密码提交按钮 + resetPwd: function () { + documentBindFunc.on('click', '#reset-submit', function () { + var id = $('#updateId').val(); + var req = { + id: id, + sysCode: sysComm.sysCode + } + $('#reset-submit').attr("disabled", true); + var opt = { + method: 'post', + url: dataUrl.util.resetpwd(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#reset-submit').attr("disabled", false); + //console.log(res.code); + if (res.code == '8888') { + $('#cashierreset_pwd_rule').removeClass('display-none').text("重置成功"); + //初始化table + fun.createTableData(); + $('#cashier_resetmodel').modal('hide'); + } else { + $('#cashierreset_pwd_rule').removeClass('display-none').text(res.msg); + } + + } + }; + sysAjax(opt); + }); + }, + //删除提交按钮 + deleteChargerSubmit: function () { + documentBindFunc.on('click', '#cashier-delete-submit', function () { + var ids = $('#updateIds_del').val(); + var chargerCodes = $('#updateChargerCodes_del').val(); + var req = { + chargerType:"1", + ids: ids.split(','), + chargerCodes: chargerCodes.split(','), + sysCode: sysComm.sysCode + } + $('#cashier-delete-submit').attr("disabled", true); + var opt = { + method: 'post', + url: dataUrl.util.deleteChargers(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#cashier-delete-submit').attr("disabled", false); + //console.log(res.code); + if (res.code == '8888') { + $('#cashierdelete_rule').removeClass('display-none').text("删除成功"); + fun.createTableData(); + $('#cashier_deletemodel').modal('hide'); + } else { + $('#cashierdelete_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + } + +}; +fun.init(); +// $('#cashier_detailmodel').modal('show'); +//查询 +documentBindFunc.on('click', '#insp-queryBtn', function () { + fun.createTableData(); +}); +//详情弹窗 +documentBindFunc.on('click', '.lookMsg', function () { + var id = $(this).data('code'); + var chargerCode = $(this).data('chargercode'); + var dataRowstr = $(this).attr('data-rowstr'); + $('#cashier_detailmodel').modal('show'); + fun.getCashierDetailInfo(dataRowstr); + fun.getCashiertableData(chargerCode); + +}); + +//新增弹窗 +documentBindFunc.on('click', '#insp-addBtn', function () { + $('#cashieradd_rule').addClass('display-none').text(''); + //管理泊位区间 + $("#cashieradd-berthAreaList").empty(); + var html = ' '; + $("#cashieradd-berthAreaList").append(html); + //性别 + $('#cashieradd_chargerSex1').prop('checked', true); + $('#cashieradd_chargerSex0').prop('checked', false); + //姓名 + $("#cashieradd_chargerName").val(''); + //联系电话 + $("#cashieradd_phoneNo").val(''); + //身份证 + $("#cashieradd_cardId").val(''); + //全选 初始化 actContentAll + $('#actContentAll').removeClass('checkexActive'); + //停车场 + commSelect.plName_select("#cashieradd_parkName"); + //在职状态 + $("#cashieradd_entryStatus").selectpicker('render'); + //巡查组 + $("#cashieradd_groupCode").selectpicker('render'); + //值班类型 + $("#cashieradd_onduty").selectpicker('render'); + //地址 + $("#cashieradd_addr").val(''); + + + //新增入职时间 + $("#cashieradd_entryTime").val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#cashieradd_entryTime").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + $('#cashier_infmodel').modal('show'); +// fun.addInitParkAreaBlocks(); +}); + +//修改弹窗 +documentBindFunc.on('click', '.reviseMsg', function (element) { + + var id = $(this).attr('data-code'); + $("#updateId").val(id); + var modifyRow = $(this).data('rowstr'); + debugger + //var modifyRow = JSON.parse(rowStr); + + $('#updateChargerCode').val(modifyRow.chargerCode); + $('#cashieredit_rule').addClass('display-none').text(''); + $('#cashieredit_chargerName').val(modifyRow.chargerName); + $('#cashieredit_chargerSex' + modifyRow.chargerSex).prop("checked", true); + $('#cashieredit_cardId').val(modifyRow.cardId); + $('#cashieredit_phoneNo').val(modifyRow.phoneNo); + $('#cashieredit_entryStatus').val(modifyRow.entryStatus); + //在职状态 + $("#cashieredit_entryStatus").selectpicker('refresh'); + $("#cashieredit_entryTime").val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#cashieredit_entryTime").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + $('#cashieredit_entryTime').val(DateUtils.long2String(modifyRow.entryTime, 1)); + $('#cashieredit_addr').val(modifyRow.addr); + + + $('#cashier_changemodel').modal('show') +}); +//重置密码 +documentBindFunc.on('click', '.reMsg', function (element) { + $('#cashierreset_pwd_rule').addClass('display-none').text(''); + var id = $(this).attr('data-index'); + $("#updateId").val(id); + $('#cashier_resetmodel').modal('show') +}); +//休假弹窗 +documentBindFunc.on('click', '.toll-basic-vacation', function (element) { + $('#toll-vacationName').text(''); + $('#toll-vacationcode').text(''); + $('#vacation_rule').addClass('display-none').text(''); + var code = $(this).attr('data-code'); + var name = $(this).attr('data-name'); + $('#toll-vacationName').text(name); + $('#toll-vacationcode').text(code); + + $('#tollcoll-dtpersonID').selectpicker('refresh'); + $('#vacation-thingMsg').val(''); + //时间初始化 + $('#vacation-daterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $('#vacation-daterange-btnend').val(moment().subtract('days', -30).format('YYYY-MM-DD')); + //开始日期 + $("#vacation-daterange-btnsta").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("click", function () { + $("#vacation-daterange-btnsta").datetimepicker("setEndDate", $("#vacation-daterange-btnend").val()) + }); + + //结束日期 + $("#vacation-daterange-btnend").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("click", function () { + $("#vacation-daterange-btnend").datetimepicker("setStartDate", $("#vacation-daterange-btnsta").val()) + }); + + // $("#updateId").val(id); + $('#toll_vacationmodel').modal('show') +}); +//删除操作 +documentBindFunc.on('click', '.cashier-del', function (element) { + $('#cashierdelete_rule').addClass('display-none').text(''); + var ids = $(this).attr('data-id'); + $('#updateIds_del').val(ids); +// var chargerCodes = getChargerCodeSelections(); + var chargerCodes = []; + chargerCodes.push($(this).attr('data-code')); + $('#updateChargerCodes_del').val(chargerCodes); + //判断 未选择一条记录 + if (ids == null || ids.length == 0) { + $('#cashier_alertmodel').modal('show') + setTimeout(function () { + $('#cashier_alertmodel').modal('hide') + }, 1500); + return false; + } else { + $('#cashier_deletemodel').modal('show') + } +}); +//强制签退操作 +documentBindFunc.on('click', '.forceSignOutMsg', function (element) { +// var id = $(this).attr('data-index'); +// var rowDate = $('#cashier-table').bootstrapTable('getRowByUniqueId', id); + var chargerCodes = []; +// chargerCodes.push(rowDate.chargerCode); + var code = $(this).attr('data-code'); + chargerCodes.push(code); + var req = { + chargerCodes: chargerCodes, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.forceSignOut(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res.code); + if (res.code == '8888') { + $('#forceSignOutMsg').html("强制签退成功"); + //初始化table + fun.createTableData(); + $('#cashier_offmodel').modal('show'); + setTimeout(function () { + $('#cashier_offmodel').modal('hide') + }, 1500); + } else { + $('#forceSignOutMsg').html(res.msg); + $('#cashier_offmodel').modal('show') + setTimeout(function () { + $('#cashier_offmodel').modal('hide') + }, 1500); + } + + } + }; + sysAjax(opt); + +}); +//获取选中的id列表 +function getIdSelections() { + return $.map($("#cashier-table").bootstrapTable('getSelections'), function (row) { + return row.id + }); +}; +function getChargerCodeSelections() { + return $.map($("#cashier-table").bootstrapTable('getSelections'), function (row) { + return row.chargerCode + }); +}; + + +//新增全选或全不选 +documentBindFunc.on("click", "#actContentAll", function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $("#cashieradd-berthAreaList li").addClass('checkexActive'); + } else { + flag = false; + $("#cashieradd-berthAreaList li").removeClass('checkexActive'); + } + +}); +//新增巡查员信息 管理泊位区间 +$(document).delegate('#cashieradd-berthAreaList li', 'click', function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $('#cashieradd-berthAreaList li').each(function () { + if ($(this).hasClass('checkexActive')) { + } else { + flag = false; + $('#actContentAll').parent().removeClass('checked') + } + }); + if (flag) { + console.log(flag) + $('#actContentAll').parent().addClass('checked') + } + } else { + flag = false; + $('#actContentAll').parent().removeClass('checked') + } +}); +//修改全选或全不选 +documentBindFunc.on("click", "#edit_actContentAll", function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $("#cashieredit-berthAreaList li").addClass('checkexActive'); + } else { + flag = false; + $("#cashieredit-berthAreaList li").removeClass('checkexActive'); + } + +}); +//修改巡查员信息 管理泊位区间 +$(document).delegate('#cashieredit-berthAreaList li', 'click', function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $('#cashieredit-berthAreaList li').each(function () { + if ($(this).hasClass('checkexActive')) { + } else { + flag = false; + } + }); + + if (flag) { + $('#edit_actContentAll').addClass('checkexActive'); + $('#edit_actContentAll').attr("checked", true); + } else { + flag = false; + $('#edit_actContentAll').removeClass('checkexActive'); + $('#edit_actContentAll').removeAttr("checked"); + } + } +}); + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = { + chargerCode:$("#baseBerthNum").text(), + sysCode: sysComm.sysCode + }; + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.querySignRecordByChargerCode(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); +}); \ No newline at end of file diff --git a/assets/pages/scripts/inspectionFile/inspectionPer/nosign-icon.png b/assets/pages/scripts/inspectionFile/inspectionPer/nosign-icon.png new file mode 100644 index 0000000..2678ce5 Binary files /dev/null and b/assets/pages/scripts/inspectionFile/inspectionPer/nosign-icon.png differ diff --git a/assets/pages/scripts/inspectionFile/inspectionPer/sign-icon.png b/assets/pages/scripts/inspectionFile/inspectionPer/sign-icon.png new file mode 100644 index 0000000..04e2cf6 Binary files /dev/null and b/assets/pages/scripts/inspectionFile/inspectionPer/sign-icon.png differ diff --git a/assets/pages/scripts/inspectionFile/inspectionPer/signed_icon.png b/assets/pages/scripts/inspectionFile/inspectionPer/signed_icon.png new file mode 100644 index 0000000..543ec0d Binary files /dev/null and b/assets/pages/scripts/inspectionFile/inspectionPer/signed_icon.png differ diff --git a/assets/pages/scripts/inspectionFile/inspectionPer/tollcollectormanage-head.png b/assets/pages/scripts/inspectionFile/inspectionPer/tollcollectormanage-head.png new file mode 100644 index 0000000..e95baea Binary files /dev/null and b/assets/pages/scripts/inspectionFile/inspectionPer/tollcollectormanage-head.png differ diff --git a/assets/pages/scripts/inspectionFile/inspectionTmp.js b/assets/pages/scripts/inspectionFile/inspectionTmp.js new file mode 100644 index 0000000..d102759 --- /dev/null +++ b/assets/pages/scripts/inspectionFile/inspectionTmp.js @@ -0,0 +1,52 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
    '+urlarr[i].name+'
    ' + }else{ + _html += '
  • '+urlarr[i].name+'
  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/inspectionper', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.css'); + res.load('../../assets/pages/scripts/inspectionFile/inspectionPer/inspectionper.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-inspectionper').addClass('ITD-topbar-clickactive'); +}); +R.route('/inspectiongroup', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/inspectionFile/inspectionGroup/inspectiongroup.css'); + res.load('../../assets/pages/scripts/inspectionFile/inspectionGroup/inspectiongroup.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-inspectiongroup').addClass('ITD-topbar-clickactive'); + +}); +R.route('/inspectionreport', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.css'); + res.load('../../assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-inspectionreport').addClass('ITD-topbar-clickactive'); +}); diff --git a/assets/pages/scripts/inspectionFile/inspectionreport/caryard-basic-ifo.png b/assets/pages/scripts/inspectionFile/inspectionreport/caryard-basic-ifo.png new file mode 100644 index 0000000..b0eb409 Binary files /dev/null and b/assets/pages/scripts/inspectionFile/inspectionreport/caryard-basic-ifo.png differ diff --git a/assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.css b/assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.css new file mode 100644 index 0000000..9348a46 --- /dev/null +++ b/assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.css @@ -0,0 +1,76 @@ +.toll-basic-ifo-park-height { + height: 34px; + line-height: 34px; +} +.toll-basic-borderbototm { + border-bottom: 1px solid #f0f0f0; +} +.carflowpic-icon span { + display: inline-block; + width: 16px; + height: 16px; + margin-right: 10px; + vertical-align: middle; + /* margin-top: -3px; */ + background-image: url(caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -64px 0; +} +.toll-basic-ifo-type { + display: inline-block; + width: 18px; + height: 18px; + margin-right: 10px; + vertical-align: sub; + /* margin-top: -3px; */ + background-image: url(../../../img/person-icon.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.business-icon{ + margin-right: 10px; +} +.toll-basic-ifo-park-wrap li { + padding-left: 23px; +} +.business-icon{ + margin-right: 10px; +} +.toll-basic-ifo-park-wrap li div:nth-of-type(1) { + width: 50%; +} +.patrol-con-wrap{ + height: 170px; + background-color: #f6f5f5; + +} +.patrol-con-wrap-title{ + padding: 16px 10px; + text-indent: 24px; + overflow-y: auto; + /*overflow : hidden;*/ + /*text-overflow: ellipsis;*/ + /*display: -webkit-box;*/ + /*-webkit-line-clamp: 9;*/ + /*-webkit-box-orient: vertical;*/ +} +.patrol-con-wrap-pic{ + height: 170px; + width: 100%; + /*background-image: url("patrol-con-wrap-pic.png");*/ + /*background-repeat:no-repeat ;*/ + /*background-position:center center ;*/ +} +.patrol-con-wrap-pic img{ + height:100%; + width: 100%; + /*background-image: url("patrol-con-wrap-pic.png");*/ + /*background-repeat:no-repeat ;*/ + /*background-position:center center ;*/ +} +.maxwidth200{ + max-width: 200px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} diff --git a/assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.html b/assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.html new file mode 100644 index 0000000..e97a065 --- /dev/null +++ b/assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.html @@ -0,0 +1,149 @@ + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + 上报时间 +
    + +
    + - +
    + +
    +
    +
    +
    查询
    +
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    + 详细记录 +
    + +
    + +
    +
    +
    +
    +
    + + + + diff --git a/assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.js b/assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.js new file mode 100644 index 0000000..43e0dad --- /dev/null +++ b/assets/pages/scripts/inspectionFile/inspectionreport/inspectionreport.js @@ -0,0 +1,460 @@ +var fun = { + init: function () { + //获取异常类型 + fn.getInspectDeviceType(fun.getInspectDeviceType); + fn.getInspectDeviceUnusualTypePDA(fun.getInspectDeviceUnusualTypePDA); + fn.getInspectDeviceMainTeance(fun.getInspectDeviceMainTeance); + fn.getInspectEmployeeOutRule(fun.getInspectEmployeeOutRule); + fn.getInspectBerthUnusualType(fun.getInspectBerthUnusualType); + fn.getInspectDeviceUnusualTypePrinter(fun.getInspectDeviceUnusualTypePrinter); + fn.getInspectDeviceUnusualTypeEQP(fun.getInspectDeviceUnusualTypeEQP); + commSelect.plName_select("#insreport-transSelectPark",true,null,null,3); + $('#insreport-taskType').selectpicker('refresh'); + fun.dateInit(); + fun.createTableData(); + }, + dateInit:function () { + /**日 时间初始化*/ + $('#daydaterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $('#daydaterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#daydaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#daydaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //默认生成表格数据 + createTableData:function () { + $('#insreport-billtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + // sortable: true, //是否启用排序 + // sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: feetableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + + {field: 'plName', title: '车场名称', width: '15%', align: "left",formatter:commonObj.replacenull}, + { + field: 'parkAreaName', + title: '泊位区间', + width: '15%', + align: "left", + formatter:commonObj.replacenull + // sortable: true + }, + { + field: 'inspectType', + title: '任务类型', + width: '15%', + align: "left", + formatter: function(value){ + if (undefined != value && null != value) { + if (value == '1') { + return '车位巡查' + } else if (value == '2') { + return '设备巡查'; + }else if (value == '3') { + return '人员巡查'; + } + } + else { + return '-'; + } + } + }, + { + field: 'inspectName', + title: '巡查员', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'unusualType', + title: '异常信息', + width: '10%', + align: "left", + formatter:fun.unusualInformationFormatter + + }, + { + field: 'createTime', + title: '上报时间', + width: '15%', + align: "left", + formatter:commonObj.timeFormatter + + }, + { + field: 'poptype', + title: '操作', + width: '15%', + align: "left", + formatter:fun.popFormater + }, + + ] + }); + + }, + getInspectDeviceType: function (data) { + if (null == data) { + return; + } + InspectDeviceTypes = []; + $.each(data, function (index, item) { + var InspectDeviceType={}; + InspectDeviceType.value = item.codeValue; + InspectDeviceType.name = item.codeValueName; + InspectDeviceTypes.push(InspectDeviceType); + }); + }, + getInspectDeviceUnusualTypePDA: function (data) { + if (null == data) { + return; + } + InspectDeviceUnusualTypePDAs = []; + $.each(data, function (index, item) { + var InspectDeviceUnusualTypePDA={}; + InspectDeviceUnusualTypePDA.value = item.codeValue; + InspectDeviceUnusualTypePDA.name = item.codeValueName; + InspectDeviceUnusualTypePDAs.push(InspectDeviceUnusualTypePDA); + }); + }, + getInspectDeviceMainTeance: function (data) { + if (null == data) { + return; + } + InspectDeviceMainTeances = []; + $.each(data, function (index, item) { + var InspectDeviceMainTeance={}; + InspectDeviceMainTeance.value = item.codeValue; + InspectDeviceMainTeance.name = item.codeValueName; + InspectDeviceMainTeances.push(InspectDeviceMainTeance); + }); + }, + getInspectEmployeeOutRule: function (data) { + if (null == data) { + return; + } + InspectEmployeeOutRules = []; + $.each(data, function (index, item) { + var InspectEmployeeOutRule={}; + InspectEmployeeOutRule.value = item.codeValue; + InspectEmployeeOutRule.name = item.codeValueName; + InspectEmployeeOutRules.push(InspectEmployeeOutRule); + }); + }, + getInspectBerthUnusualType: function (data) { + if (null == data) { + return; + } + InspectBerthUnusualTypes = []; + $.each(data, function (index, item) { + var InspectBerthUnusualType={}; + InspectBerthUnusualType.value = item.codeValue; + InspectBerthUnusualType.name = item.codeValueName; + InspectBerthUnusualTypes.push(InspectBerthUnusualType); + }); + }, + getInspectDeviceUnusualTypePrinter: function (data) { + if (null == data) { + return; + } + InspectDeviceUnusualTypePrinters = []; + $.each(data, function (index, item) { + var InspectDeviceUnusualTypePrinter={}; + InspectDeviceUnusualTypePrinter.value = item.codeValue; + InspectDeviceUnusualTypePrinter.name = item.codeValueName; + InspectDeviceUnusualTypePrinters.push(InspectDeviceUnusualTypePrinter); + }); + }, + getInspectDeviceUnusualTypeEQP: function (data) { + if (null == data) { + return; + } + InspectDeviceUnusualTypeEQPs = []; + $.each(data, function (index, item) { + var InspectDeviceUnusualTypeEQP={}; + InspectDeviceUnusualTypeEQP.value = item.codeValue; + InspectDeviceUnusualTypeEQP.name = item.codeValueName; + InspectDeviceUnusualTypeEQPs.push(InspectDeviceUnusualTypeEQP); + }); + }, + deviceTypeFormatter:function(value){ + var deviceType = "无"; + if(value == null){ + return deviceType; + } + $.each(InspectDeviceTypes, function(index,item) { + if(value == item.value){ + deviceType = item.name; + } + }); + return deviceType; + }, + //异常信息转换 + unusualInformationFormatterStr:function(value,row,index){ + var unusualInformation = ""; + if(row == null){ + return unusualInformation + } + if(row.inspectType == null){ + return unusualInformation + }else if(row.inspectType == 1){//车位巡查 + if(row.unusualType == null){ + return unusualInformation + } + $.each(InspectBerthUnusualTypes,function(index,item){ + if(row.unusualType == item.value){ + unusualInformation = item.name; + } + }); + return unusualInformation + }else if(row.inspectType == 2){//设备巡查 + if(row.unusualType == null){ + return unusualInformation + } + if(row.deviceType == null){ + return unusualInformation + } + if(row.deviceType == 1){//设备-PDA + $.each(InspectDeviceUnusualTypePDAs,function(index,item){ + if(row.unusualType == item.value){ + unusualInformation = item.name; + } + }); + } + if(row.deviceType == 2){//设备-地磁 + $.each(InspectDeviceUnusualTypeEQPs,function(index,item){ + if(row.unusualType == item.value){ + unusualInformation = item.name; + } + }); + } + if(row.deviceType == 3){//设备-打印机 + $.each(InspectDeviceUnusualTypePrinters,function(index,item){ + if(row.unusualType == item.value){ + unusualInformation = item.name; + } + }); + } + return unusualInformation + }else if(row.inspectType == 3){//人员巡查 + if(row.outRuleType == null){ + return '
    '+unusualInformation+'
    '; + } + $.each(InspectEmployeeOutRules,function(index,item){ + $.each(JSON.parse("["+row.outRuleType+"]"), function(_index,_item) { + if(_item == item.value){ + unusualInformation = (unusualInformation + item.name + "、"); + } + }); + + }); + unusualInformation = unusualInformation.substr(0,(unusualInformation.length-1)); + // return unusualInformation; + return unusualInformation + } + }, + unusualInformationFormatter:function(value,row,index){ + var unusualInformation = ""; + if(row == null){ + return '
    '+unusualInformation+'
    '; + } + if(row.inspectType == null){ + return '
    '+unusualInformation+'
    '; + }else if(row.inspectType == 1){//车位巡查 + if(row.unusualType == null){ + return '
    '+unusualInformation+'
    '; + } + $.each(InspectBerthUnusualTypes,function(index,item){ + if(row.unusualType == item.value){ + unusualInformation = item.name; + } + }); + return '
    '+unusualInformation+'
    '; + }else if(row.inspectType == 2){//设备巡查 + if(row.unusualType == null){ + return '
    '+unusualInformation+'
    '; + } + if(row.deviceType == null){ + return '
    '+unusualInformation+'
    '; + } + if(row.deviceType == 1){//设备-PDA + $.each(InspectDeviceUnusualTypePDAs,function(index,item){ + if(row.unusualType == item.value){ + unusualInformation = item.name; + } + }); + } + if(row.deviceType == 2){//设备-地磁 + $.each(InspectDeviceUnusualTypeEQPs,function(index,item){ + if(row.unusualType == item.value){ + unusualInformation = item.name; + } + }); + } + if(row.deviceType == 3){//设备-打印机 + $.each(InspectDeviceUnusualTypePrinters,function(index,item){ + if(row.unusualType == item.value){ + unusualInformation = item.name; + } + }); + } + return '
    '+unusualInformation+'
    '; + }else if(row.inspectType == 3){//人员巡查 + if(row.outRuleType == null){ + return '
    '+unusualInformation+'
    '; + } + $.each(InspectEmployeeOutRules,function(index,item){ + $.each(JSON.parse("["+row.outRuleType+"]"), function(_index,_item) { + if(_item == item.value){ + unusualInformation = (unusualInformation + item.name + "、"); + } + }); + + }); + unusualInformation = unusualInformation.substr(0,(unusualInformation.length-1)); + // return unusualInformation; + return '
    '+unusualInformation+'
    '; + } + }, + //时间 + strFormatter: function (value, row, index) { + if (value==null||value==undefined||value=='') { + return ""; + } else { + return value+""; + } + }, + + popFormater:function (value, row, index) { + console.log(index) + console.log(value) + console.log(row) + + return "查看"; + }, + /*获取查询参数*/ + feegetQueryParam: function () { + var plNos = JSON.parse($("#insreport-transSelectPark").val()); + var inspectTypes = JSON.parse($("#insreport-taskType").val()); + var beginTime = $("#daydaterange-btnsta").val(); + beginTime = new Date(beginTime+" 00:00:00"); + var endTime = $("#daydaterange-btnend").val(); + endTime = new Date(endTime+" 23:59:59"); + + var req = { + inspectTypes:inspectTypes, + plNos: plNos, + beginTime:beginTime, + endTime:endTime, + sysCode: sysComm.sysCode + } + return req; + }, +}; +fun.init(); +//查询 +documentBindFunc.on('click', '#insreport-QueryBtn', function () { + fun.createTableData(); +}); + +documentBindFunc.on('click', '.popClick', function (element) { + var rowStr = $(this).attr('data-row'); + var row = JSON.parse(rowStr); + var _index = $(this).attr('data-index'); + console.log(_index) + + //弹窗初始化 + $("[id^='inspect']").text(""); + $("#imgUrl").attr("src",''); + $("#imgUrl").attr("data-img",''); + $("#inspectPlName").text(fun.strFormatter(row.plName)); + $("#inspectParkAreaName").text(fun.strFormatter(row.parkAreaName)); + $("#inspectChargerName").text(fun.strFormatter(row.chargerName)); + $("#inspectBerthNo").text(fun.strFormatter(row.berthNo)); + $("#inspectName").text(fun.strFormatter(row.inspectName)); + $("#inspectDeviceType").text(fun.deviceTypeFormatter(row.deviceType)); + $("#inspectUnusualInformation").text(fun.unusualInformationFormatterStr(null,row)); + if(row.inspectImgUrl !=null && row.inspectImgUrl != ""){ + $("#imgUrl").attr("src",row.inspectImgUrl); + $("#imgUrl").attr("title","点击查看原图"); + $("#imgUrl").attr("data-img",row.inspectImgUrl); + }else{ + $("#imgUrl").attr("src",'../../assets/pages/scripts/inspectionFile/inspectionreport/patrol-con-wrap-pic.png'); + } + + $('#detailmodel').modal('show'); +}); +documentBindFunc.on('click', "#imgUrl", function (item) { + var imgs = $('#imgUrl').attr('data-img'); + if(imgs==null||imgs==''||imgs==undefined){ + return false; + } + window.open(imgs, "_blank"); +}); +/** + * 默认table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ +function feetableLoadRequest(params) { + var req = fun.feegetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + + var opt = { + method: 'post', + url: dataUrl.util.queryInspectSituationForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + console.log(res.data) + $("[data-toggle='tooltip']").tooltip(); + } + } + }; + sysAjax(opt); +} diff --git a/assets/pages/scripts/inspectionFile/inspectionreport/patrol-con-wrap-pic.png b/assets/pages/scripts/inspectionFile/inspectionreport/patrol-con-wrap-pic.png new file mode 100644 index 0000000..c35e768 Binary files /dev/null and b/assets/pages/scripts/inspectionFile/inspectionreport/patrol-con-wrap-pic.png differ diff --git a/assets/pages/scripts/linkedSelect/linkedSelect.js b/assets/pages/scripts/linkedSelect/linkedSelect.js new file mode 100644 index 0000000..8256ef4 --- /dev/null +++ b/assets/pages/scripts/linkedSelect/linkedSelect.js @@ -0,0 +1,145 @@ +/** + * LinkedSelect: 联动下拉框控件,支持N级联动。 + * 根据每个Select的定义中的url和id为Select做初始化,后台返回的数据为[{value:"",label:""},{value:"",label:""}]形式的数组json + * @author senton + * @version 1.0 + * + * 以选国家、省、市的联动为例,调用示例如下: + *
    + *  // 声明一个select变量
    + * 	var select = new LinkedSelect();
    + *  // 调用selct的init()方法,注意,该方法的参数是一个数组,用[]括起来,每个select的定义用{}括起来,多个select定义之间以,分割
    + * 	select.init([
    + * 		{
    + * 			id:"country",
    + * 			url:"获取country列表的url",
    + * 			nullable:false,
    + * 			defaultValue:2
    + * 		},
    + * 		{
    + * 			id:"province",
    + * 			url:"获取province列表的url",
    + * 			nullable:false
    + * 		},
    + * 		{
    + * 			id:"city",
    + * 			url:"获取city列表的url",
    + * 			nullable:false
    + * 		}
    + *  ]); 
    + * 
    + */ +/** + * 定义一个LinkedSelect函数 + */ +function LinkedSelect(){ + return this; +} + +/** + * LinkedSelect的初始化方法 + * @param allSelectInputs 所有的需要联动显示的下拉框,是一个数组。 + * @returns + */ +LinkedSelect.prototype.init = function(allSelectInputs){ + + // 定义一个内部方法,用于加载一个下拉框,参数: + // allSelectInputs:所有的下拉框定义 + // parentId: 上一个被选中的ID,即"); + _initNextSelect(allSelectInputs, jQuery("#"+currentSelect.id).val(), currentIndex + 1); + return; + } + } + //是否异步加载,默认true + var async = currentSelect.async==undefined?true:currentSelect.async; + // 如果不为空,则根据parentId取出所有的SelectItem初始化currentSelect + $.ajax({url:currentSelect.url, + data:{ + parentId:parentId + }, + + async:async, + beforeSend: function (xhr) { + //设置请求头 + //xhr.setRequestHeader("User-Agent", "headertest"); + //console.log(JSON.stringify(sysComm) + xhr.setRequestHeader("x-auth-token", fn.getToken()); + }, + success: function(data){ + if(data != null && data !="" && data !=undefined){ + jQuery("#"+currentSelect.id).empty(); + // 如果currentSelect在被定义时nullable为true,则说明可以为空,在第一个加上一个空的option + if(currentSelect.nullable){ + jQuery("#"+currentSelect.id).append(""); + } + // 取出所有的selectItem加到currentSelect上 + jQuery.each(data, function (index, selectItem) { + // 如果currentSelect在被定义时的defaultValue等于当前selectItem的值,则选中它 + if(selectItem.value == currentSelect.defaultValue){ + if(selectItem.userDefined !== null){//weizy 添加对新添属性的控制 + jQuery("#"+currentSelect.id).append(""); + }else{ + jQuery("#"+currentSelect.id).append(""); + } + + }else { + if(selectItem.userDefined !== null){ + jQuery("#"+currentSelect.id).append(""); + }else{ + jQuery("#"+currentSelect.id).append(""); + } + + } + }); + $("#"+currentSelect.id).selectpicker('refresh'); + // 初始化完毕后,取出当前currentSelect选中的值,作为parentId初始化下一个select + _initNextSelect(allSelectInputs, jQuery("#"+currentSelect.id).val(), currentIndex+1); + }else{ + console.log("下拉框加载失败") + } + } + }); + }; + + // 调用_initNextSelect,启动第一个下拉框的加载 + _initNextSelect(allSelectInputs, "", 0); + + +}; diff --git a/assets/pages/scripts/linkedSelect/linkedSelectValues.js b/assets/pages/scripts/linkedSelect/linkedSelectValues.js new file mode 100644 index 0000000..e811e1d --- /dev/null +++ b/assets/pages/scripts/linkedSelect/linkedSelectValues.js @@ -0,0 +1,138 @@ +/** + * LinkedSelect: 联动下拉框控件,支持N级联动。 + * 根据每个Select的定义中的url和id为Select做初始化,后台返回的数据为[{value:"",label:""},{value:"",label:""}]形式的数组json + * @author senton + * @version 1.0 + * + * 以选国家、省、市的联动为例,调用示例如下: + *
    + *  // 声明一个select变量
    + * 	var select = new LinkedSelect();
    + *  // 调用selct的init()方法,注意,该方法的参数是一个数组,用[]括起来,每个select的定义用{}括起来,多个select定义之间以,分割
    + * 	select.init([
    + * 		{
    + * 			id:"country",
    + * 			url:"获取country列表的url",
    + * 			nullable:false,
    + * 			defaultValue:2
    + * 		},
    + * 		{
    + * 			id:"province",
    + * 			url:"获取province列表的url",
    + * 			nullable:false
    + * 		},
    + * 		{
    + * 			id:"city",
    + * 			url:"获取city列表的url",
    + * 			nullable:false
    + * 		}
    + *  ]); 
    + * 
    + */ +/** + * 定义一个LinkedSelect函数 + */ +function LinkedSelectValues(){ + return this; +} + +/** + * LinkedSelect的初始化方法 + * @param allSelectInputs 所有的需要联动显示的下拉框,是一个数组。 + * @returns + */ +LinkedSelectValues.prototype.init = function(allSelectInputs){ + + // 定义一个内部方法,用于加载一个下拉框,参数: + // allSelectInputs:所有的下拉框定义 + // parentId: 上一个被选中的ID,即"); + _initNextSelect(allSelectInputs, jQuery("#"+currentSelect.id).val(), currentIndex + 1); + return; + } + } + // 如果不为空,则根据parentId取出所有的SelectItem初始化currentSelect + $.ajax({url:currentSelect.url, + data:{ + parentId:parentId + }, + beforeSend: function (xhr) { + //设置请求头 + //xhr.setRequestHeader("User-Agent", "headertest"); + //console.log(JSON.stringify(sysComm)); + xhr.setRequestHeader("x-auth-token", fn.getToken()); + }, + success: function(data){ + if(data != null && data !="" && data !=undefined){ + jQuery("#"+currentSelect.id).empty(); + // 如果currentSelect在被定义时nullable为true,则说明可以为空,在第一个加上一个空的option + if(currentSelect.nullable){ + jQuery("#"+currentSelect.id).append(""); + } + // 取出所有的selectItem加到currentSelect上 + jQuery.each(data, function (index, selectItem) { + // 如果currentSelect在被定义时的defaultValue等于当前selectItem的值,则选中它 + if(selectItem.value == currentSelect.defaultValue){ + if(selectItem.userDefined !== null){//weizy 添加对新添属性的控制 + jQuery("#"+currentSelect.id).append(""); + }else{ + jQuery("#"+currentSelect.id).append(""); + } + + }else { + if(selectItem.userDefined !== null){ + jQuery("#"+currentSelect.id).append(""); + }else{ + jQuery("#"+currentSelect.id).append(""); + } + + } + }); + $("#"+currentSelect.id).selectpicker('refresh'); + // 初始化完毕后,取出当前currentSelect选中的值,作为parentId初始化下一个select + _initNextSelect(allSelectInputs, jQuery("#"+currentSelect.id).val(), currentIndex+1); + }else{ + console.log("下拉框加载失败") + } + } + }); + }; + + // 调用_initNextSelect,启动第一个下拉框的加载 + _initNextSelect(allSelectInputs, "", 0); +}; + diff --git a/assets/pages/scripts/lllegalManage/endorFile/endorsement.css b/assets/pages/scripts/lllegalManage/endorFile/endorsement.css new file mode 100644 index 0000000..43ac3e3 --- /dev/null +++ b/assets/pages/scripts/lllegalManage/endorFile/endorsement.css @@ -0,0 +1,11 @@ +.parking-l{ + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.endorsement-input78{ + width: 78%; + height: 34px; + line-height: 34px; +} \ No newline at end of file diff --git a/assets/pages/scripts/lllegalManage/endorFile/endorsement.html b/assets/pages/scripts/lllegalManage/endorFile/endorsement.html new file mode 100644 index 0000000..c0ace90 --- /dev/null +++ b/assets/pages/scripts/lllegalManage/endorFile/endorsement.html @@ -0,0 +1,71 @@ + +
    +
    + + + + +
    +
    + + +
    +
    +
    +
    + 详细记录 + +
    +
    +
    +
    + +
    +
    +
    + + \ No newline at end of file diff --git a/assets/pages/scripts/lllegalManage/endorFile/endorsement.js b/assets/pages/scripts/lllegalManage/endorFile/endorsement.js new file mode 100644 index 0000000..0aed3df --- /dev/null +++ b/assets/pages/scripts/lllegalManage/endorFile/endorsement.js @@ -0,0 +1,326 @@ +/** + * Created by chenbiao on 2017/8/23. + */ + +/*进场时间筛选框*/ +//进场时间初始化 +$('#endor-daterange-btnsta').val(moment().subtract('days',6).format('YYYY-MM-DD')); +$('#endor-daterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); +//开始日期 +$("#endor-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" +}).on("click", function () { + $("#endor-daterange-btnsta").datetimepicker("setEndDate", $("#endor-daterange-btnend").val()) +}); +//结束日期 +$("#endor-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" +}).on("click", function () { + $("#endor-daterange-btnend").datetimepicker("setStartDate", $("#endor-daterange-btnsta").val()) +}); + +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click',".ITD-search-morebtn",function(){ + $(".hide-common-style").toggleClass("display-none"); +}); +(function () { + var cacheParkData ; + var fun = { + init: function () { + //初始化停车状态下拉框 + fn.getParkStatus(fun.initParkStatus); + fun.createTableData(); + }, + //生成表格数据 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + fixedColumns:true, + fixedNumber:1, + leftFixedColumns: true, + leftFixedNumber: 1, + // rightFixedColumns: true, + // rightFixedNumber: 1, + ajax: tableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + + { + field: 'carNumber', + title: '车牌号', + width: '10%', + align:"left", + formatter: function (value, row, index) { + if (undefined != value && null != value) { + if (value.length > 8) { + return '无牌车' + } else { + return value; + } + } + } + }, + {field: 'plName', title: '停车场名称', width: '10%', align:"left"}, + { + field: 'parkInTime', + title: '进场时间', + width: '15%', + align:"left", + formatter: fun.inDatatimeFormatter + }, + { + field: 'parkOutTime', + title: '出场时间', + width: '15%', + align:"left", + formatter: fun.outDatatimeFormatter + }, + + { + field: 'parkingDuration', + title: '停车时长', + width: '10%', + align:"left", + formatter: fun.parkingDurationFormatter + }, + { + field: 'parkState', + title: '状态', + width: '10%', + align:"left", + formatter: fun.inOutStateFormatter + }, + ] + }); + + }, + /*获取查询参数*/ + getQueryParam: function () { + /*停车状态*/ + var parkStatus = JSON.parse($("#parkStatus").val()); + console.log(parkStatus) + if(parkStatus.length == 0 ||parkStatus==null ||parkStatus==undefined){ + parkStatus = null; + }else{ + parkStatus = parkStatus[0]; + } + /*进场开始时间*/ + var beginInTime = null; + /*进场结束*/ + var endInTime = null; + /*出场开始时间*/ + var beginOutTime = null; + /*出场结束时间*/ + var endOutTime = null; + /*解析进场时间*/ + var times1 = $('#endor-daterange-btnsta').val(); + var times2 = $('#endor-daterange-btnend').val(); + if (null != times1 && times1.trim().length > 0) { + beginInTime = times1; + } + if (null != times2 && times2.trim().length > 0) { + endInTime = times2; + } + /*var dateEntranceRange = $('#timeinStartDate input').val(); + if (null != dateEntranceRange && dateEntranceRange.trim().length > 0) { + var times = dateEntranceRange.split(' - '); + beginInTime = times[0]; + endInTime = times[1]; + }*/ + + /*解析出场时间*/ + var times3 = $('#endor-daterange-timeoutsta').val(); + var times4 = $('#endor-daterange-timeoutend').val(); + if (null != times3 && times3.trim().length > 0) { + beginOutTime = times3; + } + if (null != times4 && times4.trim().length > 0) { + endOutTime = times4; + } + + /* var dateExitRange = $('#timeoutStartDate input').val(); + if (null != dateExitRange && dateExitRange.trim().length > 0) { + var times = dateExitRange.split(' - '); + beginOutTime = times[0]; + endOutTime = times[1]; + }*/ + + /*车牌号*/ + var carNum = $('#carNumber').val(); + carNum = carNum == null || carNum.length == 0 ? null : carNum.trim(); + var req = { + parkState: parkStatus, + beginInTime: beginInTime, + endInTime: endInTime, + beginOutTime: beginOutTime, + endOutTime: endOutTime, + carNumber: carNum + }; + + return req; + }, + + //停车状态下来框 + initParkStatus: function (data) { + if (null == data) { + return; + } + $("#parkStatus").empty(); + var html = ''; + $.each(data, function (index, item) { + html += '' + }); + $("#parkStatus").append(html); + $('#parkStatus').selectpicker('refresh'); + }, + inDatatimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return "
    " + DateUtils.long2String(value, 7) + "
    "; + } + }, + outDatatimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 7); + } + }, + parkingDurationFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return formatSeconds(value); + } + }, + inOutStateFormatter: function (value, row, index) { + if (value == 10) { + return "在场"; + } else if(value == 20){ + return "离场"; + }else{ + return "未知"; + } + }, + imageformatter: function (value, row, index) { + return ""; + + } + }; + + + //初始执行 + fun.init(); + documentBindFunc.on('click', '#queryBtn', function () { + fun.createTableData(); + }); + + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryPageParkOrderByIllegalCar(), + async: false, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + console.log(res.data); + params.success(res.data); + } + } + }; + sysAjax(opt); + } +}) +(); + + +function formatSeconds(value) { + var theTime = parseInt(value);// 秒 + var theTime1 = 0;// 分 + var theTime2 = 0;// 小时 + var theTime3 = 0;//天 + if (theTime < 60) { + return theTime + '秒'; + } + if (theTime > 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); + + + } + + if (theTime1 > 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + } + + if (theTime2 > 24) { + theTime3 = parseInt(theTime2 / 24); + theTime2 = parseInt(theTime2 % 24); + } + + var result = ''; + if (theTime1 == 0 && theTime2 == 0 && theTime3 == 0) { + result = parseInt(theTime) + "秒" + } + + if (theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if (theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + + if (theTime3 > 0) { + result = "" + parseInt(theTime3) + "天" + result; + } + return result; +}; + + + diff --git a/assets/pages/scripts/lllegalManage/lllegalTmp.js b/assets/pages/scripts/lllegalManage/lllegalTmp.js new file mode 100644 index 0000000..235248a --- /dev/null +++ b/assets/pages/scripts/lllegalManage/lllegalTmp.js @@ -0,0 +1,46 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
    '+urlarr[i].name+'
    ' + }else{ + _html += '
  • '+urlarr[i].name+'
  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/endorsement', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/lllegalManage/endorFile/endorsement.css'); + res.load('../../assets/pages/scripts/lllegalManage/endorFile/endorsement.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-endorsement').addClass('ITD-topbar-clickactive'); +}); +R.route('/peccancymanage', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.css'); + res.load('../../assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-peccancymanage').addClass('ITD-topbar-clickactive'); + +}); diff --git a/assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.css b/assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.css new file mode 100644 index 0000000..b1cfaa4 --- /dev/null +++ b/assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.css @@ -0,0 +1,83 @@ + +/*单选复选美化*/ +.ITD-form-group input[type=checkbox], +.ITD-form-group input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.ITD-form-group input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.ITD-form-group input[type=checkbox]:hover + label{ + background: url('../../../img/input-checkexActive.png') no-repeat 0 center; + +} +.ITD-form-group input[type=checkbox]:checked + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=checkbox]:checked:hover + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +.ITD-form-group input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +.ITD-form-group input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.ITD-form-group input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} + +/*弹窗 add */ +.peccancymanage-daytitImg { + width: 26px; + height: 24px; + top: 5px; + left: 60px; + background: url(../css/img/chargegroup_smallIcon.png) no-repeat; + background-position: -140px -30px; +} +.peccancymanage-nighttitImg { + width: 26px; + height: 24px; + top: 5px; + left: 60px; + background: url(../css/img/chargegroup_smallIcon.png) no-repeat; + background-position: -105px -30px; +} +.peccancymanage-width80{ + width: 80px; +} +.peccancymanage-pad5{ + padding-left: 5px; + padding-right: 5px; +} +.peccancymanage-poptime{ + padding: 0 10px +} diff --git a/assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.html b/assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.html new file mode 100644 index 0000000..3b9272d --- /dev/null +++ b/assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.html @@ -0,0 +1,217 @@ + +
    +
    +
    +
    + +
    + + +
    + +
    +
    + 查询 +
    +
    +
    +
    + + +
    +
    +
    +
    + 详细记录 +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.js b/assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.js new file mode 100644 index 0000000..53a1667 --- /dev/null +++ b/assets/pages/scripts/lllegalManage/peccancyMan/peccancymanage.js @@ -0,0 +1,295 @@ + +var fun ={ + init:function(){ + + //默认收费组表格 初始化加载 + fun.createTableData(); + //查询 + documentBindFunc.on('click','#peccancymanage-queryBtn',function(){ + fun.createTableData(); + }); + //删除弹窗显示 + documentBindFunc.on('click','.delMsg',function (element) { + $('#cashiergroupdelete_rule').addClass('display-none').text(""); + var id = $(this).attr('data-index'); + $("#peccancymanageupdateId-del").val(id); + $('#peccancymanage_deletemodel').modal('show') + }); + //确定删除操作 + documentBindFunc.on('click','#peccancymanage-deletesubmit',function (element) { + var id = $("#peccancymanageupdateId-del").val(); + var ids = []; + ids.push(id); + var req = { + ids:ids, + sysCode:sysComm.sysCode + }; + $('#peccancymanage-deletesubmit').attr('disabled',true); + var opt = { + method: 'post', + url: dataUrl.util.DeleteIllegalCarInfos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#peccancymanage-deletesubmit').attr('disabled',false); + if (res.code == '8888') { + $('#peccancymanage_deletemodel').modal('hide'); + //刷新table + $('#peccancymanage-table').bootstrapTable('refresh', { + silent: true + }); + }else{ + $('#cashiergroupdelete_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + //新增弹窗 操作 + documentBindFunc.on('click','#peccancymanage-addBtn',function (element) { + //违法类型初始化 + $('#peccancymanageadd_wfType').val(''); + //车辆颜色初始化 + $('#peccancymanageadd_carCol').val(''); + //车辆品牌 + $('#peccancymanageadd_carBrand').val(''); + //车牌号 + $('#peccancymanageadd_carNum').val(''); + //车牌类型 + $('#peccancymanageadd_cartypeCode').val(''); + //备注 + $('#peccancymanageadd_remark').val(''); + //所有人 + $('#peccancymanage-Per').val(''); + $('#peccancymanageadd_rule').addClass('display-none').text('车牌号必填'); + $('#peccancymanageaddwrite-submit').attr('disabled',false); + $('#peccancymanage_addmodel').modal('show'); + + }); + //确定新增操作 + documentBindFunc.on('click','#peccancymanageaddwrite-submit',function (element) { + var carNum = $('#peccancymanageadd_carNum').val(); + if(carNum==''|| carNum==null || carNum== undefined){ + $('#peccancymanageadd_rule').removeClass('display-none').text('车牌号必填'); + return false; + } + $('#peccancymanageaddwrite-submit').attr('disabled',true); + var illegalType = $('#peccancymanageadd_wfType').val().trim(); + var carNumber = $('#peccancymanageadd_carNum').val().trim(); + var carNumberColorName = $('#peccancymanageadd_carCol').val().trim(); + var carTypeName = $('#peccancymanageadd_cartypeCode').val().trim(); + var carBrandName = $('#peccancymanageadd_carBrand').val().trim(); + var remark = $('#peccancymanageadd_remark').val().trim(); + var carOwnType = $('#peccancymanage-Per').val().trim(); + var req = { + illegalType:illegalType, + carNumber:carNumber, + carNumberColorName:carNumberColorName, + carTypeName:carTypeName, + carBrandName:carBrandName, + carOwnType:carOwnType, + remark:remark, + sysCode: sysComm.sysCode + }; + + var opt = { + method: 'post', + url: dataUrl.util.SaveOrUpIllegalCarInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#peccancymanageaddwrite-submit').attr('disabled',false); + if (res.code == '8888') { + $('#peccancymanage_addmodel').modal('hide'); + //刷新table + $('#peccancymanage-table').bootstrapTable('refresh', { + silent: true + }); + }else{ + $('#peccancymanageadd_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + + //修改弹窗 操作 + documentBindFunc.on('click','.relMsg',function (element) { + $('#peccancymanage_ruleedit').addClass('display-none').text(""); + var id = $(this).attr('data-index'); + $("#updateId").val(id); + var modifyRow = $('#peccancymanage-table').bootstrapTable('getRowByUniqueId', id); + //违法类型初始化 + $('#peccancymanageedit_wfType').val(modifyRow.illegalType == null ? "" : modifyRow.illegalType); + //车辆颜色初始化 + $('#peccancymanageedit_carCol').val(modifyRow.carNumberColorName == null ? "" : modifyRow.carNumberColorName); + //车辆品牌初始化 + $('#peccancymanageedit_carBrand').val(modifyRow.carBrandName == null ? "" : modifyRow.carBrandName); + //车牌号初始化 + $('#peccancymanageedit_carNum').val(modifyRow.carNumber == null ? "" : modifyRow.carNumber); + //车辆类型初始化 + $('#peccancymanageedit_cartypeCode').val(modifyRow.carTypeName == null ? "" : modifyRow.carTypeName); + $('#peccancymanageedit_remark').val(modifyRow.remark == null ? "" : modifyRow.remark); + //所有人初始化 + $('#peccancymanageedit-Per').val(modifyRow.carOwnType == null ? "" : modifyRow.carOwnType); + $('#peccancymanage_changemodel').modal('show'); + + }); + //确定修改 操作 + documentBindFunc.on('click','#peccancymanageedit-submit',function (element) { + var carNum = $('#peccancymanageedit_carNum').val(); + if(carNum==''|| carNum==null || carNum== undefined){ + $('#peccancymanageedit_rule').removeClass('display-none').text('车牌号必填'); + return false; + } + + var id = $("#updateId").val(); + var illegalType = $('#peccancymanageedit_wfType').val().trim(); + var carNumber = $('#peccancymanageedit_carNum').val().trim(); + var carNumberColorName = $('#peccancymanageedit_carCol').val().trim(); + var carTypeName = $('#peccancymanageedit_cartypeCode').val().trim(); + var carBrandName = $('#peccancymanageedit_carBrand').val().trim(); + var remark = $('#peccancymanageedit_remark').val().trim(); + var carOwnType = $('#peccancymanageedit-Per').val().trim(); + var req = { + id:id, + illegalType:illegalType, + carNumber:carNumber, + carNumberColorName:carNumberColorName, + carTypeName:carTypeName, + carBrandName:carBrandName, + carOwnType:carOwnType, + remark:remark, + sysCode: sysComm.sysCode + }; + var opt = { + method: 'post', + url: dataUrl.util.SaveOrUpIllegalCarInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#peccancymanagewrite-submitedit').attr('disabled',false); + if (res.code == '8888') { + $('#peccancymanage_changemodel').modal('hide'); + //刷新table + $('#peccancymanage-table').bootstrapTable('refresh', { + silent: true + }); + }else{ + $('#peccancymanageedit_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + + }, + //生成表格数据 + createTableData: function () { + $('#peccancymanage-table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'id', title: '', width: '10%', align: 'left',visible:false}, + {field: 'illegalType', title: '违法类型', width: '10%', align: 'left',formatter:fun.stringFormater}, + {field: 'carNumber', title: '车牌号', width: '10%', align: 'left',formatter:fun.stringFormater}, + {field: 'carNumberColorName', title: '车辆颜色', width: '10%', align: 'left',formatter:fun.stringFormater}, + {field: 'carTypeName', title: '车辆类型', width: '10%', align: 'left',formatter:fun.stringFormater}, + {field: 'carBrandName', title: '车辆品牌', width: '10%', align: 'left',formatter:fun.stringFormater}, + {field: 'carOwnType', title: '所有人', width: '10%', align: 'left',formatter:fun.stringFormater}, + {field: 'remark', title: '备注', width: '10%', align: 'left',formatter:fun.stringFormater}, + { + field: '', + title: '操作', + width: '10%', + align: 'left', + formatter: fun.opFormater + } + ] + + }); + + }, + /*获取查询参数*/ + getQueryParam: function () { +// var parkAreaCode = JSON.parse($("#parkAreaCode").val()); + var carNumber = $('#carCodeid').val(); + var req = { + carNumber: carNumber, + sysCode: sysComm.sysCode + }; + return req; + }, + //操作 + opFormater: function (value, row, index) { + var operStr = '修改' + + '删除'; + return operStr; + }, + //string格式化 + stringFormater: function (value, row, index) { + if(value == null){ + return ""; + } + else{ + return value; + } + }, + //时间 + inDatatimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return "" + DateUtils.long2String(value, 1) + ""; + } + } + +}; + +//初始化 函数 +fun.init(); + +/** + * 默认收费组列表 + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryPageIllegalCarInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} \ No newline at end of file diff --git a/assets/pages/scripts/login.min.js b/assets/pages/scripts/login.min.js new file mode 100644 index 0000000..bb0cf1c --- /dev/null +++ b/assets/pages/scripts/login.min.js @@ -0,0 +1,325 @@ +/** + * Created by mac on 17/6/15. + */ +/* + * drag 1.0 + * create by tony@jentian.com + * date 2015-08-18 + * 鎷栧姩婊戝潡 + */ +function slide() { + var slideBox = $('#slide_box')[0]; + var slideXbox = $('#slide_xbox')[0]; + var btn = $('#btn')[0]; + var slideBoxWidth = slideBox.offsetWidth; + var btnWidth = btn.offsetWidth; + //pc端 + btn.ondragstart = function () { + return false; + }; + btn.onselectstart = function () { + return false; + }; + btn.onmousedown = function (e) { + var disX = e.clientX - btn.offsetLeft; + document.onmousemove = function (e) { + var objX = e.clientX - disX + btnWidth; + if (objX < btnWidth) { + objX = btnWidth + } + if (objX > slideBoxWidth) { + objX = slideBoxWidth + } + $('#slide_xbox').width(objX + 'px'); + }; + document.onmouseup = function (e) { + var objX = e.clientX - disX + btnWidth; + if (objX < slideBoxWidth) { + objX = btnWidth; + } else { + objX = slideBoxWidth; + locked = true; + $('#slide_xbox').html('验证通过
    '); + } + $('#slide_xbox').width(objX + 'px'); + document.onmousemove = null; + document.onmouseup = null; + }; + }; + //移动端 + var cont = $("#btn"); + var startX = 0, sX = 0, moveX = 0,leftX = 0; + cont.on({//绑定事件 + touchstart: function (e) { + startX = e.originalEvent.targetTouches[0].pageX;//获取点击点的X坐标 + sX = $(this).offset().left;//相对于当前窗口X轴的偏移量 + leftX = startX - sX;//鼠标所能移动的最左端是当前鼠标距div左边距的位置 + }, + touchmove: function (e) { + e.preventDefault(); + moveX = e.originalEvent.targetTouches[0].pageX;//移动过程中X轴的坐标 + var objX = moveX - leftX + btnWidth; + if (objX < btnWidth) { + objX = btnWidth + } + if (objX > slideBoxWidth) { + objX = slideBoxWidth + } + $('#slide_xbox').width(objX + 'px'); + }, + touchend: function (e) { + var objX = moveX - leftX + btnWidth; + if (objX < slideBoxWidth) { + objX = btnWidth; + } else { + objX = slideBoxWidth; + locked = true; + $('#slide_xbox').html('验证通过
    '); + } + $('#slide_xbox').width(objX + 'px'); + } + }); +} +slide(); + + +/** + * 输入框内容检测插件 + */ +var $imageCodeValue = $('#login_imgCode_value'); +var $imageCode = $('#login_imgCode'); +var flagAjax = false; +jQuery.fn.inputCheck = function(properties){ + var defaults = { + callback:function(){} + } + jQuery.extend(defaults,properties); + var result = new Object(),realLength = 0, len = this.val().length, charCode = -1; + var regexp = { + china: /[\u4E00-\u9FA5]/, // 中文 + decimal: /^\d+(\.\d+)?$/, // 小数 + number: /^[0-9]*[1-9][0-9]*$/, + password:/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,20}$/, + phone: /^1[3,5,7,8]\d{9}$/, // 手机号码 + tel: /^0\d{2,3}-?\d{7,8}$/, // 电话号码 + specialPhone: /^(10086|10000|10010)$/, //特殊的电话号码 + businessPhone: /^(((400)-(\d{3})-(\d{4}))|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{3,7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)$/, //400的号码验证 + email: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/, + + peopleId: /\d{17}[\d|x]|\d{15}/, + username: /^[a-zA-Z\u4e00-\u9fa5][a-zA-Z0-9_\u4E00-\u9FA5]{5,15}$/, + date: /^((((19|20)\d{2})-(0?(1|[3-9])|1[012])-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$/, + nbsp: /\s/ //判断空格 + } + + //计算输入框内容的长度,一个中文等于两个字符 + for (var i = 0; i < len; i++) { + charCode = this.val().charCodeAt(i); + if (charCode >= 0 && charCode <= 128) realLength += 1; + else realLength += 2; + } + + result.china = regexp.china.test(this.val()) ? true : false; + result.decimal = regexp.decimal.test(this.val()) ? true : false; + result.password = regexp.password.test(this.val()) ? true : false; + result.number = regexp.number.test(this.val()) ? true : false; + result.phone = regexp.phone.test(this.val()) || regexp.tel.test(this.val()) || regexp.specialPhone.test(this.val()) || regexp.businessPhone.test(this.val()) ? true : false; + result.email = regexp.email.test(this.val()) ? true : false; + + result.nbsp = regexp.nbsp.test(this.val()) ? true : false; + result.peopleId = regexp.peopleId.test(this.val()) ? true : false; + result.username = regexp.username.test(this.val()) ? true : false; + result.date = regexp.date.test(this.val()) ? true : false; + result.length = realLength/2; + defaults.callback(result); +}; +//邮箱验证 +function username(obj) { + var _this = obj; + _this.inputCheck({ + callback : function(result){ + if(!result.email){ + _this.next().removeClass('display-hide'); + flagAjax = false; + }else{ + _this.next().addClass('display-hide'); + flagAjax = true; + } + } + }); +} +$('#userName').on("blur", function() { //验证邮箱地址 + username($(this)); +}); +//密码验证 +function password(obj){ + var _this = obj; + _this.inputCheck({ + callback : function(result){ + if(!result.password){ + _this.next().removeClass('display-hide'); + flagAjax = false; + }else{ + _this.next().addClass('display-hide'); + flagAjax = true; + } + } + }); +} +$('#password').on("blur", function() { //验证邮箱地址 + password($(this)); +}); + + +//验证码验证 +//function verification(obj) { +// var _this = obj; +// if(_this.val() !== '1234'){ +// _this.prev().addClass('glyphicon glyphicon-remove'); +// return false; +// }else{ +// _this.prev().removeClass('glyphicon glyphicon-remove').addClass('glyphicon glyphicon-ok'); +// } +//} +//$('#login_imgCode_value').on("input blur", function() { //验证邮箱地址 +// verification($(this)); +//}); +//点击登陆 +$('#login-btn').on('click',function () { + var obj1 = $('#userName'); + var obj2 = $('#password'); + username(obj1); + password(obj2); + //verification($('#login_imgCode_value')); + if(flagAjax){ + var verificationText = $('#slide_xbox').text(); + + if(verificationText != '验证通过'){ + $('#login_error_ifo').text("请拖动滑动块验证通过"); + }else{ + + var Username= $('#userName').val(); + var Password= $('#password').val(); + // var imageCode = $imageCodeValue.val(); + // alert("username is "+username+"password is"+password+"code is "+imageCode); + + + var opts = {}; + opts.method = "POST"; + opts.url = dataUrl.util.getLogin(); + opts.success = loginSuccess; + + var data = { + 'terminalSource':6, + }; + data.clientType = sysComm.clientType; + data.sysCode = sysComm.sysCode; + data.grantType = sysComm.grantType; + data.username = Username; + data.password = Password; + //data.imgCode = imageCode; + + data.expiresIn = 60 * 60 * 12;//默认12小时 + opts.data = JSON.stringify(data); + sysAjax(opts); + } + + + } + + // window.location.href='index.html'; +}); +//回车事件 +$('#login_imgCode_value').keyup(function(event){ + if(event.keyCode ==13){ + // $('#login-btn').onClick() + $('#login-btn').trigger("click"); + } +}); +$('#login_imgCode_value').on('input',function () { + var val = $('#login_imgCode_value').val(); + if(val){ + $('.verification-logo').addClass('glyphicon glyphicon-remove'); + }else{ + $('.verification-logo').removeClass('glyphicon glyphicon-remove'); + } + +}); +$('.verification-logo').on('click',function () { + $("#login_imgCode_value").val(""); + $('.verification-logo').removeClass('glyphicon glyphicon-remove'); +}); +// getImgCode(); + +//点击换验证码 +$('#login_imgCode').on('click', function () { + // getImgCode(); +}); +function getImgCode() { + var opt = { + method: "get", + url: dataUrl.util.getLoginImageCode(), + success: imgCodeSuccess + } + sysAjax(opt); +} +function imgCodeSuccess(res) { + if (res.code === '8888') { + var imageCodeStr = res.data.imageCodeStr; + var base64ImgStr = 'data:image/jpeg;base64,' + imageCodeStr; + fn.setToken(res.data.authTokenid); + $imageCode.attr('src', base64ImgStr); + } + +} +//登录成功的函数 +function loginSuccess(res) { + if (res.code === '8888') { + // var data = JSON.parse(res.data); + fn.setToken(res.data.accessToken); + fn.setUserName(res.data.userName); + fn.setUserId(res.data.userId); + fn.setOpImgPath(res.data.imgPath); + fn.setOrgId(res.data.orgId); + fn.setSysShowName(res.data.sysShowName) + /**将系统编码及名称放入session.*/ + sessionStorage.setItem("sysCode", res.data.sysCode); + sessionStorage.setItem("sysName", res.data.sysName); + //alert("success"); + fn.setUserAccount(res.data.userName); + $('#userName').val(''); + $('#password').val(''); + window.location.href = "SubMenus/index.html"; + } else if (res.code == "2000" || res.code === '1004') { + //账号密码不匹配 + locked = false; + $('#slide_box').html('
    拖动滑块验证'); + slide(); + $('#login_error_ifo').text("账号密码不匹配"); + //$error.text("账号或密码错误!"); + // getImgCode(); + } else if (res.code == "2001") { + //账号无有效角色,非有效用户 + $('#login_error_ifo').text("账号无效"); + //$error.text("账号无有效角色,非有效用户!"); + // getImgCode(); + } else if (res.code == "2002") { + //验证码错误 + // $('.verification-logo').addClass('glyphicon glyphicon-remove'); + $('#login_error_ifo').text("验证码错误"); + //return false; + // $imageCodeValue.focus(); + // getImgCode(); + } else if(res.code == "2010"){ + $('#login_error_ifo').text("用户没有关联停车场"); + // getImgCode(); + } + else { + console.log(res.code); + $('.verification-logo').removeClass('glyphicon glyphicon-remove').addClass('glyphicon glyphicon-ok'); + $('#login_error_ifo').text("系统错误"); + // $error.text(res.msg); + // getImgCode(); + } + +} \ No newline at end of file diff --git a/assets/pages/scripts/managereport/allparkrecordsFinance.js b/assets/pages/scripts/managereport/allparkrecordsFinance.js new file mode 100644 index 0000000..d809287 --- /dev/null +++ b/assets/pages/scripts/managereport/allparkrecordsFinance.js @@ -0,0 +1,1175 @@ +/** + * @name wangfs + */ +//停车类型 100:短时停车免费,200:临停车,300:授权车免费,400:手动免费开闸 500:白名单车辆免费 +var parkTypeSelected = {"100": "短时停车免费", "200": "临停车", "300": "授权车免费", "400": "手动免费开闸", "500": "白名单车辆免费",}; +//支付类型 +var payTypeSelected = {"1": "支付宝", "2": "微信", "4": "微信公众号", "6": "现金"}; +//状态 +var parkStatusSelected = {"10": "在场", "20": "离场"}; +//停车场类型 +var parkLotTypeSelected = {"2": "封闭", "1": "路侧"}; +/**车辆类型.*/ +var parkTypeValue = {"2": "大型车", "1": "小型车"}; + +var cacheParkData; +/** + * 区域停车场缓存数据 + * key为区域ID,value 为对应的停车场数据 + * 全部为all + */ +var blockParkCacheData = {}; + +var rltOrderId = ""; + +var fun = { + //1.进场时间筛选框 + dateEntranceRange: function () { + $('#dateEntranceRange').daterangepicker({ + timePicker: true, + timePickerIncrement: 20, + minDate: moment().subtract('months', 2), + startDate: moment().subtract('days', 0), + endDate: moment().subtract('days', 0), + opens: 'left', //日期选择框的弹出位置 + locale: { + applyLabel: '确定', + cancelLabel: '取消', + customRangeLabel: '自定义', + daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'], + monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', + '七月', '八月', '九月', '十月', '十一月', '十二月'], + format: 'MM/DD/YYYY HH:mm:ss' + }, + ranges: { + '昨天': [moment().subtract('days', 1), moment().subtract('days', 1)], + '最近一周': [moment().subtract('days', 7), moment().subtract('days', 1)], + '最近一个月': [moment().subtract('months', 1), moment().subtract('days', 1)], + '最近三个月': [moment().subtract('months', 2), moment().subtract('days', 1)], + }, + maxDate: moment().subtract('days', 0), //最大时间 + + }, + function (start, end) { + $('#dateEntranceRange input').val(start.format('YYYY-MM-DD HH:mm:ss') + ' - ' + end.format('YYYY-MM-DD HH:mm:ss')); + } + ); + }, + //2.出场时间筛选 + dateExitRange: function () { + $('#dateExitRange').daterangepicker({ + timePicker: true, + timePickerIncrement: 20, + minDate: moment().subtract('months', 2), + startDate: moment().subtract('days', 0), + endDate: moment().subtract('days', 0), + opens: 'left', //日期选择框的弹出位置 + locale: { + applyLabel: '确定', + cancelLabel: '取消', + customRangeLabel: '自定义', + daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'], + monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', + '七月', '八月', '九月', '十月', '十一月', '十二月'], + format: 'MM/DD/YYYY HH:mm:ss' + }, + + ranges: { + '昨天': [moment().subtract('days', 1), moment().subtract('days', 1)], + '最近一周': [moment().subtract('days', 7), moment().subtract('days', 1)], + '最近一个月': [moment().subtract('months', 1), moment().subtract('days', 1)], + '最近三个月': [moment().subtract('months', 2), moment().subtract('days', 1)], + }, + maxDate: moment().subtract('days', 0), //最大时间 + + }, + function (start, end) { + $('#dateExitRange input').val(start.format('YYYY-MM-DD HH:mm:ss') + ' - ' + end.format('YYYY-MM-DD HH:mm:ss')); + } + ); + }, + //3.停车场下拉框 + initPark1: function () { + var data = fn.getParkLot(); + var isFirst = false; + if (null == cacheParkData) { + cacheParkData = {} + isFirst = true; + } + var tempPlNo; + for (var i = 0; i < data.length; i++) { + if (isFirst) { + tempPlNo = data[i].code; + cacheParkData[tempPlNo] = data[i]; + } + } + //初始化块 + $("#areaId").empty(); + var areaIdhtml = ""; + var areaIds = []; + $("#areaId").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + if (!areaIds.concat(data[i].areaId)) { + areaIds.push(data[i].areaId); + areaIdhtml += ""; + } + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + areaIdhtml = '' + areaIdhtml; + $("#areaId").append(areaIdhtml); + $("#parkIds").append(html); + $('#areaId').selectpicker('render'); + $('#parkIds').selectpicker('render'); + + }, + //停车场下拉框 + initPark: function () { + fun.initArea(); + fun.initAreaPark(); + + $(document).on('change', '#areaId', function () { + $('#areaId').selectpicker('render'); + fun.initAreaPark(); + }); + + }, + //初始化区域 + initArea: function () { + var data = fn.getParkLot(); + var isFirst = false; + if (null == cacheParkData) { + cacheParkData = {} + isFirst = true; + } + var tempPlNo; + for (var i = 0; i < data.length; i++) { + if (isFirst) { + tempPlNo = data[i].code; + cacheParkData[tempPlNo] = data[i]; + } + } + var html = ''; + var plArray = []; + html += ""; + var blockIds = []; + var tempArray; + $.each(data, function (index, item) { + + plArray.push(item); + tempArray = blockParkCacheData[item.areaId] + if (undefined == tempArray || null == tempArray) { + tempArray = []; + } + tempArray.push(item); + blockParkCacheData[item.areaId] = tempArray; + + //如果不存在,进行展示 + if (!ArrayUtils.contains(blockIds, item.areaId) || blockIds.length == 0) { + blockIds.push(item.areaId); + html += ""; + } + }); + + blockParkCacheData['all'] = plArray; + + $("#areaId").empty(); + $("#areaId").append(html); + $('#areaId').selectpicker('refresh'); + }, + + initAreaPark: function () { + + var arrearBlock = $("#areaId").val(); + var data = blockParkCacheData[arrearBlock]; + // var data = fn.getParkLot(); + $("#parkIds").empty(); + var html = ''; + var plNos = []; + + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('refresh'); + $('#parkIds').selectpicker('render'); + + + } + + , + /********************begin下拉框加载**********************************/ + //4.停车类型 + initSelect: function () { + + $("#parkType").empty(); + var parkTypeAll = []; + var parkTypeLS = []; + var index = 0; + var html = ''; + for (var keys in parkTypeSelected) { + parkTypeAll.push(keys); + if ("300" == keys || "500" == keys) { + html += ''; + } else { + parkTypeLS.push(keys); + } + } + html = '' + '' + html; + $("#parkType").append(html); + /**2.支付方式 + $("#payType").empty(); + var index_payTpe =0; + var payTypeAll = []; + var parkTypeWX = []; + var html = ''; + for(var keys in payTypeSelected){ + payTypeAll.push(keys); + if("2" == keys || "4" == keys ){ + parkTypeWX.push(keys); + }else{ + html += ''; + } + } + html=''+html; + $("#payType").append(html);*/ + //3.状态 + $("#parkStatus").empty(); + var index_parkStatus = 0; + var parkStatusAll = []; + var html = ''; + for (var keys in parkStatusSelected) { + parkStatusAll.push(keys); + html += ''; + } + html = '' + html; + $("#parkStatus").append(html); + //4.停车场类型 + $("#parkLotType").empty(); + var index_parkLotTypes = 0; + var parkLotTypeAll = []; + var html = ''; + for (var keys in parkLotTypeSelected) { + parkLotTypeAll.push(keys); + html += ''; + } + html = '' + html; + $("#parkLotType").append(html); + }, + /********************end下拉框加载**********************************/ + //4.生成表格数据 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + fixedColumns: true, + fixedNumber: 8, + method: 'POST',//请求方法 + paginationPreText: '上一页', + paginationNextText: '下一页', + ajax: tableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + [ + // {field: 'orderState',title: '状态',width: '10%',align: 'left',formatter: fun.inOutStateFormatter, rowspan:2,valign:"middle"}, + {field: 'name', title: "停车场信息", valign: "middle", align: "center", colspan: 4, rowspan: 1}, + {field: 'name', title: "车辆信息", valign: "middle", align: "center", colspan: 3, rowspan: 1}, + {field: 'name', title: "停车信息", valign: "middle", align: "center", colspan: 4, rowspan: 1}, + // {field: 'name',title: "后付费",valign:"middle",align:"center",colspan:4, rowspan:1}, + // {field: 'name',title: "预付费", valign:"middle",align:"center",colspan:4, rowspan:1}, + {field: 'name', title: "收费信息", valign: "middle", align: "center", colspan: 4, rowspan: 1}, + { + field: 'parkOrderType', + title: '免费理由', + width: '10%', + align: 'left', + formatter: freeReasonFormater, + rowspan: 2, + valign: "middle" + } + ], + // {field: 'parkId', title: '停车场编号', visible: false, align: 'left'}, + [{field: 'plAreaBlockName', title: '归属区域', width: '10%', align: 'left',formatter:commonObj.replacenull}, + {field: 'plName', title: '停车场', width: '10%', align: 'left',formatter:commonObj.replacenull}, + + {field: 'plNo', title: '停车场类型', width: '10%', align: 'left', formatter: parkLogType}, + {field: 'berthRangeName', title: '泊位区间', width: '10%', align: 'left',formatter:commonObj.replacenull}, + {field: 'carNumber', title: '车牌号', width: '10%', align: 'left', formatter: carNum,}, + {field: 'parkType', title: '停车类型', width: '10%', align: 'left', formatter: isFixCarFormatter}, + {field: 'orderState', title: '状态', width: '10%', align: 'left', formatter: orderStateFormatter}, + {field: 'parkInTime', title: '进场时间', width: '20%', align: 'left', formatter: inDatatimeFormatter}, + {field: 'parkOutTime', title: '出场时间', width: '20%', align: 'left', formatter: outDatatimeFormatter}, + {field: 'plType', title: '进口/出口', width: '20%', align: 'left', formatter: inoutCodeFormatter}, + { + field: 'parkingDuration', + title: '停车时长', + width: '10%', + align: 'left', + formatter: parkingDurationFormatter + }, + /* {field: 'afterWX',title: '微信',width: '10%',align: 'left',formatter: moneyFormatter}, + {field: 'afterZFB',title: '支付宝', width: '10%',align: 'left',formatter: moneyFormatter}, + {field: 'afterXJ',title: '现金',width: '10%',align: 'left',formatter: moneyFormatter}, + {field: 'parkOutSourceCode',title: '收费员',width: '10%',align: 'left',formatter:parkOutSourceCodeFormatter}, + {field: 'preWX',title: '微信',width: '10%',align: 'left',formatter: moneyFormatter}, + {field: 'preZFB',title: '支付宝', width: '10%',align: 'left',formatter: moneyFormatter}, + {field: 'preXJ',title: '现金',width: '10%',align: 'left',formatter: moneyFormatter}, + {field: 'parkInSourceCode',title: '收费员',width: '10%',align: 'left',formatter:parkInSourceCodeFormatter},*/ + {field: 'orderActFee', title: '实收', width: '10%', align: 'left', formatter: moneyFormatter}, + {field: 'orderTotalFee', title: '应收', width: '10%', align: 'left', formatter: moneyFormatter}, + {field: 'afterorderFee', title: '后付费', width: '10%', align: 'left', formatter: postpaidFormatter}, + {field: 'preActFee', title: '预付费', width: '10%', align: 'left', formatter: prepaymentFormatter}, + // {field: 'coupon',title: '优惠券',width: '10%', align: 'left'}, + {field: 'rltOrderId', title: '订单ID', width: '10%', align: 'left', visible: false,} + + + ]] + }); + function freeReasonFormater(value, row, index) { + //停车大类型[字典表:PARK_ORDER_TYPE]:100:短时停车免费,200:临停车,300:授权车免费,400:手动免费开闸 500:白名单车辆免费 + //10:待核算,20:待支付,30:支付中,40:支付完成,50:已完成,52:欠费逃逸, 53:已补缴 60:退款中 70:退款成功 + //:0:短时停车免费,1:待核算、2:待支付、3:已支付、4:已完成、5 逃逸,7:授权车免费,8:手动免费开闸 + var reason; + switch (value) { + case 100: + reason = '短时停车免费' + break; + case 500: + reason = '白名单车辆免费' + break; + case 300: + reason = '授权车免费' + break; + case 400: + reason = '手动免费开闸' + break; + default: + reason = null + } + return reason; + } + + function parkOutSourceCodeFormatter(value, row, index) { + if (row != null && "1" == row.plType) { + return value; + } + return ""; + } + + function parkInSourceCodeFormatter(value, row, index) { + if (row != null && "1" == row.plType) { + return value; + } + return ""; + } + + function inoutCodeFormatter(value, row, index) { + var value = ""; + if (row.parkInSourceCode == null && row.parkOutSourceCode == null) { + return ""; + } else if (row.parkInSourceCode != null && row.parkOutSourceCode == null) { + value = row.parkInSourceCode + "/"; + } else if (row.parkOutSourceCode != null && row.parkInSourceCode == null) { + value = "/" + row.parkOutSourceCode; + } else { + value = row.parkInSourceCode + "/" + row.parkOutSourceCode; + } + return value; + // if( row.plType != null && row.plType =="2"){ + // + // }else{ + // return ""; + // } + } + + function orderStateFormatter(value, row, index) { + if (value == 1 || value == 2 || value == 3 || value == 12) { + return "在场"; + } else { + return "离场"; + } + } + + function inDatatimeFormatter(value, row, index) { + if (value == null) { + return ""; + } else { + return "
    " + DateUtils.long2String(value, 7) + "
    "; + } + } + + function outDatatimeFormatter(value, row, index) { + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 7); + } + } + + function parkLogType(value, row, index) { + var parkData = cacheParkData[value]; + if (undefined == parkData || null == parkData ||parkData=='') { + return '-'; + } + var parkLogType = parkData.type; + if (parkLogType != null || parkLogType != '') { + return parkLotTypeSelected[parkLogType]; + } else { + return '-'; + } + + } + + function carNum(value, row, index) { + if (undefined != value && null != value) { + if (value.length > 8) { + return '无牌车' + } else { + return value; + } + } + } + + //金额处理 + function moneyFormatter(value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return 0; + } else { + return (value / 100).toFixed(2); + } + } + + function isFixCarFormatter(value, row, index) { + if (value == 7) { + return "固定车"; + } else { + return "临时车"; + } + } + + function parkingDurationFormatter(value, row, index) { + if (value == null) { + return ""; + } else { + return formatSeconds(value); + } + } + + //后付费 + function postpaidFormatter(value, row, index) { + if (row.orderActFee == 0 || row.orderActFee == undefined || row.orderActFee == null) { + return 0; + } else { + if (row.preActFee == 0 || row.preActFee == undefined || row.preActFee == null) { + var tmp = (row.orderActFee / 100).toFixed(2); + var operStr = '' + tmp + ''; + return operStr; + } else { + var tmp = ((row.orderActFee - row.preActFee) / 100).toFixed(2); + var operStr = '' + tmp + ''; + return operStr; + } + + } + + + } + + //预付费 + function prepaymentFormatter(value, row, index) { + if (value == 0 || value == undefined || value == null) { + return 0; + } else { + var tmp = (value / 100).toFixed(2); + var operStr = '' + tmp + ''; + return operStr; + } + } + }, + /**excle 导出.*/ + excleExport: function () { + $(document).on('click', '#reportBtn', function () { + var data = $('#recordtable').bootstrapTable('getData'); + if (data == null || data.length == 0) { + alert("没有要导出的数据"); + return false; + } + /*停车场编码*/ + var plNos = JSON.parse($("#parkIds").val()); + /*停车状态*/ + var parkStatus = JSON.parse($("#parkStatus").val()); + /*停车类型*/ + var parkType = JSON.parse($('#parkType').val()); + + /*支付方式*/ + //var payType = JSON.parse($('#payType').val()); + /*进场开始时间*/ + var beginInTime = ""; + /*进场结束*/ + var endInTime = ""; + /*出场开始时间*/ + var beginOutTime = ""; + /*出场结束时间*/ + var endOutTime = ""; + /*解析进场时间*/ + var dateEntranceRange = $('#dateEntranceRange input').val(); + if (null != dateEntranceRange && dateEntranceRange.trim().length > 0) { + var times = dateEntranceRange.split(' - '); + beginInTime = times[0]; + endInTime = times[1]; + } + /*解析出场时间*/ + var dateExitRange = $('#dateExitRange input').val(); + if (null != dateExitRange && dateExitRange.trim().length > 0) { + var times = dateExitRange.split(' - '); + beginOutTime = times[0]; + endOutTime = times[1]; + } + if (beginOutTime == null || beginOutTime == '' || endOutTime == '' || endOutTime == null) { + swal({title: "提示", text: "亲!请选择出场时间且小于3天的日期", type: "warning", timer: 5000, allowOutsideClick: true}); + return false; + } else { + var dates = DateUtils.getDiffDays(new Date(endOutTime), new Date(beginOutTime)); + if (dates > 3) { + swal({title: "提示", text: "亲!出场应小于3天的日期", type: "warning", timer: 5000, allowOutsideClick: true}); + return false; + } + } + + + /*进口*/ + //var entrance = $('#enterType').val(); + /*出口*/ + //var exit = $('#outType').val(); + /*车牌号*/ + var carNum = $('#carNumber').val(); + carNum = carNum == "" || carNum.length == 0 ? "" : carNum.trim(); + /*收费员*/ + var chargePerson = $('#tollPerson').val(); + chargePerson = chargePerson == "" || chargePerson.length == 0 ? "" : chargePerson.trim(); + var req = { + plNos: plNos, + parkStatus: parkStatus, + parkType: parkType, + //payType: payType, + beginInTime: beginInTime, + endInTime: endInTime, + beginOutTime: beginOutTime, + endOutTime: endOutTime, + entrance: null, + exit: null, + carNum: carNum, + chargePerson: chargePerson + }; + + // var url=dataUrl.util.exportParkFlow()+'?plNos='+plNos + // +'&parkStatus='+parkStatus+'&parkType='+parkType+'&beginInTime='+beginInTime+'&endInTime='+endInTime + // +'&beginOutTime='+beginOutTime+'&endOutTime='+endOutTime+'&carNum='+carNum+'&chargePerson=' + // +chargePerson; + // window.downloadFile(url); + + var url = dataUrl.util.exportParkFlow(); + var forms = billDetailForm(url, beginInTime, endInTime, endOutTime, beginOutTime, plNos, parkStatus, parkType, carNum, chargePerson); + forms.submit(); + + + }); + }, + /*5.获取查询参数*/ + getQueryParam: function () { + /*停车场编码*/ + var plNos = JSON.parse($("#parkIds").val()); + /*停车状态*/ + var parkStatus = JSON.parse($("#parkStatus").val()); + /*停车类型*/ + var parkType = JSON.parse($('#parkType').val()); + + /*支付方式*/ + //var payType = JSON.parse($('#payType').val()); + /*进场开始时间*/ + var beginInTime = null; + /*进场结束*/ + var endInTime = null; + /*出场开始时间*/ + var beginOutTime = null; + /*出场结束时间*/ + var endOutTime = null; + /*解析进场时间*/ + var dateEntranceRange = $('#dateEntranceRange input').val(); + if (null != dateEntranceRange && dateEntranceRange.trim().length > 0) { + var times = dateEntranceRange.split(' - '); + beginInTime = new Date(times[0]); + endInTime = new Date(times[1]); + } + /*解析出场时间*/ + var dateExitRange = $('#dateExitRange input').val(); + if (null != dateExitRange && dateExitRange.trim().length > 0) { + var times = dateExitRange.split(' - '); + beginOutTime = new Date(times[0]); + endOutTime = new Date(times[1]); + } + + /*进口*/ + //var entrance = $('#enterType').val(); + /*出口*/ + //var exit = $('#outType').val(); + /*车牌号*/ + var carNum = $('#carNumber').val(); + carNum = carNum == null || carNum.length == 0 ? null : carNum.trim(); + /*收费员*/ + var chargePerson = $('#tollPerson').val(); + chargePerson = chargePerson == null || chargePerson.length == 0 ? null : chargePerson.trim(); + var req = { + plNos: plNos, + parkStatus: parkStatus, + parkType: parkType, + //payType: payType, + beginInTime: beginInTime, + endInTime: endInTime, + beginOutTime: beginOutTime, + endOutTime: endOutTime, + entrance: null, + exit: null, + carNum: carNum, + chargePerson: chargePerson + }; + + return req; + }, + //6.订单查询 + queryBtn: function () { + $(document).on('click', '#queryBtn', function () { + fun.createTableData(); + }); + }, + //后付费金额弹窗 + postpaidOperFun: function () { + $('#postpaidtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '上一页', + paginationNextText: '下一页', + ajax: tableLoadRequestpostpaid, //自定义ajax加载数据 + uniqueId: 'plNo', + columns: [ + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter: wxFeemoneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter: aliFeemoneyFormatter + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: cashFeemoneyFormatter + }, + { + field: 'yueFee', + title: '余额', + width: '10%', + align: "left", + formatter: yueFeemoneyFormatter + }, + + ] + }); + //金额处理 + function wxFeemoneyFormatter(value, row) { + //支付方式[字典表:PAY_TYPE]-- 1:支付宝 2:微信 3:银联 4:微信公众号 6:现金 7:IC卡 + if (2 == row.payType || 4 == row.payType) { + if (row.orderActFee == 0 || row.orderActFee == undefined || row.orderActFee == null) { + return 0; + } else { + return (row.orderActFee / 100).toFixed(2); + } + } else { + return 0; + } + }; + + function aliFeemoneyFormatter(value, row) { + //支付方式[字典表:PAY_TYPE]-- 1:支付宝 2:微信 3:银联 4:微信公众号 6:现金 7:IC卡 + if (1 == row.payType) { + if (row.orderActFee == 0 || row.orderActFee == undefined || row.orderActFee == null) { + return 0; + } else { + return (row.orderActFee / 100).toFixed(2); + } + } else { + return 0; + } + }; + + function cashFeemoneyFormatter(value, row) { + //支付方式[字典表:PAY_TYPE]-- 1:支付宝 2:微信 3:银联 4:微信公众号 6:现金 7:IC卡 + if (6 == row.payType) { + if (row.orderActFee == 0 || row.orderActFee == undefined || row.orderActFee == null) { + return 0; + } else { + return (row.orderActFee / 100).toFixed(2); + } + } else { + return 0; + } + }; + + function yueFeemoneyFormatter(value, row) { + //支付方式[字典表:PAY_TYPE]-- 1:支付宝 2:微信 3:银联 4:微信公众号 6:现金 7:IC卡 + if (5 == row.payType) { + if (row.orderActFee == 0 || row.orderActFee == undefined || row.orderActFee == null) { + return 0; + } else { + return (row.orderActFee / 100).toFixed(2); + } + } else { + return 0; + } + + }; + + $('#postpaidmodel').modal('show'); + }, + //预付费金额弹窗 + prepaymentOperFun: function () { + $('#prepaymenttable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '上一页', + paginationNextText: '下一页', + ajax: tableLoadRequestprepayment, //自定义ajax加载数据 + uniqueId: 'plNo', + columns: [ + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter: wxFeemoneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter: aliFeemoneyFormatter + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: cashFeemoneyFormatter + }, + { + field: 'yueFee', + title: '余额', + width: '10%', + align: "left", + formatter: yueFeemoneyFormatter + }, + + ] + }); + //金额处理 + function wxFeemoneyFormatter(value, row) { + //支付方式[字典表:PAY_TYPE]-- 1:支付宝 2:微信 3:银联 4:微信公众号 6:现金 7:IC卡 + if (2 == row.payType || 4 == row.payType) { + if (row.orderActFee == 0 || row.orderActFee == undefined || row.orderActFee == null) { + return 0; + } else { + return (row.orderActFee / 100).toFixed(2); + } + } else { + return 0; + } + }; + + function aliFeemoneyFormatter(value, row) { + //支付方式[字典表:PAY_TYPE]-- 1:支付宝 2:微信 3:银联 4:微信公众号 6:现金 7:IC卡 + if (1 == row.payType) { + if (row.orderActFee == 0 || row.orderActFee == undefined || row.orderActFee == null) { + return 0; + } else { + return (row.orderActFee / 100).toFixed(2); + } + } else { + return 0; + } + }; + + function cashFeemoneyFormatter(value, row) { + //支付方式[字典表:PAY_TYPE]-- 1:支付宝 2:微信 3:银联 4:微信公众号 6:现金 7:IC卡 + if (6 == row.payType) { + if (row.orderActFee == 0 || row.orderActFee == undefined || row.orderActFee == null) { + return 0; + } else { + return (row.orderActFee / 100).toFixed(2); + } + } else { + return 0; + } + }; + + function yueFeemoneyFormatter(value, row) { + //支付方式[字典表:PAY_TYPE]-- 1:支付宝 2:微信 3:银联 4:微信公众号 6:现金 7:IC卡 + if (5 == row.payType) { + if (row.orderActFee == 0 || row.orderActFee == undefined || row.orderActFee == null) { + return 0; + } else { + return (row.orderActFee / 100).toFixed(2); + } + } else { + return 0; + } + + }; + + $('#prepaymentmodel').modal('show'); + + }, + init: function () { + fun.initSelect(); + fun.dateEntranceRange(); //进场时间筛选框 + fun.dateExitRange(); //出场时间筛选 + fun.initPark(); //initPark + fun.createTableData(); + fun.excleExport(); + fun.queryBtn(); + //弹窗 后付费 + documentBindFunc.on('click', '[postpaidOper]', function () { + rltOrderId = $(this).attr('rltOrderId'); + fun.postpaidOperFun(this); + }); + //弹窗 预付费 + documentBindFunc.on('click', '[prepaymentOper]', function () { + rltOrderId = $(this).attr('rltOrderId'); + fun.prepaymentOperFun(this); + }); + }, +}; +$(function () { + fun.init(); +}); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + //获取查询参数 + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + + var opt = { + method: 'post', + url: dataUrl.util.ParkingFlowqueryParkOrderForFinance(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + console.log(res.data); + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +/** + * 后付费弹窗 + * 自定义table AJAX请求 + * @param {Object} params + */ + +function tableLoadRequestpostpaid(params) { + var req = { + sysCode: sysComm.sysCode, + rltOrderId: rltOrderId, + }; + + var cehicleFlowTableAjax = { + method: "POST", + url: dataUrl.util.queryPayOrderForRltOrderId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res.data); + if (res.code == '8888') { + //alert(res.data); + params.success(res.data); + } else { + + } + } + }; + sysAjax(cehicleFlowTableAjax); +} + +/** + * 预付费弹窗 + * 自定义table AJAX请求 + * @param {Object} params + */ + +function tableLoadRequestprepayment(params) { + var req = { + sysCode: sysComm.sysCode, + rltOrderId: rltOrderId, + }; + var cehicleFlowTableAjax = { + method: "POST", + url: dataUrl.util.queryPayOrderForRltOrderId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res.data); + if (res.code == '8888') { + //alert(res.data); + params.success(res.data); + } else { + + } + } + }; + sysAjax(cehicleFlowTableAjax); +} + + +function formatSeconds(value) { + var theTime = parseInt(value);// 秒 + var theTime1 = 0;// 分 + var theTime2 = 0;// 小时 +// alert(theTime); + if (theTime < 60) { + return theTime + '秒'; + } + if (theTime > 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); +// alert(theTime1+"-"+theTime); + if (theTime1 > 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + } + } + var result = ''; + if (theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if (theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + return result; +}; + + +/*搜索条件toggle*/ +$('#transQuery_toggle').on('click', function () { + $('.showtoggle').toggleClass('display-none'); + $(this).find('.transQuery_toggle_arrow').toggleClass('transQuery_toggle_arrow_active'); + +}); + +function formatSeconds(value) { + var theTime = parseInt(value);// 秒 + var theTime1 = 0;// 分 + var theTime2 = 0;// 小时 +// alert(theTime); + if (theTime < 60) { + return theTime + '秒'; + } + if (theTime > 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); +// alert(theTime1+"-"+theTime); + if (theTime1 > 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + } + } + var result = ''; + if (theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if (theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + return result; +}; + + +//function formatSeconds(value) { +// var theTime = parseInt(value);// 秒 +// var theTime1 = 0;// 分 +// var theTime2 = 0;// 小时 +//// alert(theTime); +// if (theTime > 60) { +// theTime1 = parseInt(theTime / 60); +// theTime = parseInt(theTime % 60); +//// alert(theTime1+"-"+theTime); +// if (theTime1 > 60) { +// theTime2 = parseInt(theTime1 / 60); +// theTime1 = parseInt(theTime1 % 60); +// } +// } +// var result = ''; +// if (theTime1 > 0) { +// result = "" + parseInt(theTime1) + "分钟" + result; +// } +// if (theTime2 > 0) { +// result = "" + parseInt(theTime2) + "小时" + result; +// } +// return result; +//}; + +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + + +function billDetailForm(url, beginInTime, endInTime, endOutTime, + beginOutTime, plNos, parkStatus, parkType, carNum, chargePerson) { + + var form = document.createElement("form"); + form.style.display = 'none'; + ; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "beginInTime"; + input.value = beginInTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endInTime"; + input2.value = endInTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + //input2.type = "hidden"; + input3.name = "plNos"; + input3.value = plNos; + form.appendChild(input3); + + var input4 = document.createElement("input"); + //input2.type = "hidden"; + input4.name = "endOutTime"; + input4.value = endOutTime; + form.appendChild(input4); + + var input5 = document.createElement("input"); + //input2.type = "hidden"; + input5.name = "beginOutTime"; + input5.value = beginOutTime; + form.appendChild(input5); + + var input6 = document.createElement("input"); + //input2.type = "hidden"; + input6.name = "parkStatus"; + input6.value = parkStatus; + form.appendChild(input6); + + + var input7 = document.createElement("input"); + //input2.type = "hidden"; + input7.name = "parkType"; + input7.value = parkType; + form.appendChild(input7); + + var input8 = document.createElement("input"); + //input2.type = "hidden"; + input8.name = "carNum"; + input8.value = carNum; + form.appendChild(input8); + + var input9 = document.createElement("input"); + //input2.type = "hidden"; + input9.name = "chargePerson"; + input9.value = chargePerson; + form.appendChild(input9); + + return form; + +}; \ No newline at end of file diff --git a/assets/pages/scripts/managereport/billmanage.js b/assets/pages/scripts/managereport/billmanage.js new file mode 100644 index 0000000..9ab1d6b --- /dev/null +++ b/assets/pages/scripts/managereport/billmanage.js @@ -0,0 +1,1072 @@ +var fun = { + init: function () { + commSelect.area_Pl_LinkedSelect("#bill-parkArea", "#bill-parkIds"); + fun.dateInit(); + fun.monthdateInit(); + fun.createTableData(); + fun.initSummaryFeeData(); + //弹窗 + documentBindFunc.on('click', '[lookOper]', function() { + fun.lookOper(this); + }); + }, + //时间初始化 + dateInit: function () { + $('#bill-daterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#bill-daterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#bill-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + $("#bill-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + monthdateInit: function () { + /** 月 时间初始化 **/ + $('#bill-monthdaterange-btnsta').val(moment().subtract('months', 1).format('YYYY-MM')); + $('#bill-monthdaterange-btnend').val(moment().subtract('months', 1).format('YYYY-MM')); + //开始日期 + $("#bill-monthdaterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#bill-monthdaterange-btnend").datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + //startDate:startVal, + format: 'yyyy-mm', + weekStart: 1, + autoclose: true, + startView: 3, + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + + /*获取查询参数*/ + queryParamForBillManage: function () { + var plNos = JSON.parse($("#bill-parkIds").val()); + if (plNos.length < 0 || plNos == null || plNos == undefined) { + plNos.push(-1); + } + /**统计分类 1、日 2、 月**/ + var timeType = 1; + /*开始时间*/ + var beginTime; + /*结束时间*/ + var endTime; + timeType = $("#queryType").val(); + if (1 == parseInt(timeType)) { + //日 + beginTime = $("#bill-daterange-btnsta").val(); + endTime = $("#bill-daterange-btnend").val(); + beginTime = beginTime + " 00:00:00"; + endTime = endTime + " 23:59:59"; + } else { + timeType = 2; + beginTime = $("#bill-monthdaterange-btnsta").val() + "-01 00:00:00"; + endTime = $("#bill-monthdaterange-btnend").val(); + + var dates = endTime.split("-"); + if (dates[1] == '02') { + endTime = endTime + "-28 23:59:59"; + } else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07' + || dates[1] == '08' || dates[1] == '10' || dates[1] == '12') { + endTime = endTime + "-31 23:59:59"; + } else { + endTime = endTime + "-30 23:59:59"; + } + + } + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + var detailType =$("#tab-btn-wrap").find(".tabAction").val();///**1.停车场;2:办事处.*/ + //alert(detailType) + var req = { + plNos: plNos, + beginTime: beginTime, + endTime: endTime, + timeType: timeType, + detailType:detailType + }; + //console.log(req); + return req; + }, + + initSummaryFeeData:function(){ + $("#park_actFeeForRefund").text("0.00"); + + + $("#park_actFee").text("0.00"); + $("#vip_actFee").text("0.00"); + $("#back_actFee").text("0.00"); + + + $("#park_dicountFee").text("0.00"); + $("#back_dicountFee").text("0.00"); + $("#vip_dicountFee").text("0.00"); + + $("#park_totalFee").text("0.00"); + $("#vip_totalFee").text("0.00"); + $("#back_totalFee").text("0.00"); + $("#all_totalFee").text("0.00"); + $("#all_actFee").text("0.00"); + $("#all_dicountFee").text("0.00"); + $("#all_otherFee").text("0.00"); + + var req=fun.queryParamForBillManage(); + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.querySummaryFeeByType(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data=res.data; + if(data !=null){ + + /********************begin实收*****************************/ + //临停实收 + var parkActFee=data.actFee==null?0:data.actFee; + //会员卡实收 + var vipActFee=data.actFeeForVIP==null?0:data.actFeeForVIP; + //补缴实收 + var backActFee=data.actFeeForBack==null?0:data.actFeeForBack; + /*****************************begin折扣*****************************/ + //临停折扣 + var parkDicountFee=data.dicountFee==null?0:data.dicountFee; + //补缴折扣 + var backDicountFee=data.dicountFeeForBack==null?0:data.dicountFeeForBack; + //会员卡折扣 + var vipDicountFee=data.dicountFeeForVIP==null?0:data.dicountFeeForVIP; + /********************begin退费*****************************/ + debugger; + //临停退费 + var orderRefund = data.orderRefund==null?0:data.orderRefund; + //会员卡退费 + var vipRefund = data.vipRefund==null?0:data.vipRefund; + //充值退费 + var rechargeRefund = data.rechargeRefund==null?0:data.rechargeRefund; + /********************begin欠费*****************************/ + //临停欠费 + var orderArrearageFee=data.arrearageFee==null?0:data.arrearageFee; + //会员卡欠费 + var vipArrearageFee=data.arrearageFeeForVIP==null?0:data.arrearageFeeForVIP; + //补缴卡欠费 + var arrearageFeeForBack=data.arrearageFeeForBack==null?0:data.arrearageFeeForBack; + + + /******************************begin赋值操作******************************************/ + //实收 + var allactFee=parkActFee+vipActFee+backActFee; + $("#all_actFee").text(fun.money(allactFee));//实收汇总 + $("#park_actFee").text(fun.money(parkActFee)); //临停实收 + $("#vip_actFee").text(fun.money(vipActFee)); //会员卡实收 + $("#back_actFee").text(fun.money(backActFee)); //补缴实收 + //折扣 + var alldicountFee=parkDicountFee+backDicountFee+vipDicountFee; + $("#all_dicountFee").text(fun.money(alldicountFee)); //汇总折扣 + $("#park_dicountFee").text(fun.money(parkDicountFee));//临停折扣 + $("#vip_dicountFee").text(fun.money(vipDicountFee));//会员卡折扣 + $("#back_dicountFee").text(fun.money(backDicountFee));//补缴折扣 + //退费 + var allotherFee =orderRefund+vipRefund+rechargeRefund; + $("#all_otherFee").text(fun.money(allotherFee));//汇总退费 + $("#orderRefund").text(fun.money(orderRefund));//临停退费 + $("#vipRefund").text(fun.money(vipRefund));//会员卡退费 + $("#rechargeRefund").text(fun.money(rechargeRefund));////补缴退费 + //应收 + $("#park_totalFee").text(fun.money(parkActFee+parkDicountFee+orderArrearageFee));//临停应收=临停实收+临停折扣+临停欠费 + $("#vip_totalFee").text(fun.money(vipActFee+vipDicountFee+vipDicountFee+vipArrearageFee));//会员卡应收=会员卡实收+会员卡折扣+会员卡欠费 + //欠费arrearageFee + //$("#back_totalFee").text(fun.money(backActFee+backDicountFee+arrearageFeeForBack));//补缴卡应收=补缴卡实收+补缴折扣+补缴欠费 + //$("#back_totalFee").text(fun.money(data.arrearageFee == null ? 0.00:data.arrearageFee));//补缴卡应收=补缴卡实收+补缴折扣+补缴欠费 + $("#all_totalFee").text(fun.money(parkActFee+parkDicountFee+orderArrearageFee+vipActFee+vipDicountFee+vipDicountFee+vipArrearageFee+backActFee+backDicountFee+arrearageFeeForBack)); + + } + + + } + } + }; + sysAjax(opt); + + }, + //停车场 table 默认 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + [{ + field: 'checkDate', + title: '日期', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + formatter: commonObj.replacenull + //width: '20%' + }, + { + field: 'areaName', + title: '办事处', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + //formatter: commonObj.replacenull + formatter: fun.operFormatter + }, + + { + field: 'totalFee', + title: '应收', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { + field: '', + title:'实收', + valign: "middle", + align: "center", + colspan: 5, + rowspan: 1, + formatter: commonObj.moneyFormatter + }, + { + field: 'arrearageFee', + title: '欠费', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { field: 'actFeeForRefund', + title: '退费', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + { + field: 'dicountFee', + title: '折扣', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + + + ], + [ + + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'balanceFee', + title: '余额', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'orderPayedFee', + title: '合计', + width: '10%', + align: "left", + formatter: allActFeeFormatter + }, + + ], + + + ] + }); + function allActFeeFormatter(value, row, index){ + var allFee=0; + if(row.wxFee!=null){ + allFee=allFee+row.wxFee; + } + if(row.aliFee!=null){ + allFee=allFee+row.aliFee; + } + if(row.cashFee!=null){ + allFee=allFee+row.cashFee; + } + if(row.balanceFee!=null){ + allFee=allFee+row.balanceFee; + } + /** 退费**/ + //var allRefundFee=row.actFeeForRefund==null?0:row.actFeeForRefund; + if(allFee=="0.00"){ + return 0.00; + }else{ + return (allFee/100).toFixed(2); + } + + } + + + function totalFeemoneyFormatter(value, row, index){ + // var allFee=0; + // if(row.arrearageFee!=null){ + // allFee+=row.arrearageFee; + // } + // return ((value+allFee)/100).toFixed(2); + return ((value)/100).toFixed(2); + }; + + }, + //办事处 table 维度 + createbscTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + [{ + field: 'checkDate', + title: '日期', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + formatter: commonObj.replacenull + //width: '20%' + }, + { + field: 'areaName', + title: '办事处', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + //formatter: fun.operFormatter + formatter: commonObj.replacenull + }, + { + field: 'plName', + title: '停车场', + valign: "middle", + align: 'left', + rowspan: 2 + + }, + { + field: 'totalFee', + title: '应收', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { + field: '', + title:'实收', + valign: "middle", + align: "center", + colspan: 5, + rowspan: 1, + formatter: commonObj.moneyFormatter + }, + { + field: 'arrearageFee', + title: '欠费', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: commonObj.moneyFormatter + }, + { field: 'actFeeForRefund', + title: '退费', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + { + field: 'dicountFee', + title: '折扣', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + + + ], + [ + + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'balanceFee', + title: '余额', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'orderPayedFee', + title: '合计', + width: '10%', + align: "left", + formatter: allActFeeFormatter + }, + + ], + + + ] + }); + function allActFeeFormatter(value, row, index){ + var allFee=0; + if(row.wxFee!=null){ + allFee=allFee+row.wxFee; + } + if(row.aliFee!=null){ + allFee=allFee+row.aliFee; + } + if(row.cashFee!=null){ + allFee=allFee+row.cashFee; + } + if(row.balanceFee!=null){ + allFee=allFee+row.balanceFee; + } + + + if(allFee=="0.00"){ + return "0.00"; + }else{ + return (allFee/100).toFixed(2); + } + + } + + + function totalFeemoneyFormatter(value, row, index){ + // var allFee=0; + // if(row.arrearageFee!=null){ + // allFee+=row.arrearageFee; + // } + // return ((value+allFee)/100).toFixed(2); + return ((value)/100).toFixed(2); + }; + + }, + //操作显示 + operFormatter: function(value, row, index) { + var areaName="-"; + if(row.areaName!=null){ + areaName=row.areaName; + } + var areaId="-"; + if(row.areaId!=null){ + areaId=row.areaId; + } + var operStr = ''+ areaName +''; + return operStr; + }, + + money:function (value) { + if(value==null || value==undefined || value =="0.00"){ + return "0.00"; + }else{ + return (value/100).toFixed(2); + } + }, + + lookOper: function(element) { + $('#popAreaname').text(''); + var areaName = $(element).attr('areaname'); + areaId = $(element).attr('areaid'); + var areadate = $(element).attr('datatime'); + $('#popAreaname').text(areaName+'('+areadate+')'); + if(areaName!=null && areaName !=undefined && areaName !="全部" && areaName!="-"){ + var beginTime= $(element).attr('datatime'); + if(beginTime.length>7){ + beginTimeNew =new Date((beginTime + " 00:00:00").replace(/-/g, "/")); + endTimeNew =new Date((beginTime + " 23:59:59").replace(/-/g, "/")); + }else{ + beginTimeNew =new Date((beginTime + "-01 00:00:00").replace(/-/g, "/")); + //console.log(beginTime); + var dates = beginTime.split("-"); + //console.log(dates[1]); + if (dates[1] == '02') { + beginTime = beginTime + "-28 23:59:59"; + } else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07' + || dates[1] == '08' || dates[1] == '10' || dates[1] == '12') { + beginTime = beginTime + "-31 23:59:59"; + } else { + beginTime = beginTime + "-30 23:59:59"; + } + endTimeNew =new Date((beginTime).replace(/-/g, "/")); + } + var plNos = JSON.parse($("#bill-parkIds").val()); + //console.log(plNos.length); + parkIdList = []; + if(parseInt(plNos.length)>=2){ + parkIdList=fun.getPlNosByAreaName(areaName); + }else{ + parkIdList=plNos; + } + + //console.log(parkIdList); + + fun.popCreateTableData(); + + $('#billmana-myModal').modal('show'); + } + + }, + getPlNosByAreaName: function (areaName) { + //停车场 + var data = fn.getParkLot(); + var areaPlNos = {}; + var areaNameList = []; + for (var i = 0; i < data.length; i++) { + var areaNameNew = data[i].areaName; + if (areaNameList.indexOf(areaNameNew) == -1) { + areaNameList.push(areaNameNew); + var plNos = []; + plNos.push(data[i].code); + areaPlNos[areaNameNew] = plNos; + } else { + var plNos = areaPlNos[areaNameNew]; + if (plNos.indexOf(data[i].code) == -1) { + plNos.push(data[i].code); + areaPlNos[areaNameNew] = plNos; + } + } + } + return areaPlNos[areaName]; + }, + popCreateTableData: function () { + $('#billincometable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequestpop, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + [ + // { + // field: 'checkDate', + // title: '日期', + // valign: "middle", + // align: 'left', + // rowspan: 2, + // valign: "middle", + // //width: '20%' + // }, + { + field: 'plName', + title: '车场名称', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle" + }, + { + field: 'totalFee', + title: '应收', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: totalFeemoneyFormatter + }, + {field: '', title:'实收', valign: "middle", align: "center", colspan: 5, rowspan: 1}, + { + field: 'arrearageFee', + title: '欠费', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + width: '10%', + formatter: fun.money + }, + { field: 'actFeeForRefund', + title: '退费', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: fun.money + }, + { + field: 'dicountFee', + title: '折扣', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: fun.money + }, + + + ], + [ + + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter: fun.money + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter: fun.money + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: fun.money + }, + { + field: 'balanceFee', + title: '余额', + width: '10%', + align: "left", + formatter: fun.money + }, + { + field: 'orderPayedFee', + title: '合计', + width: '10%', + align: "left", + formatter: allActFeeFormatter + }, + + ], + + + ] + }); + function allActFeeFormatter(value, row, index){ + var allFee=0; + if(row.wxFee!=null){ + allFee+=row.wxFee; + } + if(row.aliFee!=null){ + allFee+=row.aliFee; + } + if(row.cashFee!=null){ + allFee+=row.cashFee; + } + if(row.balanceFee!=null){ + allFee+=row.balanceFee; + } + + if(allFee=="0.00"){ + return "0.00"; + }else{ + return (allFee/100).toFixed(2); + } + + } + + + function totalFeemoneyFormatter(value, row, index){ + // var allFee=0; + // if(row.arrearageFee!=null){ + // allFee+=row.arrearageFee; + // } + // return ((value+allFee)/100).toFixed(2); + return ((value)/100).toFixed(2); + }; + }, +}; +fun.init(); +//查询 +documentBindFunc.on('click', '#bill-queryBtn', function () { + fun.createTableData(); + fun.initSummaryFeeData(); +}); +//切换 搜索部分 是否生效 +documentBindFunc.on('click', "#bill-toptab div.ITD-graynav-topbar", function () { + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + //console.log(index); + //切换完后,调用查询表格 + // fun.createTableData(); + +}); +//日月切换 点击事件 +//日 点击 +documentBindFunc.on('click', '#billdayType', function () { + $('.bill-choosedateday').removeClass('display-none'); + $('.bill-choosedatemonth').addClass('display-none'); + $('#queryType').attr('data-value', '1'); + $("#queryType").val(1); + fun.createTableData(); + fun.initSummaryFeeData(); +}); +//月 点击 +documentBindFunc.on('click', '#billmonthType', function () { + $('.bill-choosedatemonth').removeClass('display-none'); + $('.bill-choosedateday').addClass('display-none'); + $('#queryType').attr('data-value', '2'); + $("#queryType").val(2); + fun.createTableData(); + fun.initSummaryFeeData(); +}); + +//切换 全部 有差异 无差异 +$('#tab-btn-wrap li').on('click',function () { + var that=$(this).index(); + //因后面逻辑需要,一定要线切换 tabAction 样式, 然后在调用 对应的函数 + $(this).addClass('tabAction').siblings().removeClass('tabAction'); + if(that==1){ + //停车场 维度 + fun.createbscTableData(); + + }else{ + //办事处 维度 + fun.createTableData(); + } + +}); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.queryParamForBillManage(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + req.checkFeeTypes=[100,103,300,301,302]; + var opt = { + method: 'post', + url: dataUrl.util.queryDetailForAreaByType(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + + +/** + * 区域弹窗 + * 自定义table AJAX请求 + * @param {Object} params + */ +var parkIdList=[]; +var areaId; +var beginTimeNew; +var endTimeNew; +function tableLoadRequestpop(params) { + var req = fun.queryParamForBillManage(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.beginTime=beginTimeNew; + req.endTime=endTimeNew; + req.plNos = null; + req.areaId = areaId; + req.sysCode = sysComm.sysCode; + req.checkFeeTypes=[100,103,300,301,302]; + var cehicleFlowTableAjax = { + method: params.type, + url: dataUrl.util.queryDetailForParkByType(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res.data); + if(res.code == '8888') { + //alert(res.data); + params.success(res.data); + } else { + + } + } + }; + sysAjax(cehicleFlowTableAjax); +} + + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#billmanageReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#billmanageReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#billmanageReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#billmanageReport").val("导出"); + } + else { + curCount--; + $("#billmanageReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#billmanageReport',function (){ + //获取table所有行数据 + var parkLot = $("#recordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var req = fun.queryParamForBillManage(); + var beginTime = DateUtils.long2String(req.beginTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + + var url = dataUrl.util.exportBillExcleforNewAll(); + var forms = exportIncomeDetailFormforbill(url, beginTime, endTime, req.plNos, req.timeType + ); + forms.submit(); +}); + + + + +function exportIncomeDetailFormforbill(url, beginTime, endTime, plNos, timeType +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "beginTime"; + input.value = beginTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endTime"; + input2.value = endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + //input2.type = "hidden"; + input3.name = "plNos"; + input3.value = plNos; + form.appendChild(input3); + + + var input16 = document.createElement("input"); + //input15.type = "hidden"; + input16.name = "timeType"; + input16.value = timeType; + form.appendChild(input16); + + return form; + +}; diff --git a/assets/pages/scripts/managereport/companysettlement.js b/assets/pages/scripts/managereport/companysettlement.js new file mode 100644 index 0000000..a635d9a --- /dev/null +++ b/assets/pages/scripts/managereport/companysettlement.js @@ -0,0 +1,906 @@ +var fun = { + init: function () { + fun.querySettleOrg(); + + //时间初始化 + fun.dateInit(); + //汇总 + fun.summarySettle(); + //table 公司 + fun.createTableData(); + }, + dateInit: function () { + $('#compa-daterange-btnsta').val(moment().subtract('months', 0).format('YYYY-MM')); + // $('#compa-daterange-btnend').val(moment().subtract('days', 2).format('YYYY-MM-DD')); + //开始日期 + $("#compa-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 0).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //表格 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: settleOrderTableRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + + [ + { + field: 'orgName', + title: '公司', + width: '10%', + visible: true, + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + commonObj.replacenull(value) + '
    ' + + } + }, + { + field: 'checkDate', + title: '日期', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + commonObj.yearMonthFormatter(value) + '
    ' + + } + }, + { + field: 'settlementActFee', + title: '总收入', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var settlementActFee = parseFloat(value)-parseFloat(row.aliRefundFee) - parseFloat(row.wxRefundFee) + return '
    ' + commonObj.moneyFormatter(settlementActFee) + '
    ' + + } + }, + { + field: 'settlementTotalFee', + title: '应结金额', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var jsmoneyTotal = fun.getSettleFee(row); + return '
    ' + jsmoneyTotal+ '
    ' + + } + }, + { + field: 'settlementTotalFee', + title: '总服务费', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var allSrvFee = fun.getSrvFee(row); + return '
    ' + allSrvFee + '
    ' + + } + }, + { + field: 'caseRefundFee', + title: '找零金额', + width: '10%', + align: "left", + rowspan: 2, + formatter: commonObj.moneyFormatter + }, + { + field: '', + title: '微信', + valign: "middle", + align: "center", + width: '20%', + colspan: 2, + rowspan: 1, + }, + { + field: '', + title: '支付宝', + valign: "middle", + align: "center", + width: '20%', + colspan: 2, + rowspan: 1, + }, + { + field: 'checkStatus', + title: '状态', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + fun.checkStatusFormatter(value) + '
    ' + + } + }, + { + field: 'settlementActFee', + title: '操作', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { +// if(row.checkStatus == 200){ +// return '
    打款
    ' +// } + var html = '-'; + if(row.checkStatus == 200){ + html = "打款"; + } + return html; + } + }, + ], + [ + +// { +// field: 'caseRefundServFee', +// title: '服务费', +// width: '10%', +// align: "left", +// formatter: commonObj.moneyFormatter +// }, + { + field: 'wxFee', + title: '应结金额', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(parseFloat(value)-parseFloat(row.wxRefundFee)); + } + }, + { + field: 'wxSrvFee', + title: '服务费', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '应结金额', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(parseFloat(value)-parseFloat(row.aliRefundFee)); + } + }, + { + field: 'aliSrvFee', + title: '服务费', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + + ] + + ] + }); + + }, + //获取结算金额 + getSettleFee:function(row){ + var settle = row; + var settlementTotalFee = commonObj.moneyFormatter(settle.settlementTotalFee); + var settlementActFee = commonObj.moneyFormatter(settle.settlementActFee); + //支付宝费用 + var aliFee = commonObj.moneyFormatter(settle.aliFee); + var aliSrvFee = commonObj.moneyFormatter(settle.aliSrvFee); + var aliRefundFee = commonObj.moneyFormatter(settle.aliRefundFee); + var aliChargeNum = commonObj.numberFormatter(settle.aliChargeNum); + //微信费用 + var wxFee = commonObj.moneyFormatter(settle.wxFee); + var wxSrvFee = commonObj.moneyFormatter(settle.wxSrvFee); + var wxRefundFee = commonObj.moneyFormatter(settle.wxRefundFee); + var wxChargeNum = commonObj.numberFormatter(settle.wxChargeNum); + //现金费用 + var caseRefundFee = commonObj.moneyFormatter(settle.caseRefundFee); + var caseRefundServFee = commonObj.moneyFormatter(settle.caseRefundServFee); + var caseRefundNum = commonObj.numberFormatter(settle.caseRefundNum); + //余额 + var balanceFee = commonObj.moneyFormatter(settle.balanceFee); + var balanceSrvFee = commonObj.moneyFormatter(settle.balanceSrvFee); + var balanceChargeNum = commonObj.numberFormatter(settle.balanceChargeNum); + var allSrvFee = commonObj.moneyFormatter((parseFloat(aliSrvFee) + + parseFloat(wxSrvFee))*100); + + var allRefundFee = commonObj.moneyFormatter((parseFloat(wxRefundFee) + + parseFloat(aliRefundFee))*100); + //var allSrvFee = parseFloat(aliSrvFee) + parseFloat(wxSrvFee) + parseFloat(balanceSrvFee); + var alltransNum = aliChargeNum + wxChargeNum + balanceChargeNum; + + var jsmoneyTotal=commonObj.moneyFormatter(row.settlementActFee)-allSrvFee - allRefundFee -caseRefundFee; + if(jsmoneyTotal == NaN || jsmoneyTotal == null || jsmoneyTotal==""){ + return "0.00"; + } + return jsmoneyTotal.toFixed(2); + }, + //获取服务费 + getSrvFee:function(row){ + var settle = row; + + var aliSrvFee = commonObj.moneyFormatter(settle.aliSrvFee); + var wxSrvFee = commonObj.moneyFormatter(settle.wxSrvFee); + var caseRefundServFee = commonObj.moneyFormatter(settle.caseRefundServFee); + var balanceSrvFee = commonObj.moneyFormatter(settle.balanceSrvFee); + + var allSrvFee = commonObj.moneyFormatter((parseFloat(aliSrvFee) + + parseFloat(wxSrvFee) + parseFloat(balanceSrvFee) + parseFloat(caseRefundServFee))*100); + + return allSrvFee; + }, + //核账结果状态:100-待结算;200:待打款;300:已打款;400:打款驳回 + checkStatusFormatter:function(value, row, index){ + if(value == null || value == ''){ + return '-'; + }else if(value == 100){ + return '待结算'; + }else if(value == 200){ + return '待打款'; + }else if(value == 300){ + return '已打款'; + }else if(value == 400){ + return '打款驳回'; + } + return '-'; + }, + //弹窗表格 + createCompanyTableData: function () { + $('#companytable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: CompanyOrderTableRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + + [{ + field: 'orgName', + title: '公司', + width: '10%', + visible: true, + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + commonObj.replacenull(value) + '
    ' + + } + }, + { + field: 'checkDate', + title: '时间', + width: '15%', + visible: true, + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + commonObj.timeOneFormatter(value) + '
    ' + + } + }, + { + field: 'settlementActFee', + title: '总收入', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var settlementActFee = parseFloat(value)-parseFloat(row.aliRefundFee) - parseFloat(row.wxRefundFee) + return '
    ' + commonObj.moneyFormatter(settlementActFee) + '
    ' + + } + }, + { + field: 'settlementTotalFee', + title: '结算总金额', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var jsmoneyTotal = fun.getSettleFee(row); + return '
    ' + jsmoneyTotal+ '
    ' + + } + }, + { + field: 'settlementTotalFee', + title: '总服务费', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + var allSrvFee = fun.getSrvFee(row); + return '
    ' +allSrvFee + '
    ' + + } + }, + { + field: 'caseRefundFee', + title: '找零金额', + width: '10%', + align: "left", + rowspan: 2, + formatter: commonObj.moneyFormatter + }, + { + field: '', + title: '微信', + valign: "middle", + align: "center", + width: '20%', + colspan: 2, + rowspan: 1, + }, + { + field: '', + title: '支付宝', + valign: "middle", + align: "center", + width: '20%', + colspan: 2, + rowspan: 1, + }, + { + field: 'checkStatus', + title: '状态', + width: '10%', + align: "left", + valign: "middle", + rowspan: 2, + formatter: function (value, row, index) { + return '
    ' + fun.checkStatusFormatter(value) + '
    ' + + } + }, + + ], + [ + +// { +// field: 'caseRefundServFee', +// title: '服务费', +// width: '10%', +// align: "left", +// formatter: commonObj.moneyFormatter +// }, + { + field: 'wxFee', + title: '应结金额', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(parseFloat(value)-parseFloat(row.wxRefundFee)); + } + }, + { + field: 'wxSrvFee', + title: '服务费', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '应结金额', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return commonObj.moneyFormatter(parseFloat(value)-parseFloat(row.aliRefundFee)); + } + }, + { + field: 'aliSrvFee', + title: '服务费', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + + ] + + ] + + }); + + }, + + //查询组织ID + querySettleOrg: function () { + $('#company_type').empty(); + var req = { + sysCode: sysComm.sysCode, + }; + var html = ''; + var allOrgIds = [-967]; //防止为空,后台报错 + var opt = { + method: 'post', + url: dataUrl.util.queryToOrgListByFromOrg(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function (res) { + console.log('查询组织:') + console.log(res); + if (res.code == '8888') { + $.each(res.data, function (index, item) { + allOrgIds.push(item.toOrgId); +// html += ' '; + html += ""; + }); + html = ' ' + + html; + $('#company_type').append(html); + //公司 初始化 + $('#company_type').selectpicker('render'); + } + } + }; + sysAjax(opt); + }, + //汇总 + summarySettle: function () { + var dates=$('#compa-daterange-btnsta').val() + var startDate,endDate; + if (null != dates && dates != '') { + startDate = dates + '-01 00:00:00'; + startDate = new Date(startDate.replace(new RegExp(/-/gm), "/")) + } + endDate = startDate; + if (null != endDate && endDate != '') { + endDate = getMonthLastDay(startDate); + } + var orgIds = $("#company_type").val(); + orgIds = JSON.parse(orgIds); + var req = { + sysCode: sysComm.sysCode, + orgIds: orgIds, + startDate: startDate, + endDate: endDate + }; + + var opt = { + method: 'post', + url: dataUrl.util.querySettlementRecordSumforOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log('查询汇总:') + console.log(res); + if (res.code == '8888') { + var settle = res.data; + + var settlementTotalFee = commonObj.moneyFormatter(settle.settlementTotalFee); + var settlementActFee = commonObj.moneyFormatter(settle.settlementActFee); + + + var aliFee = commonObj.moneyFormatter(settle.aliFee); + var aliSrvFee = commonObj.moneyFormatter(settle.aliSrvFee); + var aliRefundFee = commonObj.moneyFormatter(settle.aliRefundFee); + var aliChargeNum = commonObj.numberFormatter(settle.aliChargeNum); + + var wxFee = commonObj.moneyFormatter(settle.wxFee); + var wxSrvFee = commonObj.moneyFormatter(settle.wxSrvFee); + var wxRefundFee = commonObj.moneyFormatter(settle.wxRefundFee); + var wxChargeNum = commonObj.numberFormatter(settle.wxChargeNum); + + var caseRefundFee = commonObj.moneyFormatter(settle.caseRefundFee); + var caseRefundServFee = commonObj.moneyFormatter(settle.caseRefundServFee); + var caseRefundNum = commonObj.numberFormatter(settle.caseRefundNum); + + var balanceFee = commonObj.moneyFormatter(settle.balanceFee); + var balanceSrvFee = commonObj.moneyFormatter(settle.balanceSrvFee); + var balanceChargeNum = commonObj.numberFormatter(settle.balanceChargeNum); + + var allSrvFee = commonObj.moneyFormatter((parseFloat(aliSrvFee) + parseFloat(wxSrvFee) + parseFloat(balanceSrvFee))*100); + //var allSrvFee = commonObj.moneyFormatter(parseFloat(aliSrvFee) + parseFloat(wxSrvFee) + parseFloat(balanceSrvFee)); + var alltransNum = aliChargeNum + wxChargeNum + balanceChargeNum; + // + $('#allSettleFee').text((parseFloat(settlementActFee)-parseFloat(aliRefundFee) - parseFloat(wxRefundFee)).toFixed(2)); + $('#allServFee').text(allSrvFee); + $('#alltransNum').text(alltransNum); + + //应结金额 = 微信支付+支付宝支付 - 找零 - 总服务费-微信退费-支付宝退费 + $('#wxAlSettleFee').text((parseFloat(wxFee)+parseFloat(aliFee) - parseFloat(caseRefundFee)- parseFloat(aliSrvFee)-parseFloat(wxSrvFee)-parseFloat(aliRefundFee)-parseFloat(wxRefundFee)).toFixed(2)); + //$('#wxiAliServFee').text((parseFloat(wxSrvFee)+parseFloat(aliSrvFee)).toFixed(2)); + $('#wxiAlitransNum').text(parseInt(wxChargeNum)+parseInt(aliChargeNum)); + + //总服务费 + $('#aliWxALLServFee').text((parseFloat(wxSrvFee)+parseFloat(aliSrvFee)).toFixed(2)); + //$('#aliServFee').text(aliSrvFee); + $('#aliWxAllpaytransNum').text(0); + + $('#yeSettleFee').text(balanceFee); + $('#inServFee').text(balanceSrvFee); + $('#yetransNum').text(balanceChargeNum); + + $('#noSettleFee').text(caseRefundFee); + $('#noTotalFee').text(caseRefundServFee); + $('#noServFee').text(caseRefundNum); + + } + } + }; + sysAjax(opt); + + + }, +}; + +fun.init(); +//查询 +documentBindFunc.on('click', '#compa-queryBtn', function () { + fun.createTableData(); + // fun.createCompanyTableData(); + fun.summarySettle(); +}); +var detailOrgId; +//明细table 弹窗 +documentBindFunc.on('click', '.compopBtn', function () { + detailOrgId = ($(this).attr('orgid')); + fun.createCompanyTableData(); + $('#compop_alertmodel').modal('show'); +}); +//打款 弹窗 +documentBindFunc.on('click', '.makemoneyBtn', function () { + /* $('#park_out0').parent().removeClass('checked'); + $('#park_out1').parent().removeClass('checked'); + $('#park_out1').parent().addClass('checked'); + $('#park_out0')[0].checked = true;//初始化*/ + $("#settleBeginTime").val(''); + $("#settleEndTime").val(''); + $("#settleOrgId").val(''); + $("#tolltorNum").text(''); + $("#tolltorsum").text(''); + $("#tolltor_amount").val(''); + //初始化 + var orgId = $(this).attr('orgid'); + var rowStr = $(this).attr('row'); + var row = JSON.parse(rowStr); + console.log(row); + var checkDate = row.checkDate; + if(checkDate == undefined || checkDate == 'null' ||orgId == undefined || orgId == 'null'){ + console.log("参数为空"); + return; + } + var date = new Date(parseInt(checkDate)); + $("#settleBeginTime").val(commonObj.yearMonthFormatter(date)+'-01'); + $("#settleEndTime").val(commonObj.timeOneFormatter(getMonthLastDay(date))); + $("#settleOrgId").val(orgId); + $("#tolltorNum").text(commonObj.yearMonthFormatter(date)); + $("#tolltorsum").text(fun.getSettleFee(row)); + $('#recharge_error').addClass('display-none').text(""); + $('#parking_forcemodel').modal('show'); +}); +//提交结算 +documentBindFunc.on('click', '#parking_forcesubmit', function () { + +// var checkStatus = $("input[name='park_out']:checked").val(); +// if(checkStatus == null || checkStatus == undefined || checkStatus == ''){ +// $('#recharge_error').removeClass('display-none').text("请选择是否驳回!"); +// return; +// } + submitTheSettle(300); + +}); +documentBindFunc.on('click', '#parking_forcefsubmit', function () { + + submitTheSettle(400); + +}); +function submitTheSettle(checkStatus){ + var remark = $("#tolltor_amount").val(); + if(remark == null || remark == undefined || remark == ''){ + $('#recharge_error').removeClass('display-none').text("请输入备注信息!"); + return; + } + var req = {}; + req.orgId = $("#settleOrgId").val(); + req.beginTime = $("#settleBeginTime").val(); + req.endTime = $("#settleEndTime").val(); + req.checkStatus = checkStatus; + req.remark = remark; + req.sysCode = sysComm.sysCode; + req.settlementMonth = $("#tolltorNum").text(); + req.settlementTotalFee = ($("#tolltorsum").text())*100; + req.settlementActFee = ($("#tolltorsum").text())*100; + var opt = { + method: 'post', + url: dataUrl.util.updateSettlementRecordCheckStatusByOrgIdAndTime(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + if(res.data){ + $('#recharge_error').removeClass('display-none').text("提交成功!"); + $('#parking_forcemodel').modal('hide'); + fun.createTableData(); + fun.summarySettle(); + }else{ + console.log(res); + } + }else{ + console.log(res); + } + } + }; + sysAjax(opt); +} +function getMonthLastDay(date){ + var current=date; + var currentMonth=current.getMonth(); + var nextMonth=++currentMonth; + var nextMonthDayOne =new Date(current.getFullYear(),nextMonth,1); + var minusDate=1000; + return new Date(nextMonthDayOne.getTime()-minusDate); +} +/** + * 客户结算表格请求函数 + * @param params + */ +function settleOrderTableRequest(params) { + var startDate = $('#compa-daterange-btnsta').val(); + if (null != startDate && startDate != '') { + startDate = startDate + '-01 00:00:00'; + startDate = new Date(startDate.replace(new RegExp(/-/gm), "/")) + } + var endDate = startDate; + if (null != endDate && endDate != '') { + endDate = getMonthLastDay(startDate); + } + var orgIds = $("#company_type").val(); + orgIds = JSON.parse(orgIds); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + var req = { + baseRequest: { + pageNum: pageNum, + pageSize: params.data.limit + }, + sysCode: sysComm.sysCode, + orgIds: orgIds, + startDate: startDate, + endDate: endDate + }; + var opt = { + method: 'post', + url: dataUrl.util.querySettlementRecordSumByOrgIdforOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log('客户结算'); + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +/** + * 公司结算表格请求函数 + * @param params + */ +function CompanyOrderTableRequest(params) { + var startDate = $('#compa-daterange-btnsta').val(); + if (null != startDate && startDate != '') { + startDate = startDate + '-01 00:00:00'; + startDate = new Date(startDate.replace(new RegExp(/-/gm), "/")) + } + var endDate = startDate; + if (null != endDate && endDate != '') { + endDate = getMonthLastDay(startDate); + } + var orgIds = $("#company_type").val(); +// orgIds = JSON.parse(orgIds); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + var req = { + baseRequest: { + pageNum: pageNum, + pageSize: params.data.limit + }, + orgIds: [detailOrgId], + sysCode: sysComm.sysCode, + startDate: startDate, + endDate: endDate + }; + var opt = { + method: 'post', + url: dataUrl.util.querySettlementRecordListByOrgIds(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#caryardReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#caryardReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#caryardReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#caryardReport").val("导出"); + } + else { + curCount--; + $("#caryardReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#caryardReport',function (){ + //获取table所有行数据 + var parkLot = $("#companytable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#companytable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var startDate = $('#compa-daterange-btnsta').val(); + if (null != startDate && startDate != '') { + startDate = startDate + '-01 00:00:00'; + startDate = new Date(startDate.replace(new RegExp(/-/gm), "/")) + } + var endDate = startDate; + if (null != endDate && endDate != '') { + endDate = getMonthLastDay(startDate); + } + var orgIds = $("#company_type").val(); + orgIds = JSON.parse(orgIds); + //设置请求参数 + var req = { + sysCode: sysComm.sysCode, + orgIds: orgIds, + startDate: startDate, + endDate: endDate + }; + var startDate = DateUtils.long2String(req.startDate, 7); + var endDate = DateUtils.long2String(req.endDate, 7); + + var url = dataUrl.util.exportSettlementRecordSumByOrgIdforOrgId(); + var forms = exportIncomeDetailFormforbill(url, startDate, endDate, req.orgIds, req.sysCode + ); + forms.submit(); +}); + +function exportIncomeDetailFormforbill(url, startDate, endDate, orgIds, sysCode +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "startDate"; + input.value = startDate; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endDate"; + input2.value = endDate; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "orgIds"; + input3.value = orgIds; + form.appendChild(input3); + + + var input16 = document.createElement("input"); + input16.name = "sysCode"; + input16.value = sysCode; + form.appendChild(input16); + + return form; + +}; diff --git a/assets/pages/scripts/managereport/devicereport.js b/assets/pages/scripts/managereport/devicereport.js new file mode 100644 index 0000000..533fd41 --- /dev/null +++ b/assets/pages/scripts/managereport/devicereport.js @@ -0,0 +1,339 @@ + + +var reportDateTag=1; +$('#devicereport-toptab li').on('click',function () { + var _index = $(this).index() + switch (_index){ + case 0: + $('.parkincome-choosedatemonth').addClass('display-none'); + $('.parkincome-choosedateweek').addClass('display-none'); + $('.parkincome-choosedateday').removeClass('display-none'); + $('#devicereport-toptab li').eq(0).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + + var reportDate=$("#incomepark-daydaterange-btnsta").val(); + $('#eqpDate').text(reportDate); + reportDateTag=1; + tabFunction(reportDateTag); + break; + case 1: + $('.parkincome-choosedateday').addClass('display-none'); + $('.parkincome-choosedatemonth').addClass('display-none'); + $('.parkincome-choosedateweek').removeClass('display-none'); + $('#devicereport-toptab li').eq(1).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + + var reportDate=$("#incomepark-weekdaterange-btnsta").html(); + $('#eqpDate').text(reportDate); + reportDateTag=2; + tabFunction(reportDateTag); + break; + case 2: + $('.parkincome-choosedateday').addClass('display-none'); + $('.parkincome-choosedateweek').addClass('display-none'); + $('.parkincome-choosedatemonth').removeClass('display-none'); + $('#devicereport-toptab li').eq(2).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + + var reportDate=$("#incomepark-monthdaterange-btnsta").val(); + $('#eqpDate').text(reportDate); + reportDateTag=3; + tabFunction(reportDateTag); + break; + } +}); +//切换tcb事件 +function tabFunction(reportDateTag){ + fun.ltsrcreateTableData(); + fun.initEqpOnlineRateTotalData(); +} +var fun= { + init: function () { + fun.dayDate(); + fun.weekDate(); + fun.monthDate(); + fun.ltsrcreateTableData(); + fun.initEqpOnlineRateTotalData(); + fun.queryBtnFunction(); + fun.ptintBtnFunction(); + + var reportDate=$("#incomepark-daydaterange-btnsta").val(); + $('#eqpDate').text(reportDate); + }, + dayDate:function() { + $('#incomepark-daydaterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#incomepark-daydaterange-btnsta').datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + weekDate:function() { + $('#incomepark-weekdaterange-btnsta').attr('data-text',moment().subtract('days', 7).format('YYYY-MM-DD')+'-'+moment().subtract('days', 1).format('YYYY-MM-DD')) + $('#incomepark-weekdaterange-btnsta').html(moment().subtract('days', 7).format('YYYY-MM-DD')+' 至 '+moment().subtract('days', 1).format('YYYY-MM-DD')); + + }, + + monthDate:function() { + $('#incomepark-monthdaterange-btnsta').val(moment().subtract('months', 1).format('YYYY-MM')); + $('#incomepark-monthdaterange-btnsta').datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + ltsrcreateTableData: function () { + $('#devicereport-table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + sortable: true, //是否启用排序 + sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: eqpOnlineRateparktableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'number', + title: '序号', + width: '15%', + align: "left", + formatter:function(value,row,index){ + //return index+1; //序号正序排序从1开始 + var pageSize=$('#devicereport-table').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条 + var pageNumber=$('#devicereport-table').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页 + var operStr=''; + var topNo=pageSize * (pageNumber - 1) + index + 1; + if(topNo==1){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else if(topNo==2){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else if(topNo==3){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else { + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + } + } + }, + { + field: 'plName', + title: '车场名称', + width: '25%', + align: "left", + formatter:commonObj.replacenull + }, + + { + field: 'berthNum', + title: '泊位数量', + width: '20%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'eqpNum', + title: '地磁数量', + width: '20%', + align: "left", + formatter:commonObj.replacenull + + }, + { + field: 'eqpOnlineRate', + title: '地磁平均在线率', + width: '20%', + align: "left", + formatter: fun.eqpOnlineRateFormatter + }, + + ] + }); + }, + //地磁平均在线率 + eqpOnlineRateFormatter: function (value) { + if (value==null||value==undefined||value=='') { + return "-"; + } + return (value*100).toFixed(2)+'%'; + }, + /*获取查询参数*/ + eqpOnlineRateparkgetQueryParam: function () { + + var data = fn.getParkLot(); + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + + } + if (plNos.length < 1) { + plNos.push("-1X"); + } + var _index = $('#devicereport-toptab').find("li.ITD-graynav-topbaractive").attr('reportdatetabtag'); + var reportTabTag=_index; + if(reportTabTag==1){ + var reportDate=$("#incomepark-daydaterange-btnsta").val(); + }else if(reportTabTag==2){ + var reportDate=$("#incomepark-weekdaterange-btnsta").attr('data-text'); + reportDate=reportDate.substring(11,21); + }else if(reportTabTag==3){ + var reportDate=$("#incomepark-monthdaterange-btnsta").val(); + } + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + reportDate: reportDate, + reportTabTag:reportTabTag + + }; + return req; + + }, + // 加载设备在线率所有统计 + initEqpOnlineRateTotalData:function(){ + var req=fun.eqpOnlineRateparkgetQueryParam(); + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + + var reportTabTag=reportDateTag; + var reportTabTagName = ""; + if("1" ==reportTabTag){ + reportTabTagName="日"; + }else if("2" ==reportTabTag){ + reportTabTagName="周"; + }else{ + reportTabTagName="月"; + } + + + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryEqpOnlineRateTotal(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data=res.data; + if(data !=null){ + + var orgName=''; + if(data.orgName != null){ + orgName = data.orgName; + } + $("#orgName").val(orgName); + $("#eqpTitle").text(orgName+" 设备统计"+reportTabTagName+"报"); + + + $("#plNum").text(data.plNum); + $("#berthNum").text(data.berthNum); + $("#eqpNum").text(data.eqpNum); + $("#eqpOnlineRate").text(data.eqpOnlineRate.toFixed(2)); + } + } + } + }; + sysAjax(opt); + + }, + /** + * 查询按钮事件 + */ + queryBtnFunction:function () { + $('#eqpOnlineRateQueryBnt').on('click',function () { + fun.ltsrcreateTableData(); + fun.initEqpOnlineRateTotalData(); + }) + }, + /** + * 打印按钮事件 + */ + ptintBtnFunction:function () { + $('#eqpOnlineRateBtn').on('click',function () { + var req = fun.eqpOnlineRateparkgetQueryParam(); + var userName = fn.getUserName(); + var orgName = $("#orgName").val(); + var url = dataUrl.util.queryEqpOnlineRatePrint(); + + var iWidth=800; //弹出窗口的宽度; + var iHeight=800; //弹出窗口的高度; + var iTop = (window.screen.availHeight-80-iHeight)/2; //获得窗口的垂直位置; + var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置; + var win= window.open('',"设备在线率报表","height="+iHeight+", width="+iWidth+", top="+iTop+", left="+iLeft+",location=no,resizable=no"); + + var html="
    "; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + + html+="
    "; + html += " \ No newline at end of file diff --git a/assets/pages/scripts/operMonFile/guideMon/guidemonitoring.js b/assets/pages/scripts/operMonFile/guideMon/guidemonitoring.js new file mode 100644 index 0000000..3a38b31 --- /dev/null +++ b/assets/pages/scripts/operMonFile/guideMon/guidemonitoring.js @@ -0,0 +1,991 @@ +/** + * Created by mac on 17/11/27. + */ +//setDist(sysComm.cityId); +var height = document.documentElement.clientHeight - 150; + +$('#main-wrap').height(height) +var guideLevel=['零','一','二','三','四','五','六','七']; +//回车事件 +$(function(){ + $(document).keydown(function (event) { + if (event.keyCode == 13) { + $("#ser-button").click(); + } + }); + + //输入框提示 + // searchOption.ini(); +}); + +/*搜索*/ +$('#ser-button').on('click', function () { + commonClass.setPopupVisible(false); + var req = getQueryParam(); + req.flag=0;//0-查询按钮触发,1-页码触发,-1后一页,-2 前一页 + queryGuideByCondition(req); + //songcxa + $(".cancelBtn").css("display", "block"); +}); +/* + @ songcxa + @ 搜索功能 +*/ +var searchOption = { + ini: function () { + + var searchBox = $('#ser-input'); + /* + @ inputID输入框id + @ popID提示框id + @ queryOption(url、queryParames请求参数post、itemsSelectCallback提示框选择事件) + */ + var option = { + url: dataUrl.util.listGuideScreenByAreaCodes(), + async: false, + queryParames: function () { + return getQueryParam(); + }, + itemsSelectCallback: function (ev) { + searchBox.val(ev); + } + }; + commonClass.popupObject("ser-input", "ser-resPanel", option); + }, +} +//获取停车场信息 +getParkingLotGeo(); +function getParkingLotGeo () { + var parkLot = fn.getParkLot(); + var plnos = []; + $.each(parkLot, function (index, item) { + plnos.push(item.code); + }) + plNos = []; + + var req = { + sysCode: sysComm.sysCode, + plNos: plnos, + + } + var opt = { + method: 'post', + url: dataUrl.util.queryParkingLotGeoByPlNos(), + async: false, + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var data = res.data; + if(data.length > 0){ + firstPark = data[0]; + } + if(data.length > 1){ + firstPark = data[1]; + } + setCityInfo(); + map = new BMap.Map('allmap', {enableMapClick: false}); + //第1步:设置地图中心点,当前城市 + point = new BMap.Point(sysComm.point_lng, sysComm.point_lat); + //第2步:初始化地图,设置中心点坐标和地图级别。 + map.centerAndZoom(point, 13); + map.setCurrentCity(sysComm.cityName); // 设置地图显示的城市 此项是必须设置的 + //第3步:启用滚轮放大缩小 + map.enableScrollWheelZoom(true); + /*map.addEventListener("click", function () { + colseInfoWindow(); + });*/ + //加载地图上的诱导屏 + getGuideMapInfo(); + //默认全部 + $("#ser-button").click(); + } + } + } + sysAjax(opt); + +} +function setDist(cityId) { + $(".select").empty(); + cityId+=''; + var allDist = []; + var distArray = cityData.dist[cityId]; + var html=''; + $.each(distArray,function (index,item) { + allDist.push(item.id); + html+="
  • "+item.areaName+"
  • " + + }); + $(".select").html("

    全部

    • 全部
    • "+html+"
    "); + selectOptionFun(); +} +//设置中心城市信息 +function setCityInfo(){ + + sysComm.cityId = firstPark.plCityId; + sysComm.cityName = firstPark.plCityName; + sysComm.provId = firstPark.plProvinceId; + sysComm.point_lng = firstPark.lonId; + sysComm.point_lat = firstPark.latId; + + setDist(sysComm.cityId); + $(".cityName").text(sysComm.cityName); +} +$(function(){ + $(".select p").click(function(e){ + $(".select1").removeClass('open'); + $(".select").toggleClass('open'); + e.stopPropagation(); + }); + + $(".content .select ul li").click(function(e){ + var _this=$(this); + $(".select > p").text(_this.text()); + $(".select > p").attr('data-value',_this.attr('data-value')); + _this.addClass("Selected").siblings().removeClass("Selected"); + $(".select").removeClass("open"); + e.stopPropagation(); + }); + + $(document).on('click',function(){ + $(".select").removeClass("open"); + }); + + $(".select1 p").click(function(e){ + $(".select").removeClass('open'); + $(".select1").toggleClass('open'); + e.stopPropagation(); + }); + + $(".content .select1 ul li").click(function(e){ + var _this=$(this); + $(".select1 > p").text(_this.text()); + $(".select1 > p").attr('data-value',_this.attr('data-value')); + _this.addClass("Selected").siblings().removeClass("Selected"); + $(".select1").removeClass("open"); + e.stopPropagation(); + }); + + $(document).on('click',function(){ + $(".select1").removeClass("open"); + }); +}); +function selectOptionFun(){ + $(".select p").click(function(e){ + $(".select1").removeClass('open'); + $(".select").toggleClass('open'); + e.stopPropagation(); + }); + + $(".content .select ul li").click(function(e){ + var _this=$(this); + $(".select > p").text(_this.text()); + $(".select > p").attr('data-value',_this.attr('data-value')); + _this.addClass("Selected").siblings().removeClass("Selected"); + $(".select").removeClass("open"); + e.stopPropagation(); + }); + + $(document).on('click',function(){ + $(".select").removeClass("open"); + }); + + $(".select1 p").click(function(e){ + $(".select").removeClass('open'); + $(".select1").toggleClass('open'); + e.stopPropagation(); + }); + + $(".content .select1 ul li").click(function(e){ + var _this=$(this); + $(".select1 > p").text(_this.text()); + $(".select1 > p").attr('data-value',_this.attr('data-value')); + _this.addClass("Selected").siblings().removeClass("Selected"); + $(".select1").removeClass("open"); + e.stopPropagation(); + }); + + $(document).on('click',function(){ + $(".select1").removeClass("open"); + }); +} +function getQueryParam(){ + var serVal = $.trim($('#ser-input').val()); + var countryIds = $(".select .Selected").attr('data-value'); + var levels = $(".select1 .Selected").attr('data-value'); + var countryId = []; + var level = []; + if (countryIds) { + countryId = countryIds.split(','); + } + if(levels){ + level = levels.split(','); + } + if (levels.length > 0 || serVal != '') { + $("#guidance-level").hide(); + $(".ser-result-wrap").addClass("ser-result-wrap-noTop"); + } + else { + $(".ser-result-wrap").removeClass("ser-result-wrap-noTop"); + $("#guidance-level").show(); + } + var req = { + queryStr: serVal, + parkNameOrAddress:serVal, + areaCodes: countryId, + dataState:1, + levels: level, + baseRequest: { + pageNum: 1, + pageSize: 10 + }, + + flag:0, + curPage:0, + index:0, + selector:null + } + return req; +} +//根据条件分页查询诱导屏 +function queryGuideByCondition(req){ + clearGuideScreen(); + map.centerAndZoom(point, 13); + var opt = { + method: "post", + data: JSON.stringify(req), + url: dataUrl.util.listGuideScreenByAreaCodes(), + success: function (res, xhr, status) { + console.log(res) + //清空内容 + $('#guide_result').empty(); + if (res.code == '8888') { + var pageCount = res.data.pages == undefined || null == res.data.pages ? 0 : res.data.pages; + createHtml(res.data); + var flag = req.flag; + //icon_load(pageCount); + if(flag==0){//查询 + icon_load(pageCount); + } + else if(flag==1){//页码 + num_click(pageCount,req.curPage,req.selector); + } + else if(flag==-1){//下一页 + pageDown_click(pageCount,req.curPage,req.index); + } + else if(flag==-2){//上一页 + pageUp_click(pageCount,req.curPage,req.index); + } + } + } + } + sysAjax(opt); + //加载诱导屏数量 + var cond = { + queryStr: req.queryStr, + areaCodes: req.areaCodes, + dataState:1, + levels: req.levels + }; + var tempOpt = { + method: "post", + data: JSON.stringify(cond), + url: dataUrl.util.statisticsGuideScreenLevelByAreaCodes(), + success: function (data) { + if (data.code == '8888') { + $("#guidance-level_1").text(0); + $("#guidance-level_2").text(0); + $("#guidance-level_3").text(0); + $.each(data.data, function (index, domEle) { + $('#guidance-level_' + domEle.level).text(domEle.num); + }); + } + } + } + sysAjax(tempOpt); + + //加载地图marker + getGuideMapInfo(); + + //查询所有的,不分页 + if(req.flag == 0){ + req.baseRequest.pageNum = 1; + req.baseRequest.pageSize = 0; + var opt = { + method: "post", + data: JSON.stringify(req), + url: dataUrl.util.listGuideScreenByAreaCodes(), + success: function (res, xhr, status) { + + if (res.code == '8888') { + + var datas = (res.data.dataList)==null?[]:(res.data.dataList); + var guideDataTemp = []; + $.each(guideData, function (index, item) { + $.each(datas, function(_index,_item) { + if(_item.guideNo == item.guideNo){ + guideDataTemp.push(item); + } + }); + }); + drawMarker(guideDataTemp); + + } + } + } + sysAjax(opt); + } +} +$(function(){ + $(".select p").click(function(e){ + $(".select1").removeClass('open'); + $(".select").toggleClass('open'); + e.stopPropagation(); + }); + + $(".content .select ul li").click(function(e){ + var _this=$(this); + $(".select > p").text(_this.text()); + $(".select > p").attr('data-value',_this.attr('data-value')); + _this.addClass("Selected").siblings().removeClass("Selected"); + $(".select").removeClass("open"); + e.stopPropagation(); + }); + + $(document).on('click',function(){ + $(".select").removeClass("open"); + }); + + $(".select1 p").click(function(e){ + $(".select").removeClass('open'); + $(".select1").toggleClass('open'); + e.stopPropagation(); + }); + + $(".content .select1 ul li").click(function(e){ + var _this=$(this); + $(".select1 > p").text(_this.text()); + $(".select1 > p").attr('data-value',_this.attr('data-value')); + _this.addClass("Selected").siblings().removeClass("Selected"); + $(".select1").removeClass("open"); + e.stopPropagation(); + }); + + $(document).on('click',function(){ + $(".select1").removeClass("open"); + }); +}); +/*function createHtml(){ + var html = ''; + for(var i=0;i<10;i++){ + html+='
  • '+ + '
    '+ + '
    1.创业路南口
    '+ + '
    停车场数:5
    '+ + '
    空闲车位总数:50000
    '+ + '
    诱导级别:一级
    '+ + '
    '+ + '
    '+ + '
  • '; + } + + $('#result').empty().html(html); +};*/ +function createHtml(data){ + if(data.dataList==null||data.dataList.length<1){ + $('#guide_result').empty().text('没有搜索到匹配内容'); + $('#pageGro').hide(); + $('#ser-wrap').show(); + return; + } + var html = ''; + var list = data.dataList == undefined || data.dataList == null ? [] : data.dataList; + var i = 1; + $.each(list, function (index, item) { + var guideName = item.guideName; + var guideNo = item.guideNo; + var parkingNum = item.parkingNum; + if(parkingNum==null){ + parkingNum = 0; + } + var freeBerthNum = item.freeBerthNum; + var level = item.level; + var picturePath = item.picturePath; + var x = item.lonId; + var y = item.latId; + //html+='
  • '+ + // '
    '+ + // '
    '+(i++)+'.'+guideName+'
    '+ + // '
    停车场数:'+parkingNum+'
    '+ + // '
    空闲车位总数:'+freeBerthNum+'
    '+ + // '
    诱导级别:'+guideLevel[level]+'级
    '+ + // '
    '+ + // '
    '+''+'
    '+ + // '
  • '; + //new + var no = ""; + html+='
  • '+ + '
    ' + + '
    ' + no + '' + commonClass.cutString(guideName, 14) + '
    ' + + '
    停车场数:'+parkingNum+'
    '+ + '
    空闲车位总数:'+freeBerthNum+'
    '+ + '
    诱导级别:' + guideLevel[level] + '级
    ' + + '
    地址 : ' + commonClass.cutString(item.address,15) + '
    ' + + '
    '+ + '
  • '; + /*if (level==1){ + html+='
    '+''+'
    '; + }else if(level==2){ + html+='
    '+''+'
    '; + }else { + html+='
    '+''+'
    '; + }*/ + + }); + + $('#guide_result').empty().html(html); + $('#ser-wrap').show(); + $('#pageGro').show(); + + //滚动 + $('#guide_result').animate({ + scrollTop: $('#guide_result').offset().top-1000 + }, 150); + $('#guide_result').empty().html(html); + $('#ser-wrap').show(); + $('#pageGro').show(); +}; + +//点击分页按钮触发 +$(document).on("click","#pageGro li",function(){ + var pageNum = parseInt($(this).html());//获取当前页数 + var selector = $(this); + + var req = getQueryParam(); + req.baseRequest.pageNum = pageNum; + req.curPage = pageNum; + req.selector = selector; + req.flag = 1; + queryGuideByCondition(req); +}); + +//点击上一页触发 +$(document).on("click","#pageGro .pageUp",function(){ + var pageNum = parseInt($("#pageGro li.on").html());//获取当前页 + var index = $("#pageGro ul li.on").index();//获取index + + var req = getQueryParam(); + req.baseRequest.pageNum = pageNum-1; + req.curPage = pageNum; + req.index = index; + req.flag = -2; + queryGuideByCondition(req); +}); + +//点击下一页触发 +$(document).on("click","#pageGro .pageDown",function(){ + var pageNum = parseInt($("#pageGro li.on").html());//获取当前页 + var index = $("#pageGro ul li.on").index();//获取index + + var req = getQueryParam(); + req.baseRequest.pageNum = pageNum+1; + req.curPage = pageNum; + req.index = index; + req.flag = -1; + queryGuideByCondition(req); + +}); + + +//地图 +//地图 +var clear_flag = false; +var map; //Map实例 +//后台传过来 +// var currentLat = 118.922316; +// var currentLon = 42.25953; + +//第4步:向地图中添加缩放控件 +var ctrlNav = new window.BMap.NavigationControl({ + // 靠右上角位置 + anchor: BMAP_ANCHOR_TOP_RIGHT, + // LARGE类型 + type: BMAP_NAVIGATION_CONTROL_ZOOM, + //偏离值 + offset: new BMap.Size(55, 80) +}); +// map.addControl(ctrlNav); +//第5步:检测浏览器兼容 +function checkhHtml5() { + if (typeof(Worker) === "undefined") { + if (navigator.userAgent.indexOf("MSIE 9.0") <= 0) { + alert("定制个性地图示例:IE9以下不兼容,推荐使用百度浏览器、chrome、firefox、safari、IE10"); + } + + } +} +checkhHtml5(); +//诱导屏 渲染 +guideData=[]; +//getGuideMapInfo(); +function drawMarker(guideDatas) { + //清除以前的点位 + map.clearOverlays(); + //第7步:绘制点 + var marker = []; + var newpoiX = null;//坐标 + var newpoiY = null; + var guideNo = null;//编号 + var popLevel = null;//诱导级别 + var popRule = null;//空闲车位 + + for (var i = 0; i < guideDatas.length; i++) { + newpoiX = guideDatas[i].pointX; + newpoiY = guideDatas[i].pointY; + guideNo = guideDatas[i].guideNo; + popLevel = guideDatas[i].level; + popRule = guideDatas[i].rule; + // console.log(popLevel); + var point = new BMap.Point(newpoiX, newpoiY); + // addMarker(point) + var newRule = popRule; + + if (popLevel == 1) { + var myIcon = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/guidance_1.png", + new BMap.Size(32,24), { + offset: new BMap.Size(0, 24), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon}); + map.addOverlay(marker[i]); + } else if (popLevel==2) { + var myIcon2 = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/guidance_2.png", + new BMap.Size(32,24), { + offset: new BMap.Size(0, 24), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon2}); + map.addOverlay(marker[i]); + + } else if (popLevel==3) { + var myIcon3 = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/guidance_3.png", + new BMap.Size(32,24), { + offset: new BMap.Size(0, 24), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon3}); + map.addOverlay(marker[i]); + + } + + + + marker[i].popLevel = guideDatas[i].level; + marker[i].guideNo = guideDatas[i].guideNo; + marker[i].newpoiX = guideDatas[i].pointX; + marker[i].newpoiY = guideDatas[i].pointY; + marker[i].rule = guideDatas[i].rule; + + marker[i].addEventListener("click", function (n) { + + var newpoiY = n.target.newpoiY; + var guideNo = n.target.guideNo; + var newpoiX = n.target.newpoiX; + var popLevel = Number(n.target.popLevel); + var rule=n.target.rule; + map.clearOverlays(); + addInfoWindow(guideNo, popLevel, newpoiX, newpoiY) + + }); + + }; + removeCluster(marker); +} +// 获取位置 +function theLocation(x, y, guideNo) { + // map.clearOverlays(); + var new_point = new BMap.Point(x, y); + map.panTo(new_point); + map.centerAndZoom(new_point, 16); + addInfoWindow(guideNo, null, x, y); + +} +//点击左侧列表显示相应诱导icon +$(document).on('click', '#guide_result >li', function () { + //$(this).addClass('clickActive').siblings('li').removeClass('clickActive'); + var x = $(this).attr("x-value"); + var y = $(this).attr("y-value"); + var guideNo = $(this).attr("data-value"); + theLocation(x, y, guideNo); + var guideDataTemp = []; + $.each(guideData, function (index, item) { + if(guideNo == item.guideNo){ + guideDataTemp.push(item); + } + }); + drawMarker(guideDataTemp); +}); +//三个级别诱导弹窗 +function addInfoWindow(guideNo, popLevel, newpoiX, newpoiY) { + var guideNO = guideNo; + var level = Number(popLevel); + var point = new BMap.Point(newpoiX, newpoiY); + var req = { + guideNo: guideNO, + sysCode: sysComm.sysCode + }; + var opt = { + data: JSON.stringify(req), + url: dataUrl.util.getGuideScreenInfo(), + method: "POST", + success: function (res, status, xhr) { + var data = res.data; + if (res.code === "8888") { + level = data.level; + var showPic = data.showPic; + if(showPic!=undefined && showPic==true){ + alertFirstLevelGuideInfo(data, point); + }else{ + if (1 == level) { + alertFirstLevelGuideInfo(data, point); + } else if (2 == level) { + alertSecondLevelGuideInfo(data, point); + } else if (3 == level) { + alertThridLevelGuideInfo(data, point); + } else { + console.log("未知的诱导屏等级 level=" + level); + } + } + + } else { + console.log("服务请求报错:code=" + res.code + "errMsg=" + res.msg + "-" + res.errMsg); + } + + + } + } + + sysAjax(opt); + $('.BMapLabel').empty(); + + +} +function removeCluster(marker) { + if(clear_flag){ + markerClusterer.clearMarkers(); //此步骤需要 + } + markerClusterer = new BMapLib.MarkerClusterer(map, + { + markers:marker, + styles : [{ + url: '../../assets/pages/scripts/operMonFile/img/map/guidescreen.png', + size: new BMap.Size(53, 52), + textColor: '#fff', + fontSize:'18px' + }], + }); + markerClusterer.setMaxZoom(13); + clear_flag = true; +// window.Bmap.tmpMarkerClusterer = markerClusterer; +} +//map.addEventListener("click", function () { +// colseInfoWindow() +//}); +function colseInfoWindow() { + $(".pop-common").css("display", "none"); +} +//获取地图上诱导屏的信息 +function getGuideMapInfo() { + var cond = getQueryParam(); + cond.baseRequest.pageSize=300; + var tempOpt = { + method: "post", + data: JSON.stringify(cond), + url: dataUrl.util.listGuideScreenByAreaCodes(), + success: function (data) { + if (data.code == '8888') { + guidanceMapInfo(data.data.dataList); + } + else { + console.log("服务请求报错:code=" + data.code + "errMsg=" + data.msg + "-" + data.errMsg); + } + } + } + sysAjax(tempOpt); + + + +} +//将诱导屏位置数据放入List中 +function guidanceMapInfo(data) { + + //map.clearOverlays(); + guideData = []; + // console.log(data) + if(data!=null){ + $.each(data, function (index, domEle) { + var freeBerthNum = domEle.freeBerthNum; + var berthNum = domEle.berthNum; + if (freeBerthNum == null) { + freeBerthNum = 0; + } + if (berthNum == null || berthNum == 0) { + freeBerthNum = 0; + berthNum = 1; + } + guideData.push({ + 'guideNo': domEle.guideNo, 'pointX': domEle.lonId, 'pointY': domEle.latId, + 'level': domEle.level, 'rule': freeBerthNum / berthNum + }); + }); + } + + //console.log("地图上的数据" + JSON.stringify(guideData)); + //加载地图位置气泡 + drawMarker(guideData); +}; +//弹出一级诱导信息 +function alertFirstLevelGuideInfo(data, point) { + console.log(data) + clearGuideScreen(); + $("#guidance1-pop").empty(); + var guideHtml = ''; + if(undefined == data.filePaths ||null == data.filePaths){ + guideHtml+='
    '; + var myLabel1 = new BMap.Label("
    " + guideHtml + "
    ", { + offset: new BMap.Size(-380, -250), //label的偏移量,为了让label的中心显示在点上 + position: point + }); + myLabel1.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + //height: "220px", + // width: "350px", + padding: "5px", + whiteSpace: "normal", + //fontFamily: "微软雅黑", + zIndex: "1000", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px" + }); + map.addOverlay(myLabel1, point); + map.panTo(point); + }else{ + if(data.filePaths.length>1){ + guideHtml+='
    '; + var myLabel1 = new BMap.Label("
    " + guideHtml + "
    ", { + offset: new BMap.Size(-380, -250), //label的偏移量,为了让label的中心显示在点上 + position: point + }); + myLabel1.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + //height: "220px", + // width: "350px", + padding: "5px", + whiteSpace: "normal", + //fontFamily: "微软雅黑", + zIndex: "1000", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px" + }); + map.addOverlay(myLabel1, point); + map.panTo(point); + + var obt1 = document.getElementById("guiico_left"); + var obt2 = document.getElementById("guiico_right"); + var oImg = document.getElementById("guilevel_img"); + var index = 0; + function funTab() { + oImg.src = data.filePaths[index]; + } + funTab(); + obt1.onclick = prevImg; + obt2.onclick = nextImg; + function nextImg() { + // $('.pop-common').css('display','block'); + index++; + if(index > data.filePaths.length - 1) { + index = 0; + } + funTab(); + }; + function prevImg() { + + index--; + if(index < 0) { + index = data.filePaths.length - 1;//那么下标修改为最大下标 这样就可以循环显示图片 + } + funTab();//显示图片和文字信息 + }; + var timers; + timers=setInterval(function() { + index++; + if(index > data.filePaths.length - 1) { + index = 0; + } + funTab(); + },3000); + //给文档绑定一个按键事件, 来响应键盘的按键 + document.onkeydown = function(event) { + //兼容主流浏览器的写法 获取按键事件 + var e = event || window.event || arguments.callee.caller.arguments[0]; + if(e && e.keyCode == 37) { // 按 左方向键 (37 是←方向键码值) + prevImg();//这里是方法调用 ,方法名后要加括号, 立刻调用方法 + } + if(e && e.keyCode == 39) { // 按 右方向键(39 是→方向键码值) + nextImg();//这里是方法调用 ,方法名后要加括号, 立刻调用方法 + } + }; + + }else { + guideHtml+='
    '; + var myLabel1 = new BMap.Label("
    " + guideHtml + "
    ", { + offset: new BMap.Size(-380, -250), //label的偏移量,为了让label的中心显示在点上 + position: point + }); + myLabel1.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + //height: "220px", + // width: "350px", + padding: "5px", + whiteSpace: "normal", + //fontFamily: "微软雅黑", + zIndex: "1000", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px" + }); + map.addOverlay(myLabel1, point); + map.panTo(point); + } + + } + + +} +//弹出二级诱导信息 +function alertSecondLevelGuideInfo(data, point) { + clearGuideScreen(); + $("#guidance2-pop").empty(); + var guideInfos = data.guideInfos; + var guideHtml = '
    ' + + '
      '; + + if (null != guideInfos) { + $.each(guideInfos, function (index, item) { + guideHtml += '
    • ' + item.plName + '
      '; + if (item.guidePoint == 1) { + guideHtml += '
      ' + } else if (item.guidePoint == 2) { + guideHtml += '
      ' + } else if (item.guidePoint == 3) { + guideHtml += '
      ' + } else if (item.guidePoint == 4) { + guideHtml += '
      ' + } + guideHtml += '
      ' + + '
      ' + item.freeNum + '
    • '; + }) + } + guideHtml += '
    '; + var myLabel2 = new BMap.Label(guideHtml, { + offset: new BMap.Size(20, -180), //label的偏移量,为了让label的中心显示在点上 + position: point + }); + myLabel2.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + //height: "220px", + // width: "350px", + padding: "5px", + whiteSpace: "normal", + //fontFamily: "微软雅黑", + zIndex: "1000", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px" + }); + map.addOverlay(myLabel2, point); + map.panTo(point); +} +//弹出三级诱导信息 +function alertThridLevelGuideInfo(data, point) { + clearGuideScreen(); + $("#guidance3-pop").empty(); + //是否有限高提示 + var highLimitStatus = data.highLimitStatus; + //是否有急转弯提示 + var sharpTurnStatus = data.sharpTurnStatus; + //是否有楼层指示 + var floorStatus = data.floorStatus; + //时间制式 + var timeSystem = data.timeSystem + ''; + + + + var guideHtml = '
    '+data.plName+'
    ' + + '
    ' + + '
    ' + (data.floor == null ? '--' : data.floor ) + '
    ' + + '
    空闲
    ' + + '
    ' + (data.freeNum == null ? '0' : data.freeNum ) + '
    ' + + '
    '; + //判断是否有楼层限高 + /*if (highLimitStatus == 1) { + guideHtml += '
    ' + data.highLimitNum + '
    ' + }*/ + //判断时间营业时间, + if (null != timeSystem) { + if (timeSystem.length > 6) { + guideHtml += '
    ' + timeSystem + '
    ' + } else { + guideHtml += '
    ' + } + } + + /*if (sharpTurnStatus == 1) { + guideHtml += '
    ' + }*/ + + // $("#guidance3-pop").html(guideHtml); + var myLabel3 = new BMap.Label(guideHtml, { + offset: new BMap.Size(20, -180), //label的偏移量,为了让label的中心显示在点上 + position: point + }); + myLabel3.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + //height: "220px", + // width: "350px", + padding: "5px", + whiteSpace: "normal", + zIndex: "1000", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px" + }); + map.addOverlay(myLabel3, point); + map.panTo(point); +} +//清除弹出的诱导屏 +function clearGuideScreen(){ + $("#guidance1-pop").hide(); + $("#guidance2-pop").hide(); + $("#guidance3-pop").hide(); +} +//关闭 弹窗 按钮事件 +documentBindFunc.on('click','.guipop_close',function () { + colseInfoWindow(); +}); + +var flag = true; +$('#main-left').on('click',function () { + if(flag){ + $('#main-wrap').animate({'right':'-328px'}); + $(this).addClass('click_right'); + flag = false; + }else{ + $('#main-wrap').animate({'right':'18px'}); + $(this).removeClass('click_right'); + flag = true; + } + +}); diff --git a/assets/pages/scripts/operMonFile/img/24h.png b/assets/pages/scripts/operMonFile/img/24h.png new file mode 100644 index 0000000..c1209f7 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/24h.png differ diff --git a/assets/pages/scripts/operMonFile/img/caryard-basic-ifo-fees-wrap.png b/assets/pages/scripts/operMonFile/img/caryard-basic-ifo-fees-wrap.png new file mode 100644 index 0000000..77bda6f Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/caryard-basic-ifo-fees-wrap.png differ diff --git a/assets/pages/scripts/operMonFile/img/caryard-basic-ifo.png b/assets/pages/scripts/operMonFile/img/caryard-basic-ifo.png new file mode 100644 index 0000000..b0eb409 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/caryard-basic-ifo.png differ diff --git a/assets/pages/scripts/operMonFile/img/caryard-card-wrap.png b/assets/pages/scripts/operMonFile/img/caryard-card-wrap.png new file mode 100644 index 0000000..4482e7d Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/caryard-card-wrap.png differ diff --git a/assets/pages/scripts/operMonFile/img/caryard-parking-ifo.png b/assets/pages/scripts/operMonFile/img/caryard-parking-ifo.png new file mode 100644 index 0000000..59160d5 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/caryard-parking-ifo.png differ diff --git a/assets/pages/scripts/operMonFile/img/check-status0.png b/assets/pages/scripts/operMonFile/img/check-status0.png new file mode 100644 index 0000000..8f1e03e Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/check-status0.png differ diff --git a/assets/pages/scripts/operMonFile/img/check-status1.png b/assets/pages/scripts/operMonFile/img/check-status1.png new file mode 100644 index 0000000..b8f2b98 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/check-status1.png differ diff --git a/assets/pages/scripts/operMonFile/img/common/guidance-level1.png b/assets/pages/scripts/operMonFile/img/common/guidance-level1.png new file mode 100644 index 0000000..17b3bdd Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/common/guidance-level1.png differ diff --git a/assets/pages/scripts/operMonFile/img/common/guidance-level2.png b/assets/pages/scripts/operMonFile/img/common/guidance-level2.png new file mode 100644 index 0000000..d7a967e Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/common/guidance-level2.png differ diff --git a/assets/pages/scripts/operMonFile/img/common/guidance-level3.png b/assets/pages/scripts/operMonFile/img/common/guidance-level3.png new file mode 100644 index 0000000..661b676 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/common/guidance-level3.png differ diff --git a/assets/pages/scripts/operMonFile/img/common/markers.png b/assets/pages/scripts/operMonFile/img/common/markers.png new file mode 100644 index 0000000..c6b9c43 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/common/markers.png differ diff --git a/assets/pages/scripts/operMonFile/img/common/searchbox.png b/assets/pages/scripts/operMonFile/img/common/searchbox.png new file mode 100644 index 0000000..530abdd Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/common/searchbox.png differ diff --git a/assets/pages/scripts/operMonFile/img/guidance_1.png b/assets/pages/scripts/operMonFile/img/guidance_1.png new file mode 100644 index 0000000..c1907f2 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guidance_1.png differ diff --git a/assets/pages/scripts/operMonFile/img/guidance_2.png b/assets/pages/scripts/operMonFile/img/guidance_2.png new file mode 100644 index 0000000..4a8db41 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guidance_2.png differ diff --git a/assets/pages/scripts/operMonFile/img/guidance_3.png b/assets/pages/scripts/operMonFile/img/guidance_3.png new file mode 100644 index 0000000..3fa069a Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guidance_3.png differ diff --git a/assets/pages/scripts/operMonFile/img/guidance_bg1.png b/assets/pages/scripts/operMonFile/img/guidance_bg1.png new file mode 100644 index 0000000..0a6b63b Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guidance_bg1.png differ diff --git a/assets/pages/scripts/operMonFile/img/guidance_bg2.png b/assets/pages/scripts/operMonFile/img/guidance_bg2.png new file mode 100644 index 0000000..acdbe14 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guidance_bg2.png differ diff --git a/assets/pages/scripts/operMonFile/img/guidance_bg3.png b/assets/pages/scripts/operMonFile/img/guidance_bg3.png new file mode 100644 index 0000000..8cfc57a Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guidance_bg3.png differ diff --git a/assets/pages/scripts/operMonFile/img/guide_first_img_error.png b/assets/pages/scripts/operMonFile/img/guide_first_img_error.png new file mode 100644 index 0000000..61e62a3 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guide_first_img_error.png differ diff --git a/assets/pages/scripts/operMonFile/img/guideico_level1.jpg b/assets/pages/scripts/operMonFile/img/guideico_level1.jpg new file mode 100644 index 0000000..78becf2 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guideico_level1.jpg differ diff --git a/assets/pages/scripts/operMonFile/img/guideico_level2.jpg b/assets/pages/scripts/operMonFile/img/guideico_level2.jpg new file mode 100644 index 0000000..31ed28e Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guideico_level2.jpg differ diff --git a/assets/pages/scripts/operMonFile/img/guideico_level3.jpg b/assets/pages/scripts/operMonFile/img/guideico_level3.jpg new file mode 100644 index 0000000..50c6ce3 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guideico_level3.jpg differ diff --git a/assets/pages/scripts/operMonFile/img/guidepop_leftico.png b/assets/pages/scripts/operMonFile/img/guidepop_leftico.png new file mode 100644 index 0000000..0c31b25 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guidepop_leftico.png differ diff --git a/assets/pages/scripts/operMonFile/img/guidepop_rightico.png b/assets/pages/scripts/operMonFile/img/guidepop_rightico.png new file mode 100644 index 0000000..9a81000 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guidepop_rightico.png differ diff --git a/assets/pages/scripts/operMonFile/img/guipop_closeico.png b/assets/pages/scripts/operMonFile/img/guipop_closeico.png new file mode 100644 index 0000000..c63227d Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/guipop_closeico.png differ diff --git a/assets/pages/scripts/operMonFile/img/index-card-title.png b/assets/pages/scripts/operMonFile/img/index-card-title.png new file mode 100644 index 0000000..3547757 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/index-card-title.png differ diff --git a/assets/pages/scripts/operMonFile/img/legendMap_icon1.png b/assets/pages/scripts/operMonFile/img/legendMap_icon1.png new file mode 100644 index 0000000..7580f61 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/legendMap_icon1.png differ diff --git a/assets/pages/scripts/operMonFile/img/legendMap_icon2.png b/assets/pages/scripts/operMonFile/img/legendMap_icon2.png new file mode 100644 index 0000000..2b4b3c9 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/legendMap_icon2.png differ diff --git a/assets/pages/scripts/operMonFile/img/legendMap_icon3.png b/assets/pages/scripts/operMonFile/img/legendMap_icon3.png new file mode 100644 index 0000000..28efd57 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/legendMap_icon3.png differ diff --git a/assets/pages/scripts/operMonFile/img/main-left-click.png b/assets/pages/scripts/operMonFile/img/main-left-click.png new file mode 100644 index 0000000..5afd2ba Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/main-left-click.png differ diff --git a/assets/pages/scripts/operMonFile/img/main-left.png b/assets/pages/scripts/operMonFile/img/main-left.png new file mode 100644 index 0000000..10102f2 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/main-left.png differ diff --git a/assets/pages/scripts/operMonFile/img/map/PDA.png b/assets/pages/scripts/operMonFile/img/map/PDA.png new file mode 100644 index 0000000..32d8d95 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/map/PDA.png differ diff --git a/assets/pages/scripts/operMonFile/img/map/guidescreen.png b/assets/pages/scripts/operMonFile/img/map/guidescreen.png new file mode 100644 index 0000000..329ff52 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/map/guidescreen.png differ diff --git a/assets/pages/scripts/operMonFile/img/map/index.png b/assets/pages/scripts/operMonFile/img/map/index.png new file mode 100644 index 0000000..41db337 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/map/index.png differ diff --git a/assets/pages/scripts/operMonFile/img/maxheight_2m.png b/assets/pages/scripts/operMonFile/img/maxheight_2m.png new file mode 100644 index 0000000..c3f8aa0 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/maxheight_2m.png differ diff --git a/assets/pages/scripts/operMonFile/img/offlineIcon.png b/assets/pages/scripts/operMonFile/img/offlineIcon.png new file mode 100644 index 0000000..40b142f Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/offlineIcon.png differ diff --git a/assets/pages/scripts/operMonFile/img/onlineIcon.png b/assets/pages/scripts/operMonFile/img/onlineIcon.png new file mode 100644 index 0000000..65b4e7c Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/onlineIcon.png differ diff --git a/assets/pages/scripts/operMonFile/img/parkData-icon.png b/assets/pages/scripts/operMonFile/img/parkData-icon.png new file mode 100644 index 0000000..2309870 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/parkData-icon.png differ diff --git a/assets/pages/scripts/operMonFile/img/parkIcon1.png b/assets/pages/scripts/operMonFile/img/parkIcon1.png new file mode 100644 index 0000000..4ee9637 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/parkIcon1.png differ diff --git a/assets/pages/scripts/operMonFile/img/parkIcon2.png b/assets/pages/scripts/operMonFile/img/parkIcon2.png new file mode 100644 index 0000000..bcfe89b Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/parkIcon2.png differ diff --git a/assets/pages/scripts/operMonFile/img/parkIcon3.png b/assets/pages/scripts/operMonFile/img/parkIcon3.png new file mode 100644 index 0000000..a09f156 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/parkIcon3.png differ diff --git a/assets/pages/scripts/operMonFile/img/parkName_icon.png b/assets/pages/scripts/operMonFile/img/parkName_icon.png new file mode 100644 index 0000000..1b40ca3 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/parkName_icon.png differ diff --git a/assets/pages/scripts/operMonFile/img/parkPopicon.png b/assets/pages/scripts/operMonFile/img/parkPopicon.png new file mode 100644 index 0000000..f12c715 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/parkPopicon.png differ diff --git a/assets/pages/scripts/operMonFile/img/pda-icon.png b/assets/pages/scripts/operMonFile/img/pda-icon.png new file mode 100644 index 0000000..cba2af5 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/pda-icon.png differ diff --git a/assets/pages/scripts/operMonFile/img/pdaIco.png b/assets/pages/scripts/operMonFile/img/pdaIco.png new file mode 100644 index 0000000..f5975f8 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/pdaIco.png differ diff --git a/assets/pages/scripts/operMonFile/img/pdaIco1.png b/assets/pages/scripts/operMonFile/img/pdaIco1.png new file mode 100644 index 0000000..e60399c Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/pdaIco1.png differ diff --git a/assets/pages/scripts/operMonFile/img/pdaIcon.png b/assets/pages/scripts/operMonFile/img/pdaIcon.png new file mode 100644 index 0000000..755eb60 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/pdaIcon.png differ diff --git a/assets/pages/scripts/operMonFile/img/poly_icon.png b/assets/pages/scripts/operMonFile/img/poly_icon.png new file mode 100644 index 0000000..45761e1 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/poly_icon.png differ diff --git a/assets/pages/scripts/operMonFile/img/secIcon.png b/assets/pages/scripts/operMonFile/img/secIcon.png new file mode 100644 index 0000000..06ac7ee Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/secIcon.png differ diff --git a/assets/pages/scripts/operMonFile/img/ser-btn.png b/assets/pages/scripts/operMonFile/img/ser-btn.png new file mode 100644 index 0000000..cc803bb Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/ser-btn.png differ diff --git a/assets/pages/scripts/operMonFile/img/timeusage.png b/assets/pages/scripts/operMonFile/img/timeusage.png new file mode 100644 index 0000000..31c8e22 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/timeusage.png differ diff --git a/assets/pages/scripts/operMonFile/img/turn-around.png b/assets/pages/scripts/operMonFile/img/turn-around.png new file mode 100644 index 0000000..b244861 Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/turn-around.png differ diff --git a/assets/pages/scripts/operMonFile/img/turn-left.png b/assets/pages/scripts/operMonFile/img/turn-left.png new file mode 100644 index 0000000..a8f74cf Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/turn-left.png differ diff --git a/assets/pages/scripts/operMonFile/img/turn-right.png b/assets/pages/scripts/operMonFile/img/turn-right.png new file mode 100644 index 0000000..feefa1c Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/turn-right.png differ diff --git a/assets/pages/scripts/operMonFile/img/turnover_right.png b/assets/pages/scripts/operMonFile/img/turnover_right.png new file mode 100644 index 0000000..90d6f6c Binary files /dev/null and b/assets/pages/scripts/operMonFile/img/turnover_right.png differ diff --git a/assets/pages/scripts/operMonFile/operMonfile.css b/assets/pages/scripts/operMonFile/operMonfile.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/operMonFile/operMonfile.css diff --git a/assets/pages/scripts/operMonFile/operMonfile.js b/assets/pages/scripts/operMonFile/operMonfile.js new file mode 100644 index 0000000..ff48570 --- /dev/null +++ b/assets/pages/scripts/operMonFile/operMonfile.js @@ -0,0 +1,198 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
    '+urlarr[i].name+'
    ' + }else{ + _html += '
  • '+urlarr[i].name+'
  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/guidemonitoring', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/operMonFile/guideMon/guidemonitoring.css'); + res.load('../../assets/pages/scripts/operMonFile/guideMon/guidemonitoring.html'); + $('.opermonitoring-menu li').removeClass('menu-active'); + $('#button-guidemonitoring').addClass('menu-active'); +}); +R.route('/parkingmonitoring', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.css'); + res.load('../../assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.html'); + $('.opermonitoring-menu li').removeClass('menu-active'); + $('#button-parkingmonitoring').addClass('menu-active'); + +}); +R.route('/pdamonitoring', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.css'); + res.load('../../assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.html'); + $('.opermonitoring-menu li').removeClass('menu-active'); + $('#button-pdamonitoring').addClass('menu-active'); + +}); + +//分页 +// JavaScript Document + +function pageGroup(pageNum,pageCount){ + switch(pageNum){ + case 1: + page_icon(1,5,0); + break; + case 2: + page_icon(1,5,1); + break; + case pageCount-1: + page_icon(pageCount-4,pageCount,3); + break; + case pageCount: + page_icon(pageCount-4,pageCount,4); + break; + default: + page_icon(pageNum-2,pageNum+2,2); + break; + } +} + + +function page_icon(page,count,eq){ + var ul_html = ""; + for(var i=page; i<=count; i++){ + ul_html += "
  • "+i+"
  • "; + } + $("#pageGro ul").html(ul_html); + $("#pageGro ul li").eq(eq).addClass("on"); +} + + +function pageUp(pageNum,pageCount){ + switch(pageNum){ + case 1: + break; + case 2: + page_icon(1,5,0); + break; + case pageCount-1: + page_icon(pageCount-4,pageCount,2); + break; + case pageCount: + page_icon(pageCount-4,pageCount,3); + break; + default: + page_icon(pageNum-2,pageNum+2,1); + break; + } +} + + +function pageDown(pageNum,pageCount){ + switch(pageNum){ + case 1: + page_icon(1,5,1); + break; + case 2: + page_icon(1,5,2); + break; + case pageCount-1: + page_icon(pageCount-4,pageCount,4); + break; + case pageCount: + break; + default: + page_icon(pageNum-2,pageNum+2,3); + break; + } +} + + +function pageDown_click(pageCount,pageNum,index){ + if(pageCount > 5){ + pageDown(pageNum,pageCount); + }else{ + var index = $("#pageGro ul li.on").index();//鑾峰彇褰撳墠椤� + if(index+1 < pageCount){ + $("#pageGro li").removeClass("on");//娓呴櫎鎵€鏈夐€変腑 + $("#pageGro ul li").eq(index+1).addClass("on");//閫変腑涓婁竴椤� + } + } + isPage(pageNum+1,pageCount); +} + + +function pageUp_click(pageCount,pageNum,index){ + if(pageCount > 5){ + pageUp(pageNum,pageCount); + }else{ + var index = $("#pageGro ul li.on").index();//鑾峰彇褰撳墠椤� + if(index > 0){ + $("#pageGro li").removeClass("on");//娓呴櫎鎵€鏈夐€変腑 + $("#pageGro ul li").eq(index-1).addClass("on");//閫変腑涓婁竴椤� + } + }+ + + isPage(pageNum-1,pageCount); +} + + +function num_click(pageCount,pageNum,selector){ + if(pageCount > 5){ + pageGroup(pageNum,pageCount); + }else{ + selector.addClass("on"); + selector.siblings("li").removeClass("on"); + } + isPage(pageNum,pageCount); +} + + +function icon_load(pageCount){ + if(pageCount>5){ + page_icon(1,5,0); + }else{ + page_icon(1,pageCount,0); + } + isPage(1,pageCount); +} + +function isPage(pageNum,pageCount){ + if(pageNum >= pageCount){ + $('#pageGro .pageDown').hide(); + }else{ + $('#pageGro .pageDown').show(); + } + if(pageNum <= 1){ + $('#pageGro .pageUp').hide(); + }else{ + $('#pageGro .pageUp').show(); + } +} +//搜索按钮“取消” +$(document).on('click',".cancelBtn", function () { + $(this).css("display", "none"); + $('.ser-inp-effect').css("display", "none"); + $(".ser-input").val(""); +}); + + + diff --git a/assets/pages/scripts/operMonFile/opercommon.css b/assets/pages/scripts/operMonFile/opercommon.css new file mode 100644 index 0000000..223905e --- /dev/null +++ b/assets/pages/scripts/operMonFile/opercommon.css @@ -0,0 +1,489 @@ +/*公用*/ +.opermonitoring-menu{ + left: 30px; + top:50px; + z-index: 10000; + +} +.opermonitoring-menu li{ + cursor: pointer; + float: left; + width: 76px; + margin-right: 10px; + height: 28px; + line-height: 26px; + border-radius: 2px!important; + background-color:#fff ; + font-size: 14px; + color: #1E95CD; + text-align: center; + border: 1px solid #1E95CD; + /*border-top: 2px solid rgba(30,149,205,.8) ;*/ +} +.opermonitoring-menu li:nth-of-type(2){ + /*padding-top: 2px;*/ +} +.opermonitoring-menu li a{ + color: #1E95CD; + text-decoration: none; +} +.opermonitoring-menu li.menu-active{ + background-color:rgba(30,149,205,1) ; + color: #fff; +} +.opermonitoring-menu li.menu-active a{ + color:#fff; +} +/** + *定制滚动条 + */ +::-webkit-scrollbar { + width: 5px; + height: 5px; +} + +::-webkit-scrollbar-thumb { + border-radius: 5px; + -webkit-box-shadow: inset 0 0 5px rgba(50,50, 50, 0.2); + background: rgba(30, 30, 30, 0.2); +} +body,html{ + width: 100%; + height: 100%; + overflow: hidden; +} +html,body{ + /*min-width: 1250px; + overflow-x: scroll;*/ + padding:0; + margin:0; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -o-user-select: none; + -ms-user-select: none; +} +.map-wrap { + /*background:url(../../img/parkBg.png) no-repeat center center !important;*/ +} +.float-left{ + float: left; +} +.float-right{ + float: right; +} +.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden} +/*侧栏*/ +#main-con{ + /*height: 800px;*/ + height: 100%; + /*height: -webkit-calc(100% - 108px);*/ + width: 100%; + position: absolute; + top: 12px; + left: 0; +} +.container{ + width: 100%; + height:100%; + padding-left: 0 !important; + padding-right: 0 !important; + /*height: -webkit-calc(100% - 108px);*/ + display: -webkit-box; + display: -moz-box; + display:-webkit-flex; + display: -ms-flexbox; + display:flex; + position: relative; +} +.nav-bar{ + width: 140px; + height: 100%; +} + +.nav-bar-main{ + -moz-box-sizing: border-box; /*Firefox3.5+*/ + -webkit-box-sizing: border-box; /*Safari3.2+*/ + -o-box-sizing: border-box; /*Opera9.6*/ + -ms-box-sizing: border-box; /*IE8*/ + box-sizing: border-box; + width: 140px; + height: 100%; + background-color: #9ba6ab; + /*padding: 30px 0 0 20px;*/ +} +.nav-bar-main li{ + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -o-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + text-align: center; + /* width: 98px; */ + padding-top: 130px; + /* height: 125px; */ + /* margin-bottom: 49px; */ + cursor: pointer; + font-size: 18px; + color: #fff; + height: 165px; + width: 100%; +} + +.nav-bar-b{ + width:140px; + height: 88px; + background-color: #2bc99e; + margin-top: -88px; + font-size: 24px; + color: #fff; + -moz-box-sizing: border-box; /*Firefox3.5+*/ + -webkit-box-sizing: border-box; /*Safari3.2+*/ + -o-box-sizing: border-box; /*Opera9.6*/ + -ms-box-sizing: border-box; /*IE8*/ + box-sizing: border-box; + padding-left: 17px; + padding-top: 15px; +} +/*搜索框按钮*/ +.ser-inp{ + font-size: 0; + box-shadow:0 3px 10px rgba(155,166,171,.5); + border-radius: 4px; + overflow: hidden; + /*position: absolute;*/ + /*right: 18px;*/ + /*top:30px;*/ + margin-bottom: 10px; + height: 40px; + z-index: 100; +} +/*输入框key*/ +.ser-input{ + border: 0; + padding-left: 12px; + width: 288px; + height: 40px; + color: #888990; + font-size:14px; + + outline:0; +} +.ser-inp span{ + cursor: pointer; + display: inline-block; + height: 40px; + width: 40px; + vertical-align: bottom; +} +.bg-green{ + background: #1E95CD url(../../scripts/operMonFile/img/ser-btn.png) no-repeat center center; +} +.bg-blue{ + background: #1E95CD url(../../scripts/operMonFile/img/ser-btn.png) no-repeat center center; +} +.bg-yellow{ + background: #1E95CD url(../../scripts/operMonFile/img/ser-btn.png) no-repeat center center; +} +/* + @搜索结果格式化songcx +*/ +.ser-Res {} +.ser-Res .indexNo { + width:18px; height:27px; + display:inline-block; + background-image:url(../../scripts/operMonFile/img/common/markers.png); +} +.ser-Res .indexNo-1 { + background-position:0px -139px; +} +.ser-Res .indexNo-2 { + background-position:-18px -139px; +} +.ser-Res .indexNo-3 { + background-position:-36px -139px; +} +.ser-Res .indexNo-4 { + background-position:-54px -139px; +} +.ser-Res .indexNo-5 { + background-position:-72px -139px; +} +.ser-Res .indexNo-6 { + background-position:-90px -139px; +} +.ser-Res .indexNo-7 { + background-position:-108px -139px; +} +.ser-Res .indexNo-8 { + background-position:-126px -139px; +} +.ser-Res .indexNo-9 { + background-position:-144px -139px; +} +.ser-Res .indexNo-10 { + background-position:-162px -139px; +} +/*mouse over*/ +.ser-Res .indexLi {height:90px;} +.ser-Res .indexLi >div:last-child{ + color: rgba(0,0,0,.45); + font-size:12px; +} +.ser-Res .indexLi > div > span:last-child{ + color:#2abb9b; +} +.ser-Res .indexLi-1:hover .indexNo{ + background-position:0px -166px; +} +.ser-Res .indexLi-2:hover .indexNo{ + background-position:-18px -166px; +} +.ser-Res .indexLi-3:hover .indexNo{ + background-position:-36px -166px; +} +.ser-Res .indexLi-4:hover .indexNo{ + background-position:-54px -166px; +} +.ser-Res .indexLi-5:hover .indexNo{ + background-position:-72px -166px; +} +.ser-Res .indexLi-6:hover .indexNo{ + background-position:-90px -166px; +} +.ser-Res .indexLi-7:hover .indexNo{ + background-position:-108px -166px; +} +.ser-Res .indexLi-8:hover .indexNo{ + background-position:-126px -166px; +} +.ser-Res .indexLi-9:hover .indexNo{ + background-position:-144px -166px; +} +.ser-Res .indexLi-10:hover .indexNo{ + background-position:-162px -166px; +} + +.ser-Res .indexRow { + display: table;text-align:center; +} +.ser-Res .indexRow a,.ser-Res .indexRow span{ + display:table-cell; vertical-align: middle; +} +.ser-Res .indexRow span{ + padding-left:5px; + color:#3385ff!important; + +} +/*.ser-Res .indexRow >div:last-child{ + padding-left:5px;color:#3385ff!important; + width: 150px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +}*/ +.ser-inp .cancelBtn { + background:url(../../scripts/operMonFile/img/common/searchbox.png) no-repeat 0 -38px; + height:38px;width:39px; + cursor:pointer;position:absolute; + top:0px;right:45px; + display:none; +} +/* + @结果面板songcxa +*/ +.ser-wrap-panel { + transition: height 5s; + -moz-transition: height 5s; /* Firefox 4 */ + -webkit-transition: height 5s; /* Safari 和 Chrome */ + -o-transition: height 5s; /* Opera */ +} + +/*end*/ + +/*搜索main*/ +.ser-wrap{ + display: none; + /*position: absolute;*/ + /*right: 18px;*/ + /*top:75px;*/ + /*bottom:45px;*/ + width: 328px; + height: calc(100% - 40px); + height: -webkit-calc(100% - 40px); + height: -moz-calc(100% - 40px); + + padding-top: 0; + background-color: #fff; + -moz-box-sizing: border-box; /*Firefox3.5+*/ + -webkit-box-sizing: border-box; /*Safari3.2+*/ + -o-box-sizing: border-box; /*Opera9.6*/ + -ms-box-sizing: border-box; /*IE8*/ + box-sizing: border-box; + z-index: 11; + box-shadow: 1px 0 10px rgba(155,166,171,.5); +} +.ser-main{ + height: 100%; + padding-left: 16px; + padding-top: 10px; +} +/*分页*/ +#pageGro{ width:400px; height:25px; margin:0px auto; padding-top:15px;} +#pageGro div,#pageGro div ul li{ font-size:12px; color:#999; line-height:23px; float:left; margin-left:5px;} +#pageGro div ul li{ width:22px; text-align:center; border:1px solid #999; cursor:pointer;} +#pageGro div ul li.on{ color:#fff; background:#2484dd; border:1px solid #2484dd;} +#pageGro .pageUp,#pageGro .pageDown{ width:63px; text-align: center; border:1px solid #999; cursor:pointer;} + + +/*地图*/ +.map-wrap{ + height: 100%; + flex: 1; + /*background-color: #ffff00;*/ +} +.allmap{ + height: 100%; + width: 100%; +} +/*#dituContent{}*/ +#allmap label{max-width:none;} +.BMap_cpyCtrl +{ + display:none; +} +.anchorBL{ + display:none; +} +.display-none{ + display: none; +} + + +/* + @songcxa + @搜索结果 +*/ +.container { + +} +.container .ser-resPanel { + position: absolute; + top: 46px; + width: 317px; + /*display: block;*/ + min-height: 40px; + z-index: 20; + text-indent: 8px; + background-color: #fff; + box-shadow: 0 3px 10px rgba(155,166,171,.5); + border-radius: 3px; + border: 0; + color: #888990; + font-size: 14px; + font-family: Arial,Helvetica,SimSun,sans-serif; + outline: 0; + display: none; +} +.container .ser-resPanel-items { + padding:5px; +} +.container .ser-resPanel-items >li{ + line-height:25px; +} +.container .ser-resPanel-items > li:hover{ + background-color:#1e95cd;color:#fff; +} + + +/*图例*/ +.freespace{ + z-index:99 !important; +} +.freespace .freespace-content li{ + position:relative; +} +.freespace .freespace-content li:before { + content:">"; + top:0px; + left:-12px; + font-size:13px; + /*font-family:serif;*/ + /*transition: transform 1s;*/ + display:none; + animation-fill-mode: forwards; + -webkit-animation-fill-mode: forwards; +} +.freespace .freespace-content>li:first-child:before{ + color:orangered; +} +.freespace .freespace-content>li:nth-child(2):before{ + color:#469eef; +} +.freespace .freespace-content>li:last-child:before{ + color:#2bc99e; +} +.freespace .freespace-content>li:hover:before { + display:block; + position:absolute; + animation:legMove 1s ; + /*Safari 和 Chrome:*/ + -webkit-animation:legMove 1s ; + animation-fill-mode: forwards; + -webkit-animation-fill-mode: forwards; +} +@keyframes legMove{ + from { display:block;left:-20px;} +} + +/*Safari 和 Chrome:*/ +@-webkit-keyframes legMove{ + from { display:block;left:-20px;} +} +.scroll-to-top{ + display: none !important; +} +.ser-inp-effect { + z-index: 10; + position: absolute; + top: 70px; + right: 30px; + width: 316px; + height: 40px; + background-color: #fff; + line-height: 40px; + display: none; + color: rgba(0,0,0,.4); + text-indent: 15px; + font-size: 12px; +} +.main-wrap{ + position: absolute; + right:18px ; + width: 352px; + height: calc(100% - 130px); + height: -webkit-calc(100% - 130px); + height: -moz-calc(100% - 130px); + top:30px; + z-index: 999; +} +.main-right{ + height: 100%; +} +.main-left{ + width: 24px; + height: 100%; + +} +.main-left div{ + background: url("img/main-left.png") no-repeat 0 center; + cursor: pointer; + width: 24px; + height: 68px; + position: relative; + top:50%; + margin-top: -34px; +} +.main-left div.click_right{ + background: url("img/main-left-click.png") no-repeat 0 center; +} diff --git a/assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.css b/assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.css new file mode 100644 index 0000000..17dca7d --- /dev/null +++ b/assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.css @@ -0,0 +1,846 @@ + +/*搜索*/ +.content{ + margin: 0px 0 12px; + width: 260px; + height: 30px; + /*border:1px solid #d9d9d9;*/ + /*border-radius: 2px;*/ +} +.content .select{ + width: 115px; + height: 30px; + margin: 0px auto; + position: relative; + border:1px solid #d9d9d9; + border-radius: 2px; + cursor: pointer; +} +.content .select::after{ + content: ""; + display: block; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #888990; + top: 14px; + right: 12px; + position: absolute; + transition: all .3s ease-in; +} +.content .select p{ + width: 91px; + height: 32px; + line-height: 32px; + font-size: 12px; + font-family: "microsoft yahei"; + color: #626c72; + padding: 0px 15px; + margin: 0 !important; +} +.content .select ul{ + background: #fff; + width: 125px; + display: block; + font-size: 12px; + position: absolute; + top: 33px; + left: -5px; + max-height: 0px; + overflow: hidden; + transition: max-height .3s ease-in; +} +.content .select ul li{ + width: 100%; + height: 30px; + line-height: 30px; + padding: 0px 15px; + list-style: none; + color: #626c72; +} +.content .select ul li.Selected{ + background: #2484dd; + color: #FFFFFF; +} +.content .select ul li:hover{ + background: #D0D0D0; +} +@-webkit-keyframes slide-down{ + 0%{transform: scale(1,0);} + 25%{transform: scale(1,1.2);} + 50%{transform: scale(1,0.85);} + 75%{transform: scale(1,1.05);} + 100%{transform: scale(1,1);} +} +@keyframes slide-down{ + 0%{transform: scale(1,0);} + 25%{transform: scale(1,1.2);} + 50%{transform: scale(1,0.85);} + 75%{transform: scale(1,1.05);} + 100%{transform: scale(1,1);} +} +.content .select.open ul{ + max-height: 150px; + transform-origin: 50% 0; + -webkit-animation: slide-down .5s ease-in; + transition: max-height .2s ease-in; + border:1px solid #d9d9d9; +} +.content .select.open::after{ + transform: rotate(180deg); + transition: all .3s ease-in; + top: 14px; +} +/* 车场类型*/ +.content .select2{ + width: 115px; + height: 30px; + margin-left:10px; + position: relative; + cursor: pointer; + border: 1px solid #d9d9d9; + border-radius: 2px; +} +.content .select2::after{ + content: ""; + display: block; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #888990; + top: 14px; + right: 12px; + position: absolute; + transition: all .3s ease-in; +} +.content .select2 p{ + width: 91px; + height: 32px; + line-height: 32px; + font-size: 12px; + font-family: "microsoft yahei"; + color: #626c72; + padding: 0px 15px; + margin: 0 !important; +} +.content .select2 ul{ + background: #fff; + width: 125px; + display: block; + font-size: 12px; + position: absolute; + top: 33px; + left: -5px; + max-height: 0px; + overflow: hidden; + transition: max-height .3s ease-in; +} +.content .select2 ul li{ + width: 100%; + height: 30px; + line-height: 30px; + padding: 0px 15px; + list-style: none; + color: #626c72; +} +.content .select2 ul li.Selected{ + background: #2484dd; + color: #FFFFFF; +} +.content .select2 ul li:hover{ + background: #D0D0D0; +} + +.content .select2.open ul{ + max-height: 150px; + transform-origin: 50% 0; + -webkit-animation: slide-down .5s ease-in; + transition: max-height .2s ease-in; + border:1px solid #d9d9d9; +} +.content .select2.open::after{ + transform: rotate(180deg); + transition: all .3s ease-in; + top: 14px; +} + +.ser-result-wrap{ + margin-right: 16px; + height: calc(100% - 112px); + height: -webkit-calc(100% - 112px); + height: -moz-calc(100% - 112px); + overflow-y: auto; +} +.ser-result-wrap li{ + cursor: pointer; + padding-left: 14px; + padding-top: 2px; + border-radius: 5px; + height: 70px; +} +.ser-result-wrap li:nth-of-type(odd){ + background-color: #f5f6f6; +} +.ser-result-wrap li div:nth-of-type(1){ + color: rgba(0,0,0,.45); + font-size: 14px; +} +.ser-result-wrap li div:nth-of-type(2){ + padding: 4px 0; + color: rgba(0,0,0,.45); + font-size: 12px; +} +.ser-result-wrap li div:nth-of-type(3){ + + color: rgba(0,0,0,.45); + font-size: 12px; +} +/*停车场鼠标移动显示弹窗*/ +/*停车场弹窗*/ +.parkpop-content{ + width: 286px; + /*height: 185px;*/ + background: #fff; + padding-top: 20px; + padding-bottom: 20px; + box-shadow: 0 3px 10px rgba(155,166,171,.5); + /*box-shadow: 0px 1px 10px 0px rgba(50, 50, 50, 0.2);*/ +} +.parkpop-tit{ + /*margin-left: 43px; + width: 200px;*/ + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + /*text-indent: 20px;*/ + text-align: center; + height: 19px; + font-size: 14px; + color: #1f2b3d; + + /*background: url("../img/parkName_icon.png") no-repeat;*/ + /*background-size: 14px 17px;*/ + /*background-position: 0px 0px;*/ + display: flex; + justify-content:center; + align-items: center; +} +.parkpop-tit >img{ + margin-right:2px; +} +.parkpop-tit img{ + display: inline-block; +} +/*.parkpop-tit span{ + height: 18px; + line-height: 18px; + display: inline-block; +}*/ + +.parkpop-cont{ + margin-top: 10px; + /*width: 254px;*/ + width: 100%; + height: 88px; + /*margin-left: 18px;*/ + + display: flex; + justify-content: center; + align-items: center; +} +.parkpop-freecont{ + float: left; + width: 148px; + height: 88px; + background-color: #ddd; + padding-left: 10px; + padding-top: 12px; + border-radius: 4px !important; +} +.parkpop-allnumcont{ + float: left; + width: 104px; + height: 88px; + background-color: #26c597; + border-radius: 4px !important; + color: #fff; +} +.freenum-cont{ + height: 44px; + /*width: ;*/ +} +.freespace-num{ + width: 30px; + height: 44px; + background-color: #202020; + color: #26c597; + line-height: 44px; + text-align: center; + font-size: 32px; + float: left; + margin-right: 4px; +} +.freespace-numtit{ + font-size: 14px; + height: 16px; + line-height: 16px; + width: 100%; + margin-top: 8px; + padding-left: 27px; + color: #1f2b3d; +} +.freespace-num:last-child{ + margin-right:0; +} +.allnum-Num{ + height: 58px; + line-height:58px; + width: 100%; + text-align: center; + font-size: 32px; +} +.allspace-tit{ + height: 30px; + line-height: 30px; + font-size: 14px; + text-align: center; +} +/*地图*/ + +/*右下角图例 */ +/*******************************************************右下角图例*/ + +.freespace{ + z-index: 3; + position: fixed; + height: 120px; + width: 140px; + bottom: 40px; + left: 240px; + color: #626c72; + font-size: 12px; + background-color: #fff; + border-radius: 4px; + box-shadow: 0 3px 10px rgba(155,166,171,.5); +} +.freespace .freespace-tit{ + width: 100%; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #1f2b3d; + background-color: #f5f6f6; +} +.freespace .freespace-content{ + height: 188px; + padding: 4px 0 0 16px; +} +.freespace .freespace-content .freespace-msg{ + height: 25px; + line-height: 25px; +} +.freespace-msg .msg-common{ + width: 12px; + height: 15px; + display: inline-block; + margin-right: 6px; + vertical-align: middle; +} +.freespace-msg .msg-bgfull{ + background: url("../img/legendMap_icon1.png") no-repeat; + background-size:100% 100%; +} +.freespace-msg .msg-bgfew{ + background: url("../img/legendMap_icon2.png") no-repeat; + background-size:100% 100%; +} +.freespace-msg .msg-bgeough{ + background: url("../img/legendMap_icon3.png") no-repeat; + background-size:100% 100%; +} +/*停车场弹窗*/ +.ITD-alert-tab-wrap{ + padding-top: 7px; +} +.ITD-alert-tab-wrap li{ + cursor: pointer; + float: left; + height: 60px; + line-height: 60px; + padding: 0 10px; + margin-right: 70px; +} +.ITD-alert-tab-active{ + border-bottom: 3px solid #5fe98f; +} + + +.caryard-basic-ino-name{ + height: 57px; + line-height: 57px; +} +.caryard-basic-borderbototm{ + border-bottom: 1px solid #f0f0f0; +} +.caryard-basic-ifo-park-height{ + height: 34px; + line-height: 34px; +} + +.caryard-basic-ifo-park span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../img/index-card-title.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.caryard-basic-ifo-park-wrap li{ + padding-left: 23px; +} +.caryard-basic-ifo-park-wrap li div:nth-of-type(1){ + width: 50%; +} +.caryard-basic-ifo-park-wrap li div span:nth-of-type(2){ + width: 70px; + display: inline-block; + text-align:justify; + text-align-last:justify; +} +.caryard-basic-ifo-type{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.caryard-basic-ifo-car-type{ + width: 90px; + height: 66px; + text-align: center; + line-height: 66px; +} +.caryard-basic-ifo-device{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -54px 0; +} +.caryard-basic-ifo-total{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image:url(../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -18px 0; +} +.caryard-basic-ifo-entrance{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -16px 0; +} +.caryard-basic-ifo-business{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -32px 0; +} +.caryard-basic-ifo-address{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -48px 0; +} +.caryard-basic-ifo-address-wrap{ + max-width: 310px; +} +.caryard-basic-ifo-fees{ + height: 37px; + line-height: 37px; +} +.caryard-basic-ifo-fees span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -36px -18px ; +} +.caryard-basic-ifo-fees-wrap li{ + padding-left: 23px; + height:40px ; +} +.caryard-basic-ifo-fees-wrap li div{ + float: left; +} +.caryard-basic-ifo-fees-smallicon{ + width: 51px; + height: 51px; + background-image:url("../img/caryard-basic-ifo-fees-wrap.png") ; + background-repeat: no-repeat; + background-position: 0 0; + margin-top: 8px; + margin-right: 30px; +} +.caryard-basic-ifo-fees-bigicon{ + width: 51px; + height: 51px; + background-image:url("../img/caryard-basic-ifo-fees-wrap.png") ; + background-repeat: no-repeat; + background-position: -51px 0; + margin-top: 8px; + margin-right: 30px; +} +.caryard-basic-ifo-fees-type{ + width: 70px; + line-height: 40px; +} +.caryard-basic-ifo-fees-rule{ + width: 320px; + margin-right: 20px; + line-height: 40px; +} +.caryard-basic-ifo-fees-max{ + line-height: 40px; +} +.caryard-basic-ifo-fees-max{ + width: 250px; +} +.caryard-basic-ifo-photo{ + height: 37px; + line-height: 37px; +} +.caryard-basic-ifo-photo span{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /* margin-top: -3px; */ + background-image: url(../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -64px 0; +} +.caryard-basic-ifo-photo-wrap{ + height:75px; + padding: 13px 0 0; +} +.caryard-basic-ifo-photo-wrap li{ + float: left; + margin-right: 10px; + width: 98px; + height: 62px; +} +.caryard-basic-ifo-photo-wrap li img{ + width: 100%; + height: 100%; +} +.caryard-berth-ifo-wrap{ + height: 57px; + line-height: 57px; +} +.caryard-berth-ifo-number span:nth-of-type(1){ + margin-right: 60px; +} +.caryard-berth-ifo-number>span:nth-of-type(1):before{ + content: ''; + position: absolute; + left: -20px; + top:3px; + width: 12px; + height: 14px; + background: #5fe98f; +} +.caryard-berth-ifo-number>span:nth-of-type(2):before{ + content: ''; + position: absolute; + left: -20px; + top:3px; + width: 12px; + height: 14px; + background: #f6f5f5; + border: 1px solid #dbdbdb; +} +.caryard-berth-ifo-main{ + height: 421px; + overflow-y: auto; +} +.caryard-berth-ifo-main li div{ + width: 40px; + height: 70px; + line-height: 70px; + text-align: center; + font-size: 12px; + color:rgba(0,0,0,.8); + float: left; + margin-right: 5px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.caryard-berth-ifo-main li div:nth-last-of-type{ + margin-right: 0; +} +.caryard-berth-ifo-main li:nth-child(odd){ + margin-bottom: 3px; +} +.caryard-berth-ifo-main li:nth-child(even){ + margin-bottom: 35px; +} +.caryard-berth-ifo-status-green{ + background-color: #5fe98f; +} +.caryard-berth-ifo-status-gray{ + background-color: #f6f5f5; + border: 1px solid #dbdbdb; +} +.caryard-parking-ifo li{ + width: 164px; + margin-right: 12px; + float: left; + height: 67px; + padding: 9px 9px; +} +.caryard-parking-ifo li:nth-of-type(1){ + background-color:#fff1db ; +} +.caryard-parking-ifo li:nth-of-type(1) .caryard-parking-ifo-icon{ + width: 50px; + height: 50px; + margin-right: 9px; + background-image: url("../img/caryard-parking-ifo.png"); + background-repeat: no-repeat; + background-position: 0 0; +} +.caryard-parking-ifo li:nth-of-type(2){ + background-color:#dff9eb ; +} +.caryard-parking-ifo li:nth-of-type(2) .caryard-parking-ifo-icon{ + width: 50px; + height: 50px; + margin-right: 9px; + background-image: url("../img/caryard-parking-ifo.png"); + background-repeat: no-repeat; + background-position: -50px 0; +} +.caryard-parking-ifo li:nth-of-type(3){ + background-color:#fff9db ; +} +.caryard-parking-ifo li:nth-of-type(3) .caryard-parking-ifo-icon{ + width: 50px; + height: 50px; + margin-right: 9px; + background-image: url("../img/caryard-parking-ifo.png"); + background-repeat: no-repeat; + background-position: -100px 0; +} +.caryard-parking-ifo li:nth-of-type(4){ + background-color:#dff3f4 ; +} +.caryard-parking-ifo li:nth-of-type(4) .caryard-parking-ifo-icon{ + width: 50px; + height: 50px; + margin-right: 9px; + background-image: url("../img/caryard-parking-ifo.png"); + background-repeat: no-repeat; + background-position: -150px 0; +} +.caryard-parking-ifo li:last-of-type{ + margin-right: 0; +} +.caryard-parking-ifo-title{ + margin: 3px 0 5px; +} +.caryard-parking-detail-wrap{ + margin-top: 15px; +} +.caryard-parking-detail-wrap>li{ + height: 180px; + float: left; + margin-right: 12px; +} +.caryard-parking-detail-wrap>li:nth-of-type(1){ + width: 428px; +} + +.caryard-parking-detail-wrap>li:last-of-type{ + width: 240px; + margin-right: 0; +} +.caryard-parking-detail-rate span{ + width: 18px; + height: 18px; + display: inline-block; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -18px -36px; +} +.caryard-parking-detail-business span{ + width: 18px; + height: 18px; + display: inline-block; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -36px -18px; +} +.caryard-parking-detail-monitor span{ + width: 18px; + height: 18px; + display: inline-block; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -54px 0; +} +.caryard-parking-echart{ + height: 145px; + width:425px; +} +.pay-way-ul{ + padding: 0 35px; +} +.pay-way-ul li { + overflow: hidden; + height: 34px; + line-height: 34px; +} +.pay-way-ul li div:nth-of-type(1) { + width: 42px; + margin-right: 5px; +} +.pay-way-wrap { + width: calc(100% - 50px); + height: 10px; + background-color: #edf7fb; + border-radius: 5px!important; + vertical-align: middle; + overflow: hidden; + margin-top: 13px; +} +.pay-way-ul li:nth-of-type(1) .pay-way-scale { + width: 70%; + background-color: #5fe98f; +} +.pay-way-ul li:nth-of-type(2) .pay-way-scale { + width: 60%; + background-color: #5ed8a6; +} +.pay-way-ul li:nth-of-type(3) .pay-way-scale { + width: 50%; + background-color: #5dc2c3; +} +.pay-way-ul li:nth-of-type(4) .pay-way-scale { + width: 40%; + background-color: #5cb2d9; +} +.pay-way-ul li div:nth-of-type(1) { + width: 42px; + margin-right: 5px; +} +.pay-way-scale { + height: 10px; + left: 0; + top: 0; + border-radius: 5px!important; +} +.color-status-abnormal{ + color: #fc4a4a; +} +.caryard-monitor-main{ + + +} +.caryard-monitor-main li{ + height: 34px; + line-height: 34px; + padding-left: 26px; + border-bottom: 1px solid #f0f0f0; +} +.caryard-monitor-main li span:nth-of-type(1){ + width: 100px; + display: inline-block; +} +.caryard-monitor-main li span:nth-of-type(2){ + width: 105px; + display: inline-block; + margin-right: 5px; +} +.caryard-monitor-main li span:nth-of-type(3){ + width: 18px; + height: 18px; + line-height: 18px; + margin-bottom: 29px; + text-align: center; + display: inline-block; + vertical-align: middle; + color: #fc4a4a; + font-size: 12px; + border:1px solid #fc4a4a; + border-radius: 100%!important; +} +.caryard-parking-berth-usage{ + margin-top: 15px; +} +.caryard-parking-berth-usage span{ + width: 18px; + height: 18px; + display: inline-block; + margin-right: 5px; + background: url("../img/timeusage.png") no-repeat; + vertical-align: middle; +} +.berth-usage-echart{ + height: 110px; + width:695px; + +} +.caryard-basic-ifo-fees-cricle{ + height: 8px; + width: 8px; + background-color: #1E95CD; + border-radius: 50% !important; + margin-top: 16px; + margin-right: 20px; +} \ No newline at end of file diff --git a/assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.html b/assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.html new file mode 100644 index 0000000..fb3588e --- /dev/null +++ b/assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.html @@ -0,0 +1,242 @@ + + +
    + + + + +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +
    +
    +

    全部

    +
      +
    • 全部
    • +
    • 西城区
    • +
    • 东城区
    • +
    +
    + +
    + +
      + + + + + +
    +
    +
    《上一页
    +
    +
      +
    • 1
    • +
    • 2
    • +
    • 3
    • +
    • 4
    • +
    • 5
    • +
    +
    +
    下一页》
    +
    + +
    +
    +
    + +
    + + + + +
    + + + +
    +
    车位饱和状态
    +
      +
    • 已满:0
    • +
    • 有空位:1-30%
    • +
    • 空闲:>30%
    • +
    +
    + + + + +
    +
    + +
    +
    + + diff --git a/assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.js b/assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.js new file mode 100644 index 0000000..eb6ab0f --- /dev/null +++ b/assets/pages/scripts/operMonFile/parkingMon/parkingmonitoring.js @@ -0,0 +1,1189 @@ + + + +//设备状态 +//1-地磁;2-视频桩;3-地锁,4-网关,5-中继器等' 9-PDA +var eqpType=[0,1,2,3,4,5,9]; +/*侧栏*/ +/*$(function(){ + $(".select p").click(function(e){ + $(".select").toggleClass('open'); + e.stopPropagation(); + }); + + $(".content .select ul li").click(function(e){ + var _this=$(this); + $(".select > p").text(_this.text()); + $(".select > p").attr('data-value',_this.attr('data-value')); + _this.addClass("Selected").siblings().removeClass("Selected"); + $(".select").removeClass("open"); + e.stopPropagation(); + }); + + $(document).on('click',function(){ + $(".select").removeClass("open"); + }) + //初始化按键 + $(document).keydown(function (event) { + if (event.keyCode == 13) { + $("#ser-button").click(); + } + }); + //默认全部 + $("#ser-button").click(); + console.log(1213) + //输入框提示 + // searchOption.ini(); +});*/ +////回车事件 +//$(function(){ + +//}); +//获取查询参数 +function getQueryParam(){ + var serVal = $.trim($('#ser-input').val()); + var area_text = $(".select .Selected").attr('data-value'); + var park_type = $(".select2 .Selected").attr('data-value'); + console.log(park_type) + var countryId = []; + var plNosTemp = plNos; + if (area_text) { + countryId = area_text.split(','); + } + var req = { + plNos:plNosTemp, + sysCode: sysComm.sysCode, + cityId: sysComm.cityId, + parkNameOrAddress: serVal, + countryId: countryId, + plType: park_type, + baseRequest: { + pageNum: 1, + pageSize: 10 + }, + flag:0, + curPage:0, + index:0, + selector:null + } + return req; +} +//根据条件分页查询停车场 +function queryParkingLotByCondition(req){ + $('#m_r_bar li').eq(1).removeClass('related_data'); + $('#model-right').hide(); + var opt = { + method: "post", + data: JSON.stringify(req), + url: dataUrl.util.queryParkLotByCountryAndParkName(), + async: false, + success: function (res, xhr, status) { + console.log(res) + //清空内容 + $('#result').empty(); + if (res.code == '8888') { + var pageCount = res.data.pages == undefined || null == res.data.pages ? 0 : res.data.pages; + createHtml(res.data); + //渲染地图 + /*var datas = res.data.dataList; + var parkDataTemp = []; + $.each(parkData, function (index, item) { + $.each(datas, function(_index,_item) { + if(_item.plNo == item.parkNo){ + parkDataTemp.push(item); + } + }); + }); + console.log(parkDataTemp); + fun.drawMarker(parkDataTemp);*/ + + var flag = req.flag; + //icon_load(pageCount); + if(flag==0){//查询 + icon_load(pageCount); + } + else if(flag==1){//页码 + num_click(pageCount,req.curPage,req.selector); + } + else if(flag==-1){//下一页 + pageDown_click(pageCount,req.curPage,req.index); + } + else if(flag==-2){//上一页 + pageUp_click(pageCount,req.curPage,req.index); + } + } + } + } + sysAjax(opt); + + //查询所有的,不分页 + if(req.flag == 0){ + req.baseRequest.pageNum = 1; + req.baseRequest.pageSize = 0; + var opt = { + method: "post", + data: JSON.stringify(req), + url: dataUrl.util.queryParkLotByCountryAndParkName(), + async: false, + success: function (res, xhr, status) { + console.log(res) + + if (res.code == '8888') { + + var datas = (res.data.dataList)==null?[]:(res.data.dataList); + var parkDataTemp = []; + $.each(parkData, function (index, item) { + $.each(datas, function(_index,_item) { + if(_item.plNo == item.parkNo){ + parkDataTemp.push(item); + } + }); + }); + fun.drawMarker(parkDataTemp); + + } + } + } + sysAjax(opt); + } +} +//页面加载完成是与后台数据交互,后台返回总页数(如果只有总条数的话就自己算。Math.ceil(总条数/每条多少页)=总页数) +//如果pageCount不大于1 + +function createHtml(data){ + if(data.dataList==null||data.dataList.length<1){ + $('#result').empty().text('没有搜索到匹配内容'); + $('#pageGro').hide(); + $('#ser-wrap').show(); + return; + } + + var html = ''; + var list = data.dataList == undefined || data.dataList == null ? [] : data.dataList; + var i = 1; + $.each(list, function (index, item) { + var parkType; + if (1 == item.plType) { + parkType = '路侧' + } else if (2 == item.plType) { + parkType = '封闭' + } else { + parkType = '未知' + } + var berthNum = item.plBerthNum; + var plName = item.plName; + var plNo = item.plNo; + //html+='
  • '+ + // '
    '+(i++)+'.'+plName+'
    '+ + // '
    类型 : '+parkType+'
    '+ + // '
    车位总数 : '+berthNum+'
    '+ + // '
  • '; + //new + var no = ""; + html += '
  • ' + + '
    ' + no + '' + commonClass.cutString(plName, 10) + '
    ' + + '
    类型 : ' + parkType + '
    ' + + '
    车位总数 : ' + berthNum + '
    ' + + '
    地址 : ' + commonClass.cutString(item.plAddress, 12) + '
    ' + + '
  • '; + }); + //滚动 + $('#result').animate({ + scrollTop: $('#result').offset().top-1000 + }, 150); + $('#result').empty().html(html); + $('#ser-wrap').show(); + $('#pageGro').show(); +}; + +/*搜索*/ +$('#ser-button').on('click',function () { + commonClass.setPopupVisible(false); + + var req = getQueryParam(); + req.flag=0;//0-查询按钮触发,1-页码触发,-1后一页,-2 前一页 + queryParkingLotByCondition(req); + + //songcxa + $(".cancelBtn").css("display", "block"); +}); + +/* + @ songcxa + @ 搜索功能 +*/ +var searchOption = { + ini: function () { + var searchBox = $('#ser-input'); + /* + @ inputID输入框id + @ popID提示框id + @ queryOption(url、queryParames请求参数post、itemsSelectCallback提示框选择事件) + */ + var option = { + url: dataUrl.util.queryParkLotByCountryAndParkName(), + async: false, + queryParames: function () { + return getQueryParam(); + }, + itemsSelectCallback: function (ev) { + searchBox.val(ev); + } + }; + commonClass.popupObject("ser-input", "ser-resPanel", option); + }, +} + +/*end*/ + +//点击分页按钮触发 +documentBindFunc.on("click","#pageGro li",function(){ + var pageNum = parseInt($(this).html());//获取当前页数 + var selector = $(this); + + var req = getQueryParam(); + req.baseRequest.pageNum = pageNum; + req.curPage = pageNum; + req.selector = selector; + req.flag = 1; + queryParkingLotByCondition(req); + +}); + +//点击上一页触发 +documentBindFunc.on("click","#pageGro .pageUp",function(){ + var pageNum = parseInt($("#pageGro li.on").html());//获取当前页 + var index = $("#pageGro ul li.on").index();//获取index + + var req = getQueryParam(); + req.baseRequest.pageNum = pageNum-1; + req.curPage = pageNum; + req.index = index; + req.flag = -2; + queryParkingLotByCondition(req); + +}); + +//点击下一页触发 +documentBindFunc.on("click","#pageGro .pageDown",function(){ + var pageNum = parseInt($("#pageGro li.on").html());//获取当前页 + var index = $("#pageGro ul li.on").index();//获取index + + var req = getQueryParam(); + req.baseRequest.pageNum = pageNum+1; + req.curPage = pageNum; + req.index = index; + req.flag = -1; + queryParkingLotByCondition(req); + + +}); + +function checkhHtml5() { + if (typeof(Worker) === "undefined") { + if (navigator.userAgent.indexOf("MSIE 9.0") <= 0) { + alert("定制个性地图示例:IE9以下不兼容,推荐使用百度浏览器、chrome、firefox、safari、IE10"); + } + + } +} +function selectOptionFun(){ + $(".select p").click(function(e){ + $(".select").toggleClass('open'); + e.stopPropagation(); + }); + $(".select2 p").click(function(e){ + $(".select2").toggleClass('open'); + e.stopPropagation(); + }); + + $(".content .select ul li").click(function(e){ + var _this=$(this); + $(".select > p").text(_this.text()); + $(".select > p").attr('data-value',_this.attr('data-value')); + _this.addClass("Selected").siblings().removeClass("Selected"); + $(".select").removeClass("open"); + e.stopPropagation(); + }); + $(".content .select2 ul li").click(function(e){ + var _this=$(this); + $(".select2 > p").text(_this.text()); + $(".select2 > p").attr('data-value',_this.attr('data-value')); + _this.addClass("Selected").siblings().removeClass("Selected"); + $(".select2").removeClass("open"); + e.stopPropagation(); + }); + + $(document).on('click',function(){ + $(".select").removeClass("open"); + $(".select2").removeClass("open"); + }) + //初始化按键 + $(document).keydown(function (event) { + if (event.keyCode == 13) { + $("#ser-button").click(); + } + }); + //默认全部 + $("#ser-button").click(); + //输入框提示 + searchOption.ini(); +} +//停车场 渲染 +var plNos =[]; +var parkData=[]; +var xTimeDatas; +var occupyDatas=[]; +var turnOverDatas=[]; +var clear_flag = false; +var fun = { + init: function () { + fun.getParkingLotGeo(); + //fun.setDist(sysComm.cityId); + //alert(document.documentElement.clientHeight) + var height = document.documentElement.clientHeight - 150; + $('#main-wrap').height(height) + }, + + setDist:function (cityId) { + $(".select").empty(); + // $(".select2").empty(); + cityId+=''; + var allDist = []; + var distArray = cityData.dist[cityId]; + var html=''; + $.each(distArray,function (index,item) { + allDist.push(item.id); + html+="
  • "+item.areaName+"
  • " + + }); + $(".select").html("

    全部

    • 全部
    • "+html+"
    "); + selectOptionFun(); + }, + //设置中心城市信息 + setCityInfo: function(){ + + sysComm.cityId = firstPark.plCityId; + sysComm.cityName = firstPark.plCityName; + sysComm.provId = firstPark.plProvinceId; + sysComm.point_lng = firstPark.lonId; + sysComm.point_lat = firstPark.latId; + + fun.setDist(sysComm.cityId); + $(".cityName").text(sysComm.cityName); + }, + //获取停车场信息 + getParkingLotGeo: function () { + var parkLot = fn.getParkLot(3); + var plnos = []; + $.each(parkLot, function (index, item) { + plnos.push(item.code); + }) + + parkData = []; + plNos=[]; + var req = { + sysCode: sysComm.sysCode, + plNos: plnos, + + } + var opt = { + method: 'post', + url: dataUrl.util.queryParkingLotGeoByPlNos(), + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var data = res.data; + $.each(data, function (index, item) { + var temp = { + parkNo: item.plNo, + parkName: item.plName, + pointX: item.lonId, + pointY: item.latId, + allnum: item.plBerthNum, + plType: item.plType, + free: item.freeBrethNum + }; + plNos.push(item.plNo); + parkData.push(temp); + }); + if(data.length > 0){ + firstPark = data[0]; + } + if(data.length > 1){ + firstPark = data[1]; + } + fun.setCityInfo(); + fun.drawMarker(parkData); + + } + } + } + sysAjax(opt); + }, + // 渲染地图 停车场数据 + drawMarker:function(parkData) { + + var map; //Map实例 + //后台传过来 + // var currentLat = 118.922316; + // var currentLon = 42.25953; + + map = new BMap.Map('allmap', {enableMapClick: false}); + //第1步:设置地图中心点,当前城市 + var point = new BMap.Point(sysComm.point_lng, sysComm.point_lat); + //第2步:初始化地图,设置中心点坐标和地图级别。 + map.centerAndZoom(point, 13); + map.setCurrentCity(sysComm.cityName); // 设置地图显示的城市 此项是必须设置的 + //第3步:启用滚轮放大缩小 + map.enableScrollWheelZoom(true); + //第4步:向地图中添加缩放控件 + var ctrlNav = new window.BMap.NavigationControl({ + // 靠右上角位置 + anchor: BMAP_ANCHOR_TOP_RIGHT, + // LARGE类型 + type: BMAP_NAVIGATION_CONTROL_ZOOM, + //偏离值 + offset: new BMap.Size(55, 80) + }); + // map.addControl(ctrlNav); + //第5步:检测浏览器兼容 + checkhHtml5(); + //清除以前的点位 + map.clearOverlays(); + //songcxa + window.Bmap = map; + window.Bmap.addEventListener("mousedown", function (ev) { commonClass.setPopupVisible(false); closeInfoWindow(); }); + //第7步:绘制点 + var marker = []; + var newpoiX = null;//坐标 + var newpoiY = null; + var parkNo = null;//编号 + var popAllnum = null;//停车场车位总数 + var popFree = null;//空闲车位 + var parkName = null;//停车场名称 + console.log(parkData.length) + console.log(parkData) + for (var i = 0; i < parkData.length; i++) { + newpoiX = parkData[i].pointX; + newpoiY = parkData[i].pointY; + parkNo = parkData[i].parkNo; + popAllnum = parkData[i].allnum; + popFree = parkData[i].free; + parkName = parkData[i].parkName; + // console.log('popFree'+popFree) + var point = new BMap.Point(newpoiX, newpoiY); + if(popAllnum==0&&popFree==0){ + var myIcon = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/parkIcon1.png", + new BMap.Size(30, 39), { + offset: new BMap.Size(10, 39), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon}); + map.addOverlay(marker[i]); + }else if ((popFree / popAllnum) == 0 ||(popFree / popAllnum) ==NaN) { + var myIcon = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/parkIcon1.png", + new BMap.Size(30, 39), { + offset: new BMap.Size(10, 39), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon}); + map.addOverlay(marker[i]); + } else if ((popFree / popAllnum) > 0 && (popFree / popAllnum) <= 0.3) { + var myIcon2 = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/parkIcon2.png", + new BMap.Size(30, 39), { + offset: new BMap.Size(10, 39), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon2}); + map.addOverlay(marker[i]); + + } else if ((popFree / popAllnum) > 0.3) { + var myIcon3 = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/parkIcon3.png", + new BMap.Size(30, 39), { + offset: new BMap.Size(10, 39), + textColor: '#fff' + }); + marker[i] = new BMap.Marker(point, {icon: myIcon3}); + map.addOverlay(marker[i]); + + } + + marker[i].parkNo = parkData[i].parkNo; + marker[i].newpoiX = parkData[i].pointX; + marker[i].newpoiY = parkData[i].pointY; + marker[i].Allnum = parkData[i].allnum; + marker[i].Free = parkData[i].free; + marker[i].parkName = parkData[i].parkName; + marker[i].addEventListener("mouseover", function (n) { + + var newpoiY = n.target.newpoiY; + var parkNo = n.target.parkNo; + var parkName = n.target.parkName; + var newpoiX = n.target.newpoiX; + var freepop = Number(n.target.Free); + var allnumpop = Number(n.target.Allnum); + var req = { + sysCode: sysComm.sysCode, + cityId: sysComm.cityId, + plNos: [parkNo] + } + //点击事件-暂时去掉 + var opt = { + method: "post", + data: JSON.stringify(req), + url: dataUrl.util.queryParkFreeBerthsByPkNos(), + async: false, + success: function (res, xhr, status) { + if (res.code == '8888') { + freepop = res.data[parkNo]; + addInfoWindow(map,parkNo, newpoiX, newpoiY,parkName, freepop, allnumpop) + } + } + } + sysAjax(opt); + }); + marker[i].addEventListener("mouseout", function () { + closeInfoWindow(); + }) + } + removeCluster(marker,map); + } +} +fun.init(); + + +function closeInfoWindow() { + $(".parkpop-content").css('display', 'none'); +} +// 聚合 地图 +function removeCluster(marker,map) { + if (clear_flag) { + markerClusterer.clearMarkers(); //此步骤需要 + } + markerClusterer = new BMapLib.MarkerClusterer(map, + { + markers: marker, + styles: [{ + url: '../../assets/pages/scripts/operMonFile/img/map/index.png', + //size: new BMap.Size(30, 39), + size: new BMap.Size(53, 52), + textColor:'#fff', + fontSize:'18px', + zIndex:0 + }], + }); + markerClusterer.setMaxZoom(13); + clear_flag = true; + window.Bmap.tmpMarkerClusterer = markerClusterer; +} + +//字符串倒序 +var reverse = function(str){ + return str.split('').reverse().join(''); +}; +//停车场信息弹窗 +function addInfoWindow(map,parkNo, newpoiX, newpoiY, parkName, freepop, allnumpop) { + var frees = [0,0,0,0];//初始化一个空闲车位数数组 + if(freepop!=undefined && freepop!=null){ + var freeRev = reverse(freepop+""); + var freesRev = freeRev.split(''); + for(var i=0;i ' + + '
    ' + parkName + '
    ' + + '
    ' + + '
    ' + + '
      ' + + '
    • '+frees[0]+'
    • ' + + '
    • '+frees[1]+'
    • ' + + '
    • '+frees[2]+'
    • ' + + '
    • '+frees[3]+'
    • ' + + '
    ' + + '
    空闲车位数
    ' + + '
    ' + + '
    ' + allnumpop + '
    ' + + '
    总车位
    ' + + '
    ' + + '
    ', + { + offset: new BMap.Size(30, -85), //label的偏移量,为了让label的中心显示在点上 + position: point + }); + + myLabel.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + padding: "5px", + whiteSpace: "normal", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px", + zIndex: "1000" + } + ); + map.addOverlay(myLabel); + $('.parkpop-content').parent().parent().css('z-index',99999999) +} + +//左侧弹窗 +$(document).on('click','#result li',function () { + //debugger + $('.loading-wrap').show(20) + // 初始化基本信息 + $('#ITD-alert-tab-wrap li').eq(0).click(); + var that = $(this); + var plNo = that.attr('data-value'); + var plName = that.find('div').eq(0).attr('data-value'); + var berthNum = that.find('div').eq(2).attr('data-value'); + queryInfoByPlNo(plNo,plName,berthNum); + loadParkDatas(plNo,berthNum); + //将地图上的数据进行过滤 + var parkDataTemp = []; + $.each(parkData, function (index, item) { + if(plNo == item.parkNo){ + parkDataTemp.push(item); + } + }); + fun.drawMarker(parkDataTemp); + +}); +$('.popClose').on('click',function () { + $('#m_r_bar li').eq(1).removeClass('related_data'); + // $('#model-right').hide(); + $('#parkmon_alertmodel').modal('hide'); +}); +// --------li切换-------- +//m_r_bar点击事件 +$('#m_r_bar').on('click','li',function () { + var index = $(this).index(); + $(this).addClass('bar_active').siblings('li').removeClass('bar_active'); + $('.m-model-main .m_r_bar_wrap').addClass('display-none'); + $('.m-model-main .m_r_bar_wrap').eq(index).removeClass('display-none'); + + if(index==1){ + if($(this).hasClass('related_data')){ + + }else{ + $(this).addClass('related_data'); + occupy_echarts.resize(); + turnover_echarts.resize(); + //drawOccupyAndTurnOver(); + } + } +}); +function loadParkDatas(plNo,berthNum){ + $("#parkDataFreeBerthNum").empty(); + $("#freeRate").empty(); + $("#occupyRate").empty(); + $("#turnOverRate").empty(); + getOccupyXDatas();// + var req = { + sysCode: sysComm.sysCode, + pklNo: plNo, + }; + sysAjax({ + method: "post", + url: dataUrl.util.queryParkingdatas(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function(res) { + if(res.code == '8888') { + if(res.data == null){ + return; + } + parkDatas = res.data; + console.log(parkDatas) + setTimeout(function () { + $('.loading-wrap').hide() + $('#parkmon_alertmodel').modal('show'); + },500) + + //console.log(displayCountry); + } else { + alert("请求报错"); + } + } + }); + + //1、左上角四个数据 + //var plDataSpans = $(".parkmid_l_ul ").find('span'); + $("#parkDataFreeBerthNum").text(berthNum == null ? 0 : berthNum); + $("#turnOverRate").text((parkDatas.avgTurnoverRate == null ? 0 : parkDatas.avgTurnoverRate).toFixed(2)); + $("#occupyRate").text(((parkDatas.avgOccupyRate == null ? 0 : parkDatas.avgOccupyRate)*100).toFixed(2)); + $("#freeRate").text(((1-(parkDatas.avgOccupyRate == null ? 0 : parkDatas.avgOccupyRate))*100).toFixed(2)); + + //2左下角设备状态 + //初始化 +// $("#eqpInfo").html('
  • 岗亭服务器 正常\t
  • ' + +// '
  • 道闸设备 正常\t
  • ' + +// '
  • 摄像机1 正常\t
  • ' + +// '
  • 摄像机2 进口1设备异常\t
  • '); + + $("#eqpInfo").html('
  • 岗亭无\t
  • ' + + '
  • 地磁无\t
  • ' + + '
  • 视频桩无\t
  • ' + + '
  • 地锁无\t
  • ' + + '
  • 网关无\t
  • ' + + '
  • 道闸无\t
  • ' + + '
  • PDA无\t
  • '); + $.each(parkDatas.deviceVoList, function(index,item) { + var sub = eqpType.indexOf(item.type); + if(sub != -1){ + var html = $("#eqpInfo").find('li').eq(sub).html(); + html = html.replace("无","在线"); + if(item.onlineCount < item.allCount){ + html = html.replace("ITD-common-color000 ITD-hidden-nowrap sec","ITD-color-red ITD-hidden-nowrap").replace("在线","故障"); + } + $("#eqpInfo").find('li').eq(sub).html(html); + } + }); + + // //3 右边两个图 + // getOccupyAndTurnOverDatas(); + // drawOccupyAndTurnOver(); +} +//获取占用率和周转次数 +function getOccupyAndTurnOverDatas (){ + if(parkDatas.statisList != null && (parkDatas.statisList).length >0){ + $.each(parkDatas.statisList, function (index, item) { + //console.log(item.statisticTime); + var curDate = new Date(); + curDate.setTime(item.statisticEndTime); + for(inData in xTimeDatas){ + if(xTimeDatas[inData] == (curDate.getHours()+':00')){ + occupyDatas[inData]=(1-(item.freeRatio < 0 ? 0 : item.freeRatio)).toFixed(4); + turnOverDatas[inData]=item.turnoverRatio < 0 ? 0 : (item.turnoverRatio).toFixed(2); + } + } + + }); + } +} +//5、24小时占用率x时间轴获取 +function getOccupyXDatas(){ + occupyDatas=[]; + turnOverDatas=[]; + xTimeDatas=[]; + var curDate = new Date(); + for (var i=0;i<24;i++){ + xTimeDatas.push(curDate.getHours()+':00'); + curDate.setTime(curDate.getTime()+60*60*1000); + occupyDatas[i]=0; + turnOverDatas[i]=0; + } +} + +function queryInfoByPlNo(plNo,plName,berthNum){ + //初始化 + $("#baseParkImg").empty(); + $("#basePlName").empty(); + $("#parkDataPlName").empty(); + $("#basePlType").empty(); + $("#baseBerthNum").empty(); + $("#baseAddress").empty(); + $("#baseDeviceType").empty(); + $("#baseInOutNum").empty(); + $("#baseBusiCircle").empty(); + $(".gridtable").empty(); + + $("#basePlName").html(plName); + var req= { + sysCode:sysComm.sysCode, + pklNo:plNo + }; + var getParkLotEqpCountChart= { + method: "post", + url: dataUrl.util.queryParkingBaseInfo(), + data: JSON.stringify(req), + async: false, + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if(res.code == '8888'){ + var result = res.data; + console.log(result); + //停车类型 + var parkType; + var eqpName; + if (1 == result.plType) { + parkType = '路侧'; + eqpName='地磁'; + + } else if (2 == result.plType) { + parkType = '封闭'; + eqpName='道闸'; + } else { + parkType = '未知'; + eqpName='地磁'; + } + + + //商圈属性1:商场、2:医院、3:小区、4:学校、5:写字楼、6:景区、7:交通场站、8:其他 + var busiCircle; + if (1 == result.busiCircle) { + busiCircle = '商场' + } else if (2 == result.busiCircle) { + busiCircle = '医院' + }else if (3 == result.busiCircle) { + busiCircle = '小区' + }else if (4 == result.busiCircle) { + busiCircle = '学校' + }else if (5 == result.busiCircle) { + busiCircle = '写字楼' + }else if (6 == result.busiCircle) { + busiCircle = '景区' + }else if (7 == result.busiCircle) { + busiCircle = '交通场站' + }else { + busiCircle = '其他' + } + var plEntranceNum = result.plEntranceNum==null?'0':result.plEntranceNum; + var plExitNum = result.plExitNum==null?'0':result.plExitNum; + $("#basePlName").html(result.plName); + $("#parkDataPlName").html(result.plName); + $("#basePlType").html(parkType); + $("#baseBerthNum").html(result.plBerthNum+'个'); + $("#baseAddress").html(result.plAddress); + $("#baseDeviceType").html(eqpName); + $("#baseInOutNum").html(plEntranceNum+"入"+plExitNum+"出"); + $("#baseBusiCircle").html(busiCircle); + +// photoList + var photos = result.picUrls; + var html = ''; + $.each(photos, function(index,item) { + html+="
  • "; + }); + $("#baseParkImg").html(html); + var plRate=result.plRate; + if(plRate==null || plRate==undefined || plRate==''||plRate==='[]'){ + + $("#plRate").empty(); + var htmlnew='
  • '+ + '
    '+ + // '
    '+ + '
    暂未配置
    '+ + '
    暂未配置
    '+ + '
  • '; + + + $("#plRate").html(htmlnew); + }else{ + plRate = JSON.parse(plRate); + + console.log(plRate); + $("#plRate").empty(); + var htmlnew=''; + for(var index in plRate){ + htmlnew += '
  • '+ + '
    '+ + // '
    '+ + '
    '+plRate[index].standard+'
    '+ + '
    '+plRate[index].standardInfo+'
    '+ + ''; + } + + $("#plRate").html(htmlnew); + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + + } + + } + } + }; + sysAjax(getParkLotEqpCountChart); + $('#m_r_bar li').eq(0).click(); + + +} + +//echarts 24小时 +//周转次数和占用率 +function drawOccupyAndTurnOver(){ + //停车数据 + //24小时占用率 + occupy_echarts = echarts.init(document.getElementById('caryard-parking-echart')); + var occupy_option = { + animationDuration:2000, + tooltip : { + trigger: 'axis', + textStyle:{ + fontSize:'12px' + }, + padding:[10,10,10,10], + formatter: function (params) { + //return params[0].value+'%' + return (params[0].value*100).toFixed(2) +'%' + }, + }, + + + grid: { + left: '0.8%', + right: '1%', + bottom: '10%', + top:'5%', + containLabel: true + }, + xAxis : [ + { + type : 'category', + boundaryGap : false, + data : xTimeDatas,//['08:00','10:00','08:00','10:00','08:00','10:00',], + axisTick:{ + show:false, + }, + axisLabel: { + rotate:40, + show: true, + textStyle: { + color: 'rgba(0,0,0,.8)', + fontFamily:'微软雅黑', + fontSize:'12px', + } + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + } + ], + yAxis : [ + { + type : 'value', + axisTick:{ + show:false + }, + // splitNumber:3, + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,.8)', + fontSize:'12px', + fontFamily:'微软雅黑', + }, + formatter: function (value) { + return value*100 +'%' + }, + }, + max:'1', + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + } + ], + series : [ + + { + name:'24小时占用率', + type:'line', + smooth:true, + //stack:'总量', + symbolSize:0, + areaStyle: {normal: { + color:'#f7c92b' + }}, + lineStyle:{ + normal: { + color:'#626c72', + width:0, + } + }, + zlevel:11, + data:occupyDatas//[0, 43.2, 40.0, 33.4, 14.9, 33.4,2.00] + + }, + + + ] + }; + occupy_echarts.setOption(occupy_option, true); + //24小时周转次数 + turnover_echarts = echarts.init(document.getElementById('berth-usage-echart')); + var turnover_option = { + animationDuration:2000, + tooltip : { + trigger: 'axis', + textStyle:{ + fontSize:'12px' + }, + padding:[10,10,10,10], + formatter: function (params) { + return params[0].value//+'%' + // return (params[0].value*100).toFixed(2) +'%' + }, + }, + + + grid: { + left: '0.8%', + right: '1%', + bottom: '10%', + top:'5%', + containLabel: true + }, + xAxis : [ + { + type : 'category', + boundaryGap : false, + data : xTimeDatas,//['08:00','10:00','08:00','10:00','08:00','10:00',], + axisTick:{ + show:false, + }, + axisLabel: { + rotate:40, + show: true, + textStyle: { + color: 'rgba(0,0,0,0.8)', + // align:'left', + fontSize:'12px', + } + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + } + ], + yAxis : [ + { + z:0, + axisTick:{ + show:false + }, + splitNumber:2, + axisLabel: { + show: true, + formatter: function (value) { + return value//*100 +'%' + }, + textStyle: { + color: 'rgba(0,0,0,0.8)', + fontSize:'12px', + + } + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + } + ], + series : [ + + { + name:'24小时周转次数', + type:'line', + smooth:true, + //stack:'总量', + symbolSize:0, + areaStyle: { + normal: { + color:'#469eef' + } + }, + lineStyle:{ + normal: { + color:'#626c72', + width:0, + opacity:1, + } + }, + z:11, + zlevel:11, + data:turnOverDatas//[0, 43.2, 25.1, 33.4, 25.1, 33.4,10.0] + }, + + + ] + }; + turnover_echarts.setOption(turnover_option, true); + + +}; +/** + *弹窗切换 + **/ +$('#ITD-alert-tab-wrap li').on('click', function () { + var _index = $(this).index(); + $('#ITD-alert-tab-wrap>li').eq(_index).addClass('ITD-alert-tab-active').siblings().removeClass('ITD-alert-tab-active'); + $('#ITD-alertcon-tab-wrap>li').eq(_index).removeClass('display-none').siblings().addClass('display-none'); + + if (0 == _index) { + // fun.alertIfo(); + } else { + getOccupyAndTurnOverDatas(); + drawOccupyAndTurnOver(); + } +}); +var flag = true; +$('#main-left').on('click',function () { + if(flag){ + $('#main-wrap').animate({'right':'-328px'}); + $(this).addClass('click_right'); + flag = false; + }else{ + $('#main-wrap').animate({'right':'18px'}); + $(this).removeClass('click_right'); + flag = true; + } + +}); + + diff --git a/assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.css b/assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.css new file mode 100644 index 0000000..1680df5 --- /dev/null +++ b/assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.css @@ -0,0 +1,786 @@ +.freespace{ + display: none !important; +} + +/*搜索*/ + +/*搜索*/ +.content{ + margin: 0px 0 12px; + width: 123px; + height: 30px; + border:1px solid #d9d9d9; + border-radius: 2px; +} +.content .select{ + width: 115px; + height: 30px; + margin: 0px auto; + position: relative; + cursor: pointer; +} +.content .select::after{ + content: ""; + display: block; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #888990; + top: 14px; + right: 12px; + position: absolute; + transition: all .3s ease-in; +} +.content .select p{ + width: 91px; + height: 32px; + line-height: 32px; + font-size: 12px; + font-family: "microsoft yahei"; + color: #626c72; + padding: 0px 15px; + margin: 0 !important; +} +.content .select ul{ + background: #fff; + width: 125px; + display: block; + font-size: 12px; + position: absolute; + top: 33px; + left: -5px; + max-height: 0px; + overflow: hidden; + transition: max-height .3s ease-in; +} +.content .select ul li{ + width: 100%; + height: 30px; + line-height: 30px; + padding: 0px 15px; + list-style: none; + color: #626c72; +} +.content .select ul li.Selected{ + background: #2484dd; + color: #FFFFFF; +} +.content .select ul li:hover{ + background: #D0D0D0; +} +@-webkit-keyframes slide-down{ + 0%{transform: scale(1,0);} + 25%{transform: scale(1,1.2);} + 50%{transform: scale(1,0.85);} + 75%{transform: scale(1,1.05);} + 100%{transform: scale(1,1);} +} +@keyframes slide-down{ + 0%{transform: scale(1,0);} + 25%{transform: scale(1,1.2);} + 50%{transform: scale(1,0.85);} + 75%{transform: scale(1,1.05);} + 100%{transform: scale(1,1);} +} +.content .select.open ul{ + max-height: 150px; + transform-origin: 50% 0; + -webkit-animation: slide-down .5s ease-in; + transition: max-height .2s ease-in; + border:1px solid #d9d9d9; +} +.content .select.open::after{ + transform: rotate(180deg); + transition: all .3s ease-in; + top: 14px; +} + +.ser-result-wrap{ + margin-right: 16px; + height: calc(100% - 112px); + height: -webkit-calc(100% - 112px); + height: -moz-calc(100% - 112px); + overflow-y: auto; +} +.ser-result-wrap li{ + cursor: pointer; + padding-left: 14px; + padding-top: 2px; + border-radius: 5px; + height: 70px; +} +.ser-result-wrap li:nth-of-type(odd){ + background-color: #f5f6f6; +} +.ser-result-wrap li div:nth-of-type(1){ + color: rgba(0,0,0,.45); + font-size: 14px; +} +.ser-result-wrap li div:nth-of-type(2){ + padding: 4px 0; + color: rgba(0,0,0,.45); + font-size: 12px; +} +.ser-result-wrap li div:nth-of-type(3){ + + color: rgba(0,0,0,.45); + font-size: 12px; +} +/*//弹窗*/ +.parkpop-content{ + width: 286px; + /*height: 185px;*/ + background: #fff; + padding-top: 30px; + padding-bottom: 24px; + box-shadow: 0 3px 10px rgba(155,166,171,.5); + /*box-shadow: 0px 1px 10px 0px rgba(50, 50, 50, 0.2);*/ +} +.parkpop-tit{ + margin-left: 43px; + width: 200px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + /*text-indent: 20px;*/ + text-align: center; + height: 18px; + font-size: 14px; + color: #1f2b3d; + /*background: url("../img/parkName_icon.png") no-repeat;*/ + /*background-size: 14px 17px;*/ + /*background-position: 0px 0px;*/ +} +.parkpop-tit img{ + display: inline-block; +} +/*.parkpop-tit span{ + height: 18px; + line-height: 18px; + display: inline-block; +}*/ + +.parkpop-cont{ + margin-top: 25px; + width: 254px; + height: 88px; + margin-left: 18px; +} +.parkpop-freecont{ + float: left; + width: 138px; + height: 76px; + background-color: #ddd; + padding-left: 10px; + padding-top: 12px; + border-radius: 4px; +} +.parkpop-allnumcont{ + float: left; + width: 104px; + height: 88px; + background-color: #26c597; + border-radius: 4px; + color: #fff; +} +.freenum-cont{ + height: 44px; + /*width: ;*/ +} +.freespace-num{ + width: 30px; + height: 44px; + background-color: #202020; + color: #26c597; + line-height: 44px; + text-align: center; + font-size: 32px; + float: left; + margin-right: 4px; +} +.freespace-numtit{ + font-size: 14px; + height: 16px; + line-height: 16px; + width: 100%; + margin-top: 8px; + padding-left: 27px; + color: #1f2b3d; +} +.freespace-num:last-child{ + margin-right:0; +} +.allnum-Num{ + height: 58px; + line-height:58px; + width: 100%; + text-align: center; + font-size: 32px; +} +.allspace-tit{ + height: 30px; + line-height: 30px; + font-size: 14px; + text-align: center; +} +/*--------双击停车场显示详细信息-----------*/ +.model-right{ + position: absolute; + top: 70px; + left: 420px; + width: 710px; + height: 518px; + padding: 24px; + background-color: #fff; + display: none; + box-shadow: 0 3px 10px rgba(155,166,171,.5); +} +.m_r_bar { + margin-bottom: 0; + padding: 0; + position: relative; + height: 50px; + width: 300px; + box-sizing: border-box; + font-size: 16px; + border-radius: 4px; + border: 1px solid #f5f6f6; + cursor: pointer; +} +.popClose{ + position: absolute; + top: 20px; + right: 20px; + width: 15px; + height: 16px; + background: url("../img/parkPopicon.png") no-repeat; + background-size: 100% 100%; + cursor: pointer; +} +.m_r_bar li.bar_active{ + +} +.m_r_bar li{ + float: left; + height: 50px; + line-height: 50px; + width: 148px; + padding-left: 50px; + color: #626c72; + box-sizing: border-box; +} +.m_r_bar li:first-child{ + background: url(../img/parking-icon.png) no-repeat; + background-position: 26px center; +} +.m_r_bar li:last-child{ + background: url("../img/pdaIcon.png") no-repeat; + background-position:26px center; +} + +.m_r_bar li:first-child.bar_active{ + background: url("../img/parkingActive-icon.png") no-repeat; + background-position: 26px center; + background-color: #f5f6f6; + color: #1f2b3d; + box-shadow: 1px 1px 10px rgba(155,166,171,.5); +} +.m_r_bar li:last-child.bar_active{ + background: url("../img/pda-icon.png") no-repeat; + background-position: 26px center; + background-color: #f5f6f6; + color: #1f2b3d; + box-shadow: 1px 1px 10px rgba(155,166,171,.5); + +} + +.m-model-main{ + margin-top: 24px; + width: 100%; + height: 440px; +} +.m_l_main{ + height: 100%; + width: 296px; +} +.m_r_main{ + height: auto; + margin-left: 16px; + width: 378px; + background: #f5f6f6; + margin-top: 52px; + padding-bottom: 16px; +} +.m_l_top{ + height: 36px; + line-height: 36px; + width: 100%; +} + +.m_lBg{ + width: 36px; + height: 36px; + background: url("../img/parkData-icon.png") no-repeat; + background-size: 100% 100%; +} +.parkname-pop{ + margin-left: 12px; + width: 240px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + color: #626c72; +} +.m_l_card{ + margin-top: 16px; + height: auto; +} +.pda-information-t { + height: 36px; + line-height: 36px; + background-color: #fafafa; + display: -webkit-box; + display: -moz-box; + display:-webkit-flex; + display: -ms-flexbox; + display:flex; + +} +.pda-information-t li{ + font-size: 14px; + font-weight: 600; + color: rgba(0,0,0,.45) !important; + text-align: center; + flex: 1; +} +.pda-information-t li:nth-of-type(1){ + flex: 1.5; +} +.pda-information-t li:nth-of-type(2){ + flex: 2; +} +.pda-information >li{ + height: 36px; + line-height: 36px; + border-bottom: 1px solid #f2f2f2; + display: -webkit-box; + display: -moz-box; + display:-webkit-flex; + display: -ms-flexbox; + display:flex; + font-size: 14px; + background-color: #fcfcfc; + color: rgba(0,0,0,.6); +} +.pda-information{ + overflow-y: auto; + height: 355px; +} +.pda-information >li div{ + text-align: center; + flex: 1; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.pda-information >li div:nth-of-type(1){ + flex: 1.5; +} +.pda-information >li div:nth-of-type(2){ + flex: 2; +} +.pda-information >li div img{ + vertical-align: text-bottom; + margin-left: 10px; +} +.berth-img-l{ + width: 552px; + height: 50px; + background-color: #f5f6f6; + margin-right: 22px; + padding: 26px 0; + display: flex; +} +.berth-img-l li{ + text-align: center; + flex: 1; +} +.berth-img-l li:nth-of-type(1){ + +} +.berth-img-l li:nth-of-type(1) div:nth-of-type(1){ + color: #f7752e; + font-size: 30px; + line-height: 30px; +} +.berth-img-l li:nth-of-type(2) div:nth-of-type(1) span:nth-of-type(1){ + color: #f7752e; + font-size: 30px; + line-height: 30px; +} +.berth-img-l li:nth-of-type(2) div:nth-of-type(1) span:nth-of-type(2){ + color: #1f2b3d; + font-size: 30px; + line-height: 30px; +} +.berth-img-l li:nth-of-type(3) div:nth-of-type(1){ + color: #1f2b3d; + font-size: 30px; + line-height: 30px; +} +.berth-img-l li div:nth-of-type(2){ + font-size: 13px; + color: #626c73; + padding: 1px 5px 2px; + width: 58px; + background-color: #fff; + border-radius: 10px; + margin: 0 auto; +} +.berth-img-l li:nth-of-type(2){ + border-right: 1px solid #b8b9bc; + border-left: 1px solid #b8b9bc; +} +.car-status{ + height: 285px; + overflow-y: auto; +} +.car-status li{ + width: 131px; + height: 60px; + text-align: center; + line-height: 60px; + margin: 0 8px 12px 0; + float: left; + font-size: 24px; + color: #fff; + background-size: 100% 100%; +} +.car-status li:nth-of-type(5n+0){ + margin-right: 0; +} +/*地图*/ +/*paekNamePop*/ +.showplName{ + background-color: #1E95CD; + border: none; + padding: 1px 15px; + white-space: nowrap; + font-style: normal; + font-variant: normal; + font-weight: normal; + font-stretch: normal; + font-size: 12px; + line-height: 32px; + font-family:"微软雅黑"; + z-index: 80; + color: white; + height: 32px; + border-radius: 20px !important; +} +/*pdaname*/ +.showpdaName{ + height: 50px; + text-align: center; + line-height: 24px; + background-color: #1E95CD; + border: none; + padding: 1px 15px; + white-space: nowrap; + font-style: normal; + font-variant: normal; + font-weight: normal; + font-stretch: normal; + font-size: 12px; + font-family:"微软雅黑"; + z-index: 80; + border-radius: 50px!important; + color: #fff; +} +.park_berth_pda_none{ + color:red; + text-align: center; +} + + +/*new弹窗css*/ +.ITD-alert-tab-wrap{ + padding-top: 7px; +} +.ITD-alert-tab-wrap li{ + cursor: pointer; + float: left; + height: 60px; + line-height: 60px; + padding: 0 10px; + margin-right: 70px; +} +.ITD-alert-tab-active{ + border-bottom: 3px solid #5fe98f; +} + + +.caryard-basic-ino-name{ + height: 57px; + line-height: 57px; +} +.caryard-basic-borderbototm{ + border-bottom: 1px solid #f0f0f0; +} +.caryard-basic-ifo-park-height{ + height: 34px; + line-height: 34px; +} + +.caryard-basic-ifo-park span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../img/index-card-title.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.caryard-basic-ifo-park-wrap li{ + padding-left: 23px; +} +.caryard-basic-ifo-park-wrap li div:nth-of-type(1){ + width: 50%; +} +.caryard-basic-ifo-park-wrap li div span:nth-of-type(2){ + width: 60px; + display: inline-block; + text-align:justify; + text-align-last:justify; +} +.caryard-basic-ifo-type{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.caryard-basic-ifo-device{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -54px 0; +} +.caryard-basic-ifo-total{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image:url(../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -18px 0; +} +.caryard-basic-ifo-entrance{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -16px 0; +} +.caryard-basic-ifo-business{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -32px 0; +} +.caryard-basic-ifo-address{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -48px 0; +} +.caryard-basic-ifo-address-wrap{ + max-width: 310px; +} +.caryard-basic-ifo-fees{ + height: 37px; + line-height: 37px; +} +.caryard-basic-ifo-fees span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -36px -18px ; +} +.caryard-basic-ifo-fees-wrap li{ + padding-left: 23px; + height:67px ; +} +.caryard-basic-ifo-fees-wrap li div{ + float: left; +} +.caryard-basic-ifo-fees-smallicon{ + width: 51px; + height: 51px; + background-image:url("../img/caryard-basic-ifo-fees-wrap.png") ; + background-repeat: no-repeat; + background-position: 0 0; + margin-top: 8px; + margin-right: 30px; +} +.caryard-basic-ifo-fees-bigicon{ + width: 51px; + height: 51px; + background-image:url("../img/caryard-basic-ifo-fees-wrap.png") ; + background-repeat: no-repeat; + background-position: -51px 0; + margin-top: 8px; + margin-right: 30px; +} +.caryard-basic-ifo-fees-type{ + width: 70px; + line-height: 67px; +} +.caryard-basic-ifo-fees-rule{ + width: 150px; + margin-right: 65px; + line-height: 24px; + padding-top: 10px; +} +.caryard-basic-ifo-fees-max{ + line-height: 67px; +} +.caryard-basic-ifo-fees-max{ + width: 280px; +} +.caryard-basic-ifo-photo{ + height: 37px; + line-height: 37px; +} +.caryard-basic-ifo-photo span{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /* margin-top: -3px; */ + background-image: url(../img/caryard-basic-ifo.png); + background-repeat: no-repeat; + background-position: -64px 0; +} +.caryard-basic-ifo-photo-wrap{ + height:75px; + padding: 13px 0 0; +} +.caryard-basic-ifo-photo-wrap li{ + float: left; + margin-right: 10px; + width: 98px; + height: 62px; +} +.caryard-basic-ifo-photo-wrap li img{ + width: 100%; + height: 100%; +} +.caryard-berth-ifo-wrap{ + height: 57px; + line-height: 57px; +} +.caryard-berth-ifo-number span:nth-of-type(1){ + margin-right: 60px; +} +.caryard-berth-ifo-number>span:nth-of-type(1):before{ + content: ''; + position: absolute; + left: -20px; + top:3px; + width: 12px; + height: 14px; + background: #5fe98f; +} +.caryard-berth-ifo-number>span:nth-of-type(2):before{ + content: ''; + position: absolute; + left: -20px; + top:3px; + width: 12px; + height: 14px; + background: #f6f5f5; + border: 1px solid #dbdbdb; +} +.caryard-berth-ifo-main{ + height: 421px; + overflow-y: auto; +} +.caryard-berth-ifo-main li div{ + width: 70px; + height: 30px; + line-height: 30px; + text-align: center; + font-size: 12px; + color:rgba(0,0,0,.8); + float: left; + margin-right: 5px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin-bottom: 5px; +} +.caryard-berth-ifo-main li div:nth-last-of-type{ + margin-right: 0; +} +.caryard-berth-ifo-main li:nth-child(odd){ + margin-bottom: 3px; +} +.caryard-berth-ifo-main li:nth-child(even){ + margin-bottom: 35px; +} +.caryard-berth-ifo-status-green{ + background-color: #5fe98f; +} +.caryard-berth-ifo-status-gray{ + background-color: #f6f5f5; + border: 1px solid #dbdbdb; +} +#ITD-alertcon-tab-wrap>li{ + height: 478px; + overflow: hidden; +} +/*.ser-inp { + font-size: 0; + box-shadow: 0 3px 10px rgba(155,166,171,.5); + border-radius: 4px; + overflow: hidden; + position: absolute; + right: 18px; + top: 30px; + margin-bottom: 10px; + height: 40px; + z-index: 100;}*/ +/*table pda*/ diff --git a/assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.html b/assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.html new file mode 100644 index 0000000..6e8f7bd --- /dev/null +++ b/assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.html @@ -0,0 +1,183 @@ +
    + +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +
    +
    +

    全部

    +
      +
    • 全部
    • +
    • 西城区
    • +
    • 东城区
    • +
    +
    +
    + +
      + + + + + +
    +
    +
    《上一页
    +
    +
      +
    • 1
    • +
    • 2
    • +
    • 3
    • +
    • 4
    • +
    • 5
    • +
    +
    +
    下一页》
    +
    + +
    +
    +
    + 没有搜到相关内容 +
    +
    + +
    + + +
    + + + + + + + + + + + + + + + + +
    + \ No newline at end of file diff --git a/assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.js b/assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.js new file mode 100644 index 0000000..2188409 --- /dev/null +++ b/assets/pages/scripts/operMonFile/pdaMon/pdamonitoring.js @@ -0,0 +1,1189 @@ +/*侧栏*/ +$(function(){ + $(".select p").click(function(e){ + $(".select").toggleClass('open'); + e.stopPropagation(); + }); + + $(".content .select ul li").click(function(e){ + var _this=$(this); + $(".select > p").text(_this.text()); + $(".select > p").attr('data-value',_this.attr('data-value')); + _this.addClass("Selected").siblings().removeClass("Selected"); + $(".select").removeClass("open"); + e.stopPropagation(); + }); + + $(document).on('click', function () { + $(".select").removeClass("open"); + }); + //默认全部 + $("#ser-button").click(); +}); + +$('.popClose').on('click',function () { + $('#m_r_bar li').eq(1).removeClass('related_data'); + $('#model-right').hide(); +}); +//m_r_bar点击事件 + +$('#m_r_bar').on('click','li',function () { + var index = $(this).index(); + $(this).addClass('bar_active').siblings('li').removeClass('bar_active'); + $('.m-model-main .m_r_bar_wrap').addClass('display-none'); + $('.m-model-main .m_r_bar_wrap').eq(index).removeClass('display-none'); + + if(index==1){ + if($(this).hasClass('related_data')){ + + }else{ + $(this).addClass('related_data'); + // drawOccupyAndTurnOver(); + } + } +}); +function getQueryParam(){ + var serVal = $.trim($('#ser-input').val()); + var area_text = $(".select .Selected").attr('data-value'); + var countryId = []; + var plNosTemp = plNos; + if (area_text) { + countryId = area_text.split(','); + } + var req = { + plNos:plNosTemp, + sysCode: sysComm.sysCode, + cityId: sysComm.cityId, + parkNameOrAddress: serVal, + countryId: countryId, + baseRequest: { + pageNum: 1, + pageSize: 10 + }, + flag:0, + curPage:0, + index:0, + selector:null + } + return req; +} +//回车事件 +$(function(){ + $(document).keydown(function(event){ + if(event.keyCode==13){ + $("#ser-button").click(); + } + }); +}); +//根据条件分页查询停车场 +function queryParkingLotByCondition1(req){ + $('#m_r_bar li').eq(1).removeClass('related_data'); + $('#model-right').hide(); + var opt = { + method: "post", + data: JSON.stringify(req), + url: dataUrl.util.queryParkLotByCountryAndParkName(), + async: false, + success: function (res, xhr, status) { + console.log(res) + //清空内容 + $('#pda-result').empty(); + if (res.code == '8888') { + var pageCount = res.data.pages == undefined || null == res.data.pages ? 0 : res.data.pages; + createHtml(res.data); + //渲染地图 + /*var datas = res.data.dataList; + var parkDataTemp = []; + $.each(parkData, function (index, item) { + $.each(datas, function(_index,_item) { + if(_item.plNo == item.parkNo){ + parkDataTemp.push(item); + } + }); + }); + console.log(parkDataTemp); + fun.drawMarker(parkDataTemp);*/ + + var flag = req.flag; + //icon_load(pageCount); + if(flag==0){//查询 + icon_load(pageCount); + } + else if(flag==1){//页码 + num_click(pageCount,req.curPage,req.selector); + } + else if(flag==-1){//下一页 + pageDown_click(pageCount,req.curPage,req.index); + } + else if(flag==-2){//上一页 + pageUp_click(pageCount,req.curPage,req.index); + } + } + } + } + sysAjax(opt); + + /* //查询所有的,不分页 + if(req.flag == 0){ + req.baseRequest.pageNum = 1; + req.baseRequest.pageSize = 0; + var opt = { + method: "post", + data: JSON.stringify(req), + url: dataUrl.util.queryParkLotByCountryAndParkName(), + async: false, + success: function (res, xhr, status) { + console.log(res) + + if (res.code == '8888') { + + var datas = (res.data.dataList)==null?[]:(res.data.dataList); + var parkDataTemp = []; + $.each(parkData, function (index, item) { + $.each(datas, function(_index,_item) { + if(_item.plNo == item.parkNo){ + parkDataTemp.push(item); + } + }); + }); + fun.drawMarker(parkDataTemp); + + } + } + } + sysAjax(opt); + }*/ +} +//页面加载完成是与后台数据交互,后台返回总页数(如果只有总条数的话就自己算。Math.ceil(总条数/每条多少页)=总页数) +//如果pageCount不大于1 + +function createHtml(data){ + if(data.dataList==null||data.dataList.length<1){ + $('#pda-result').empty().text('没有搜索到匹配内容'); + $('#pageGro').hide(); + $('#ser-wrap').show(); + return; + } + + var html = ''; + var list = data.dataList == undefined || data.dataList == null ? [] : data.dataList; + var i = 1; + $.each(list, function (index, item) { + var parkType; + if (1 == item.plType) { + parkType = '路侧' + } else if (2 == item.plType) { + parkType = '封闭' + } else { + parkType = '未知' + } + var berthNum = item.plBerthNum; + var plName = item.plName; + var plNo = item.plNo; + //html+='
  • '+ + // '
    '+(i++)+'.'+plName+'
    '+ + // '
    类型 : '+parkType+'
    '+ + // '
    车位总数 : '+berthNum+'
    '+ + // '
  • '; + //new + var no = ""; + html += '
  • ' + + '
    ' + no + '' + commonClass.cutString(plName, 10) + '
    ' + + '
    类型 : ' + parkType + '
    ' + + '
    车位总数 : ' + berthNum + '
    ' + + '
    地址 : ' + commonClass.cutString(item.plAddress, 12) + '
    ' + + '
  • '; + }); + //滚动 + $('#pda-result').animate({ + scrollTop: $('#pda-result').offset().top-1000 + }, 150); + $('#pda-result').empty().html(html); + $('#ser-wrap').show(); + $('#pageGro').show(); +}; + +/*搜索*/ +$('#ser-button').on('click',function () { + commonClass.setPopupVisible(false); + + var req = getQueryParam(); + req.flag=0;//0-查询按钮触发,1-页码触发,-1后一页,-2 前一页 + queryParkingLotByCondition1(req); + + //songcxa + $(".cancelBtn").css("display", "block"); +}); + +/* + @ songcxa + @ 搜索功能 + */ +var searchOption = { + ini: function () { + var searchBox = $('#ser-input'); + /* + @ inputID输入框id + @ popID提示框id + @ queryOption(url、queryParames请求参数post、itemsSelectCallback提示框选择事件) + */ + var option = { + url: dataUrl.util.queryParkLotByCountryAndParkName(), + async: false, + queryParames: function () { + return getQueryParam(); + }, + itemsSelectCallback: function (ev) { + searchBox.val(ev); + } + }; + // commonClass.popupObject("ser-input", "ser-resPanel", option); + }, +} + +/*end*/ + +//点击分页按钮触发 +documentBindFunc.on("click","#pageGro li",function(){ + var pageNum = parseInt($(this).html());//获取当前页数 + var selector = $(this); + + var req = getQueryParam(); + req.baseRequest.pageNum = pageNum; + req.curPage = pageNum; + req.selector = selector; + req.flag = 1; + queryParkingLotByCondition1(req); + +}); + +//点击上一页触发 +documentBindFunc.on("click","#pageGro .pageUp",function(){ + var pageNum = parseInt($("#pageGro li.on").html());//获取当前页 + var index = $("#pageGro ul li.on").index();//获取index + + var req = getQueryParam(); + req.baseRequest.pageNum = pageNum-1; + req.curPage = pageNum; + req.index = index; + req.flag = -2; + queryParkingLotByCondition1(req); + +}); + +//点击下一页触发 +documentBindFunc.on("click","#pageGro .pageDown",function(){ + var pageNum = parseInt($("#pageGro li.on").html());//获取当前页 + var index = $("#pageGro ul li.on").index();//获取index + + var req = getQueryParam(); + req.baseRequest.pageNum = pageNum+1; + req.curPage = pageNum; + req.index = index; + req.flag = -1; + queryParkingLotByCondition1(req); + + +}); + +function checkhHtml5() { + if (typeof(Worker) === "undefined") { + if (navigator.userAgent.indexOf("MSIE 9.0") <= 0) { + alert("定制个性地图示例:IE9以下不兼容,推荐使用百度浏览器、chrome、firefox、safari、IE10"); + } + + } +} +function selectOptionFun(){ + $(".select p").click(function(e){ + $(".select").toggleClass('open'); + e.stopPropagation(); + }); + + $(".content .select ul li").click(function(e){ + var _this=$(this); + $(".select > p").text(_this.text()); + $(".select > p").attr('data-value',_this.attr('data-value')); + _this.addClass("Selected").siblings().removeClass("Selected"); + $(".select").removeClass("open"); + e.stopPropagation(); + }); + + $(document).on('click',function(){ + $(".select").removeClass("open"); + }) + //初始化按键 + $(document).keydown(function (event) { + if (event.keyCode == 13) { + $("#ser-button").click(); + } + }); + //默认全部 + $("#ser-button").click(); + //输入框提示 + searchOption.ini(); +} + +//停车场 渲染 +var plNos =[]; +var parkData=[]; +var first_flag=false; +// var clear_flag = false; +var parkingfun = { + init: function () { + parkingfun.initgetParkingLotGeo(first_flag); + //fun.setDist(sysComm.cityId); + //alert(document.documentElement.clientHeight) + var height = document.documentElement.clientHeight - 150; + $('#main-wrap').height(height) + }, + + setDist:function (cityId) { + $(".select").empty(); + cityId+=''; + var allDist = []; + var distArray = cityData.dist[cityId]; + var html=''; + $.each(distArray,function (index,item) { + allDist.push(item.id); + html+="
  • "+item.areaName+"
  • " + + }); + $(".select").html("

    全部

    • 全部
    • "+html+"
    "); + selectOptionFun(); + }, + //设置中心城市信息 + setCityInfo: function(){ + + sysComm.cityId = firstPark.plCityId; + sysComm.cityName = firstPark.plCityName; + sysComm.provId = firstPark.plProvinceId; + sysComm.point_lng = firstPark.lonId; + sysComm.point_lat = firstPark.latId; + + parkingfun.setDist(sysComm.cityId); + $(".cityName").text(sysComm.cityName); + }, + //获取停车场信息 + initgetParkingLotGeo: function (first_flag) { + var parkLot = fn.getParkLot(3); + + var plnos = []; + $.each(parkLot, function (index, item) { + if(item.type == 1){ + plnos.push(item.code); + } + }) + // console.log(plnos) + parkData = []; + plNos=[]; + var req = { + sysCode: sysComm.sysCode, + plNos: plnos, + + } + var opt = { + method: 'post', + url: dataUrl.util.queryParkingLotGeoByPlNos(), + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var data = res.data; + $.each(data, function (index, item) { + if(item.plType == 1) {//过滤掉封闭停车场 + var temp = { + parkNo: item.plNo, + parkName: item.plName, + pointX: item.lonId, + pointY: item.latId, + allnum: item.plBerthNum, + plType: item.plType, + free: item.freeBrethNum + }; + plNos.push(item.plNo); + parkData.push(temp); + } + }); + if(data.length > 0){ + firstPark = data[0]; + } + if(data.length > 1){ + firstPark = data[1]; + } + parkingfun.setCityInfo(); + //查询所有停车场但不显示 + fun.getParkingLotGeo(); + //显示pda坐标及icon + fun.getParkingPdaGeo(); + //查询围栏半径 + fun.getDict('PARK_ENCLOSURE_RADIUS',first_flag); + // fun.drawMarker(parkData); + + } + } + } + sysAjax(opt); + }, +} +parkingfun.init(); + +//左侧弹窗 +documentBindFunc.on('click','#pda-result li',function () { + // 初始化基本信息 + $('#ITD-alert-tab-wrap li').eq(0).click(); + var that = $(this); + var plNo = that.attr('data-value'); + var plName = that.find('div').eq(0).attr('data-value'); + var berthNum = that.find('div').eq(2).attr('data-value'); + // queryInfoByPlNo(plNo,plName,berthNum); + // loadParkDatas(plNo,berthNum); + //将地图上的数据进行过滤 + var parkDataTemp = []; + $.each(parkData, function (index, item) { + if(plNo == item.parkNo){ + parkDataTemp.push(item); + } + }); + + // fun.drawMarker(parkDataTemp); + drawParkAndPdaMarker(parkDataTemp,true); +}); + +//地图 +//pda坐标 +var pdaData=[]; +var fun = { + //获取停车场PDA信息 + getParkingPdaGeo: function (flag) { + var plNos = []; + var data = fn.getParkLot(3); + if(data.length<1){ + plNos.push(-1); + } + else{ + $.each(data, function (index, item) { + plNos.push(item.code); + }) + } + + + pdaData = []; + + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + pdaType:0, +// pdaTypes:[0,1], + + } + var opt = { + method: 'post', + url: dataUrl.util.queryParkPdaInfo(), + data: JSON.stringify(req), + async: false, + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var data = res.data; +// console.log(data) + $.each(data, function (index, item) { + var temp = { + parkNo: item.plNo, + pdaNo: item.pdaNo, + plName:item.plName, + pointX: item.lonId, + pointY: item.latId, + distance: item.distance, + chargerCode: item.chargerCode, + chargerName: item.chargerName, + berthRangeNo:item.berthRangeNo, + berthRangeName:item.berthRangeName, + + } + pdaData.push(temp); + }); + if(!flag){ + var map = new BMap.Map('allmap', {enableMapClick: false}); + //默认加载 + var point = new BMap.Point(sysComm.point_lng, sysComm.point_lat); + var zoom = 13; + map.centerAndZoom(point, zoom); + map.setCurrentCity(sysComm.cityName); // 设置地图显示的城市 此项是必须设置的 + if(pdaData.length>0){ + fun.drawPdaMarker(pdaData,map,0); + } + } + + + } + } + } + sysAjax(opt); + }, + //设置中心城市信息 + setCityInfo: function(){ + + sysComm.cityId = firstPark.plCityId; + sysComm.cityName = firstPark.plCityName; + sysComm.provId = firstPark.plProvinceId; + sysComm.point_lng = firstPark.lonId; + sysComm.point_lat = firstPark.latId; + $(".cityName").text(sysComm.cityName); + //fun.setDist(sysComm.cityId); + }, + //获取停车场信息 + getParkingLotGeo: function () { + var parkLot = fn.getParkLot(); + var plnos = []; + $.each(parkLot, function (index, item) { + if(item.type == 1){ + plnos.push(item.code); + } + + }) + + parkData = []; + plNos = []; + var req = { + sysCode: sysComm.sysCode, + plNos: plnos, + + } + var opt = { + method: 'post', + url: dataUrl.util.queryParkingLotGeoByPlNos(), + async: false, + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var data = res.data; + $.each(data, function (index, item) { + if(item.plType == 1){//过滤掉封闭停车场 + var temp = { + parkNo: item.plNo, + parkName: item.plName, + pointX: item.lonId, + pointY: item.latId, + allnum: item.plBerthNum, + plType: item.plType, + free: item.freeBrethNum, + rate:'0%' + }; + + if (null !== (temp.allnum-temp.free) && null != temp.allnum) { + rate = (temp.allnum-temp.free) / temp.allnum * 100; + rate =new Number(rate).toFixed(2) + '%'; + temp.rate = rate; + } + plNos.push(item.plNo); + parkData.push(temp); + } + }); + lonPark= data[0].lonId; + latPark = data[0].latId; + if(data.length > 0){ + firstPark = data[0]; + } + if(data.length > 1){ + firstPark = data[1]; + } + fun.setCityInfo(); + // console.log(parkData) + // 一开始就要展示所有数据 + // drawParkAndPdaMarker(parkData); + + } + } + } + sysAjax(opt); + }, + //根据输入名称模糊匹配停车场 + getParkLotInfoByPlNameLike: function () { + var inputVal = $("#ser-input").val(); + if (undefined == inputVal || null == inputVal || inputVal == '') { + drawParkAndPdaMarker(parkData,true); + return; + + $('#ser-inp-effect').text('请输入停车场名称'); + $('#ser-inp-effect').show(); + return; + }else{ + $('#ser-inp-effect').hide(); + } + parkDatas = []; + $.each(parkData, function (index, item) { + if (item.parkName.indexOf(inputVal)>=0) { + + var rate = ' '; + if (null !== (item.allnum-item.free) && null != item.allnum) { + rate = (item.allnum-item.free) / item.allnum * 100; + rate =new Number(rate).toFixed(2) + '%'; + item.rate = rate; + } + parkDatas.push(item); + + //fun.getBerthInfoByPlNo(item.parkNo, item.free, item.allnum, rate, item.plType,item.parkName); + //fun.getPDAInfoByPlNo(item.parkNo); + } + }); + if(parkDatas.length<1){ + $('.cancelBtn').css("display", "block"); + $('#ser-inp-effect').text('没有搜到相关内容'); + $('#ser-inp-effect').show(); + return; + } + //drawParksAndPdas(parkDatas); + drawParkAndPdaMarker(parkDatas,true); + + }, + //根据停车场编码获取车位信息 + getBerthInfoByPlNo: function (plNo, freeBerth, allBerth, rate, plType,plName) { + //console.log(plNo, freeBerth, allBerth, rate, plType,plName); + $('#caryard-berth-ifo-main').empty(); + $('#freeBerthNum').text(''); + $('#useBerthNum').text(''); + $('#allBerthNum').text(''); + var html=""; + var allBerths = 0; + var freeBerths = 0; + $('.parkname-pop').text(plName); + var plTypeStr = '未知'; + if (plType == 1) { + plTypeStr = "路侧" + } + if (plType == 2) { + plTypeStr = "封闭" + } + $('.berth-img-l').find('div').eq(4).text(plTypeStr); + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + sysCode: sysComm.sysCode, + plNo: plNo + } + var opt = { + method: 'post', + url: dataUrl.util.queryBerthByBerthForPage(), + async: false, + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + var data = res.data.rows; + objdata = res.data.rows; + + html+='
  • '; + if (data.length == 0) { + + var rate = '0.00%'; + if ( 0 != allBerth) { + rate = (allBerth-freeBerth) / allBerth * 100; + rate = new Number(rate).toFixed(2) + '%'; + } + $('#freeBerthNum').text(parseInt(freeBerth)); + $('#useBerthNum').text(parseInt(allBerth)-parseInt(freeBerth)); + $('#allBerthNum').text(parseInt(allBerth)); + if(freeBerth==0){ + for (var k=(allBerth-freeBerth);k>0;k--){ + if((allBerth-freeBerth-k)%9 == 0){ + html+='
  • '; + } + html+=('
    ' + 'B100'+k + '
    '); + }; + }else{ + for (var i=freeBerth;i>0;i--){ + if((freeBerth-i)%9 == 0){ + html+='
  • '; + } + html+=('
    ' + 'B100'+i + '
    '); + }; + for (var k=allBerth;k>freeBerth;k--){ + if((allBerth-k)%9 == 0){ + html+='
  • '; + } + html+=('
    ' + 'B100'+k + '
    '); + }; + } + + }else{ + + for(var m=data.length-1;m>=0;m--){ + if((data.length-1-m)%15 == 0){ + html+='
  • '; + } + allBerths+=1; + if (data[m].isOccupy == 1) { + html+=('
    ' + data[m].berthNo + '
    '); + } else if (data[m].isOccupy == 2) { + freeBerths+=1; + html+=('
    ' + data[m].berthNo + '
    '); + } + } + var rate = '0.00%'; + if ( 0 != allBerths) { + rate = (allBerths-freeBerths) / allBerths * 100; + rate = new Number(rate).toFixed(2) + '%'; + } + $('#freeBerthNum').text(parseInt(freeBerths)); + $('#useBerthNum').text(parseInt(allBerths)-parseInt(freeBerths)); + $('#allBerthNum').text(parseInt(allBerths)); + } + + } + + } + } + sysAjax(opt); + html+='
  • '; + $('#caryard-berth-ifo-main').html(html); + //$('#caryard-berth-ifo-main').css('display', 'block'); + }, + //根据停车场编码获取PDA信息 + getPDAInfoByPlNo: function (plNo,parkName) { + var parknames=parkName; + $('#pdaPop-tcc').text(parknames); + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + sysCode: sysComm.sysCode, + plNo: plNo, + pdaType:0, +// pdaTypes:[0,1], + } + var opt = { + method: 'post', + url: dataUrl.util.queryParkPdaMonitor(), + async: false, + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var data = res.data; + $('.pda-information').html(''); + // + + if(data.length == 0){ + $('.pda-information').append('
    未查询到具体PDA信息数据
    '); + return; + } + $.each(data, function (index, item) { + $('.pda-information').append( + "
  • "+ + "
    "+areaList(item.parkAreaNames)+"
    "+ + "
    "+(item.pdaNo == null?'':item.pdaNo)+"
    "+ + "
    "+(item.chargerCode == null?'':item.chargerCode)+"
    "+ + "
    "+(item.onlineFlg == "0"?'已签到':'已签退')+(item.onlineFlg == "0"?"":"")+"
    "+ + "
    "+(item.distance).toFixed(1)+"米
    "+ + "
  • "); + }); + function areaList(regions){ + + var areaStr = ''; + if(regions != null && regions !='' && regions != undefined){ + areaStr = regions.replace('[','').replace("]",''); + } + + /*if(regions != undefined && regions.length > 0){ + $.each(regions, function (index, item) { + areaStr +=''+(item.parkAreaName == null?'':item.parkAreaName)+''; + }) + }*/ + return areaStr; + } + } + } + } + sysAjax(opt); + }, + getDict: function (dictKind,first_flag) { + var data = new Array(); + if (undefined == dictKind) { + return null; + } + + var req = { + sysCode: sysComm.sysCode, + sysCodeKind: dictKind + } + + var opt = { + data: JSON.stringify(req), + method: "POST", + async: false, + url: dataUrl.util.getSysCodeValueByKind(), + async: false, + success: function (res) { + console.log(res) + if (res.code == '8888') { + //return res.data; + km = res.data[0].codeValue; + + // 一开始就要展示所有数据 + drawParkAndPdaMarker(parkData,first_flag); + } + } + } + sysAjax(opt); + }, + drawPdaMarker:function(pdaData,map,flag){ + var clear_flag = false; + //var map; //Map实例 + //后台传过来 + //map = new BMap.Map('allmap', {enableMapClick: false}); + //第1步:设置地图中心点,当前城市 + // var point = new BMap.Point(sysComm.point_lng, sysComm.point_lat); + //第2步:初始化地图,设置中心点坐标和地图级别。 + //map.centerAndZoom(point, zoom); + //map.setCurrentCity(sysComm.cityName); // 设置地图显示的城市 此项是必须设置的 + //第3步:启用滚轮放大缩小 + map.enableScrollWheelZoom(true); + //第4步:向地图中添加缩放控件 + var ctrlNav = new window.BMap.NavigationControl({ + // 靠右上角位置 + anchor: BMAP_ANCHOR_TOP_RIGHT, + // LARGE类型 + type: BMAP_NAVIGATION_CONTROL_ZOOM, + //偏离值 + offset: new BMap.Size(55, 80) + }); + // map.addControl(ctrlNav); + //第5步:检测浏览器兼容 + function checkhHtml5() { + if (typeof(Worker) === "undefined") { + if (navigator.userAgent.indexOf("MSIE 9.0") <= 0) { + alert("定制个性地图示例:IE9以下不兼容,推荐使用百度浏览器、chrome、firefox、safari、IE10"); + } + + } + } + checkhHtml5(); + + var marker = []; + var newpoiX = null;//坐标 + var newpoiY = null; + var parkNo = null;//编号 + if(flag == 0){//默认加载的 + for (var i = 0; i < pdaData.length; i++) { + newpoiX = pdaData[i].pointX; + newpoiY = pdaData[i].pointY; + parkNo = pdaData[i].parkNo; + var point = new BMap.Point(newpoiX, newpoiY); + //添加pda名称 + var myIcon = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/pdaIco.png", + new BMap.Size(29, 40), { + offset: new BMap.Size(10, 40), + textColor: '#fff' + }); + + marker[i] = new BMap.Marker(point, {icon: myIcon}); + map.addOverlay(marker[i]); + } + }else if(flag == 1){//条件查询的 + for(var i=0;i
    '+berthRangeName+'
    '+chargerName+'
    ', { + offset: new BMap.Size(10, -35), //label的偏移量,为了让label的中心显示在点上 + position: pdapoint}); + myLabels.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + padding: "5px", + whiteSpace: "normal", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px", + zIndex: "1000" + } + ); + map.addOverlay(myLabels); + //添加pdaicon + var myIconpda = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/pdaIco.png", + new BMap.Size(29, 40), { + offset: new BMap.Size(10, 40), + textColor: '#fff' + }); + + marker[i]= new BMap.Marker(pdapoint, {icon: myIconpda}); + + marker[i].parkNo = pdaData[i].parkNo; + marker[i].newpoiX = pdaData[i].pointX; + marker[i].newpoiY = pdaData[i].pointY; + marker[i].parkName = pdaData[i].parkName; + marker[i].plType = pdaData[i].plType; + marker[i].addEventListener("click", function (n) { + + var newpoiY = n.target.newpoiY; + var parkNo = n.target.parkNo; + var parkName = n.target.parkName; + var newpoiX = n.target.newpoiX; + var plType = n.target.plType; + var rate = '0.00%'; + + fun.getBerthInfoByPlNo(parkNo, rate, plType,parkName); + fun.getPDAInfoByPlNo(parkNo,parkName); + $('#m_r_bar li').eq(0).click(); + // $('#model-right').show(); + $('#pdamon_alertmodel').modal('show'); + }); + + } + map.addOverlay(marker); + } + + + markerClusterer = new BMapLib.MarkerClusterer(map, + { + markers: marker, + styles: [{ + url: '../../assets/pages/scripts/operMonFile/img/map/PDA.png', + size: new BMap.Size(53, 52), + fontSize:'18px !important', + textColor:'#fff', + zIndex:0 + }], + }); + markerClusterer.setMaxZoom(13); + } +} + +//获取停车场ids + +//停车场名称 +function showByPlNo(parkNo, parkpoiX, parkpoiY,parkName) { + var parkNo = parkNo; + var poix = parkpoiX; + var poiy = parkpoiY; + var parkName=parkName; + var point = new BMap.Point(poix, poiy); + myLabel = new BMap.Label('
    ' + parkName + '
    ', { + offset: new BMap.Size(10, -35), //label的偏移量,为了让label的中心显示在点上 + position: point}); + myLabel.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + padding: "5px", + whiteSpace: "normal", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px", + zIndex: "1000" + } + ); + // map.addOverlay(myLabel); +}; + + +// 渲染地图 +function drawParkAndPdaMarker(parkDatas,first_flag) { + + // console.log(parkDatas); + // 添加百度地图 + var lonPark = parkDatas[0].pointX; + var latPark = parkDatas[0].pointY; + var map = new BMap.Map("allmap", {enableMapClick: false}); + map.clearOverlays(); + //后台传过来 + // var currentLat = 118.92234; + // var currentLon = 42.259728; + //第1步:设置地图中心点,当前城市 + var point = new BMap.Point(lonPark,latPark); + //第2步:初始化地图,设置中心点坐标和地图级别。 + var zoom = 16; + map.centerAndZoom(point, zoom); + map.setCurrentCity(sysComm.cityName); // 设置地图显示的城市 此项是必须设置的 + //第3步:启用滚轮放大缩小 + map.enableScrollWheelZoom(true); + function checkhHtml5() { + if (typeof(Worker) === "undefined") { + if (navigator.userAgent.indexOf("MSIE 9.0") <= 0) { + alert("定制个性地图示例:IE9以下不兼容,推荐使用百度浏览器、chrome、firefox、safari、IE10"); + } + + } + } + checkhHtml5(); + + var marker = []; + var newpoiX = null;//坐标 + var newpoiY = null; + var parkNo = null;//编号 + var popAllnum = null;//停车场车位总数 + var popFree = null;//空闲车位 + var parkName = null;//停车场名称 + var plType = null;//停车场类型 :1:路内(占用道路停车位),2-路外 + + for (var i = 0; i < parkDatas.length; i++) { + latPark=parkDatas[0].pointX; + lonPark=parkDatas[0].pointY; + newpoiX = parkDatas[i].pointX; + newpoiY = parkDatas[i].pointY; + + parkNo = parkDatas[i].parkNo; + popAllnum = parkDatas[i].allnum; + popFree = parkDatas[i].free; + parkName = parkDatas[i].parkName; + plType = parkDatas[i].plType; + var newPoint = new BMap.Point(newpoiX, newpoiY); + + var myIcon = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/parkIcon1.png", + new BMap.Size(30, 39), { + offset: new BMap.Size(10, 39), + textColor: '#fff' + }); + + marker[i] = new BMap.Marker(newPoint, {icon: myIcon}); + + map.addOverlay(marker[i]); + if(first_flag == 1){ + addCircle(km,newpoiX,newpoiY,parkName); + } + // marker[i].setLabel(label); + + + marker[i].parkNo = parkDatas[i].parkNo; + marker[i].newpoiX = parkDatas[i].pointX; + marker[i].newpoiY = parkDatas[i].pointY; + marker[i].Allnum = parkDatas[i].allnum; + marker[i].Free = parkDatas[i].free; + marker[i].parkName = parkDatas[i].parkName; + marker[i].plType = parkDatas[i].plType; + marker[i].addEventListener("click", function (n) { + + var newpoiY = n.target.newpoiY; + var parkNo = n.target.parkNo; + var parkName = n.target.parkName; + var newpoiX = n.target.newpoiX; + var freepop = Number(n.target.Free); + var allnumpop = Number(n.target.Allnum); + var plType = n.target.plType; + var rate = '0.00%'; + if (null !== freepop && null != allnumpop) { + rate = freepop / allnumpop * 100; + rate = new Number(rate).toFixed(2) + '%'; + } + + fun.getBerthInfoByPlNo(parkNo, freepop, allnumpop, rate, plType,parkName); + fun.getPDAInfoByPlNo(parkNo,parkName); + $('#m_r_bar li').eq(0).click(); + // $('#model-right').show(); + $('#pdamon_alertmodel').modal('show'); + }); + //var parkNamepop=parkName; + marker[i].addEventListener("mouseover", function (n) { + + var newpoiY = n.target.newpoiY; + var parkNo = n.target.parkNo; + var parkName = n.target.parkName; + var newpoiX = n.target.newpoiX; + + showByPlNo(parkNo, newpoiX, newpoiY,parkName); + map.addOverlay(myLabel); + }); + marker[i].addEventListener("mouseout", function () { + closeInfoWindow(); + }) + + } + markerClusterer = new BMapLib.MarkerClusterer(map, + { + markers: marker, + styles: [{ + url: '../../assets/pages/scripts/operMonFile/img/map/index.png', + size: new BMap.Size(53, 52), + fontSize:'18px !important', + textColor:'#fff', + zIndex:0 + }], + }); + markerClusterer.setMaxZoom(13); + //添加Pda-marker + pdaDatas = []; + fun.getParkingPdaGeo(true); + $.each(pdaData, function(index,item) { + $.each(parkDatas, function(_index,_item) { + if(item.parkNo == _item.parkNo){ + pdaDatas.push(item); + } + }); + }); + //条件查询 + if(first_flag == 1){ + fun.drawPdaMarker(pdaDatas,map,1); + } + + // 停车场画圆 半径:hotKm + function addCircle(km,parkpoiX,parkpoiY,parkName) { + // var hotTit=parkDatas[i].parkName; + + var hotTit=parkName; + var hotpoiX=parkpoiX; + var hotpoiY=parkpoiY; + var mPoint = new BMap.Point(hotpoiX,hotpoiY); + + //fillColor:"blue", strokeWeight: 1 ,fillOpacity: 0.3, strokeOpacity: 0.3 + var circle = new BMap.Circle(mPoint,km,{fillColor:"#1E95CD",stroke: "#1E95CD",strokeWeight: '2' ,fillOpacity: 0.2, strokeOpacity: 0.1}); + map.addOverlay(circle); + } +} + + +//点击搜索 渲染地图 出停车场加pda 画圆 +$(document).on('click','#pdaser-button',function () { + fun.getParkLotInfoByPlNameLike(); + +}) +//clear 停车场名称 +function closeInfoWindow() { + $(".showplName").css('display', 'none'); +} +/** + *弹窗切换 + **/ +$('#ITD-alert-tab-wrap li').on('click', function () { + var _index = $(this).index(); + $('#ITD-alert-tab-wrap>li').eq(_index).addClass('ITD-alert-tab-active').siblings().removeClass('ITD-alert-tab-active'); + $('#ITD-alertcon-tab-wrap>li').eq(_index).removeClass('display-none').siblings().addClass('display-none'); + + if (0 == _index) { + // fun.alertIfo(); + } else { + // fun.loadParkDatas(); + } + +}); +//搜索按钮“取消” +$(".cancelBtn").on('click', function () { + $(this).css("display", "none"); + $('.ser-inp-effect').css("display", "none"); + $(".ser-input").val(""); +}); + +var flag = true; +$('#main-left').on('click',function () { + if(flag){ + $('#main-wrap').animate({'right':'-328px'}); + $(this).addClass('click_right'); + flag = false; + }else{ + $('#main-wrap').animate({'right':'18px'}); + $(this).removeClass('click_right'); + flag = true; + } + +}); diff --git a/assets/pages/scripts/operationFile/img/dayparkinglength-greencar.png b/assets/pages/scripts/operationFile/img/dayparkinglength-greencar.png new file mode 100644 index 0000000..de623fd Binary files /dev/null and b/assets/pages/scripts/operationFile/img/dayparkinglength-greencar.png differ diff --git a/assets/pages/scripts/operationFile/img/dayparkinglength-redcar.png b/assets/pages/scripts/operationFile/img/dayparkinglength-redcar.png new file mode 100644 index 0000000..c0a1683 Binary files /dev/null and b/assets/pages/scripts/operationFile/img/dayparkinglength-redcar.png differ diff --git a/assets/pages/scripts/operationFile/lengthofParking/lengthofparking.css b/assets/pages/scripts/operationFile/lengthofParking/lengthofparking.css new file mode 100644 index 0000000..fc61641 --- /dev/null +++ b/assets/pages/scripts/operationFile/lengthofParking/lengthofparking.css @@ -0,0 +1,63 @@ +/*ecahrts */ +.parklen-echarts{ + height: 230px; +} + +/*单选复选美化*/ +.hide-common-style input[type=checkbox], +.hide-common-style input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.hide-common-style input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.hide-common-style input[type=checkbox]:hover + label{ + background: url('../../../img/input-checkexActive.png') no-repeat 0 center; + +} +.hide-common-style input[type=checkbox]:checked + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.hide-common-style input[type=checkbox]:checked:hover + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.hide-common-style input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + margin-right: 24px; +} +.hide-common-style input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +.hide-common-style input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.hide-common-style input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} + +#parklen-billtable thead tr:nth-of-type(2) th { + border-top: 1px solid #e7ecf1!important; +} \ No newline at end of file diff --git a/assets/pages/scripts/operationFile/lengthofParking/lengthofparking.html b/assets/pages/scripts/operationFile/lengthofParking/lengthofparking.html new file mode 100644 index 0000000..537d042 --- /dev/null +++ b/assets/pages/scripts/operationFile/lengthofParking/lengthofparking.html @@ -0,0 +1,105 @@ + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + 日期 +
    + +
    + - +
    + +
    +
    + +
    +
    更多
    +
    查询
    +
    +
    + +
    +
    +
    + + +
    +
    +
    +
    + 停车时长占比图 +
    +
    +
    +
    +
    +
    +
    +
    +
    + 停车时长分布图 +
    +
    +
    +
    +
    + + +
    +
    +
    +
      +
    • 详细记录
    • +
    • + +
    • +
    +
    +
    +
    +
    + + + + + diff --git a/assets/pages/scripts/operationFile/lengthofParking/lengthofparking.js b/assets/pages/scripts/operationFile/lengthofParking/lengthofparking.js new file mode 100644 index 0000000..de78e3c --- /dev/null +++ b/assets/pages/scripts/operationFile/lengthofParking/lengthofparking.js @@ -0,0 +1,970 @@ +var parklenfun = { + init: function () { + commSelect.area_Pl_LinkedSelect("#parklen-transSelecarea", "#parklen-transSelectPark"); + /**日 时间初始化*/ + /**日 时间初始化*/ + $('#parklen-daydaterange-btnsta').val(moment().subtract('days', 7).format('YYYY-MM-DD')); + $('#parklen-daydaterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#parklen-daydaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#parklen-daydaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + /** 月 时间初始化 **/ + $('#parklen-monthdaterange-btnsta').val(moment().subtract('months', 6).format('YYYY-MM')); + $('#parklen-monthdaterange-btnend').val(moment().subtract('months', 0).format('YYYY-MM')); + //开始日期 + $("#parklen-monthdaterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 0).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#parklen-monthdaterange-btnend").datetimepicker({ + endDate: moment().subtract('months', 0).format('YYYY-MM'), + //startDate:startVal, + format: 'yyyy-mm', + weekStart: 1, + autoclose: true, + startView: 3, + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + + /** 函数 表格数据 **/ + parklenfun.parklencreateTableData(); + //停车时长占比 + chartsInit(); + //停车时长分布 + parklenfun.getFBEchartsDataAjax(); + }, + //默认生成表格数据 + parklencreateTableData: function () { + $('#parklen-billtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: parklentableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + [ + { + field: 'staticTimeStr', + title: '统计时间', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + formatter: commonObj.replacenull + }, + { + field: 'plName', + title: '车场名称', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + formatter: commonObj.replacenull + }, + { + field: 'avgParkDuration', + title: '次均停车时长', + valign: "middle", + align: 'left', + rowspan: 2, + valign: "middle", + formatter: function (value) { + var unit = "小时"; + + if(isNaN(value) || value == null || value == 0){ + return "0"+unit; + } + var str = ""; + var hours = (value/ (60 * 60)).toFixed(1); + + return hours+unit; + + + } + }, + { + field: 'name', + title: '停车次数', + valign: "middle", + align: "center", + colspan: 7, + rowspan: 1, + formatter: commonObj.replacenull + }, + + ], + [ + { + field: 'dataOf1', + title: '0-15m', + width: '10%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'dataOf2', + title: '15-30m', + width: '10%', + align: "left", + formatter: commonObj.replacenull + + }, + { + field: 'dataOf3', + title: '30m-1h', + width: '10%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'dataOf4', + title: '1-6h', + width: '10%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'dataOf5', + title: '6-12h', + width: '10%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'dataOf6', + title: '12-24h', + width: '10%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'dataOf7', + title: '1天以上', + width: '10%', + align: "left", + formatter: commonObj.replacenull + } + ] + + ] + }); + }, + /*获取查询参数*/ + parklengetQueryParam: function () { + var plNos = JSON.parse($("#parklen-transSelectPark").val()); + var req = { + parkIds: plNos, + sysCode: sysComm.sysCode + } + + if (parklenfun.isDayPage()) { + //按天的页面 + var dates1 = $("#parklen-daydaterange-btnsta").val(); + var dates2 = $("#parklen-daydaterange-btnend").val(); + + req.parkOutBeginTime = dates1; + req.parkOutEndTime = dates2; + req.queryKind = 1; + + } else { + //按月的页面 + req.parkOutBeginTime = $("#parklen-monthdaterange-btnsta").val() + "-01"; + req.parkOutEndTime = $("#parklen-monthdaterange-btnend").val() + "-01"; + req.queryKind = 2; + } + return req; + + + }, + //是否日报页面 + isDayPage: function () { + return $('#queryType').attr('data-value') == '1'; + }, + getDateArray: function () { + + var dateArray = []; + var startDate; + var endDate; + if (parklenfun.isDayPage()) { + //日 + startDate = new Date(($('#parklen-daydaterange-btnsta').val() + ' 00:00:00').replace(new RegExp(/-/gm), "/")); + endDate = new Date(($('#parklen-daydaterange-btnend').val() + ' 00:00:00').replace(new RegExp(/-/gm), "/")); + } else { + //月 + startDate = new Date(($('#parklen-monthdaterange-btnsta').val() + '-01 00:00:00').replace(new RegExp(/-/gm), "/")); + endDate = new Date(($('#parklen-monthdaterange-btnend').val() + '-01 00:00:00').replace(new RegExp(/-/gm), "/")); + } + + while (true) { + + + if (parklenfun.isDayPage()) { + //日 + dateArray.push(DateUtils.long2String(startDate.getTime(), 1)); + + startDate.setDate(startDate.getDate() + 1); + } else { + //月 + var tempDateStr = DateUtils.long2String(startDate.getTime(), 1) + var temp = tempDateStr.split('-'); + + dateArray.push(temp[0] + '-' + temp[1]); + + startDate.setMonth(startDate.getMonth() + 1); + + } + if (startDate.getTime() > endDate.getTime()) { + break; + } + + + } + + + return dateArray; + + }, + //获取停车时长分布图 echarts 数据 + getFBEChartsDataArray: function (remoteData) { + + //最终结果 + var result = {}; + var dateArray = parklenfun.getDateArray(); + result['dateArray'] = dateArray; + // 0 - 15 分钟数据 + var $0_15 = []; + var $15_30 = []; + var $30_1h = []; + var $1h_6h = []; + var $6h_12h = []; + var $12h_24h = []; + var $1dayup = []; + + + //1、将ajax返回的远程数据 初步处理,将同一日期的对应数据进行合并相加。 + var dateDataTemp = {}; + $.each(remoteData, function (index, item) { + var temp = []; + temp[0] = (item['dataOf1'] == null ? 0 : item['dataOf1']); + temp[1] = (item['dataOf2'] == null ? 0 : item['dataOf2']); + temp[2] = (item['dataOf3'] == null ? 0 : item['dataOf3']); + temp[3] = (item['dataOf4'] == null ? 0 : item['dataOf4']); + temp[4] = (item['dataOf5'] == null ? 0 : item['dataOf5']); + temp[5] = (item['dataOf6'] == null ? 0 : item['dataOf6']); + temp[6] = (item['dataOf7'] == null ? 0 : item['dataOf7']); + dateDataTemp[item.staticTimeStr] = temp; + }) + + + console.log('dateDataTemp:' + JSON.stringify(dateDataTemp)); + //2、组装成 eCharts 需要的数据 + $.each(dateArray, function (index, dateItem) { + + var temp = dateDataTemp[dateItem] + if (null != temp) { + $0_15.push(temp[0]); + $15_30.push(temp[1]); + $30_1h.push(temp[2]); + $1h_6h.push(temp[3]); + $6h_12h.push(temp[4]); + $12h_24h.push(temp[5]); + $1dayup.push(temp[6]); + } else { + $0_15.push(0); + $15_30.push(0); + $30_1h.push(0); + $1h_6h.push(0); + $6h_12h.push(0); + $12h_24h.push(0); + $1dayup.push(0); + } + + }) + + result['$0_15'] = $0_15; + result['$15_30'] = $15_30; + result['$30_1h'] = $30_1h; + result['$1h_6h'] = $1h_6h; + result['$6h_12h'] = $6h_12h; + result['$12h_24h'] = $12h_24h; + result['$1dayup'] = $1dayup; + + return result; + + }, + getFBEchartsDataAjax: function () { + var req = parklenfun.parklengetQueryParam(); + + var opt = { + method: 'post', + url: dataUrl.util.queryParkDurationDataForFBECharts(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + fbchartDataHandel(res.data); + } + } + }; + sysAjax(opt); + }, + +}; + +//默认页面初始执行函数 +parklenfun.init(); +/** + * 默认table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ +function parklentableLoadRequest(params) { + var req = parklenfun.parklengetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + + var opt = { + method: 'post', + url: dataUrl.util.queryParkDurationDataForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#parklen-detailBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#parklen-detailBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#parklen-detailBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#parklen-detailBtn").val("导出"); + } + else { + curCount--; + $("#parklen-detailBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#parklen-detailBtn',function (){ + //获取table所有行数据 + var parkLot = $("#parklen-billtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#parklen-billtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + exportTableData(); +}); + + +//点击查询事件 +documentBindFunc.on('click', '#parklen-billQueryBnt', function () { + parklenfun.parklencreateTableData(); + //柱状图 + chartsInit(); + //分布图 + parklenfun.getFBEchartsDataAjax(); +}); + +function chartsInit() { + console.log(134) + var req = parklenfun.parklengetQueryParam(); + var opt = { + method: 'post', + url: dataUrl.util.queryParkDurationDataForChart(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res) + if (res.code == '8888') { + + chartDataHandel(res.data); + } + } + }; + sysAjax(opt); + +} + +function chartDataHandel(data) { + console.log("chartsData:" + JSON.stringify(data)); + //封闭 + var fbArray = []; + //路侧 + var lcArray = []; + $.each(data, function (index, item) { + if (item.plType == 1) { + //路侧 + if (item.dataOf1 == null) { + lcArray.push(0); + } else if (item.dataOf2 == null) { + lcArray.push(0); + } else if (item.dataOf3 == null) { + lcArray.push(0); + } else if (item.dataOf4 == null) { + lcArray.push(0); + } else if (item.dataOf5 == null) { + lcArray.push(0); + } else if (item.dataOf6 == null) { + lcArray.push(0); + } else if (item.dataOf7 == null) { + lcArray.push(0); + } else { + lcArray.push(item.dataOf1); + lcArray.push(item.dataOf2); + lcArray.push(item.dataOf3); + lcArray.push(item.dataOf4); + lcArray.push(item.dataOf5); + lcArray.push(item.dataOf6); + lcArray.push(item.dataOf7); + } + } + else { + //封闭 + if (item.dataOf1 == null) { + fbArray.push(0); + } else if (item.dataOf2 == null) { + fbArray.push(0); + } else if (item.dataOf3 == null) { + fbArray.push(0); + } else if (item.dataOf4 == null) { + fbArray.push(0); + } else if (item.dataOf5 == null) { + fbArray.push(0); + } else if (item.dataOf6 == null) { + fbArray.push(0); + } else if (item.dataOf7 == null) { + fbArray.push(0); + } else { + fbArray.push(item.dataOf1); + fbArray.push(item.dataOf2); + fbArray.push(item.dataOf3); + fbArray.push(item.dataOf4); + fbArray.push(item.dataOf5); + fbArray.push(item.dataOf6); + fbArray.push(item.dataOf7); + } + } + }); + fbArray = (fbArray.length ==0?[0,0,0,0,0,0,0]:fbArray); + lcArray = (lcArray.length ==0?[0,0,0,0,0,0,0]:lcArray); + + //停车占比 echarts + var myChart = echarts.init(document.getElementById('parklen-echarts')); + var option = { + // color:['#fe6c75','#fedb33','#3fc2a5'], + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'cross', + label: { + // backgroundColor: 'rgba(0,0,0,0.5)' + } + } + }, + legend: { + right: '2%', + top: '0', + textStyle: { + color: '#888990', + }, + itemWidth: 18, + itemHeight: 10, + data: ['封闭', '路侧'] + }, + grid: { + top: '13%', + left: '1%', + right: '2%', + bottom: '2%', + containLabel: true + }, + xAxis: [ + + { + type: 'category', + axisLabel: { + + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12px', + fontFamily: '微软雅黑' + } + }, + axisLine: { + show: false + }, + splitLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + } + }, + + /*axisLine: { + lineStyle: { + color: '#ccc', + width: 1,//这里是为了突出显示加上的 + } + },*/ + axisTick: { + show: false + }, + // data:[1,2,3,4,5,6,7], + data: ['0-15m', '15-30m', '30m-1h', '1-6h', '6-12h', '12-24h', '1天以上'] + } + ], + yAxis: [ + { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12px', + fontFamily: '微软雅黑' + } + }, + axisTick: { + show: false + }, + axisLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + width: 1,//这里是为了突出显示加上的 + } + }, + splitLine: { + lineStyle: { + // type:'dashed', + color: 'rgba(0,0,0,0.1)', + } + } + }, + + ], + series: [ + { + name: '封闭', + type: 'bar', + itemStyle: { + normal: { + color: '#5cb3d8', + /* color: new echarts.graphic.LinearGradient( + 0, 0, 0, 1, + [ + {offset: 0, color: '#fe6974'}, + {offset: 1, color: '#fea886'} + ] + )*/ + }, + emphasis: { + color: '#5cb3d8', + /*color: new echarts.graphic.LinearGradient( + 0, 0, 0, 1, + [ + {offset: 0, color: '#fe6974'}, + {offset: 1, color: '#fea886'} + ] + )*/ + } + }, + barGap: '30%', + barWidth: 20, + markPoint: { + label: { + normal: { + show: false + } + }, + data: [ + { + // type: 'max', + // name: '最大值', + // symbol: 'image://../../assets/pages/scripts/operationFile/img/dayparkinglength-redcar.png', + // symbolSize: [14, 18], + // symbolOffset: [0, '-100%'], + }, + + ] + }, + // data: [3,42,32,242,23] + data: fbArray + }, + + { + name: '路侧', + type: 'bar', + itemStyle: { + normal: { + color: '#5fe890' + /*color: new echarts.graphic.LinearGradient( + 0, 0, 0, 1, + [ + {offset: 0, color: '#2abb9b'}, + {offset: 1, color: '#57cbf6'} + ] + )*/ + }, + emphasis: { + color: '#5fe890' + /*color: new echarts.graphic.LinearGradient( + 0, 0, 0, 1, + [ + {offset: 0, color: '#2abb9b'}, + {offset: 1, color: '#57cbf6'} + ] + )*/ + } + }, + // barGap:'10', + barWidth: 20, + markPoint: { + label: { + normal: { + show: false + } + }, + data: [ + { + // type: 'max', + // name: '最大值', + // value: 0, + // symbol: 'image://../../assets/pages/scripts/operationFile/img/dayparkinglength-greencar.png', + // symbolSize: [14, 11], + // symbolOffset: [0, '-100%'], + }, + + ] + }, + + data: lcArray + // data: [3,42,32,242,23] + }, + + + ] + }; + myChart.setOption(option, true); + + //浏览器滚动 echart自适应 + window.onresize = function () { + myChart.resize(); + }; + + +} + +//停车分布echarts +function fbchartDataHandel(remoteData) { + + console.log("fbchartsData:" + JSON.stringify(remoteData)); + var result = parklenfun.getFBEChartsDataArray(remoteData); + + //停车分布 echarts + var mylineChart = echarts.init(document.getElementById('parklen-line-echarts')); + var lineoption = { + color: ['#50c0f5', '#5fe98f', '#fd8d6f', '#fdd471', '#7dcecf', '#a5dff3', '#fff1db'], + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'cross', + label: { + // backgroundColor: 'rgba(0,0,0,0.5)' + } + } + }, + // legend: { + // right: '2%', + // top: '0', + // textStyle: { + // color: '#888990', + // }, + // itemWidth: 18, + // itemHeight: 10, + // data: ['封闭', '路侧'] + // }, + grid: { + top: '13%', + left: '1%', + right: '2%', + bottom: '2%', + containLabel: true + }, + xAxis: [ + + { + type: 'category', + boundaryGap: false, + axisLabel: { + + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12px', + fontFamily: '微软雅黑' + } + }, + axisLine: { + show: false + }, + splitLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + } + }, + + /*axisLine: { + lineStyle: { + color: '#ccc', + width: 1,//这里是为了突出显示加上的 + } + },*/ + axisTick: { + show: false + }, + // data:[1,2,3,4,5,6,7], + data: result['dateArray'] + } + ], + yAxis: [ + { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12px', + fontFamily: '微软雅黑' + } + }, + axisTick: { + show: false + }, + axisLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + width: 1,//这里是为了突出显示加上的 + } + }, + splitLine: { + lineStyle: { + // type:'dashed', + color: 'rgba(0,0,0,0.1)', + } + } + }, + + ], + series: [ + { + name: '0-15m', + type: 'line', + stack: '总量', + areaStyle: {normal: {}}, + data: result['$0_15'] + }, + + { + name: '15-30m', + type: 'line', + stack: '总量', + areaStyle: {normal: {}}, + data: result['$15_30'] + }, + { + name: '30m-1h', + type: 'line', + stack: '总量', + areaStyle: {normal: {}}, + data: result['$30_1h'] + }, + { + name: '1-6h', + type: 'line', + stack: '总量', + areaStyle: {normal: {}}, + data: result['$1h_6h'] + }, + + { + name: '6-12h', + type: 'line', + stack: '总量', + areaStyle: {normal: {}}, + data: result['$6h_12h'] + }, + { + name: '12-24h', + type: 'line', + stack: '总量', + areaStyle: {normal: {}}, + data: result['$12h_24h'] + }, + { + name: '1天以上', + type: 'line', + stack: '总量', + areaStyle: {normal: {}}, + data: result['$1dayup'] + }, + + + ] + }; + mylineChart.setOption(lineoption, true); + + //浏览器滚动 echart自适应 + window.onresize = function () { + mylineChart.resize(); + }; + + +} + + +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); +}); +//日月切换 点击事件 +//日 点击 +documentBindFunc.on('click', '#parklen-checkStyle1', function () { + $('.parklen-choosedateday').removeClass('display-none'); + $('.parklen-choosedatemonth').addClass('display-none'); + $('#queryType').attr('data-value', '1'); +}); +//月 点击 +documentBindFunc.on('click', '#parklen-checkStyle0', function () { + $('.parklen-choosedatemonth').removeClass('display-none'); + $('.parklen-choosedateday').addClass('display-none'); + $('#queryType').attr('data-value', '2'); +}); + +function exportTableData() { + + var req = parklenfun.parklengetQueryParam(); + + var form = document.createElement("form"); + form.style.display = 'none'; + + form.action = dataUrl.util.exportPardDurationData(); + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + + input.name = "plNosStr"; + input.value = JSON.stringify(req.parkIds); + form.appendChild(input); + + var input1 = document.createElement("input"); + input1.name = "startTimeStr"; + input1.value = req.parkOutBeginTime; + form.appendChild(input1); + + var input2 = document.createElement("input"); + input2.name = "endTimeStr"; + input2.value = req.parkOutEndTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "queryKind"; + input3.value = req.queryKind; + form.appendChild(input3); + form.submit(); + +} diff --git a/assets/pages/scripts/operationFile/operationanaTmp.js b/assets/pages/scripts/operationFile/operationanaTmp.js new file mode 100644 index 0000000..9eea74f --- /dev/null +++ b/assets/pages/scripts/operationFile/operationanaTmp.js @@ -0,0 +1,46 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
    '+urlarr[i].name+'
    ' + }else{ + _html += '
  • '+urlarr[i].name+'
  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/vehicleflow', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/operationFile/vehicleFlow/vehicleflow.css'); + res.load('../../assets/pages/scripts/operationFile/vehicleFlow/vehicleflow.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-vehicleflow').addClass('ITD-topbar-clickactive'); +}); +R.route('/lengthofparking', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/operationFile/lengthofParking/lengthofparking.css'); + res.load('../../assets/pages/scripts/operationFile/lengthofParking/lengthofparking.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-lengthofparking').addClass('ITD-topbar-clickactive'); + +}); diff --git a/assets/pages/scripts/operationFile/vehicleFlow/vehicelfow.js b/assets/pages/scripts/operationFile/vehicleFlow/vehicelfow.js new file mode 100644 index 0000000..0ec07cb --- /dev/null +++ b/assets/pages/scripts/operationFile/vehicleFlow/vehicelfow.js @@ -0,0 +1,703 @@ +var timer; +var feefun = { + init: function () { + + commSelect.area_Pl_LinkedSelect("#fee-transSelecarea", "#fee-transSelectPark"); + //初始化 + + /**日 时间初始化*/ + $('#parkingfee-daydaterange-btnsta').val(moment().subtract('days', 7).format('YYYY-MM-DD')); + $('#parkingfee-daydaterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#parkingfee-daydaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#parkingfee-daydaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + + /** 小时 时间初始化 **/ + $('#fee-monthdaterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#fee-monthdaterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#fee-monthdaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + //结束日期 + $("#fee-monthdaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + + /** 函数 表格数据 **/ + feefun.feecreateTableData(); + chartsInit(); + }, + //默认生成表格数据 + feecreateTableData: function () { + $('#fee-billtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + sortable: true, //是否启用排序 + sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: feetableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'staticTimeStr', + title: '统计时间', + width: '20%', + align: "left", + formatter: commonObj.replacenull + // formatter: function (value, row, index) { + // if (feefun.isDayPage()) { + // //按照天 + // var date = new Date(parseInt(row.statisticEndTime)); + // return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate(); + // } + // return value; + // + // } + }, + { + field: 'plName', + title: '车场名称', + width: '20%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'totalBerths', + title: '泊位数', + width: '20%', + align: "left", + sortable: true, + formatter: commonObj.replacenull + }, + { + field: 'vehicleFlow', + title: '进场车辆数', + width: '10%', + align: "left", + formatter: commonObj.replacenull, + sortable: true + }, + { + field: 'outParkCount', + title: '出场车辆数', + width: '10%', + align: "left", + formatter: commonObj.replacenull, + sortable: true + }, + { + field: 'freeRatio', + title: '占用率', + width: '15%', + align: "left", + sortable: true, + formatter: function (value) { + return ((1 - value) * 100).toFixed(2); + } + + }, + { + field: 'unitTurnoverRatio', + title: '周转次数', + width: '15%', + align: "left", + // sortable: true, + formatter:function (value) { + if(value==null || value ==undefined){ + return '-'; + }else{ + return value.toFixed(2); + } + } + }, + + ] + }); + }, + /*获取查询参数*/ + feegetQueryParam: function () { + var plNos = JSON.parse($("#fee-transSelectPark").val()); + var req = { + plNos: plNos, + sysCode: sysComm.sysCode + } + + if (feefun.isDayPage()) { + //按天的页面 + var dates1 = $("#parkingfee-daydaterange-btnsta").val(); + var dates2 = $("#parkingfee-daydaterange-btnend").val(); + + req.beginTime = dates1; + req.endTime = dates2; + req.timeType = 1; + + } else { + //按小时的页面 + var dates1 = $("#fee-monthdaterange-btnsta").val(); + var dates2 = $("#fee-monthdaterange-btnend").val(); + + req.beginTime = dates1; + req.endTime = dates2; + req.timeType = 4; + } + + //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的 + // var temp = { + // rows: params.limit, //页面大小 + // page: (params.offset / params.limit) + 1, //页码 + // sort: params.sort, //排序列名 + // sortOrder: params.order //排位命令(desc,asc) + // }; + return req; + }, + //是否日报页面 + isDayPage: function () { + return $('#queryType').attr('data-value')=='1'; + } + +}; + +//默认页面初始执行函数 +feefun.init(); +/** + * 默认table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ +function feetableLoadRequest(params) { + var req = feefun.feegetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit, + sortOrder:params.data.order,//排序 + sortName:params.data.sort,//排序字段 + }; + var urlStr = dataUrl.util.queryCarFlowByDayForListForPage(); + // if(req.queryKind==4){ + // urlStr = dataUrl.util.queryCarFlowByMonthForListForPage(); + // } + var opt = { + method: 'post', + url: urlStr, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + console.log(res.data) + } + } + }; + sysAjax(opt); +} + +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); +}); + +//日月切换 点击事件 +//日 点击 +documentBindFunc.on('click', '#parkingfee-checkStyle1', function () { + $('.parkingfee-choosedateday').removeClass('display-none'); + $('.parkingfee-choosedatemonth').addClass('display-none'); + $('#queryType').attr('data-value', '1'); +}); +//月 点击 +documentBindFunc.on('click', '#parkingfee-checkStyle0', function () { + $('.parkingfee-choosedatemonth').removeClass('display-none'); + $('.parkingfee-choosedateday').addClass('display-none'); + $('#queryType').attr('data-value', '2'); +}); + + +//点击查询事件 +documentBindFunc.on('click', '#fee-billQueryBnt', function () { + window.clearTimeout(timer); + feefun.feecreateTableData(); + chartsInit(); +}); + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#reportBtn").val("导出"); + } + else { + curCount--; + $("#reportBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#reportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#fee-billtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#fee-billtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + //导出函数 + exportTabel(); +}); + + +/** + * 图表数据 + */ +function chartsInit() { + + var dataSizeArray = []; + var req = feefun.feegetQueryParam(); + var beginTime = new Date(req.beginTime.replace(/-/g, "/")); + var endTimeArray = new Date(req.endTime.replace(/-/g, "/")); + + var beginTimeArray = req.beginTime.split("-"); + + var endTimeArray = req.endTime.split("-"); + + if (req.timeType == 1) { + dataSizeArray.push(req.beginTime) + //按天的页面 + var length = getDayNumber(beginTimeArray[0] + beginTimeArray[1] + beginTimeArray[2], endTimeArray[0] + endTimeArray[1] + endTimeArray[2]) + 1 + for (var i = 1; i < length; i++) { + dataSizeArray.push(addDate(beginTime, 1)); + } + + + } else { + for(var i = 0 ; i<24;i++){ + if(i<10){ + dataSizeArray.push("0"+i+":00") + }else{ + dataSizeArray.push(i+":00") + } + + } + + + + } + + //查询数据 + var opt = { + method: 'post', + url: dataUrl.util.queryCarFlowChartByDayOrMonth(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + var result = []; + $.each(dataSizeArray, function (index, staticTimeStr) { + var flag = false; + $.each(data, function (index, ajaxData) { + if (staticTimeStr == ajaxData.staticTimeStr) { + flag = true; + result.push(ajaxData); + } + }) + if (!flag) { + var tempData = { + "staticTimeStr": staticTimeStr, + "vehicleFlow": 0, + "outParkCount": 0, + "freeRatio": 1, + "turnoverRatio": 0 + }; + + result.push(tempData); + } + }) + + chartHandel(result); + } + } + }; + sysAjax(opt); + +} + + +// 日期,在原有日期基础上,增加days天数,默认增加1天 +function addDate(date, days) { + if (days == undefined || days == '') { + days = 1; + } + + date.setDate(date.getDate() + days); + var month = date.getMonth() + 1; + var day = date.getDate(); + return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day); +} + +// 日期,在原有日期基础上,增加days天数,默认增加1天 +function addMonth(date, months) { + if (months == undefined || months == '') { + months = 1; + } + + date.setMonth(date.getMonth() + months); + var month = date.getMonth() + 1; + var day = date.getDate(); + return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day); +} + +// 日期月份/天的显示,如果是1位数,则在前面加上'0' +function getFormatDate(arg) { + if (arg == undefined || arg == '') { + return ''; + } + + var re = arg + ''; + if (re.length < 2) { + re = '0' + re; + } + + return re; +} + +//计算月数差 +function getMonthNumber(date1, date2) { + //默认格式为"20030303",根据自己需要改格式和方法 + var year1 = date1.substr(0, 4); + var year2 = date2.substr(0, 4); + var month1 = date1.substr(4, 2); + var month2 = date2.substr(4, 2); + + var len = (year2 - year1) * 12 + (month2 - month1); + + return len; + +} + +//计算天数差 +function getDayNumber(date1, date2) { + //默认格式为"20030303",根据自己需要改格式和方法 + + var year1 = date1.substr(0, 4); + var year2 = date2.substr(0, 4); + var month1 = date1.substr(4, 2); + var month2 = date2.substr(4, 2); + // www.jquerycn.cn + var day1 = date1.substr(6, 2); + var day2 = date2.substr(6, 2); + + temp1 = year1 + "/" + month1 + "/" + day1; + temp2 = year2 + "/" + month2 + "/" + day2; + + var dateaa = new Date(temp1); + var datebb = new Date(temp2); + var date = datebb.getTime() - dateaa.getTime(); + var time = Math.floor(date / (1000 * 60 * 60 * 24)); + return time; +} + + +function chartHandel(resData) { + var xData = []; + var inCarData = []; + var outCarData = []; + + $.each(resData, function (index, item) { + xData.push(item.staticTimeStr); + inCarData.push(item.vehicleFlow); + outCarData.push(item.outParkCount); + + }) + + + //车流量及占用率变化趋势 echarts + var myChart = echarts.init(document.getElementById('cll-echarts')); + var option = { + // color:['#1E95CD','#fedb33','#3fc2a5'], + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'cross', + label: { + // backgroundColor: 'rgba(0,0,0,0.5)' + } + } + }, + legend: { + right: '2%', + top: '0', + textStyle: { + color: '#888990', + }, + itemWidth: 18, + itemHeight: 10, + data: ['进场', '出场'] + }, + + grid: { + top: '13%', + left: '1%', + right: '2%', + bottom: '2%', + containLabel: true + }, + xAxis: [ + + { + type: 'category', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + axisTick: { + show: false + }, + data: xData + // data: [3,3,4,6,6,3] + }, + + ], + yAxis: [ + { + type: 'value', + scale: true, + axisLabel: { + formatter: '{value} %', + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + axisLabel: { //调整y轴的lable + textStyle: { + color: 'rgba(0,0,0,0.5)', + } + }, + axisTick: { + show: false + }, + + axisLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + width: 1,//这里是为了突出显示加上的 + } + }, + splitLine:{ + lineStyle:{ + // type:'dashed', + color:'rgba(0,0,0,0.1)', + } + } + }, + // { + // type: 'value', + // scale: true, + // axisLabel: { //调整y轴的lable + // textStyle: { + // color: '#888990', + // } + // }, + // axisTick: { + // show: false + // }, + // + // axisLine: { + // show: false + // }, + // }, + + + ], + series: [ + { + name: '进场', + type: 'line', + + lineStyle: { + normal: { + color: '#50c0f5' + } + }, + itemStyle: { + normal: { + color: '#50c0f5' + } + }, + data: inCarData + // data: [3,32,2,3,24,33] + }, + { + name: '出场', + type: 'line', + + lineStyle: { + normal: { + color: '#5fe890' + } + }, + itemStyle: { + normal: { + color: '#5fe890' + } + }, + data: outCarData + // data: [3,5,7,8,23,43] + }, + + + ] + }; + myChart.setOption(option); + //浏览器滚动 echart自适应 + window.onresize = function () { + myChart.resize(); + }; + + +} + +function exportTabel() { + + var req = feefun.feegetQueryParam(); + console.log(req) + var form = document.createElement("form"); + form.style.display = 'none'; + + form.action = dataUrl.util.exportCarFlowForList(); + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + + input.name = "plNosStr"; + input.value = JSON.stringify(req.plNos); + form.appendChild(input); + + var input1 = document.createElement("input"); + input1.name = "startTimeStr"; + input1.value = req.beginTime; + form.appendChild(input1); + + var input2 = document.createElement("input"); + input2.name = "endTimeStr"; + input2.value = req.endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "timeType"; + input3.value = req.timeType; + form.appendChild(input3); + form.submit(); + +} diff --git a/assets/pages/scripts/operationFile/vehicleFlow/vehicleflow.css b/assets/pages/scripts/operationFile/vehicleFlow/vehicleflow.css new file mode 100644 index 0000000..112402f --- /dev/null +++ b/assets/pages/scripts/operationFile/vehicleFlow/vehicleflow.css @@ -0,0 +1,67 @@ + +/*新样式*/ +/*topbar 查询条件 sta*/ +/*单选复选美化*/ +.hide-common-style input[type=checkbox], +.hide-common-style input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.hide-common-style input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.hide-common-style input[type=checkbox]:hover + label{ + background: url('../../../img/input-checkexActive.png') no-repeat 0 center; + +} +.hide-common-style input[type=checkbox]:checked + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.hide-common-style input[type=checkbox]:checked:hover + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.hide-common-style input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + margin-right: 24px; +} +.hide-common-style input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +.hide-common-style input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.hide-common-style input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +/*topbar 查询条件 end*/ + +/*echarts 样式*/ +.cll-echarts{ + height:230px; + /*background-color: #fff !important;*/ +} +/*.fee-ttcsf-title{ + background: url("img/blue-themes-feeIco.png") no-repeat 24px center !important; +}*/ diff --git a/assets/pages/scripts/operationFile/vehicleFlow/vehicleflow.html b/assets/pages/scripts/operationFile/vehicleFlow/vehicleflow.html new file mode 100644 index 0000000..d0ee241 --- /dev/null +++ b/assets/pages/scripts/operationFile/vehicleFlow/vehicleflow.html @@ -0,0 +1,106 @@ + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + 时间 +
    + +
    + - +
    + +
    +
    + +
    +
    更多
    +
    查询
    +
    +
    + +
    +
    +
    + + + +
    +
    +
    +
    + 车流量 +
    +
    +
    +
    +
    + + +
    +
    +
    +
      +
    • 详细记录
    • +
    • + +
    • +
    +
    +
    +
    +
    + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/orderManagement/abnormalrecords.js b/assets/pages/scripts/orderManagement/abnormalrecords.js new file mode 100644 index 0000000..d1a6961 --- /dev/null +++ b/assets/pages/scripts/orderManagement/abnormalrecords.js @@ -0,0 +1,414 @@ +/** + * Created by chenbiao on 2018/7/20. + */ +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; + +var fun = { + init: function () { + //初始化办事处 停车场 + commSelect.area_Pl_LinkedSelect("#parkArea", "#parkIds"); + //初始化停车场下拉框 + // fun.initPark(); + //表格数据 + fun.createTableData(); + + }, + //生成表格数据 + createTableData: function () { + $('#abnormaltable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 1, + ajax: tableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'carNumber', + title: '车辆信息', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + value==null? '-':value + '
    ' + + '
    ' + (row.parkName == null ? "-" : row.parkName)+ '
    ' + } + }, + // {field: 'parkName', title: '停车场名称', width: '10%', align:"left"}, + + + { + field: 'orderType', + title: '异常类型', + width: '8%', + align: "left", + formatter: fun.isAbnormalCarFormatter + }, + { + field: 'orderTotalFees', + title: '停车费', + width: '15%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + commonObj.moneyFormatter(row.orderActFees) + ' 元
    ' + + '
    ' + + '
    应收 :  ' + commonObj.moneyFormatter(row.orderTotalFees) + '元
    ' + + '
    优惠 :  ' + commonObj.moneyFormatter(row.orderDicountFee) + '元
    ' + + '
    ' + } + }, + { + field: 'parkInTime', + title: '停车时间', + width: '24%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + fun.parkingDurationFormatter(row.parkingDuration,row) + '
    ' + + '
    ' + + '
    入场 :  ' + commonObj.timeFormatter(row.parkInTime) + '
    ' + + '
    出场 :  ' + commonObj.timeFormatter(row.parkOutTime) + '
    ' + + '
    ' + } + }, + { + field: 'parkOutTime', + title: '出入口信息', + width: '15%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + fun.chargerFormatter(value, row, index) + '
    ' + + '
    ' + + '
    入口 :  ' + fun.inCodeFormatter(value, row, index) + '
    ' + + '
    出口 :  ' + fun.outCodeFormatter(value, row, index)+ '
    ' + + '
    ' + } + }, + + + ] + }); + + }, + + /*获取查询参数*/ + getQueryParam: function () { + /*停车场编码*/ + var plNos = JSON.parse($("#parkIds").val()); + /*车牌号*/ + var carNum = $('#carNumber').val(); + /***/ + var abnormalType = $('#abnormalType').val(); + carNum = carNum == null || carNum.length == 0 ? null : carNum.trim(); + var tempTime = new Date(); + tempTime.setDate(tempTime.getDate()-3);//往前推三天 + var req = { + plNos: plNos, + carNum: carNum, + abnormalType:abnormalType, + tempTime:tempTime + + }; + return req; + }, + //异常类型 + isAbnormalCarFormatter: function (value, row, index) { + if (row.parkInTime == null) { + return "有出无进"; + } + else{ + return "长时未出"; + } + }, + //停车时间 + parkingDurationFormatter: function (value, row, index) { + // + var parkState = row.parkState + if (null == parkState) { + if (null != row.parkOutTime) { + parkState = 20; + } else { + parkState = 10; + } + } + + var inTime = row.parkInTime; + if(parkState == 10 ){ + var thisTime = new Date().getTime(); + var parkDuration = (thisTime -inTime)/1000; + return formatSeconds(parkDuration); + } + + + if (value == null) { + return "-"; + } else { + return formatSeconds(value); + } + }, + //进场时间 格式化 + inDatatimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 10); + } + }, + //出场时间 格式化 + outDatatimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 10); + } + }, + //收费员格式化 + chargerFormatter: function (value, row, index) { + + //展示需求: 如果是进场,展示进场收费员,如果是出场,展示出场收费员 + + + //停车状态 10:在场 ,20:离场,30:预订 + var parkState = row.parkState; + if (null == parkState) { + if (null != row.parkOutTime) { + parkState = 20; + } else { + parkState = 10; + } + + } + //在场 + if (parkState == 10) { + return row.parkInSourceName == null ? (row.parkInSourceCode == null ?'-':row.parkInSourceCode) : row.parkInSourceName; + } + + //离场 + if (parkState == 20) { + return row.parkOutSourceName == null ? (row.parkOutSourceCode == null ?'-':row.parkOutSourceCode) : row.parkOutSourceName; + } + + + return null; + + + }, + //入口格式化 + inCodeFormatter: function (value, row, index) { + return row.parkInSourceName == null ? (row.parkInSourceCode == null ? "-" : row.parkInSourceCode) : row.parkInSourceName; + }, + //出口格式化 + outCodeFormatter: function (value, row, index) { + return row.parkOutSourceName == null ? (row.parkOutSourceCode == null ? "-" : row.parkOutSourceCode ) : row.parkOutSourceName; + }, + //金额处理 + moneyFormatter: function (value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return 0; + } else { + return (value / 100).toFixed(2); + } + }, +}; + +fun.init(); + +documentBindFunc.on('click', '#abn-queryBtn', function () { + fun.createTableData(); +}); + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#abn-reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#abn-reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#abn-reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#abn-reportBtn").val("导出"); + } + else { + curCount--; + $("#abn-reportBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#abn-reportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#abnormaltable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#abnormaltable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //执行倒计时函数 + sendMessage(); + var params = fun.getQueryParam(); + var url = dataUrl.util.excleAbnormalParkOrderForPage(); + url += '?plNos=' + params.plNos; + + if (null != params.carNum) { + url += '&carNum=' + params.carNum + } + if (null != params.abnormalType) { + url += '&abnormalType=' + params.abnormalType + } + if (null != params.tempTime) { + url += '&tempTime=' + DateUtils.long2String(params.tempTime, 7); + } + url = encodeURI(url); + window.downloadFile(url); +}); + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryAbnormalParkOrderForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + //console.log(res.data); + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +function formatSeconds(value) { + var theTime = parseInt(value);// 秒 + var theTime1 = 0;// 分 + var theTime2 = 0;// 小时 + var theTime3 = 0;//天 + if (theTime < 60) { + return theTime + '秒'; + } + if (theTime > 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); + + + } + + if (theTime1 > 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + } + + if (theTime2 > 24) { + theTime3 = parseInt(theTime2 / 24); + theTime2 = parseInt(theTime2 % 24); + } + + var result = ''; + if (theTime1 == 0 && theTime2 == 0 && theTime3 == 0) { + result = parseInt(theTime) + "秒" + } + + if (theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if (theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + + if (theTime3 > 0) { + result = "" + parseInt(theTime3) + "天" + result; + } + return result; +}; + diff --git a/assets/pages/scripts/orderManagement/allparkrecords.js b/assets/pages/scripts/orderManagement/allparkrecords.js new file mode 100644 index 0000000..2b86a41 --- /dev/null +++ b/assets/pages/scripts/orderManagement/allparkrecords.js @@ -0,0 +1,1570 @@ +/** + * Created by chenbiao on 2017/8/23. + */ + +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; +/** 时间初始化 **/ +//进场时间初始化 +$('#allparkrecord-daterange-btnsta').val(moment().subtract('months', 3).format('YYYY-MM-DD')); +$('#allparkrecord-daterange-btnend').val(moment().subtract('months', 0).format('YYYY-MM-DD')); +//开始日期 +$("#allparkrecord-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + clearBtn: true, //添加清除按钮,可选值:true/false + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" +}) +//结束日期 +$("#allparkrecord-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + clearBtn: true, //添加清除按钮,可选值:true/false + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" +}) + +//出场时间初始化 +//开始日期 +$("#allparkrecord-daterange-timeoutsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + clearBtn: true, //添加清除按钮,可选值:true/false + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" +}) +//结束日期 +$("#allparkrecord-daterange-timeoutend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + clearBtn: true, //添加清除按钮,可选值:true/false + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" +}) + +//var parkTypeSelected = {0:"短时停车免费",1:"待核算",2:"待支付",3:"待支付",4:"已完成",5:"逃逸",7:"授权车免费",8:"手动免费开闸",12:"预付费"}; +//201:临停车,301:包年车辆,302:包月车辆,303:包季度车辆,304:半年卡车辆,305:包天车辆,501:白名单车辆', +var parkTypeSelected = {100: "短时停车免费", 200: "临停车", 300: "授权车免费", 400: "手动出场", 500: "白名单车辆免费"}; +(function () { + var cacheParkData; + + var fun = { + init: function () { + if("10133" != fn.getUserId() && "10134" != fn.getUserId() && "10135" != fn.getUserId()){ + $('#allparkrecord-toptab').append( + '
    欠费
    '+ + '
    补缴
    ' + ); + } + commSelect.area_Pl_LinkedSelect("#parkArea", "#parkIds", null, "", 3); + + //初始化停车场下拉框 + //fun.initPark(); + //初始化停车状态下拉框 + fn.getParkStatus(fun.initParkStatus); + //初始化停车类型下拉框 + fn.getParkOrderType(fun.initParkType); + //初始化停车场类型下拉框 + //fn.getParkLotType(fun.initParkLotType); + //初始化支付类型下拉框 + //fn.getPayType(fun.initPayType); + fun.createTableData(); +// $("#parkLotType").change(function(){ +// fun.initPark(); +// }); + }, + //生成表格数据 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 1, + ajax: tableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'orderId', + title: '订单编号', + width: '10%', + align: "left", + visible: false, + }, + { + field: 'carNumber', + title: '车辆信息', + width: '10%', + align: "left", + formatter: function (value, row, index) { + var berthNos = row.berthNo; + if (berthNos == '' || berthNos == undefined || berthNos == null) { + // berthNos=''; + return '
    ' + commonClass.cutString(value, 8) + '
    ' + + '
    泊位编号: --
    ' + + '
    ' + row.parkName + '
    ' + } else { + return '
    ' + value + '
    ' + + '
    泊位编号:' + berthNos + '
    ' + + '
    ' + row.parkName + '
    ' + } + + } + + }, + // {field: 'parkName', title: '停车场名称', width: '10%', align:"left"}, + + + { + field: 'orderType', + title: '类型', + width: '8%', + align: "left", + formatter: fun.isFixCarFormatter + }, + { + field: 'orderTotalFees', + title: '停车费(元)', + width: '15%', + align: "left", + formatter: function (value, row, index) { + /* return '
    ' + commonObj.moneyFormatter(row.orderActFees) + ' 元
    ' + + '
    ' + + '
    应收 :  ' + commonObj.moneyFormatter(row.orderTotalFees) + '元
    ' + + '
    优惠 :  ' + commonObj.moneyFormatter(row.orderDicountFee) + '元
    ' + + '
    ' + + '
    '*/ + return '
    ' + + '
    应收:' + commonObj.moneyFormatter(row.orderTotalFees ) + '
    ' + + '
    实收:' + commonObj.moneyFormatter(row.orderActFees) + '
    ' + + '
    ' + } + }, + { + field: 'parkInTime', + title: '停车时间', + width: '24%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + fun.parkingDurationFormatter(row.parkingDuration, row) + '
    ' + + '
    ' + + '
    入场 :  ' + commonObj.timeFormatter(row.parkInTime) + '
    ' + + '
    出场 :  ' + commonObj.timeFormatter(row.parkOutTime) + '
    ' + + '
    ' + } + }, + { + field: 'parkOutTime', + title: '出入口信息', + width: '15%', + align: "left", + formatter: function (value, row, index) { + return '
    ' + fun.chargerFormatter(value, row, index) + '
    ' + + '
    ' + + '
    入口 :  ' + fun.inCodeFormatter(value, row, index) + '
    ' + + '
    出口 :  ' + fun.outCodeFormatter(value, row, index) + '
    ' + + '
    ' + } + }, + { + /** + * 根据订单状态来判断是否已经出场 + */ + field: 'orderState', + title: '状态', + width: '9%', + align: "left", + formatter: fun.inOutStateFormatter + }, + + + // { + // field: 'parkingDuration', + // title: '停车时长', + // width: '10%', + // align:"left", + // formatter: fun.parkingDurationFormatter + // }, + // { + // field: 'couponFee', + // title: '优惠', + // width: '10%', + // align:"left", + // formatter: fun.moneyFormatter + // }, + // { + // field: 'parkInSourceCode', + // title: '进口/出口', + // width: '5%', + // align:"left", + // formatter: fun.intOutFormatter + // }, + // {field: 'parkInSourceCode',title: '收费员',width: '10%',align:"left", + // formatter: fun.intOutCodeFormatter}, + // { + // field: '', + // title: '详情', + // width: '20%', + // align: 'left', + // //visible: false, + // formatter: fun.detailFormater + // } + + ] + }); + + }, + /*获取查询参数*/ + getQueryParam: function () { + + /*停车场编码*/ + var plNos = JSON.parse($("#parkIds").val()); + /*停车状态*/ + var parkStatus = JSON.parse($("#parkStatus").val()); + /*停车类型*/ + var parkType = JSON.parse($('#parkType').val()); + var orderStates = null; + /*泊位*/ + var berthNo = $.trim($('#cordsberthNo').val()); + + var data_parkState = $('#allparkrecord-toptab div.ITD-graynav-topbaractive').data('parkstate'); + + + if (data_parkState == 'all') { + parkStatus = null; + } + + if (data_parkState == 'in') { + parkStatus = JSON.parse('[10]'); + } + + if (data_parkState == 'out') { + parkStatus = JSON.parse('[20]'); + } + + if (data_parkState == 'error') { + orderStates = [52]; + // if (null == parkType || parkType.length == 0) { + // parkType = JSON.parse('[100,400]'); + // } else if (parkType.contains(100)) { + // parkType = JSON.parse('[100]'); + // } else if (parkType.contains(400)) { + // parkType = JSON.parse('[400]'); + // } else { + // parkType = JSON.parse('[-999]'); + // } + + + } + + if (data_parkState == 'back') { + orderStates = JSON.parse('[53]'); + } + + /*停车场类型 路内、路侧*/ + //var parkLotType = JSON.parse($('#parkLotType').val()); + /*支付方式*/ + //var payType = JSON.parse($('#payType').val()); + /*进场开始时间*/ + var beginInTime = null; + /*进场结束*/ + var endInTime = null; + /*出场开始时间*/ + var beginOutTime = null; + /*出场结束时间*/ + var endOutTime = null; + /*解析进场时间*/ + var beginInTime = $('#allparkrecord-daterange-btnsta').val(); + var endInTime = $('#allparkrecord-daterange-btnend').val(); + + /*解析出场时间*/ + var beginOutTime = $('#allparkrecord-daterange-timeoutsta').val(); + var endOutTime = $('#allparkrecord-daterange-timeoutend').val(); + + /*进口*/ + var entrance = $('#enterType').val(); + /*出口*/ + var exit = $('#outType').val(); + /*车牌号*/ + var carNum = $('#carNumber').val(); + carNum = carNum == null || carNum.length == 0 ? null : carNum.trim(); + /*收费员*/ + var chargePerson = $('#personName').val(); + chargePerson = chargePerson == null || chargePerson.length == 0 ? null : chargePerson.trim(); + //var parkStatus=[3,4]; + var req = { + orderStates: orderStates, + plNos: plNos, + parkStatus: parkStatus, + parkType: parkType, + berthNo: berthNo, + //payType: null, + beginInTime: beginInTime, + endInTime: endInTime, + beginOutTime: beginOutTime, + endOutTime: endOutTime, + entrance: null, + exit: null, + carNum: carNum, + chargePerson: chargePerson + }; + + return req; + }, + //停车场下拉框 + initPark: function () { + + var data = fn.getParkLot(); +// var parkLotType = $("#parkLotType").val(); +// if (null != parkLotType) { +// parkLotType = JSON.parse(parkLotType)[0]; +// } + + $("#parkIds").empty(); + var html = ''; + var plNos = []; + var isFirst = false; + if (null == cacheParkData) { + cacheParkData = {} + isFirst = true; + } + var tempPlNo; + for (var i = 0; i < data.length; i++) { + if (isFirst) { + tempPlNo = data[i].code; + + cacheParkData[tempPlNo] = data[i]; + } + + + plNos.push(data[i].code); + html += ""; + + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + + }, + //停车类型下拉框 + initParkType: function (data) { + + if (null == data) { + return; + } + $("#parkType").empty(); + var html = ''; + $.each(data, function (index, item) { + html += '' + }); + $("#parkType").append(html); + $('#parkType').selectpicker('refresh'); + + }, + //停车场类型下拉框 + initParkLotType: function (data) { +// if (null == data) { +// return; +// } +// $("#parkLotType").empty(); +// var html = ''; +// $.each(data, function (index, item) { +// html += '' +// }); +// $("#parkLotType").append(html); +// $('#parkLotType').selectpicker('refresh'); + }, + //停车状态下来框 + initParkStatus: function (data) { + + if (null == data) { + return; + } + $("#parkStatus").empty(); + var html = ''; + $.each(data, function (index, item) { + html += '' + }); + $("#parkStatus").append(html); + $('#parkStatus').selectpicker('refresh'); + + }, + //支付状态下拉框 + initPayType: function (data) { +// if (null == data) { +// return; +// } +// $("#payType").empty(); +// var html = ''; +// $.each(data, function (index, item) { +// html += '' +// }); +// $("#payType").append(html); +// $('#payType').selectpicker('refresh'); + }, + freeReasonFormater: function (value, row, index) { + //:0:短时停车免费,1:待核算、2:待支付、3:已支付、4:已完成、5 逃逸,7:授权车免费,8:手动免费开闸 + var code = row.parkOutSourceCode == null ? (row.parkInSourceCode == null ? "" : row.parkInSourceCode) : row.parkOutSourceCode; + var parkInSourceCode = row.parkInSourceCode == null ? "" : row.parkInSourceCode; + var parkOutSourceCode = row.parkOutSourceCode == null ? "" : row.parkOutSourceCode; + var preMoney = row.preXJ + row.preWX + row.preZFB + row.preZH; + var prePayType = ""; + var afterMoney = row.afterXJ + row.afterZFB + row.afterWX + row.afterZH; + var afterPayType = ""; + + if (row.preXJ != null && row.preXJ != 0) { + prePayType = '现金'; + } + if (row.preWX != null && row.preWX != 0) { + prePayType = '微信'; + } + if (row.preZFB != null && row.preZFB != 0) { + prePayType = '支付宝'; + } + if (row.preZH != null && row.preZH != 0) { + prePayType = '账户余额'; + } + + if (row.afterXJ != null && row.afterXJ != 0) { + afterPayType = '现金'; + } + if (row.afterWX != null && row.afterWX != 0) { + afterPayType = '微信'; + } + if (row.afterZFB != null && row.afterZFB != 0) { + afterPayType = '支付宝'; + } + if (row.afterZH != null && row.afterZH != 0) { + afterPayType = '账户余额'; + } + + + if (preMoney > 0 && afterMoney > 0) { + return "收费员:" + parkInSourceCode + ",预付费" + prePayType + "收费" + preMoney / 100 + "元;" + + "收费员:" + parkOutSourceCode + ",后付费" + afterPayType + "收费" + afterMoney / 100 + "元"; + //return "预付款:"+preMoney/100+" 元"+prePayType+"、收费员编号:"+code+"、后付款:"+afterMoney/100+" 元"+afterPayType+"、收费员编号:"+code; + } else if (preMoney > 0) { + return "收费员:" + parkInSourceCode + ",预付费" + prePayType + "收费" + preMoney / 100 + "元"; + } else if (afterMoney > 0) { + return "收费员:" + parkOutSourceCode + ",后付费" + afterPayType + "收费" + afterMoney / 100 + "元"; + } else { + return ""; + } + + }, + detailFormater: function (value, row, index) { + //:0:短时停车免费,1:待核算、2:待支付、3:已支付、4:已完成、5 逃逸,7:授权车免费,8:手动免费开闸 + var code = row.parkOutSourceCode == null ? (row.parkInSourceCode == null ? "" : row.parkInSourceCode) : row.parkOutSourceCode; + var parkInSourceCode = row.parkInSourceCode == null ? "" : row.parkInSourceCode; + var parkOutSourceCode = row.parkOutSourceCode == null ? "" : row.parkOutSourceCode; + var preMoney = row.preFee; + var afterMoney = row.afterFee; + if (preMoney > 0 && afterMoney > 0) { + return "收费员:" + parkInSourceCode + ",预付费" + preMoney / 100 + "元;" + + "收费员:" + parkOutSourceCode + ",后付费" + afterMoney / 100 + "元"; + //return "预付款:"+preMoney/100+" 元"+prePayType+"、收费员编号:"+code+"、后付款:"+afterMoney/100+" 元"+afterPayType+"、收费员编号:"+code; + } else if (preMoney > 0) { + return "收费员:" + parkInSourceCode + ",预付费" + preMoney / 100 + "元"; + } else if (afterMoney > 0) { + return "收费员:" + parkOutSourceCode + ",后付费" + afterMoney / 100 + "元"; + } else { + return ""; + } + }, + parkOutSourceCodeFormatter: function (value, row, index) { + if (value == null) { + return "-"; + + } else { + return value; + } + }, + payTypeFormater: function (value, row, index) { + //1:支付宝 2:微信 3:银联 4:微信公众号 6:现金 7:IC卡 + var payTypeStr; + switch (value) { + case 1: + payTypeStr = '支付宝' + break; + case 2: + payTypeStr = '微信' + break; + case 3: + payTypeStr = '银联' + break; + case 4: + payTypeStr = '微信公众号' + break; + case 6: + payTypeStr = '现金' + break; + case 7: + payTypeStr = 'IC卡' + break; + default: + payTypeStr = '其他' + } + return payTypeStr; + }, + + + intOutFormatter: function (value, row, index) { + + if (value == null) { + if (row.parkOutSourceCode == null) { + return "-" + '/' + '-'; + } else { + return "-" + '/' + row.parkOutSourceCode; + } + } else { + if (row.parkOutSourceCode == null) { + return value + '/' + '-'; + } else { + return value + '/' + row.parkOutSourceCode + } + } + }, + //收费员格式化 + chargerFormatter: function (value, row, index) { + + //展示需求: 如果是进场,展示进场收费员,如果是出场,展示出场收费员 + + + //停车状态 10:在场 ,20:离场,30:预订 + var parkState = row.parkState; + if (null == parkState) { + if (null != row.parkOutTime) { + parkState = 20; + } else { + parkState = 10; + } + + } + //在场 + if (parkState == 10) { + return row.parkInSourceName == null ? (row.parkInSourceCode == null ? '-' : row.parkInSourceCode) : row.parkInSourceName; + } + + //离场 + if (parkState == 20) { + return row.parkOutSourceName == null ? (row.parkOutSourceCode == null ? '-' : row.parkOutSourceCode) : row.parkOutSourceName; + } + + + return null; + + + }, + //入口格式化 + inCodeFormatter: function (value, row, index) { + return row.parkInSourceName == null ? (row.parkInSourceCode == null ? "-" : row.parkInSourceCode) : row.parkInSourceName; + + }, + //出口格式化 + outCodeFormatter: function (value, row, index) { + return row.parkOutSourceName == null ? (row.parkOutSourceCode == null ? "-" : row.parkOutSourceCode ) : row.parkOutSourceName; + + + }, + //金额处理 + moneyFormatter: function (value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return '0.00'; + } else { + return (value / 100).toFixed(2); + } + }, + parkingDurationFormatter: function (value, row, index) { + // + var parkState = row.parkState + if (null == parkState) { + if (null != row.parkOutTime) { + parkState = 20; + } else { + parkState = 10; + } + } + + var inTime = row.parkInTime; + if (parkState == 10) { + var thisTime = new Date().getTime(); + var parkDuration = (thisTime - inTime) / 1000; + return formatSeconds(parkDuration); + } + + + if (value == null) { + return ""; + } else { + return formatSeconds(value); + } + }, + + //100:短时停车免费,200:临停车,300:授权车免费,400:手动免费开闸 500:白名单车辆免费 + isFixCarFormatter: function (value, row, index) { + var carType = ''; + if (row.carType == 1) { + carType = '大型车' + } else if (row.carType == 2) { + carType = '小型车' + } else if (row.carType == 3) { + carType = '新能源车' + } else { + carType = '未知' + } + + if (value == 100) { + return "短时停车
    " + carType + "
    "; + } else if (value == 200) { + return "临停车
    " + carType + "
    "; + } else if (value == 300) { + return "授权车
    " + carType + "
    "; + } else if (value == 400) { + return "手动出场
    "+carType+"
    "; + } else if (value == 500) { + return "白名单
    "+carType+"
    "; + } + }, + inDatatimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 11); + } + }, + outDatatimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 11); + } + }, + inOutStateFormatter: function (value, row, index) { + + // /**停车大类型[字典表:PARK_ORDER_TYPE]:100:短时停车免费,200:临停车,300:授权车免费,400:手动免费开闸 500:白名单车辆免费*/ + var parkOrderType = row.orderType; + + var orderState = row.orderState; + + if (null == parkOrderType) { + parkOrderType = 200; + } + + + //停车状态 10:在场 ,20:离场,30:预订 + var parkState = row.parkState; + if (null == parkState) { + if (null != row.parkOutTime) { + parkState = 20; + } else { + parkState = 10; + } + } + + if (parkState == 10) { + return "在场"; + } + + if (parkState == 20) { + + if (orderState == 52) { + return "欠费"; + } else { + return "离场"; + } + } + + }, + imageformatter: function (value, row, index) { + return ""; + + }, + //获取进出场图片 + getParkOrderInOutImg: function (orderid, orderterminalSource) { + //orderid = '101461919192518762496'; + $('.featured-in-wrap').empty(); + $('.featured-out-wrap').empty(); + // console.log(orderterminalSource) + var req = { + sourceId: orderid, + sysCode: sysComm.sysCode + } + + var opt = { + method: 'post', + url: dataUrl.util.queryParkOrderInOutImg(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + + var inHtml = ''; + var outHtml = ''; + if (undefined == res.data['4'] || null == res.data['4'] || res.data['4'].length == 0 || res.data["4"] == "http://img.renniting.cn/不需要上传图片") { + inHtml = ''; + } else { + if (orderterminalSource == '2') { + inHtml += ''; + } else { + inHtml += ''; + } + + + } + + if (undefined == res.data['5'] || null == res.data['5'] || res.data['5'].length == 0) { + outHtml = ''; + } else { + if (orderterminalSource == '2') { + outHtml += ''; + } else { + outHtml += ''; + } + + } + + $('.featured-in-wrap').append(inHtml); + $('.featured-out-wrap').append(outHtml); + $('#featured-in').orbit(); + $('#featured-out').orbit(); + $('#cardrule_alertmodel').modal('show') + } + } + }; + sysAjax(opt); + + + } + }; + + + //隐藏显示 查询条件 搜索框 hide-common-style + documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); + }); + //切换 搜索部分 是否生效 + documentBindFunc.on('click', "#allparkrecord-toptab div.ITD-graynav-topbar", function () { + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + //console.log(index); + //切换完后,调用查询表格 + fun.createTableData(); + + }); + //点击图片切换 + documentBindFunc.on('click', ".allparkrecords-in-out", function () { + var orderId = $(this).attr('data-order'); + var orderterminalSource = $(this).attr('data-terminalSource'); + // console.log(orderterminalSource) + $('.featured-in-wrap').removeClass('display-none'); + $('.featured-out-wrap').addClass('display-none'); + $("#ITD-alert-tab-wrap li:first").addClass('ITD-alert-tab-active') + $("#ITD-alert-tab-wrap li:gt(0)").removeClass('ITD-alert-tab-active') + fun.getParkOrderInOutImg(orderId, orderterminalSource); + + + }); + + documentBindFunc.on('click', ".openImg", function (item) { + var imgs = $(this).attr('data-img'); + window.open(imgs, "_blank"); + }); + + + //初始执行 + fun.init(); + //查询 事件 + documentBindFunc.on('click', '#queryBtn', function () { + fun.createTableData(); + }); + + //支出明细 弹窗 + documentBindFunc.on('click', '.records_popMsg', function () { + var orderId = $(this).data('id'); + var req = { + orderId: orderId + }; + + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryExpenseRecordByOrderId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + // console.log("支出明细" + JSON.stringify(res.data)); + $('#records_detail').empty(); + + var orderData = res.data.orderParkQueryDTO; + var detailData = res.data.expenseRecordDetailDTOList; + + var totalFee = fun.moneyFormatter(orderData.orderTotalFee) + '元'; + var actFee = fun.moneyFormatter(orderData.orderActFee) + '元'; + var refundActFee = fun.moneyFormatter(orderData.refundActFee) + '元'; + var arrearageFee = fun.moneyFormatter(orderData.arrearageFee) + '元'; + var backActFee = fun.moneyFormatter(orderData.backActFee) + '元'; + var discountFee = fun.moneyFormatter(orderData.orderDicountFee) + '元' + + $('#handle_moneytop').attr('title', totalFee); + $('#handle_moneytop').text(totalFee); + + $('#handle_moneybot').attr('title', actFee); + $('#handle_moneybot').text(actFee); + + $('#handle_rdismoneytop').attr('title', arrearageFee); + $('#handle_rdismoneytop').text(arrearageFee); + + $('#handle_rovermoneybot').attr('title', backActFee); + $('#handle_rovermoneybot').text(backActFee); + + $('#handle_rarrmoneytop').attr('title', discountFee); + $('#handle_rarrmoneytop').text(discountFee); + + $('#handle_rrefmoneybot').attr('title', refundActFee); + $('#handle_rrefmoneybot').text(refundActFee); + + + //遍历 消费明细 + if (null != detailData && detailData.length != 0) { + + //数据长度 + var detailDataNum = detailData.length; + + var html = ''; + $.each(detailData, function (index, item) { + // + var createTime = DateUtils.long2String(item.createTime, 11); + + var payFinishTime = item.payFinishTime == 0 ? '-' : DateUtils.long2String(item.payFinishTime, 11); + console.log(payFinishTime) + //支付方式[字典表:PAY_TYPE]-- -1:未知(创建时还不清楚支付方式)1:支付宝 2:微信 3:银联 + // 4:微信公众号 5:个人账户 6:现金 7:IC卡 + var payType = item.payType; + var payTypeStr; + var payTypeIcon; + switch (payType) { + case null: + payTypeStr = '未支付'; + payTypeIcon = 'msgxj-ico'; + break; + case 1: + payTypeStr = '支付宝'; + payTypeIcon = 'msgalipay-ico'; + break; + case 2: + payTypeStr = '微信'; + payTypeIcon = 'msgwx-ico'; + break; + case 3: + payTypeStr = '银联'; + payTypeIcon = 'msgxj-ico'; + break; + case 4: + payTypeStr = '微信'; + payTypeIcon = 'msgwx-ico'; + break; + case 5: + payTypeStr = '余额'; + payTypeIcon = 'msgyy-ico'; + break; + case 6: + payTypeStr = '现金'; + payTypeIcon = 'msgxj-ico'; + break; + case 7: + payTypeStr = 'IC卡'; + payTypeIcon = 'msgxj-ico'; + break; + default: + payTypeStr = '未知'; + payTypeIcon = 'msgxj-ico'; + } + + var actFee = commonObj.moneyFormatter(item.actFee); + + var terminal = item.terminalSource; + var terminalStr; + //终端来源[字典表:TERMINAL_SOURCE]:1:任你听 2:pda 3:微信公共号 4:云平台,5:道闸', + switch (terminal) { + case null: + terminalStr = '-'; + break; + case 1: + terminalStr = 'APP'; + break; + case 2: + terminalStr = 'PDA'; + break; + case 3: + terminalStr = '微信公众号'; + break; + case 4: + terminalStr = '云平台'; + break; + case 5: + terminalStr = '道闸'; + break; + case 6: + terminalStr = '企业APP'; + break; + case 7: + terminalStr = 'H5支付'; + break; + default: + terminalStr = '未知'; + } + + var status = item.status == null ? '-' : item.status; + var statusStr; + var statusIcon; + //订单状态[字典表:ORDER_STATE]:-50:已取消,10:待核算,20:待支付,30:支付中, + // 40:支付完成,50:已完成,52:欠费逃逸, 53:已补缴 60:退款中 70:退款成功 + switch (status) { + case -50: + statusStr = '已撤销'; + statusIcon = 'detail_falseIco'; + break; + case 10: + statusStr = '待支付'; + statusIcon = 'detail_falseIco'; + break; + case 20: + statusStr = '待支付'; + statusIcon = 'detail_falseIco'; + break; + case 30: + statusStr = '支付中'; + statusIcon = 'detail_falseIco'; + break; + case 40: + statusStr = '成功'; + statusIcon = 'detail_trueIco'; + break; + case 50: + statusStr = '成功'; + statusIcon = 'detail_trueIco'; + break; + case 52: + statusStr = '成功'; + statusIcon = 'detail_falseIco'; + break; + case 53: + statusStr = '成功'; + statusIcon = 'detail_trueIco'; + break; + case 60: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 70: + statusStr = '成功'; + statusIcon = 'detail_trueIco'; + break; + case 80: + statusStr = '正在退款'; + statusIcon = 'detail_falseIco'; + break; + default: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + } + + + var type = item.type == null ? '-' : item.type; + var typeStr; + //支付单类型[字典表:PAY_ORDER_TYPE]:-100:停车欠费单,-200:停车退费单,101:停车付款单,102:停车预付单,103:停车补缴单,104:共享车位;201:余额充值单,202:押金充值;301:会员卡购买单,302:会员卡续费 + switch (type) { + case 101: + typeStr = '停车付款'; + break; + case 102: + typeStr = '停车预付'; + break; + case 103: + typeStr = '停车补缴'; + break; + case -100: + typeStr = '停车欠费'; + statusStr = '未支付'; + break; + case -200: + typeStr = '停车退费'; + break; + default: + typeStr = '未知'; + } + if(status == 53){//已补缴 + typeStr = '欠费已补缴'; + statusStr = '已补缴'; + } + + var operId = item.operId == null ? '-' : item.operId; + + var operName = item.operName == null ? '-' : item.operName; + + var lineHtml = ''; + + if (detailDataNum != 1) { + + if (index == 0) { + //第一个,只有下线 + lineHtml = + '
    '; + } else if (index == (detailDataNum - 1)) { + //最后一个,只有上线 + lineHtml = + '
    '; + } else { + //中间的 上线、下线都有 + lineHtml = + '
    ' + + '
    '; + } + } + + + html += '
    ' + + // '
    ' + + // lineHtml + + // '
    ' + + '
    ' ; + + if(payFinishTime=='-'){ + html +='
    '+ + '' + createTime + '
    '; + }else { + html +='
    '+ + '' + payFinishTime + '
    '; + } + + html += '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + payTypeStr + ':' + actFee + '
    ' + + '
    ' + + '
    ' + typeStr + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    状态:' + statusStr + '
    ' + + '
    渠道:' + terminalStr + '
    ' + + '
    操作人:' + operName + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    '; + + + }); + $('#records_detail').append(html); + } + else{ + var nullhtml='
    暂无支出明细信息
    '; + $('#records_detail').append(nullhtml); + } + + + //接口 ajax + $('#records_handlemodel').modal('show'); + } else { + $('#records_alertmodel').modal('show'); + $('.ITD-alertmodel-contentmsg').text('查询订单支出明细失败'); + } + } + }; + sysAjax(opt); + + + }); + + //导出 + var InterValObj; //timer变量,控制时间 + var count = 8; //间隔函数,1秒执行 + var curCount;//当前剩余秒数 + + function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 + } + + //timer处理函数 + function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#reportBtn").val("导出"); + } + else { + curCount--; + $("#reportBtn").val(curCount + "秒后可再次导出"); + } + } + + //导出excle + documentBindFunc.on('click', '#reportBtn', function () { + //获取table所有行数据 + var parkLot = $("#recordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + if (parkLot.length < 1) { + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + }, 3000); + return false; + } + if (numTotal > 10000) { + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + }, 3000); + return false; + } + //执行倒计时函数 + sendMessage(); + var params = fun.getQueryParam(); + var url = dataUrl.util.excleImportParkOrderForFinance(); + url += '?plNos=' + params.plNos; + if (null != params.parkStatus) { + url += '&parkStatus=' + params.parkStatus; + } + if (null != params.payType) { + url += '&payType=' + params.payType; + } + if (null != params.parkType) { + url += '&parkType=' + params.parkType; + } + if (null != params.orderStates) { + url += '&orderStates=' + params.orderStates; + } + if (null != params.beginInTime && "" != params.beginInTime) { + url += '&beginInTime=' + params.beginInTime + " 00:00:00"; + + } + if (null != params.endInTime && "" != params.endInTime) { + url += '&endInTime=' + params.endInTime + " 23:59:59"; + } + if (null != params.beginOutTime && "" != params.beginOutTime) { + url += '&beginOutTime=' + params.beginOutTime + " 00:00:00"; + } + if (null != params.endOutTime && "" != params.endOutTime) { + url += '&endOutTime=' + params.endOutTime + " 23:59:59"; + } + if (null != params.carNum) { + url += '&carNum=' + params.carNum + } + if (null != params.chargePerson) { + url += '&chargePerson=' + params.chargePerson + } + url = encodeURI(url); + window.downloadFile(url); + }); + + + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryParkOrderForFinance(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + //console.log(res.data); + params.success(res.data); + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + } + } + }; + sysAjax(opt); + } + + + Array.intersect = function () { + var result = new Array(); + var obj = {}; + for (var i = 0; i < arguments.length; i++) { + for (var j = 0; j < arguments[i].length; j++) { + var str = arguments[i][j]; + if (!obj[str]) { + obj[str] = 1; + } + else { + obj[str]++; + if (obj[str] == arguments.length) { + result.push(str); + } + }//end else + }//end for j + }//end for i + return result; + } + + Array.prototype.contains = function (needle) { + for (i in this) { + if (this[i] == needle) return true; + } + return false; + } + +}) +(); + +function formatSeconds(value) { + var theTime = parseInt(value);// 秒 + var theTime1 = 0;// 分 + var theTime2 = 0;// 小时 + var theTime3 = 0;//天 + if (theTime < 60) { + return theTime + '秒'; + } + if (theTime > 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); + + + } + + if (theTime1 > 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + } + + if (theTime2 > 24) { + theTime3 = parseInt(theTime2 / 24); + theTime2 = parseInt(theTime2 % 24); + } + + var result = ''; + if (theTime1 == 0 && theTime2 == 0 && theTime3 == 0) { + result = parseInt(theTime) + "秒" + } + + if (theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if (theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + + if (theTime3 > 0) { + result = "" + parseInt(theTime3) + "天" + result; + } + return result; +}; + +/* + * jQuery Orbit Plugin 1.2.3 + * www.ZURB.com/playground + * Copyright 2010, ZURB + * Free to use under the MIT license. + * http://www.opensource.org/licenses/mit-license.php + */ + +(function (d) { + d.fn.orbit = function (a) { + a = d.extend({ + animation: "horizontal-push", + animationSpeed: 600, + timer: !0, + advanceSpeed: 4E3, + pauseOnHover: !1, + startClockOnMouseOut: !1, + startClockOnMouseOutAfter: 1E3, + directionalNav: !0, + captions: !0, + captionAnimation: "fade", + captionAnimationSpeed: 600, + bullets: !1, + bulletThumbs: !1, + bulletThumbLocation: "", + afterSlideChange: function () { + } + }, a); + return this.each(function () { + function q() { + if (!a.timer || a.timer == "false")return !1; else r.is(":hidden") ? s = setInterval(function () { + l("next") + }, a.advanceSpeed) : + (o = !0, x.removeClass("active"), s = setInterval(function () { + var a = "rotate(" + m + "deg)"; + m += 2; + t.css({"-webkit-transform": a, "-moz-transform": a, "-o-transform": a}); + m > 180 && (t.addClass("move"), y.addClass("move")); + m > 360 && (t.removeClass("move"), y.removeClass("move"), m = 0, l("next")) + }, a.advanceSpeed / 180)) + } + + function n() { + if (!a.timer || a.timer == "false")return !1; else o = !1, clearInterval(s), x.addClass("active") + } + + function z() { + if (!a.captions || a.captions == "false")return !1; else { + var c = e.eq(b).data("caption"); + (_captionHTML = d(c).html()) ? + (j.attr("id", c).html(_captionHTML), a.captionAnimation == "none" && j.show(), a.captionAnimation == "fade" && j.fadeIn(a.captionAnimationSpeed), a.captionAnimation == "slideOpen" && j.slideDown(a.captionAnimationSpeed)) : (a.captionAnimation == "none" && j.hide(), a.captionAnimation == "fade" && j.fadeOut(a.captionAnimationSpeed), a.captionAnimation == "slideOpen" && j.slideUp(a.captionAnimationSpeed)) + } + } + + function A() { + if (a.bullets) C.children("li").removeClass("active").eq(b).addClass("active"); else return !1 + } + + function l(c) { + function d() { + e.eq(f).css({"z-index": 1}); + u = !1; + a.afterSlideChange.call(this) + } + + var f = b, g = c; + if (f == g)return !1; + if (e.length == "1")return !1; + u || (u = !0, c == "next" ? (b++, b == p && (b = 0)) : c == "prev" ? (b--, b < 0 && (b = p - 1)) : (b = c, f < b ? g = "next" : f > b && (g = "prev")), A(), e.eq(f).css({"z-index": 2}), a.animation == "fade" && e.eq(b).css({ + opacity: 0, + "z-index": 3 + }).animate({opacity: 1}, a.animationSpeed, d), a.animation == "horizontal-slide" && (g == "next" && e.eq(b).css({ + left: h, + "z-index": 3 + }).animate({left: 0}, a.animationSpeed, d), g == "prev" && e.eq(b).css({ + left: -h, + "z-index": 3 + }).animate({left: 0}, a.animationSpeed, + d)), a.animation == "vertical-slide" && (g == "prev" && e.eq(b).css({ + top: v, + "z-index": 3 + }).animate({top: 0}, a.animationSpeed, d), g == "next" && e.eq(b).css({ + top: -v, + "z-index": 3 + }).animate({top: 0}, a.animationSpeed, d)), a.animation == "horizontal-push" && (g == "next" && (e.eq(b).css({ + left: h, + "z-index": 3 + }).animate({left: 0}, a.animationSpeed, d), e.eq(f).animate({left: -h}, a.animationSpeed)), g == "prev" && (e.eq(b).css({ + left: -h, + "z-index": 3 + }).animate({left: 0}, a.animationSpeed, d), e.eq(f).animate({left: h}, a.animationSpeed))), z()) + } + + var b = 0, + p = 0, h, v, u, f = d(this).addClass("orbit"), c = f.wrap('
    ').parent(); + f.add(h).width("1px").height("1px"); + var e = f.children("img, a, div"); + e.each(function () { + var a = d(this), b = a.width(), a = a.height(); + b > f.width() && (f.add(c).width(b), h = f.width()); + a > f.height() && (f.add(c).height(a), v = f.height()); + p++ + }); + if (e.length == 1) a.directionalNav = !1, a.timer = !1, a.bullets = !1; + e.eq(b).css({"z-index": 3}).fadeIn(function () { + e.css({display: "block"}) + }); + if (a.timer) { + c.append('
    '); + var r = c.children("div.timer"), o; + if (r.length != 0) { + var t = d("div.timer span.rotator"), y = d("div.timer span.mask"), x = d("div.timer span.pause"), + m = 0, s; + q(); + r.click(function () { + o ? n() : q() + }); + if (a.startClockOnMouseOut) { + var B; + c.mouseleave(function () { + B = setTimeout(function () { + o || q() + }, a.startClockOnMouseOutAfter) + }); + c.mouseenter(function () { + clearTimeout(B) + }) + } + } + } + a.pauseOnHover && c.mouseenter(function () { + n() + }); + if (a.captions) { + c.append('
    '); + var j = c.children(".orbit-caption"); + z() + } + if (a.directionalNav) { + if (a.directionalNav == + "false")return !1; + c.append('
    RightLeft
    '); + var k = c.children("div.slider-nav").children("span.left"), + w = c.children("div.slider-nav").children("span.right"); + k.click(function () { + n(); + l("prev") + }); + w.click(function () { + n(); + l("next") + }) + } + if (a.bullets) { + c.append('
      '); + var C = c.children("ul.orbit-bullets"); + for (i = 0; i < p; i++) { + k = d("
    • " + (i + 1) + "
    • "); + if (a.bulletThumbs && (w = e.eq(i).data("thumb"))) k = d('
    • ' + + i + "
    • "), k.css({background: "url(" + a.bulletThumbLocation + w + ") no-repeat"}); + c.children("ul.orbit-bullets").append(k); + k.data("index", i); + k.click(function () { + n(); + l(d(this).data("index")) + }) + } + A() + } + }) + } +})(jQuery); + +$('#featured-in').orbit(); + +$('#featured-out').orbit(); + +$('#ITD-alert-tab-wrap li').on('click', function () { + var _index = $(this).index(); + $(this).addClass('ITD-alert-tab-active').siblings('li').removeClass('ITD-alert-tab-active'); + if (_index == 0) { + $('.featured-in-wrap').removeClass('display-none') + $('.featured-out-wrap').addClass('display-none') + } else { + $('.featured-in-wrap').addClass('display-none') + $('.featured-out-wrap').removeClass('display-none') + } +}); + diff --git a/assets/pages/scripts/orderManagement/endorsement.js b/assets/pages/scripts/orderManagement/endorsement.js new file mode 100644 index 0000000..effc270 --- /dev/null +++ b/assets/pages/scripts/orderManagement/endorsement.js @@ -0,0 +1,313 @@ +/** + * Created by chenbiao on 2017/8/23. + */ + + + +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click',".ITD-search-morebtn",function(){ + $(".hide-common-style").toggleClass("display-none"); +}); +(function () { + var cacheParkData ; + var fun = { + init: function () { + //初始化停车状态下拉框 + fn.getParkStatus(fun.initParkStatus); + fun.dateInit(); + fun.createTableData(); + }, + dateInit:function () { + /*进场时间筛选框*/ + //进场时间初始化 + $('#endor-daterange-btnsta').val(moment().subtract('days',0).format('YYYY-MM-DD')); + $('#endor-daterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#endor-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + //结束日期 + $("#endor-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + /*出场时间筛选框*/ + //出场时间初始化 + // $('#endor-daterange-timeoutsta').val(moment().subtract('days',6).format('YYYY-MM-DD')); + // $('#endor-daterange-timeoutend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#endor-daterange-timeoutsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("click", function () { + $("#endor-daterange-timeoutsta").datetimepicker("setEndDate", $("#endor-daterange-timeoutend").val()) + }); + //结束日期 + $("#endor-daterange-timeoutend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("click", function () { + $("#endor-daterange-timeoutend").datetimepicker("setStartDate", $("#endor-daterange-timeoutsta").val()) + }); + }, + //生成表格数据 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 1, + // rightFixedColumns: true, + // rightFixedNumber: 1, + ajax: tableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + + { + field: 'carNumber', + title: '车牌号', + width: '10%', + align:"left", + formatter: commonObj.replacenull + }, + {field: 'plName', title: '车场名称', width: '10%', align:"left"}, + { + field: 'parkInTime', + title: '进场时间', + width: '15%', + align:"left", + formatter: commonObj.timeFormatter + }, + { + field: 'parkOutTime', + title: '出场时间', + width: '15%', + align:"left", + formatter: commonObj.timeFormatter + }, + + { + field: 'parkingDuration', + title: '停车时长', + width: '10%', + align:"left", + formatter: fun.parkingDurationFormatter + }, + { + field: 'parkState', + title: '状态', + width: '10%', + align:"left", + formatter: commonObj.inOutStateFormatter + }, + ] + }); + + }, + /*获取查询参数*/ + getQueryParam: function () { + /*停车状态*/ + var parkStatus = JSON.parse($("#parkStatus").val()); + // console.log(parkStatus) + if(parkStatus.length == 0 ||parkStatus==null ||parkStatus==undefined){ + parkStatus = null; + }else{ + parkStatus = parkStatus[0]; + } + /*进场开始时间*/ + var beginInTime = null; + /*进场结束*/ + var endInTime = null; + /*出场开始时间*/ + var beginOutTime = null; + /*出场结束时间*/ + var endOutTime = null; + /*解析进场时间*/ + var times1 = $('#endor-daterange-btnsta').val(); + var times2 = $('#endor-daterange-btnend').val(); + if (null != times1 && times1.trim().length > 0) { + beginInTime = times1; + } + if (null != times2 && times2.trim().length > 0) { + endInTime = times2; + } + + /*解析出场时间*/ + var times3 = $('#endor-daterange-timeoutsta').val(); + var times4 = $('#endor-daterange-timeoutend').val(); + if (null != times3 && times3.trim().length > 0) { + beginOutTime = times3; + } + if (null != times4 && times4.trim().length > 0) { + endOutTime = times4; + } + + /*车牌号*/ + var carNum = $('#carNumber').val(); + carNum = carNum == null || carNum.length == 0 ? null : carNum.trim(); + var req = { + parkState: parkStatus, + beginInTime: beginInTime, + endInTime: endInTime, + beginOutTime: beginOutTime, + endOutTime: endOutTime, + carNumber: carNum + }; + + return req; + }, + + //停车状态下来框 + initParkStatus: function (data) { + if (data==null||data==undefined||data=='') { + return; + } + $("#parkStatus").empty(); + var html = ''; + $.each(data, function (index, item) { + html += '' + }); + $("#parkStatus").append(html); + $('#parkStatus').selectpicker('refresh'); + }, + //停车时长 + parkingDurationFormatter: function (value, row, index) { + if (value==null||value==undefined||value=='') { + return "-"; + } else { + return formatSeconds(value); + } + }, + + }; + + + //初始执行 + fun.init(); + documentBindFunc.on('click', '#queryBtn', function () { + fun.createTableData(); + }); + + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryPageParkOrderByIllegalCar(), + async: false, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + console.log(res.data); + params.success(res.data); + } + } + }; + sysAjax(opt); + } +}) +(); + + +function formatSeconds(value) { + var theTime = parseInt(value);// 秒 + var theTime1 = 0;// 分 + var theTime2 = 0;// 小时 + var theTime3 = 0;//天 + if (theTime < 60) { + return theTime + '秒'; + } + if (theTime > 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); + + + } + + if (theTime1 > 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + } + + if (theTime2 > 24) { + theTime3 = parseInt(theTime2 / 24); + theTime2 = parseInt(theTime2 % 24); + } + + var result = ''; + if (theTime1 == 0 && theTime2 == 0 && theTime3 == 0) { + result = parseInt(theTime) + "秒" + } + + if (theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if (theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + + if (theTime3 > 0) { + result = "" + parseInt(theTime3) + "天" + result; + } + return result; +}; + diff --git a/assets/pages/scripts/orderManagement/geomagneticincome.js b/assets/pages/scripts/orderManagement/geomagneticincome.js new file mode 100644 index 0000000..e234718 --- /dev/null +++ b/assets/pages/scripts/orderManagement/geomagneticincome.js @@ -0,0 +1,385 @@ +$(function () { + $("[data-toggle='tooltip']").tooltip(); +}); + +var fun = { + init: function () { + fun.statisticEqpCountAjax(); + fun.queryEqpTurnoverCountAjax(); + fun.realTimeDatasAjax(); + fun.recentIncomeAjax(); + fun.queryEqpCalculateSummary(); + }, + /*获取查询参数*/ + getQueryParam: function () { + var data = fn.getParkLotByPlType(1);//获取路侧停车场 + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + } + if (plNos.length < 1) { + plNos.push("-1X"); + } + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + + }; + return req; + }, + statisticEqpCountAjax: function () { + var req = fun.getQueryParam(); + //设置请求参数 + req.baseRequest = { + sysCode: sysComm.sysCode, + pageNum: 1, + pageSize: 0 + } + req.sysCode = sysComm.sysCode; + var optAjax = { + async: false, + method: "post", + url: dataUrl.util.statisticEqpCountByCondition(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code = "8888") { + var data = res.data; + var allEqpNum = data.allEqpNum; + var onlineEqpNum = data.operateOnLineEqpNum; + var offLineEqpNum = data.operateOffLineEqpNum; + var faultEqpNum = data.operateFaultEqpNum; + var operateEqpNum = data.operateEqpNum; + var debugEqpNum = data.debugEqpNum; + + $("#allEqpNum").text(fun.numberFormatter(allEqpNum)); + + $("#operateEqpNum").text(fun.numberFormatter(operateEqpNum)); + $("#debugEqpNum").text(fun.numberFormatter(debugEqpNum)); + + $("#onlineEqpNum").text(fun.numberFormatter(onlineEqpNum)); + $("#offLineEqpNum").text(fun.numberFormatter(offLineEqpNum)); + $("#faultEqpNum").text(fun.numberFormatter(faultEqpNum)); + } + } + }; + sysAjax(optAjax); + }, + //查询地磁周转次数 + queryEqpTurnoverCountAjax: function () { + var req = fun.getQueryParam(); + var beginTime = new Date(new Date(new Date().toLocaleDateString()).getTime()); + var endTime = new Date(); + req.beginTime = beginTime; + req.endTime = endTime; + var opt = { + method: 'post', + url: dataUrl.util.queryEqpTurnoverCount(), + async: false, + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var eqpNum = res.data.turnoverNum; + var duration = res.data.duration; + if (eqpNum == null || isNaN(eqpNum) || eqpNum == undefined) { + eqpNum = 0; + } + if (duration == null || isNaN(duration) || duration == undefined) { + duration = 0; + } + $("#eqpNum").val(eqpNum); + $("#duration").val(duration); + } + } + } + sysAjax(opt); + }, + //查询实时数据 + realTimeDatasAjax: function () { + var req = fun.getQueryParam(); + var opt = { + method: 'post', + url: dataUrl.util.queryParkRealTimeDatasByPlNos(), + async: false, + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var data = res.data; + var eqpNum = $("#eqpNum").val(); + var duration = $("#duration").val(); + var operateEqpNum = $("#operateEqpNum").text(); + $("#parkIncome").text(fun.moneyFomatter(data.parkIncome)); + $("#eqpCalculateIncome").text(fun.moneyFomatter(eqpNum * 300)); + // $("#averageIncome").text(fun.moneyFomatter(eqpNum*300/operateEqpNum)); + // $("#averageDuration").text(fun.minuteFomatter(duration/operateEqpNum)); + // if(operateEqpNum<1){ + // $("#averageIncome").text(fun.moneyFomatter(0)); + // $("#averageDuration").text(fun.minuteFomatter(0)); + // } + } + } + } + sysAjax(opt); + }, + //统计最近24小时每小时收入 + recentIncomeAjax: function () { + var req = fun.getQueryParam(); + var beginTime = new Date(new Date(new Date().toLocaleDateString()).getTime()); + var endTime = new Date(); + req.beginTime = beginTime; + req.endTime = endTime; + var opt = { + method: 'post', + url: dataUrl.util.queryRecentIncome(), + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + var data = res.data; + var resultData = {time: [], fee: [], eqpFee: []}; + + if (data != null) { + $.each(data, function (index, item) { + resultData.time.push((item.staticTimeStr).substring(11, (item.staticTimeStr).length) + ':00'); + resultData.fee.push(fun.moneyFomatter(item.orderActFee)); + resultData.eqpFee.push(fun.moneyFomatter(item.eqpFee)); + }); + } + fun.createEcharts(resultData); + } + } + } + sysAjax(opt); + }, + + + //查询地磁汇总测算收入 + queryEqpCalculateSummary: function () { + var operateEqpNum = $("#operateEqpNum").text(); + + + var req = fun.getQueryParam(); + var beginTime = new Date(new Date(new Date().toLocaleDateString()).getTime()); + var endTime = new Date(); + req.eqpOutTimeStart = beginTime; + req.eqpOutTimeEnd = endTime; + var opt = { + method: 'post', + url: dataUrl.util.queryEqpCalculateSummary(), + data: JSON.stringify(req), + success: function (res) { + if (res.code == '8888') { + //获取数据成功 + console.log(res); + var fee; + var parkDuration; + if (res.data == null) { + fee = 0; + parkDuration = 0; + }else { + fee = res.data.parkFee; + fee = (fee == undefined || fee == null) ? 0 : fee; + parkDuration = res.data.parkDuration; + parkDuration = (parkDuration == undefined || parkDuration == null) ? 0 : parkDuration; + } + + $("#eqpCalculateIncome").text(fun.moneyFomatter(fee)); + if (operateEqpNum < 1) { + $("#averageIncome").text(fun.moneyFomatter(0)); + $("#averageDuration").text(fun.minuteFomatter(0)); + } else { + $("#averageIncome").text(fun.moneyFomatter(fee / operateEqpNum)); + $("#averageDuration").text(fun.minuteFomatter(parkDuration / operateEqpNum)); + } + + } + } + } + sysAjax(opt); + }, + + + numberFormatter: function (value) { + if (value == undefined || value == null || isNaN(value)) { + return "0"; + } else { + return value; + } + }, + minuteFomatter: function (value) { + if (value == undefined || value == null || isNaN(value)) { + return "0"; + } else { + return (value / 60).toFixed(1); + } + }, + moneyFomatter: function (value) { + if (value == undefined || isNaN(value) || value == null) { + return "0.00"; + } else { + return (value / 100).toFixed(2); + } + }, + createEcharts: function (data) { + var geochart = echarts.init(document.getElementById('geoincome_echarts')); + var option = { + color: ['#5fe98f', '#1e95cd'], + tooltip: { + trigger: 'axis' + }, + legend: { + right: '2%', + top: '0', + textStyle: { + color: '#888990', + }, + itemWidth: 18, + itemHeight: 10, + }, + grid: { + top: '13%', + left: '1%', + right: '2%', + bottom: '2%', + containLabel: true + }, + + xAxis: { + type: 'category', + boundaryGap: true, + // data:xAxisData, + data: data.time,//['00:00','02:00','04:00','06:00','08:00','10:00','12:00','14:00','16:00'], + + axisLabel: { + // interval:2, + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12px', + fontFamily: '微软雅黑' + } + }, + // splitNumber:10, + // minInterval:2, + axisTick: { + show: false, + }, + splitLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + + }, + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize: '12px', + fontFamily: '微软雅黑' + } + }, + axisLabel: { //调整y轴的lable + textStyle: { + color: 'rgba(0,0,0,0.5)', + } + }, + axisTick: { + show: false + }, + + axisLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + width: 1,//这里是为了突出显示加上的 + } + }, + splitLine: { + lineStyle: { + // type:'dashed', + color: 'rgba(0,0,0,0.1)', + } + } + }, + series: [ + { + name: '泊位测算收益', + type: 'line', + symbol: 'circle', + symbolSize: 10, + // smooth:true, + // data:inseriesData, + data: data.eqpFee,//[4,1,6,2,9,4,1,6,2,9,8,1], + itemStyle: { + normal: { + lineStyle: { + color: '#f0f0f2', + } + } + }, + areaStyle: { + normal: { + color: '#5fe98f', + opacity: .2 + } + }, + lineStyle: { + normal: { + color: '#5fe98f', + width: 2, + } + } + }, + { + name: '订单收益', + type: 'line', + symbol: 'circle', + symbolSize: 10, + // smooth:true, + // data:outseriesData, + data: data.fee,//[43,13,26,24,93,4,1,6,2,9,8,1], + itemStyle: { + normal: { + lineStyle: { + color: '#f0f0f2', + } + } + }, + areaStyle: { + normal: { + color: '#1e95cd', + opacity: .2 + } + }, + lineStyle: { + normal: { + color: '#1e95cd', + width: 2, + } + } + }, + + ] + }; + geochart.setOption(option, true); + // 自适应 + window.onresize = geochart.resize; + } +}; +fun.init(); +setInterval(function () { + fun.init(); +}, commonObj.refreshDataTime); diff --git a/assets/pages/scripts/orderManagement/oddchange.js b/assets/pages/scripts/orderManagement/oddchange.js new file mode 100644 index 0000000..8857491 --- /dev/null +++ b/assets/pages/scripts/orderManagement/oddchange.js @@ -0,0 +1,459 @@ +var fun = { + init: function () { + commSelect.plName_select("#_parkIds",true); + fun.dateInit(); + fun.createTableData(); + fun.initSummaryFeeData(); + }, + //时间初始化 + dateInit: function () { + $('#bill-daterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD 00:00:00')); + $('#bill-daterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59')); + //开始日期 + $("#bill-daterange-btnsta").datetimepicker({ + weekStart: 1, + autoclose: true, + startView: 2, + forceParse: false, + minView: 0, + minuteStep:1,//分钟间隔1分钟 + // showMeridian: 1, + format: 'yyyy-mm-dd hh:ii:ss', + endDate: moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59'), + language: 'zh-CN', + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }) + $("#bill-daterange-btnend").datetimepicker({ + weekStart: 1, + autoclose: true, + startView: 2, + forceParse: false, + minView: 0, + minuteStep:1,//分钟间隔1分钟 + // showMeridian: 1, + format: 'yyyy-mm-dd hh:ii:ss', + endDate: moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59'), + language: 'zh-CN', + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }); + // $('#odd-daterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD 00:00:00')); + // $('#odd-daterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59')); + //开始日期 + $("#odd-daterange-btnsta").datetimepicker({ + weekStart: 1, + autoclose: true, + startView: 2, + forceParse: false, + minView: 0, + minuteStep:1,//分钟间隔1分钟 + // showMeridian: 1, + format: 'yyyy-mm-dd hh:ii:ss', + endDate: moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59'), + language: 'zh-CN', + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }) + $("#odd-daterange-btnend").datetimepicker({ + weekStart: 1, + autoclose: true, + startView: 2, + forceParse: false, + minView: 0, + minuteStep:1,//分钟间隔1分钟 + // showMeridian: 1, + format: 'yyyy-mm-dd hh:ii:ss', + endDate: moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59'), + language: 'zh-CN', + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }) + }, + + /*获取查询参数*/ + getQueryParams: function () { + var plnos = JSON.parse($("#_parkIds").val()); + var payTypes = []; + var payTypesStr = $("#payType").val(); + if(payTypesStr != null && payTypesStr != undefined && payTypesStr != ''){ + payTypes = JSON.parse(payTypesStr); + } + /*投币 开始时间*/ + var beginTime; + /*结束时间*/ + var endTime; + /*找零 开始时间*/ + var payBeginTime; + /*结束时间*/ + var payEndTime; + //日 + beginTime = $("#bill-daterange-btnsta").val(); + endTime = $("#bill-daterange-btnend").val(); + payBeginTime = $("#odd-daterange-btnsta").val(); + payEndTime = $("#odd-daterange-btnend").val(); + + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + payBeginTime = payBeginTime == null || payBeginTime.length == 0 ? null : new Date((payBeginTime).replace(/-/g, "/")); + payEndTime = payEndTime == null || payEndTime.length == 0 ? null : new Date((payEndTime).replace(/-/g, "/")); + // var payOrderState =$("#tab-btn-wrap").find(".tabAction").val();/**20-未找零 40-已找零*/ + var req = { + orgId:fn.getOrgId(), + plNos: plnos, + payTypes: payTypes, + beginTime: beginTime, + endTime: endTime, + payBeginTime: payBeginTime, + payEndTime: payEndTime, + }; + req.sysCode = sysComm.sysCode; + //console.log(req); + return req; + }, + + initSummaryFeeData:function(){ + $("[id$='Fee']").text(commonObj.moneyFormatter(0)); + + var req=fun.getQueryParams(); + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + var opt = { + method: 'post', + url: dataUrl.util.queryCashRefundForTotal(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data=res.data; + if(data !=null){ + + $("#orderActFee").text(commonObj.moneyFormatter(data.orderActFee)); + $("#wxPaidFee").text(commonObj.moneyFormatter(data.wxPaidFee)); + $("#aliPaidFee").text(commonObj.moneyFormatter(data.aliPaidFee)); + $("#nonePaidFee").text(commonObj.moneyFormatter(data.nonePaidFee)); + } + + } + } + }; + sysAjax(opt); + + }, + + //生成表格数据 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'parkOutTime', + title: '投币时间', + valign: "middle", + align: 'left', + formatter: commonObj.timeFormatter + //width: '20%' + }, + { + field: 'plName', + title: '车场名称', + valign: "middle", + align: 'left', + formatter: commonObj.replacenull + //width: '20%' + }, + { + field: 'carNumber', + title: '车牌号', + valign: "middle", + align: 'left', + formatter: commonObj.replacenull + //width: '20%' + }, + { + field: 'parkInTime', + title: '进场时间', + valign: "middle", + align: 'left', + formatter: commonObj.timeFormatter + //width: '20%' + }, + { + field: 'orderActFee', + title: '投币金额', + align: 'left', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + { + field: 'orderTotalFee', + title: '现金应缴', + align: 'left', + valign: "middle", + formatter: commonObj.moneyFormatter + }, + { + field: 'payType', + title: '找零类型', + align: 'left', + valign: "middle", + formatter: commonObj.discPayTypeFormatter + }, + { + field: 'orderActFee', + title: '找零金额', + align: 'left', + valign: "middle", +// formatter: commonObj.moneyFormatter + formatter: function (value, row, index) { + if(row.payOrderState == 40){ + var actFee = (row.orderActFee == null ? 0 :row.orderActFee); + var totalFee = (row.orderTotalFee == null ? 0 :row.orderTotalFee); + return commonObj.moneyFormatter(actFee - totalFee); + }else{ + return '-'; + } + + } + }, + { + field: 'payFinishTime', + title: '找零时间', + valign: "middle", + align: 'left', + formatter: commonObj.timeFormatter + //width: '20%' + }, + { + field: 'payOrderState', + title: '找零状态', + align: 'left', + valign: "middle", + formatter: function (value, row, index) { + if(row.payOrderState == 40){ + return '已找零'; + }else{ + return '未找零'; + } + + } + }, + { + field: 'remark', + title: '备注', + align: 'left', + valign: "middle", + formatter: commonObj.replacenull + }, + + ] + }); + + }, + + +}; +fun.init(); +//查询 +documentBindFunc.on('click', '#bill-queryBtn', function () { + fun.createTableData(); + fun.initSummaryFeeData(); +}); + +//切换 全部 有差异 无差异 +/*$('#tab-btn-wrap li').on('click',function () { + //因后面逻辑需要,一定要线切换 tabAction 样式, 然后在调用 对应的函数 + $(this).addClass('tabAction').siblings().removeClass('tabAction'); + fun.createTableData(); +});*/ + + + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParams(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCashRefundForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + + + + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#billmanageReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#billmanageReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#billmanageReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#billmanageReport").val("导出"); + } + else { + curCount--; + $("#billmanageReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#billmanageReport',function (){ + //获取table所有行数据 + var parkLot = $("#recordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var req = fun.getQueryParams(); + var beginTime = DateUtils.long2String(req.beginTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + var payBeginTime = DateUtils.long2String(req.payBeginTime, 7); + var payEndTime = DateUtils.long2String(req.payEndTime, 7); + if(beginTime == "-"){ + beginTime = null; + } + if(endTime == "-"){ + endTime = null; + } + if(payBeginTime == "-"){ + payBeginTime = null; + } + if(payEndTime == "-"){ + payEndTime = null; + } + var url = dataUrl.util.exportCashRefundList(); + var forms = exportIncomeDetailFormforbill(url,req.plNos, beginTime, endTime,payBeginTime,payEndTime,fn.getOrgId(), req.payTypes, req.sysCode + ); + forms.submit(); +}); + + + + +function exportIncomeDetailFormforbill(url,plNos, beginTime, endTime,payBeginTime,payEndTime,orgId, payTypes, sysCode +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "beginTime"; + input.value = beginTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endTime"; + input2.value = endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "payBeginTime"; + input3.value = payBeginTime; + form.appendChild(input3); + + var input4 = document.createElement("input"); + input4.name = "payEndTime"; + input4.value = payEndTime; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "orgId"; + input5.value = orgId; + form.appendChild(input5); + + + var input1 = document.createElement("input"); + input1.name = "plNos"; + input1.value = plNos; + form.appendChild(input1); + + var input6 = document.createElement("input"); + input6.name = "payTypes"; + input6.value = payTypes; + form.appendChild(input6); + + var input7 = document.createElement("input"); + input7.name = "sysCode"; + input7.value = sysCode; + form.appendChild(input7); + + return form; + +}; diff --git a/assets/pages/scripts/orderManagement/parkingarrears.js b/assets/pages/scripts/orderManagement/parkingarrears.js new file mode 100644 index 0000000..43ffe6c --- /dev/null +++ b/assets/pages/scripts/orderManagement/parkingarrears.js @@ -0,0 +1,630 @@ +var plOrCar; +var fun = { + init:function(){ + commSelect.area_Pl_LinkedSelect("#bill-parkArea", "#caryard_parkIds"); + fun.monthdateInit(); + fun.queryArrearTotalByCondition(); + fun.createTableData(); + fun.rcreateTableData(); + fun.onchangeInput(); + }, + monthdateInit: function () { + /** 月 时间初始化 **/ + $('#bill-monthdaterange-btnsta').val(moment().subtract('months', 5).format('YYYY-MM')); + $('#bill-monthdaterange-btnend').val(moment().subtract('months', 0).format('YYYY-MM')); + //开始日期 + $("#bill-monthdaterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 0).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#bill-monthdaterange-btnend").datetimepicker({ + endDate: moment().subtract('months',0).format('YYYY-MM'), + //startDate:startVal, + format: 'yyyy-mm', + weekStart: 1, + autoclose: true, + startView: 3, + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + onchangeInput:function () { + documentBindFunc.on('change', '#bus_type', function () { + fun.createTableData(); + fun.rcreateTableData(); + }) + }, + /*获取查询参数*/ + getQueryParam: function() { + //停车场 + var plNos = JSON.parse($("#caryard_parkIds").val()); + var minArrearageFee = $("#bus_type").val(); + var carNumber = $("#carNumber").val(); + var beginTime; + var endTime; + beginTime = $("#bill-monthdaterange-btnsta").val(); + endTime = $("#bill-monthdaterange-btnend").val(); + beginTime = beginTime + "-01 00:00:00"; + var endMonth = endTime.substr(5,7); + var month = '-31'; + if(endMonth == '04' ||endMonth == '06' ||endMonth == '09' ||endMonth == '11'){ + month = '-30'; + }else if(endMonth == '02'){ + month = '-29'; + } + endTime = endTime + month+" 23:59:59"; + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + if (plNos.length < 0 || plNos == null || plNos == undefined) { + plNos.push(-1); + } + if(minArrearageFee == undefined || minArrearageFee == null || minArrearageFee == 'ALL'){ + minArrearageFee = null; + } + var req = { + plNos: plNos, + carNumber:carNumber, + beginTime: beginTime, + endTime: endTime, + minArrearageFee:minArrearageFee, + maxArrearageFee:null, + sysCode:sysComm.sysCode + }; + return req; + }, + queryArrearTotalByCondition: function () { + + $("#arrearageFee").text(0); + $("#carNum").text(0); + $("#arrearageNum").text(0); + + var req = fun.getQueryParam(); + var opt = { + method: 'post', + url: dataUrl.util.queryArrearTotalByCondition(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + $("#arrearageFee").text(commonObj.moneyFormatter(data.arrearageFee)); + $("#carNum").text(commonObj.numberFormatter(data.carNum)); + $("#arrearageNum").text(commonObj.numberFormatter(data.arrearageNum)); + + } + } + }; + sysAjax(opt); + }, + //生成表格数据 停车场 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequestForPark, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'plName', + title: '车场名称', + width: '10%', + visible: true, + align: "left", + formatter: function (value, row, index) { + return '
      ' + + '
      ' + commonObj.replacenull(row.plName) + '
      ' + + '
      '; + } + }, + { + field: 'arrearageFee', + title: '欠费金额', + width: '10%', + align: "left", + sortable: true, + formatter: commonObj.moneyFormatter + }, + { + field: 'arrearageNum', + title: '次数', + width: '10%', + align: "left", + sortable: true, + formatter: commonObj.numberFormatter + }, + + + ] + }); + + }, + //生成表格数据 车牌号 + rcreateTableData: function () { + $('#recordtable1').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequestForCar, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'carNumber', + title: '车牌号', + width: '10%', + visible: true, + align: "left", + formatter: function (value, row, index) { + return '
      ' + + '
      ' + commonObj.replacenull(row.carNumber) + '
      ' + + '
      '; + } + }, + { + field: 'arrearageFee', + title: '欠费金额', + width: '10%', + align: "left", + sortable: true, + formatter: commonObj.moneyFormatter + }, + { + field: 'arrearageNum', + title: '次数', + width: '10%', + align: "left", + sortable: true, + formatter: commonObj.numberFormatter + }, + + + ] + }); + + }, + //弹窗 生成表格数据 停车场 按月 + parkPopcreateTableData: function (plNo) { + $('#garparktable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequestForParkDetail, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'staticDate', + title: '时间', + width: '10%', + visible: true, + align: "left", + formatter: commonObj.yearMonthFormatter + }, + { + field: 'plName', + title: '车场名称', + width: '10%', + visible: true, + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'arrearageFee', + title: '欠费金额', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'arrearageNum', + title: '次数', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + + + ] + }); + + }, + //弹窗 生成表格数据 车牌号 按月 + carPopcreateTableData: function () { + $('#garcartable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + fixedColumns: true, + fixedNumber: 1, + leftFixedColumns: true, + leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequestForCarDetail, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'staticDate', + title: '时间', + width: '10%', + visible: true, + align: "left", + formatter: commonObj.yearMonthFormatter + }, + { + field: 'carNumber', + title: '车牌号', + width: '10%', + visible: true, + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'arrearageFee', + title: '欠费金额', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'arrearageNum', + title: '次数', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + + + ] + }); + + }, +}; + +fun.init(); +//查询 事件 +documentBindFunc.on('click', '#caryard_queryBtn', function () { + fun.queryArrearTotalByCondition(); + fun.createTableData(); + fun.rcreateTableData(); +}); + +//停车场维度 弹窗 +documentBindFunc.on('click', '.records_popparkMsg', function () { + var plNo = $(this).attr('data-id'); + console.log(plNo); + plOrCar = plNo; + fun.parkPopcreateTableData(); + $("#parkpopmodel").modal('show'); +}); +//车牌号维度 弹窗 +documentBindFunc.on('click', '.records_popcarMsg', function () { + var carNumber = $(this).attr('data-id'); + plOrCar = carNumber; + fun.carPopcreateTableData(); + $("#carpopmodel").modal('show'); +}); + + + + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequestForPark(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit, + sortOrder:params.data.order,//排序 + sortName:params.data.sort,//排序字段 + }; + req.type = 0;//查询维度 0-停车场 1-车主 + req.dateFlag = 1;//是否按月汇总 1-是 0-否 + var opt = { + method: 'post', + url: dataUrl.util.queryArrearListForParkOrCarNumber(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +function tableLoadRequestForCar(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit, + sortOrder:params.data.order,//排序 + sortName:params.data.sort,//排序字段 + }; + req.type = 1;//查询维度 0-停车场 1-车主 + req.dateFlag = 1;//是否按月汇总 1-是 0-否 + var opt = { + method: 'post', + url: dataUrl.util.queryArrearListForParkOrCarNumber(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequestForParkDetail(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.type = 0;//查询维度 0-停车场 1-车主 + req.dateFlag = 0;//是否按月汇总 1-是 0-否 + req.minArrearageFee = null; + req.plNos = [plOrCar]; + var opt = { + method: 'post', + url: dataUrl.util.queryArrearListForParkOrCarNumber(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +function tableLoadRequestForCarDetail(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.type = 1;//查询维度 0-停车场 1-车主 + req.dateFlag = 0;//是否按月汇总 1-是 0-否 + req.minArrearageFee = null; + req.carNumber = plOrCar; + var opt = { + method: 'post', + url: dataUrl.util.queryArrearListForParkOrCarNumber(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#caryardReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#caryardReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#caryardReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#caryardReport").val("导出"); + } + else { + curCount--; + $("#caryardReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#caryardReport',function (){ + //获取table所有行数据 + var parkLot = $("#recordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //执行倒计时函数 + sendMessage(); + + + var req = fun.getQueryParam(); + var beginTime = DateUtils.long2String(req.beginTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + var url = dataUrl.util.exportArrearListForParkAndCarNumber(); + + var form = caryardForm(url,req.plNos,beginTime,endTime,req.carNumber,fn.getOrgId(),req.minArrearageFee,req.maxArrearageFee); + console.log(form); + form.submit(); + + +}); + +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); +}); + +function caryardForm(url,plNos,beginTime,endTime,carNumber,orgId,minArrearageFee,maxArrearageFee){ + var form = document.createElement("form"); + form.style.display='none';; + form.action = url; + form.method="post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "plNos"; + input.value = plNos; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "beginTime"; + input2.value = beginTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "endTime"; + input3.value = endTime; + form.appendChild(input3); + + var input4 = document.createElement("input"); + input4.name = "carNumber"; + input4.value = carNumber; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "orgId"; + input5.value = orgId; + form.appendChild(input5); + + var input6 = document.createElement("input"); + input6.name = "minArrearageFee"; + input6.value = minArrearageFee; + form.appendChild(input6); + + var input7 = document.createElement("input"); + input7.name = "maxArrearageFee"; + input7.value = maxArrearageFee; + form.appendChild(input7); + return form; + +} + + + + + + + + + + + diff --git a/assets/pages/scripts/orderManagement/parkingmanage.js b/assets/pages/scripts/orderManagement/parkingmanage.js new file mode 100644 index 0000000..0cb8740 --- /dev/null +++ b/assets/pages/scripts/orderManagement/parkingmanage.js @@ -0,0 +1,825 @@ +var fun = { + init: function () { + fun.timeInit(); + fun.createTableData(); + }, + timeInit: function () { + //进场时间初始化 + $('#parkmanage-daterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $('#parkmanage-daterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#parkmanage-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + clearBtn: true, //添加清除按钮,可选值:true/false + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#parkmanage-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + clearBtn: true, //添加清除按钮,可选值:true/false + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //生成表格数据 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 1, + ajax: tableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'carNumber', + title: '车牌号', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
      ' + commonClass.cutString(value, 8) + '
      '; + + }, + }, + {field: 'parkName', title: '车场名称', width: '20%', align: "left"}, + { + field: 'parkInTime', + title: '进场时间', + width: '20%', + align: "left", + formatter: commonObj.timeFormatter + }, + { + field: 'parkOutTime', + title: '出场时间', + width: '20%', + align: "left", + formatter: commonObj.timeFormatter + }, + { + field: 'orderTotalFees', + title: '应收', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'orderActFees', + title: '实收', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + + { + field: '', + title: '操作', + width: '10%', + align: 'left', + formatter: fun.operFormater + } + ] + }); + + }, + /*获取查询参数*/ + getQueryParam: function () { + var parks = fn.getParkLot(); + var plNos = [-1]; + $.each(parks, function (index, item) { + plNos.push(item.code); + }); + /*进场开始时间*/ + var beginInTime = null; + /*进场结束*/ + var endInTime = null; + /*解析时间*/ + var times1 = $('#parkmanage-daterange-btnsta').val(); + var times2 = $('#parkmanage-daterange-btnend').val(); + if (null != times1 && times1.trim().length > 0) { + beginInTime = times1; + } + if (null != times2 && times2.trim().length > 0) { + endInTime = times2; + } + /*车牌号*/ + var carNum = $('#carNumber').val(); + carNum = carNum == null || carNum.length == 0 ? null : carNum.trim(); + var parkStatus = null; + var data_parkState = $('#parkmanage-toptab div.ITD-graynav-topbaractive').data('parkstate'); + if (data_parkState == 'all') { + parkStatus = null; + } + if (data_parkState == 'in') { + parkStatus = JSON.parse('[10]'); + } + if (data_parkState == 'out') { + parkStatus = JSON.parse('[20]'); + } + + var req = { + plNos: plNos, + beginInTime: beginInTime, + endInTime: endInTime, + parkStatus: parkStatus, + carNum: carNum + }; + + return req; + }, + //操作 + operFormater: function (value, row, index) { + var html = '编辑'; + if (row.parkState == 10) {//&& row.plType == 1 && row.berthNo != null封闭停车场和没有泊位号的不能强制离场 + html += '强制离场'; + } + + return html; + }, +} + +fun.init(); +//查询 「」 +documentBindFunc.on('click', "#parkmanage_queryBtn", function () { + fun.createTableData(); +}); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryParkOrderForFinance(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + console.log(res.data); + params.success(res.data); + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + } + } + }; + sysAjax(opt); +} + +//切换 搜索部分 是否生效 +documentBindFunc.on('click', "#parkmanage-toptab div.ITD-graynav-topbar", function () { + + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + //console.log(index); + //切换完后,调用查询表格 + fun.createTableData(); + +}); + +// 编辑 +documentBindFunc.on('click', ".relMsg", function () { + $('.parkingCont').addClass('display-none'); + var orderId = $(this).attr('data-index'); + // 支付明细 + console.log(orderId); + var req = { + orderId: orderId + }; + + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryExpenseRecordByOrderId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + // console.log("支出明细" + JSON.stringify(res.data)); + $('#records_detail').empty(); + + var orderData = res.data.orderParkQueryDTO; + var detailData = res.data.expenseRecordDetailDTOList; + + var totalFee = commonObj.moneyFormatter(orderData.orderTotalFee) + '元'; + var actFee = commonObj.moneyFormatter(orderData.orderActFee) + '元'; + var refundActFee = commonObj.moneyFormatter(orderData.refundActFee) + '元'; + var arrearageFee = commonObj.moneyFormatter(orderData.arrearageFee) + '元'; + var backActFee = commonObj.moneyFormatter(orderData.backActFee) + '元'; + var discountFee = commonObj.moneyFormatter(orderData.orderDicountFee) + '元' + + $('#handle_moneytop').attr('title', totalFee); + $('#handle_moneytop').text(totalFee); + + $('#handle_moneybot').attr('title', actFee); + $('#handle_moneybot').text(actFee); + + $('#handle_rdismoneytop').attr('title', arrearageFee); + $('#handle_rdismoneytop').text(arrearageFee); + + $('#handle_rovermoneybot').attr('title', backActFee); + $('#handle_rovermoneybot').text(backActFee); + + $('#handle_rarrmoneytop').attr('title', discountFee); + $('#handle_rarrmoneytop').text(discountFee); + + $('#handle_rrefmoneybot').attr('title', refundActFee); + $('#handle_rrefmoneybot').text(refundActFee); + + + //遍历 消费明细 + if (null != detailData && detailData.length != 0) { + + //数据长度 + var detailDataNum = detailData.length; + + var html = ''; + $.each(detailData, function (index, item) { + // + var createTime = DateUtils.long2String(item.createTime, 11); + + var payFinishTime = item.payFinishTime == 0 ? '-' : DateUtils.long2String(item.payFinishTime, 11); + //支付方式[字典表:PAY_TYPE]-- -1:未知(创建时还不清楚支付方式)1:支付宝 2:微信 3:银联 + // 4:微信公众号 5:个人账户 6:现金 7:IC卡 + var payType = item.payType; + var payTypeStr; + var payTypeIcon; + switch (payType) { + case null: + payTypeStr = '未支付'; + payTypeIcon = 'msgxj-ico'; + break; + case 1: + payTypeStr = '支付宝'; + payTypeIcon = 'msgalipay-ico'; + break; + case 2: + payTypeStr = '微信'; + payTypeIcon = 'msgwx-ico'; + break; + case 3: + payTypeStr = '银联'; + payTypeIcon = 'msgxj-ico'; + break; + case 4: + payTypeStr = '微信'; + payTypeIcon = 'msgwx-ico'; + break; + case 5: + payTypeStr = '余额'; + payTypeIcon = 'msgyy-ico'; + break; + case 6: + payTypeStr = '现金'; + payTypeIcon = 'msgxj-ico'; + break; + case 7: + payTypeStr = 'IC卡'; + payTypeIcon = 'msgxj-ico'; + break; + default: + payTypeStr = '未知'; + payTypeIcon = 'msgxj-ico'; + } + + var actFee = commonObj.moneyFormatter(item.actFee); + + var terminal = item.terminalSource; + var terminalStr; + //终端来源[字典表:TERMINAL_SOURCE]:1:任你听 2:pda 3:微信公共号 4:云平台,5:道闸', + switch (terminal) { + case null: + terminalStr = '-'; + break; + case 1: + terminalStr = 'APP'; + break; + case 2: + terminalStr = 'PDA'; + break; + case 3: + terminalStr = '微信公众号'; + break; + case 4: + terminalStr = '云平台'; + break; + case 5: + terminalStr = '道闸'; + break; + case 6: + terminalStr = '企业APP'; + break; + case 7: + terminalStr = 'H5支付'; + break; + default: + terminalStr = '未知'; + } + + var status = item.status == null ? '-' : item.status; + var statusStr; + var statusIcon; + //订单状态[字典表:ORDER_STATE]:-50:已取消,10:待核算,20:待支付,30:支付中, + // 40:支付完成,50:已完成,52:欠费逃逸, 53:已补缴 60:退款中 70:退款成功 + switch (status) { + case -50: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 10: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 20: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 30: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 40: + statusStr = '成功'; + statusIcon = 'detail_trueIco'; + break; + case 50: + statusStr = '成功'; + statusIcon = 'detail_trueIco'; + break; + case 52: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 53: + statusStr = '成功'; + statusIcon = 'detail_trueIco'; + break; + case 60: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 70: + statusStr = '成功'; + statusIcon = 'detail_trueIco'; + break; + case 80: + statusStr = '正在退款'; + statusIcon = 'detail_falseIco'; + break; + default: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + } + + + var type = item.type == null ? '-' : item.type; + var typeStr; + var buttonStr; + var buttonClass; + //支付单类型[字典表:PAY_ORDER_TYPE]:-100:停车欠费单,-200:停车退费单,101:停车付款单,102:停车预付单,103:停车补缴单,104:共享车位;201:余额充值单,202:押金充值;301:会员卡购买单,302:会员卡续费 + switch (type) { + case 101: + typeStr = '停车付款'; + buttonStr = '退款'; + buttonClass = 'detail_drawBtn'; + break; + case 102: + typeStr = '停车预付'; + buttonStr = '退款'; + buttonClass = 'detail_drawBtn'; + break; + case 103: + typeStr = '停车补缴'; + buttonStr = '-----'; + buttonClass = ''; + break; + case -100: + typeStr = '停车欠费'; + buttonStr = '修改'; + buttonClass = 'detail_reviseBtn'; + statusStr = '未支付'; + break; + case -200: + typeStr = '停车退费'; + buttonStr = '-----'; + buttonClass = ''; + break; + default: + typeStr = '未知'; + } + if (status == 53) {//已补缴 + typeStr = '欠费已补缴'; + buttonStr = '-----'; + buttonClass = ''; + statusStr = '已补缴'; + } + if (status == -50 || status == 10 || status == 20 || + status == 30 || status == 60 || status == 70) {//失败的或者已经退款的 + buttonStr = '-----'; + buttonClass = ''; + } + var operId = item.operId == null ? '-' : item.operId; + + var operName = item.operName == null ? '-' : item.operName; + +// var lineHtml = ''; +// +// if (detailDataNum != 1) { +// +// if (index == 0) { +// //第一个,只有下线 +// lineHtml = +// '
      '; +// } else if (index == (detailDataNum - 1)) { +// //最后一个,只有上线 +// lineHtml = +// '
      '; +// } else { +// //中间的 上线、下线都有 +// lineHtml = +// '
      ' + +// '
      '; +// } +// } + + html += '
      ' + + '
      ' + + '
      ' + createTime + '
      ' + + '
      ' + + '
      ' + + '
      ' + + '
      ' + + '
      ' + payTypeStr + ':' + actFee + '元
      ' + + '
      ' + + '
      ' + typeStr + '
      ' + + '
      ' + + '
      ' + + '
      ' + + '
      状态:' + statusStr + '
      ' + + '
      渠道:' + terminalStr + '
      ' + + '
      操作人:' + operName + '
      ' + + '
      ' + + '
      ' + + '
      ' + + '
      ' + buttonStr + '
      ' + + '
      ' + + '
      ' + + '
      '; + + + }); + $('#records_detail').append(html); + } else { + var nullhtml = '
      暂无支出明细信息
      '; + $('#records_detail').append(nullhtml); + } + + + //显示 + $('.records_handle').removeClass('display-none'); + } else { + $('#records_alertmodel').modal('show'); + $('.ITD-alertmodel-contentmsg').text('查询订单支出明细失败'); + // 支付明细 + $('.records_handle').addClass('display-none'); + $('.parkingCont').removeClass('display-none'); + fun.createTableData(); + } + } + }; + sysAjax(opt); + + +}); + +//强制离场 弹窗 +documentBindFunc.on('click', '.outMsg', function () { + $('#force_error').addClass('display-none').text(''); + var plType = $(this).attr('data-plType'); + console.log(plType); + $('#park_arrearage_div').hide(); + if (plType == 2) {//封闭停车场不计费 + $('#park_out0').attr('disabled', false);//性别初始化 + $("#outMsg").html("确认强制离场?"); + } else { + $('#park_out0').attr('disabled', false);//性别初始化 + $("#outMsg").html("确认强制离场?"); + } + $('#park_out1').parent().addClass('checked');//性别初始化 + $('#park_out1')[0].checked = true;//性别初始化 + $('#park_out0').parent().removeClass('checked');//性别初始化 + $('#parking_forcemodel').data('pltype', plType); + $('#parking_forcemodel').modal('show'); + var orderId = $(this).attr('data-index'); + + $('#parking_forcemodel').val(orderId); +}); + + +documentBindFunc.on('change', "input:radio[name='park_out']", function () { + var isBilling = $(this).val(); + var pltype = $('#parking_forcemodel').data('pltype'); + $('#park_arrearage').val(0); + if (isBilling == 1 && pltype == 2) { + $('#park_arrearage_div').show(); + + } else { + $('#park_arrearage_div').hide(); + } +}); + +//强制离场 确定 +documentBindFunc.on('click', '#parking_forcesubmit', function () { + //ajax success + var outParkType = $("input[name='park_out']:checked").val(); + var orderId = $('#parking_forcemodel').val(); + var arrearageFee = $('#park_arrearage').val(); + var pltype = $('#parking_forcemodel').data('pltype'); + + //欠费金额默认为0 + arrearageFee = arrearageFee <0?0:arrearageFee; + arrearageFee = arrearageFee*100; + if(outParkType == 1 && pltype == 2 ){ + //如果是计费出场,且为封闭车场的话,修改为3 + outParkType =3; + if(arrearageFee==''||arrearageFee==undefined||arrearageFee==null){ + $('#force_error').removeClass('display-none').text('欠费金额不能为空'); + return false; + } + + } + + + var req = { + orderId: orderId, + outParkType: outParkType, + arrearageFee:arrearageFee + }; + console.log(req); + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.outParkForOrderPark(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + $('#parking_forcemodel').modal('hide'); + + $('.ITD-alertmodel-contentmsg').text('强制出场成功!'); + $('#records_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#records_alertmodel').modal('hide') + }, 2000); + $("#recordtable").bootstrapTable('refresh'); + } else { + $('#parking_forcemodel').modal('hide'); + + $('.ITD-alertmodel-contentmsg').text(res.msg); + $('#records_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#records_alertmodel').modal('hide') + }, 2000); + $("#recordtable").bootstrapTable('refresh'); + } + } + } + sysAjax(opt); + +}); + +// return 返回 +documentBindFunc.on('click', ".returnLastbtn", function () { + // 支付明细 + $('.records_handle').addClass('display-none'); + $('.parkingCont').removeClass('display-none'); + +}); +//欠费 修改 +documentBindFunc.on('click', ".detail_reviseBtn", function () { + // parking_regmodel + $('#parking_regmodel').val(''); + var orderId = $(this).attr('data-orderId'); + var data = $(this).attr('data-row'); + data = JSON.parse(data); + data.orderId = orderId; + console.log(data); + $('#parking_regmodel').val(data); + $('#tolltorsum').text(commonObj.moneyFormatter(data.actFee)); + + $('#recharge_error').addClass('display-none').text(''); + $('#tolltor_amount').val(''); + $('#parking_regmodel').modal('show'); +}); + +//提交 欠费 修改 +documentBindFunc.on('click', "#recharge_submit", function () { + var chargerFee = $('#tolltor_amount').val(); + if (chargerFee == '' || chargerFee == undefined || chargerFee == null || isNaN(chargerFee)) { + $('#recharge_error').removeClass('display-none').text('请输入欠费金额'); + return; + } + /*if(parseFloat(chargerFee)<=0){ + $('#recharge_error').removeClass('display-none').text('修改后金额不能小于0'); + return; + }*/ + $('#recharge_error').addClass('display-none').text(''); + var row = $('#parking_regmodel').val(); + var req = { + orderId: row.rltOrderId, + arrearageFee: chargerFee * 100 + }; + + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.updateArrearageRecordByOrderId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + $('#parking_regmodel').modal('hide'); + $('.ITD-alertmodel-contentmsg').text('修改成功!'); + $('#records_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#records_alertmodel').modal('hide') + }, 2000); + + $(".returnLastbtn").click(); + fun.createTableData(); + } else { + $('#recharge_error').removeClass('display-none').text(res.msg); + } + } + } + sysAjax(opt); +}); +//退款 弹窗 +documentBindFunc.on('click', ".detail_drawBtn", function () { + // parking_regmodel + $('#parking_reimmodel').val(''); + $('#rechargereim_submit').removeAttr('disabled'); + var orderId = $(this).attr('data-orderId'); + var data = $(this).attr('data-row'); + data = JSON.parse(data); + data.orderId = orderId; + console.log(data); + $('#parking_reimmodel').val(data); + $('#reim_error').addClass('display-none').text(''); + $("#tolltorsumreim").text(commonObj.moneyFormatter(data.actFee)); + $('#tolltor_amountreim').val(''); + //查询已经退款的金额 + var req = { + payOrderid: data.rltOrderId, + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryRefundFeeByPayOrderId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + $("#al_tolltorsum").text(commonObj.moneyFormatter(res.data.allRefundFee)); + $('#parking_reimmodel').modal('show'); + } else { + $('#reim_error').removeClass('display-none').text(res.msg); + } + } + } + sysAjax(opt); + +}); + +//提交 退款 +documentBindFunc.on('click', "#rechargereim_submit", function () { + $('#rechargereim_submit').attr('disabled', 'disabled'); + var sumreim = parseFloat($.trim($("#tolltorsumreim").text())); + var al_tolltorsum = parseFloat($.trim($("#al_tolltorsum").text())); + var chargerFee = parseFloat($.trim($('#tolltor_amountreim').val())); + if (chargerFee == '' || chargerFee == undefined || chargerFee == null || isNaN(chargerFee)) { + $('#reim_error').removeClass('display-none').text('请输入大于0的退款金额'); + return; + } + if (chargerFee < 0) { + $('#reim_error').removeClass('display-none').text('退款金额需大于0'); + return; + } + if (chargerFee > (sumreim - al_tolltorsum)) { + $('#reim_error').removeClass('display-none').text('退款金额不能大于支付金额减已退金额'); + return; + } + + $('#reim_error').addClass('display-none').text(''); + var row = $('#parking_reimmodel').val(); + var req = { + payOrderType: row.type, + rltOrderId: row.orderId, + rltPayOrderId: row.rltOrderId, + refundTotalFee: chargerFee * 100, + orderActFee: row.actFee, + orderTotalFee: row.actFee, + terminalSource: 4, + payType: row.payType, + payFinishTime: row.payFinishTime, + appId: 'no_app_id', + saveOrUpdateFlg: 1 + }; + + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.saveUpdateOrderRefund(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + $('#parking_reimmodel').modal('hide'); + $('.ITD-alertmodel-contentmsg').text('退款申请已提交!'); + $('#records_alertmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#records_alertmodel').modal('hide'); + }, 2000); + $(".returnLastbtn").click(); + fun.createTableData(); + } else { + $('#reim_error').removeClass('display-none').text(res.msg); + } + } + } + sysAjax(opt); +}); + + +//用户只能输入正数与小数 +function checkInputText(obj) { + +//先把非数字的都替换掉,除了数字和. + obj.value = obj.value.replace(/[^\d.]/g, ""); + +//保证只有出现一个.而没有多个. + + obj.value = obj.value.replace(/\.{2,}/g, "."); + +//必须保证第一个为数字而不是. + + obj.value = obj.value.replace(/^\./g, ""); + +//保证.只出现一次,而不能出现两次以上 + + obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); + +//只能输入两个小数 + + obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); + + +} + diff --git a/assets/pages/scripts/orderManagement/peccancymanage.js b/assets/pages/scripts/orderManagement/peccancymanage.js new file mode 100644 index 0000000..061907a --- /dev/null +++ b/assets/pages/scripts/orderManagement/peccancymanage.js @@ -0,0 +1,278 @@ + +var fun ={ + init:function(){ + + //默认收费组表格 初始化加载 + fun.createTableData(); + //查询 + documentBindFunc.on('click','#peccancymanage-queryBtn',function(){ + fun.createTableData(); + }); + //删除弹窗显示 + documentBindFunc.on('click','.delMsg',function (element) { + $('#cashiergroupdelete_rule').addClass('display-none').text(""); + var id = $(this).attr('data-index'); + $("#peccancymanageupdateId-del").val(id); + $('#peccancymanage_deletemodel').modal('show') + }); + //确定删除操作 + documentBindFunc.on('click','#peccancymanage-deletesubmit',function (element) { + var id = $("#peccancymanageupdateId-del").val(); + var ids = []; + ids.push(id); + var req = { + ids:ids, + sysCode:sysComm.sysCode + }; + $('#peccancymanage-deletesubmit').attr('disabled',true); + var opt = { + method: 'post', + url: dataUrl.util.DeleteIllegalCarInfos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#peccancymanage-deletesubmit').attr('disabled',false); + if (res.code == '8888') { + $('#peccancymanage_deletemodel').modal('hide'); + //刷新table + $('#peccancymanage-table').bootstrapTable('refresh', { + silent: true + }); + }else{ + $('#cashiergroupdelete_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + //新增弹窗 操作 + documentBindFunc.on('click','#peccancymanage-addBtn',function (element) { + //违法类型初始化 + $('#peccancymanageadd_wfType').val(''); + //车辆颜色初始化 + $('#peccancymanageadd_carCol').val(''); + //车辆品牌 + $('#peccancymanageadd_carBrand').val(''); + //车牌号 + $('#peccancymanageadd_carNum').val(''); + //车牌类型 + $('#peccancymanageadd_cartypeCode').val(''); + //备注 + $('#peccancymanageadd_remark').val(''); + //所有人 + $('#peccancymanage-Per').val(''); + $('#peccancymanageadd_rule').addClass('display-none').text('车牌号必填'); + $('#peccancymanageaddwrite-submit').attr('disabled',false); + $('#peccancymanage_addmodel').modal('show'); + + }); + //确定新增操作 + documentBindFunc.on('click','#peccancymanageaddwrite-submit',function (element) { + var carNum = $('#peccancymanageadd_carNum').val(); + if(carNum==''|| carNum==null || carNum== undefined){ + $('#peccancymanageadd_rule').removeClass('display-none').text('车牌号必填'); + return false; + } + $('#peccancymanageaddwrite-submit').attr('disabled',true); + var illegalType = $('#peccancymanageadd_wfType').val().trim(); + var carNumber = $('#peccancymanageadd_carNum').val().trim(); + var carNumberColorName = $('#peccancymanageadd_carCol').val().trim(); + var carTypeName = $('#peccancymanageadd_cartypeCode').val().trim(); + var carBrandName = $('#peccancymanageadd_carBrand').val().trim(); + var remark = $('#peccancymanageadd_remark').val().trim(); + var carOwnType = $('#peccancymanage-Per').val().trim(); + var req = { + illegalType:illegalType, + carNumber:carNumber, + carNumberColorName:carNumberColorName, + carTypeName:carTypeName, + carBrandName:carBrandName, + carOwnType:carOwnType, + remark:remark, + sysCode: sysComm.sysCode + }; + + var opt = { + method: 'post', + url: dataUrl.util.SaveOrUpIllegalCarInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#peccancymanageaddwrite-submit').attr('disabled',false); + if (res.code == '8888') { + $('#peccancymanage_addmodel').modal('hide'); + //刷新table + $('#peccancymanage-table').bootstrapTable('refresh', { + silent: true + }); + }else{ + $('#peccancymanageadd_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + + //修改弹窗 操作 + documentBindFunc.on('click','.relMsg',function (element) { + $('#peccancymanage_ruleedit').addClass('display-none').text(""); + var id = $(this).attr('data-index'); + $("#updateId").val(id); + var modifyRow = $('#peccancymanage-table').bootstrapTable('getRowByUniqueId', id); + //违法类型初始化 + $('#peccancymanageedit_wfType').val(modifyRow.illegalType == null ? "" : modifyRow.illegalType); + //车辆颜色初始化 + $('#peccancymanageedit_carCol').val(modifyRow.carNumberColorName == null ? "" : modifyRow.carNumberColorName); + //车辆品牌初始化 + $('#peccancymanageedit_carBrand').val(modifyRow.carBrandName == null ? "" : modifyRow.carBrandName); + //车牌号初始化 + $('#peccancymanageedit_carNum').val(modifyRow.carNumber == null ? "" : modifyRow.carNumber); + //车辆类型初始化 + $('#peccancymanageedit_cartypeCode').val(modifyRow.carTypeName == null ? "" : modifyRow.carTypeName); + $('#peccancymanageedit_remark').val(modifyRow.remark == null ? "" : modifyRow.remark); + //所有人初始化 + $('#peccancymanageedit-Per').val(modifyRow.carOwnType == null ? "" : modifyRow.carOwnType); + $('#peccancymanage_changemodel').modal('show'); + + }); + //确定修改 操作 + documentBindFunc.on('click','#peccancymanageedit-submit',function (element) { + var carNum = $('#peccancymanageedit_carNum').val(); + if(carNum==''|| carNum==null || carNum== undefined){ + $('#peccancymanageedit_rule').removeClass('display-none').text('车牌号必填'); + return false; + } + + var id = $("#updateId").val(); + var illegalType = $('#peccancymanageedit_wfType').val().trim(); + var carNumber = $('#peccancymanageedit_carNum').val().trim(); + var carNumberColorName = $('#peccancymanageedit_carCol').val().trim(); + var carTypeName = $('#peccancymanageedit_cartypeCode').val().trim(); + var carBrandName = $('#peccancymanageedit_carBrand').val().trim(); + var remark = $('#peccancymanageedit_remark').val().trim(); + var carOwnType = $('#peccancymanageedit-Per').val().trim(); + var req = { + id:id, + illegalType:illegalType, + carNumber:carNumber, + carNumberColorName:carNumberColorName, + carTypeName:carTypeName, + carBrandName:carBrandName, + carOwnType:carOwnType, + remark:remark, + sysCode: sysComm.sysCode + }; + var opt = { + method: 'post', + url: dataUrl.util.SaveOrUpIllegalCarInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#peccancymanagewrite-submitedit').attr('disabled',false); + if (res.code == '8888') { + $('#peccancymanage_changemodel').modal('hide'); + //刷新table + $('#peccancymanage-table').bootstrapTable('refresh', { + silent: true + }); + }else{ + $('#peccancymanageedit_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + + }, + //生成表格数据 + createTableData: function () { + $('#peccancymanage-table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '上一页', + paginationNextText: '下一页', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'id', title: '', width: '10%', align: 'left',visible:false}, + {field: 'illegalType', title: '违法类型', width: '10%', align: 'left',formatter:commonObj.replacenull}, + {field: 'carNumber', title: '车牌号', width: '10%', align: 'left',formatter:commonObj.replacenull}, + {field: 'carNumberColorName', title: '车辆颜色', width: '10%', align: 'left',formatter:commonObj.replacenull}, + {field: 'carTypeName', title: '车辆类型', width: '10%', align: 'left',formatter:commonObj.replacenull}, + {field: 'carBrandName', title: '车辆品牌', width: '10%', align: 'left',formatter:commonObj.replacenull}, + {field: 'carOwnType', title: '所有人', width: '10%', align: 'left',formatter:commonObj.replacenull}, + {field: 'remark', title: '备注', width: '10%', align: 'left',formatter:commonObj.replacenull}, + { + field: '', + title: '操作', + width: '10%', + align: 'left', + formatter: fun.opFormater + } + ] + + }); + + }, + /*获取查询参数*/ + getQueryParam: function () { +// var parkAreaCode = JSON.parse($("#parkAreaCode").val()); + var carNumber = $('#carCodeid').val(); + var req = { + carNumber: carNumber, + sysCode: sysComm.sysCode + }; + return req; + }, + //操作 + opFormater: function (value, row, index) { + var operStr = '修改' + + '删除'; + return operStr; + }, + +}; + +//初始化 函数 +fun.init(); + +/** + * 默认收费组列表 + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryPageIllegalCarInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/appactive/appactivity.css b/assets/pages/scripts/otherSetting/appactive/appactivity.css new file mode 100644 index 0000000..81a7b1b --- /dev/null +++ b/assets/pages/scripts/otherSetting/appactive/appactivity.css @@ -0,0 +1,6 @@ +.appact-daterange-bg { + width: 180px; + text-align: left; + background: url(../img/dataicon.png) no-repeat 150px 9px; + background-color: #fff; +} \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/appactive/appactivity.html b/assets/pages/scripts/otherSetting/appactive/appactivity.html new file mode 100644 index 0000000..4f8eac6 --- /dev/null +++ b/assets/pages/scripts/otherSetting/appactive/appactivity.html @@ -0,0 +1,295 @@ +
      +
      +
      +
      + +
      + +
      + +
      + +
      + +
      + +
      + +
      + +
      +
      +
      +
      查询
      +
      +
      +
      +
      +
      +
      + + +
      +
      +
      +
        +
      • 详细列表
      • +
      • + +
      • +
      +
      +
      +
      +
      + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/appactive/appactivity.js b/assets/pages/scripts/otherSetting/appactive/appactivity.js new file mode 100644 index 0000000..e1e0fa0 --- /dev/null +++ b/assets/pages/scripts/otherSetting/appactive/appactivity.js @@ -0,0 +1,273 @@ +var fun={ + init:function(){ + fun.initSelect(); + fun.createTableData(); + + }, + //查询条件下拉框初始化 + initSelect:function() { + //1.所有活动类型 + $('#card_type').selectpicker('refresh'); + //2.细分类型 + $('#card_state').selectpicker('refresh'); + $('#acti_status').selectpicker('refresh'); + + //3.所有活动状态 + /* var html =""; + html +=""; + html +=""; + html +=""; + $("#acti_type").empty(); + $("#acti_type").append(html);*/ + $("#acti_type").selectpicker('refresh'); + + }, + //时间初始化 + popdateInit: function () { + $('#timeinStartDate').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#timeinEndDatetimeinEndDate').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#timeinStartDate").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + $("#timeinEndDate").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //2ini表格 + createTableData: function() { + $('#actiTable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + showColumns: false, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'cardName', + title: '图片地址', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + + }, + { + field: 'cardType', + title: '跳转地址', + width: '5%', + align: 'left', + formatter: function(value, row, index){ + if('1'==value){ + return '优惠券'; + }else if(4==value){ + return '代金券'; + }else{ + return '其他' + } + } + }, + { + field: 'receiveChannels', + title: '活动类型', + width: '5%', + align: 'left', + formatter: function(value, row, index){ + if('1'==value){ + return 'APP'; + }else if(2 == value){ + return '积分商城兑换'; + }else if(3==value){ + return '赠送'; + }else{ + return '其他' + } + } + }, + { + field: 'cardNum', + title: '细分类型', + width: '8%', + align: 'left', + formatter: function(value, row, index){ + if(value === '' || value === null || value=== undefined ){ + return '未知'; + }else{ + return value == -1 ? '不限':value; + } + } + }, + { + field: 'cardRestNum', + title: '活动状态', + width: '10%', + align: 'left', + formatter: function(value, row, index){ + + console.log(typeof value) + if(value === '' || value === null || value=== undefined ){ + return '未知'; + }else{ + + return value == -1 ? '不限':value; + } + } + }, + { + field: 'createDate', + title: '生效时间', + width: '10%', + align: 'left', + formatter:commonObj.timeOneFormatter + }, + { + field: 'createDate', + title: '失效时间', + width: '10%', + align: 'left', + formatter:commonObj.timeOneFormatter + }, + { + field: 'dataState', + title: '状态', + width: '8%', + align: 'left', + formatter: function(value, row, index){ + // + if(new Date(row.endTime).getTime() >= new Date().getTime() && value ==1 && new Date(row.beginTime).getTime() <= new Date().getTime()){ + return '生效'; + }else if(new Date(row.beginTime).getTime() >= new Date().getTime() && value ==1){ + return '未生效'; + }else{ + return '失效'; + } + } + }, + + { + field: 'oper', + title: '操作', + width: '15%', + align: 'left', + formatter: function(value, row, index) { + var html = ''; + html += "上架" + html += "修改 " + html += "删除 " + return html; + + } + }, + ] + }); + + }, + /*获取查询参数*/ + getQueryParam: function() { + //活动类型 + var jumpTypes = $("#jump_types").val(); + + //细分类型 + var activityTypes = $('#activity_types').val(); + //状态 + var actiType = $("#acti_type").val(); + //状态 + var actiStatus = $("#acti_status").val(); + + if(jumpTypes == null || jumpTypes == "ALL" || jumpTypes == ''){ + jumpTypes = null; + } + if(activityTypes == null || activityTypes == "ALL" || activityTypes == ''){ + activityTypes = null; + } + if(actiType == null || actiType == "ALL" || actiType == ''){ + actiType = null; + } + if(actiStatus == null || actiStatus == "ALL" || actiStatus == ''){ + actiStatus = null; + } + var req = { + jumpTypes:JSON.parse(jumpTypes), + activityTypes: JSON.parse(activityTypes), + actiType: actiType, + actiStatus: actiStatus + }; + console.log(req); + return req; + }, +}; + +// 初始化 +fun.init(); + +//查询 事件 +documentBindFunc.on('click','#act_queryBtn',function(){ + fun.createTableData(); +}); + +//add 事件 +documentBindFunc.on('click','#appact_addBtn',function(){ + //1.所有活动类型 + $('#card_typeadd').selectpicker('refresh'); + //2.细分类型 + $('#card_stateadd').selectpicker('refresh'); + fun.popdateInit(); + $('#appact_addmodel').modal('show'); +}); + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryTdCActivityForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/apprel/apprelease.css b/assets/pages/scripts/otherSetting/apprel/apprelease.css new file mode 100644 index 0000000..ffa9cc0 --- /dev/null +++ b/assets/pages/scripts/otherSetting/apprel/apprelease.css @@ -0,0 +1,76 @@ +/*单选复选美化*/ +input[type=checkbox], +input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +input[type=checkbox]:hover + label{ + background: url('../img/input-checkexActive.png') no-repeat 0 center; + +} +input[type=checkbox]:checked + label{ + background: url('../img/input-checkbox.png') no-repeat 0 center; + +} + +input[type=checkbox]:checked:hover + label{ + background: url('../img/input-checkbox.png') no-repeat 0 center; + +} + +input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +input[type=radio]:hover + label{ + background: url('../img/input-radio.png') no-repeat 0 center; +} +input[type=radio]:checked + label{ + background : url('../img/input-radio-active.png') no-repeat 0 center; + +} +input[type=radio]:checked:hover + label{ + background: url('../img/input-radio-active.png') no-repeat 0 center; + +} + +/*新增 弹窗*/ +.workorder-comMsg { + width: 180px; + height: 80px; + line-height: 16px; + padding-left: 5px; + /* margin-left: 5px; */ +} +.apprel-marl100{ + margin-left: 100px; +} +.appqrcode{ + width:100px; + height:100px; + margin-top:15px; + margin-left: 139px; + margin-bottom: 24px; +} +.appl_Msg{ + max-width: 200px; +} \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/apprel/apprelease.html b/assets/pages/scripts/otherSetting/apprel/apprelease.html new file mode 100644 index 0000000..0017130 --- /dev/null +++ b/assets/pages/scripts/otherSetting/apprel/apprelease.html @@ -0,0 +1,312 @@ + + +
      +
      +
      +
      +
      + +
      + +
      + 发布时间 +
      + +
      + - +
      + +
      +
      +
      +
      +
      查询
      +
      +
      +
      +
      +
      +
      全部
      +
      IOS
      +
      Android
      + +
      +
      + +
      +
      +
      + + +
      +
      +
      +
      + 详细记录 +
      +
      + +
      +
      +
      +
      +
      +
      + +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/apprel/apprelease.js b/assets/pages/scripts/otherSetting/apprel/apprelease.js new file mode 100644 index 0000000..9ac4afd --- /dev/null +++ b/assets/pages/scripts/otherSetting/apprel/apprelease.js @@ -0,0 +1,699 @@ +var appFun = { + init: function () { + + $('#appsNames').selectpicker('refresh');//app名称初始化 + appFun.initPark();// 需删除 + appFun.dateInit();//发布时间初始化 + appFun.createTableData();//默认加载表格 + }, + //初始化停车场下拉框 需删除 + initPark: function () { + var data = fn.getParkLot(); + $("#parkIds").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + + + }, + dateInit: function () { + //开始日期 + $("#apprel-daydaterange-btnsta").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + //结束日期 + $("#apprel-daydaterange-btnend").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //获取formData 对象 + handelFormData: function (req) { + + + //app类型 0-rnt-安卓 , 1-rnt ios , 2-PDA-安卓, 3-企业APP-安卓 ,4-企业APP-IOS,5-巡检-安卓, 6-pda-ios,7-巡检-ios + if (req.appName == 'rnt' && req.appType == 'android') { + req.appType = 0; + } + + if (req.appName == 'rnt' && req.appType == 'ios') { + req.appType = 1; + } + + if (req.appName == 'pda' && req.appType == 'android') { + req.appType = 2; + } + if (req.appName == 'pda' && req.appType == 'ios') { + req.appType = 6; + } + + if (req.appName == 'qyApp' && req.appType == 'android') { + req.appType = 3; + } + if (req.appName == 'qyApp' && req.appType == 'ios') { + req.appType = 4; + } + + if (req.appName == 'patrol' && req.appType == 'android') { + req.appType = 5; + } + if (req.appName == 'patrol' && req.appType == 'ios') { + req.appType = 7; + } + + + if (req.appName == 'rnt') { + req.appName = '任你停'; + } + + if (req.appName == 'pda') { + req.appName = 'PDA'; + } + + if (req.appName == 'qyApp') { + req.appName = '企业云APP'; + } + + if (req.appName == 'patrol') { + req.appName = '巡查APP'; + } + //10-通过url; 20-通过上传文件发布 + if (req.deployType == 20) { + delete req.url; + } + + var formData = new FormData; + for (var item in req) { + formData.append(item, req[item]); + } + return formData; + }, + + /*获取查询参数*/ + getQueryParam: function () { + var startTime = $('#apprel-daydaterange-btnsta').val(); + if (null != startTime && startTime.length > 0) { + startTime = new Date((startTime + ' 00:00:00'.replace(/-/g, "/"))); + } else { + startTime = null; + } + + var endTime = $('#apprel-daydaterange-btnend').val(); + + if (null != endTime && endTime.length > 0) { + endTime = new Date((endTime + ' 00:00:00'.replace(/-/g, "/"))); + } else { + endTime = null; + } + var appName = $('#appsNames').val(); + var val = $('#apprel-toptab').find('div.ITD-graynav-topbaractive').data('value') + ''; + var appTypes = []; + //app类型 0-rnt-安卓 , 1-rnt ios , 2-PDA-安卓, 3-企业APP-安卓 ,4-企业APP-IOS,5-巡检-安卓, 6-pda-ios,7-巡检-ios + if (appName == 'rnt') { + if (val == '1') { + appTypes = [0, 1]; + + } + if (val == '2') { + + appTypes.push(1); + } + if (val == '3') { + appTypes.push(0); + } + + } + + if (appName == 'pda') { + if (val == '1') { + appTypes=[2,6]; + + } + if (val == '2') { + + appTypes.push(6); + } + if (val == '3') { + appTypes.push(2); + } + + } + + if (appName == 'qyApp') { + if (val == '1') { + appTypes = [3, 4]; + + } + if (val == '2') { + + appTypes.push(4); + } + if (val == '3') { + appTypes.push(3); + } + + } + + if (appName == 'patrol') { + if (val == '1') { + appTypes=[5,7]; + + } + if (val == '2') { + + appTypes.push(7); + } + if (val == '3') { + appTypes.push(5); + } + + } + + var req = { + appTypes: appTypes, + createDateStart: startTime, + createDateEnd: endTime, + sysCode: sysComm.sysCode + } + return req; + }, + //默认加载表格 + createTableData: function () { + $('#apprelTable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 1, + // rightFixedColumns: true, + // rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'id', + title: 'id', + width: '10%', + align: 'left', + visible: false, + }, + { + field: 'appName', + title: '名称', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'appType', + title: '类型', + width: '10%', + align: 'left', + visible: true, + formatter: function (value, row, index) { + //app类型 0-rnt-安卓 , 1-rnt ios , 2-PDA-安卓, 3-企业APP-安卓 ,4-企业APP-IOS,5-巡检-安卓, 6-pda-ios,7-巡检-ios + if ([0, 2, 3, 5].indexOf(value) > -1) { + return '安卓'; + } + + if ([1, 4,6,7].indexOf(value) > -1) { + return 'IOS'; + } + + return '-'; + + } + }, + { + field: 'remark', + title: '发布内容', + width: '20%', + align: 'left', + formatter: function (value, row, index) { + if(value===null||value===undefined||value===''){ + value = '-'; + } + var html = ''; + html += "
      " + value + "
      " + return html; + } + + }, + { + field: 'version', + title: '版本', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + // formatter:moneyFormatter + }, + { + field: 'createDate', + title: '发布时间', + width: '20%', + align: 'left', + visible: true, + formatter:commonObj.timeFormatter + }, + { + field: 'downType', + title: '更新类型', + width: '10%', + align: 'left', + formatter: function (value, row, index) { + //下载类型:0非强制下载,1强制下载 + if (value == 0) { + return '非强制下载'; + } else if (value == 1) { + return '强制下载'; + } else { + return '-'; + } + + } + }, + { + field: 'oper', + title: '操作', + width: '20%', + align: "left", + formatter: function (value, row, index) { + var html = ''; + html += "下载" + html += "修改 " + return html; + } + }, + ] + }); + + }, +}; +appFun.init(); + +// 新增弹窗 +documentBindFunc.on('click', '#apprel_addBtn', function () { + + $('#apptype_url').removeClass('display-none'); + $('#apptype_file').addClass('display-none'); + + //0.隐藏错误div + $("#apprel_adderror").addClass('display-none').text(''); + $("#apprel-nameadd").selectpicker("render");//app名称初始化 + $('#apprel_type0').parent().addClass('checked');//app类型初始化 + $('#apprel_type0')[0].checked = true; + $('#apprel_type1').parent().removeClass('checked'); + $('#apprel_ture').parent().addClass('checked');//强制下载初始化 + $('#apprel_ture')[0].checked = true; + $('#apprel_fail').parent().removeClass('checked'); + $("#appLock_add").val("");//版本初始化 + $('#apprel_join0').parent().addClass('checked');//发布类型 + $('#apprel_join0')[0].checked = true; + $('#apprel_join1').parent().removeClass('checked'); + $("#appLock_url").val("");//url 初始化 + $('.fileinput-filename').text('');//上传文件 清空 初始化 + $('#file_btn').val(''); + $("#apprel_addcomMsg").val("");//发布内容 初始化 + $('#apprel_addmodel').modal('show'); +}); + +// 新增弹窗 确定事件 +documentBindFunc.on('click', '#appreladd_submit', function () { + var appName = $('#apprel-nameadd').val(); + var appType = $("input[name='appreltype_add']:checked").val(); + var downType = $("input[name='apprel-poi-add']:checked").val(); + //发布类型 10-通过url; 20-通过上传文件发布 + var deployType = $("input[name='apprel-join']:checked").val(); + var file = $('#file_btn')[0].files[0]; + var version = $.trim($("#appLock_add").val()); + var url = $.trim($("#appLock_url").val()); + var remark = $.trim($("#apprel_addcomMsg").val()); + if (version == '' || version == undefined || version == null) { + $('#apprel_adderror').removeClass('display-none').text('请输入版本'); + return; + } + if (deployType == 10 && ( url == '' || url == undefined || url == null)) { + $('#apprel_adderror').removeClass('display-none').text('请输入url地址'); + return; + } + if (deployType == 20 && (undefined == file || file.length < 1 || file.size < 1 )) { + $('#apprel_adderror').removeClass('display-none').text('请上传文件'); + return; + } + + if (remark == '' || remark == undefined || remark == null) { + $('#apprel_adderror').removeClass('display-none').text('请输入发布内容'); + return; + } + + + var req = { + sysCode: sysComm.sysCode, + appName: appName, + appType: appType, + version: version, + appUrl: url, + downType: downType, + version: version, + remark: remark, + deployType: deployType, + + } + var formData = appFun.handelFormData(req); + /** + * 发布类型 10-通过url; 20-通过上传文件发布 + */ + if (deployType == 20) { + formData.append('appFile', file); + } + + var opt = { + method: 'post', + url: dataUrl.util.saveAppVersion(), + data: formData, + processData: false, // 告诉jQuery不要去处理发送的数据 上传文件时,必须这么设置 + contentType: false, // 告诉jQuery不要去设置Content-Type请求头 上传文件时,必须这么设置 + success: function (res) { + console.log("新增app版本发布信息") + console.log(res); + if (res.code == '8888') { + $('#apprel_addmodel').modal('hide'); + appFun.createTableData(); + } else { + alert('新增失败!'); + } + + + } + }; + sysAjax(opt); + + +}); + + +// 修改弹窗 +documentBindFunc.on('click', '.apprel_renew', function () { + + $("#apprel_editerror").addClass('display-none').text(''); + $("#apprel-nameedit").selectpicker("render");//app名称初始化 + $('#apprel_type0edit').parent().addClass('checked');//app类型初始化 + $('#apprel_type0edit')[0].checked = true; + $('#apprel_type1edit').parent().removeClass('checked'); + $('#apprel_tureedit').parent().addClass('checked');//强制下载初始化 + $('#apprel_tureedit')[0].checked = true; + $('#apprel_failedit').parent().removeClass('checked'); + $("#appLock_edit").val();//版本初始化 + $('#apprel_join0edit').parent().addClass('checked');//发布类型 + $('#apprel_join0edit')[0].checked = true; + $('#apprel_join1edit').parent().removeClass('checked'); + $("#appLock_urledit").val();//url 初始化 + $('.fileinput-filenameedit').text();//上传文件 清空 初始化 + $('#file_btnedit').val(); + $("#apprel_addcomMsgedit").val();//发布内容 初始化 + + $('#apptype_urledit').removeClass('display-none'); + $('#apptype_fileedit').addClass('display-none'); + + var row = $(this).data('row'); + + $('#rowId').val(row.id); + + $("#appLock_edit").val(row.version); + $("#appLock_urledit").val(row.appUrl); + $("#apprel_addcomMsgedit").val(row.remark); + + $("input[name='apprel-poi-edit'][value='"+row.downType+"']").attr("checked",true); + + var tempAppType= row.appType; + + var appName; + var appType; + + if(tempAppType == 0){ + appName = 'rnt'; + appType = 'android'; + } + if(tempAppType == 1){ + appName = 'rnt'; + appType = 'ios'; + } + + if(tempAppType == 2){ + appName = 'pda'; + appType = 'android'; + } + if(tempAppType == 3){ + appName = 'qyApp'; + appType = 'android'; + } + if(tempAppType == 4){ + appName = 'qyApp'; + appType = 'ios'; + } + if(tempAppType == 5){ + appName = 'patrol'; + appType = 'android'; + } + if(tempAppType == 6){ + appName = 'pda'; + appType = 'ios'; + } + if(tempAppType == 7){ + appName = 'patrol'; + appType = 'ios'; + } + + + $("#apprel-nameedit").val(appName); + $("input[name='appreltype_edit'][value='"+appType+"']").attr("checked",true); + + + $('#apprel_editmodel').modal('show'); +}); + +// 修改弹窗 确定事件 +documentBindFunc.on('click', '#appreledit_submit', function () { + var appName = $('#apprel-nameedit').val(); + var appType = $("input[name='appreltype_edit']:checked").val(); + var downType = $("input[name='apprel-poi-edit']:checked").val(); + //发布类型 10-通过url; 20-通过上传文件发布 + var deployType = $("input[name='apprel-joinedit']:checked").val(); + var file = $('#file_btnedit')[0].files[0]; + var version = $.trim($("#appLock_edit").val()); + var url = $.trim($("#appLock_urledit").val()); + var remark = $.trim($("#apprel_addcomMsgedit").val()); + if (version == '' || version == undefined || version == null) { + $('#apprel_editerror').removeClass('display-none').text('请输入版本'); + return; + } + if (deployType == 10 && ( url == '' || url == undefined || url == null)) { + $('#apprel_editerror').removeClass('display-none').text('请输入url地址'); + return; + } + if (deployType == 20 && (undefined == file || file.length < 1 || file.size < 1 )) { + $('#apprel_editerror').removeClass('display-none').text('请上传文件'); + return; + } + + if (remark == '' || remark == undefined || remark == null) { + $('#apprel_editerror').removeClass('display-none').text('请输入发布内容'); + return; + } + + + var req = { + sysCode: sysComm.sysCode, + appName: appName, + appType: appType, + version: version, + appUrl: url, + downType: downType, + version: version, + remark: remark, + deployType: deployType, + + } + var formData = appFun.handelFormData(req); + var rowid = $('#rowId').val(); + formData.append('id',rowid); + /** + * 发布类型 10-通过url; 20-通过上传文件发布 + */ + if (deployType == 20) { + formData.append('appFile', file); + } + + var opt = { + method: 'post', + url: dataUrl.util.updateAppVersionById(), + data: formData, + processData: false, // 告诉jQuery不要去处理发送的数据 上传文件时,必须这么设置 + contentType: false, // 告诉jQuery不要去设置Content-Type请求头 上传文件时,必须这么设置 + success: function (res) { + console.log("更新app版本发布信息") + console.log(res); + if (res.code == '8888') { + $('#apprel_editmodel').modal('hide'); + appFun.createTableData(); + } else { + alert('更新失败!'); + } + + + } + }; + sysAjax(opt); + +}); + +// 新增 url 文件上传 change事件 +// $('input[type=radio][name=apprel-join]').change(function () { +// if (this.value == '10') { +// $('#apptype_url').removeClass('display-none'); +// $('#apptype_file').addClass('display-none'); +// } +// else if (this.value == '20') { +// $('#apptype_url').addClass('display-none'); +// $('#apptype_file').removeClass('display-none'); +// } +// }); + + +//修改 url 文件上传 change事件 +// $('input[type=radio][name=apprel-joinedit]').change(function () { +// if (this.value == '10') { +// $('#apptype_urledit').removeClass('display-none'); +// $('#apptype_fileedit').addClass('display-none'); +// } +// else if (this.value == '20') { +// $('#apptype_urledit').addClass('display-none'); +// $('#apptype_fileedit').removeClass('display-none'); +// } +// }); + +// 下载弹窗 +documentBindFunc.on('click', '.apprel_download', function () { + // 传回来一个url 取值 value ajax + var qrcode = $(this).data('url'); + $('#qrcodetext').val(qrcode); + //$('#qrcode').empty(); + $('#apprel_downloadmodel').modal('show'); + makeCode(); +}); + +//生成二维码 函数 sta +var qrcode = new QRCode(document.getElementById("qrcode"), { + width: 100, + height: 100 +}); + +function makeCode() { + var elText = document.getElementById("qrcodetext"); + + if (!elText.value) { + alert("这是一个权限为只读的文本框"); + elText.focus(); + return; + } + + qrcode.makeCode(elText.value); +} + + +/*$("#qrcodetext"). + on("blur", function () { + makeCode(); + }). + on("keydown", function (e) { + if (e.keyCode == 13) { + makeCode(); + } + });*/ + +/** + * 默认table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = appFun.getQueryParam(); + console.log(req) + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + var urlStr = dataUrl.util.queryAppVersionForPage(); + // if(req.queryKind==4){ + // urlStr = dataUrl.util.queryCarFlowByMonthForListForPage(); + // } + var opt = { + method: 'post', + url: urlStr, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + $("[data-toggle='tooltip']").tooltip(); + } + } + }; + sysAjax(opt); +} + +//切换 搜索部分 是否生效 +documentBindFunc.on('click', "#apprel-toptab div", function () { + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + //table初始化 + appFun.createTableData(); + +}) + +//点击查询 +documentBindFunc.on('click', "#app-queryBtn", function () { + + appFun.createTableData(); + +}) \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/apprel/qrcode.min.js b/assets/pages/scripts/otherSetting/apprel/qrcode.min.js new file mode 100644 index 0000000..5631cca --- /dev/null +++ b/assets/pages/scripts/otherSetting/apprel/qrcode.min.js @@ -0,0 +1 @@ +var QRCode;!function(){function t(t){this.mode=r.MODE_8BIT_BYTE,this.data=t,this.parsedData=[];for(var e=0,o=this.data.length;e65536?(i[0]=240|(1835008&n)>>>18,i[1]=128|(258048&n)>>>12,i[2]=128|(4032&n)>>>6,i[3]=128|63&n):n>2048?(i[0]=224|(61440&n)>>>12,i[1]=128|(4032&n)>>>6,i[2]=128|63&n):n>128?(i[0]=192|(1984&n)>>>6,i[1]=128|63&n):i[0]=n,this.parsedData.push(i)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function e(t,e){this.typeNumber=t,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}t.prototype={getLength:function(t){return this.parsedData.length},write:function(t){for(var e=0,r=this.parsedData.length;e=7&&this.setupTypeNumber(t),null==this.dataCache&&(this.dataCache=e.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,r)},setupPositionProbePattern:function(t,e){for(var r=-1;r<=7;r++)if(!(t+r<=-1||this.moduleCount<=t+r))for(var o=-1;o<=7;o++)e+o<=-1||this.moduleCount<=e+o||(this.modules[t+r][e+o]=0<=r&&r<=6&&(0==o||6==o)||0<=o&&o<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=o&&o<=4)},getBestMaskPattern:function(){for(var t=0,e=0,r=0;r<8;r++){this.makeImpl(!0,r);var o=f.getLostPoint(this);(0==r||t>o)&&(t=o,e=r)}return e},createMovieClip:function(t,e,r){var o=t.createEmptyMovieClip(e,r);this.make();for(var i=0;i>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=o}for(r=0;r<18;r++){o=!t&&1==(e>>r&1);this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=o}},setupTypeInfo:function(t,e){for(var r=this.errorCorrectLevel<<3|e,o=f.getBCHTypeInfo(r),i=0;i<15;i++){var n=!t&&1==(o>>i&1);i<6?this.modules[i][8]=n:i<8?this.modules[i+1][8]=n:this.modules[this.moduleCount-15+i][8]=n}for(i=0;i<15;i++){n=!t&&1==(o>>i&1);i<8?this.modules[8][this.moduleCount-i-1]=n:i<9?this.modules[8][15-i-1+1]=n:this.modules[8][15-i-1]=n}this.modules[this.moduleCount-8][8]=!t},mapData:function(t,e){for(var r=-1,o=this.moduleCount-1,i=7,n=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var s=0;s<2;s++)if(null==this.modules[o][a-s]){var h=!1;n>>i&1)),f.getMask(e,o,a-s)&&(h=!h),this.modules[o][a-s]=h,-1==--i&&(n++,i=7)}if((o+=r)<0||this.moduleCount<=o){o-=r,r=-r;break}}}},e.PAD0=236,e.PAD1=17,e.createData=function(t,r,o){for(var i=m.getRSBlocks(t,r),n=new _,a=0;a8*h)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*h+")");for(n.getLengthInBits()+4<=8*h&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*h||(n.put(e.PAD0,8),n.getLengthInBits()>=8*h));)n.put(e.PAD1,8);return e.createBytes(n,i)},e.createBytes=function(t,e){for(var r=0,o=0,i=0,n=new Array(e.length),a=new Array(e.length),s=0;s=0?d.get(c):0}}var m=0;for(u=0;u=0;)e^=f.G15<=0;)e^=f.G18<>>=1;return e},getPatternPosition:function(t){return f.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,r){switch(t){case i:return(e+r)%2==0;case n:return e%2==0;case a:return r%3==0;case s:return(e+r)%3==0;case h:return(Math.floor(e/2)+Math.floor(r/3))%2==0;case l:return e*r%2+e*r%3==0;case u:return(e*r%2+e*r%3)%2==0;case g:return(e*r%3+(e+r)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new p([1],0),r=0;r5&&(r+=3+n-5)}for(o=0;o=256;)t-=255;return d.EXP_TABLE[t]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},c=0;c<8;c++)d.EXP_TABLE[c]=1<>>7-t%8&1)},put:function(t,e){for(var r=0;r>>e-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};var v=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];function C(){var t=!1,e=navigator.userAgent;if(/android/i.test(e)){t=!0;var r=e.toString().match(/android ([0-9]\.[0-9])/i);r&&r[1]&&(t=parseFloat(r[1]))}return t}var w,D,A=((w=function(t,e){this._el=t,this._htOption=e}).prototype.draw=function(t){var e=this._htOption,r=this._el,o=t.getModuleCount();function i(t,e){var r=document.createElementNS("http://www.w3.org/2000/svg",t);for(var o in e)e.hasOwnProperty(o)&&r.setAttribute(o,e[o]);return r}Math.floor(e.width/o),Math.floor(e.height/o),this.clear();var n=i("svg",{viewBox:"0 0 "+String(o)+" "+String(o),width:"100%",height:"100%",fill:e.colorLight});n.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),r.appendChild(n),n.appendChild(i("rect",{fill:e.colorLight,width:"100%",height:"100%"})),n.appendChild(i("rect",{fill:e.colorDark,width:"1",height:"1",id:"template"}));for(var a=0;a'],s=0;s");for(var h=0;h');a.push("")}a.push(""),r.innerHTML=a.join("");var l=r.childNodes[0],u=(e.width-l.offsetWidth)/2,g=(e.height-l.offsetHeight)/2;u>0&&g>0&&(l.style.margin=g+"px "+u+"px")},D.prototype.clear=function(){this._el.innerHTML=""},D):function(){function t(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}if(this._android&&this._android<=2.1){var e=1/window.devicePixelRatio,r=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(t,o,i,n,a,s,h,l,u){if("nodeName"in t&&/img/i.test(t.nodeName))for(var g=arguments.length-1;g>=1;g--)arguments[g]=arguments[g]*e;else void 0===l&&(arguments[1]*=e,arguments[2]*=e,arguments[3]*=e,arguments[4]*=e);r.apply(this,arguments)}}var o=function(t,e){this._bIsPainted=!1,this._android=C(),this._htOption=e,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=e.width,this._elCanvas.height=e.height,t.appendChild(this._elCanvas),this._el=t,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.alt="Scan me!",this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return o.prototype.draw=function(t){var e=this._elImage,r=this._oContext,o=this._htOption,i=t.getModuleCount(),n=o.width/i,a=o.height/i,s=Math.round(n),h=Math.round(a);e.style.display="none",this.clear();for(var l=0;lv.length)throw new Error("Too long data");return n}(QRCode=function(t,e){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:o.H},"string"==typeof e&&(e={text:e}),e)for(var r in e)this._htOption[r]=e[r];"string"==typeof t&&(t=document.getElementById(t)),this._htOption.useSVG&&(L=A),this._android=C(),this._el=t,this._oQRCode=null,this._oDrawing=new L(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)}).prototype.makeCode=function(t){this._oQRCode=new e(E(t,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(t),this._oQRCode.make(),this._el.title=t,this._oDrawing.draw(this._oQRCode),this.makeImage()},QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},QRCode.prototype.clear=function(){this._oDrawing.clear()},QRCode.CorrectLevel=o}(); \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/couponFile/couponsetting.css b/assets/pages/scripts/otherSetting/couponFile/couponsetting.css new file mode 100644 index 0000000..2d1c182 --- /dev/null +++ b/assets/pages/scripts/otherSetting/couponFile/couponsetting.css @@ -0,0 +1,167 @@ +/*添加*/ +.left-modal-wrap{ + width: 290px; + height: 168px; + margin-bottom: 50px; + box-shadow:0px 0px 10px 0px rgba(255, 111, 91, 0.35); + border-radius:4px!important; +} +.left-modal{ + width: 290px; + height: 137px; + padding: 35px 0 0 26px; + background:#FF596D url("../img/left-modal-bg.png") no-repeat right 43px; +} +.left-tpye{ + width: 43px; + height: 39px; + right: 0; + top:0; + background: url("../img/left-type.png") no-repeat; +} +.left-tpye-2{ + background: url("../img/left-type-2.png") no-repeat; +} +.left-modal-footer{ + padding-left:26px ; + height: 31px; + line-height: 31px; + background:rgba(255,255,255,1); + color: rgba(0,0,0,.5); + font-size: 12px; +} +.left-modal-reduce{ + height:40px; + margin-right: 20px; + font-size:51px; + font-weight:400; + color:rgba(255,255,255,1); + line-height:38px; + text-shadow:2px 1px 7px rgba(239,54,77,1); +} +.left-modal-name{ + height:14px; + line-height: 14px; + font-size:14px; + font-weight:400; + color:rgba(255,255,255,1); +} +.left-modal-cardnum{ + height:24px; + font-size:16px; + font-weight:400; + color:rgba(255,255,255,.7); + line-height:35px; +} +.left-modal-discount{ + padding: 0 0 0 26px ; + height:31px; + line-height: 31px; + margin-top: 15px; + font-size: 18px; + color: rgba(255,255,255,.7); + background:rgba(255,255,255,.2); + border-radius:2px!important; +} +.right-modal-wrap{ + width: 330px; + margin-left: 40px; + font-size: 12px; + color: #000; +} +.right-modal-wrap>li{ + width:330px; + margin-bottom:10px; ; +} +.addinput{ + border: 0; + border-bottom: 1px dashed #1E95CD ; + padding-left: 10px; + margin: 0 10px; + color: #1E95CD; +} +.addinput:focus{ + border:0!important; + outline: none !important; + border-bottom: 1px dashed #1E95CD!important; ; +} +.addName{ + /*min-width: 60px;*/ + width: 200px !important; +} +.addpark-select,.addpark-type{ + height: 20px; + line-height: 20px; +} +.addpark-select .btn,.addpark-type .btn,.addnum-type .btn,.cardrec-add .btn{ + height: 20px; + line-height: 18px!important; + padding: 0 10px; + margin: 0 10px; + font-size: 12px; + background:rgba(225,245,254,1); + border:1px solid rgba(164, 212, 235, 1); + border-radius:2px!important; + color: #1E95CD!important; +} +.add-dis-all{ + width: 30px; + text-align: center; + border: 0; + border-bottom: 1px dashed #1E95CD ; + margin: 0 5px; + color: #1E95CD; +} +.add-dis-all:focus{ + border:0!important; + outline: none !important; + border-bottom: 1px dashed #1E95CD!important; ; +} +.timestyle{ + width: 90px; + height: 20px; + line-height: 20px; + text-align: center; + font-size: 12px; + display: inline-block; + background:rgba(225,245,254,1); + border:1px solid rgba(164, 212, 235, 1); + border-radius:2px!important; + color: #1E95CD!important; + margin: 0 5px; +} + +.company-dec{ + vertical-align: middle; + max-width: 150px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + padding: 0 10px; + height: 20px; + line-height: 20px; + text-align: center; + font-size: 12px; + display: inline-block; + background: rgba(225,245,254,1); + border: 1px solid rgba(164, 212, 235, 1); + border-radius: 2px!important; + color: #1E95CD!important; + margin: 0 5px; +} +/*下拉框 美化*/ +.datetimepicker-dropdown-bottom-right:after{ + display: none; +} +.btn-group>.dropdown-menu:after, .dropdown-toggle>.dropdown-menu:after, .dropdown>.dropdown-menu:after{ + opacity: 0; +} +#couponsetting-add .dropdown-menu>li>a, #djqcardNumadd .dropdown-menu>li>a{ + font-size: 12px; + padding: 0 16px !important; +} + +/*查看*/ + + +/*编辑*/ diff --git a/assets/pages/scripts/otherSetting/couponFile/couponsetting.html b/assets/pages/scripts/otherSetting/couponFile/couponsetting.html new file mode 100644 index 0000000..6d66af2 --- /dev/null +++ b/assets/pages/scripts/otherSetting/couponFile/couponsetting.html @@ -0,0 +1,382 @@ +
      +
      +
      +
      +
      +
      + 卡券名称 +    + +
      + + +
      + +
      +
      + +
      + +
      +
      +
      查询
      +
      +
      +
      + +
      +
      +
      + + +
      +
      +
      +
        +
      • 优惠规则记录
      • +
      • + + +
      • +
      • + + +
      • +
      +
      +
      +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/pages/scripts/otherSetting/couponFile/couponsetting.js b/assets/pages/scripts/otherSetting/couponFile/couponsetting.js new file mode 100644 index 0000000..5077a30 --- /dev/null +++ b/assets/pages/scripts/otherSetting/couponFile/couponsetting.js @@ -0,0 +1,1174 @@ +var fun = { + //查询条件下拉框初始化 + initSelect:function() { + //1.卡券来源下拉框初始化 + /**fn.getCommonDict('COUPON_CARD_RES',function(data){ + var html =""; + html +=""; + $.each(data,function(index,row){ + // ; + html +="" + }); + + $("#card_res").empty(); + $("#card_res").append(html); + $("#card_res").selectpicker('render'); + });*/ + $('#card_type').selectpicker('render'); + //2.优惠类型 + fn.getCommonDict('COUPON_CARD_TYPE',function(data){ + var html =""; + html +=""; + $.each(data,function(index,row){ + //; + html +="" + }); + + $("#coupons_type").empty(); + $("#coupons_type").append(html); + $("#coupons_type").selectpicker('render'); + }); + fn.getCommonDict('COUPON_CARD_TYPE',function(data){ + var html =""; +// html +=""; + $.each(data,function(index,row){ + html +="" + }); + + $("#parkAddtype").empty(); + $("#parkAddtype").append(html); + $("#parkAddtype").selectpicker('refresh'); + }); + //3.状态 + var html =""; + html +=""; + html +=""; + html +=""; + html +=""; + + $("#card_state").empty(); + $("#card_state").append(html); + $("#card_state").selectpicker('refresh'); + + }, + //2ini表格 + createTableData: function() { + $('#recordtableWhite').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + showColumns: false, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'cardName', + title: '卡券名称', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + + }, + { + field: 'cardType', + title: '卡券类型', + width: '5%', + align: 'left', + //formatter: fun.matchTypeFormatter + formatter: function(value, row, index){ + if('1'==value){ + return '优惠券'; + }else if(4==value){ + return '代金券'; + }else{ + return '其他' + } + } + }, + { + field: 'receiveChannels', + title: '领取渠道', + width: '5%', + align: 'left', + //formatter: fun.matchTypeFormatter + formatter: function(value, row, index){ + if('1'==value){ + return 'APP'; + }else if(2 == value){ + return '积分商城兑换'; + }else if(3==value){ + return '赠送'; + }else{ + return '其他' + } + } + }, + { + field: 'cardNum', + title: '发放数量', + width: '8%', + align: 'left', + formatter: function(value, row, index){ + if(value === '' || value === null || value=== undefined ){ + return '未知'; + }else{ + return value == -1 ? '不限':value; + } + } + }, + { + field: 'cardRestNum', + title: '剩余数量', + width: '10%', + align: 'left', + formatter: function(value, row, index){ + + console.log(typeof value) + if(value === '' || value === null || value=== undefined ){ + return '未知'; + }else{ + + return value == -1 ? '不限':value; + } + } + }, + { + field: 'createDate', + title: '创建时间', + width: '10%', + align: 'left', + formatter:commonObj.timeOneFormatter + }, + { + field: 'dataState', + title: '状态', + width: '8%', + align: 'left', + formatter: function(value, row, index){ + // + if(new Date(row.endTime).getTime() >= new Date().getTime() && value ==1 && new Date(row.beginTime).getTime() <= new Date().getTime()){ + return '生效'; + }else if(new Date(row.beginTime).getTime() >= new Date().getTime() && value ==1){ + return '未生效'; + }else{ + return '失效'; + } + } + }, + + + + // { + // field: 'id', + // title: '主键', + // align: 'center' + // }, + { + field: 'oper', + title: '操作', + width: '15%', + align: 'left', + formatter: function(value, row, index) { + var html = ''; + if (new Date(row.endTime).getTime() >= new Date().getTime() && row.dataState== 1) { + html += "详情 删除"; + } else { + html += "详情"; + } + return html; + + } + }, + ] + }); + + }, + queryBtn:function(){ + documentBindFunc.on('click','#queryBtn',function(){ + $("#recordtableWhite").bootstrapTable('refresh'); + }); + + }, + //初始化新增页面内容 + initAdd: function () { + $('.modytitlename').text('优惠券规则设置'); + $(".maxAppshowJF").addClass('display-none'); + // 停车场初始化 类型初始化 + // parkAdd + var data = fn.getParkLot(); + $("#updateId").val(''); + //张数 是否限制 + $('#couponing').attr('disabled',false); + $('#couponsetting-add-submit').attr('disabled',false); + var html =" \n" + + " "; + + $("#coupcardNum").empty(); + $("#coupcardNum").append(html); + $('#coupcardNum').selectpicker('refresh'); + + //发放形式 + var typehtml =" \n" + + " "+ + " "; + $("#cardrecType").empty(); + $("#cardrecType").append(typehtml); + $('#cardrecType').selectpicker('refresh'); + $('.maxAppshow').removeClass('display-none'); + $(".presentnoshow").removeClass('display-none'); + $("#coupon_add").addClass('display-none'); +// var html = ''; +// var plNos = []; +// for (var i = 0; i < data.length; i++) { +// plNos.push(data[i].code); +// html += ""; +// } +// console.log(data[0].name) + $('#left-modal-name').text("满减优惠券"); + // $("#parkAdd").append(html); + // $('#parkAdd').selectpicker('render'); + // $('#parkAdd').trigger('change'); + +// $("#parkAddtype").append(html); +// $('#parkAddtype').selectpicker('render'); +// $('#parkAddtype').trigger('change'); + + $('#addName').val('') //配置名字清空 + //初始化开始日期 + $("#add-time-btn").val(moment().subtract('days', 0).format('YYYY-MM-DD')) + $("#add-time-end").val(moment().subtract('days', 0).format('YYYY-MM-DD')) + $("#add-time-btn").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + $("#add-time-end").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + //初始化结束日期 + //满减 有效期 发放优惠券 初始化 + $("#addName").val(''); + $('#add-dis-all').val('10') + $('#add-dis-reduce').val('2') + $('#couponing').val('500') + $('#couponingtime').val('5') + $('#maxpullNum').val('1') + + $('#left-add-dis-all').text('2') + $('#left-couponing').text('500') + $('#left-dis-all').text('10') + $('#left-reduce').text('2') + + $('#card-time').text('发放时间:'+$('#add-time-btn').val()+' 至 '+$('#add-time-end').val()) + $('#couponsetting-add').modal('show'); + }, + //回填修改页面内容 + initUpdate: function (data) { + console.log(data) + $('.modytitlename').text('优惠券规则修改') + $('#left-dis-all').text() + $('#left-reduce').text() + $("#coupcardNum").selectpicker('refresh'); + //$('#left-modal-name').text(data[0].name) + fn.getCommonDict('COUPON_CARD_TYPE',function(_data){ + $("#parkAddtype").empty(); + var html =""; + $.each(_data,function(index,row){ + html +="" + }); + + $("#parkAddtype").append(html); + $("#parkAddtype").selectpicker('refresh'); + }); + var cardNum = data.cardNum; + if(cardNum==-1){//不限制 + $("#coupcardNum").val('-1'); + $("#coupcardNum").selectpicker('refresh'); + $('#couponing').val('不限'); + $('#left-couponing').text('不限') + $('#couponing').attr('disabled',true); + }else { + $('#couponing').removeAttr("disabled"); + $("#coupcardNum").val('1'); + $("#coupcardNum").selectpicker('refresh'); + $('#couponing').val(data.cardNum); + $('#couponing').val(data.cardNum); + $('#couponing').attr('disabled',false); + } + // 修改弹窗 选择张数是否限制事件 对应修改左边的停车场名字 + $('#coupcardNum').on('change',function () { + var valnum=$("#coupcardNum").find("option:selected").val(); + if(valnum==-1){ + $('#couponing').val('不限'); + $('#couponing').attr('disabled',true); + $('#left-couponing').text('不限') + }else { + $('#couponing').val('500'); + $('#couponing').attr('disabled',false); + } + + }); + + + $('#updateId').val(data.id); + $('#dataState').val(data.dataState); + fn.getCommonDict('COUPON_CARD_TYPE',function(data){ + var html =""; + $.each(data,function(index,row){ + html +="" + }); + + $("#parkAddtype").empty(); + $("#parkAddtype").append(html); + $("#parkAddtype").selectpicker('render'); + }); + + $('#addName').val(data.cardName) //配置名字 + $("#add-time-btn").val(DateUtils.long2String(data.beginTime,1)); + $("#add-time-end").val(DateUtils.long2String(data.endTime,1)); + $("#add-time-btn").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + $("#add-time-end").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + $('#add-dis-all').val((data.fullCutValue)/100); + $('#add-dis-reduce').val((data.discValue)/100); + $('#left-dis-all').text((data.fullCutValue)/100) + $('#left-reduce').text((data.discValue)/100); + $('#left-add-dis-all').text((data.discValue)/100); + //$('#couponing').val(data.cardNum); + $('#couponingtime').val(data.validDays); + $('#maxpullNum').val(data.receiveNum); + + $('#card-time').text('发放时间:'+$('#add-time-btn').val()+' 至 '+$('#add-time-end').val()) + + + $('#couponsetting-add').modal('show'); + }, + /*获取查询参数*/ + getQueryParam: function() { + //卡券名称 + var couponsettingName = $("#couponsettingName").val(); + /*优惠类型*/ + //var coupons_type = $("#coupons_type").val(); + //卡券类型 + var card_type = $('#card_type').val(); + //状态 + var card_state = $("#card_state").val(); + /*if(coupons_type == null || coupons_type == "ALL" || coupons_type == ''){ + coupons_type = null; + }*/ + if(card_type == null || card_type == "ALL" || card_type == ''){ + card_type = null; + } + if(card_state == null || card_state == "ALL" || card_state == ''){ + card_state = null; + } + var req = { + cardName:couponsettingName, + cardTypes: JSON.parse(card_type), + dataState: card_state + }; + console.log(req); + return req; + }, + /*获取新增参数*/ + getCouponInfoParam: function() { + $('#td_c_coupon_rule_add').addClass('display-none').text(''); + //卡券名称 + var cardName = $.trim($("#addName").val()); + /*满减金额*/ + var fullCutValue = $("#add-dis-all").val() * 100; + /**优惠值*/ + var discValue = $("#add-dis-reduce").val() * 100; + //满减金额 + var fullCutValue = $("#add-dis-all").val() * 100; + var maxJFnum = $.trim($("#maxJFnum").val()); + //发放数量 + var cardNum = $("#couponing").val(); + if(cardNum=="不限"){ + cardNum = -1; + } + //使用天数(领取后) + var validDays = $("#couponingtime").val(); + //每次领取数量 + var receiveNum = $("#maxpullNum").val(); + //每次领取数量 + var beginTime = $("#add-time-btn").val(); + beginTime = new Date(beginTime+" 00:00:00"); + //每次领取数量 + var endTime = $("#add-time-end").val(); + endTime = new Date(endTime+" 23:59:59"); + // console.log(fullCutValue+','+discValue) + var coupcardNum = $("#coupcardNum").val(); //1 满减使用(限制),-1无限制(充值卡都为-1) + if(cardName == null || cardName == '' || cardName == undefined){ + $('#td_c_coupon_rule_add').removeClass('display-none').text('错误提示:优惠券规则名称不能为空'); + return false; + } if(fullCutValue == null || fullCutValue == '' || fullCutValue == undefined){ + $('#td_c_coupon_rule_add').removeClass('display-none').text('错误提示:满减金额不能为空或0'); + return false; + } if(fullCutValue <= discValue){ + $('#td_c_coupon_rule_add').removeClass('display-none').text('错误提示:满减金额必须大于优惠金额'); + return false; + } + if(discValue == null || discValue == '' || discValue == undefined){ + $('#td_c_coupon_rule_add').removeClass('display-none').text('错误提示:优惠金额不能为空或0'); + return false; + } if(coupcardNum ==1){ + if(cardNum == null || cardNum == '' || cardNum == undefined || cardNum=='0'){ + $('#td_c_coupon_rule_add').removeClass('display-none').text('错误提示:发放数量不能为空或0'); + return false; + } + } if(validDays == null || validDays == '' || validDays == undefined || validDays=="0" || validDays==0){ + $('#td_c_coupon_rule_add').removeClass('display-none').text('错误提示:领取后有效天数不能为空或0'); + return false; + } if(receiveNum == null || receiveNum == '' || receiveNum == undefined ||receiveNum=="0" || receiveNum==0){ + $('#td_c_coupon_rule_add').removeClass('display-none').text('错误提示:每天领取张数不能为空或0'); + return false; + } if(beginTime>endTime){ + $('#td_c_coupon_rule_add').removeClass('display-none').text('错误提示:发放开始时间不能大于结束时间'); + return false; + } + var Channels=$('#cardrecType').val(); + //2 积分商场 判断填写积分 + if(Channels==2){ + if( maxJFnum == null || maxJFnum == '' || maxJFnum == undefined ||maxJFnum=="0" || maxJFnum==0){ + $('#td_c_coupon_rule_add').removeClass('display-none').text('错误提示:积分不能为空或0'); + return false; + } + + } + + $("#couponsetting-add-submit").attr("disabled","disabled"); + var req = { + cardName:cardName, + cardRes: 1,//卡券来源:1:平台发放,2:停车场发放 + cardType: 1,//卡券类型 :1-优惠券,2-停车券,3-充值卡 + couponsType: 4,//优惠券类型:1:按次优惠,2:按时优惠,3:折扣优惠(打折),4:满减优惠 + isRecommend: null,//是否推荐购买 1:是,0:否 + useRule: coupcardNum,//使用规则:1 满减使用(限制),-1无限制(充值卡都为-1) + discValue: discValue,//优惠值(分) + fullCutValue: fullCutValue,//满减金额(分) + isSuperpUse: 0,//是否叠加使用 1:是 0:否 + beginTime: beginTime,//开始时间 + endTime: endTime,//结束时间 + cardRestNum: cardNum,//卡券剩余数量 + cardNum: cardNum,//卡券发放数量 + cardState: 1,//卡券状态:1、上架;2、下架 + dataState: 1,//数据状态:1有效,0无效 + cardContent: '不与其他优惠同时使用',//卡券说明,如:不与其他优惠同时使用 + validDays: validDays,//使用天数(领取后) + receiveChannels: Channels,//领取渠道:1:app 2:积分商城兑换 + needIntegral: maxJFnum,//领取渠道:2:积分商城兑换 需填写的积分数字 + receiveNum: receiveNum,//每次领取数量 + flg: 1,//保存、更新标志 1:保存;2:更新 + sysCode:sysComm.sysCode + }; + console.log(req); + return req; + }, + //代金券 参数 + getDJQCouponInfoParam: function() { + $('#djqtd_c_coupon_rule_add').addClass('display-none').text(''); + //卡券名称 + var cardName = $.trim($("#djqaddName").val()); + /**优惠值*/ + var discValue = $.trim($("#reparkFenum").val()); + //满减金额 + var fullCutValue =$.trim( $("#djqMonnum").val()); + //发放数量 + var cardNum =$.trim($("#djqing").val()); + //正整数 + var RegVal = /^\+?[1-9][0-9]*$/; + + if(cardNum=="不限"){ + cardNum = -1; + } + // var reg = new RegExp("^(\\d|[1-9]\\d|100)$"); + + //使用天数(领取后) + var validDays = -1; + //每次领取数量 + var receiveNum = -1; + var beginTime = $("#djqadd-time-btn").val(); + beginTime = new Date(beginTime+" 00:00:00"); + //每次领取数量 + var endTime = $("#djqadd-time-end").val(); + endTime = new Date(endTime+" 23:59:59"); + + var coupcardNum =$('#djqcardNumadd').find('option:selected').val(); //1 满减使用(限制),-1无限制(充值卡都为-1) + if(cardName == null || cardName == '' || cardName == undefined){ + $('#djqtd_c_coupon_rule_add').removeClass('display-none').text('错误提示:代金券规则名称不能为空'); + return false; + } + if(fullCutValue == null || fullCutValue == '' || fullCutValue == undefined ||fullCutValue=="0" || fullCutValue==0){ + $('#djqtd_c_coupon_rule_add').removeClass('display-none').text('错误提示:面值不能为空或0'); + return false; + } + if(discValue == null || discValue == '' || discValue == undefined ||discValue=="0" || discValue==0){ + $('#djqtd_c_coupon_rule_add').removeClass('display-none').text('错误提示:抵扣停车费比例不能为空或0'); + return false; + } + var discValue=parseFloat(discValue); + if(discValue>100) { + $('#djqtd_c_coupon_rule_add').removeClass('display-none').text('错误提示:抵扣停车费比例需输入0-100的数字'); + return false; + } + + if(coupcardNum ==1){ + if(cardNum == null || cardNum == '' || cardNum == undefined || cardNum=='0'|| cardNum==0 ){ + $('#djqtd_c_coupon_rule_add').removeClass('display-none').text('错误提示:发放数量不能为空或0'); + return false; + } + var cardNum= parseFloat(cardNum); + if(!RegVal.test(cardNum)){ + $("#td_rule_add").removeClass('display-none').text("错误提示:发放数量请输入正整数"); + return; + } + + } + + if(validDays == null || validDays == '' || validDays == undefined || validDays=="0" || validDays==0){ + $('#djqtd_c_coupon_rule_add').removeClass('display-none').text('错误提示:领取后有效天数不能为空或0'); + return false; + } + if(receiveNum == null || receiveNum == '' || receiveNum == undefined ||receiveNum=="0" || receiveNum==0){ + $('#djqtd_c_coupon_rule_add').removeClass('display-none').text('错误提示:每天领取张数不能为空或0'); + return false; + } + if(beginTime>endTime){ + $('#djqtd_c_coupon_rule_add').removeClass('display-none').text('错误提示:生效时间不能大于失效时间'); + return false; + } + var Channels=3; + + $("#couponsetting-add-submit").attr("disabled","disabled"); + var req = { + cardName:cardName, + cardRes: 1,//卡券来源:1:平台发放,2:停车场发放 + cardType: 4,//卡券类型 :1-优惠券,2-停车券,3-充值卡 4-代金券 + couponsType: 3,//优惠券类型:1:按次优惠,2:按时优惠,3:折扣优惠(打折),4:满减优惠 + isRecommend: null,//是否推荐购买 1:是,0:否 + useRule: coupcardNum,//使用规则:1 满减使用(限制),-1无限制(充值卡都为-1) + discValue: discValue/10,//优惠值(分) + fullCutValue: fullCutValue * 100,//满减金额(分) + isSuperpUse: 0,//是否叠加使用 1:是 0:否 + beginTime: beginTime,//开始时间 + endTime: endTime,//结束时间 + cardRestNum: cardNum,//卡券剩余数量 + cardNum: cardNum,//卡券发放数量 + cardState: 1,//卡券状态:1、上架;2、下架 + dataState: 1,//数据状态:1有效,0无效 + cardContent: '不与其他优惠同时使用',//卡券说明,如:不与其他优惠同时使用 + validDays: validDays,//使用天数(领取后) + receiveChannels: Channels,//领取渠道:1:app 2:积分商城兑换 3-赠送 + receiveNum: receiveNum,//每次领取数量 + flg: 1,//保存、更新标志 1:保存;2:更新 + sysCode:sysComm.sysCode + }; + console.log(req); + return req; + }, + addCouponConfirm:function(){ + var req = fun.getCouponInfoParam(); + if(req!=false && req!=undefined){ + var opt = { + method: 'post', + url: dataUrl.util.saveCouponRule(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + console.log(res.data); + $("#couponsetting-add-submit").removeAttr("disabled"); + $('#couponsetting-add').modal('hide'); + fun.createTableData(); + }else{ + $("#couponsetting-add-submit").removeAttr("disabled"); + } + } + }; + sysAjax(opt); + } + + + }, + addDJQCouponConfirm:function(){ + var req = fun.getDJQCouponInfoParam(); + if(req!=false && req!=undefined){ + var opt = { + method: 'post', + url: dataUrl.util.saveCouponRule(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + console.log(res.data); + $("#djqsetting-add-submit").removeAttr("disabled"); + $('#djqsetting-add').modal('hide'); + fun.createTableData(); + }else{ + $("#djqsetting-add-submit").removeAttr("disabled"); + } + } + }; + sysAjax(opt); + } + }, + updateCouponConfirm:function(id,dataState){ + var req = fun.getCouponInfoParam(); + if(req!=false && req!=undefined){ + req.id = id; + req.dataState = dataState; + req.flg = 2; + console.log(req) + var opt = { + method: 'post', + url: dataUrl.util.saveCouponRule(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + console.log(res.data); + $('#couponsetting-add').modal('hide'); + fun.createTableData(); + } + } + }; + sysAjax(opt); + } + } + +} + +$(document).ready(function(){ + // 初始化内容 + fun.initSelect(); + + fun.createTableData(); + + fun.queryBtn(); +}); + +//点击新增事件 +documentBindFunc.on('click', '#couponsetting-addBtn',function () { + $('#td_c_coupon_rule_add').addClass('display-none'); + fun.initAdd(); +}); +//change +documentBindFunc.on('change','#cardrecType',function () { + console.log($('#cardrecType').find('option:selected').val()); + if($('#cardrecType').find('option:selected').val()==1){ + + $(".presentnoshow").removeClass('display-none'); + $('.maxAppshow').removeClass('display-none'); + $(".maxAppshowJF").addClass('display-none'); + $("#coupon_add").addClass('display-none'); + } + if($('#cardrecType').find('option:selected').val()==2){ + // maxAppshowJF + $(".presentnoshow").removeClass('display-none'); + $(".maxAppshow").addClass('display-none'); + $(".maxAppshowJF").removeClass('display-none'); + $("#coupon_add").addClass('display-none'); + } + + //赠送 + if($('#cardrecType').find('option:selected').val()==3){ + $(".presentnoshow").addClass('display-none'); + $("#coupon_add").removeClass('display-none'); + } + +}); +//点击新增或修改确定事件 +documentBindFunc.on('click', '#couponsetting-add-submit',function () { + var id=$("#updateId").val(); + var dataState=$("#dataState").val(); + if(id==null || id==''){ + fun.addCouponConfirm(); + }else{ + fun.updateCouponConfirm(id,dataState); + } + +}); + +//默认初始化 select 第一个选中 +function resetValue () { + $('#djqcardNumadd').each(function (i, j) { + $(j).find("option:selected").attr("selected", false); + $(j).find("option").first().attr("selected", true); + }) +} + +//点击新增确定事件 代金券 +documentBindFunc.on('click', '#djqsetting-add-submit',function () { + fun.addDJQCouponConfirm(); +}); +//修改 +documentBindFunc.on('click','.reviseMon',function(){ + $('#td_c_coupon_rule_add').addClass('display-none'); + var id = $(this).attr('value'); + var row = $("#recordtableWhite").bootstrapTable('getRowByUniqueId', id); + fun.initUpdate(row); + $("#couponsetting-add-submit").removeAttr("disabled"); +}); + +//详情 +documentBindFunc.on('click','.readMsg',function(){ + //; + var id = $(this).attr('value'); + var row = $("#recordtableWhite").bootstrapTable('getRowByUniqueId', id); + console.log(row); + //判断卡券类型 + if(row.cardType == 1){ + $("#addName-dec").text(""); + $("#coupons_type_desc").text(""); + $("#add-dis-all-dec").val("");//满减 + $("#add-dis-reduce").val(""); //值 + $("#couponing-dec").val(""); //发放数量 + $("#add-dis-all").val(""); + $("#maxJFnumrec").val("");//积分商场 需要的积分 + $("#addName-dec").text(row.cardName); //卡券名称 + $("#left-modal-name-dec").text(""); + $("#add-time-end-dec").text(""); + $("#add-time-start-dec").text(""); + + $("#left-modal-name-dec").text(row.cardName);////卡券名称 + $("#left-couponing-dec").text(''); //发放数量 + if(row.couponsType != null && row.couponsType =='4'){ + $("#coupons_type_desc").text('满减'); + }else if(row.couponsType != null && row.couponsType =='1'){ + $("#coupons_type_desc").text('按次'); + }else if(row.couponsType != null && row.couponsType =='2'){ + $("#coupons_type_desc").text('按时'); + }else{ + $("#coupons_type_desc").text('折扣'); + } + + if(row.fullCutValue != null ){ + $("#add-dis-all-dec").val(row.fullCutValue/100);//满减 + $("#left-dis-all-dec").text(row.fullCutValue/100);//卡满减 + + } + if(row.discValue != null ){ + $("#add-dis-reduce-dec").val(row.discValue/100);//值 + $("#left-add-dis-all-dec").text(row.discValue/100);//值 + + $("#left-reduce_sub").text(row.discValue/100);//值 + } + if(row.cardNum != null ){ + $("#couponing-dec").val(row.cardNum == -1 ? '不限':row.cardNum ); //发放数量 + $("#left-couponing-dec").text(row.cardNum == -1 ? '不限':row.cardNum); //发放数量 + + + + } + if(row.validDays != null ){ + $("#couponingtime-dec").val(row.validDays); //有效天数 + } + if(row.beginTime != null ){ + $("#add-time-start-dec").text(DateUtils.long2String(row.beginTime, 1) ); + $("#card-time-dec").text(DateUtils.long2String(row.beginTime, 1)+" 至 " + DateUtils.long2String(row.endTime, 1)); + + } + if(row.endTime != null ){ + $("#add-time-end-dec").text(DateUtils.long2String(row.endTime, 1) ); + } + if(row.receiveNum != null ){ + $("#maxpullNumDesc").val(row.receiveNum); + // $("#couponingtime-dec").val(row.receiveNum); + + } + if(row.receiveChannels == 2){ + $(".detailType").text('积分商城兑换'); + $("#maxJFnumrec").val(row.needIntegral); + $(".detailpresentnoshow").removeClass('display-none'); + $(".detaildayNum").addClass('display-none'); + $(".maxAppshowJFrec").removeClass('display-none'); + $("#coupon_rec").addClass('display-none'); + // $("#couponingtime-dec").val(row.receiveNum); + } + if(row.receiveChannels == 1){ + $(".detailType").text('APP'); + $(".detaildayNum").removeClass('display-none'); + $("#coupon_rec").addClass('display-none'); + $(".maxAppshowJFrec").addClass('display-none'); + // $("#couponingtime-dec").val(row.receiveNum); + } + if(row.receiveChannels == 3){ + $(".detailType").text('赠送'); + $(".detailpresentnoshow").addClass('display-none'); + $("#coupon_rec").removeClass('display-none'); + // $("#couponingtime-dec").val(row.receiveNum); + } + + $('#couponsetting-dec').modal('show'); + } +else if(row.cardType == 4){ + //代金券 + $("#djqaddNamedec").text(row.cardName);//名称 + $("#djqleft-modal-namedec").text(row.cardName);////卡券名称 + + $("#djqMonnumdec").val(row.fullCutValue/100);//面值 + $('#djqleft-add-dis-alldec').text(row.fullCutValue/100); + $("#djqingdec").val("");//张数 + $('#djqleft-couponingdec').val(""); + + $("#reparkFenumdec").val(""); //抵扣值 + $('#djqleft-reducedec').text(""); + + $("#djqadd-time-btndec").text(""); + $("#djqadd-time-enddec").text(""); + + if(row.discValue != null ){ + $("#reparkFenumdec").val(row.discValue*10);//值 + $('#djqleft-reducedec').text(row.discValue*10);//值 + } + if(row.cardNum != null ){ + $("#djqingdec").val(row.cardNum == -1 ? '不限':row.cardNum ); //发放数量 + $("#djqleft-couponingdec").text(row.cardNum == -1 ? '不限':row.cardNum); //发放数量 + } + if(row.beginTime != null ){ + $("#djqadd-time-btndec").val(DateUtils.long2String(row.beginTime, 1) ); + $("#djqcard-timedec").text(DateUtils.long2String(row.beginTime, 1)+" 至 " + DateUtils.long2String(row.endTime, 1)); + } + if(row.endTime != null ){ + $("#djqadd-time-enddec").val(DateUtils.long2String(row.endTime, 1) ); + } + + $('#djqsetting-dec').modal('show'); + } +}); +//详情取消 +documentBindFunc.on('click', '#chanel_desc', function() { + $('#couponsetting-dec').modal('hidden'); +}); + + +//确定删除 +documentBindFunc.on('click', '.delList', function() { + var id = $(this).attr('value'); + $("#delcoupId").val(id); + $('#coup_deletemodel').modal('show'); +}); + +//确定删除 +documentBindFunc.on('click', '#coupdelete_submit', function() { + var req = { + id: $("#delcoupId").val(), + dataState: 0 + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.deleteCouponRule(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + $('#coup_deletemodel').modal('hide'); + swal({title: "提示", text: "删除成功!", type: "success", timer: 3000, allowOutsideClick: true}); + $("#recordtableWhite").bootstrapTable('refresh'); + } + } + }; + sysAjax(opt); +}) +// 新增弹窗 选择车场事件 对应修改左边的停车场名字 +/*$('#parkAdd').on('change',function () { + +})*/ +// 新增弹窗 选择张数是否限制事件 对应修改左边的停车场名字 +$('#coupcardNum').on('change',function () { + var valnum=$('#coupcardNum').val(); + if(valnum==-1){ + $('#couponing').val('不限'); + $('#couponing').attr('disabled',true); + $('#left-couponing').text('不限') + }else { + $('#couponing').val('500'); + $('#couponing').attr('disabled',false); + $('#left-couponing').text('500') + } + +}) +// 新增弹窗 改变类型 对应修改左边的类型 left-tpye left-tpye-2 添加删除这个class + + +// 新增弹窗 满多少钱 修改 对应左边修改 +$('#add-dis-all').on('input',function () { + var val = $.trim($(this).val()); + console.log(typeof(val)) + // if(val==''||val==null||val==undefined){ + // $(this).val('10') + // } + if(!isNaN(val)){ + $('#left-dis-all').text(val); + }else{ + $('#left-dis-all').text(''); + } + +}) +// 新增弹窗 满多少钱 修改 对应左边修改 +$('#add-dis-reduce').on('input',function () { + var val = $.trim($(this).val()); + console.log(typeof(val)) + // if(val==''||val==null||val==undefined){ + // $(this).val('10') + // } + if(!isNaN(val)){ + $('#left-reduce').text(val); + $('#left-add-dis-all').text(val); + + }else{ + $('#left-reduce').text('') + } + +}) +// 新增弹窗 满多少钱 修改 对应左边修改 +$('#couponing').on('input',function () { + var val = $.trim($(this).val()); + console.log(typeof(val)) + // if(val==''||val==null||val==undefined){ + // $(this).val('10') + // } + $('#left-couponing').text(val) +}) +// 新增弹窗 有效期修改 +$('#add-time-btn').on('changeDate',function () { + var vals=$(this).val(); + $('#card-time').text('发放时间:'+vals+' 至 '+$('#add-time-end').val()) +}) +$('#add-time-end').on('changeDate',function () { + var vals=$(this).val(); + $('#card-time').text('发放时间:'+$('#add-time-btn').val()+' 至 '+vals) +}) + + +$('.addName').bind('input propertychange', function () { + var $this = $(this); + var text_length = $this.val().length;//获取当前文本框的长度 + var current_width = parseInt(text_length) * 14;//该14是改变前的宽度除以当前字符串的长度,算出每个字符的长度 + console.log(current_width) + $this.css("width", current_width + "px"); +}); + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCouponRuleForpage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + + + +//用户只能输入正数与小数 +function checkInputText(obj){ + obj.value = obj.value.replace(/[^\d.]/g,"");//先把非数字的都替换掉,除了数字和. + obj.value = obj.value.replace(/\.{2,}/g,".");//保证只有出现一个.而没有多个. + obj.value = obj.value.replace(/^\./g,"");//必须保证第一个为数字而不是. + obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");//保证.只出现一次,而不能出现两次以上 + obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数 +} + + + +//代金券新增 按钮 事件 +documentBindFunc.on('click','#djqsetting-addBtn',function () { + $('#djqing').attr('disabled',false); + $('#djqaddName').val(''); + $('#djqMonnum').val(100); + $('#djqing').val(1); + $('#reparkFenum').val(10); + $('#djqleft-couponing').text('1'); + $('#djqleft-add-dis-all').text('100'); + $('#djqleft-reduce').text('10'); + $('#djqtd_c_coupon_rule_add').addClass('display-none').text(''); + resetValue(); + //初始化开始日期 + $("#djqadd-time-btn").val(moment().subtract('days', 0).format('YYYY-MM-DD')) + $("#djqadd-time-end").val(moment().subtract('days', 0).format('YYYY-MM-DD')) + $("#djqadd-time-btn").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + $("#djqadd-time-end").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + $('#djqcard-time').text('生失效时间:'+$('#djqadd-time-btn').val()+' 至 '+$('#djqadd-time-end').val()) + //下拉框初始化 + $('#djqcardNumadd').selectpicker('refresh'); + $('#djqsetting-add').modal('show'); + // $('#djqsetting-dec').modal('show'); +}); + +// 代金券 面值 +$('#djqMonnum').on('input',function () { + var val = $.trim($(this).val()); + console.log(typeof(val)) + // if(val==''||val==null||val==undefined){ + // $(this).val('10') + // } + if(!isNaN(val)){ + $('#djqleft-add-dis-all').text(val); + + }else{ + $('#djqleft-add-dis-all').text('') + } + +}) + +// 代金券弹窗 选择张数是否限制事件 +documentBindFunc.on('change','#djqcardNumadd',function () { + var valnum=$('#djqcardNumadd').val(); + if(valnum==-1){ + $('#djqing').val('不限'); + $('#djqing').attr('disabled',true); + $('#djqleft-couponing').text('不限') + }else { + $('#djqing').val('1'); + $('#djqing').attr('disabled',false); + $('#djqleft-couponing').text('1') + } + +}); +// 新增代金券弹窗 张数 +$('#djqing').on('input',function () { + var val = $.trim($(this).val()); + console.log(typeof(val)) + // if(val==''||val==null||val==undefined){ + // $(this).val('10') + // } + $('#djqleft-couponing').text(val) +}); +// 新增代金券弹窗 打折抵扣 % +$('#reparkFenum').on('input',function () { + var val = $.trim($(this).val()); + console.log(typeof(val)) + // if(val==''||val==null||val==undefined){ + // $(this).val('10') + // } + $('#djqleft-reduce').text(val) +}) + + +// 代金券弹窗 有效期修改 +$('#djqadd-time-btn').on('changeDate',function () { + var vals=$(this).val(); + $('#djqcard-time').text('生失效时间:'+vals+' 至 '+$('#djqadd-time-end').val()) +}) +$('#djqadd-time-end').on('changeDate',function () { + var vals=$(this).val(); + $('#djqcard-time').text('生失效时间:'+$('#djqadd-time-btn').val()+' 至 '+vals) +}) + +//详情取消 +documentBindFunc.on('click', '#djqchanel_desc', function() { + $('#djqsetting-dec').modal('hidden'); +}); + + + + + + + + + + diff --git a/assets/pages/scripts/otherSetting/disCount/discountrule.css b/assets/pages/scripts/otherSetting/disCount/discountrule.css new file mode 100644 index 0000000..34bd9d3 --- /dev/null +++ b/assets/pages/scripts/otherSetting/disCount/discountrule.css @@ -0,0 +1,531 @@ + +/*------------------ 添加弹窗 sta --------------------------*/ +/* topbar */ +#editmodel .modal-content .modal-header,#addmodel .modal-content .modal-header,#Readmodel .modal-content .modal-header{ + background: #2abb9a; +} +#editmodel .modal-content .close,#addmodel .modal-content .close,#Readmodel .modal-content .close{ + color: #fff; + opacity:1; +} +#editmodel .modal-content .modal-title ,#addmodel .modal-content .modal-title,#Readmodel .modal-content .modal-title{ + color: #fff; + font-weight: 400; +} +#editmodel .modal-content,#addmodel .modal-content{ + width: 700px; +} +#Readmodel .ITD-modal-dialog{ + width: 700px; +} + + + + + + + +.Topbar-msg{ + margin-top: 22px; + height: 13px; + line-height: 13px; + color: #626c72; + text-align: center; + width: 100%; +} +.form-down{ + +} +.form-con-height{ + height: 35px; + line-height: 35px; + margin-bottom: 10px; + width:320px; + margin-left: 174px; +} +.form-msg{ + float: left; + width: 250px; + height: 34px; + border: 1px solid #c2cad8 !important; +} +.lineh1{ + height: 1px; + width: 698px; + margin-left: -15px; + margin-bottom: 20px; + background: #bdbdbd; +} + + +/*-----------第2步--------*/ +.form-group-height { + height: 34px; + float: left; + width: 330px; +} +.width30 { + width: 90px; + float: left; + text-align: right; + line-height: 34px; + margin-right: 10px; + /* padding-top: 5px; */ +} +.width65read { + float: left; + width: 220px; + height: 34px; + /*line-height: 34px;*/ +} +.width65 .ruleCom, .width65read .ruleCom { + height: 34px; + line-height: 34px; + border: 1px solid #c2cad8; + text-indent: 10px; + width: 220px; +} +.bgcolred{ + color: #f00; + padding-right: 5px; +} +.addtrue-btn{ + width: 628px; + font-size: 16px; + color: #2abb9a; + border:1px solid #2abb9a; + height: 34px; + line-height: 34px; + text-align: center; + margin-left: 20px; + border-radius: 20px !important; + cursor: pointer; +} +.tab-topbar{ + background: rgba(64,154,214,0.4); + border: 1px solid #c2cad8; + height: 40px; + line-height: 40px; + padding-left: 0 !important; + display: flex; + color: #354050; + font-weight: 600; +} +.tabli{ + flex: 1; + height: 40px; + line-height: 40px; + /*width: 70px;*/ + text-align: center; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + + + +/*-----------第3步--------*/ + +.threeUl{ + float: left; + margin-left: 9px; + height: 95px; + padding-left: 0; +} +.stepli{ + float: left; + width: 160px; + height: 95px; + margin-right: 3px; + padding-left: 16px; +} +.top-firli{ + background: url("../img/truelist-blue.png") no-repeat; + background-size: 100% 100%; +} +.top-secli{ + background: url("../img/truelist-green.png") no-repeat; + background-size: 100% 100%; +} +.top-thirdli{ + background: url("../img/truelist-orange.png") no-repeat; + background-size: 100% 100%; +} +.three-ruletit{ + margin-top: 24px; + height: 13px; + line-height: 13px; + color: #fff; + width: 128px; + font-size: 13px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.three-rulemsg{ + margin-top: 8px; + height: 18px; + line-height: 18px; + color: #fff; + width: 128px; + font-size: 18px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.three-hs{ + margin-top: 5px; + height: 12px; + line-height: 12px; + color: #fff; + font-size: 12px; + width: 128px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +/*------------------ 删除弹窗 sta --------------------------*/ + + +.model-delcon{ + /*position: relative;*/ + margin-left: 128px; + height:96px; + width: 96px; + background: url("../img/delete_Rule.png") no-repeat; + background-size: 100% 100%; +} +.delcon-msg{ + height: 30px; + line-height: 30px; + text-align: center; + width: 100%; + margin-top: 8px; +} +/*错误提示*/ +#errormodel .modal-content{ + margin-top: 150px; + margin-left: 186px; + height: 44px; + width: 300px; + text-align: center; + border-radius: 20px !important; +} +#errormodel .modal-body{ + font-size: 13px; + background: #1f2b3d; + color: #fff; + height: 44px; + line-height: 44px; + padding: 0; + border-radius: 20px !important; +} + +/*-----------------------详情弹窗---------------------------*/ +.discountrule_pad24{ + padding: 24px 20px 16px; +} +.discountrule_topbar{ + background: url("../img/discountrule_topBgico.png") no-repeat; + width: 980px; + height: 104px; +} +.discountrule_topbarleft{ + width: 150px; + height: 104px; +} +.discountrule_topbarleftBg{ + margin-left: 43px; + margin-top: 20px; + height: 64px; + width: 64px; + background: url("../img/discountrule_bgIco.png") no-repeat; + background-position: 0px 0px; +} +.discountrule_topbarmid{ + height: 48px; + margin-top: 28px; + border-left: 1px solid #fff; + width:800px; +} +.discountrule_name{ + font-size: 18px; + height: 20px; + line-height: 20px; + width:300px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + text-indent: 40px; + margin-bottom: 10px; +} +.discountrule_parkslist{ + max-width: 200px; + height:16px; + line-height: 16px; + font-size: 14px; + /*padding-left: 40px;*/ + float: left; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.discountrule_topbarright{ + width: 350px; + margin-top: 24px; + height: 18px; + font-size: 14px; + text-align: right; + padding-right: 24px; +} +.discountrule_timestaread{ + margin-right: 5px; + margin-left: 20px; +} + +.discountrule_threetab-topbar{ + background: #f0f4f5 !important; + font-size: 13px; + color: #4f5052; + height: 36px; + line-height: 36px; + padding-left: 0 !important; + display: flex; + margin: 0; +} +.discountrule_threetabli{ + flex: 1; + height: 36px; + line-height: 36px; + border-bottom: 1px solid #d8e2e5; + border-top: 1px solid #d8e2e5!important; + padding-left: 24px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + font-size: 14px; + font-weight: 600; +} +.discountrule_tablecon-list>li,.discountrule_threetablecon-list>li{ + height: 36px; + line-height: 36px; +} +.discountrule_threetablecon-list{ + padding-left: 0; + /*max-height: 200px;*/ + overflow-y: auto; +} +.discountrule_threetablecon-main,.discountrule_tablecon-main{ + width:100%; + padding-left: 0; + display: flex; + border-bottom: 1px solid #d8e2e5; +} +.discountrule_tablecon-main>li,.discountrule_threetablecon-main>li{ + flex: 1; + padding-left: 24px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +/*---------------------新增弹窗----------------------*/ +/*第一步-----------------*/ +.discountrule_comTopbar{ + padding-left: 53px; +} +.discountrule_tit-topbar{ + position: relative; + height: 110px; + width: 280px; + float: left; + margin-right: 12px; +} +.discountrule_line1{ + height: 2px; + width: 280px; + background:#d8e2e5; + margin-top: 40px; +} +.clickActive .discountrule_posabl { + background: #26be96 !important; + color: #fff !important; + border: 1px solid #26be96 !important; +} +.clickActive .discountrule_line1{ + background: #26be96 !important; +} +.clickActive .Topbar-msg{ + color: #26be96 !important; +} +.discountrule_posabl{ + position: absolute; + top:28px; + left: 50%; + margin-left: -12px; + height: 24px; + line-height: 25px; + width: 24px; + font-size: 13px; + text-align: center; + background: #d8e2e5; + color: #fff; + border-radius: 50% !important; +} +.discountrule_step1{ + width: 300px; + margin-left: 335px; +} +.discountrule_addstep1btn{ + float: left; + margin-left: 183px; +} +.next-btn1{ + /*margin-left: 458px;*/ +} +/*.next-btn1,.next-btn2,.threesubmit-btn{ + margin-top: 2px; + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + text-align: center; + font-size: 14px; + color: #fff; +}*/ +.disform-footfrist{ + margin-top: 75px; + height: 55px; +} +/*第二步---------------------*/ + +.discountrule_tab-topbar{ + background: #f0f4f5 !important; + font-size: 13px; + color: #4f5052; + height: 36px; + line-height: 36px; + padding-left: 0 !important; + display: flex; + margin: 0; +} +.discountrule_tabli{ + flex: 1; + height: 36px; + line-height: 36px; + border-bottom: 1px solid #d8e2e5; + border-top: 1px solid #d8e2e5!important; + padding-left: 24px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + font-size: 14px; + font-weight: 600; +} +.discountrule_tablecon-list{ + padding-left: 0; + /*max-height: 120px;*/ + overflow-y: auto; +} +.dellist{ + text-align: center; +} +.disform-footsec,.disform-footthree{ + margin-bottom: 25px; + margin-top: 20px; +} +.prev-btn2{ + margin-left: 416px; + /*margin-top: 2px;*/ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + background: #c2cad8; + border:1px solid #c2cad8 !important; + margin-right: 12px; +} +/*第三部--------------------------------------*/ +.discount-timeRead{ + display: inline-block; + max-width: 700px; + padding-left: 40px; + height: 16px; + line-height: 16px; + font-size: 14px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.form-second .row{ + margin-left: 0 !important; + margin-right: 0 !important; +} + +/*绑定用户 部分 sta*/ +.backrule_btn{ + width: 91px; + height: 32px; + line-height: 32px; + background: #1E95CD; + border-radius: 4px!important; + color: #fff; + text-align: center; + cursor: pointer; + margin-top: 18px; +} + +/* 2018-12-11 停车场 树*/ +.plan-park-step { + height: 260px; + float: left; + margin-top: 16px; + margin-left: 140px; +} +.plan-park-list { + height: 250px; + width: 220px; + margin-left: 5px; + background-color: #f3f4f5; + border-radius: 4px !important; + overflow: auto; +} +.plan-parkcheck-step { + height: 250px; + margin-top: 16px; + width: 360px; + margin-left: 40px; + background-color: #f3f4f5; + border-radius: 4px !important; + overflow: auto; + float: left; + padding: 10px 5px; +} +.plancheck-parkCheck { + height: 28px; + width: 107px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + line-height: 28px; + padding: 0 24px 0 12px; + display: inline-block; + border-radius: 4px !important; + position: relative; + border: 1px solid #d8e2e5; + background-color: #f7f7f7; + margin-right: 6px; +} +.closex{ + position: absolute; + top: 8px; + right: 9px; + height: 9px; + width: 9px; + background: url(../../vipmanageFile/img/parkclose_icon.png) no-repeat; + background-size: 9px 9px; + cursor: pointer; +} \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/disCount/discountrule.html b/assets/pages/scripts/otherSetting/disCount/discountrule.html new file mode 100644 index 0000000..5002e3e --- /dev/null +++ b/assets/pages/scripts/otherSetting/disCount/discountrule.html @@ -0,0 +1,822 @@ +
      +
      +
      +
      +
      +
      + +
      +
      + +
      +
      + 折扣名称 + +
      +
      +
      +
      查询
      +
      +
      +
      + +
      +
      +
      + +
      +
      +
      +
        +
      • 折扣及折扣规则列表
      • +
      • + + +
      • +
      +
      +
      +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/pages/scripts/otherSetting/disCount/discountrule.js b/assets/pages/scripts/otherSetting/disCount/discountrule.js new file mode 100644 index 0000000..b2e948c --- /dev/null +++ b/assets/pages/scripts/otherSetting/disCount/discountrule.js @@ -0,0 +1,2286 @@ +/* + @songcxa + @2017/12/6 + @停车时长 + */ +function pageDiscountruleInit() { + + + + (function() { + var fun = { + + init: function() { + //初始化下拉框 + fun.initPark(); + fun.createTableData(); + fun.createBindUserTableData(); + + // areaTree.initTree(); + }, + //初始化停车场下拉框 + initPark: function () { + var data = fn.getParkLot(); + $("#parkIds").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + $("#parkName").html(html); + $('#parkName').selectpicker('render'); + $('#parkName').trigger('change'); + + /*$("#parkNameEdit").html(html); + $('#parkNameEdit').selectpicker('render'); + $('#parkNameEdit').trigger('change');*/ + + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + $('#parkIds').trigger('change'); + $('#carType').selectpicker('refresh'); + + }, + //生成表格数据 + createTableData: function() { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + showColumns: false, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + /*{ + field: 'discNo', + title: '折扣编码', + width: '5%', + align: 'left' + },*/ + { + field: 'discName', + title: '折扣名称', + width: '10%', + align: 'left', + formatter: fun.discNameFormatter + }, + { + field: 'plName', + title: '车场名称', + width: '5%', + formatter: fun.plNameFormatter + }, + { + field: 'discType', + title: '折扣类型', + width: '5%', + align: 'left', + formatter: fun.discTypeFormatter + }, + { + field: 'beginTime', + title: '生效时间', + width: '8%', + align: 'left', + formatter: commonObj.timeOneFormatter + }, + { + field: 'endTime', + title: '失效时间', + width: '10%', + align: 'left', + formatter: commonObj.timeOneFormatter + }, + { + field: 'discState', + title: '状态', + width: '8%', + align: 'left', + formatter: fun.cardStaFormatter + }, + + { + field: 'oper', + title: '操作', + width: '15%', + align: 'left', + formatter: function(value, row, index) { + var html = ''; + html += "详情 " + + "修改" + + "删除"; + if(row.discType == 3) { + html += "绑定用户"; + } + return html; + } + }, + ] + }); + + }, + discNameFormatter: function(value, row, index){ + if (value==null||value==undefined||value=='') { + return "-"; + } + return '
      '+value+'
      ' + }, + plNameFormatter: function(value, row, index){ + if (value==null||value==undefined||value=='') { + return "-"; + } + return '
      '+value+'
      ' + }, + //生成表格数据 + createBindUserTableData: function() { + $('#disuser-table').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + showColumns: false, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadBindUserRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + + { + field: 'plName', + title: '车场名称', + width: '5%', + align: 'left', + formatter: fun.plNameFormatter + }, + { + field: 'carNumber', + title: '车牌号', + width: '5%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'userName', + title: '姓名', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'userPhone', + title: '手机号', + width: '8%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'carType', + title: '车辆类型', + width: '8%', + align: 'left', + formatter: commonObj.disCarTypeFormatter + }, + + { + field: 'oper', + title: '操作', + width: '15%', + align: 'left', + formatter: function(value, row, index) { + var html = ''; + html +="删除"; + return html; + } + }, + ] + }); + + }, + + /*获取查询参数*/ + getQuerySpecialCarParam: function() { + + var plNo = $('#specialCarAdd').attr('plNo'); + var discNo = $('#specialCarAdd').attr('discNo'); + + //车牌号 + var carNumber = $("#user_carName").val(); + /*车主名称*/ + var userName = $('#user_Name').val(); + + var req = { + plNo:plNo, + discNo:discNo, + carNumber: carNumber, + userName:userName + }; + console.log(req); + return req; + }, + + /*获取查询参数*/ + getQueryParam: function() { + + var plnos = JSON.parse($("#parkIds").val()); + //状态 + var discState = $("#carType").val(); + /*折扣名称*/ + var discontName = $('#discontName').val(); + discontName = discontName == null || discontName.length == 0 ? null : discontName.trim(); + + var req = { + plNos: plnos, + discState:discState, + discName: discontName + }; + console.log(req); + return req; + }, + timeFormatter: function(value, row, index) { + if (value==null||value==undefined||value=='') { + return "-"; + }else { + return DateUtils.long2String(value, 3); + } + }, + timeHMFormatter: function(value, row, index) {//只取时、分-23:20:00 + if (value==null||value==undefined||value=='') { + return "-"; + } else { + var result = DateUtils.long2String(value, 3); + var second = result.substring(result.length-2,result.length); + return result.replace(second,'00'); + } + }, + cardStaFormatter: function(value,row,index){ + var date = new Date(); + if(row.beginTime == null||row.beginTime==''||row.beginTime==undefined) { + return '无效' + } else { + if(row.beginTime <= date.getTime() && date.getTime() <= row.endTime) { + return '生效'; + } else if(date.getTime() < row.beginTime){ + return '未生效' + }else{ + return '失效' + } + } + }, + isTLimitFormatter:function(value){ + if (value==null||value==undefined||value=='') { + return "-"; + } + else if(value == 1){ + return "是"; + } + else if (value == 0){ + return "否"; + } + else{ + return "未知"; + } + }, + + + discResFormatter:function(value){ + if (value==null||value==undefined||value=='') { + return "-"; + } + else if(value == 1){ + return "平台折扣"; + } + else if (value == 2){ + return "停车场折扣"; + } + else{ + return "未知"; + } + }, + discTypeFormatter:function(value){ + if (value==null||value==undefined||value=='') { + return "-"; + } + else if(value == 1){ + return "停车场折扣"; + } + else if (value == 3){ + return "特殊车辆折扣"; + } + else{ + return "未知"; + } + }, + discTerminalResFormatter:function(value){ + if (value==null||value==undefined||value=='') { + return "-"; + } + else if(value == 1){ + return "PDA"; + } + else if (value == 2){ + return "APP"; + } + else if (value == 3){ + return "公众号"; + } + else{ + return "未知"; + } + }, + specialDayTypeFormatter:function(value){ + if (value==null||value==undefined||value=='') { + return "-"; + } + else if(value == -1){ + return "不限"; + } + else if (value == 1){ + return "工作日"; + } + else if (value == 2){ + return "非工作日"; + } + else{ + return "未知"; + } + }, + } + // $('#discountrule_addmodel').modal('show'); + //初始执行 + fun.init(); + documentBindFunc.on('click', '#queryBtn', function() { + fun.createTableData(); + }); + + //删除弹窗 + documentBindFunc.on('click', '.delList', function() { + operateId =$(this).attr('value'); + $('#deletemodel').modal('show'); + }); + //删除提交 + documentBindFunc.on('click', '#discountrule-delete-submit', function() { + deleteCommit(operateId); + }); + //详情弹窗 + documentBindFunc.on('click', '.readMsg', function() { + var id =$(this).attr('value'); + discontDetail(id); + + }); + // 绑定用户模块 sta---========================== new + documentBindFunc.on('click','.chooseList',function (){ + $('#specialCarAdd').attr('plNo',$(this).attr('plNo')); + $('#specialCarAdd').attr('discNo',$(this).attr('discNo')); + $('.normal-main').addClass('display-none'); + $('.user-main').removeClass('display-none'); + // 初始化 + $('#user_carName').val(''); + $('#user_Name').val(''); + // 初始化表格 + fun.createBindUserTableData(); + + }); + //添加提交 + documentBindFunc.on('click', '#step-three-sure', function() { + $("#step-three-sure").attr("disabled","disabled"); + addCommit(); + }); + //修改提交 + documentBindFunc.on('click', '#step-three-sureEdit', function() { + updateCommit(); + + }); + //修改提交 + function updateCommit(){ + var id = $("#discontIdEdit").val(); + var discNo = $("#discontNoEdit").val(); + var discName = $.trim($('#three-rulenameEdit').text()); + var plno = $('#three-ruleparkEdit').attr('value'); + var discType = $('#three-ruleparkEdit').attr('discType'); + var plNo = plno.replace('[\"','').replace('\"]',''); + var beginTime = $("#three-effecttimeEdit").text()+' 00:00:00'; + var endTime = $("#three-losetimeEdit").text()+' 23:59:59'; + var ruleList=[]; + $('#tablecon-listEdit .discountrule_tablecon-main').each(function (index,item) { + var rule={disCarType: 0,discPayType: 0,discRuleName: "",discTerminalRes: 0, + discValue: 0,effDate: "",expDate: "",isTLimit: 0,specialDayType: 0,dataState:1}; + rule.discRuleName=$(item).find('li').eq(0).text(); + rule.discTerminalRes=$(item).find('li').eq(1).attr('value'); + rule.discPayType=$(item).find('li').eq(2).attr('value'); + rule.disCarType=$(item).find('li').eq(3).attr('value'); + var discont = $(item).find('li').eq(4).text(); + rule.discValue = discont; + rule.isTLimit=$(item).find('li').eq(5).attr('value'); + var time = "2017-11-20 "+$(item).find('li').eq(6).text()+":00"; + rule.effDate=new Date(time.replace(new RegExp(/-/gm) ,"/")); + time = "2017-11-20 "+$(item).find('li').eq(7).text()+":00"; + rule.expDate=new Date(time.replace(new RegExp(/-/gm) ,"/")); + rule.specialDayType=$(item).find('li').eq(8).attr('value'); + ruleList.push(rule); + }); + var req={ + sysCode: sysComm.sysCode, + id: id, + discNo:discNo, + plNo: plNo, + beginTime: new Date(beginTime.replace(new RegExp(/-/gm) ,"/")), + endTime: new Date(endTime.replace(new RegExp(/-/gm) ,"/")), + discName: discName, + discState: 1, + discType: discType,//折扣类型 1.停车支付折扣 + discRes: 2,//折扣来源 2:停车场折扣 + discountRuleList: ruleList + } + console.log(req); + var opt = { + method: 'post', + url: dataUrl.util.updateDiscountRuleById(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + if (res.code == '8888') { + if (res.data) { + //关闭修改页面 + $('#discountrule_editmodel').modal('hide'); + swal({title:"提示",text:"修改成功!",type:"success",timer:3000,allowOutsideClick:true}); + //初始化table + fun.createTableData(); + } + else { + console.log(res.msg); + return false; + } + + } + else { + console.log(res.msg); + return; + } + } + } + }; + sysAjax(opt); + } + + function getSelectedPlNos() { + var plNos = []; + $.each($('#planstep-parkCheck span.plancheck-parkCheck'),function () { + plNos.push($(this).data('id')); + }) + console.log(plNos); + return plNos; + } + + function addCommit(){ + var discName = $.trim($('#three-rulename').text()); + //var plno = $('#three-rulepark').attr('value'); + var plNos =getSelectedPlNos(); + + + var discType = $('#three-rulepark').attr('discType'); + // var plNo = plno.replace('[\"','').replace('\"]',''); + var beginTime = $("#three-effecttime").text()+' 00:00:00'; + var endTime = $("#three-losetime").text()+' 23:59:59'; + var ruleList=[]; + $('#discountrule_tablecon-list .discountrule_tablecon-main').each(function (index,item) { + var rule={disCarType: 0,discPayType: 0,discRuleName: "",discTerminalRes: 0, + discValue: 0,effDate: "",expDate: "",isTLimit: 0,specialDayType: 0,dataState:1}; + rule.discRuleName=$(item).find('li').eq(0).text(); + rule.discTerminalRes=$(item).find('li').eq(1).attr('value'); + rule.discPayType=$(item).find('li').eq(2).attr('value'); + rule.disCarType=$(item).find('li').eq(3).attr('value'); + var discont = $(item).find('li').eq(4).text(); + rule.discValue = discont; + rule.isTLimit=$(item).find('li').eq(5).attr('value'); + var time = "2017-11-20 "+$(item).find('li').eq(6).text()+":00"; + rule.effDate=new Date(time.replace(new RegExp(/-/gm) ,"/")); + time = "2017-11-20 "+$(item).find('li').eq(7).text()+":00"; + rule.expDate=new Date(time.replace(new RegExp(/-/gm) ,"/")); + rule.specialDayType=$(item).find('li').eq(8).attr('value'); + ruleList.push(rule); + }); + var req={ + sysCode: sysComm.sysCode, + plNos: plNos, + beginTime: new Date(beginTime.replace(new RegExp(/-/gm) ,"/")), + endTime: new Date(endTime.replace(new RegExp(/-/gm) ,"/")), + discName: discName, + discState: 1, + discType: discType,//折扣类型 1.停车支付折扣 + discRes: 2,//折扣来源 2:停车场折扣 + discountRuleList: ruleList + } + console.log(req); + var opt = { + method: 'post', + url: dataUrl.util.addDiscountRule(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + $("#step-three-sure").removeAttr("disabled"); + if (res.data) { + //关闭添加页面 + $('#discountrule_addmodel').modal('hide'); + swal({title:"提示",text:"添加成功!",type:"success",timer:3000,allowOutsideClick:true}); + //初始化table + fun.createTableData(); + } + else { + $("#step-three-sure").removeAttr("disabled"); + console.log(res.msg); + return false; + } + }else{ + $("#step-three-sure").removeAttr("disabled"); + } + + + } + }; + sysAjax(opt); + } + function deleteCommit(id){ + var req = { + sysCode: sysComm.sysCode, + id: id + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.deleteDiscountRuleById(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + if (res.data) { + //关闭删除页面 + $('#deletemodel').modal('hide'); + swal({title:"提示",text:"删除成功!",type:"success",timer:3000,allowOutsideClick:true}); + //初始化table + fun.createTableData(); + } + else { + console.log(res.msg); + return false; + } + } + else { + console.log(res.msg); + return; + } + } + }); + + } + function discontDetail(id){ + $("#three-rulenameRead").text(''); + $("#three-rulenameRead").attr('title',''); + $("#three-ruleparkRead").text(''); + $("#three-ruleparkRead").attr('title',''); + $("#three-effecttimeRead").text(''); + $("#three-losetimeRead").text(''); + $("#threetablecon-listRead").empty(); + var req = { + sysCode: sysComm.sysCode, + id: id + }; + var opt = { + method: 'post', + url: dataUrl.util.queryDiscountRuleById(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data = res.data; + $("#three-rulenameRead").text(data.discName==null?'':data.discName); + $("#three-rulenameRead").attr('title',data.discName==null?'':data.discName); + $("#three-ruleparkRead").text(data.plName==null?'':data.plName); + $("#three-ruleparkRead").attr('title',data.plName==null?'':data.plName); + $("#three-effecttimeRead").text(commonObj.timeOneFormatter(data.beginTime)); + $("#three-losetimeRead").text(commonObj.timeOneFormatter(data.endTime)); + var html=''; + $.each(data.discountRuleList, function(index,item) { + html='
    • ' + +'
        ' + +'
      • '+item.discRuleName+'
      • ' + +'
      • '+fun.discTerminalResFormatter(item.discTerminalRes)+'
      • ' + +'
      • '+commonObj.discPayTypeFormatter(item.discPayType)+'
      • ' + +'
      • '+commonObj.disCarTypeFormatter(item.disCarType)+'
      • ' + +'
      • '+(item.discValue)+'
      • ' + +'
      • '+fun.isTLimitFormatter(item.isTLimit)+'
      • ' + +'
      • '+fun.timeHMFormatter(item.effDate)+'
      • ' + +'
      • '+fun.timeHMFormatter(item.expDate)+'
      • ' + +'
      • '+fun.specialDayTypeFormatter(item.specialDayType)+'
      • ' + +'
      ' + +'
    • '; + $("#threetablecon-listRead").append(html); + }); + + $('#discountrule_Readmodel').modal('show'); + } + } + }; + sysAjax(opt); + } + /** + * 自定义table AJAX请求 Readmodel + * @param {Object} params + */ + function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryDiscountRuleForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); + }; + //绑定用户-查询按钮 + documentBindFunc.on('click', '#user-queryBtn', function() { + fun.createBindUserTableData(); + }); + /** + * 自定义table AJAX请求 Readmodel + * @param {Object} params + * 绑定特殊车辆 + */ + function tableLoadBindUserRequest(params) { + var req = fun.getQuerySpecialCarParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryDiscountSpecialCarForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + $("[data-toggle='tooltip']").tooltip(); + } + } + }; + sysAjax(opt); + }; + /** + * 处理错误信息 + * @param {Object} res + */ + function isError(res) { + if (res == null || res == undefined) { + return true; + } + if (res.code != '8888') { + alert('树失败') + return true; + } else { + return false; + } + }; + + Array.prototype.remove = function (val) { + var index = this.indexOf(val); + if (index > -1) { + this.splice(index, 1); + } + }; + /** + * 左侧单选按钮点击选中右侧.
      + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ + function zTreeOnCheck(event, treeId, treeNode) { + console.log('添加页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + if (treeNode.checked === true) { + arrid.push(treeNode.id); + // console.log(arrid) + $('#planstep-parkCheck').append('' + treeNode.name + '') + } else { + arrid.remove(treeNode.id); + $('.plancheck-parkCheck' + treeNode.id).remove(); + }; + + + }; + //新增 停车场树 tree + var areaTree = { + //初始化树 + initTree: function () { + $("#user_org_tree").empty(); + $.fn.zTree.init($("#user_org_tree"), areaTree.setting, areaTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.expandAll(false); + areaTree.selectedNodes(0); + }, + setting: { + view: { + selectedMulti: true //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "checkbox", + // chkStyle: "radio", + radioType: "all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + callback: { + onCheck: zTreeOnCheck + }, + edit: { + enable: false + } + }, + getNodesByParamFuzzyAll: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodes(); + for (var i = 0; i < nodes.length; i++) { + treeObj.setting.view.fontCss["color"] = '#575757'; + treeObj.updateNode(nodes[i]); + var children = nodes[i].children; + if (children != null && children != "" && children != undefined) { + for (var j = 0; j < children.length; j++) { + treeObj.setting.view.fontCss["color"] = '#575757'; + treeObj.updateNode(children[j]); + } + } + + } + }, + //根据名称模糊搜索树 + getNodesByParamFuzzy: function (name) { + areaTree.getNodesByParamFuzzyAll(); + if (name != "" && name != null) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodesByParamFuzzy("name", name, null); + if (nodes.length <= 0) { + $('#whitelist-write_rule').removeClass('display-none').text("没有搜索到停车场"); + } + for (var i = 0; i < nodes.length; i++) { + treeObj.setting.view.fontCss["color"] = '#CD0000'; + treeObj.updateNode(nodes[i]); + //获取父节点 + var parentNote = areaTree.getNodeById(nodes[i].pId); + treeObj.updateNode(parentNote); + } + } else { + $('#whitelist-write_rule').removeClass('display-none').text("没有搜索到停车场"); + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodes(); + if (nodes.length > 0) { + for (var i = 0; i < nodes.length; i++) { + treeObj.expandNode(nodes[i], false, true, true); + } + } + } + + }, + //展开某个节点 + selectedNodes: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodesByParam("id", id, null); + if (nodes.length > 0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = areaTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if (node == null) { + continue; + } + node.checked = true; + areaTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var treeNode = areaTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = areaTree.getNodeById(ids[i]); + } + return nodes; + }, + //根据id取消选/选中节点 + updateNodesForNotChecked: function (id, checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + node.checked = checked; + treeObj.updateNode(node); + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForArea: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index = 0; + for (var i = 0; i < nodes.length; i++) { + if (null != nodes[i].areaType && "70" == nodes[i].areaType) { + ids[index++] = { + areaId: nodes[i].id, + areaType: nodes[i].areaType, + plNo: nodes[i].pId, + orgAreaType: 1 + }; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names = ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names + "," + nodes[i].name; + } + return names; + }, + +//获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData: function () { + + var sysCode = sessionStorage.getItem("sysCode"); + var zNodes = []; + sysAjax({ + method: 'POST', + url: dataUrl.util.vipCardSelectParkTree(), + //data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + // console.log(res) + if (res.data != undefined && res.data != null && res.data.length == 0) { + //如果没有返回来数据 + $('#schplan_rule').removeClass('display-none').text('暂无待排班停车场!'); + } + //console.log("res.data="+res.data); + $.each(res.data, function (index, rows) { + var data = ""; + if (rows.level == "1") {//服务点 + data = { + id: rows.id, + pId: rows.parentId, + name: rows.treeName, + level: rows.level, + chkDisabled: true + }; + } else { + data = {id: rows.id, pId: rows.parentId, name: rows.treeName, level: rows.level}; + } + + zNodes[index] = data; + }); + + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + }, + + + }; + //新增树下面内容删除 + $(document).delegate('.closex', 'click', function () { + var valid = $(this).parent().attr('data-id'); + arrid.remove(valid); + $(this).parent().remove(); + //取消树的选中 + areaTree.updateNodesForNotChecked(valid, false); + }); + //新增添加 初始化 + documentBindFunc.on('click','#discountrule-addBtn',function () { + + + $("#step-three-sure").removeAttr("disabled"); + $('#planstep-parkCheck').empty(); + //新增四步曲 + // 第一步 + arrid = []; + $('#step-wrap').find('.form-step').eq(1).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(2).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(3).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(0).removeClass('display-none'); + areaTree.initTree(); + $('#discountrule_addmodel').modal('show'); + }); + // 第一步下一步 + documentBindFunc.on('click','#step-zero-next',function () { + // $('#planstep-parkCheck').find('.plancheck-parkCheck'); + if(getSelectedPlNos().length==0){ + $('#discountrule_rule').removeClass('display-none').text('至少添加一个停车场'); + return false; + } + $('#discountrule_rule').addClass('display-none').text(''); + //别的初始化ajax,比如下拉框 + objArr = [];//验证支付方式,车辆类型,终端来源 初始化 + $('#comTopbar').find('.discountrule_tit-topbar').removeClass('clickActive'); + $('#comTopbar').find('.discountrule_tit-topbar').eq(0).addClass('clickActive'); + $('#step-wrap').find('.form-step').eq(0).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(2).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(3).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(1).removeClass('display-none'); + $('#discType').selectpicker('refresh'); + + $('#step-one-disname').val('');//折扣名称初始化 + $('#discountrule_tablecon-list').empty();//第二部tablecon-list 初始化 + //生效失效初始化 + $("#timeinStartDate").val( moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#timeinEndDate").val( moment().add('months', 1).format('YYYY-MM-DD')); + $("#timeinStartDate").datetimepicker({ + startDate: moment().subtract('seconds', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + minView: "month",//设置只显示到月份 + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-left" + }).on("changeDate", function (ev) { + var startval = moment($("#timeinStartDate").val()).add('days', 0).format('YYYY-MM-DD'); + var val = moment($("#timeinStartDate").val()).add('months', 1).format('YYYY-MM-DD'); + $("#timeinEndDate").datetimepicker("setStartDate", val); + // $("#timeinEndDate").datetimepicker("setEndDate", val); + $("#timeinEndDate").val(val) + $('#timeinEndDate').datetimepicker('update'); + $("#timeinEndDate").datetimepicker({ + format: 'yyyy-mm-dd', + minView: "month",//设置只显示到月份 + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-left" + }); + });; + $("#timeinEndDate").datetimepicker({ + startDate: moment().add('months', 1).format('YYYY-MM-DD'), + //endDate: moment().subtract('days', 0).format('YYYY-MM-DD HH:ss'), + format: 'yyyy-mm-dd', + minView: "month",//设置只显示到月份 + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-left" + }); + $('#rulename_inp').val('');//规则名称初始化 + $('#disVal').val('');////折扣值初始化 + //开始时间结束时间初始化 + laydate.render({ + elem: '#startTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '00:00', + min: '00:00:00', + max: '23:59:59', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'fixed', + + }); + laydate.render({ + elem: '#endTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '23:59', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'fixed', + }); + + // $("#parkName").html($("#parkName").html()); + // $("#parkName").selectpicker("refresh");//停车场初始化 + $("#discType").html($("#discType").html()); + $("#discType").selectpicker("refresh");//折扣类型初始化 + $("#styFrom").html($("#styFrom").html()); + $("#styFrom").selectpicker("refresh");//终端来源初始化 + $("#timeLimit").html($("#timeLimit").html()); + $("#timeLimit").selectpicker("refresh");//时间限制初始化 + $("#paySty").html($("#paySty").html()); + $("#paySty").selectpicker("refresh");//支付方式初始化 + $("#carsType").html($("#carsType").html()); + $("#carsType").selectpicker("refresh");//车辆类型初始化 + $("#dateType").html($("#dateType").html()); + $("#dateType").selectpicker("refresh");//特征日初始化 + //开始结束时间初始化 + $("#startTime").val('00:00'); + $("#startTime").attr("disabled",false); + $("#endTime").val('23:59'); + $("#endTime").attr("disabled",false); + + }); + //动态设置时间限制 + documentBindFunc.on('change', '#timeLimit', function () { + var timeLimit = $("#timeLimit").val(); + if(timeLimit == 0){//没有时间限制 + $("#startTime").val('00:00'); + $("#startTime").attr("disabled",true); + $("#endTime").val('23:59'); + $("#endTime").attr("disabled",true); + } + else{ + $("#startTime").val('00:00'); + $("#startTime").attr("disabled",false); + $("#endTime").val('23:59'); + $("#endTime").attr("disabled",false); + } + }); + // 第二步上一步 + documentBindFunc.on('click','#step-one-pre',function () { + $('#comTopbar').find('.discountrule_tit-topbar').removeClass('clickActive'); + $('#comTopbar').find('.discountrule_tit-topbar').eq(0).addClass('clickActive'); + $('#step-wrap').find('.form-step').eq(1).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(0).removeClass('display-none'); + + }); + // 第二步下一步 + documentBindFunc.on('click','#step-one-next',function () { + //校验停车场是否配置折扣 + // var parkName = $('#parkName').find("option:selected").text(); //停车场 + // var parkNo = JSON.parse($('#parkName').find("option:selected").val()); //停车场编码 + // var plNo = parkNo[0].replace('"',''); + /**折扣类型*/ + var discType = $('#discType').find("option:selected").val(); + var flg = false; + var req= { + // plNo:plNo, + discType:discType, + sysCode:sysComm.sysCode + }; + var vipCardList= { + method: "post", + url: dataUrl.util.checkDiscountUniqueByPlNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + async: false, + success: function(res){ + if("8888" == res.code){ + flg=res.data; + } + } + }; + sysAjax(vipCardList); + if(flg){ + // $('#discountrule_rule').removeClass('display-none').text('停车场【'+parkName+'】已有该折扣规则,不能重复创建'); + + setTimeout(function () { + $('#discountrule_rule').addClass('display-none') + },5000); + return false; + } + //检测折扣名称是否有输入 + var steponedisname = $.trim($('#step-one-disname').val()); + if(steponedisname){ + $('#comTopbar').find('.discountrule_tit-topbar').removeClass('clickActive'); + $('#comTopbar').find('.discountrule_tit-topbar').eq(1).addClass('clickActive'); + $('#step-wrap').find('.form-step').eq(1).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(2).removeClass('display-none'); + }else{ + $('#discountrule_rule').removeClass('display-none').text('请输入折扣名称'); + + setTimeout(function () { + $('#discountrule_rule').addClass('display-none') + },2000); + }; + + }); + // 第三步上一步 + documentBindFunc.on('click','#step-two-pre',function () { + $('#comTopbar').find('.discountrule_tit-topbar').removeClass('clickActive'); + $('#comTopbar').find('.discountrule_tit-topbar').eq(0).addClass('clickActive'); + $('#step-wrap').find('.form-step').eq(2).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(0).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(1).removeClass('display-none'); + + }); + // 第三步下一步 + documentBindFunc.on('click','#step-two-next',function () { + var rulename_inp = $.trim($('#rulename_inp').val());//规则名称 + var disVal = $.trim($('#disVal').val());//折扣值 +// if(rulename_inp){ +// if(disVal){ + //alert($('#tablecon-list li').length) + if($('#discountrule_tablecon-list li').length==0){ + $('#discountrule_rule').removeClass('display-none').text('请至少添加一条数据'); + setTimeout(function () { + $('#discountrule_rule').addClass('display-none') + },2000); + + }else{ + //把数据提到第三步。 + var steponedisname = $.trim($('#step-one-disname').val());//折扣名称 + var parkName = $('#parkName').find("option:selected").text(); //停车场 + var parkNo = $('#parkName').find("option:selected").val(); //停车场编码 + /**折扣类型*/ + var discType = $('#discType').find("option:selected").val(); + var timeinStartDate = $('#timeinStartDate').val();//生效时间 + var timeinEndDate = $('#timeinEndDate').val();//失效时间 + $('#three-rulename').text(steponedisname); + $('#three-rulename').attr('title',steponedisname); + $('#three-rulepark').text(parkName); + $('#three-rulepark').attr('title',parkName); + $('#three-rulepark').attr('value',parkNo); + $('#three-rulepark').attr('discType',discType); + $('#three-effecttime').text(timeinStartDate); + $('#three-losetime').text(timeinEndDate); + $('#threetablecon-list').empty(); + $('#discountrule_tablecon-list .discountrule_tablecon-main').each(function (index,row) { + //console.log($(this).clone().prevObject.context.innerHTML) + $('#threetablecon-list').append('
    • '+ + '
        '+$(this).clone().prevObject.context.innerHTML+'
      '+ + '
    • ') + }); + //删除 + var tag = $("#threetablecon-list li ul").find("li:eq(9)"); + $.each(tag,function(index ,row){ + $(this).remove(); + + }); + $('#comTopbar').find('.discountrule_tit-topbar').removeClass('clickActive'); + $('#comTopbar').find('.discountrule_tit-topbar').eq(3).addClass('clickActive'); + $('#step-wrap').find('.form-step').eq(0).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(1).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(2).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(3).removeClass('display-none'); + } + +// }else{ +// $('#error_title').text('请输入折扣值'); +// $('#errormodel').modal('show'); +// setTimeout(function () { +// $('#errormodel').modal('hide'); +// },2000); +// } +// +// }else{ +// $('#error_title').text('请输入规则名称'); +// $('#errormodel').modal('show'); +// setTimeout(function () { +// $('#errormodel').modal('hide'); +// },2000); +// } + }); + // 第四步上一步 + documentBindFunc.on('click','#step-three-pre',function () { + $('#comTopbar').find('.discountrule_tit-topbar').removeClass('clickActive'); + $('#comTopbar').find('.discountrule_tit-topbar').eq(1).addClass('clickActive'); + $('#step-wrap').find('.form-step').eq(0).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(3).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(1).addClass('display-none'); + $('#step-wrap').find('.form-step').eq(2).removeClass('display-none'); + + }); + //第四步确定添加 + var objArr = [];//验证终端来源,支付方式 ,车辆类型是否一致 + documentBindFunc.on('click','#addtrue-btn',function () { + var rulename_inp = $.trim($('#rulename_inp').val());//规则名称 + var disVal = $.trim($('#disVal').val());//折扣值 + var styFromVal = $('#styFrom').find("option:selected").text(); //styFrom 终端来源 + var styFrom = $('#styFrom').find("option:selected").val(); //styFrom 终端来源(值) + var payStyVal = $('#paySty').find("option:selected").text();//paySty 支付方式 + var paySty = $('#paySty').find("option:selected").val();//paySty 支付方式(值) + var carsTypeVal = $('#carsType').find("option:selected").text();//车辆类型 + var carsType = $('#carsType').find("option:selected").val();//车辆类型(值) + var timeLimitVal = $('#timeLimit').find("option:selected").text();//时间限制 + var timeLimit = $('#timeLimit').find("option:selected").val();//时间限制(值) + var startTimeVal = $('#startTime').val();//开始时间 + var endTimeVal = $('#endTime').val();//结束时间 + var dateTypeVal = $('#dateType').find("option:selected").text();//特征日 + var dateType = $('#dateType').find("option:selected").val();//特征日(值) + if(rulename_inp){ + if(disVal){ + if(disVal != null && disVal !="" && disVal !=undefined && disVal<1){ + $('#discountrule_rule').removeClass('display-none').text('折扣值范围为:1-9.9'); + setTimeout(function () { + $('#discountrule_rule').addClass('display-none') + },2000); + return false; + } + var arrval = styFromVal+payStyVal+carsTypeVal; + var payType = false; + //校验支付类型不限制 + if("-1" == paySty){ + var rows = $("#discountrule_tablecon-list").find("li ul"); + if(rows.length > 0){ + $.each(rows,function(index,row){ + var td = $(this).find('li'); + var disc_terminal_res =td.eq(1).attr("value"); + if(styFrom == disc_terminal_res && carsType ==td.eq(3).attr("value")){ + payType =true; + return false; + } + }); + + } + }else{ + //如果有不限制支付方式则不容许添加 + var rows = $("#discountrule_tablecon-list").find("li ul"); + if(rows.length > 0){ + $.each(rows,function(index,row){ + var td = $(this).find('li'); + var disc_terminal_res =td.eq(1).attr("value"); + if(styFrom == disc_terminal_res && "-1" ==td.eq(2).attr("value") && carsType ==td.eq(3).attr("value")){ + payType =true; + return false; + } + }); + + } + } + if(payType){ + $('#discountrule_rule').removeClass('display-none').text('相同终端来源,支付方式="不限制"和其他支付方式不能同时选择'); + setTimeout(function () { + $('#discountrule_rule').addClass('display-none') + },5000); + return false; + } + if($.inArray(arrval, objArr)==-1){//检测是否终端来源,支付方式 ,车辆类型是否一致 + objArr.push( + arrval + ); + + $('#discountrule_tablecon-list').append('
    • '+ + '
        '+ + '
      • '+rulename_inp+'
      • '+ + '
      • '+styFromVal+'
      • '+ + '
      • '+payStyVal+'
      • '+ + '
      • '+carsTypeVal+'
      • '+ + '
      • '+disVal+'
      • '+ + '
      • '+timeLimitVal+'
      • '+ + '
      • '+startTimeVal+':00
      • '+ + '
      • '+endTimeVal+':00
      • '+ + '
      • '+dateTypeVal+'
      • '+ + '
      • 删除
      • '+ + '
      '+ + '
    • '); + }else{ + $('#discountrule_rule').removeClass('display-none').text('终端来源,支付方式 ,车辆类型不能一致'); + setTimeout(function () { + $('#discountrule_rule').addClass('display-none') + },2000); + + } + + }else{ + /*if(disVal<1){ + console.log(disVal) + $('#discountrule_rule').removeClass('display-none').text('折扣值范围为1-9.9'); + setTimeout(function () { + $('#discountrule_rule').addClass('display-none') + },2000); + }*/ + console.log(disVal) + $('#discountrule_rule').removeClass('display-none').text('请输入折扣值'); + setTimeout(function () { + $('#discountrule_rule').addClass('display-none') + },2000); + + + + + + } + }else{ + $('#discountrule_rule').removeClass('display-none').text('请输入规则名称'); + setTimeout(function () { + $('#discountrule_rule').addClass('display-none') + },2000); + + } + + }); + //第三步列表删除 + $(document).delegate('#discountrule_tablecon-list .dellist','click',function () { + var arrVal = $(this).attr('data-arr'); + objArr.removeByValue(arrVal);//删除这行包含的终端来源 支付方式 车辆来源 + $(this).parent().parent().remove(); + + }); + //数组删除制定项 + Array.prototype.removeByValue = function(val) { + for(var i=0; i'+ + '
        ' + +'
      • '+item.discRuleName+'
      • ' + +'
      • '+fun.discTerminalResFormatter(item.discTerminalRes)+'
      • ' + +'
      • '+commonObj.discPayTypeFormatter(item.discPayType)+'
      • ' + +'
      • '+commonObj.disCarTypeFormatter(item.disCarType)+'
      • ' + +'
      • '+(item.discValue)+'
      • ' + +'
      • '+fun.isTLimitFormatter(item.isTLimit)+'
      • ' + +'
      • '+fun.timeHMFormatter(item.effDate)+'
      • ' + +'
      • '+fun.timeHMFormatter(item.expDate)+'
      • ' + +'
      • '+fun.specialDayTypeFormatter(item.specialDayType)+'
      • '+ + '
      • 删除
      • ' + + +'
      '+ + + ''); + objArrEdit.push(arrval); + }); + $('#discountrule_editmodel').modal('show'); + } + } + }; + sysAjax(opt); + } + + //编辑 初始化 + var objArrEdit = [];//存储支付方式,车辆类型,终端来源 初始化 + documentBindFunc.on('click','.disCount-rule-edit',function () { + var id =$(this).attr('value'); + updateDialog(id); + }); + + //修改三部曲 + // 第一步下一步 + documentBindFunc.on('click','#step-one-nextEdit',function () { + //检测折扣名称是否有输入 + var steponedisname = $.trim($('#step-one-disnameEdit').val()); + if(steponedisname){ + $('#comTopbarEdit').find('.discountrule_tit-topbar').removeClass('clickActive'); + $('#comTopbarEdit').find('.discountrule_tit-topbar').eq(1).addClass('clickActive'); + $('#step-wrapEdit').find('.form-step').eq(0).addClass('display-none'); + $('#step-wrapEdit').find('.form-step').eq(1).removeClass('display-none'); + }else{ + $('#discountruleedit_rule').removeClass('display-none').text('请输入折扣名称'); + setTimeout(function () { + $('#discountruleedit_rule').addClass('display-none') + },2000); + + }; + }); + // 第二步上一步 + documentBindFunc.on('click','#step-two-preEdit',function () { + $('#comTopbarEdit').find('.discountrule_tit-topbar').removeClass('clickActive'); + $('#comTopbarEdit').find('.discountrule_tit-topbar').eq(0).addClass('clickActive'); + $('#step-wrapEdit').find('.form-step').eq(1).addClass('display-none'); + $('#step-wrapEdit').find('.form-step').eq(0).removeClass('display-none'); + + }); + // 第二步下一步 + documentBindFunc.on('click','#step-two-nextEdit',function () { + + var rulename_inp = $.trim($('#rulename_inpEdit').val());//规则名称 + var disVal = $.trim($('#disValEdit').val());//折扣值 +// if(rulename_inp){ +// if(disVal){ + //alert($('#tablecon-list li').length) + + if($('#tablecon-listEdit li').length==0){ + $('#discountruleedit_rule').removeClass('display-none').text('请至少添加一条数据'); + setTimeout(function () { + $('#discountruleedit_rule').addClass('display-none') + },2000); + + }else{ + + //把数据提到第三步。 + var steponedisname = $.trim($('#step-one-disnameEdit').val());//折扣名称 + var parkName = $('#parkNameEdit').val(); //停车场 + var parkNo = $('#parkNoEdit').val(); //停车场编码 + + var discType = $('#discType').val(); //停车场编码 + var timeinStartDate = $('#timeinStartDateEdit').val();//生效时间 + var timeinEndDate = $('#timeinEndDateEdit').val();//失效时间 + $('#three-rulenameEdit').text(steponedisname); + $('#three-rulenameEdit').attr('title',steponedisname); + $('#three-ruleparkEdit').text(parkName); + $('#three-ruleparkEdit').attr('title',parkName); + $('#three-ruleparkEdit').attr('value',parkNo); + $('#three-ruleparkEdit').attr('discType',discType); + $('#three-effecttimeEdit').text(timeinStartDate); + $('#three-losetimeEdit').text(timeinEndDate); + $('#threetablecon-listEdit').empty(); + $('#tablecon-listEdit .discountrule_tablecon-main').each(function () { + //console.log($(this).clone().prevObject.context.innerHTML) + $('#threetablecon-listEdit').append('
    • '+ + '
        '+$(this).clone().prevObject.context.innerHTML+'
      '+ + '
    • ') + }); + //删除删除按钮 + var tag = $("#threetablecon-listEdit li ul").find("li:eq(9)"); + $.each(tag,function(index ,row){ + $(this).remove(); + + }); + $('#comTopbarEdit').find('.discountrule_tit-topbar').removeClass('clickActive'); + $('#comTopbarEdit').find('.discountrule_tit-topbar').eq(2).addClass('clickActive'); + $('#step-wrapEdit').find('.form-step').eq(0).addClass('display-none'); + $('#step-wrapEdit').find('.form-step').eq(1).addClass('display-none'); + $('#step-wrapEdit').find('.form-step').eq(2).removeClass('display-none'); + } + +// }else{ +// $('#error_title').text('请输入折扣值'); +// $('#errormodel').modal('show'); +// setTimeout(function () { +// $('#errormodel').modal('hide'); +// },2000); +// } +// +// }else{ +// $('#error_title').text('请输入规则名称'); +// $('#errormodel').modal('show'); +// setTimeout(function () { +// $('#errormodel').modal('hide'); +// },2000); +// } + }); + // 第三步上一步 + documentBindFunc.on('click','#step-three-preEdit',function () { + $('#comTopbarEdit').find('.discountrule_tit-topbar').removeClass('clickActive'); + $('#comTopbarEdit').find('.discountrule_tit-topbar').eq(1).addClass('clickActive'); + $('#step-wrapEdit').find('.form-step').eq(0).addClass('display-none'); + $('#step-wrapEdit').find('.form-step').eq(2).addClass('display-none'); + $('#step-wrapEdit').find('.form-step').eq(1).removeClass('display-none'); + + }); + //第二部确定添加 + //验证终端来源,支付方式 ,车辆类型是否一致 + documentBindFunc.on('click','#addtrue-btnEdit',function () { + ; + var rulename_inp = $.trim($('#rulename_inpEdit').val());//规则名称 + var disVal = $.trim($('#disValEdit').val());//折扣值 + var styFromVal = $('#styFromEdit').find("option:selected").text(); //styFrom 终端来源 + var styFrom = $('#styFromEdit').find("option:selected").val(); //styFrom 终端来源(值) + var payStyVal = $('#payStyEdit').find("option:selected").text();//paySty 支付方式 + var paySty = $('#payStyEdit').find("option:selected").val();//paySty 支付方式(值) + var carsTypeVal = $('#carsTypeEdit').find("option:selected").text();//车辆类型 + var carsType = $('#carsTypeEdit').find("option:selected").val();//车辆类型(值) + var timeLimitVal = $('#timeLimitEdit').find("option:selected").text();//时间限制 + var timeLimit = $('#timeLimitEdit').find("option:selected").val();//时间限制(值) + var startTimeVal = $('#startTimeEdit').val();//开始时间 + var endTimeVal = $('#endTimeEdit').val();//结束时间 + var dateTypeVal = $('#dateTypeEdit').find("option:selected").text();//特征日 + var dateType = $('#dateTypeEdit').find("option:selected").val();//特征日(值) + //$('#tablecon-listEdit').empty(); + if(rulename_inp){ + if(disVal){ + if(disVal != null && disVal !="" && disVal !=undefined && disVal<1){ + $('#discountruleedit_rule').removeClass('display-none').text('折扣值范围为:1-9.9'); + setTimeout(function () { + $('#discountruleedit_rule').addClass('display-none') + },2000); + return false; + } + var arrval = styFromVal+payStyVal+carsTypeVal; + var payType = false; + //校验支付类型不限制 + if("-1" == paySty){ + var rows = $("#tablecon-listEdit").find("li ul"); + if(rows.length > 0){ + $.each(rows,function(index,row){ + var td = $(this).find('li'); + var disc_terminal_res =td.eq(1).attr("value"); + if(styFrom == disc_terminal_res && carsType ==td.eq(3).attr("value")){ + + payType =true; + return false; + } + }); + + } + }else{ + //如果有不限制支付方式则不容许添加 + var rows = $("#tablecon-listEdit").find("li ul"); + if(rows.length > 0){ + $.each(rows,function(index,row){ + var td = $(this).find('li'); + var disc_terminal_res =td.eq(1).attr("value"); + if(styFrom == disc_terminal_res && "-1" ==td.eq(2).attr("value") && carsType ==td.eq(3).attr("value")){ + payType =true; + return false; + + } + }); + + } + } + if(payType){ + $('#discountruleedit_rule').removeClass('display-none').text('相同终端来源,支付方式="不限制"和其他支付方式不能同时选择'); + setTimeout(function () { + $('#discountruleedit_rule').addClass('display-none') + },5000); + return false; + } + if($.inArray(arrval, objArrEdit)==-1){//检测是否终端来源,支付方式 ,车辆类型是否一致 + objArrEdit.push( + arrval + ); + var payType = false; + //校验支付类型不限制 + if("-1" == paySty){ + var rows = $("#discountrule_tablecon-list").find("li ul"); + if(rows.length > 1){ + $.each(rows,function(index,row){ + var td = $(this).find('li'); + var disc_terminal_res =td.eq(0).attr("value"); + if(styFrom == disc_terminal_res ){ + payType =true; + return false; + } + }); + + } + } + if(payType){ + $('#discountruleedit_rule').removeClass('display-none').text('相同终端来源,支付方式="不限制"和其他支付方式不能同时选择'); + setTimeout(function () { + $('#discountruleedit_rule').addClass('display-none') + },2000); + } + + $('#tablecon-listEdit').append('
    • '+ + '
        '+ + '
      • '+rulename_inp+'
      • '+ + '
      • '+styFromVal+'
      • '+ + '
      • '+payStyVal+'
      • '+ + '
      • '+carsTypeVal+'
      • '+ + '
      • '+disVal+'
      • '+ + '
      • '+timeLimitVal+'
      • '+ + '
      • '+startTimeVal+':00
      • '+ + '
      • '+endTimeVal+':00
      • '+ + '
      • '+dateTypeVal+'
      • '+ + '
      • 删除
      • '+ + '
      '+ + '
    • '); + }else{ + + $('#discountruleedit_rule').removeClass('display-none').text('终端来源,支付方式 ,车辆类型不能一致'); + setTimeout(function () { + $('#discountruleedit_rule').addClass('display-none') + },4000); + + } + + }else{ + $('#discountruleedit_rule').removeClass('display-none').text('请输入折扣值'); + setTimeout(function () { + $('#discountruleedit_rule').addClass('display-none') + },2000); + + } + }else{ + $('#discountruleedit_rule').removeClass('display-none').text('请输入规则名称'); + setTimeout(function () { + $('#discountruleedit_rule').addClass('display-none') + },2000); + + } + }); + //第二部列表删除 + $(document).delegate('#tablecon-listEdit .dellist','click',function () { + + var arrVal = $(this).attr('data-arr'); + objArrEdit.removeByValue(arrVal);//删除这行包含的终端来源 支付方式 车辆来源 + $(this).parent().parent().remove(); + + }); + + /**************特殊车辆操作**************************************************/ + //新增绑定用户弹窗 确定事件 + documentBindFunc.on('click','#disuser-add-submit',function (){ + var usercarNum=$('#usercarNum-add').val(); + var userName=$('#userName-add').val(); + var userphone=$('#userphone-add').val(); + if(usercarNum==null ||usercarNum=='' || usercarNum==undefined){ + $('#disuser-addrule').removeClass('display-none').text('车牌号不能为空'); + return false; + }else if((!/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4,6}[A-Z0-9挂学警港澳]{1}$/.test(usercarNum))){ + $('#disuser-addrule').removeClass('display-none').text('请输入正确车牌号'); + return false; + }else if(userName==null ||userName=='' || userName==undefined){ + $('#disuser-addrule').removeClass('display-none').text('姓名不能为空'); + return false; + }else if(userphone==null ||userphone=='' || userphone==undefined){ + $('#disuser-addrule').removeClass('display-none').text('手机号不能为空'); + return false; + }else if(!/^1[3|4|5|7|8]{1}\d{9}$/.test(userphone)||userphone.length!=11) { + $('#disuser-addrule').removeClass('display-none').text('请输入正确手机号'); + return; + }else{ + $('#disuser-addrule').addClass('display-none').text(''); + } + querySpecialCarValidate() + //隐藏 弹窗 + // $('#disuser-addmodel').modal('hide'); + + + }); + //新增绑定用户弹窗 继续添加事件 + documentBindFunc.on('click','#disuser-addother-submit',function (){ + console.log('继续添加事件') + var usercarNum=$('#usercarNum-add').val(); + var userName=$('#userName-add').val(); + var userphone=$('#userphone-add').val(); + if(usercarNum==null ||usercarNum=='' || usercarNum==undefined){ + $('#disuser-addrule').removeClass('display-none').text('车牌号不能为空'); + return false; + }else if((!/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4,6}[A-Z0-9挂学警港澳]{1}$/.test(usercarNum))){ + $('#disuser-addrule').removeClass('display-none').text('请输入正确车牌号'); + return false; + }else if(userName==null ||userName=='' || userName==undefined){ + $('#disuser-addrule').removeClass('display-none').text('姓名不能为空'); + return false; + }else if(userphone==null ||userphone=='' || userphone==undefined){ + $('#disuser-addrule').removeClass('display-none').text('手机号不能为空'); + return false; + }else if(!/^1[3|4|5|7|8]{1}\d{9}$/.test(userphone)||userphone.length!=11) { + $('#disuser-addrule').removeClass('display-none').text('请输入正确手机号'); + return; + }else{ + $('#disuser-addrule').addClass('display-none').text(''); + } + querySpecialCarOtherValidate(); + + + }); + + //delete 页面 + documentBindFunc.on('click','.user-delList',function (){ + operateId = $(this).attr('value'); + $('#user_deletemodel').modal('show'); + //ajax delete + }); + + //绑定特殊车辆删除 + documentBindFunc.on('click', '#disusere-delete-submit', function() { + deleteSpecialCarCommit(operateId); + }); + function addSpecialCarCommit(){ + + var plNo = $('#specialCarAdd').attr('plNo'); + var discNo = $('#specialCarAdd').attr('discNo'); + var carNumber = $('#usercarNum-add').val(); + var userName = $('#userName-add').val(); + var carType = $('#usercar-Type').find("option:selected").val(); + var userPhone = $('#userphone-add').val(); + var req={ + sysCode: sysComm.sysCode, + plNo: plNo, + discNo: discNo, + carNumber: carNumber, + userName: userName, + userPhone: userPhone, + carType: carType + } + console.log(req); + var opt = { + method: 'post', + url: dataUrl.util.insertDiscountSpecialCar(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + if (res.code == '8888') { + if (res.data) { + //关闭添加页面 + $('#disuser-addmodel').modal('hide'); + swal({title:"提示",text:"添加成功!",type:"success",timer:3000,allowOutsideClick:true}); + //初始化table + fun.createBindUserTableData(); + } + else { + console.log(res.msg); + return false; + } + } + else { + console.log(res.msg); + return; + } + } + } + }; + sysAjax(opt); + } + /**验证车牌号重复*/ + function querySpecialCarValidate(){ + + var plNo = $('#specialCarAdd').attr('plNo'); + var discNo = $('#specialCarAdd').attr('discNo'); + var carNumber = $('#usercarNum-add').val(); + var userName = $('#userName-add').val(); + var carType = $('#usercar-Type').find("option:selected").val(); + var userPhone = $('#userphone-add').val(); + var req={ + sysCode: sysComm.sysCode, + plNo: plNo, + discNo: discNo, + carNumber: carNumber, + userName: userName, + userPhone: userPhone, + carType: carType + } + console.log(req); + var opt = { + method: 'post', + url: dataUrl.util.queryDiscountSpecialCarByCarNumber(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function (res) { + console.log(res); + if (res.code == '8888') { + if (res.code == '8888') { + if (res.data.id != null) { + // swal({title:"提示",text:"车牌号重复,重新添加!",type:"success",timer:3000,allowOutsideClick:true}); + // console.log(res.msg); + // return false; + $('#disuser-addrule').removeClass('display-none').text('车牌号重复'); + return false; + }else{ + //ajax add + addSpecialCarCommit(); + } + } + else { + console.log(res.msg); + return false; + } + } + } + }; + sysAjax(opt); + } + /**验证车牌号重复*/ + function querySpecialCarOtherValidate(){ + + var plNo = $('#specialCarAdd').attr('plNo'); + var discNo = $('#specialCarAdd').attr('discNo'); + var carNumber = $('#usercarNum-add').val(); + var userName = $('#userName-add').val(); + var carType = $('#usercar-Type').find("option:selected").val(); + var userPhone = $('#userphone-add').val(); + var req={ + sysCode: sysComm.sysCode, + plNo: plNo, + discNo: discNo, + carNumber: carNumber, + userName: userName, + userPhone: userPhone, + carType: carType + } + console.log(req); + var opt = { + method: 'post', + url: dataUrl.util.queryDiscountSpecialCarByCarNumber(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function (res) { + console.log(res); + if (res.code == '8888') { + if (res.code == '8888') { + if (res.data.id != null) { + // swal({title:"提示",text:"车牌号重复,重新添加!",type:"success",timer:3000,allowOutsideClick:true}); + // console.log(res.msg); + // return false; + $('#disuser-addrule').removeClass('display-none').text('车牌号重复'); + return false; + }else{ + //ajax add + addSpecialCarOtherCommit(); + } + } + else { + console.log(res.msg); + return false; + } + } + } + }; + sysAjax(opt); + } + function addSpecialCarOtherCommit(){ + + var plNo = $('#specialCarAdd').attr('plNo'); + var discNo = $('#specialCarAdd').attr('discNo'); + var carNumber = $('#usercarNum-add').val(); + var userName = $('#userName-add').val(); + var carType = $('#usercar-Type').find("option:selected").val(); + var userPhone = $('#userphone-add').val(); + var req={ + sysCode: sysComm.sysCode, + plNo: plNo, + discNo: discNo, + carNumber: carNumber, + userName: userName, + userPhone: userPhone, + carType: carType + } + console.log(req); + var opt = { + method: 'post', + url: dataUrl.util.insertDiscountSpecialCar(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + if (res.code == '8888') { + if (res.data) { + swal({title:"提示",text:"添加成功!",type:"success",timer:3000,allowOutsideClick:true}); + //初始化table + fun.createBindUserTableData(); + } + else { + console.log(res.msg); + return false; + } + } + else { + console.log(res.msg); + return; + } + } + } + }; + sysAjax(opt); + } + function deleteSpecialCarCommit(id){ + + var req = { + sysCode: sysComm.sysCode, + id: id + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.deleteDiscountSpecialCarById(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + if (res.data) { + //关闭删除页面 + $('#user_deletemodel').modal('hide'); + swal({title:"提示",text:"删除成功!",type:"success",timer:3000,allowOutsideClick:true}); + //初始化table + fun.createBindUserTableData(); + } + else { + console.log(res.msg); + return false; + } + } + else { + console.log(res.msg); + return; + } + } + }); + + } + + + }) + (); + // //折扣验证 + $('#disVal').keyup(function () { + var obj = this; + disvalNumexj(obj); + }); + $('#disValEdit').keyup(function () { + var obj = this; + disvalNumexj(obj); + }); + function disvalNumexj(obj) { + obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符 + obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的 + //obj.value = obj.value.charAt(1).replace(/\/g,"."); + obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); + obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数 + if(obj.value.indexOf(".")< 0 && obj.value !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 + obj.value= parseFloat(obj.value); + } + if(Number(obj.value)>=10){ + obj.value = obj.value.charAt(0) + }; + } + + function clearNoNum(obj){ + obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符 + obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的 + //obj.value = obj.value.charAt(1).replace(/\/g,"."); + obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); + obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数 + if(obj.value.indexOf(".")< 0 && obj.value !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 + obj.value= parseFloat(obj.value); + } + if(Number(obj.value)>=10){ + obj.value = obj.value.charAt(0) + }; + } + + + + + + +}; +pageDiscountruleInit(); +function getQueryDisParams(){ + var plnos = JSON.parse($("#parkIds").val()); + //状态 + var discState = $("#carType").val(); + /*折扣名称*/ + var discontName = $('#discontName').val(); + discontName = discontName == null || discontName.length == 0 ? '' : discontName.trim(); + + var req = { + plNos: plnos, + discState:discState, + discName: discontName + }; + return req; +} +//点击导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#reportDisBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#reportDisBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#reportDisBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#reportDisBtn").val("导出"); + } + else { + curCount--; + $("#reportDisBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#reportDisBtn',function (){ + //获取table所有行数据 + var parkLot = $("#recordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + var req = getQueryDisParams(); + var url = dataUrl.util.exportDiscountRule() + '?plNos=' + req.plNos + '&discState=' + req.discState + '&discName=' + req.discName + '&sysCode='+sysComm.sysCode; + window.downloadFile(url); +}); + + +//返回 页面 +documentBindFunc.on('click','.backrule_btn',function (){ + $('.normal-main').removeClass('display-none'); + $('.user-main').addClass('display-none'); +}); +//新增绑定用户弹窗 +documentBindFunc.on('click','#disuser-addBtn',function (){ + $('#disuser-addmodel').modal('show'); + //初始化 + $('#disuser-addrule').addClass('display-none').text(''); + $('#usercarNum-add').val(''); + $('#userName-add').val(''); + $('#userphone-add').val(''); + $('#usercar-Type').selectpicker('refresh'); + + //ajax add + +}); + + + +// areaTree.initTree(); diff --git a/assets/pages/scripts/otherSetting/giftRule/giftrules.css b/assets/pages/scripts/otherSetting/giftRule/giftrules.css new file mode 100644 index 0000000..d277401 --- /dev/null +++ b/assets/pages/scripts/otherSetting/giftRule/giftrules.css @@ -0,0 +1,27 @@ +.ITD-form-read{ + height: 34px; + line-height: 34px; +} +.ITD-pop-wid60{ + width: 60px; + margin-left: 5px; +} +.ITD-pop-wid65{ + width: 70px; +} +.ITD-pop-wid150{ + width: 150px; +} +.ITD-park-l{ + float: left; + width: 100px; + height: 34px; + line-height: 34px; +} +.giftpop_cont{ + height: 34px; + width: 100%; +} +.msgMaxwidth{ + max-width: 300px; +} \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/giftRule/giftrules.html b/assets/pages/scripts/otherSetting/giftRule/giftrules.html new file mode 100644 index 0000000..cd19fb8 --- /dev/null +++ b/assets/pages/scripts/otherSetting/giftRule/giftrules.html @@ -0,0 +1,160 @@ +
      +
      +
      +
      +
      + 规则名称 +    + +
      +
      + +
      +
      + +
      +
      + +
      + +
      +
      +
      查询
      +
      +
      +
      +
      +
      +
      + + +
      +
      +
      +
        +
      • 详细列表
      • +
      • + + +
      • +
      +
      +
      +
      +
      + + + + + + + + diff --git a/assets/pages/scripts/otherSetting/giftRule/giftrules.js b/assets/pages/scripts/otherSetting/giftRule/giftrules.js new file mode 100644 index 0000000..8ac86ee --- /dev/null +++ b/assets/pages/scripts/otherSetting/giftRule/giftrules.js @@ -0,0 +1,797 @@ +/* +* Created by chenbiao on 18/11/21. +* */ +//赠送范围 101:停车支付,103:停车补缴,104:共享车位;201:余额充值,202:押金充值;301:会员卡购买,302:会员卡续费,901:首次登录*/ +var giftArea ={"901":"注册APP","902":"每日签到",'101':'停车支付','103':'停车补缴','201':'余额充值', + '202':'押金充值','301':'会员卡购买','302':'会员卡续费'}; +//赠送形式 10-赠送金额,20-赠送积分,30-赠送优惠券,40-赠送代金券 +var giftState ={"20":"积分","10":"金额","30":"优惠券","40":"代金券"}; +//状态 +// var giftType ={"ALL":"所有状态","1":"生效中","0":"已失效","2":"未生效"}; +var fun={ + init:function () { + // 初始化 + $('#giftruleName').val(''); + //赠送范围 + fun.giftareaQueryInit('#giftrulecoupons_area'); + //赠送形式 + fun.giftstateQueryInit("#giftruleard_state"); + + //状态 + var typehtml =""; + typehtml +=""; + typehtml +=""; + typehtml +=""; + typehtml +=""; + $("#giftrulecard_type").empty(); + $("#giftrulecard_type").append(typehtml); + $('#giftrulecard_type').selectpicker('refresh'); + //table + fun.createTableData(); + //新增初始化化 + fun.addGiftruleFun(); + fun.addSelectChange(); + //删除初始化 + fun.deletePopfun(); + }, + //赠送范围初始化 + giftareaInit:function (id) { + //初始化卡类型下拉框 + var giftAreaSelect=""; + $.each(giftArea, function(index,row) { + //默认选中注册 + if(index == '901'){ + giftAreaSelect+=''; + }else{ + giftAreaSelect+=''; + } + }); + $(id).empty(); + $(id).append(giftAreaSelect); + $(id).selectpicker('refresh'); + }, + //赠送范围初始化 + giftareaQueryInit:function (id) { + //初始化卡类型下拉框 + var giftAreaSelect=""; + var giftAreas=[]; + $.each(giftArea, function(index,row) { + giftAreas.push(index); + giftAreaSelect+=""; + }); + var giftAreasStr = JSON.stringify(giftAreas); + giftAreaSelect = ''+giftAreaSelect; + $(id).empty(); + $(id).append(giftAreaSelect); + $(id).selectpicker('refresh'); + }, + //赠送形式初始化 + giftstateInit:function (giftrule_state_id,giftrule_area_id) { + var giftArea=$(giftrule_area_id).find('option:selected').val(); + //根据适用业务,过滤赠送形式 + if(giftArea==901 ){//注册APP,都可以赠送 + giftState ={"20":"积分","10":"金额","30":"优惠券","40":"代金券"}; + }else if(giftArea == 201){//余额充值,只能赠积分和金额 + giftState ={"20":"积分","10":"金额","30":"优惠券"}; + }else{ + giftState ={"20":"积分"}; + } + //初始化卡类型下拉框 + var giftStateSelect=""; + $.each(giftState, function(index,row) { + //默认选中赠送积分 + if(index == "20"){ + giftStateSelect+=''; + }else{ + giftStateSelect+=''; + } + }); + $(giftrule_state_id).empty(); + $(giftrule_state_id).append(giftStateSelect); + $(giftrule_state_id).selectpicker('refresh'); + }, + //赠送形式初始化 + giftstateQueryInit:function (giftrule_state_id) { + //初始化卡类型下拉框 + var giftStateSelect=""; + var giftStates=[]; + $.each(giftState, function(index,row) { + giftStates.push(index); + giftStateSelect+=""; + }); + var giftStatesStr = JSON.stringify(giftStates); + giftStateSelect = ''+giftStateSelect; + $(giftrule_state_id).empty(); + $(giftrule_state_id).append(giftStateSelect); + $(giftrule_state_id).selectpicker('refresh'); + }, + //默认table + createTableData: function() { + $('#giftruleTable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + showColumns: false, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'ruleName', + title: '规则名称', + width: '10%', + align: 'left' + }, + { + field: 'presentSourceDetailType', + title: '类型', + width: '5%', + align: 'left', + formatter:function(value,row,index){ + return fun.matchTypeFormatter(value)+"-送"+fun.presentTypeFormatter(row.presentType); + } + }, + + { + field: 'desc', + title: '描述', + width: '10%', + align: 'left', + formatter:function(value,row,index){ + var msgStr='
      ' + commonObj.replacenull(fun.detailFun(row)) + '
      '; + return msgStr; + } + }, + { + field: 'beginTime', + title: '规则生失效时间', + width: '10%', + align: 'left', + formatter:function(value,row,index){ + return commonObj.timeOneFormatter(value)+" 至 "+ commonObj.timeOneFormatter(row.endTime); + } + }, + { + field: 'dataState', + title: '状态', + width: '8%', + align: 'left', + formatter: function(value, row, index){ + // + if(new Date(row.endTime).getTime() >= new Date().getTime() && value ==1 && new Date(row.beginTime).getTime() <= new Date().getTime()){ + return '生效中'; + }else if(new Date(row.beginTime).getTime() >= new Date().getTime() && value ==1){ + return '未生效'; + }else{ + return '已失效'; + } + } + }, + { + field: 'oper', + title: '操作', + width: '15%', + align: 'left', + formatter: function(value, row, index) { + var html = ''; + if (new Date(row.endTime).getTime() >= new Date().getTime() && row.dataState== 1) { + html += "删除"; + } else { + html += ""; + }//详情 + return html; + + } + }, + ] + }); + + }, + detailFun:function(data){ + var result=""; + if(data.presentSourceDetailType == 101 || data.presentSourceDetailType == 103 || data.presentSourceDetailType == 202 + || data.presentSourceDetailType == 301 || data.presentSourceDetailType == 302){ + result+="支付"; + result+=commonObj.moneyFormatter(data.fullCutValue); + result+="元"; + }else if(data.presentSourceDetailType == 201){ + result+="充"; + result+=commonObj.moneyFormatter(data.fullCutValue); + result+="元"; + } + if(data.presentType == 10){//金额 + if(data.presentRuleType == 10){//固定 + result+="送"; + result+=commonObj.moneyFormatter(data.presentValue); + result+="元"; + }else if(data.presentRuleType == 20){//随机 + result+="随机送0元至"; + result+=commonObj.moneyFormatter(data.presentValue); + result+="元"; + } + }else if(data.presentType == 20){//积分 + if(data.presentRuleType == 10){//固定 + result+="送"; + result+=commonObj.numberFormatter(data.presentValue); + result+="积分"; + }else if(data.presentRuleType == 20){//随机 + result+="随机送1至"; + result+=commonObj.numberFormatter(data.presentValue); + result+="积分"; + } + }else if(data.presentType == 30){//优惠券 + if(data.presentRuleType == 10){//固定 + result+="送“"+commonObj.replacenull(data.ruleRemarks)+"”优惠券"; + result+=commonObj.numberFormatter(data.presentValue); + result+="张"; + }else if(data.presentRuleType == 20){//随机 + result+="随机送“"+commonObj.replacenull(data.ruleRemarks)+"”优惠券1至"; + result+=commonObj.numberFormatter(data.presentValue); + result+="张"; + } + }else if(data.presentType == 40){//代金券 + if(data.presentRuleType == 10){//固定 + result+="送“"+commonObj.replacenull(data.ruleRemarks)+"”代金券"; + result+=commonObj.numberFormatter(data.presentValue); + result+="张"; + }else if(data.presentRuleType == 20){//随机 + result+="随机送“"+commonObj.replacenull(data.ruleRemarks)+"”代金券1至"; + result+=commonObj.numberFormatter(data.presentValue); + result+="张"; + } + } + result+="。赠送后"; + if(data.expiryType == 10){//固定时间失效 + result+=commonObj.timeOneFormatter(data.expiryTime); + result+="失效"; + }else if(data.expiryType == 30){//永久有效 + result+="永久有效"; + } + return result; + }, + matchTypeFormatter:function(value){ + var result = '未知'; + $.each(giftArea, function(index,item) { + if(index == value){ + result = item; + } + }); + return result; + }, + presentTypeFormatter:function(value){ + var result = '未知'; + $.each(giftState, function(index,item) { + if(index == value){ + result = item; + } + }); + return result; + }, + /*获取查询参数*/ + getQueryParam: function() { + //规则名称 + var giftruleName = $("#giftruleName").val(); + /*赠送范围*/ + var giftrulecouponsArea = $("#giftrulecoupons_area").val(); + //赠送形式 + var giftruleardState = $("#giftruleard_state").val(); + //状态 + var state = $("#giftrulecard_type").val(); + if(giftrulecouponsArea == null || giftrulecouponsArea == "ALL" || giftrulecouponsArea == ''){ + giftrulecouponsArea = null; + }if(giftruleardState == null || giftruleardState == "ALL" || giftruleardState == ''){ + giftruleardState = null; + }if(state == null || state == "ALL" || state == ''){ + state = null; + } + var req = { + ruleName:giftruleName, + presentSourceDetailTypes: JSON.parse(giftrulecouponsArea), + presentTypes: JSON.parse(giftruleardState), + state:state, + sysCode:sysComm.sysCode, + }; + return req; + }, + // 新增 + addGiftruleFun:function () { + documentBindFunc.on('click','#giftrule_addBtn',function () { + + //赠送范围 + fun.giftareaInit('#giftrule_addarea'); + //赠送形式 + fun.giftstateInit('#giftrule_addstate','#giftrule_addarea'); + fun.addSelectChange(); + //初始化 + $("#td_rule_add").addClass('display-none').text(""); + $('#rulename_inpadd').val(''); + $('#gift_typeNumadd').selectpicker('refresh'); + $('#gift_yhqstatusadd').selectpicker('refresh'); + $('#giftrule_expirytype').selectpicker('refresh'); + $('#giftjfVal').val(''); + $('#giftMoneyVal').val(''); + //时间初始化 + $("#giftrule-daterange-btnstaadd").val( moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#giftrule-daterange-btnendadd").val( moment().subtract('days', -365).format('YYYY-MM-DD')); + $("#giftrule-daterange-btnEnd").val( moment().subtract('days', -365).format('YYYY-MM-DD')); + + $("#giftrule-daterange-btnstaadd").datetimepicker({ + startDate: moment().add('days', 0).format('YYYY-MM-DD'), + //endDate: moment().subtract('days', 0).format('YYYY-MM-DD HH:ss'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left", + }); + $("#giftrule-daterange-btnendadd").datetimepicker({ + startDate: moment().add('days', 0).format('YYYY-MM-DD'), + //endDate: moment().subtract('days', 0).format('YYYY-MM-DD HH:ss'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left", + }); + $("#giftrule-daterange-btnEnd").datetimepicker({ + startDate: moment().add('days', 1).format('YYYY-MM-DD'), + //endDate: moment().subtract('days', 0).format('YYYY-MM-DD HH:ss'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left", + }); + + //显示 + $('#giftrule_addmodel').modal('show'); + }); + + }, + //下拉框change + addSelectChange:function () { + var giftArea; + var giftState; + var rulehtml=''; + //查询条件 +// $(document).on('change','#giftrulecoupons_area',function(){ +// //赠送形式 +// fun.giftstateInit('#giftruleard_state','#giftrulecoupons_area') +// }); + //新增界面 + $(document).on('change','#giftrule_addarea',function() { + //赠送形式 + fun.giftstateInit("#giftrule_addstate", '#giftrule_addarea'); + addstateChange(); + }); + addstateChange(); + //赠送形式变化 + $(document).on('change','#giftrule_addstate',addstateChange); + + //过期类型变化 + $(document).on('change','#giftrule_expirytype',expiryChange); + + + + function addstateChange(){ + $("#td_rule_add").addClass('display-none').text(""); + giftArea=$('#giftrule_addarea').find('option:selected').val(); + giftState=$('#giftrule_addstate').find('option:selected').val(); + console.log(giftArea,giftState); + // $('.giftpop_cont').empty(); + //注册、签到送积分 + if((giftArea==901 || giftArea==902) && giftState==20){ + rulehtml='
    • ' + + ' ' + + '  积分' + + '
    • '; + $('.giftpop_cont').html(rulehtml); + $('#gift_typeNumadd').selectpicker('refresh'); + $('#giftjfVal').val(''); + }else if(giftArea == 901 && giftState==10) {//注册送金额 + rulehtml = '
    • \n' + + ' \n' + + '  元' + + '
    • '; + $('.giftpop_cont').html(rulehtml); + $('#gift_typeNumadd').selectpicker('refresh'); + $('#giftjfVal').val(''); + }else if(giftArea == 201){//余额充值 + var unit = '元'; + if(giftState==20){ + unit = '积分'; + }else if(giftState == 30){ + unit = '张'; + } + rulehtml='
    • ' + + '充值 元' + + '赠送'; + if(giftState == 30){ + rulehtml+='' ; + fun.initCardInfo(giftState); + $('#gift_yhqstatusadd').selectpicker('refresh'); + + } + rulehtml+= + ' ' + + '  ' +unit + '
    • '; + $('.giftpop_cont').html(rulehtml); + $('#gift_typeNumadd').selectpicker('refresh'); + + $('#giftjfVal').val(''); + $('#giftMoneyVal').selectpicker('refresh'); + }else if(giftArea!=901 && giftArea!=902 && giftArea!=201 && giftState==20){//其他类型的积分赠送 + rulehtml='
    • ' + + ' 支付 元,\n' + + ' 赠送' + + ' ' + + '  积分' + + '(例:支付5元送1积分,则10元送2积分)
    • '; + $('.giftpop_cont').html(rulehtml); + $('#gift_typeNumadd').selectpicker('refresh'); + $('#giftjfVal').val(''); + $('#giftMoneyVal').val(''); + }else if(giftState==30){//优惠券赠送 + rulehtml='
    • \n' + + ' ' + + ' \n' + + '  张' + + '
    • '; + $('.giftpop_cont').html(rulehtml); + $('#gift_typeNumadd').selectpicker('refresh'); + fun.initCardInfo(giftState); + $('#gift_yhqstatusadd').selectpicker('refresh'); + $('#giftjfVal').val(''); + }else if(giftState==40){//代价券目前业务要求固定1张 + rulehtml='
    • \n' + + ' ' + + ' ' + + '  1 张' + + '
    • '; + $('.giftpop_cont').html(rulehtml); + $('#gift_typeNumadd').selectpicker('refresh'); + fun.initCardInfo(giftState); + $('#gift_yhqstatusadd').selectpicker('refresh'); + $('#giftjfVal').val(''); + }; + //赠送后过期类型,默认永久有效,只有代金券和优惠券可选择过期失效 + var expiryType = {'30':'永久有效'}; + if(giftState == 30 || giftState == 40){ + expiryType = {"10":'过期失效','30':'永久有效'}; + } + var expiryTypeSelect=""; + $.each(expiryType, function(index,row) { + expiryTypeSelect+=''; + }); + $('#giftrule_expirytype').empty(); + $('#giftrule_expirytype').append(expiryTypeSelect); + $('#giftrule_expirytype').selectpicker('refresh'); + + expiryChange(); + + } + function expiryChange(){ + var expiryType = $('#giftrule_expirytype').find('option:selected').val(); + if(expiryType==30){ + $('#expiryTimeDiv').addClass('display-none'); + }else{ + $('#expiryTimeDiv').removeClass('display-none'); + } + } + + }, + //查询优惠券、代金券 + initCardInfo:function (type) { + var cardNames = "优惠券"; + var cardType = -1; + if(type == 30 ){//优惠券 + cardNames = "优惠券"; + cardType = 1; + } + if(type == 40 ){//代金券 + cardNames = "代金券"; + cardType = 4; + } + var req = { + dataState:1, + cardTypes:[cardType], + receiveChannels:[3],//领取渠道:1:app自动下发,2:商城兑换,3-赠送使用 + sysCode:sysComm.sysCode + }; + var opt = { + method: 'post', + url: dataUrl.util.queryCouponRuleForpage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data.rows; + if(data == undefined || data == null || data.length<1){ + $("#td_rule_add").removeClass('display-none').text("请先添加相关"+cardNames); + } + var html = ''; + $.each(data, function(index,item) { + html+=''; + }); + $('#gift_yhqstatusadd').html(html); + $('#gift_yhqstatusadd').selectpicker('refresh'); + }else{ + console.log(res); + } + } + }; + sysAjax(opt); + }, + //删除弹窗 + deletePopfun:function () { + documentBindFunc.on('click','.delPop',function () { + $('#giftrule_deletemodel').modal('show'); + var id = $(this).attr('value'); + $('#delcoupId').val(id); + }) + }, + //删除确定 + deleteConfirm:function () { + var id = $('#delcoupId').val(); + if(id == null || id== "" ){ + return; + } + var req = { + ids:[id], + sysCode:sysComm.sysCode + }; + var opt = { + method: 'post', + url: dataUrl.util.bathDeleteTdCPresentRule(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + $('#giftrule_deletemodel').modal('hide'); + fun.createTableData(); + }else{ + console.log(res); + } + } + }; + sysAjax(opt); + }, + //新增确定 giftsetting-add-submit + addConfirm:function () { + //正整数 + var RegVal = /^\+?[1-9][0-9]*$/; + var ruleName = $.trim($('#rulename_inpadd').val()); + var presentSourceDetailType = $.trim($('#giftrule_addarea').val()); + var presentType = $.trim($('#giftrule_addstate').val()); + var presentRuleType = $.trim($('#gift_typeNumadd').val()); + var fullCutValue = $.trim($('#giftMoneyVal').val()); + var presentValue = $.trim($('#giftjfVal').val()); + var expiryType = $.trim($('#giftrule_expirytype').val()); + var expiryTime = $.trim($('#giftrule-daterange-btnEnd').val()); + var ruleRemarks = null; + if(expiryTime != null && expiryTime != ''){ + expiryTime += " 23:59:59"; + expiryTime = new Date(expiryTime); + } + + var beginTime = $('#giftrule-daterange-btnstaadd').val(); + if(beginTime != null && beginTime != ''){ + beginTime += " 00:00:00"; + beginTime = new Date(beginTime); + } + var endTime = $('#giftrule-daterange-btnendadd').val(); + if(endTime != null && endTime != ''){ + endTime += " 23:59:59"; + endTime = new Date(endTime); + } + var cardNo = null; + if(ruleName == null || ruleName== "" ){ + $("#td_rule_add").removeClass('display-none').text("请输入规则名称"); + return; + } + if(presentType == 30 || presentType == 40){//如果为优惠券或者代金券 + cardNo = $("#gift_yhqstatusadd").val(); + ruleRemarks = $("#gift_yhqstatusadd").find('option:selected').text(); + } + if(presentType == 30 ){//如果为优惠券 + if(cardNo == undefined || cardNo == null || cardNo == ''){ + $("#td_rule_add").removeClass('display-none').text("请先添加相关优惠券"); + return; + } + } + if(presentType == 40){//如果为代金券 + presentValue=1; + if(cardNo == undefined || cardNo == null || cardNo == ''){ + $("#td_rule_add").removeClass('display-none').text("请先添加相关代金券"); + return; + } + } + if(presentSourceDetailType == 101 || presentSourceDetailType == 103 || presentSourceDetailType == 201 + ||presentSourceDetailType == 202 ||presentSourceDetailType == 301 || presentSourceDetailType == 302){//如果为金额充值 + if(fullCutValue == undefined || fullCutValue == null || fullCutValue == ''){ + $("#td_rule_add").removeClass('display-none').text("请输入支付金额"); + return; + } + if(fullCutValue<=0){ + $("#td_rule_add").removeClass('display-none').text("金额请输入大于0的数字"); + return; + } + fullCutValue = fullCutValue*100;//充值金额 + } + if(presentSourceDetailType == 901&&presentType == 10){ + if(presentValue == undefined || presentValue == null || presentValue == ''||presentValue == '0'||presentValue == 0){ + $("#td_rule_add").removeClass('display-none').text("赠送金额不能为空或0"); + return; + } + } + + if(presentValue == null || presentValue== "" ){ + var str = "金额"; + if(presentType == 20){ + str = "积分"; + }else if(presentType == 30){ + str = "优惠券张数"; + }else if(presentType == 40){ + str = "代金券张数"; + } + $("#td_rule_add").removeClass('display-none').text("请输入赠送"+str); + return; + } + + if(presentType == 10){//如果为金额 + presentValue = presentValue*100; + + } + if(presentType == 20) {//如果为积分 + if(presentValue<=0){ + $("#td_rule_add").removeClass('display-none').text("积分请输入大于0的数字"); + return; + } + if(!RegVal.test(presentValue)){ + $("#td_rule_add").removeClass('display-none').text("积分请输入正整数"); + return; + } + } + if(presentType == 40){//如果为代金券 + presentValue = 1;//赠送张数固定为1张 + } + if(presentType == 30 || presentType == 40){//如果为优惠券或者代金券 + if(presentValue<=0){ + $("#td_rule_add").removeClass('display-none').text("张数请输入大于0的数字"); + return; + } + if(!RegVal.test(presentValue)){ + $("#td_rule_add").removeClass('display-none').text("优惠券请输入正整数"); + return; + } + cardNo = $("#gift_yhqstatusadd").val(); + ruleRemarks = $("#gift_yhqstatusadd").find('option:selected').text(); + } + + + + var presentSourceBigType = presentSourceDetailType.substr(0,1); + presentSourceBigType = presentSourceBigType+"00"; + var req = { + ruleName:ruleName, + presentType:presentType,/**赠送类型 :10-赠送金额,20-赠送积分,30-赠送优惠券,40-赠送代金券*/ + presentRuleType:presentRuleType,/**赠送规则类型:10-固定值,20-随机值(present_value保存的是最大值)*/ + presentValue:presentValue,/**赠送值:金额(如:100,单位分),积分(如:1),优惠券/代金券(张数)*/ + fullCutValue:fullCutValue,/**满送金额(分),例如满5元送1积分,-1表示不限制,直接送*/ + expiryType:expiryType,/**过期类型:10-固定时间,20-动态计算 30-不过期*/ + expiryTime:expiryTime, /**过期时间,过期类型为10时必填*/ + validDays:0,/**使用天数(领取后)* expiryType为动态计算时 才有值,默认为0 */ + presentSourceBigType:presentSourceBigType, /**赠送来源类型:100:停车赠送 200:充值赠送 300:会员卡赠送 900:其他赠送*/ + presentSourceDetailType:presentSourceDetailType, /**赠送来源明细类型:101:停车支付,103:停车补缴,104:共享车位;201:余额充值,202:押金充值;301:会员卡购买,302:会员卡续费,901:首次登录*/ + cardNo:cardNo, /**针对优惠券和代金券,卡券编号*/ + beginTime:beginTime, /**该规则生效时间*/ + endTime:endTime, /**该规则失效时间*/ + ruleState:1, /**赠送规则状态:1、上架;2、下架*/ + ruleRemarks:ruleRemarks, + sysCode:sysComm.sysCode + }; + var opt = { + method: 'post', + url: dataUrl.util.saveTdCPresentRule(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + $('#giftrule_addmodel').modal('hide'); + $("#td_rule_add").addClass('display-none').text(""); + fun.createTableData(); + }else{ + $("#td_rule_add").removeClass('display-none').text(res.msg); + console.log(res); + } + } + }; + sysAjax(opt); + }, +}; +fun.init(); +documentBindFunc.on('click','#giftrule_queryBtn',function () { + fun.createTableData(); +}); +documentBindFunc.on('click','#giftrule_submit',function () { + fun.deleteConfirm(); +}); +//新增确定 +documentBindFunc.on('click','#giftsetting-add-submit',function () { + fun.addConfirm(); +}); +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryTdCPresentRuleForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + } + } + }; + sysAjax(opt); +} diff --git a/assets/pages/scripts/otherSetting/img/Lineright-icon.png b/assets/pages/scripts/otherSetting/img/Lineright-icon.png new file mode 100644 index 0000000..010e2ae Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/Lineright-icon.png differ diff --git a/assets/pages/scripts/otherSetting/img/bgBlue-icon.png b/assets/pages/scripts/otherSetting/img/bgBlue-icon.png new file mode 100644 index 0000000..1a17067 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/bgBlue-icon.png differ diff --git a/assets/pages/scripts/otherSetting/img/bgGray-icon.png b/assets/pages/scripts/otherSetting/img/bgGray-icon.png new file mode 100644 index 0000000..bbbe22e Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/bgGray-icon.png differ diff --git a/assets/pages/scripts/otherSetting/img/car-bg.png b/assets/pages/scripts/otherSetting/img/car-bg.png new file mode 100755 index 0000000..4ca3719 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/car-bg.png differ diff --git a/assets/pages/scripts/otherSetting/img/carBig-icon.png b/assets/pages/scripts/otherSetting/img/carBig-icon.png new file mode 100644 index 0000000..dff430d Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/carBig-icon.png differ diff --git a/assets/pages/scripts/otherSetting/img/carSmall-icon.png b/assets/pages/scripts/otherSetting/img/carSmall-icon.png new file mode 100644 index 0000000..177889c Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/carSmall-icon.png differ diff --git a/assets/pages/scripts/otherSetting/img/chargingrule-circle-blue.png b/assets/pages/scripts/otherSetting/img/chargingrule-circle-blue.png new file mode 100644 index 0000000..c8354ee Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/chargingrule-circle-blue.png differ diff --git a/assets/pages/scripts/otherSetting/img/chargingrule-circle-green.png b/assets/pages/scripts/otherSetting/img/chargingrule-circle-green.png new file mode 100644 index 0000000..eba108e Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/chargingrule-circle-green.png differ diff --git a/assets/pages/scripts/otherSetting/img/chargingrule-circle-yellow.png b/assets/pages/scripts/otherSetting/img/chargingrule-circle-yellow.png new file mode 100644 index 0000000..fe4acfa Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/chargingrule-circle-yellow.png differ diff --git a/assets/pages/scripts/otherSetting/img/chargingrule-more.png b/assets/pages/scripts/otherSetting/img/chargingrule-more.png new file mode 100644 index 0000000..467bee7 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/chargingrule-more.png differ diff --git a/assets/pages/scripts/otherSetting/img/chargingrule-time.png b/assets/pages/scripts/otherSetting/img/chargingrule-time.png new file mode 100644 index 0000000..ff39533 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/chargingrule-time.png differ diff --git a/assets/pages/scripts/otherSetting/img/chargingrule_smallIcon.png b/assets/pages/scripts/otherSetting/img/chargingrule_smallIcon.png new file mode 100644 index 0000000..78379b6 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/chargingrule_smallIcon.png differ diff --git a/assets/pages/scripts/otherSetting/img/dataicon.png b/assets/pages/scripts/otherSetting/img/dataicon.png new file mode 100644 index 0000000..b04bfc8 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/dataicon.png differ diff --git a/assets/pages/scripts/otherSetting/img/day-iconbg.png b/assets/pages/scripts/otherSetting/img/day-iconbg.png new file mode 100644 index 0000000..ffd131d Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/day-iconbg.png differ diff --git a/assets/pages/scripts/otherSetting/img/delList-icon.png b/assets/pages/scripts/otherSetting/img/delList-icon.png new file mode 100644 index 0000000..a7060a3 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/delList-icon.png differ diff --git a/assets/pages/scripts/otherSetting/img/delete_Rule.png b/assets/pages/scripts/otherSetting/img/delete_Rule.png new file mode 100644 index 0000000..aa416f0 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/delete_Rule.png differ diff --git a/assets/pages/scripts/otherSetting/img/discountrule_bgIco.png b/assets/pages/scripts/otherSetting/img/discountrule_bgIco.png new file mode 100644 index 0000000..3527e1e Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/discountrule_bgIco.png differ diff --git a/assets/pages/scripts/otherSetting/img/discountrule_topBgico.png b/assets/pages/scripts/otherSetting/img/discountrule_topBgico.png new file mode 100644 index 0000000..912196a Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/discountrule_topBgico.png differ diff --git a/assets/pages/scripts/otherSetting/img/find_icon.png b/assets/pages/scripts/otherSetting/img/find_icon.png new file mode 100644 index 0000000..e3b88d2 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/find_icon.png differ diff --git a/assets/pages/scripts/otherSetting/img/input-checkbox.png b/assets/pages/scripts/otherSetting/img/input-checkbox.png new file mode 100644 index 0000000..27709ab Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/input-checkbox.png differ diff --git a/assets/pages/scripts/otherSetting/img/input-checkexActive.png b/assets/pages/scripts/otherSetting/img/input-checkexActive.png new file mode 100644 index 0000000..2e44210 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/input-checkexActive.png differ diff --git a/assets/pages/scripts/otherSetting/img/input-radio-active.png b/assets/pages/scripts/otherSetting/img/input-radio-active.png new file mode 100644 index 0000000..2649720 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/input-radio-active.png differ diff --git a/assets/pages/scripts/otherSetting/img/input-radio.png b/assets/pages/scripts/otherSetting/img/input-radio.png new file mode 100644 index 0000000..35e0b1b Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/input-radio.png differ diff --git a/assets/pages/scripts/otherSetting/img/left-modal-bg.png b/assets/pages/scripts/otherSetting/img/left-modal-bg.png new file mode 100644 index 0000000..dad68c7 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/left-modal-bg.png differ diff --git a/assets/pages/scripts/otherSetting/img/left-type-2.png b/assets/pages/scripts/otherSetting/img/left-type-2.png new file mode 100644 index 0000000..362b78a Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/left-type-2.png differ diff --git a/assets/pages/scripts/otherSetting/img/left-type.png b/assets/pages/scripts/otherSetting/img/left-type.png new file mode 100644 index 0000000..1d79b80 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/left-type.png differ diff --git a/assets/pages/scripts/otherSetting/img/night-iconbg.png b/assets/pages/scripts/otherSetting/img/night-iconbg.png new file mode 100644 index 0000000..f13bc21 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/night-iconbg.png differ diff --git a/assets/pages/scripts/otherSetting/img/park_yhq.png b/assets/pages/scripts/otherSetting/img/park_yhq.png new file mode 100644 index 0000000..3078ce7 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/park_yhq.png differ diff --git a/assets/pages/scripts/otherSetting/img/parkclose_icon.png b/assets/pages/scripts/otherSetting/img/parkclose_icon.png new file mode 100644 index 0000000..61e4a24 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/parkclose_icon.png differ diff --git a/assets/pages/scripts/otherSetting/img/popParknullIco.png b/assets/pages/scripts/otherSetting/img/popParknullIco.png new file mode 100644 index 0000000..6efd454 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/popParknullIco.png differ diff --git a/assets/pages/scripts/otherSetting/img/truelist-blue.png b/assets/pages/scripts/otherSetting/img/truelist-blue.png new file mode 100644 index 0000000..49ed84b Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/truelist-blue.png differ diff --git a/assets/pages/scripts/otherSetting/img/truelist-green.png b/assets/pages/scripts/otherSetting/img/truelist-green.png new file mode 100644 index 0000000..13a160e Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/truelist-green.png differ diff --git a/assets/pages/scripts/otherSetting/img/truelist-orange.png b/assets/pages/scripts/otherSetting/img/truelist-orange.png new file mode 100644 index 0000000..01d41f5 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/truelist-orange.png differ diff --git a/assets/pages/scripts/otherSetting/img/vipcardrule-1.png b/assets/pages/scripts/otherSetting/img/vipcardrule-1.png new file mode 100644 index 0000000..2f952ee Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/vipcardrule-1.png differ diff --git a/assets/pages/scripts/otherSetting/img/vipcardrule-2.png b/assets/pages/scripts/otherSetting/img/vipcardrule-2.png new file mode 100644 index 0000000..bb1fdfc Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/vipcardrule-2.png differ diff --git a/assets/pages/scripts/otherSetting/img/vipcardrule-3.png b/assets/pages/scripts/otherSetting/img/vipcardrule-3.png new file mode 100644 index 0000000..bb1fdfc Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/vipcardrule-3.png differ diff --git a/assets/pages/scripts/otherSetting/img/vipcardrule-blue.png b/assets/pages/scripts/otherSetting/img/vipcardrule-blue.png new file mode 100644 index 0000000..d32b586 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/vipcardrule-blue.png differ diff --git a/assets/pages/scripts/otherSetting/img/vipcardrule-edit-1.png b/assets/pages/scripts/otherSetting/img/vipcardrule-edit-1.png new file mode 100644 index 0000000..00cf034 Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/vipcardrule-edit-1.png differ diff --git a/assets/pages/scripts/otherSetting/img/vipcardrule-edit-2.png b/assets/pages/scripts/otherSetting/img/vipcardrule-edit-2.png new file mode 100644 index 0000000..bc77cca Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/vipcardrule-edit-2.png differ diff --git a/assets/pages/scripts/otherSetting/img/vipcardrule-edit-3.png b/assets/pages/scripts/otherSetting/img/vipcardrule-edit-3.png new file mode 100644 index 0000000..bc77cca Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/vipcardrule-edit-3.png differ diff --git a/assets/pages/scripts/otherSetting/img/vipcardrule-green.png b/assets/pages/scripts/otherSetting/img/vipcardrule-green.png new file mode 100644 index 0000000..d2af31e Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/vipcardrule-green.png differ diff --git a/assets/pages/scripts/otherSetting/img/vipcardrule-red.png b/assets/pages/scripts/otherSetting/img/vipcardrule-red.png new file mode 100644 index 0000000..2139cce Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/vipcardrule-red.png differ diff --git a/assets/pages/scripts/otherSetting/img/vipcardrule-yellow.png b/assets/pages/scripts/otherSetting/img/vipcardrule-yellow.png new file mode 100644 index 0000000..c34267c Binary files /dev/null and b/assets/pages/scripts/otherSetting/img/vipcardrule-yellow.png differ diff --git a/assets/pages/scripts/otherSetting/othersetTmp.js b/assets/pages/scripts/otherSetting/othersetTmp.js new file mode 100644 index 0000000..f26499c --- /dev/null +++ b/assets/pages/scripts/otherSetting/othersetTmp.js @@ -0,0 +1,88 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
      '+urlarr[i].name+'
      ' + }else{ + _html += '
    • '+urlarr[i].name+'
    • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/discountrule', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/otherSetting/disCount/discountrule.css'); + res.load('../../assets/pages/scripts/otherSetting/disCount/discountrule.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-discountrule').addClass('ITD-topbar-clickactive'); +}); +R.route('/whitelist', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/otherSetting/whiteList/whitelist.css'); + res.load('../../assets/pages/scripts/otherSetting/whiteList/whitelist.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-whitelist').addClass('ITD-topbar-clickactive'); + +}); +R.route('/settlerule', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/otherSetting/settleRule/settlerule.css'); + res.load('../../assets/pages/scripts/otherSetting/settleRule/settlerule.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-settlerule').addClass('ITD-topbar-clickactive'); + +}); +R.route('/apprelease', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/otherSetting/apprel/apprelease.css'); + res.load('../../assets/pages/scripts/otherSetting/apprel/apprelease.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-apprelease').addClass('ITD-topbar-clickactive'); + +}); +R.route('/couponsetting', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/otherSetting/couponFile/couponsetting.css'); + res.load('../../assets/pages/scripts/otherSetting/couponFile/couponsetting.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-couponsetting').addClass('ITD-topbar-clickactive'); + +}); +R.route('/giftrules', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/otherSetting/giftRule/giftrules.css'); + res.load('../../assets/pages/scripts/otherSetting/giftRule/giftrules.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-giftrules').addClass('ITD-topbar-clickactive'); + +}); +R.route('/undercoupon', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/otherSetting/xxcoupon/undercoupon.css'); + res.load('../../assets/pages/scripts/otherSetting/xxcoupon/undercoupon.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-undercoupon').addClass('ITD-topbar-clickactive'); + +}); +R.route('/appactivity', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/otherSetting/appactive/appactivity.css'); + res.load('../../assets/pages/scripts/otherSetting/appactive/appactivity.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-appactivity').addClass('ITD-topbar-clickactive'); + +}); \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/settleRule/settlerule.css b/assets/pages/scripts/otherSetting/settleRule/settlerule.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/otherSetting/settleRule/settlerule.css diff --git a/assets/pages/scripts/otherSetting/settleRule/settlerule.html b/assets/pages/scripts/otherSetting/settleRule/settlerule.html new file mode 100644 index 0000000..5ec0d93 --- /dev/null +++ b/assets/pages/scripts/otherSetting/settleRule/settlerule.html @@ -0,0 +1,2 @@ +
      结算规则
      + \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/settleRule/settlerule.js b/assets/pages/scripts/otherSetting/settleRule/settlerule.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/otherSetting/settleRule/settlerule.js diff --git a/assets/pages/scripts/otherSetting/whiteList/whitelist.css b/assets/pages/scripts/otherSetting/whiteList/whitelist.css new file mode 100644 index 0000000..ee9743b --- /dev/null +++ b/assets/pages/scripts/otherSetting/whiteList/whitelist.css @@ -0,0 +1,157 @@ + +/*//新样式*/ +.whitelist-parking-l{ + width: 70px; +} + + + +/*弹窗新样式*/ +/*---------------详情弹窗------------------*/ +.whitelist-chooseDivread{ + width: 670px; + height: 34px; + line-height: 34px; +} +.whitelist-width70{ + float: left; + margin-left: 20px; + width: 550px; + height: 34px; + line-height: 34px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/*---------------新增弹窗------------------*/ +.whitelist-findPark { + position: absolute; + top: 0; + right: 0; + height: 34px; + width: 34px; + background: url(../img/find_icon.png) no-repeat; + background-size: 17px 17px; + background-position: 6px 8px; + cursor: pointer; +} +.whitelist-group{ + width: 315px; + height: 390px; + margin-left: 12px; + background-color: #f5f7f8; + margin-bottom: 24px; +} +.whitelist-form-group-ul { + height: 220px; + margin-left: 13px; + width: 300px; + padding-top: 15px; +} +.whitelist-line1 { + width: 280px; + height: 1px; + background-color: #c2cad8; + margin-left: 17px; +} +.whitelist-form-grup-checked{ + padding-top: 5px; + height: 165px; + width: 310px; + overflow-y: auto; +} + +.treeview-checkable_org { + height: 205px; + margin-left: 30px; + width: 250px; + overflow-y: auto; + overflow-x: auto; + float: left; +} +.whitelist-parkCheck, .whitelist-editParkCheck { + height: 28px; + width: 142px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + line-height: 28px; + padding: 0 24px 0 12px; + display: inline-block; + border-radius: 4px !important; + background-color: #fff; + position: relative; + border: 1px solid #d8e2e5; + margin-left: 8px; +} +.closex, .editclosex { + position: absolute; + top: 8px; + right: 9px; + height: 9px; + width: 9px; + background: url(../img/parkclose_icon.png) no-repeat; + background-size: 9px 9px; + cursor: pointer; +} +.whitelist-padtop8{ + padding-top: 8px !important; +} + + +/*单选复选美化*/ +input[type=checkbox], +input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +input[type=checkbox]:hover + label{ + background: url('../img/input-checkexActive.png') no-repeat 0 center; + +} +input[type=checkbox]:checked + label{ + background: url('../img/input-checkbox.png') no-repeat 0 center; + +} + +input[type=checkbox]:checked:hover + label{ + background: url('../img/input-checkbox.png') no-repeat 0 center; + +} + +input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +input[type=radio]:hover + label{ + background: url('../img/input-radio.png') no-repeat 0 center; +} +input[type=radio]:checked + label{ + background : url('../img/input-radio-active.png') no-repeat 0 center; + +} +input[type=radio]:checked:hover + label{ + background: url('../img/input-radio-active.png') no-repeat 0 center; + +} + diff --git a/assets/pages/scripts/otherSetting/whiteList/whitelist.html b/assets/pages/scripts/otherSetting/whiteList/whitelist.html new file mode 100644 index 0000000..7b2988f --- /dev/null +++ b/assets/pages/scripts/otherSetting/whiteList/whitelist.html @@ -0,0 +1,439 @@ +
      +
      +
      +
      +
      + +
      +
      + +
      +
      + 规则名称 + +
      +
      +
      +
      查询
      +
      +
      +
      +
      +
      + 车牌号 + +
      +
      +
      +
      +
      + + +
      +
      +
      +
        +
      • 白名单规则记录
      • +
      • + + +
      • +
      +
      +
      +
      +
      + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/whiteList/whitelist.js b/assets/pages/scripts/otherSetting/whiteList/whitelist.js new file mode 100644 index 0000000..77b3b38 --- /dev/null +++ b/assets/pages/scripts/otherSetting/whiteList/whitelist.js @@ -0,0 +1,1580 @@ +function pageInitWhite() { + var plNos = []; + var matchTypes = []; + var operateId; + var arrid = []; + var editarrid = []; + (function() { + var fun = { + + init: function() { + //初始化下拉框 + fun.initPark(); + /*生效时间初始化*/ + // $('#idcardTimeedit input').val(moment().subtract('days', 0).format('YYYY-MM-DD')+ ' - ' + moment().subtract('days', 30).format('YYYY-MM-DD')); + + fn.getMatchType(fun.initMatchType); + fn.getChargeType(fun.initChargeType); + + fun.searchParkAdd(); + fun.searchParkEdit(); + }, + //新增搜索停车场 + searchParkAdd:function(){ + documentBindFunc.on('click','#whitelist-findPark',function () { + var val = $.trim($('#whitelistadd-findPark').val()); + $('#whitelist-write_rule').addClass('display-none').text(''); + areaTree.getNodesByParamFuzzy(val); + //plSearch(); + + }); + }, + //修改搜索停车场 + searchParkEdit:function(){ + documentBindFunc.on('click','#whitelistedit-findPark',function () { + var val = $.trim($('#whitelisteditEdit-findPark').val()); + $('#whitelist-edit_rule').addClass('display-none').text(''); + areaEditTree.getNodesByParamFuzzy(val); + //plSearch(); + + }); + }, + + + //初始化停车场下拉框 + initPark: function () { + var data = fn.getParkLot(); + $("#parkIds").empty(); + var html = ''; + var parkcom =''; + plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + parkcom+=""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + $('#parkIds').trigger('change'); + fun.createTableData(); + + + }, + //初始化匹配规则 + initMatchType: function (datas) { + $('#matchType').empty(); + var html = ''; + + $.each(datas, function (index, data) { + html += ""; + }) + + html = '' + html; + $('#matchType').append(html); + $('#matchType').selectpicker('refresh'); + }, + //初始化收费类型 + initChargeType: function (datas) { + + $('#payOrg').empty(); + $('#payOrgedit').empty(); + var html = ''; + + $.each(datas, function (index, data) { + html += ""; + }) + + //html = '' + html; + $('#payOrg').append(html); + $('#payOrg').selectpicker('refresh'); + $('#payOrgedit').append(html); + $('#payOrgedit').selectpicker('refresh'); + }, + //生成表格数据 + createTableData: function() { + $('#recordtableWhite').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + showColumns: false, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'whiteRNo', + title: '规则编码', + width: '5%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'whiteRName', + title: '规则名称', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'matchType', + title: '匹配类型', + width: '5%', + align: 'left', + formatter: fun.matchTypeFormatter + }, + { + field: 'chargeType', + title: '收费类型', + width: '8%', + align: 'left', + formatter: fun.chargeTypeFormatter + }, + { + field: 'carNum', + title: '车牌', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'whiteRState', + title: '状态', + width: '8%', + align: 'left', + formatter: fun.whiteRStateFormatter + }, + { + field: 'createDate', + title: '创建时间', + width: '10%', + align: 'left', + formatter:commonObj.timeOneFormatter + }, + + + // { + // field: 'id', + // title: '主键', + // align: 'center' + // }, + { + field: 'oper', + title: '操作', + width: '15%', + align: 'left', + formatter: function(value, row, index) { + var html = ''; + html += "详情 修改删除"; + return html; + } + }, + ] + }); + + }, + matchTypeFormatter:function(value){ + var result=""; + if(value===null||value===undefined||value===''){ + value = '-' + } + switch (value) { + case 1: + result = '前置匹配'; + break; + case 2: + result = '后置匹配'; + break; + case 3: + result = '完全匹配'; + break; + default: + result = '未知'; + } + return result; + }, + + chargeTypeFormatter:function(value){ + var result=""; + if(value===null||value===undefined||value===''){ + value = '-' + } + switch (value) { + case 1: + result = '免费'; + break; + case 2: + result = '每天只收一次'; + break; + case 3: + result = '运营新能源车折扣'; + break; + default: + result = '未知'; + } + return result; + }, + whiteRStateFormatter:function(value){ + var result=""; + if(value===null||value===undefined||value===''){ + value = '-' + } + switch (value) { + case 1: + result = '生效'; + break; + case 0: + result = '失效'; + break; + default: + result = '未知'; + } + return result; + }, + /*获取查询参数*/ + getQueryParam: function() { + //白名单规则名称 + var whiteRName = $("#whiteRName").val(); + /*匹配类型*/ + var matchType = $("#matchType").val(); + //停车场 + var plnos = JSON.parse($("#parkIds").val()); + /*车牌号*/ + var carNum = $('#carNum').val(); + carNum = carNum == null || carNum.length == 0 ? null : carNum.trim(); + + var req = { + plNos: plnos, + whiteRName: whiteRName, + matchType: matchType, + carNum: carNum + }; + console.log(req); + return req; + }, + + strFormatter:function(value){ + if(value===null||value===undefined||value===''){ + value = '-' + } + return value+""; + }, + + }; + + //初始执行 + fun.init(); + documentBindFunc.on('click', '#queryBtn', function() { + //fun.createTableData(); + $('#recordtableWhite').bootstrapTable('refresh'); + }); + // 添加弹窗 + documentBindFunc.on('click', '#whitelist-addBtn', function() { + + //初始化 + $("#whitelistadd-findPark").val(''); + $("#whitelistadd").val(""); + $('#rulename_inp').val('');//规则名称 + $("#payOrg").html($("#payOrg").html()); + $("#payOrg").selectpicker("refresh");//收费类型初始化 + $('#carlice-inp').val('');//车牌号初始化 + $('#carowners').val('');//车主初始化 + $('#match-type0').parent().addClass('checked');//匹配类型初始化 + $('#match-type0')[0].checked=true; + $('#match-type1').parent().removeClass('checked');//匹配类型初始化 + $('#match-type2').parent().removeClass('checked');//匹配类型初始化 + $('#manSex0').parent().addClass('checked');//性别初始化 + $('#manSex0')[0].checked=true;//性别初始化 + $('#manSex1').parent().removeClass('checked');//性别初始化 + //$('#saletrue0').parent().addClass('checked');//是否生效初始化 + //$('#saletrue0')[0].checked=true;//是否生效初始化 + //$('#saletrue1').parent().removeClass('checked');//是否生效初始化 + /*生效时间初始化*/ + $('#idcardTime input').val(moment().subtract('days', 0).format('YYYY-MM-DD')+ ' - ' + moment().subtract('days', -30).format('YYYY-MM-DD')); + $('#idcardTime').daterangepicker({ + startDate: moment().subtract('days', 0), + endDate: moment().subtract('days', -30), + opens: 'right', //日期选择框的弹出位置 + locale: { + applyLabel: '确定', + cancelLabel: '取消', + customRangeLabel: '自定义', + daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'], + monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', + '七月', '八月', '九月', '十月', '十一月', '十二月'], + }, + }, + function (start, end) { + $('#idcardTime input').val(start.format('YYYY-MM-DD') + ' - ' + end.format('YYYY-MM-DD')); + } + ); + // $('#idcard').val('');//车主身份证初始化 + $('#car-ipo').val('');//车主电话初始化 + $('#caraddress').val('');//车主地址初始化 + $('#car-des').val('');//车主描述初始化 + arrid = []; + $('#whitelist-parkCheck').empty(); + areaTree.initTree(); //初始化区域tree + $('#choosePark').find('span').removeClass('checked');//停车场ajax初始化 + $('#whitelist-write_rule').addClass('display-none').text(''); + $('#whitelist_addmodel').modal('show'); + }); + // 修改弹窗 + documentBindFunc.on('click', '.reviseMon', function() { + //初始化 + + $("#whitelisteditEdit-findPark").val(""); + $('#rulename_inpedit').val('');//规则名称 + $('#carlice-inpedit').val('');//车牌号初始化 + $('#carownersedit').val('');//车主初始化 + $('#match-typeedit0').parent().removeClass('checked');//匹配类型初始化 + $('#match-typeedit1').parent().removeClass('checked');//匹配类型初始化 + $('#match-typeedit2').parent().removeClass('checked');//匹配类型初始化 + $('#manSexedit0').parent().removeClass('checked');//性别初始化 + $('#manSexedit1').parent().removeClass('checked');//性别初始化 + //$('#saletrueedit0').parent().removeClass('checked');//是否生效初始化 + //$('#saletrueedit1').parent().removeClass('checked');//是否生效初始化 + $('#idcardTimeedit input').val('');//车主身份证初始化 + $('#car-ipoedit').val('');//车主电话初始化 + $('#caraddressedit').val('');//车主地址初始化 + $('#car-desedit').val('');//车主描述初始化 + $("#whitelist-edit-checked").empty(); + editarrid = []; + $('#whitelist-edit-checked').empty(); + $('#whitelist-edit_rule').addClass('display-none').text(''); + areaEditTree.initTree(); //初始化区域tree + var id =$(this).attr('value'); + operateId = id; + editDialog(id); + + }); + //删除弹窗 + documentBindFunc.on('click', '.delList', function() { + operateId =$(this).attr('value'); + $('#whitelist_deletemodel').modal('show'); + + }); + //确定删除 + documentBindFunc.on('click', '#whitelist-delete-submit', function() { + deleteCommit(operateId); + + }); + //详情弹窗 + documentBindFunc.on('click', '.readMsg', function() { + var id =$(this).attr('value'); + whiteListDetail(id); + + }); + + //添加弹窗的提交按钮 + documentBindFunc.on('click', '#whitelist-write-submit',function () { + addCommit(); + }); + //修改弹窗的提交按钮 + documentBindFunc.on('click', '#whitelist-edit-submit',function () { + + editCommit(operateId); + }); + //添加匹配类型下拉框改变 + documentBindFunc.on('change', '#payOrg',function () { + var chargeType=$('#payOrg').val(); + if("2" == chargeType){ + $('#match-type0').parent().removeClass('checked');//匹配类型初始化 + $('#match-type1').parent().removeClass('checked');//匹配类型初始化 + $('#match-type2').parent().addClass('checked');//匹配类型初始化 + $('#match-type2')[0].checked=true; + } + + }); + //修改匹配类型下拉框改变 + documentBindFunc.on('change', '#payOrgedit',function () { + var chargeType=$('#payOrgedit').val(); + if("2" == chargeType){ + $('#match-typeedit0').parent().removeClass('checked');//匹配类型初始化 + $('#match-typeedit1').parent().removeClass('checked');//匹配类型初始化 + $('#match-typeedit2').parent().addClass('checked');//匹配类型初始化 + $('#match-typeedit2')[0].checked=true; + } + + }); + + + function deleteCommit(id){ + var req = { + sysCode: sysComm.sysCode, + id: id + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.deleteWhiteRuleById(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + if (res.data) { + //关闭删除页面 + $('#whitelist_deletemodel').modal('hide'); + swal({title:"提示",text:"删除成功!",type:"success",timer:3000,allowOutsideClick:true}); + //初始化table + fun.createTableData(); + } + else { + console.log(res.msg); + return false; + } + + } else { + console.log(res.msg); + return; + } + } + }); + + } + function whiteListDetail(id){ + if(id==undefined||id==null||id==''){ + return; + } + var divs = $('#whitelistRow-cont .ITD-form-padleft5-read'); + //先清空 + divs.text(''); + $('.whitelist-width70').eq(0).text(''); + var req = { + sysCode: sysComm.sysCode, + id: id + }; + var opt = { + method: 'post', + url: dataUrl.util.queryWhiteRuleById(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + console.log() + divs.eq(0).text(fun.strFormatter(data.whiteRName));//规则名称 + divs.eq(6).text(fun.chargeTypeFormatter(data.chargeType));//收费类型 + divs.eq(1).text(fun.strFormatter(data.carNum));//车牌号 + divs.eq(7).text(fun.matchTypeFormatter(data.matchType));//匹配类型 + divs.eq(2).text(fun.whiteRStateFormatter(data.whiteRState));//是否生效 + divs.eq(8).text(fun.strFormatter(data.carOwner));//车主 + divs.eq(3).text(commonObj.sexFormatter(data.sex));//性别 + divs.eq(9).text(commonObj.timeOneFormatter(data.effDate)+' - '+commonObj.timeOneFormatter(data.expDate));//车主身份证号 + divs.eq(4).text(fun.strFormatter(data.phone));//车主联系电话 + divs.eq(10).text(fun.strFormatter(data.address));//车主地址 + divs.eq(5).text(fun.strFormatter(data.remark));//描述 + var plNames = ""; + $.each(data.whiteParkLotDTOs, function(index,item) { + plNames+=(item.plName); + plNames+="、"; + }); + $('.whitelist-width70').eq(0).text(plNames.substr(0,plNames.length-1));//适用停车场 + $('.whitelist-width70').eq(0).attr('title',plNames.substr(0,plNames.length-1)); + + $('#whitelist_Readmodel').modal('show'); + } + } + }; + sysAjax(opt); + + } + //添加提交事件 + function addCommit(){ + $('#whitelist-write_rule').addClass('display-none'); + var parkArr = arrid;//存储停车场id + var rulename = $.trim($('#rulename_inp').val());//规则名称 + var chargeType=$('#payOrg').val(); + var carlice = $.trim($('#carlice-inp').val());//车牌号 + var carowners = $.trim($('#carowners').val());//车主 + var matchType = $("input[name='sameStyl-ad']:checked").val();//匹配类型 + var sex = $("input[name='sex-ad']:checked").val();//性别 + var whiteRState = 1;//$("input[name='saletrue-ad']:checked").val()//是否生效 + var carpho = $.trim($('#car-ipo').val());//联系电话 + var address = $.trim($('#caraddress').val());//车主地址 + var remark = $.trim($('#car-des').val());//描述 + /*时间*/ + var dateEntranceRange = $('#idcardTime input').val(); + if (null != dateEntranceRange && dateEntranceRange.trim().length > 0) { + var times = dateEntranceRange.split(' - '); + seffDate = times[0]+ ' 00:00:00'; + effDate=new Date(Date.parse(seffDate.replace(/-/g, "/"))) + dexpDate = times[1]+ ' 23:59:59'; + expDate=new Date(Date.parse(dexpDate.replace(/-/g, "/"))) + } + //把别的值也获取到,比如类型,姓名等等,到时候放到ajax + if(rulename){//规则名称 + var returnParkName=""; + var plNos = checkWhiteUnique(chargeType,carlice,matchType,parkArr); + if(plNos != null && plNos !="" && plNos !=undefined){ + $.each(plNos,function(index,row){ + var parkName=""; + parkName = $("#whitelist-parkCheck").find("span[data-id='"+row+"']").text(); + if(parkName != null && parkName!= "" && parkName !=undefined){ + returnParkName=parkName + } + + return false; + }); + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:该车牌在停车场['+returnParkName+']已经有相同的规则'); + return false; + } + if(carlice){//车牌号 + if("2" ==chargeType){ + var flg = (!/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4,5}[A-Z0-9挂学警港澳]{1}$/.test(carlice)||carlice.length<7); + if(flg){ + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:请输入完整车牌号'); + return false; + } + if("3" !=matchType){ + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:"每天只收一次"只能完全匹配'); + return false; + } + + } + // if(idcard&&!/^[1-9]{1}[0-9]{14}$|^[1-9]{1}[0-9]{16}([0-9]|[xX])$/.test(idcard)){//身份证 + // $('#whitelist-write_rule').removeClass('display-none').text('错误提示:请输入正确身份证') + // } + else{ + if(carpho&&!/^1[3|4|5|7|8]{1}\d{9}$/.test(carpho)&&carpho.length!=11){//联系方式 + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:请输入正确联系方式') + }else { + /*$('#choosePark input').each(function () {//是否有停车场 + if($(this).parent().hasClass('checked')){ + parkArr.push($(this).attr('data-id')) + } + });*/ + if(parkArr.length==0){ + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:请至少选择一个停车场') + }else{ + $('#whitelist-write_rule').addClass('display-none').text(''); + //提交 + //alert("berthNo:"+berthNo+"parkType:"+parkType+"checkedAreaId"+JSON.stringify(checkedAreaId)); + var req = { + whiteRName:rulename, + chargeType:chargeType, + carNum:carlice, + carOwner:carowners, + matchType:matchType, + sex:sex, + whiteRState:whiteRState, + //cardId:idcard, + effDate:effDate, + expDate:expDate, + phone:carpho, + address:address, + remark:remark, + plNos:parkArr, + sysCode: sysComm.sysCode, + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.addWhiteRuleById(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + if (res.data) { + //关闭添加页面 + $("#whitelist_addmodel").css('display', 'none'); + $('#whitelist_addmodel').modal('hide'); + swal({title:"提示",text:"保存成功",type:"success",timer:3000,allowOutsideClick:true}); + //初始化table + fun.createTableData(); + + } + else { + console.log(res.msg); + return false; + } + + } else { + console.log(res.msg); + return; + } + } + }); + + + } + + } + } + + }else{ + if("2" ==chargeType){ + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:请输入完整车牌号'); + }else{ + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:请输入车牌号匹配值'); + } + + } + }else{ + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:请输入卡规则名称') + } + }; + //校验唯一性 通过停车场编码+收费类型+车牌号+匹配类型 + function checkWhiteUnique(chargeType,carlice,matchType,parkArr){ + var plNoDate = ""; + var req = { + chargeType:chargeType, + carNum:carlice, + matchType:matchType, + plNos:parkArr, + sysCode: sysComm.sysCode, + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.checkWhiteUnique(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + plNoDate=res.data; + + } else { + console.log(res.msg); + return; + } + } + }); + return plNoDate; + } + //编辑弹窗 + function editDialog(id){ + if(id==undefined||id==null||id==''){ + return; + } + + var req = { + sysCode: sysComm.sysCode, + id: id + }; + var opt = { + method: 'post', + url: dataUrl.util.queryWhiteRuleById(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + $("#payOrgeditCheck").val(""); //收费类型 + $("#carlice-inpeditCheck").val(""); //停车场车牌 + $("#sameStyl-edCheck").val(""); //匹配类型 + $('#rulename_inpedit').val(fun.strFormatter(data.whiteRName));//规则名称 + $('#ruleno_inpedit').val(fun.strFormatter(data.whiteRNo));//规则编码 + $('#carlice-inpedit').val(fun.strFormatter(data.carNum));//车牌号初始化 + $('#carownersedit').val(fun.strFormatter(data.carOwner));//车主初始化 + $('#payOrgedit').selectpicker('val',data.chargeType); + $("#payOrgeditCheck").val(data.chargeType); //收费类型 + $("#carlice-inpeditCheck").val(fun.strFormatter(data.carNum)); //停车场车牌 + $("#sameStyl-edCheck").val(data.chargeType); //匹配类型 + + switch (data.matchType){ + case 1: + $('#match-typeedit0').parent().addClass('checked');//前置 + $('#match-typeedit0')[0].checked=true; + break; + case 2: + $('#match-typeedit1').parent().addClass('checked');//匹配类型-后置 + $('#match-typeedit1')[0].checked=true;//匹配类型-后置 + break; + case 3: + $('#match-typeedit2').parent().addClass('checked');//匹配类型-完全 + $('#match-typeedit2')[0].checked=true;//匹配类型-完全 + break; + default: + break; + } + switch (data.sex){ + case 1: + $('#manSexedit0').parent().addClass('checked');//性别-男 + $('#manSexedit0')[0].checked=true;//性别-男 + break; + case 2: + $('#manSexedit1').parent().addClass('checked');//性别女 + $('#manSexedit1')[0].checked=true;//性别女 + break; + default: + break; + } + /**switch (data.whiteRState){ + case 1: + $('#saletrueedit0').parent().addClass('checked');//生效 + $('#saletrueedit0')[0].checked=true;//生效 + break; + case 0: + $('#saletrueedit1').parent().addClass('checked');//失效 + $('#saletrueedit1')[0].checked=true;//失效 + break; + default: + break; + }*/ + $('#idcardTimeedit input').val(commonObj.timeOneFormatter(data.effDate)+' - '+commonObj.timeOneFormatter(data.expDate));//修改初始化 + $('#idcardTimeedit input').daterangepicker({ + startDate: commonObj.timeOneFormatter(data.effDate), + endDate:commonObj.timeOneFormatter(data.expDate), + opens: 'right', //日期选择框的弹出位置 + locale: { + applyLabel: '确定', + cancelLabel: '取消', + customRangeLabel: '自定义', + daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'], + monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', + '七月', '八月', '九月', '十月', '十一月', '十二月'], + }, + }, + function (start, end) { + $('#idcardTimeedit input').val(start.format('YYYY-MM-DD') + ' - ' + end.format('YYYY-MM-DD')); + } + ); + $('#car-ipoedit').val(fun.strFormatter(data.phone));//车主电话初始化 + $('#caraddressedit').val(fun.strFormatter(data.address));//车主地址初始化 + $('#car-desedit').val(fun.strFormatter(data.remark));//车主描述初始化 + //$('#chooseParkedit').find('span').removeClass('checked');//选择停车场 + var temp =$('#chooseParkedit span label'); + var plNoNodes=[]; + $.each(data.whiteParkLotDTOs, function(index,item) { + plNoNodes.push(item.plNo); + editarrid.push(item.plNo); + if(plNos.indexOf(item.plNo)==-1){ + $('#whitelist-edit-checked').append('' + item.plName + ''); + } + else{ + $('#whitelist-edit-checked').append('' + item.plName + ''); + } + }); + areaEditTree.updateNodesForCheckedEdit(plNoNodes); + $('#whitelist_editmodel').modal('show'); + } + } + }; + sysAjax(opt); + + }; + //添加提交事件(编辑) + function editCommit(operateId){ + var parkArr = editarrid;//存储停车场id + var rulename = $.trim($('#rulename_inpedit').val());//规则名称 + var ruleno = $.trim($('#ruleno_inpedit').val()); + var carlice = $.trim($('#carlice-inpedit').val());//车牌号 + // var idcardtimeedit = $.trim($('#idcardTimeedit input').val());//时间 + /*时间*/ + var dateEntranceRange = $('#idcardTimeedit input').val(); + if (null != dateEntranceRange && dateEntranceRange.trim().length > 0) { + var times = dateEntranceRange.split(' - '); + seffDate = times[0]+ ' 00:00:00'; + effDate=new Date(Date.parse(seffDate.replace(/-/g, "/"))) + dexpDate = times[1]+ ' 23:59:59'; + expDate=new Date(Date.parse(dexpDate.replace(/-/g, "/"))) + } + var carpho = $.trim($('#car-ipoedit').val());//联系电话 + + var chargeType=$('#payOrgedit').val(); + var carowners = $.trim($('#carownersedit').val());//车主 + + var matchType = $("input[name='sameStyl-ed']:checked").val();//匹配类型 + var sex = $("input[name='sex-ed']:checked").val();//性别 + var whiteRState = 1;//$("input[name='saletrue-ed']:checked").val()//是否生效 + var address = $.trim($('#caraddressedit').val());//车主地址 + var remark = $.trim($('#car-desedit').val());//描述 + + //把别的值也获取到,比如类型,姓名等等,到时候放到ajax + if(rulename){//规则名称 + var returnParkName=""; + var chargeTypeCheck = $("#payOrgeditCheck").val(); //收费类型 + var carNumCheck =$("#carlice-inpeditCheck").val(); //停车场车牌 + var matchTypeCheck = $("#sameStyl-edCheck").val(); //匹配类型 + if(chargeTypeCheck != chargeType && carNumCheck !=carlice && matchType !=matchTypeCheck){ + var plNos = checkWhiteUnique(chargeType,carlice,matchType,parkArr); + if(plNos != null && plNos !="" && plNos !=undefined){ + $.each(plNos,function(index,row){ + var parkName=""; + parkName = $("#whitelist-edit-checked").find("span[data-id='"+row+"']").text(); + if(parkName != null && parkName!= "" && parkName !=undefined){ + returnParkName=parkName + } + + return false; + }); + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:该车牌在停车场['+returnParkName+']已经有相同的规则'); + return false; + } + + } + if(carlice){//车牌号 + if("2" ==chargeType){ + var flg = (!/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4,5}[A-Z0-9挂学警港澳]{1}$/.test(carlice)||carlice.length<7); + if(flg){ + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请输入完整车牌号'); + return false; + } + if("3" !=matchType){ + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:"每天只收一次"只能完全匹配'); + return false; + } + } + + // if(idcard&&!/^[1-9]{1}[0-9]{14}$|^[1-9]{1}[0-9]{16}([0-9]|[xX])$/.test(idcard)){//身份证 + // $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请输入正确身份证') + // } + else{ + if(carpho&&!/^1[3|4|5|7|8]{1}\d{9}$/.test(carpho)&&carpho.length!=11){//联系方式 + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请输入正确联系方式') + }else { + /*$('#chooseParkedit input').each(function () {//是否有停车场 + if($(this).parent().hasClass('checked')){ + parkArr.push($(this).attr('data-id')) + } + });*/ + if(parkArr.length==0){ + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请至少选择一个停车场') + }else{ + $('#whitelist-edit_rule').addClass('display-none').text(''); + //提交 + //alert("berthNo:"+berthNo+"parkType:"+parkType+"checkedAreaId"+JSON.stringify(checkedAreaId)); + var req = { + id:operateId, + whiteRName:rulename, + whiteRNo:ruleno, + chargeType:chargeType, + carNum:carlice, + carOwner:carowners, + matchType:matchType, + sex:sex, + whiteRState:whiteRState, + effDate:effDate, + expDate:expDate, + phone:carpho, + address:address, + remark:remark, + plNos:parkArr, + sysCode: sysComm.sysCode, + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.updateWhiteRuleById(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + if (res.data) { + //关闭修改页面 + $("#whitelist_editmodel").css('display', 'none'); + $('#whitelist_editmodel').modal('hide'); + swal({title:"提示",text:"保存成功",type:"success",timer:3000,allowOutsideClick:true}); + //初始化table + fun.createTableData(); + + } + else { + console.log(res.msg); + return false; + } + + } else { + console.log(res.msg); + return; + } + } + }); + } + + } + } + + }else{ + if("2" ==chargeType){ + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请输入完整车牌号'); + }else{ + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请输入车牌号匹配值'); + } + + } + }else{ + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请输入卡规则名称') + } + }; + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryWhitelistRuleForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); + } + }) + (); +//新增 + var areaTree = { + //初始化树 + initTree: function() { + $.fn.zTree.init($("#user_org_tree"), areaTree.setting, areaTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.expandAll(false); + areaTree.selectedNodes(0); + }, + setting: { + view: { + selectedMulti: true //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "checkbox", + // chkStyle: "radio", + radioType: "all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + callback: { + onCheck: zTreeOnCheck + }, + edit: { + enable: false + } + }, + getNodesByParamFuzzyAll:function(){ + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodes(); + for(var i = 0;i0) { + for(var i=0;i 0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function(newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function(checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function(treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function(ids) { + var nodes = areaTree.getNodesByIds(ids); + for(var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node == null) { + continue; + } + node.checked = true; + areaTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function(id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var treeNode = areaTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function(id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function(ids) { + var nodes = []; + for(var i = 0; i < ids.length; i++) { + nodes[i] = areaTree.getNodeById(ids[i]); + } + return nodes; + }, + //根据id取消选/选中节点 + updateNodesForNotChecked: function(id,checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + node.checked = checked; + treeObj.updateNode(node); + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function(checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for(var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForArea: function(checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index = 0; + for(var i = 0; i < nodes.length; i++) { + if(null != nodes[i].areaType && "70" == nodes[i].areaType) { + ids[index++] = { + areaId: nodes[i].id, + areaType: nodes[i].areaType, + plNo: nodes[i].pId, + orgAreaType: 1 + }; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function(checked) { + var names = ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for(var i = 0; i < nodes.length; i++) { + names = names + "," + nodes[i].name; + } + return names; + }, + +//获取选中的节点集合 + getSelectedNodes: function() { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData: function() { + var sysCode = sessionStorage.getItem("sysCode"); + var zNodes = []; + sysAjax({ + method: 'POST', + url: dataUrl.util.vipCardSelectParkTree(), + //data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function(res) { + if(isError(res)) { + return false; + } + //console.log("res.data="+res.data); + $.each(res.data, function(index, rows) { + var data = ""; + if(rows.level == "1"){//服务点 + data={id:rows.id,pId:rows.parentId,name:rows.treeName,level:rows.level,chkDisabled:true}; + }else{ + data={id:rows.id,pId:rows.parentId,name:rows.treeName,level:rows.level}; + } + + zNodes[index] = data; + }); + + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } + }; +//编辑 + var areaEditTree = { + //初始化树 + initTree: function() { + $.fn.zTree.init($("#userEdit_org_tree"), areaEditTree.setting, areaEditTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + treeObj.expandAll(false); + areaEditTree.selectedNodes(0); + }, + setting: { + view: { + selectedMulti: true //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "checkbox", + // chkStyle: "radio", + radioType: "all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + callback: { + onCheck: zTreeOnCheck + }, + edit: { + enable: false + } + }, + getNodesByParamFuzzyAll:function(){ + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getNodes(); + for(var i = 0;i0) { + for(var i=0;i 0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function(newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function(checked) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function(treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id取消选/选中节点 + updateNodesForNotChecked: function(id,checked) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + node.checked = checked; + treeObj.updateNode(node); + }, + //根据id集合更新节点变为选中 + updateNodesForCheckedEdit: function(ids) { + var nodes = areaEditTree.getNodesByIds(ids); + for(var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node == null) { + continue; + } + node.checked = true; + areaEditTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function(id) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var treeNode = areaEditTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function(id) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function(ids) { + var nodes = []; + for(var i = 0; i < ids.length; i++) { + nodes[i] = areaEditTree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function(checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for(var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForArea: function(checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index = 0; + for(var i = 0; i < nodes.length; i++) { + if(null != nodes[i].areaType && "70" == nodes[i].areaType) { + ids[index++] = { + areaId: nodes[i].id, + areaType: nodes[i].areaType, + plNo: nodes[i].pId, + orgAreaType: 1 + }; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function(checked) { + var names = ""; + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for(var i = 0; i < nodes.length; i++) { + names = names + "," + nodes[i].name; + } + return names; + }, + +//获取选中的节点集合 + getSelectedNodes: function() { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData: function() { + var sysCode = sessionStorage.getItem("sysCode"); + var zNodes = []; + sysAjax({ + method: 'POST', + url: dataUrl.util.vipCardSelectParkTree(), + //data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function(res) { + if(isError(res)) { + return false; + } + // console.log("res.data="+res.data); + $.each(res.data, function(index, rows) { + var data = ""; + if(rows.level == "1"){//服务点 + data={id:rows.id,pId:rows.parentId,name:rows.treeName,level:rows.level,chkDisabled:true}; + }else{ + data={id:rows.id,pId:rows.parentId,name:rows.treeName,level:rows.level}; + } + + zNodes[index] = data; + }); + + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } + }; + /** + * 处理错误信息 + * @param {Object} res + */ + function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + alert('树失败') + return true; + }else{ + return false; + } + } + + Array.prototype.remove = function(val) { + var index = this.indexOf(val); + if (index > -1) { + this.splice(index, 1); + } + }; + /** + * 左侧单选按钮点击选中右侧.
      + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ + function zTreeOnCheck (event, treeId, treeNode) { + if($("#whitelist_editmodel").css("display")=='none' ){ + console.log('添加页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + if(treeNode.checked === true){ + arrid.push(treeNode.id); + console.log(arrid) + $('#whitelist-parkCheck').append(''+treeNode.name+'') + }else{ + arrid.remove(treeNode.id); + $('.whitelist-parkCheck'+treeNode.id).remove(); + }; + }else{ + console.log('编辑页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + if (treeNode.checked === true) { + //还需要判断下 editarrid 是否存在这个treeNode.id 如果存在 就不添加了。 + if($.inArray(treeNode.id, editarrid) == -1){ + editarrid.push(treeNode.id); + console.log(editarrid) + $('#whitelist-edit-checked').append('' + treeNode.name + ''); + }else{ + return + } + + } else { + editarrid.remove(treeNode.id); + $('.whitelist-editParkCheck' + treeNode.id).remove(); + } + } + }; + +//新增树下面内容删除 + $(document).delegate('.closex','click',function () { + var valid = $(this).parent().attr('data-id'); + arrid.remove(valid); + $(this).parent().remove(); + //取消树的选中 + areaTree.updateNodesForNotChecked(valid,false); + }); +//编辑树下面内容删除 + $(document).delegate('.editclosex','click',function () { + var valid = $(this).parent().attr('data-id'); + editarrid.remove(valid); + console.log(editarrid) + $(this).parent().remove(); + //取消树的选中 + areaEditTree.updateNodesForNotChecked(valid,false); + }); +}; +pageInitWhite(); +function getQueryWhiteParams(){ + //白名单规则名称 + var whiteRName = $("#whiteRName").val(); + /*匹配类型*/ + var matchType = $("#matchType").val(); + //停车场 + var plnos = JSON.parse($("#parkIds").val()); + /*车牌号*/ + var carNum = $('#carNum').val(); + carNum = carNum == null || carNum.length == 0 ? '' : carNum.trim(); + + var req = { + plNos: plnos, + whiteRName: whiteRName, + matchType: matchType, + carNum: carNum + }; + return req; +} +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#reportWhitBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#reportWhitBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#reportWhitBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#reportWhitBtn").val("导出"); + } + else { + curCount--; + $("#reportWhitBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#reportWhitBtn',function (){ + //获取table所有行数据 + var parkLot = $("#recordtableWhite").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtableWhite").bootstrapTable('getOptions').totalRows; + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //执行倒计时函数 + sendMessage(); + var req = getQueryWhiteParams(); + var url = dataUrl.util.exportWhitelistRule() + '?plNos=' + req.plNos + '&whiteRName=' + req.whiteRName + '&matchType=' + req.matchType+'&carNum=' + req.carNum + '&sysCode='+sysComm.sysCode; + window.downloadFile(url); +}); \ No newline at end of file diff --git a/assets/pages/scripts/otherSetting/xxcoupon/undercoupon.css b/assets/pages/scripts/otherSetting/xxcoupon/undercoupon.css new file mode 100644 index 0000000..01ac836 --- /dev/null +++ b/assets/pages/scripts/otherSetting/xxcoupon/undercoupon.css @@ -0,0 +1,40 @@ +.fixed-table-container thead th .th-inner { + padding: 6px 30px 6px 24px!important; +} +.ITD-form-read{ + height: 34px; + line-height: 34px; +} +.ITD-pop-wid60{ + width: 60px; + margin-left: 5px; +} +.ITD-pop-wid65{ + width: 70px; +} +.ITD-pop-wid150{ + width: 150px; +} +.ITD-park-l{ + float: left; + width: 100px; + height: 34px; + line-height: 34px; +} +.giftpop_cont{ + height: 34px; + width: 100%; +} +.msgMaxwidth{ + max-width: 300px; +} +/*dayin*/ +@media print { + .pop_common{ + width: 300px; + height: 200px; + background: url("../img/car-bg.png") no-repeat; + background-size: 300px 200px; + + } +} diff --git a/assets/pages/scripts/otherSetting/xxcoupon/undercoupon.html b/assets/pages/scripts/otherSetting/xxcoupon/undercoupon.html new file mode 100644 index 0000000..1dde7ce --- /dev/null +++ b/assets/pages/scripts/otherSetting/xxcoupon/undercoupon.html @@ -0,0 +1,191 @@ +
      +
      +
      +
      +
      +
      + 卡券编码 +    + +
      + + +
      + +
      +
      + +
      +
      + +
      + +
      +
      +
      查询
      +
      +
      +
      +
      +
      + 批次号 +    + +
      +
      +
      +
      +
      + + +
      +
      +
      +
        +
      • 详细记录
      • +
      • + + + + +
      • +
      +
      +
      +
      +
      +
      + + + + + + + + + + + + + + + + + + + diff --git a/assets/pages/scripts/otherSetting/xxcoupon/undercoupon.js b/assets/pages/scripts/otherSetting/xxcoupon/undercoupon.js new file mode 100644 index 0000000..2bf2544 --- /dev/null +++ b/assets/pages/scripts/otherSetting/xxcoupon/undercoupon.js @@ -0,0 +1,746 @@ +var fun = { + init:function () { + $('#coupon_type_add').selectpicker('refresh'); + fun.initSelect(); + fun.createTableData(); + fun.poptTimeinit(); + fun.popChangedata(); + fun.queryBtn(); + + }, + //查询条件下拉框初始化 + initSelect:function() { + //1.所有卡券类型 + $('#coupons_type').selectpicker('render'); + + //2.card_state + var html =""; + html +=""; + html +=""; + html +=""; + html +=""; + + $("#card_state").empty(); + $("#card_state").append(html); + $("#card_state").selectpicker('refresh'); + + //3.所有使用类型 card_usetype + var html =""; + html +=""; + html +=""; + html +=""; + + $("#card_usetype").empty(); + $("#card_usetype").append(html); + $("#card_usetype").selectpicker('refresh'); + }, + //2ini表格 + createTableData: function() { + $('#recordtableWhite').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20,50,100], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + clickToSelect: true, //是否启用点击选中行 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + rowStyle:fun.markTheTable, + columns: [ + {title:'',width: '1%',checkbox: true,align: 'center'}, + { + field: 'cardNo', + title: '卡券编码', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + + }, + // { + // field: 'cardType', + // title: '卡券', + // width: '5%', + // align: 'left', + // formatter: function(value, row, index){ + // if('1'==value){ + // return '优惠券'; + // }else if(4==value){ + // return '代金券'; + // }else if('2'==value){ + // return '停车券(线下兑换)' + // }else{ + // return '其他' + // } + // } + // }, + { + field: 'couponsType', + title: '优惠类型', + width: '3%', + align: 'left', + formatter: function(value, row, index){ + if('3'==value){ + return '折扣'; + }else if('4'==value){ + return '优惠'; + }else{ + return '其他' + } + } + }, + { + field: 'discValue', + title: '优惠值', + width: '3%', + align: 'left', + formatter: function(value, row, index){ + if('3'==row.couponsType){ + return value/10+'折'; + }else if('4'==row.couponsType){ + return value/100+'元'; + }else{ + return '-' + } + } + }, + { + field: 'beginTime', + title: '生效时间', + width: '10%', + align: 'left', + formatter:commonObj.timeOneFormatter + }, + { + field: 'endTime', + title: '失效时间', + width: '10%', + align: 'left', + formatter:commonObj.timeOneFormatter + }, + { + field: 'batchNo', + title: '批次号', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + + }, + { + field: 'isUesed', + title: '使用状态', + width: '8%', + align: 'left', + formatter: function(value, row, index){ + // + if(value ==1){ + return '已使用'; + }else{ + return '未使用'; + } + } + }, + { + field: 'dataState', + title: '卡状态', + width: '8%', + align: 'left', + formatter: function(value, row, index){ + // + if(new Date(row.endTime).getTime() >= new Date().getTime() && value ==1 && new Date(row.beginTime).getTime() <= new Date().getTime()){ + return '生效'; + }else if(new Date(row.beginTime).getTime() >= new Date().getTime() && value ==1){ + return '未生效'; + }else{ + return '失效'; + } + } + }, + ] + }); + + }, + markTheTable:function (value,row, index) { + //这里有5个取值代表5中颜色['active', 'success', 'info', 'warning', 'danger']; + var strclass = ""; + if (new Date(value.endTime).getTime() < new Date().getTime() || value ==0) { + strclass = 'warning'; + } + else { + strclass = ''; + } + return { classes: strclass } + }, + /*获取查询参数*/ + getQueryParam: function() { + //卡券名称 + var cardNo = $("#couponsettingName").val(); + //批次号 + var batchNo = $("#batchNo").val(); + + //卡券状态 + var card_state = $("#card_state").val(); + + + //卡券使用状态 + var is_used = $("#card_usetype").val(); + + //卡券类型 + var card_type = "[2]"; + + //优惠类型状态 + var coupons_type = $("#coupons_type").val(); + if(coupons_type == null || coupons_type == "ALL" || coupons_type == ''){ + coupons_type = null; + } + if(card_state == null || card_state == "ALL" || card_state == ''){ + card_state = null; + } + if(is_used == null || is_used == "ALL" || is_used == ''){ + is_used = null; + } + var req = { + cardNo:cardNo, + batchNo:batchNo, + cardTypes: JSON.parse(card_type), + couponsType:coupons_type, + isUesed:is_used, + dataState: card_state + }; + console.log(req); + return req; + }, + //弹窗生失效时间 + poptTimeinit:function () { + $("#popdaterange_btnstaadd").datetimepicker({ + startDate: moment().add('days', 0).format('YYYY-MM-DD'), + //endDate: moment().subtract('days', 0).format('YYYY-MM-DD HH:ss'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left", + }); + $("#popdaterange_btnendadd").datetimepicker({ + startDate: moment().add('days', 0).format('YYYY-MM-DD'), + //endDate: moment().subtract('days', 0).format('YYYY-MM-DD HH:ss'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left", + }); + }, + //change 弹窗 + popChangedata:function () { + $(document).on('change',"#coupon_type_add",function(){ + var counum=$('#coupon_type_add').val(); + if(counum==3){ + $('#pop_cardname').text('折扣值'); + $('#pop_carddk').addClass('display-none'); + $('#pop_cardzc').removeClass('display-none'); + }else { + $('#pop_cardname').text('优惠金额'); + $('#pop_cardzc').addClass('display-none'); + $('#pop_carddk').removeClass('display-none'); + } + }); + }, + //查询 + queryBtn:function(){ + documentBindFunc.on('click','#queryBtn',function(){ + $("#recordtableWhite").bootstrapTable('refresh'); + }); + + }, + + //初始化新增页面内容 + initAdd: function () { + var html =" \n" + " "; + $("#coupon_type_add").empty(); + $("#coupon_type_add").append(html); + $('#coupon_type_add').selectpicker('refresh'); + $('#pop_cardname').text('折扣值'); + $('#pop_carddk').addClass('display-none'); + $('#pop_cardzc').removeClass('display-none'); + + + $('#coupon_dk').val('') //优惠值清空 + $('#coupon_zc').val('') //折扣值清空 + + $('#card_num').val('') //卡券数量清空 + //初始化开始日期 + $("#popdaterange_btnstaadd").val(moment().subtract('days', 0).format('YYYY-MM-DD')) + $("#popdaterange_btnendadd").val(moment().subtract('days', 0).format('YYYY-MM-DD')) + $("#popdaterange_btnstaadd").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + $("#popdaterange_btnendadd").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + + $("#giftsetting-add-submit").removeAttr("disabled"); + + $('#under_addmodel').modal('show'); + }, + /*获取新增参数*/ + getCouponInfoParam: function() { + var coupons_type = $("#coupon_type_add").val(); //3.折扣,4.优惠 + /**优惠值*/ + var discValue = 0; + var cardName = ''; + if(coupons_type == 3){ + discValue = $("#coupon_zc").val() * 10; + cardName = $("#coupon_zc").val()+"折折扣券" + }else{ + discValue = $("#coupon_dk").val() * 100; + cardName = $("#coupon_dk").val()+"元现金抵扣券" + + } + //发放数量 + var cardNum = $("#card_num").val(); + //每次领取数量 + var beginTime = $("#popdaterange_btnstaadd").val(); + beginTime = new Date(beginTime+" 00:00:00"); + //每次领取数量 + var endTime = $("#popdaterange_btnendadd").val(); + endTime = new Date(endTime+" 23:59:59"); + if(discValue == null || discValue == '' || discValue == undefined){ + $('#td_rule_add').removeClass('display-none').text('错误提示:折扣或优惠值不能为空或0'); + return false; + } + if(cardNum == null || cardNum == '' || cardNum == undefined){ + $('#td_rule_add').removeClass('display-none').text('错误提示:卡券张数不能为空'); + return false; + } + if(cardNum > 1000){ + $('#td_rule_add').removeClass('display-none').text('错误提示:卡券张数不能大于1000'); + return false; + } + if(beginTime>endTime){ + $('#td_rule_add').removeClass('display-none').text('错误提示:发放开始时间不能大于结束时间'); + return false; + } + + $("#giftsetting-add-submit").attr("disabled","disabled"); + $('#td_rule_add').addClass('display-none'); + var req = { + cardName: cardName, + cardRes: 1,//卡券来源:1:平台发放,2:停车场发放 + cardType: 2,//卡券类型 :1-优惠券,2-停车券,3-充值卡 + couponsType: coupons_type,//优惠券类型:1:按次优惠,2:按时优惠,3:折扣优惠(打折),4:满减优惠 + isRecommend: 0,//是否推荐购买 1:是,0:否 + useRule: -1,//使用规则:1 满减使用(限制),-1无限制(充值卡都为-1) + discValue: discValue,//优惠值(分) + fullCutValue: 1,//满减金额(分) + isSuperpUse: 0,//是否叠加使用 1:是 0:否 + beginTime: beginTime,//开始时间 + endTime: endTime,//结束时间 + cardRestNum: 1,//卡券剩余数量 + cardNum: cardNum,//卡券发放数量 + cardState: 1,//卡券状态:1、上架;2、下架 + dataState: 1,//数据状态:1有效,0无效 + cardContent: '不与其他优惠同时使用',//卡券说明,如:不与其他优惠同时使用 + validDays: 0,//使用天数(领取后) + receiveChannels: 4,//领取渠道:1:app 2:积分商城兑换,4:线下兑换 + needIntegral: 0,//领取渠道:2:积分商城兑换 需填写的积分数字 + receiveNum: 1,//每次领取数量 + flg: 1,//保存、更新标志 1:保存 + sysCode:sysComm.sysCode + }; + console.log(req); + return req; + }, + addCouponConfirm:function(){ + var req = fun.getCouponInfoParam(); + if(req!=false && req!=undefined){ + var opt = { + method: 'post', + url: dataUrl.util.saveCouponRule(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + console.log(res.data); + $("#giftsetting-add-submit").removeAttr("disabled"); + $('#under_addmodel').modal('hide'); + fun.createTableData(); + }else{ + $("#giftsetting-add-submit").removeAttr("disabled"); + } + } + }; + sysAjax(opt); + } + + + }, + +}; + +fun.init(); + + +// 打印功能 +documentBindFunc.on('click', '#domprintBtn', function () { + doPrint(); +}) +function doPrint(){ + var rowsData= $("#recordtableWhite").bootstrapTable('getSelections'); + if(rowsData.length<=0){ + $('.ITD-alertmodel-contentmsg').text('请选中要打印的行数据!'); + $('#parkpoipop_alertmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#parkpoipop_alertmodel').modal('hide'); + },2000); + + return false; + } + var html = ""; + + $.each(rowsData,function(index,row){ + if(row != null && row.id != null){ + var couponMsg = ''; + if('3'==row.couponsType){ + couponMsg ='折扣'+ row.discValue/10+'折'; + }else if('4'==row.couponsType){ + couponMsg ='抵扣'+row.discValue/100+'元'; + }else{ + couponMsg = '-' + } + var beginTime = DateUtils.long2String(row.beginTime, 1); + var endTime = DateUtils.long2String(row.endTime, 1); + html += + '
      ' + + ' ' + + ' ' + + '
      ' + +beginTime+'至'+ endTime+'有效
      ' + + '
      '+couponMsg+'
      ' + + '
      ' + + '
      '+row.cardNo+'
      ' + + '
      1.扫码支付界面输入优惠码抵扣停车费
      ' + + '
      2.APP提前绑定优惠码停车抵扣停车费
      ' + + '
      ' + + + '
      ' + } + }); + $('#printContent').html(html); + + + + var newWindow=window.open("打印窗口","_blank"); + var docStr = document.getElementById('printContent').innerHTML;//需要打印的内容 + newWindow.document.write(docStr); + var head = newWindow.document.head || newWindow.document.getElementsByTagName('head')[0]; + // var goodsInfo = newWindow.document.getElementById('goodsInfo');//动态修改要打印的内容样式 + // goodsInfo.style.padding='0'; + var link = newWindow.document.createElement('link'); + link.type='text/css'; + link.rel = 'stylesheet'; + link.href = '../assets/pages/scripts/otherSetting/xxcoupon/undersoupon.css'; + head.appendChild(link);//引入样式文件 + newWindow.document.close(); + setTimeout(function () { + newWindow.print(); + newWindow.close(); + },500); +} + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCouponRuleForpage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +//点击新增事件 +documentBindFunc.on('click', '#ratemanage-addBtn',function () { + $('#td_rule_add').addClass('display-none'); + fun.initAdd(); +}); + +//点击新增或修改确定事件 +documentBindFunc.on('click', '#giftsetting-add-submit',function () { + fun.addCouponConfirm(); +}); + +/**批量删除.*/ +documentBindFunc.on('click','#parkset-del',function () { + var rowsData= $("#recordtableWhite").bootstrapTable('getSelections'); + if(rowsData.length<=0){ + $('.ITD-alertmodel-contentmsg').text('请选中要删除的行数据!'); + $('#parkpoipop_alertmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#parkpoipop_alertmodel').modal('hide'); + },2000); + + return false; + } + + // $('#coupon_deletemodel').modal('show'); + + var deleteIds = []; + $.each(rowsData,function(index,row){ + if(row != null && row.id != null){ + deleteIds.push(row.id); + } + }); + + //删除弹窗 确定按钮 提交事件 + var req = { + ids:deleteIds, + sysCode: sysComm.sysCode + }; + console.log(deleteIds); + sysAjax({ + method: 'POST', + url: dataUrl.util.deleteBatchCouponRule(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + $('.ITD-alertmodel-contentmsg').text('删除成功!'); + $('#parkpoipop_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#parkpoipop_alertmodel').modal('hide') + },2000); + //初始化table + $("#recordtableWhite").bootstrapTable('refresh'); + } else { + console.log(res); + $('.ITD-alertmodel-contentmsg').text('删除失败!'); + $('#parkpoipop_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#parkpoipop_alertmodel').modal('hide') + },2000); + return false; + } + } + }); +}); + +//导出excle +documentBindFunc.on('click','#reportBtn',function (){ + //获取table所有行数据 + var couponNum = $("#recordtableWhite").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtableWhite").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + console.log(couponNum) + if(couponNum.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#parkpoipop_alertmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#parkpoipop_alertmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#parkpoipop_alertmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#parkpoipop_alertmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数s + sendMessage(); + //卡券名称 + var cardNo = $("#couponsettingName").val(); + //批次号 + var batchNo = $("#batchNo").val(); + + //卡券状态 + var card_state = $("#card_state").val(); + + + //卡券使用状态 + var is_used = $("#card_usetype").val(); + + //卡券类型 + var card_type = [2]; + + //优惠类型状态 + var coupons_type = $("#coupons_type").val(); + if(coupons_type == null || coupons_type == "ALL" || coupons_type == ''){ + coupons_type = null; + } + if(card_state == null || card_state == "ALL" || card_state == ''){ + card_state = null; + } + if(is_used == null || is_used == "ALL" || is_used == ''){ + is_used = null; + } + var orgId = fn.getOrgId(); + var url = dataUrl.util.exportCouponRuleMsgOpration(); + var forms = exportCouponRuleMsg(url,cardNo,batchNo,card_state,is_used,card_type,coupons_type,orgId); + forms.submit(); +}); + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#reportBtn").val("导出"); + } + else { + curCount--; + $("#reportBtn").val(curCount + "秒后可再次导出"); + } +} + +function exportCouponRuleMsg(url,cardNo,batchNo,card_state,is_used,card_type,coupons_type,orgId) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "get"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "cardNo"; + input.value = cardNo; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "batchNo"; + input2.value = batchNo; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "cardTypes"; + input3.value = card_type; + form.appendChild(input3); + + var input4 = document.createElement("input"); + input4.name = "couponsType"; + input4.value = coupons_type; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "isUesed"; + input5.value = is_used; + form.appendChild(input5); + + var input6 = document.createElement("input"); + input6.name = "dataState"; + input6.value = card_state; + form.appendChild(input6); + + var input7 = document.createElement("input"); + input7.name = "orgId"; + input7.value = orgId; + form.appendChild(input7); + + return form; + +}; + + +// //折扣验证 +$('#coupon_zc').keyup(function () { + var obj = this; + clearNoNumZheKou(obj); +}); + + +//折扣验证 +function clearNoNumZheKou(obj){ + obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符 + obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的 + //obj.value = obj.value.charAt(1).replace(/\/g,"."); + obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); + obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数 + + if(obj.value.indexOf(".")< 0 && obj.value !="" && Number(obj.value)!=0){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 + obj.value= parseFloat(obj.value); + } + if(Number(obj.value)>=10 || Number(obj.value)==0){ + obj.value = obj.value.charAt(0) + }; +} + diff --git a/assets/pages/scripts/parkingshareFile/css/img/areamanage_baidimapIco.png b/assets/pages/scripts/parkingshareFile/css/img/areamanage_baidimapIco.png new file mode 100644 index 0000000..c139675 Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/areamanage_baidimapIco.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/dataicon.png b/assets/pages/scripts/parkingshareFile/css/img/dataicon.png new file mode 100644 index 0000000..b04bfc8 Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/dataicon.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/input-checkbox.png b/assets/pages/scripts/parkingshareFile/css/img/input-checkbox.png new file mode 100644 index 0000000..27709ab Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/input-checkbox.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/input-checkexActive.png b/assets/pages/scripts/parkingshareFile/css/img/input-checkexActive.png new file mode 100644 index 0000000..2e44210 Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/input-checkexActive.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/input-radio-active.png b/assets/pages/scripts/parkingshareFile/css/img/input-radio-active.png new file mode 100644 index 0000000..2649720 Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/input-radio-active.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/input-radio.png b/assets/pages/scripts/parkingshareFile/css/img/input-radio.png new file mode 100644 index 0000000..35e0b1b Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/input-radio.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/parkpoishareadd.css b/assets/pages/scripts/parkingshareFile/css/img/parkpoishareadd.css new file mode 100644 index 0000000..17bd88b --- /dev/null +++ b/assets/pages/scripts/parkingshareFile/css/img/parkpoishareadd.css @@ -0,0 +1,59 @@ +/*左侧 tree*/ +.parkpoi-container-l{ + width: 326px; + height: 715px; + overflow-y: auto; +} +.parkpoi-container-r{ + height:715px; + width:calc(100% - 350px); + width:-webkit-calc(100% - 350px); + width:-moz-calc(100% - 350px); + width:-ms-calc(100% - 350px); + width:-o-calc(100% - 350px); +} + +/* new topbar */ +.parkpoi-parking-l { + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.parkpoi-input78{ + width: 78%; + height: 34px; + line-height: 34px; +} +.parkpoi-margingl60{ + margin-left: 60px; +} +input[type=radio ] { + width: 28px; + height: 24px; + margin: 0; + padding: 0; + opacity: 0; + filter: "alpha(opacity=0)"; +} +input[type=radio] + label { + margin-right: 14px; + display: inline-block; + margin-left: -28px; + padding-left: 20px; + background: url(../parksetCss/img/input-radio.png) no-repeat 0 center; + line-height: 24px; +} +input[type=radio]:checked + label { + background: url(../parksetCss/img/input-radio-active.png) no-repeat 0 center; +} +.areanamage-mapBg{ + background: url(../parksetCss/img/areamanage_baidimapIco.png) no-repeat; + width: 34px; + height: 34px; + position: absolute; + top: 0; + left: 190px; + background-position: 10px 9px; + cursor: pointer; +} \ No newline at end of file diff --git a/assets/pages/scripts/parkingshareFile/css/img/shareParkPorIco.png b/assets/pages/scripts/parkingshareFile/css/img/shareParkPorIco.png new file mode 100644 index 0000000..a034928 Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/shareParkPorIco.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/shareParkworkIco.png b/assets/pages/scripts/parkingshareFile/css/img/shareParkworkIco.png new file mode 100644 index 0000000..aa17299 Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/shareParkworkIco.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/sharesettle-c-bottom.png b/assets/pages/scripts/parkingshareFile/css/img/sharesettle-c-bottom.png new file mode 100644 index 0000000..314a2a5 Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/sharesettle-c-bottom.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/sharesettle-c-top.png b/assets/pages/scripts/parkingshareFile/css/img/sharesettle-c-top.png new file mode 100644 index 0000000..b73c169 Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/sharesettle-c-top.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/sharesettle-l-img.png b/assets/pages/scripts/parkingshareFile/css/img/sharesettle-l-img.png new file mode 100644 index 0000000..8330280 Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/sharesettle-l-img.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/sharesettle-r-bottom.png b/assets/pages/scripts/parkingshareFile/css/img/sharesettle-r-bottom.png new file mode 100644 index 0000000..b41bdb4 Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/sharesettle-r-bottom.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/sharesettle-r-top.png b/assets/pages/scripts/parkingshareFile/css/img/sharesettle-r-top.png new file mode 100644 index 0000000..5962e03 Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/sharesettle-r-top.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/img/sharespaceCirle.png b/assets/pages/scripts/parkingshareFile/css/img/sharespaceCirle.png new file mode 100644 index 0000000..e3a0e4b Binary files /dev/null and b/assets/pages/scripts/parkingshareFile/css/img/sharespaceCirle.png differ diff --git a/assets/pages/scripts/parkingshareFile/css/parkpoishareadd.css b/assets/pages/scripts/parkingshareFile/css/parkpoishareadd.css new file mode 100644 index 0000000..28c26cf --- /dev/null +++ b/assets/pages/scripts/parkingshareFile/css/parkpoishareadd.css @@ -0,0 +1,109 @@ +/*左侧 tree*/ +.parkpoi-container-l{ + width: 356px; + height: 715px; + overflow-y: auto; +} +.parkpoi-container-r{ + height:715px; + width:calc(100% - 380px); + width:-webkit-calc(100% - 380px); + width:-moz-calc(100% - 380px); + width:-ms-calc(100% - 380px); + width:-o-calc(100% - 380px); +} + +/* new topbar */ +.parkpoi-parking-l { + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.parkpoi-input72{ + width: 72%; + height: 34px; + line-height: 34px; +} +.parkpoi-margingl60{ + margin-left: 60px; +} +input[type=radio ] { + width: 28px; + height: 24px; + margin: 0; + padding: 0; + opacity: 0; + filter: "alpha(opacity=0)"; +} +input[type=radio] + label { + margin-right: 14px; + display: inline-block; + margin-left: -28px; + padding-left: 20px; + background: url(img/input-radio.png) no-repeat 0 center; + line-height: 24px; +} +input[type=radio]:checked + label { + background: url(img/input-radio-active.png) no-repeat 0 center; +} +.areanamage-mapBg{ + background: url(img/areamanage_baidimapIco.png) no-repeat; + width: 34px; + height: 34px; + position: absolute; + top: 0; + left: 177px; + background-position: 10px 9px; + cursor: pointer; +} +/*上传图片*/ +.img-container{ + width: 290px; + height: 150px; + background:#FFF; + margin-bottom:24px; + overflow: hidden; + border: 1px solid #d8e2e5; +} +.img-container>img{ + width: 293px; + height: 150px; +} +.img{ + width: 293px; + height: 150px; +} +.card-form{ + margin-left: 20px; +} +.fileinput-button { + position: relative; + display: inline-block; + overflow: hidden; + height: 34px; + width: 80px; + border-radius: 4px !important; +} + +.fileinput-button input{ + position: absolute; + right: 0px; + top: 0px; + opacity: 0; + height: 34px; + width: 80px; + -ms-filter: 'alpha(opacity=0)'; + font-size: 20px; +} +/*弹窗权重*/ +.modal { + z-index: 996 !important; +} +.modal-backdrop{ + z-index: 995 !important; +} +/*fixed-table-container top*/ +.fixed-table-container thead th .th-inner{ + padding: 6px 30px 6px 24px!important; +} diff --git a/assets/pages/scripts/parkingshareFile/css/sharesettle.css b/assets/pages/scripts/parkingshareFile/css/sharesettle.css new file mode 100644 index 0000000..a1781eb --- /dev/null +++ b/assets/pages/scripts/parkingshareFile/css/sharesettle.css @@ -0,0 +1,235 @@ +.sharesettle-parking-l{ + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.sharesettle-input78{ + width: 78%; + height: 34px; + line-height: 34px; +} +/*中间内容*/ +.sharesettle-border-r{ + height: 236px; + border-right: 1px solid #d8e2e5; +} +.sharesettle-l{ + left: 50%; + transform: translateX(-50%); + -ms-transform:translateX(-50%); /* IE 9 */ + -moz-transform:translateX(-50%); /* Firefox */ + -webkit-transform:translateX(-50%);/* Safari 和 Chrome */ + -o-transform:translateX(-50%); /* Opera */ +} +.sharesettle-l-img{ + width: 150px; + height: 150px; + padding: 5px; + border: 1px solid #d8e2e5; + border-radius: 50%!important; + margin: 0 auto; +} +.sharesettle-l-img img{ + width: 100%; + height: auto; + border-radius: 50%!important; +} +.sharesettle-l-name{ + margin-top: 20px; + font-size: 16px; + color: #4f5052; +} +.sharesettle-l-total{ + margin-top: 10px; + font-size: 16px; + color: #4f5052; +} +.sharesettle-l-total span{ + color: #ff0202; + font-size: 24px; + margin: 0 5px; +} +/*底部--------*/ +.porparkSpacecard{ + height: 143px; + width: 100%; + background-color: #f7f8fa; + margin-bottom: 24px; +} +.porparkSpacecard:last-child{ + margin-bottom:0 !important; +} +/*左侧卡片*/ +/*个人 背景icon*/ +.parkspaceCardpor-con{ + background: url("img/shareParkPorIco.png") no-repeat; + width: 316px; + height: 121px; + margin:22px 24px 0; + float: left; +} +/*单位 背景icon*/ +.parkspaceCardcom-con{ + background: url("img/shareParkworkIco.png") no-repeat; + width: 316px; + height: 121px; + margin:22px 24px 0; + float: left; +} +.parkcardmarl95{ + margin-left: 95px; +} +.parkspaceCardpor-parkName,.parkspaceCardcom-parkName{ + width: 195px; + height: 18px; + line-height: 18px; + font-size: 18px; + margin-top: 30px; + margin-bottom: 5px; +} +.parkspaceCardpor-porName,.parkspaceCardcom-porName{ + width: 195px; + font-size: 14px; + height: 14px; + line-height: 14px; +} +.parkspaceCardpor-porNum,.parkspaceCardcom-porNum{ + left: 0; + bottom: 10px; + width: 100%; + height: 16px; + line-height: 16px; + font-size: 16px; + letter-spacing: 8px; + text-align: center; +} +/* 中间 ul*/ +.parkspaceUl{ + float: left; + width:calc(100% - 484px); + width:-webkit-calc(100% - 484px); + width:-moz-calc(100% - 484px); + width:-ms-calc(100% - 484px); + width:-o-calc(100% - 484px); + height: 143px; +} +.parkspaceUl li{ + height: 143px; + width: 25%; + float: left; + /*background-color: red;*/ +} +.spaceCardline2{ + width: 100%; + height: 2px; + background-color: #c3c9d4; + margin-top: 50px; +} +.unsettledBgico{ + top: -10px; + left: 50%; + margin-left: -10px; + height: 20px; + width: 20px; + background: url(img/sharespaceCirle.png) no-repeat; +} +.unspaceCard-titsta{ + height: 20px; + line-height: 20px; + font-size: 14px; + text-align: center; + margin-top: 15px; +} +.unspaceCard-titNums{ + height: 40px; + line-height: 40px; + font-size: 24px; + text-align: center; +} +.settledBgico{ + top: -6px; + left: 50%; + margin-left: -6px; + height: 12px; + width: 12px; + background-color: #c3c9d4; + border-radius: 50% !important; +} +.spaceCard-titsta{ + height: 20px; + line-height: 20px; + font-size: 14px; + text-align: center; + margin-top: 15px; +} +.spaceCard-titNums{ + height: 40px; + line-height: 40px; + font-size: 18px; + text-align: center; +} +.lookPerpop{ + float: left; + margin:55px 24px; +} +.card-padbot24{ + padding-bottom: 24px; +} +/* +indexTab +*/ +.border-radius-common-none{ + height: 100px; + line-height: 100px; + text-align: center; +} +/*分页*/ +.callBackPager { + text-align: right; +} +.callBackallNum { + height: 34px; + line-height: 34px; + width: 120px; + /*top: 18px;*/ + left: 70px; + color: #888990; +} +.pagination { + margin-top: 16px !important; +} +.sharesettle-c-top{ + width: 80%; + height: 108px; + margin: 0 auto; + background: url("img/sharesettle-c-top.png") no-repeat 24px center; + padding: 24px 0 24px 100px; +} +.sharesettle-c-bottom{ + width: 80%; + height: 108px; + margin: 35px auto 0; + background: url("img/sharesettle-c-bottom.png") no-repeat 24px center; + padding: 24px 0 24px 100px; +} +.sharesettle-r-top{ + width: 80%; + height: 108px; + margin: 0 auto; + background: url("img/sharesettle-r-top.png") no-repeat 24px center; + padding: 24px 0 24px 100px; +} +.sharesettle-r-bottom{ + width: 80%; + height: 108px; + margin: 35px auto 0; + background: url("img/sharesettle-r-bottom.png") no-repeat 24px center; + padding: 24px 0 24px 100px; +} +/*底部*/ + + + + +/*弹窗*/ \ No newline at end of file diff --git a/assets/pages/scripts/parkingshareFile/pages/parkpoishareadd.html b/assets/pages/scripts/parkingshareFile/pages/parkpoishareadd.html new file mode 100644 index 0000000..7f7b850 --- /dev/null +++ b/assets/pages/scripts/parkingshareFile/pages/parkpoishareadd.html @@ -0,0 +1,234 @@ +
      + +
      +
      + 组织树 +
      +
        +
        + +
        +
        + + +
        + +
        +
        +
        + +
        + + +
        +
        + + +
        +
        + +
        + 查询 +
        + +
        +
        +
        +
        + +
        + +
        +
        + +
        +
        +
        + + +
        +
        +
        +
        + 详细记录 +
        +
        + +
        +
        + +
        +
        +
        +
        +
        +
        + +
        +
        +
        + +
        + +
        + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/parkingshareFile/pages/sharesettle.html b/assets/pages/scripts/parkingshareFile/pages/sharesettle.html new file mode 100644 index 0000000..bd3c600 --- /dev/null +++ b/assets/pages/scripts/parkingshareFile/pages/sharesettle.html @@ -0,0 +1,224 @@ + +
        +
        +
        +
        +
        + 选择日期 +
        + +
        +
        + +
        + 停车场 + +
        +
        + 车位搜索 + +
        +
        + + + +
        + 查询 +
        +
        +
        +
        + + + +
        +
        +
        +
        + 汇总统计 +
        +
        +
        +
        +
        + + +
        +
        +
        + 总计0个车位 +
        + +
        +
        +
        +
        +
        +
        未结算( 元 )
        +
        0
        +
        +
        +
        总应结( 元 )
        +
        0
        +
        +
        +
        +
        +
        第三方手续费( 元 )
        +
        0
        +
        +
        +
        平台手续费( 元 )
        +
        0
        +
        +
        +
        +
        + +
        +
        +
        + + +
        +
        +
        +
        + 单个车位 +
        +
        + +
        +
        +
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        +
        +
        + + + + + +
        +
        +
        +
        总共 0
        +
        + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/parkingshareFile/parkpoishareadd.js b/assets/pages/scripts/parkingshareFile/parkpoishareadd.js new file mode 100644 index 0000000..fb70bfc --- /dev/null +++ b/assets/pages/scripts/parkingshareFile/parkpoishareadd.js @@ -0,0 +1,941 @@ + +//新增 +var areaTree = { + //初始化树 + initTree: function() { + $.fn.zTree.init($("#user_org_tree"), areaTree.setting, areaTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.expandAll(true); + areaTree.selectedNodes(0); + }, + setting: { + view: { + selectedMulti: true //静止多选 + }, + check: { + enable: false, //显示多选框 + chkStyle: "checkbox", + // chkStyle: "radio", + radioType: "all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + callback: { + onCheck: zTreeOnCheck, + onClick: zTreeOnClick + }, + edit: { + enable: false + } + }, + //获取选中的节点 + getSelectedNodeId:function(areaType){ + var plNo=""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getSelectedNodes(); + if(nodes.length>0) { + for (var i = 0; i < nodes.length; i++) { + if(null != nodes[i] && areaType == nodes[i].areaType ){ + plNo =nodes[i].id; + break; + } + } + }//if + return plNo; + }, + hideNodes:function(nodes){ + //隐藏指定的节点 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.hideNodes(nodes); + }, + showAllNodes: function () { + //将所有隐藏的节点显示 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodesByParam("isHidden", true); + treeObj.showNodes(nodes); + }, + expandAll:function(expandFlag){ + //expandFlag = true 表示 展开 全部节点 + //expandFlag = false 表示 折叠 全部节点 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.expandAll(expandFlag); + }, + getNodesByFilter: function (filter, invokeParam) { + + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + return treeObj.getNodesByFilter(filter, false, null, invokeParam); + + + }, + getNodesByParamFuzzyAll:function(){ + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodes(); + for(var i = 0;i 0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function(newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function(checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function(treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function(ids) { + var nodes = areaTree.getNodesByIds(ids); + for(var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node == null) { + continue; + } + node.checked = true; + areaTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function(id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var treeNode = areaTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function(id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function(ids) { + var nodes = []; + for(var i = 0; i < ids.length; i++) { + nodes[i] = areaTree.getNodeById(ids[i]); + } + return nodes; + }, + //根据id取消选/选中节点 + updateNodesForNotChecked: function(id,checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + node.checked = checked; + treeObj.updateNode(node); + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function(checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for(var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForArea: function(checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index = 0; + for(var i = 0; i < nodes.length; i++) { + if(null != nodes[i].areaType && "70" == nodes[i].areaType) { + ids[index++] = { + areaId: nodes[i].id, + areaType: nodes[i].areaType, + plNo: nodes[i].pId, + orgAreaType: 1 + }; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function(checked) { + var names = ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for(var i = 0; i < nodes.length; i++) { + names = names + "," + nodes[i].name; + } + return names; + }, + +//获取选中的节点集合 + getSelectedNodes: function() { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData: function() { + var sysCode = sessionStorage.getItem("sysCode"); + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode: sysComm.sysCode, + }; + var zNodes = []; + sysAjax({ + method: 'POST', + url: dataUrl.util.getAreaTreeParkByOpId(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function(res) { + if(isError(res)) { + return false; + } + // console.log("res.data="+res.data); + var i=0; + $.each(res.data, function(index,rows) { + var data=""; + /*if("70"==rows.areaType && v_areaBlockId ==""){ + v_areaBlockId=rows.id; + }*/ + if(rows.areaType == '70' || rows.areaType ==70){//当前节点为停车场--id设为停车场编号 + if(i==0){ + firstPlNo=rows.plNo;//取第一个停车场编号 + i++; + } + data={id:rows.plNo,pId:rows.parentId,name:rows.areaName,areaType:rows.areaType}; + } + else{ + data={id:rows.id,pId:rows.parentId,name:rows.areaName,areaType:rows.areaType}; + } + + zNodes[index] =data; + }); + + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } +}; + +documentBindFunc.on('click',"#parkpoi-addBtn",function(){ + fun.initAddDialog(true);//初始化停车场 +}); +documentBindFunc.on('click', '#queryBtn', function() { + //校验 + var plNo = areaTree.getSelectedNodeId(70); + if(plNo == undefined || plNo == null || plNo==''){ + $('.ITD-alertmodel-contentmsg').text('请先选择左侧停车场!'); + $('#parkpoipop_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#parkpoipop_alertmodel').modal('hide') + },2000); + // swal({title:"提示",text:"请选择左侧停车场 !",type:"warning",timer:2000,allowOutsideClick:true}); + return ; + } + + fun.createTableData(); +}); +var fun = { + init:function () { + console.log('共享新增') + //停车场初始化 + $('#parktypeIds').selectpicker('refresh'); + //审核状态 + $('#inType').selectpicker('refresh'); + //车位状态 + $('#carpoiType').selectpicker('refresh'); + //初始化共享截止时间 + $("#daterange-btn").datetimepicker({ + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + //初始化区域tree + areaTree.initTree(); + //初始化表格数据 + fun.createTableData(); + + }, + //初始化添加弹窗 + initAddDialog:function(initPark){//是否初始化停车场 + $('#parkpoi-addParkinglot').hide(); + //选择停车场初始化 + if(initPark){ + commSelect.plName_select($("#parkpoi-parkName-add"),false,null); + $("#parkpoi-parkName-add").selectpicker('refresh'); + var plNo = areaTree.getSelectedNodeId(70); + if(plNo == undefined || plNo == null || plNo==''){ + plNo = firstPlNo; + } + $("#parkpoi-parkName-add").selectpicker('val',"[\""+plNo+"\"]"); + } + + + //车锁编码初始化 + $('#carpoiLock-add').val(''); + //收费方式初始化 + $('#parkpoi_parktypeadd0').parent().addClass('checked'); + $('#parkpoi_parktypeadd0')[0].checked=true; + //道路位置初始化 + $('#parkpoi_parkpoi0').parent().addClass('checked'); + $('#parkpoi_parkpoi0')[0].checked=true; + //地址初始化 + $('#parkpoi-parkAddress-add').val(''); + //服务电话初始化 + $('#parkpoi-serviceTel-add').val(''); + //经纬度初始化 + $('#parkpoi-lonlat-add').val(''); + //方位初始化 + $('#parkpoi-plState-add').selectpicker('val',0); + //选择文件初始化 + $('#drivingLicence').val(''); + $('.img-container').empty(); + //初始开始时间 + $("#parkpoi-startTime").val(''); + //初始化结束时间 + $("#parkpoi-endTime").val(''); + $("#parkpoi-startTime").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + minView: "month",//设置只显示到月份 + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }).on("changeDate", function (ev) { + var startval = moment($("#parkpoi-startTime").val()).add('days', 0).format('YYYY-MM-DD'); + var val = moment($("#parkpoi-startTime").val()).add('days', 0).format('YYYY-MM-DD'); + $("#parkpoi-endTime").datetimepicker("setStartDate", val); + // $("#timeinEndDate").datetimepicker("setEndDate", val); + $("#parkpoi-endTime").val(val) + $('#parkpoi-endTime').datetimepicker('update'); + $("#parkpoi-endTime").datetimepicker({ + format: 'yyyy-mm-dd', + minView: "month",//设置只显示到月份 + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + });; + $("#parkpoi-endTime").datetimepicker({ + startDate: moment().add('days', 0).format('YYYY-MM-DD'), + //endDate: moment().subtract('days', 0).format('YYYY-MM-DD HH:ss'), + format: 'yyyy-mm-dd', + minView: "month",//设置只显示到月份 + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + + + $('#parkpoi-addmodel').modal('show'); + }, + //初始化表格数据 + createTableData: function() { + $('#parkpoitable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + // selectItemName: 'personCustName', + clickToSelect: true, //是否启用点击选中行 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + {title:'',width: '1%',checkbox: true,align: 'center'}, + { + field: 'id', + title: 'id', + width: '10%', + visible: false, + align: 'left' + }, + { + field: 'plName', + title: '停车场名称', + width: '10%', + visible: true, + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'psPayType', + title: '收费方式', + width: '10%', + align: 'left', + formatter: commonObj.psPayTypeFormatter + }, + { + field: 'psBusiTimeStart', + title: '共享开始时间', + width: '10%', + align: 'left', + formatter: commonObj.timeFormatter + }, + { + field: 'psBusiTimeEnd', + title: '共享结束时间', + width: '10%', + align: 'left', + formatter: commonObj.timeFormatter + }, + { + field: 'psServiceTel', + title: '服务电话', + width: '10%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'psSourceType', + title: '车位来源', + width: '10%', + align: 'left', + formatter: commonObj.psSourceTypeFormatter + }, + + { + field: 'psIsOccupy', + title: '车位状态', + width: '10%', + align: 'left', + visible: true, + formatter: commonObj.psIsOccupyFormatter + }, + { + field: 'psExamineState', + title: '审核状态', + width: '10%', + align: 'left', + visible: true, + formatter: commonObj.psExamineStateFormatter + } + ] + }); + + }, + /*获取查询参数*/ + getQueryParam: function() { + var psIsOccupy =$('#carpoiType').selectpicker('val'); + var psExamineState = $('#inType').selectpicker('val'); + var plNos = []; + var plNo = areaTree.getSelectedNodeId(70); + if(plNo == undefined || plNo == null || plNo==''){ + plNo = firstPlNo; + } + plNos.push(plNo); + var psBusiTimeEnd = $("#daterange-btn").val().trim(); + if(psBusiTimeEnd!=null && psBusiTimeEnd!=''){ + psBusiTimeEnd+=':00'; + psBusiTimeEnd = new Date(psBusiTimeEnd.replace(new RegExp(/-/gm) ,"/")); + } + else{ + psBusiTimeEnd = null; + } + //var plNos=fun.initPark(); + + var req = { + baseRequest :{ + pageNum: 1, + pageSize: 10 + }, + plNos:plNos, + psIsOccupy: psIsOccupy, + psExamineState: psExamineState, + psBusiTimeEnd: psBusiTimeEnd, + + }; + console.log(req); + return req; + }, +}; + + +fun.init(); + +/**批量删除共享车位.*/ +documentBindFunc.on('click','#areamanage_parkset-del',function () { + var rowsData= $("#parkpoitable").bootstrapTable('getSelections'); + if(rowsData.length<=0){ + $('.ITD-alertmodel-contentmsg').text('请选中要删除的车位 !'); + $('#parkpoipop_alertmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#parkpoipop_alertmodel').modal('hide'); + },2000); + + // swal({title:"提示",text:"请选中要删除的车位 !",type:"warning",timer:2000,allowOutsideClick:true}); + return false; + } + var deleteIds = []; + $.each(rowsData,function(index,row){ + if(row != null && row.id != null){ + deleteIds.push(row.id); + } + }); + + //停车场删除弹窗 确定按钮 提交事件 + var req = { + ids:deleteIds, + sysCode: sysComm.sysCode + }; + console.log(deleteIds); + sysAjax({ + method: 'POST', + url: dataUrl.util.deleteShareBerthInfoByIds(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + $('.ITD-alertmodel-contentmsg').text('删除车位成功!'); + $('#parkpoipop_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#parkpoipop_alertmodel').modal('hide') + },2000); + // swal({title:"提示",text:"删除车位成功!",type:"success",timer:2000,allowOutsideClick:true}); + //初始化table + fun.createTableData(); + } else { + console.log(res); + $('.ITD-alertmodel-contentmsg').text('删除车位失败!'); + $('#parkpoipop_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#parkpoipop_alertmodel').modal('hide') + },2000); + // swal({title:"提示",text:"删除车位失败 !",type:"warning",timer:2000,allowOutsideClick:true}); + return false; + } + } + }); +}); + +//弹窗 新增 +/*$(document).on('click','#parkpoi-addBtn',function(){ +//停车场初始化 + $('#parkpoi-parkName-add').selectpicker('render'); + //停车场初始化 + $('#parkpoi-plState-add').selectpicker('refresh'); + + $('#parkpoi-addmodel').modal('show'); + +});*/ + +//新增字段校验 +function valideAddInfo(){ + if($("#parkpoi-parkName-add").val()==null || $("#parkpoi-parkName-add").val()==''){ + $('#parkpoi-addParkinglot').text("停车场必选!"); + $('#parkpoi-addParkinglot').show(); + return false; + } + //地址 + if($("#parkpoi-parkAddress-add").val()==null || $("#parkpoi-parkAddress-add").val()==''){ + $('#parkpoi-addParkinglot').text("地址必填!"); + $('#parkpoi-addParkinglot').show(); + return false; + } + //服务电话 + var phoneNo = $("#parkpoi-serviceTel-add").val(); + if(phoneNo!=null && phoneNo!='' && !(/^1(3|4|5|7|8)\d{9}$/.test(phoneNo))){ + $('#parkpoi-addParkinglot').text("请填写正确的手机号码!"); + $('#parkpoi-addParkinglot').show(); + return false; + } + //共享开始时间 + if($("#parkpoi-startTime").val()==null || $("#parkpoi-startTime").val()==''){ + $('#parkpoi-addParkinglot').text("共享开始时间必填!"); + $('#parkpoi-addParkinglot').show(); + return false; + } + //共享结束时间 + if($("#parkpoi-endTime").val()==null || $("#parkpoi-endTime").val()==''){ + $('#parkpoi-addParkinglot').text("共享结束时间必填!"); + $('#parkpoi-addParkinglot').show(); + return false; + } + $('#parkpoi-addParkinglot').hide(); + return true; +} +//新增提交按钮 +documentBindFunc.on('click','#parkpoi-add-submit',function () { + if(valideAddInfo()){ + flag = true; + addShareBerthInfoAjax(true); + } + +}); +//新增提交 +function addShareBerthInfoAjax(flag){ + + var plNo = $('#parkpoi-parkName-add').selectpicker('val');//停车场编号 + plNo = plNo.substring(2,plNo.length); + plNo = plNo.substr(0,plNo.length-2); + var psLockBindNo = $('#carpoiLock-add').val().trim();//车锁编码 + var psPayType = $("input[name='parkpoi-pltype-add']:checked").val();//收费方式 + var psRoadPosition = $("input[name='parkpoi-poi-add']:checked").val();//道路位置 + var psAddress = $('#parkpoi-parkAddress-add').val().trim();//地址 + var psServiceTel = $('#parkpoi-serviceTel-add').val().trim();//服务电话 + var lonLat = $('#parkpoi-lonlat-add').val().trim();//经纬度 + var psLonId = null; + var psLatId = null; + if(lonLat!=null && lonLat!=''){ + lonLat=lonLat.split(','); + psLonId = lonLat[0]; + psLatId = lonLat[1]; + } + var psDirection = $('#parkpoi-plState-add').selectpicker('val');//方位 + var psBusiTimeStart = $("#parkpoi-startTime").val().trim()+' 00:00:00';//共享开始时间 + var psBusiTimeEnd = $("#parkpoi-endTime").val().trim()+' 23:59:59';//共享结束时间 + //图片 + //var berthFile = document.getElementById("drivingLicence").files[0]; + var req = { + plNo:plNo, + psLockBindNo:psLockBindNo, + psPayType:psPayType, + psRoadPosition:psRoadPosition, + psAddress:psAddress, + psServiceTel:psServiceTel, + psLonId:psLonId, + psLatId:psLatId, + psDirection:psDirection, + psBusiTimeStart:new Date(psBusiTimeStart.replace(new RegExp(/-/gm) ,"/")), + psBusiTimeEnd:new Date(psBusiTimeEnd.replace(new RegExp(/-/gm) ,"/")), + sysCode: sysComm.sysCode + }; + console.log(req); + //submit + var fd = new FormData(); + fd.append("plNo", req.plNo); + fd.append("psLockBindNo", req.psLockBindNo); + fd.append("psPayType", req.psPayType); + fd.append("psRoadPosition", req.psRoadPosition); + fd.append("psAddress", req.psAddress); + fd.append("psServiceTel", req.psServiceTel); + fd.append("psLonId", req.psLonId); + fd.append("psLatId", req.psLatId); + fd.append("psDirection", req.psDirection); + fd.append("psBusiTimeStart", req.psBusiTimeStart); + fd.append("psBusiTimeEnd", req.psBusiTimeEnd); + fd.append("sysCode", req.sysCode); + //图片 + var picFile = document.getElementById('drivingLicence').files[0] + if(picFile!=undefined && picFile!=null){ + fd.append("picFile", picFile); + } + else{ + fd.append("picFile", null); + } + var xhr = new XMLHttpRequest(); + xhr.upload.addEventListener("progress", uploadProgressAreamanger, false); + xhr.addEventListener("load", uploadCompleteAreamanger, false); + xhr.addEventListener("error", uploadFailedAreamanger, false); + xhr.addEventListener("abort", uploadCanceledAreamanger, false); + xhr.open("POST", dataUrl.util.insertParkingBerthShare()); + xhr.setRequestHeader("x-auth-token", fn.getToken()); + xhr.send(fd); + + + /*sysAjax({ + method: 'POST', + url: dataUrl.util.insertParkingBerthShare(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + swal({title:"提示",text:"新增车位成功!",type:"success",timer:2000,allowOutsideClick:true}); + if(flag){ + //关闭新增弹窗 + $('#parkpoi-addmodel').modal('hide'); + } + else{ + //初始化弹窗数据 + fun.initAddDialog(false);//不初始化停车场 + } + //初始化table + fun.createTableData(); + } else { + console.log(res); + swal({title:"提示",text:"新增车位失败 !",type:"warning",timer:2000,allowOutsideClick:true}); + return false; + } + } + });*/ +} +function uploadCompleteAreamanger(evt) { + /* 服务器端返回响应时候触发event事件*/ + var result = JSON.parse(evt.target.responseText); + // + console.log(evt.target.responseText); + + if(result != null && "8888" != result.code) { + //console.log(res); + $('.ITD-alertmodel-contentmsg').text('新增车位失败!'); + $('#parkpoipop_alertmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#parkpoipop_alertmodel').modal('hide'); + },2000); + // swal({title:"提示",text:"新增车位失败 !",type:"warning",timer:2000,allowOutsideClick:true}); + return false; + + } else { + $('.ITD-alertmodel-contentmsg').text('新增车位成功!'); + $('#parkpoipop_alertmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#parkpoipop_alertmodel').modal('hide'); + },2000); + // swal({title:"提示",text:"新增车位成功!",type:"success",timer:2000,allowOutsideClick:true}); + if(flag){ + //关闭新增弹窗 + $('#parkpoi-addmodel').modal('hide'); + } + else{ + //初始化弹窗数据 + fun.initAddDialog(false);//不初始化停车场 + } + //初始化table + fun.createTableData(); + } + +} +function uploadProgressAreamanger(evt) { + if(evt.lengthComputable) { + var percentComplete = Math.round(evt.loaded * 100 / evt.total); + + } +} +function uploadFailedAreamanger(evt) { + console.log("There was an error attempting to upload the file."); +} + +function uploadCanceledAreamanger(evt) { + console.log("The upload has been canceled by the user or the browser dropped the connection."); +} + +//继续添加 +documentBindFunc.on('click','#parkpoi-addother-submit',function () { + if(valideAddInfo()){ + flag = false; + addShareBerthInfoAjax(false); + } + +}); + +/** + * 上传图片并预览 + */ +function previewImg(fileInput,imgDiv){ + if(window.FileReader){//支持FileReader的时候 + var reader=new FileReader(); + reader.readAsDataURL(fileInput.files[0]); + reader.onload=function(evt){ + imgDiv.innerHTML="\"; + } + }else{//兼容ie9- + imgDiv.innerHTML='
        '; + } +} +function selectImg(fileInputs,imgDivs){ + var checkImg=new RegExp("(.jpg$)|(.png$)|(.bmp$)|(.jpeg$)","i"); + var i=0; + for(;i0&&isIE<9){ + document.getElementsByClassName=function(cls){ + var els=this.getElementsByTagName('*'); + var ell=els.length; + var elements=[]; + for(var n=0;n + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ +function zTreeOnCheck (event, treeId, treeNode) { + if($("#vipcardrule_editmodel").css("display")=='none' ){ + // console.log('编辑页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + if(treeNode.checked === true){ + arrid.push(treeNode.id); + // console.log(arrid) + $('#vipcardrule-parkCheck').append(''+treeNode.name+'') + }else{ + arrid.remove(treeNode.id); + $('.parkCheck'+treeNode.id).remove(); + }; + }else{ + // console.log('编辑页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + if (treeNode.checked === true) { + //还需要判断下 editarrid 是否存在这个treeNode.id 如果存在 就不添加了。 + if($.inArray(treeNode.id, editarrid) == -1){ + editarrid.push(treeNode.id); + // console.log(editarrid) + $('#edit-checked').append('' + treeNode.name + ''); + }else{ + return + } + + } else { + editarrid.remove(treeNode.id); + + $('.parkCheck' + treeNode.id).remove(); + $('.parkCheck' + treeNode.id).remove(); + } + } +}; +/** + * 树-点击事件 + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ +function zTreeOnClick(event, treeId, treeNode) { + if(treeNode !=null && "70"==treeNode.areaType){ + fun.createTableData(); + } +}; +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryShareBerthInfoByPlNoForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} diff --git a/assets/pages/scripts/parkingshareFile/sharesettle.js b/assets/pages/scripts/parkingshareFile/sharesettle.js new file mode 100644 index 0000000..c5f5f1e --- /dev/null +++ b/assets/pages/scripts/parkingshareFile/sharesettle.js @@ -0,0 +1,809 @@ +//time +var psBerthNoTwo=null; +var beginTime = moment().subtract('days', 7).format('YYYY-MM-DD') + " 00:00:00"; +var endTime = moment().subtract('days', 1).format('YYYY-MM-DD') + " 23:59:59"; +var fun = { + init: function () { + //初始化停车场 + fun.initShareParkData(); + + /**时间初始化*/ + $('#sharesettle-daterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#sharesettle-daterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#sharesettle-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + $("#sharesettle-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + + // 点击 详情 弹窗 + documentBindFunc.on('click', '.lookPerpop', function () { + fun.showDetailShare(this); + }); + }, + initShareParkData: function () { + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + sysCode: sysComm.sysCode + }; + //条件查询 + + var opt = { + method: 'post', + url: dataUrl.util.queryParkShardPlNoList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data = res.data.rows; + if (data != null) { + $("#settleParkname").empty(); + var html = ''; + var plNos = []; + var plNames=[]; + for (var i = 0; i < data.length; i++) { + if (plNos.indexOf(data[i].plNo) == -1) { + plNos.push(data[i].plNo); + plNames.push(data[i].plName); + html += ""; + } + } + // var plnosStr = JSON.stringify(plNos); + // html = '' + html; + $("#settleParkname").append(html); + $('#settleParkname').selectpicker('refresh'); + + fun.querySettlementShareSummary(); + fun.querySettlementShareSummaryForSum(); + } + + } + + } + }; + sysAjax(opt); + + }, + //弹窗 车位详情 + createTableDataPop: function () { + $('#share-detailtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + // sortable: true, //是否启用排序 + // sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '上一页', + paginationNextText: '下一页', + ajax: tableLoadRequestPop,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'checkDate', + title: '日期', + width: '10%', + align: "left", formatter: checkDateFormatter + }, + { + field: 'psBerthNo', + title: '结算对象', + width: '10%', + align: "left", + }, + { + field: 'settlementTotalFee', + title: '总应结', + width: '10%', + align: "left", + formatter: fun.money + }, + { + field: 'nosettlementTotalFee', + title: '未结算', + width: '10%', + align: "left", + formatter: nosettlementTotalFeeFormatter + }, + { + field: 'cashFee', + title: '微信', + width: '10%', + align: "left", + visible: false, + formatter: fun.money + }, + { + field: 'balanceFee', + title: '支付宝', + width: '10%', + align: "left", + visible: false, + formatter: fun.money + }, + { + field: 'threeSevFee', + title: '第三方手续费', + width: '10%', + align: "left", + formatter: threeSevFeeFormatter + }, + { + field: 'platformSrvFee', + title: '平台服务费', + width: '10%', + align: "left", + formatter: fun.money + }, + + ] + + }); + function checkDateFormatter(value) { + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 1); + } + } + + function nosettlementTotalFeeFormatter(value, row, index) { + + var settlementTotalFee = row.settlementTotalFee; + if (settlementTotalFee == null) { + return 0; + } + var allFee = 0; + if (row.wxFee != null) { + allFee = allFee + row.wxSrvFee; + } + if (row.aliFee != null) { + allFee = allFee + row.aliSrvFee; + } + if (row.balanceFee != null) { + allFee = allFee + row.balanceSrvFee; + } + if (allFee == "0.00") { + return (settlementTotalFee / 100).toFixed(2); + } else { + return ((settlementTotalFee - allFee) / 100).toFixed(2); + } + + } + + function threeSevFeeFormatter(value, row, index) { + var allFee = 0; + if (row.wxFee != null) { + allFee = allFee + row.wxSrvFee; + } + if (row.aliFee != null) { + allFee = allFee + row.aliSrvFee; + } + if (row.balanceFee != null) { + allFee = allFee + row.balanceSrvFee; + } + if (allFee == "0.00") { + return 0; + } else { + return (allFee / 100).toFixed(2); + } + + } + + }, + + /*获取查询参数*/ + getParamForsharePop: function () { + var plNos = JSON.parse($("#settleParkname").val()); + var statime = $("#sharesettle-daterange-btnsta").val(); + var endtime = $("#sharesettle-daterange-btnend").val(); + var beginTime = statime; + var endTime = endtime; + var psBerthNo = $("#sharesettle-spaceSearchbtn").val(); + + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime + " 00:00:00").replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime + " 23:59:59").replace(/-/g, "/")); + + + var req = { + plNos: plNos, + beginTime: beginTime, + endTime: endTime, + psBerthNo: psBerthNo + }; + console.log(req); + return req; + }, + money: function (value) { + if (value == null || value == undefined || value == "0.00") { + return 0; + } else { + return (value / 100).toFixed(2); + } + }, + querySettlementShareSummaryForSum: function () { + var req = fun.getParamForsharePop(); + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.sysCode=sysComm.sysCode; + console.log(req); + //1.分页查询停车场信息统计和今日收益 + var inComeAjax = { + method: "post", + url: dataUrl.util.querySettlementShareSummary(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if ("8888" == res.code) { + var data = res.data; + var total = data.total; + var settlementTotalFeeSum=0; + var platformSrvFeeSum=0; + var allFeeSum = 0; + var nosettlementTotalFeeSum=0; + if (data.rows != undefined || data.rows != null || data.rows.length != 0) { + var data=data.rows; + for(var index in data){ + settlementTotalFeeSum=data[index].settlementTotalFee==null?0:data[index].settlementTotalFee; + platformSrvFeeSum=data[index].platformSrvFee==null?0:data[index].platformSrvFee; + if (data[index].wxFee != null) { + allFeeSum = allFeeSum + data[index].wxSrvFee; + } + if (data[index].aliFee != null) { + allFeeSum = allFeeSum + data[index].aliSrvFee; + } + if (data[index].balanceFee != null) { + allFeeSum = allFeeSum + data[index].balanceSrvFee; + } + + } + var plName=data[0].plName; + console.log(plName); + $("#plNames").text(plName); + + } + nosettlementTotalFeeSum=settlementTotalFeeSum-allFeeSum-platformSrvFeeSum; + $("#settlementTotalFeeSum").text((settlementTotalFeeSum/100).toFixed(2)); + $("#allFeeSum").text((allFeeSum/100).toFixed(2)); + $("#platformSrvFeeSum").text((platformSrvFeeSum/100).toFixed(2)); + $("#noSettlementTotalFeeSum").text((nosettlementTotalFeeSum/100).toFixed(2)); + $("#shareBerthTotal").text(total); + + } + } + }; + sysAjax(inComeAjax); + }, + //车场概况 + querySettlementShareSummary: function (curr) { + var totalCount = 0, showCount = 10, limit = 10; + var dataList = "";//返回的数据 + var req = fun.getParamForsharePop(); + //条件查询 + req.baseRequest = { + pageNum: (curr == null || curr == "" || curr == undefined) ? 1 : curr, + pageSize: 10 + }; + req.sysCode=sysComm.sysCode; + console.log(req); + //1.分页查询停车场信息统计和今日收益 + var inComeAjax = { + method: "post", + url: dataUrl.util.querySettlementShareSummary(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if ("8888" == res.code) { + var data = res.data; + console.log(data) + if (data.rows == undefined || data.rows == null || data.rows.length == 0) { + $("#personBerthDIV").html('
        暂无数据记录
        '); + $('.indexTab').css('display','none'); + return; + } + $('.indexTab').css('display','block'); + totalCount = data.total; + //console.log(totalCount) + //返回总条数 + $('#callBackallNumForShare').text(totalCount); + limit = data.rows.length; + //console.log(limit); + // showCount = data.rows.length; + dataList = data.rows; + parkData = dataList; + fun.showsummaryShare(dataList); + $('#callBackPager').extendPagination({ + totalCount: totalCount, + showCount: showCount, + limit: limit, + callback: function (curr, limit, totalCount,dataList) { + fun.SecondCallbackShareAjax(curr); + } + }); + + } + } + }; + sysAjax(inComeAjax); + }, + SecondCallbackShareAjax: function (curr) { + var totalCount = 0, showCount = 10, limit = 10; + var dataList = "";//返回的数据 + var req = fun.getParamForsharePop(); + //条件查询 + req.baseRequest = { + pageNum: (curr == null || curr == "" || curr == undefined) ? 1 : curr, + pageSize: 10 + }; + req.sysCode=sysComm.sysCode; + //1.分页查询停车场信息统计和今日收益 + var inComeAjax = { + method: "post", + url: dataUrl.util.querySettlementShareSummary(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if ("8888" == res.code) { + var data = res.data; + totalCount = data.total; + limit = data.rows.length; + // showCount = data.rows.length; + dataList = data.rows; + // parkData = dataList; + fun.showsummaryShare(dataList); + + } + } + }; + sysAjax(inComeAjax); + }, +//处理共享结算数据展示 + showsummaryShare: function (data) { + console.log(data); + var html = ''; + $.each(data, function (index, item) { + + var settlementTotalFee=item.settlementTotalFee==null?0:item.settlementTotalFee; + var platformSrvFee=item.platformSrvFee==null?0:item.platformSrvFee; + var nosettlementTotalFee=0; + var allFee = 0; + if (item.wxFee != null) { + allFee = allFee + item.wxSrvFee; + } + if (item.aliFee != null) { + allFee = allFee + item.aliSrvFee; + } + if (item.balanceFee != null) { + allFee = allFee + item.balanceSrvFee; + } + if (allFee == "0.00") { + nosettlementTotalFee=settlementTotalFee ; + } else { + nosettlementTotalFee=settlementTotalFee - allFee; + } + + // + html += '
        '; + + if(null!=item.accountType){ + if(1==parseInt(item.accountType)){ + html += + '
        ' + + '
        '+item.plName+'
        '+ + '
        ' + item.plName + '(个人)
        '+ + '
        ' + item.psBerthNo + '
        '; + + }else{ + html += + '
        ' + + '
        '+item.plName+'
        '+ + '
        ' + item.plName + '(个人)
        '+ + '
        ' + item.psBerthNo + '
        '; + + } + + }else{ + html +='
        ' + + '
        '+item.plName+'
        '+ + '
        ' + item.plName + '(个人)
        '+ + '
        ' + item.psBerthNo + '
        '; + + } + + html += '
        ' + + '
          ' + + '
        • ' + + '
          ' + + '' + + '
          ' + + '
          未结算
          ' + + '
          '+(nosettlementTotalFee/100).toFixed(2)+'
          ' + + '
        • ' + + '
        • ' + + '
          ' + + '' + + '
          ' + + '
          总应结
          ' + + '
          '+(settlementTotalFee/100).toFixed(2)+'
          ' + + '
        • ' + + '
        • ' + + '
          ' + + '' + + '
          ' + + '
          第三方续费
          ' + + '
          '+(allFee/100).toFixed(2)+'
          ' + + '
        • ' + + '
        • ' + + '
          ' + + '' + + '
          ' + + '
          平台服务费
          ' + + '
          '+(platformSrvFee/100).toFixed(2)+'
          ' + + '
        • ' + + '
        ' + + '
        详情
        ' + + '
        '; + + }); + + $("#personBerthDIV").empty(); + $("#personBerthDIV").append(html); + + }, + showDetailShare:function (element) { + //console.log(element); + psBerthNoTwo = $(element).attr('psberthno'); + //console.log(paBerthNoTwo); + fun.createTableDataPop(); + $('#sharesettle-detailModal').modal('show'); + } + +}; + +fun.init(); + +//点击查询按钮 +documentBindFunc.on('click', '#sharesettle-QueryBtn', function () { + fun.querySettlementShareSummary(); + fun.querySettlementShareSummaryForSum(); +}); + + +function tableLoadRequestPop(params) { + var req = fun.getParamForsharePop(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.psBerthNo=psBerthNoTwo; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.querySettlementShareDetail(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + + } + }; + sysAjax(opt); +} + + +//点击导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#shareBerthBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#shareBerthBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#shareBerthBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#shareBerthBtn").val("导出"); + } + else { + curCount--; + $("#shareBerthBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#shareBerthBtn',function (){ + //总条数 + var shareNum=$('#callBackallNumForShare').text(); +console.log(shareNum) + //提示 无数据不导出 + if(shareNum<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(shareNum>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + var req = fun.getParamForsharePop(); + var beginTime = DateUtils.long2String(req.beginTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + + var url = dataUrl.util.exportSettlementShareSummary(); + var forms = exportFormforShare(url, beginTime, endTime, req.plNos, req.psBerthNo + ); + forms.submit(); +}); + + + + +function exportFormforShare(url, beginTime, endTime, plNos, psBerthNo +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "beginTime"; + input.value = beginTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endTime"; + input2.value = endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + //input2.type = "hidden"; + input3.name = "plNos"; + input3.value = plNos; + form.appendChild(input3); + + + var input16 = document.createElement("input"); + //input15.type = "hidden"; + input16.name = "psBerthNo"; + input16.value = psBerthNo; + form.appendChild(input16); + + return form; + +}; + + + + + + + + + + + + + + +/** + * 分页处理 + * @param {Object} $ + */ +(function ($) { + $.fn.extendPagination = function (options) { + var defaults = { + //pageId:'', + totalCount: '', + showPage: '5', + limit: '5', + callback: function () { + return false; + } + }; + $.extend(defaults, options || {}); + if (defaults.totalCount == '') { + //alert('鎬绘暟涓嶈兘涓虹┖!'); + $(this).empty(); + return false; + } else if (Number(defaults.totalCount) <= 0) { + //alert('鎬绘暟瑕佸ぇ浜�0!'); + $(this).empty(); + return false; + } + if (defaults.showPage == '') { + defaults.showPage = '10'; + } else if (Number(defaults.showPage) <= 0)defaults.showPage = '10'; + if (defaults.limit == '') { + defaults.limit = '5'; + } else if (Number(defaults.limit) <= 0)defaults.limit = '5'; + var totalCount = Number(defaults.totalCount), showPage = Number(defaults.showPage), + limit = Number(defaults.limit), totalPage = Math.ceil(totalCount / limit); + if (totalPage > 0) { + var html = []; + html.push('
          '); + html.push(' '); + html.push(''); + if (totalPage <= showPage) { + for (var i = 1; i <= totalPage; i++) { + if (i == 1) html.push('
        • ' + i + '
        • '); + else html.push('
        • ' + i + '
        • '); + } + } else { + for (var j = 1; j <= showPage; j++) { + if (j == 1) html.push('
        • ' + j + '
        • '); + else html.push('
        • ' + j + '
        • '); + } + } + html.push(''); + html.push('
        '); + $(this).html(html.join('')); + if (totalPage > showPage) $(this).find('ul.pagination li.next').prev().removeClass('hidden'); + + var pageObj = $(this).find('ul.pagination'), preObj = pageObj.find('li.previous'), + currentObj = pageObj.find('li').not('.previous,.disabled,.next'), + nextObj = pageObj.find('li.next'); + + function loopPageElement(minPage, maxPage) { + var tempObj = preObj.next(); + for (var i = minPage; i <= maxPage; i++) { + if (minPage == 1 && (preObj.next().attr('class').indexOf('hidden')) < 0) + preObj.next().addClass('hidden'); + else if (minPage > 1 && (preObj.next().attr('class').indexOf('hidden')) > 0) + preObj.next().removeClass('hidden'); + if (maxPage == totalPage && (nextObj.prev().attr('class').indexOf('hidden')) < 0) + nextObj.prev().addClass('hidden'); + else if (maxPage < totalPage && (nextObj.prev().attr('class').indexOf('hidden')) > 0) + nextObj.prev().removeClass('hidden'); + var obj = tempObj.next().find('a'); + if (!isNaN(obj.html()))obj.html(i); + tempObj = tempObj.next(); + } + } + + function callBack(curr) { + defaults.callback(curr, defaults.limit, totalCount); + } + + currentObj.click(function (event) { + event.preventDefault(); + var currPage = Number($(this).find('a').html()), activeObj = pageObj.find('li[class="active"]'), + activePage = Number(activeObj.find('a').html()); + if (currPage == activePage) return false; + if (totalPage > showPage && currPage > 1) { + var maxPage = currPage, minPage = 1; + if (($(this).prev().attr('class')) + && ($(this).prev().attr('class').indexOf('disabled')) >= 0) { + minPage = currPage - 1; + maxPage = minPage + showPage - 1; + loopPageElement(minPage, maxPage); + } else if (($(this).next().attr('class')) + && ($(this).next().attr('class').indexOf('disabled')) >= 0) { + if (totalPage - currPage >= 1) maxPage = currPage + 1; + else maxPage = totalPage; + if (maxPage - showPage > 0) minPage = (maxPage - showPage) + 1; + loopPageElement(minPage, maxPage) + } + } + activeObj.removeClass('active'); + $.each(currentObj, function (index, thiz) { + if ($(thiz).find('a').html() == currPage) { + $(thiz).addClass('active'); + callBack(currPage); + } + }); + }); + preObj.click(function (event) { + event.preventDefault(); + var activeObj = pageObj.find('li[class="active"]'), activePage = Number(activeObj.find('a').html()); + if (activePage <= 1) return false; + if (totalPage > showPage) { + var maxPage = activePage, minPage = 1; + if ((activeObj.prev().prev().attr('class')) + && (activeObj.prev().prev().attr('class').indexOf('disabled')) >= 0) { + minPage = activePage - 1; + if (minPage > 1) minPage = minPage - 1; + maxPage = minPage + showPage - 1; + loopPageElement(minPage, maxPage); + } + } + $.each(currentObj, function (index, thiz) { + if ($(thiz).find('a').html() == (activePage - 1)) { + activeObj.removeClass('active'); + $(thiz).addClass('active'); + callBack(activePage - 1); + } + }); + }); + nextObj.click(function (event) { + event.preventDefault(); + var activeObj = pageObj.find('li[class="active"]'), activePage = Number(activeObj.find('a').html()); + if (activePage >= totalPage) return false; + if (totalPage > showPage) { + var maxPage = activePage, minPage = 1; + if ((activeObj.next().next().attr('class')) + && (activeObj.next().next().attr('class').indexOf('disabled')) >= 0) { + maxPage = activePage + 2; + if (maxPage > totalPage) maxPage = totalPage; + minPage = maxPage - showPage + 1; + loopPageElement(minPage, maxPage); + } + } + $.each(currentObj, function (index, thiz) { + if ($(thiz).find('a').html() == (activePage + 1)) { + activeObj.removeClass('active'); + $(thiz).addClass('active'); + callBack(activePage + 1); + } + }); + }); + } + }; +})(jQuery); + diff --git a/assets/pages/scripts/parksetFile/areamanage/areamanagement.css b/assets/pages/scripts/parksetFile/areamanage/areamanagement.css new file mode 100644 index 0000000..a630eba --- /dev/null +++ b/assets/pages/scripts/parksetFile/areamanage/areamanagement.css @@ -0,0 +1,110 @@ +.parkset-container-l{ + width: 356px; + height: 715px; + overflow-y: auto; +} +.parkset-container-r{ + height:715px; + width:calc(100% - 380px); + width:-webkit-calc(100% - 380px); + width:-moz-calc(100% - 380px); + width:-ms-calc(100% - 380px); + width:-o-calc(100% - 380px); +} +.areamanagement-table{ + /*height: 598px;*/ +} +.parket--parking-l{ + width:60px; +} +/*#areamanagement-table .bs-checkbox{ + padding-left: 0px !important; +}*/ + /*树*/ +/*#area_tree li span.button.ico_docu,#userEdit_org_tree li span.button.ico_docu{ + background-position: -17px -105px; +} +#area_tree li span.button.ico_open,#userEdit_org_tree li span.button.ico_open{ + background-position: 1px -105px; +} + +#area_tree li span.button.ico_close,#userEdit_org_tree li span.button.ico_close{ + background-position: 1px -105px; +}*/ + + +/*弹窗*/ + +/*----------- 新增弹窗 ----------*/ +.areanamage-width81{ + width: 81px; +} +.areamanage-pad5{ + padding-left: 5px; + padding-right: 5px; +} + input[type=radio ] { + width: 28px; + height: 24px; + margin: 0; + padding: 0; + opacity: 0; + filter: "alpha(opacity=0)"; +} +input[type=radio] + label { + margin-right: 14px; + display: inline-block; + margin-left: -28px; + padding-left: 20px; + background: url(img/input-radio.png) no-repeat 0 center; + line-height: 24px; +} +input[type=radio]:checked + label { + background: url(img/input-radio-active.png) no-repeat 0 center; +} +.areanamage-mapBg{ + background: url(img/areamanage_baidimapIco.png) no-repeat; + width: 34px; + height: 34px; + position: absolute; + top: 0; + left: 190px; + background-position: 10px 9px; + cursor: pointer; +} + +/*表格多选按钮*/ +.fixed-table-container .bs-checkbox .th-inner{ + padding:6px 30px 6px 24px; +} +.areamanagement-table input{ + opacity: 1!important; + +} +/*时间插件*/ +.layui-laydate-header{ + display: none; +} +/*---------导入弹窗-----------*/ +.areamanage-height30{ + height: 30px; + line-height: 30px; + display: block; + margin-bottom: 10px; +} +/*上传 btn */ +.btn.default:not(.btn-outline) { + background-color: #e1e5ec; +} +.lookmodel_list li{ + height: 30px; + line-height: 30px; + color: red; + padding-left: 9px; +} +.lookparkTab{ + width: 988px; + max-height: 468px; + overflow-y: auto; + overflow-x: auto; +} \ No newline at end of file diff --git a/assets/pages/scripts/parksetFile/areamanage/areamanagement.html b/assets/pages/scripts/parksetFile/areamanage/areamanagement.html new file mode 100644 index 0000000..101849a --- /dev/null +++ b/assets/pages/scripts/parksetFile/areamanage/areamanagement.html @@ -0,0 +1,822 @@ +
        +
        +
        + 区域树 +
        +
        + +
        +
        +
        +
          +
          + +
          +
          +
          +
          +
          +
          + + +
          +
          + +
          +
          +
          + 查询 +
          +
          +
          + +
          +
          +
          +
          +
          + 停车场详情 +
          +
          + +
          +
          + +
          +
          + +
          +
          + +
          +
          +
          +
          +
          +
          + +
          +
          +
          + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/pages/scripts/parksetFile/areamanage/img/areamanage_baidimapIco.png b/assets/pages/scripts/parksetFile/areamanage/img/areamanage_baidimapIco.png new file mode 100644 index 0000000..c139675 Binary files /dev/null and b/assets/pages/scripts/parksetFile/areamanage/img/areamanage_baidimapIco.png differ diff --git a/assets/pages/scripts/parksetFile/areamanage/img/dataicon.png b/assets/pages/scripts/parksetFile/areamanage/img/dataicon.png new file mode 100644 index 0000000..b04bfc8 Binary files /dev/null and b/assets/pages/scripts/parksetFile/areamanage/img/dataicon.png differ diff --git a/assets/pages/scripts/parksetFile/areamanage/img/input-checkbox.png b/assets/pages/scripts/parksetFile/areamanage/img/input-checkbox.png new file mode 100644 index 0000000..27709ab Binary files /dev/null and b/assets/pages/scripts/parksetFile/areamanage/img/input-checkbox.png differ diff --git a/assets/pages/scripts/parksetFile/areamanage/img/input-checkexActive.png b/assets/pages/scripts/parksetFile/areamanage/img/input-checkexActive.png new file mode 100644 index 0000000..2e44210 Binary files /dev/null and b/assets/pages/scripts/parksetFile/areamanage/img/input-checkexActive.png differ diff --git a/assets/pages/scripts/parksetFile/areamanage/img/input-radio-active.png b/assets/pages/scripts/parksetFile/areamanage/img/input-radio-active.png new file mode 100644 index 0000000..2649720 Binary files /dev/null and b/assets/pages/scripts/parksetFile/areamanage/img/input-radio-active.png differ diff --git a/assets/pages/scripts/parksetFile/areamanage/img/input-radio.png b/assets/pages/scripts/parksetFile/areamanage/img/input-radio.png new file mode 100644 index 0000000..35e0b1b Binary files /dev/null and b/assets/pages/scripts/parksetFile/areamanage/img/input-radio.png differ diff --git a/assets/pages/scripts/parksetFile/areamanagement.js b/assets/pages/scripts/parksetFile/areamanagement.js new file mode 100644 index 0000000..4966a37 --- /dev/null +++ b/assets/pages/scripts/parksetFile/areamanagement.js @@ -0,0 +1,2100 @@ +var v_areaBlockId=""; +var v_parklot_state ={"1":"使用中","2":"演示停车场"}; +var v_pl_type ={"1":"路侧","2":"封闭"}; +var v_pl_type_prop={"1101":"临时车位","1201":"长时车位","1301":"禁停车位","2100":"建筑物","2101":"住宅小区","2102":"学校","2103":"医院","2104":"物流专用","2105":"商业综合体","2106":"政府事业单位","2200":"城市公共","2201":"公共场所"}; +var v_busi_circle={"1":"商场","2":"医院","3":"小区","4":"学校","5":"写字楼","6":"景区","7":"交通场站","8":"其他"}; +var plbusitype = {'1':'自营','2':'非自营'}; +var v_resource_type={"1":"ZITS-IRAIN","2":"ZITS-PDA","3":"ZITS-JS","4":"ZITS-NZ","5":"共享车位","6":"ZITS-QD"}; +var btnFlag = false; +define(function (require, exports, module) { + require("sPath/areamanage/areamanagement.css"); + /* + @页面初始化 + */ + var init = function () { + bindEvent(); + // pageInit(); + return "停车场设置"; + }; + function pageInit() { + // console.log('pageInit') + + + // 区域办事处新增弹窗 + documentBindFunc.on('click','#areamanage-areaadd',function (){ + //0.隐藏错误div + $("#areamanage_areaaddmodel-errormsg").hide(); + //1.获取左侧选中的区县 + var areaId = areaTree.getSelectedNodeId(50); + if(areaId=="" || areaId ==undefined){ + $("#areamanage_tipe_context").text(""); + $("#areamanage_tipe_context").text("请先选择左侧[区县]!"); + $('#areamanage_tipe').modal('show'); + return false; + } + $("#areamanage_data-blockName").val(""); + var treeNode = areaTree.getNodeById(areaId); + $("#areamanage_data-areaID").val(""); + $("#areamanage_data-areaName").val(""); + $("#areamanage_data-areaID").val(areaId); + $("#areamanage_data-areaName").val(treeNode.name); + $('#areamanage_areaaddmodel').modal('show'); + }); + //区域办事处新增弹窗的提交按钮 + documentBindFunc.on('click', '#areamanage-areaadd-submit',function () { + $("#areaaddmodel-errormsg").hide(); + //区域id + var areaId = $("#areamanage_data-areaID").val(); + //区域名称 + var blockName=$("#areamanage_data-blockName").val(); + if(blockName =="" || blockName == null || blockName ==undefined){ + $("#areamanage_areaaddmodel-errormsg").text(""); + $("#areamanage_areaaddmodel-errormsg").text("街道办事处名称必填!"); + $("#areamanage_areaaddmodel-errormsg").show(); + return false; + } + //名称唯一性判断 + var flg = func.checkBlockNameUnique(blockName); + if(flg){ + $("#areamanage_areaaddmodel-errormsg").text(""); + $("#areamanage_areaaddmodel-errormsg").text("街道办事处名称已经存在!"); + $("#areamanage_areaaddmodel-errormsg").show(); + return false; + }else{ + + var req= { + parentId:areaId, + areaName:blockName, + areaType:'60', + sysCode:sysComm.sysCode + }; + var editAreaBlok= { + method: "post", + url: dataUrl.util.saveOrUpdateAreaBlock(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if("8888" == res.code){ + $('#areamanage_areaaddmodel').modal('hide'); + /**初始化区域tree.*/ + areaTree.initTree(); + }else{ + $("#areamanage_areaaddmodel-errormsg").text("新增失败,请新重试保存!"); + $("#areamanage_areaaddmodel-errormsg").show(); + return false; + + } + } + }; + sysAjax(editAreaBlok); + }//else + + }); + + + //预览filestr................................................. + documentBindFunc.on('click','#areamanage_uplate_sure', function() { + + //接口介入 + + uploadFileAreamanger(); + //ajax + //上传进度 + //上传excel报错 + }); + function uploadFileAreamanger() { + var fd = new FormData(); + fd.append("excelFile", document.getElementById('areamanage_file_btn').files[0]); + var xhr = new XMLHttpRequest(); + xhr.upload.addEventListener("progress", uploadProgressAreamanger, false); + xhr.addEventListener("load", uploadCompleteAreamanger, false); + xhr.addEventListener("error", uploadFailedAreamanger, false); + xhr.addEventListener("abort", uploadCanceledAreamanger, false); + xhr.open("POST", dataUrl.util.batchReadExcleFile()); //修改成自己的接口 + xhr.send(fd); + } + + function uploadProgressAreamanger(evt) { + if(evt.lengthComputable) { + var percentComplete = Math.round(evt.loaded * 100 / evt.total); + + } + } + + function uploadCompleteAreamanger(evt) { + /* 服务器端返回响应时候触发event事件*/ + var result = JSON.parse(evt.target.responseText); + // + // console.log(evt.target.responseText); + $("#areamanage_uploadFailed").empty(); + if(result != null && "8888" != result.code) { + if("1019" == result.code) { + $("#areamanage-addallMsg-error").text(""); + $("#areamanage-addallMsg-error").text("只能上传xlsx或者lsx格式文件!"); + $('#areamanage-addallMsg-error').show(); + return false; + } + if("1020" == result.code) { + $("#areamanage-addallMsg-error").text(""); + $("#areamanage-addallMsg-error").text("请在excle添加数据后上传!"); + $('#areamanage-addallMsg-error').show(); + return false; + } + if("1022" == result.code) { + $("#areamanage-addallMsg-error").text(""); + $("#areamanage-addallMsg-error").text("excle模板错误!"); + $('#areamanage-addallMsg-error').show(); + return false; + } + + + } else { + $('#areamanage_addallMsg').modal('hide'); + $('#areamanage_Lookmodel').modal('show'); + $('#areamanage-lookParkinglot').hide(); + + if(null != result.data) { + $("#areamanage_LookmodelAddrow").empty(); + var html=""; + $.each(result.data, function(index, row) { + if(row != null && row !=""){ + html +=""; + html +=""+row.plName+""; + if(row.state != null && row.state != "" ){ + var states = row.state.split("-"); + html +=""+states[1]+""; + } + if(row.plType != null && row.plType != "" ){ + var plType = row.plType.split("-"); + html +=""+plType[1]+""; + } + if(row.plTypeProp != null && row.plTypeProp != "" ){ + var plTypeProp = row.plTypeProp.split("-"); + html +=""+plTypeProp[1]+""; + } + if(row.busiCircle != null && row.busiCircle != "" ){ + var busiCircle = row.busiCircle.split("-"); + html +=""+busiCircle[1]+""; + } + if(row.sourceType != null && row.sourceType != "" ){ + var sourceType = row.sourceType.split("-"); + html +=""+sourceType[1]+""; + } + + html +=""+row.plEntranceNum+""; + html +=""+row.plExitNum+""; + html +=""+row.plBusiTimeStart+""; + html +=""+row.plBusiTimeEnd+""; + html +=""+row.berthNum+""; + html +=""+row.plAddress+""; + html +=""+row.serviceTel+""; + html +=""+row.lonId+""; + html +=""+row.latId+""; + html +=""; + } + + }); + $("#areamanage_LookmodelAddrow").html(html); + } + //$('#areamanage_recordtable').bootstrapTable('refresh', {silent: true}); + } + + } + + function uploadFailedAreamanger(evt) { + console.log("There was an error attempting to upload the file."); + } + + function uploadCanceledAreamanger(evt) { + console.log("The upload has been canceled by the user or the browser dropped the connection."); + } + //预览fileend................................................. + /**初始化区域tree.*/ + areaTree.initTree(); + /**.*/ + func.initFunc(); + } + /* + @设置内容 + */ + var setContent = function (url) { + $("#main-con").empty(); + var strHtml =''; + strHtml = require("sPath/areamanage/areamanagement.html"); + $("#main-con").html(strHtml); + pageInit(); + + + }; + + /* + @绑定事件 + */ + var bindEvent = function () { + documentBindFunc.on('click','#button-areamanagement', function () { + $(this).addClass('ITD-topbar-clickactive').siblings('li').removeClass('ITD-topbar-clickactive'); + var url = $(this).attr('data-url'); + setContent(url); + }); + } + module.exports = { + init: init, + setContentInit:setContent + } +}); +/** + * + */ +var func={ + /**1.修改服务点名称.*/ + editAreaBlok:function(){ + documentBindFunc.on('click','#areamanage-areaBlock-submit',function(){ + //块id + var blockId=$("#areamanage_edit_area_block_id").val(); + //块名称 + var blockName= $("#areamanage_edit_area_block_name").val(); + + var req= { + id:blockId, + areaName:blockName, + sysCode:sysComm.sysCode + }; + var editAreaBlok= { + method: "post", + url: dataUrl.util.saveOrUpdateAreaBlock(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if("8888" == res.code){ + $('#areamanage_editAreaBlock').modal('hide'); + //刷新右侧表格 + btnFlag = false;//不是按钮触发 + func.createTableData(); + }else{ + $('#areamanage-editAreaBlock-errmsg').text(res.msg); + $('#areamanage-editAreaBlock-errmsg').show(); + //更新节点名称为未修改之前的 + var treeNode = areaTree.getNodeById(blockId); + treeNode.name = oldEditBlodTreeNodeName; + areaTree.updateNodes(treeNode); + } + } + }; + sysAjax(editAreaBlok); + }); + }, + /**2.删除服务点*/ + deleteAreaBlock:function(){ + documentBindFunc.on('click','#areamanage-delete-submit',function(){ + + //服务点id + var blockId = $("#areamanage_delete_area_block_id").val(); + var req= { + areaBlockId:blockId, + sysCode:sysComm.sysCode + }; + var deleteAreaBlok= { + method: "post", + url: dataUrl.util.deleteAreaBlockByAreaBlockId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if("8888" == res.code){ + $('#areamanage_deleteAreaBlock').modal('hide'); + //将节点删除 + areaTree.removeNode(blockId); + //不需要更新右侧树 + //func.createTableData(); + return false; + }else{ + $("#areamanage-deleteAreaBlock-errmsg").text(res.msg); + $('#areamanage-deleteAreaBlock-errmsg').show(); + return false; + + } + } + }; + sysAjax(deleteAreaBlok); + }); + }, + /**块名称唯一新校验.*/ + checkBlockNameUnique:function(blockName){ + var returnFlg = false; + var req= { + blockName:blockName, + sysCode:sysComm.sysCode + }; + var deleteAreaBlok= { + method: "post", + async:false, + url: dataUrl.util.checkBlockNameUnique(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if("8888" == res.code){ + returnFlg=res.data; + } + } + }; + sysAjax(deleteAreaBlok); + return returnFlg; + }, + //生成表格数据 + createTableData: function () { + $('#areamanagement-table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + singleSelect : false, + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'plNo', + columns: [ + {title:'',width: '1%',checkbox: true,align: 'center'}, + {field: 'plAreaBlockName', title: '所属区域', width: '15%', align: 'left',formatter:commonObj.replacenull}, + {field: 'plName', title: '车场名称', width: '20%', align: 'left',formatter:commonObj.replacenull}, + {field: 'plNo', title: '车场编号', width: '8%', align: 'left',formatter:commonObj.replacenull}, + {field: 'plType', title: '类型', width: '5%', align: 'left',formatter:func.plTypeFormater}, + {field: 'plBerthNum', title: '泊位数', width: '8%', align: 'left',formatter:commonObj.replacenull}, + {field: '', title: '操作', width: '15%', align: 'left',formatter:func.operFormatter} + ] + }); + + }, + //操作显示 + operFormatter:function(value,row,index){ + var operStr ='详情'+ + '修改'; + return operStr; + }, + plTypeFormater: function (value, row, index) { + //1:路内 2:路外 + var plTypeStr; + switch (value) { + case 1: + plTypeStr = '路侧' + break; + case 2: + plTypeStr = '封闭' + break; + default: + plTypeStr = '其他' + } + return plTypeStr; + }, + /**4.查询停车场按钮.*/ + parksetQueryBtn:function(){ + documentBindFunc.on('click','#areamanage_parkset-queryBtn',function(){ + //1.获取左侧选中的服务点id +// var blockId = areaTree.getSelectedNodeId(60); +// if(blockId=="" || blockId ==undefined){ +// $("#areamanage_tipe_context").text(""); +// $("#areamanage_tipe_context").text("请先选择左侧[办事处]!"); +// $('#areamanage_tipe').modal('show'); +// return false; +// } + btnFlag = true; + func.createTableData(); + }); + }, + /**5.添加停车场.*/ + add_parkinglot:function(){ + // 停车场新增弹窗 + documentBindFunc.on('click','#areamanage_parkset-addBtn',function () { + $('#areamanage-addParkinglot').hide(); + $('#areamanage-addParkinglot').text(''); + //1.获取左侧选中的区县 + var blockId = areaTree.getSelectedNodeId(60); + if(blockId=="" || blockId ==undefined){ + $("#areamanage_tipe_context").text(""); + $("#areamanage_tipe_context").text("请先选择左侧【街道办事处】!"); + $('#areamanage_tipe').modal('show'); + return false; + } + //初始化 + $("#areamanage-plType-add option:first").prop("selected", 'selected');//类型属性 + $("#areamanage-sourceType-add option:first").prop("selected", 'selected');//来源 + $("#areamanage-busiCircle option:first").prop("selected", 'selected');//商圈属性 + $("#areamanage_parktypeadd0").prop("checked", true);//类型 + $("#areamanage_parktypeadd1").prop("checked", false);//类型 + $('#areamanage-parkName-add').val('');//停车场初始化 + $('#areamanage-outNum-add').val('1');//出口数初始化 + $('#areamanage-enterNum-add').val('1');//入口数初始化 + $('#areamanage-plBerthNum-add').attr('readonly','readonly'); + // if($("#areamanage_parktypeadd0").prop("checked", true)){ + // $('#areamanage-plBerthNum-add').prop('disabled',true);//泊位数初始化 disabled="disabled" + // }else{ + // $('#areamanage-plBerthNum-add').prop('disabled',false); + // $('#areamanage-plBerthNum-add').val('0');//泊位数初始化 + // } + //$('#areamanage-plBerthNum-add').attr("disabled",true); + $('#areamanage-parkAddress-add').val('');//地址初始化 + $('#areamanage-startTime').val('07:00');//时间初始化 + $('#areamanage-endTime').val('21:00'); + + $('#areamanage-plBerthNum-add').val(''); + + laydate.render({ + elem: '#areamanage-startTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '07:00', + min: '00:00:00', + max: '23:00:00', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'fixed' + /* done: function (value, date, endDate) { + console.log(value); //得到日期生成的值,如:2017-08-18 + console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + + $('#endTime-right').val(value) + }*/ + // range: true + + }); + laydate.render({ + elem: '#areamanage-endTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '21:00', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'fixed', + /*done: function (value, date, endDate) { + console.log(value); //得到日期生成的值,如:2017-08-18 + console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + $('#startTime-right').val(value) + }*/ + // range: true + + });//时间初始化 + $('#areamanage-lonlat-add').val('');//经纬度初始化 + $('#areamanage-remark-add').val('');//备注初始化 + $('#areamanage-serviceTel-add').val('');//电话初始化 + + $("#pl-busi-type-add").selectpicker('refresh'); + $("#areamanage-busiCircle").selectpicker('render'); + $("#areamanage-plType-add").selectpicker('render'); + $("#areamanage-sourceType-add").selectpicker('render'); + $("#areamanage-plState-add").selectpicker('refresh'); + + $('#areamanage_addmodel').modal('show'); + + }); + //类型单选框事件 + /*documentBindFunc.on('change','input[name=\'areamanage-pltype-add\']',function () { + var v = $(this).val(); + if(v=="1"){//路测 + $('#areamanage-plBerthNum-add').attr("disabled",true); + }else{ + $('#areamanage-plBerthNum-add').attr("disabled",false); + } + });*/ + }, + /**6.保存停车场*/ + saveParkingLot:function(){ + //停车场新增弹窗的提交按钮 + documentBindFunc.on('click', '#areamanage-add-submit,#areamanage-addother-submit',function () { + //点击标志 + var tagClick = $(this)[0].id; + //1.获取左侧选中的区县 + var blockId = areaTree.getSelectedNodeId(60); + if(blockId=="" || blockId ==undefined){ + $("#areamanage-addParkinglot").text(""); + $("#areamanage-addParkinglot").text("请先选择左侧【街道办事处】再添加!"); + $('#areamanage-addParkinglot').show(); + return false; + } + //块信息 + var nodeBlock = areaTree.getNodeById(blockId); + //区县信息 + var nodeCountry =""; + if(nodeBlock != null && nodeBlock !="" && "60" == nodeBlock.areaType){ + nodeCountry = areaTree.getNodeById(nodeBlock.pId) + } + //地市信息 + var nodeCity=""; + if(nodeCountry != null && nodeCountry !="" && "50" == nodeCountry.areaType){ + nodeCity = areaTree.getNodeById(nodeCountry.pId) + } + //省份 + var nodePro = ""; + if(nodeCity != null && nodeCity !="" && "40" == nodeCity.areaType){ + nodePro = areaTree.getNodeById(nodeCity.pId) + } + + /**省份ID*/ + var plProvinceId = nodePro.id; + /**省份名称*/ + var plProvinceName = nodePro.name; + /**城市ID*/ + var plCityId =nodeCity.id; + /**城市名称*/ + var plCityName = nodeCity.name; + /**区县ID*/ + var plCountryId = nodeCountry.id; + /**区县名称*/ + var plCountryName = nodeCountry.name; + /**块id*/ + var plAreaBlockId = nodeBlock.id; + /**块名称*/ + var plAreaBlockName =nodeBlock.name; + //停车场名称 + var plName = $("#areamanage-parkName-add").val(); + + //状态 + var state = $("#areamanage-plState-add").val(); + //类型 + var plType = $("input[name='areamanage-pltype-add']:checked").val(); + //类型属性 + var plTypeProp = $("#areamanage-plType-add").val(); + //商圈属性 + var busiCircle = $("#areamanage-busiCircle").val(); + //运营状态 + var plbusiType =$('#pl-busi-type-add').val(); + + //来源 + var sourceType = $("#areamanage-sourceType-add").val(); + //入口数 + var plEntranceNum = $("#areamanage-enterNum-add").val(); + //出口数 + var plExitNum = $("#areamanage-outNum-add").val(); + //泊位数 + var plBerthNum = $("#areamanage-plBerthNum-add").val(); + if (plBerthNum=='' || plBerthNum==null || plBerthNum==undefined){ + plBerthNum="0"; + } + //经纬度 + var lonlat = $("#areamanage-lonlat-add").val(); + + /** 经度 */ + var lonId = lonlat.split(",")[0]; + /** 纬度 */ + var latId = lonlat.split(",")[1]; + //停车场详细地址 + var plAddress = $("#areamanage-parkAddress-add").val(); + //服务电话 + var serviceTel = $("#areamanage-serviceTel-add").val(); + //备注 + var remark = $("#areamanage-remark-add").val(); + //营业开始时间 + var busiTimeStart= $("#areamanage-startTime").val(); + //营业结束时间 + var busiTimeEnd= $("#areamanage-endTime").val(); + /**经纬度类型:1:百度,2:地球,3:高德*/ + var lonLatType = 1; + var regName = /^\S{1,40}$/; + if(!plName.match(regName)){ + $("#areamanage-addParkinglot").text(""); + $("#areamanage-addParkinglot").text("停车场名称必填且最大长度为40位!"); + $('#areamanage-addParkinglot').show(); + return false; + } + /**校验停车场的唯一性.*/ + var flg = func.checkUniqueForPlName(plName.trim()); + if(flg){ + $("#areamanage-addParkinglot").text(""); + $("#areamanage-addParkinglot").text("停车场名称已经存在,请修改!"); + $('#areamanage-addParkinglot').show(); + return false; + } + + //正整数 + var regNum = /^[0-9]*[1-9][0-9]*$/; + if(!plEntranceNum.match(regNum)){ + $("#areamanage-addParkinglot").text(""); + $("#areamanage-addParkinglot").text("入口数必填,且必须是正整数!"); + $('#areamanage-addParkinglot').show(); + return false; + } + if(!plExitNum.match(regNum)){ + $("#areamanage-addParkinglot").text(""); + $("#areamanage-addParkinglot").text("出口数必填,且必须是正整数!"); + $('#areamanage-addParkinglot').show(); + return false; + } + + //泊位数 + var regNum = /^[0-9]*[0-9][0-9]*$/; + if(plType =="2"){ + + if(!plBerthNum.match(regNum)){ + $("#areamanage-addParkinglot").text(""); + $("#areamanage-addParkinglot").text("泊位数必填,且为整数!"); + $('#areamanage-addParkinglot').show(); + return false; + } + } + if(lonlat == "" || lonlat == null || lonlat == undefined){ + $("#areamanage-addParkinglot").text(""); + $("#areamanage-addParkinglot").text("经纬度为必填项!"); + $('#areamanage-addParkinglot').show(); + return false; + } + var reg=/^[1][3,4,5,6,7,8][0-9]{9}$/; + if(serviceTel != null && serviceTel !=""){ + if(!reg.test(serviceTel)) { + $("#areamanage-addParkinglot").text(""); + $("#areamanage-addParkinglot").text("服务电话格式不正确!"); + $('#areamanage-addParkinglot').show(); + return false; + } + } + + //详细地址 + var regAdress = /^\S{1,120}$/; + if(!plAddress.match(regAdress)){ + $("#areamanage-addParkinglot").text(""); + $("#areamanage-addParkinglot").text("详细地址必填,且长度要小于120!"); + $('#areamanage-addParkinglot').show(); + return false; + } + /** + var regO= /^(((\d|[1-9]\d|1[1-7]\d|0)\.\d{1,7})|(\d|[1-9]\d|1[1-7]\d|0{1,3})|180\.0{1,7}|180)$/; + var regA= /^([0-8]?\d{1}\.\d{1,7}|90\.0{1,7}|[0-8]?\d{1}|90)$/; + if(!lonId.match(regO)){ + $("#areamanage-addParkinglot").text(""); + $("#areamanage-addParkinglot").text("经度不符合格式"); + $('#areamanage-addParkinglot').show(); + return false; + } + if(!latId.match(regA)){ + $("#areamanage-addParkinglot").text(""); + $("#areamanage-addParkinglot").text("纬度不符合格式"); + $('#areamanage-addParkinglot').show(); + return false; + }*/ + //用户信息id + var createOp = fn.getUserId(); + var req = { + plName:plName, + plProvinceId:plProvinceId, + plProvinceName:plProvinceName, + plCityId:plCityId, + plCityName:plCityName, + plCountryId:plCountryId, + plCountryName:plCountryName, + plAreaBlockId:plAreaBlockId, + plAreaBlockName:plAreaBlockName, + state:state, + plType:plType, + plTypeProp:plTypeProp, + busiCircle:busiCircle, + sourceType:sourceType, + plExitNum:plExitNum, + plEntranceNum:plEntranceNum, + plBerthNum:plBerthNum, + plAddress:plAddress, + lonId:lonId, + latId:latId, + lonLatType:lonLatType, + createOp:createOp, + sysCode: sysComm.sysCode, + serviceTel:serviceTel, + remark:remark, + plBusiTimeStart:busiTimeStart, + plBusiTimeEnd:busiTimeEnd, + plBusiType:plbusiType + }; + var submitFlg = true; + if(submitFlg){ + $("#areamanage-add-submit").attr("disabled","disabled"); + $("#areamanage-addother-submit").attr("disabled","disabled"); + + submitFlg = false; + sysAjax({ + method: 'POST', + url: dataUrl.util.saveParkingLotInfo(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + $("#areamanage-add-submit").removeAttr("disabled"); + $("#areamanage-addother-submit").removeAttr("disabled"); + // console.log(res.data); + if (res.code == '8888') { + submitFlg = true; + if("areamanage-add-submit"== tagClick){ + $('#areamanage_addmodel').modal('hide'); + } + $("#areamanage-addParkinglot").text("停车场添加成功!"); + $('#areamanage-addParkinglot').show(); + //初始化table + btnFlag = false;//不是按钮触发 + func.createTableData(); + + } else { + submitFlg = true; + $("#areamanage-addParkinglot").text("新增停车场失败!"); + $('#areamanage-addParkinglot').show(); + return false; + } + } + }); + } + + //$('#areamanage_addmodel').modal('hide'); + + }); + }, + /**7修改停车场-弹出框.*/ + editParkingLotOpenWindow:function(){ + // 停车场修改弹窗 + documentBindFunc.on('click','.changeMsg',function () { + var plNo = $(this).attr('data-value'); + $("#areamanage_edit_plNo").val(plNo); + $('#areamanage-editParkinglot').hide(); + //初始化 + + $('#areamanage-parkName-edit').val('');//停车场初始化 + $('#areamanage-outNum-edit').val('');//出口数初始化 + $('#areamanage-enterNum-edit').val('');//入口数初始化 + $('#areamanage-plBerthNum-edit').val('');//泊位数初始化 + $('#areamanage-parkAddress-edit').val('');//地址初始化 + $('#areamanage-startTime-edit').val('07:00');//时间初始化 + $('#areamanage-endTime-edit').val('21:00'); + laydate.render({ + elem: '#areamanage-startTime-edit',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '07:00', + min: '00:00:00', + max: '23:00:00', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'fixed' + /* done: function (value, date, endDate) { + console.log(value); //得到日期生成的值,如:2017-08-18 + console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + + $('#endTime-right').val(value) + }*/ + // range: true + + }); + laydate.render({ + elem: '#areamanage-endTime-edit',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '21:00', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'fixed', + /*done: function (value, date, endDate) { + console.log(value); //得到日期生成的值,如:2017-08-18 + console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + $('#startTime-right').val(value) + }*/ + // range: true + + });//时间初始化 + $('#areamanage-lonlat-edit').val('');//经纬度初始化 + $('#areamanage-remark-edit').val('');//备注初始化 + $('#areamanage-serviceTel-edit').val('');//电话初始化 + + + + $("#areamanage-busiCircle-edit").selectpicker('render'); + $("#areamanage-plState-edit").selectpicker('refresh'); + + $("#pl-busi-type-edit").selectpicker('refresh'); + // $("#areamanage-editPlTypeProp").selectpicker('refresh'); + $("#areamanage-plType-edit").selectpicker('render'); + $("#areamanage-sourceType-edit").selectpicker('render'); + + + + var parkLot = $("#areamanagement-table").bootstrapTable('getRowByUniqueId',plNo); + // console.log(parkLot) + $("#areamanage_edit_plId").val(''); + $("#areamanage_edit_plId").val(parkLot.plId); + $('#areamanage-parkName-edit').val(parkLot.plName);//停车场初始化 + $("#areamanage-plState-edit").selectpicker('val',parkLot.state); //状态 + $('#areamanage-plState-edit').find("option[value='"+parkLot.state+"']").attr("selected","selected"); + //运营状态 + $("#pl-busi-type-edit").selectpicker('val',parkLot.plBusiType); + $('#pl-busi-type-edit').find("option[value='"+parkLot.plBusiType+"']").attr("selected","selected"); + + if(parkLot.plType=="1"){//路侧 + $('#areamanage_parktypeedit').text('路侧'); + }else{ + $('#areamanage_parktypeedit').text('封闭'); + } + $('#areamanage-plBerthNum-edit').removeAttr('readonly'); + $("#areamanage-plType-edit").selectpicker('val',parkLot.plTypeProp); //类型属性 + $("#areamanage-busiCircle-edit").selectpicker('val',parkLot.busiCircle); //商圈属性 + $("#areamanage-sourceType-edit").selectpicker('val',parkLot.sourceType); //来源 + $('#areamanage-outNum-edit').val(parkLot.plExitNum);//出口数初始化 + $('#areamanage-enterNum-edit').val(parkLot.plEntranceNum);//入口数初始化 + $('#areamanage-plBerthNum-edit').val(parkLot.plBerthNum);//泊位数初始化 + $('#areamanage-parkAddress-edit').val(parkLot.plAddress);//地址初始化 + $('#areamanage-startTime-edit').val(parkLot.plBusiTimeStart);//时间初始化 + $('#areamanage-endTime-edit').val(parkLot.plBusiTimeEnd); //营业结束时间 + $('#areamanage-remark-edit').val(parkLot.remark); //备注 + $('#areamanage-serviceTel-edit').val(parkLot.serviceTel); // + //运营状态 + $('#pl-busi-type-edit').val(parkLot.plBusiType); + + if(parkLot.plType != null && parkLot.plType =='1'){ + $('#areamanage-plBerthNum-edit').attr("readonly","readonly"); + } + if(parkLot.lonId !=null && parkLot.lonId!="" && parkLot.latId !=null && parkLot.latId!=""){ + $('#areamanage-lonlat-edit').val(parkLot.lonId+","+parkLot.latId); // + } + + + $('#areamanage_editmodel').modal('show'); + }); + + + }, + /**8.修改停车场*/ + editParkingLot:function(){ + //停车场修改弹窗的提交按钮 + documentBindFunc.on('click', '#areamanage-edit-submit',function () { + //1.获取左侧选中的区县 + var blockId = areaTree.getSelectedNodeId(60); + if(blockId=="" || blockId ==undefined){ + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("请先选择左侧【街道办事处】再添加!"); + $('#areamanage-editParkinglot').show(); + return false; + } + //块信息 + var nodeBlock = areaTree.getNodeById(blockId); + //区县信息 + var nodeCountry =""; + if(nodeBlock != null && nodeBlock !="" && "60" == nodeBlock.areaType){ + nodeCountry = areaTree.getNodeById(nodeBlock.pId) + } + //地市信息 + var nodeCity=""; + if(nodeCountry != null && nodeCountry !="" && "50" == nodeCountry.areaType){ + nodeCity = areaTree.getNodeById(nodeCountry.pId) + } + //省份 + var nodePro = ""; + if(nodeCity != null && nodeCity !="" && "40" == nodeCity.areaType){ + nodePro = areaTree.getNodeById(nodeCity.pId) + } + + // /**省份ID*/ + // var plProvinceId = nodePro.id; + // /**省份名称*/ + // var plProvinceName = nodePro.name; + // /**城市ID*/ + // var plCityId =nodeCity.id; + // /**城市名称*/ + // var plCityName = nodeCity.name; + // /**区县ID*/ + // var plCountryId = nodeCountry.id; + // /**区县名称*/ + // var plCountryName = nodeCountry.name; + // /**块id*/ + // var plAreaBlockId = nodeBlock.id; + // /**块名称*/ + // var plAreaBlockName =nodeBlock.name; + //停车场名称 + var plName = $("#areamanage-parkName-edit").val(); + + //状态 + var state = $("#areamanage-plState-edit").val(); + //类型 + var plType = $("input[name='areamanage-pltype-edit']:checked").val(); + //类型属性 + var plTypeProp = $("#areamanage-plType-edit").val(); + //商圈属性 + var busiCircle = $("#areamanage-busiCircle-edit").val(); + //运营状态 + var plBusiType = $('#pl-busi-type-edit').val(); + + //来源 + var sourceType = $("#areamanage-sourceType-edit").val(); + //入口数 + var plEntranceNum = $("#areamanage-enterNum-edit").val(); + //出口数 + var plExitNum = $("#areamanage-outNum-edit").val(); + //泊位数 + var plBerthNum = $("#areamanage-plBerthNum-edit").val(); + //经纬度 + var lonlat = $("#areamanage-lonlat-edit").val(); + + /** 经度 */ + var lonId = lonlat.split(",")[0]; + /** 纬度 */ + var latId = lonlat.split(",")[1]; + //停车场详细地址 + var plAddress = $("#areamanage-parkAddress-edit").val(); + //服务电话 + var serviceTel = $("#areamanage-serviceTel-edit").val(); + //备注 + var remark = $("#areamanage-remark-edit").val(); + //营业开始时间 + var busiTimeStart= $("#areamanage-startTime-edit").val(); + //营业结束时间 + var busiTimeEnd= $("#areamanage-endTime-edit").val(); + /**经纬度类型:1:百度,2:地球,3:高德*/ + var lonLatType = 1; + //停车场编码 + var plNo = $("#areamanage_edit_plNo").val(); + //主键id + var plId = $("#areamanage_edit_plId").val(); + var regName = /^\S{1,40}$/; + if(!plName.match(regName)){ + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("停车场名称必填且最大长度为40位!"); + $('#areamanage-editParkinglot').show(); + return false; + } + var parkLot = $("#areamanagement-table").bootstrapTable('getRowByUniqueId',plNo); + if(parkLot.plName != plName){ + /**校验停车场的唯一性.*/ + var flg = func.checkUniqueForPlName(plName.trim()); + if(flg){ + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("停车场名称已经存在,请修改!"); + $('#areamanage-editParkinglot').show(); + return false; + } + } + //正整数 + var regNum = /^[0-9]*[1-9][0-9]*$/; + if(!plEntranceNum.match(regNum)){ + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("入口数必填,且必须是正整数!"); + $('#areamanage-editParkinglot').show(); + return false; + } + if(!plExitNum.match(regNum)){ + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("出口数必填,且必须是正整数!"); + $('#areamanage-editParkinglot').show(); + return false; + } + + //泊位数 + var regNum = /^[0-9]*[0-9][0-9]*$/; + if(plType =="2"){ + if(!plBerthNum.match(regNum)){ + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("泊位数必填,且为整数!"); + $('#areamanage-editParkinglot').show(); + return false; + } + } + + if(lonlat == "" || lonlat == null || lonlat == undefined){ + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("经纬度为必填项!"); + $('#areamanage-editParkinglot').show(); + return false; + } + var reg=/^[1][3,4,5,6,7,8][0-9]{9}$/; + /*if(serviceTel != null && serviceTel !=""){ + if(!reg.test(serviceTel)) { + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("服务电话格式不正确!"); + $('#areamanage-editParkinglot').show(); + return false; + } + }*/ + + //详细地址 + var regAdress = /^\S{1,120}$/; + if(!plAddress.match(regAdress)){ + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("详细地址必填,且长度要小于120!"); + $('#areamanage-editParkinglot').show(); + return false; + } + /** + var regO= /^(((\d|[1-9]\d|1[1-7]\d|0)\.\d{1,7})|(\d|[1-9]\d|1[1-7]\d|0{1,3})|180\.0{1,7}|180)$/; + var regA= /^([0-8]?\d{1}\.\d{1,7}|90\.0{1,7}|[0-8]?\d{1}|90)$/; + if(!lonId.match(regO)){ + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("经度不符合格式"); + $('#areamanage-editParkinglot').show(); + return false; + } + if(!latId.match(regA)){ + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("纬度不符合格式"); + $('#areamanage-editParkinglot').show(); + return false; + }*/ + + //用户信息id + var createOp = fn.getUserId(); + //$('#areamanage_editmodel').modal('hide'); + + var req = { + plId:plId, + plNo:plNo, + plName:plName, + // plProvinceId:plProvinceId, + // plProvinceName:plProvinceName, + // plCityId:plCityId, + // plCityName:plCityName, + // plCountryId:plCountryId, + // plCountryName:plCountryName, + // plAreaBlockId:plAreaBlockId, + // plAreaBlockName:plAreaBlockName, + state:state, + plType:plType, + plTypeProp:plTypeProp, + busiCircle:busiCircle, + sourceType:sourceType, + plExitNum:plExitNum, + plEntranceNum:plEntranceNum, + plBerthNum:plBerthNum, + plAddress:plAddress, + lonId:lonId, + latId:latId, + lonLatType:lonLatType, + createOp:createOp, + sysCode: sysComm.sysCode, + serviceTel:serviceTel, + remark:remark, + plBusiTimeStart:busiTimeStart, + plBusiTimeEnd:busiTimeEnd, + plBusiType:plBusiType + }; + var submitFlg = true; + if(submitFlg){ + $("#areamanage-edit-submit").attr("disabled","disabled"); + submitFlg = false; + sysAjax({ + method: 'POST', + url: dataUrl.util.updateParkingLotInfo(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + // console.log(res.data); + if (res.code == '8888') { + submitFlg = true; + $("#areamanage-edit-submit").removeAttr("disabled"); + $('#areamanage_editmodel').modal('hide'); + //初始化table + btnFlag = false;//不是按钮触发 + func.createTableData(); + + } else { + submitFlg = true; + $("#areamanage-edit-submit").removeAttr("disabled"); + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("修改停车场失败!"); + $('#areamanage-editParkinglot').show(); + return false; + } + } + }); + } + }); + //类型单选框事件 + /*documentBindFunc.on('change','input[name=\'areamanage-pltype-edit\']',function () { + var v = $(this).val(); + if(v=="1"){//路测 + $('#areamanage-plBerthNum-edit').attr("disabled",true); + }else{ + $('#areamanage-plBerthNum-edit').attr("disabled",false); + } + });*/ + }, + /**9.详情.*/ + areamanageDetail:function(){ + documentBindFunc.on('click', '.readMsg', function() { + var plNo =$(this).attr('data-value'); + var parkLot = $("#areamanagement-table").bootstrapTable('getRowByUniqueId',plNo); + $('#areamanage-parkNameread').text('无'); + $("#areamanage-addPlStateread").text(''); + $("#areamanage-parktyperead").text(''); + $("#areamanage-addPlTypePropread").text(''); //类型属性 + $("#areamanage-addBusiCircleread").text(''); //商圈属性 + $("#areamanage-resourceTyperead").text(''); //来源 + $('#areamanage-outNumread').text('0');//出口数初始化 + $('#areamanage-enterNumread').text('0');//入口数初始化 + $('#areamanage-plBerthNumread').text('0');//泊位数初始化 + $('#areamanage-parkAddressread').text('');//地址初始化 + $('#areamanage-addDataSelread').text('');//时间初始化 + $('#areamanage-pl_berth_numread').text('0'); //泊位区间数 + if(parkLot.lonId !=null && parkLot.lonId!="" && parkLot.latId !=null && parkLot.latId!=""){ + $('#areamanage-lonlatread').text(''); // + } + $('#areamanage-parkNameread').text(parkLot.plName);//停车场初始化 + $("#areamanage-addPlStateread").text(v_parklot_state[parkLot.state]); //状态 + $("#areamanage-parktyperead").text(v_pl_type[parkLot.plType]); //类型 + $("#areamanage-addPlTypePropread").text(v_pl_type_prop[parkLot.plTypeProp]); //类型属性 + $("#areamanage-addBusiCircleread").text(v_busi_circle[parkLot.busiCircle]); //商圈属性 + + $('#pl-busi-type-detail').text(plbusitype[parkLot.plBusiType]); + + //alert(v_resource_type[parkLot.sourceType]); + $("#areamanage-resourceTyperead").text(v_resource_type[parkLot.sourceType]); //来源 + $('#areamanage-outNumread').text(parkLot.plExitNum);//出口数初始化 + $('#areamanage-enterNumread').text(parkLot.plEntranceNum);//入口数初始化 + $('#areamanage-plBerthNumread').text(parkLot.plBerthNum);//泊位数初始化 + $('#areamanage-parkAddressread').text(parkLot.plAddress);//地址初始化 + $("#areamanage-pertelread").text(parkLot.serviceTel); + $('#areamanage-addDataSelread').text(parkLot.plBusiTimeStart+"-"+parkLot.plBusiTimeEnd);//时间初始化 + $('#areamanage-pl_berth_numread').text(parkLot.parkAreaNum == null ? "0" :parkLot.parkAreaNum); //备注 + if(parkLot.lonId !=null && parkLot.lonId!="" && parkLot.latId !=null && parkLot.latId!=""){ + $('#areamanage-lonlatread').text(parkLot.lonId+","+parkLot.latId); // + } + $('#areamanage_readmodel').modal('show'); + + }); + }, + /**10.批量删除停车场.*/ + batchDeleteParklot:function(){ + documentBindFunc.on('click','#areamanage_parkset-del',function () { + var rowsData= $("#areamanagement-table").bootstrapTable('getSelections'); + if(rowsData.length<=0){ + $("#areamanage_tipe_context").text(""); + $("#areamanage_tipe_context").text("请选中要删除的停车场!"); + $('#areamanage_tipe').modal('show'); + return false; + } + var allowDel = true; + var delParkName = ''; + $.each(rowsData,function(index,row){ + if(row != null && row.parkAreaNum != null && row.parkAreaNum > 0){ + delParkName = row.plName; + allowDel = false; + return false; + } + }); + if(!allowDel){ + $("#areamanage_tipe_context").text(""); + $("#areamanage_tipe_context").text("停车场["+delParkName+"]存在泊位区间,不容许删除!"); + $('#areamanage_tipe').modal('show'); + return false; + } + $('#areamanage_deletemodel').modal('show'); + //停车场删除弹窗 确定按钮 提交事件 + documentBindFunc.on('click','#areamanage-parkdelete-submit',function(){ + var plNos = new Array(); + $.each(rowsData,function(index,row){ + if(row != null ){ + plNos[index] = row.plNo; + } + }); + var req = {plNos:plNos, + sysCode: sysComm.sysCode + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.deleteParkingLotInfoByPlNos(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + // console.log(res.data); + if (res.code == '8888') { + $('#areamanage_deletemodel').modal('hide'); + //初始化table + btnFlag = false;//不是按钮触发 + func.createTableData(); + } else { + $('#areamanage_deletemodel').modal('hide'); + $("#areamanage_tipe_context").text(""); + $("#areamanage_tipe_context").text("停车场删除失败请重试!"); + $('#areamanage_tipe').modal('show'); + return false; + } + } + }); + });//click + + }); + }, + /**11.停车场名称唯一性校验.*/ + checkUniqueForPlName:function(plName){ + var flg = false; + var req = {plName:plName, + sysCode: sysComm.sysCode + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.checkUniqueForPlName(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + flg=res.data; + } + + } + }); + return flg; + }, + /**12.更换办事处.*/ + changeBlockForParkLot:function(){ + var plNos = new Array(); + // 更换办事处弹窗 + documentBindFunc.on('click','#areamanage_parkset-edit',function (){ + var rowsData= $("#areamanagement-table").bootstrapTable('getSelections'); + if(rowsData.length<=0){ + $("#areamanage_tipe_context").text(""); + $("#areamanage_tipe_context").text("请选择停车场!"); + $('#areamanage_tipe').modal('show'); + return false; + } + //2.获取左侧选中的区县 + var blockId = areaTree.getSelectedNodeId(60); + if(blockId=="" || blockId ==undefined){ + $("#areamanage_tipe_context").text(""); + $("#areamanage_tipe_context").text("请先选择左侧【街道办事处】!"); + $('#areamanage_tipe').modal('show'); + return false; + } + + $.each(rowsData,function(index,row){ + if(row != null ){ + plNos[index] = row.plNo; + } + }); + var blockNode = areaTree.getNodeById(blockId); + //获取区县 + var ereaNode = areaTree.getNodeById(blockNode.pId); + if(ereaNode != null ){ + $("#areamanage_data-areachangeName").val(''); + $("#areamanage_data-areachangeId").val(''); + $("#areamanage_data-areachangeId").val(ereaNode.id); + $("#areamanage_data-areachangeName").val(ereaNode.name); + + var html = ""; + $.each(ereaNode.children,function(index,row){ + html +=""; + }); + $("#areamanage_data-areachangeBlockId").empty(); + $("#areamanage_data-areachangeBlockId").html(html); + $("#areamanage_data-areachangeBlockId").selectpicker('refresh'); + } + + $('#areamanage_areachangemodel').modal('show'); + }); + //更换办事处弹窗的提交按钮 + documentBindFunc.on('click', '#areamanage-areachange-submit',function () { + var plAreaBlockId = $("#areamanage_data-areachangeBlockId").val(); + var plAreaBlockName = $("#areamanage_data-areachangeBlockId option:selected").text(); + var req = {plNos:plNos, + plAreaBlockId:plAreaBlockId, + plAreaBlockName:plAreaBlockName, + sysCode: sysComm.sysCode + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.updateBlockForParkLot(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + + if (res.code == '8888') { + $('#areamanage_areachangemodel').modal('hide'); + //初始化table + btnFlag = false;//不是按钮触发 + func.createTableData(); + } else { + $('#areamanage_areachangemodel').modal('hide'); + $("#areamanage_tipe_context").text(""); + $("#areamanage_tipe_context").text("更换办事处失败!"); + $('#areamanage_tipe').modal('show'); + return false; + } + } + }); + + }); + }, + /**13.excle模板下载.*/ + excleTemplateDownload:function(){ + documentBindFunc.on('click', '#areamanage_excleTemplate', function() { + window.location.href = parkcloudbaseUrl + "parkinglot/停车场批量导入.xlsx"; + + }); + }, + + /**15校验表格数据.*/ + lookModeCheck:function(index,plName,state,plType,plTypeProp,busiCircle,sourceType,plEntranceNum,plExitNum,plBerthNum,lonId,latId,serviceTel,plAddress){ + var lookModeCheckFlg = true; + var regName = /^\S{1,40}$/; + if(!plName.match(regName)){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,停车场名称必填且最大长度为40位!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + return false; + } + /**校验停车场的唯一性.*/ + var flg = func.checkUniqueForPlName(plName.trim()); + if(flg){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,停车场名称已经存在,请修改!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + return false; + } + + //状态 + if(state == null || state == "" || state == undefined){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,状态为必填,请修改!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + + return false; + }else{ + if(v_parklot_state[state] == null || v_parklot_state[state]=="" || v_parklot_state[state]==undefined){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,状态[-]前数字错误,请修改!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + } + } + //停车场类型 + if(plType == null || plType == "" || plType == undefined){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,停车场类型为必填,请修改!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + + return false; + }else{ + if(v_pl_type[plType] == null || v_pl_type[plType]=="" || v_pl_type[plType]==undefined){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,停车场类型[-]前数字错误,请修改!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + } + } + //停车场类型属性 + if(plTypeProp == null || plTypeProp == "" || plTypeProp == undefined){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,停车场类型属性为必填,请修改!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + + return false; + }else{ + if(v_pl_type_prop[plTypeProp] == null || v_pl_type_prop[plTypeProp]=="" || v_pl_type_prop[plTypeProp]==undefined){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,停车场类型属性[-]前数字错误,请修改!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + } + } + //商圈属性 + if(busiCircle == null || busiCircle == "" || busiCircle == undefined){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,商圈属性为必填,请修改!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + + return false; + }else{ + if(v_busi_circle[busiCircle] == null || v_busi_circle[busiCircle]=="" || v_busi_circle[busiCircle]==undefined){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,停车场类型属性[-]前数字错误,请修改!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + } + } + //来源 + if(sourceType == null || sourceType == "" || sourceType == undefined){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,来源为必填,请修改!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + return false; + }else{ + if(v_resource_type[sourceType] == null || v_resource_type[sourceType]=="" || v_resource_type[sourceType]==undefined){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,来源[-]前数字错误,请修改!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + } + } + //正整数 + var regNum = /^[0-9]*[1-9][0-9]*$/; + if(!plEntranceNum.match(regNum)){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,入口数必填,且必须是正整数!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + return false; + } + if(!plExitNum.match(regNum)){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,出口数必填,且必须是正整数!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + + return false; + } + + //泊位数 + var regNum = /^[0-9]*[0-9][0-9]*$/; + if(plType =="2"){ + if(!plBerthNum.match(regNum)){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,泊位数必填,且为整数!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + return false; + } + + } + + if(lonId == "" || lonId == null || lonId == undefined){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,经度为必填项!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + return false; + } + if(latId == "" || latId == null || latId == undefined){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,纬度为必填项!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + return false; + } + var reg=/^[1][3,4,5,6,7,8][0-9]{9}$/; + if(serviceTel != null && serviceTel !=""){ + if(!reg.test(serviceTel)) { + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,服务电话格式不正确!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + return false; + } + } + + //详细地址 + var regAdress = /^\S{1,120}$/; + if(!plAddress.match(regAdress)){ + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("第"+index+"行,详细地址必填,且长度要小于120!"); + $('#areamanage-lookParkinglot').show(); + lookModeCheckFlg=false; + return false; + } + + return lookModeCheckFlg; + }, + /**13初始化.*/ + initFunc:function(){ + func.editAreaBlok(); + func.deleteAreaBlock(); + func.createTableData(); + func.parksetQueryBtn(); + func.add_parkinglot(); + func.saveParkingLot(); + func.editParkingLotOpenWindow(); + func.editParkingLot(); + func.areamanageDetail(); + func.batchDeleteParklot(); + func.changeBlockForParkLot(); + func.excleTemplateDownload(); + // func.excleImport(); + + }, +}; +// 区域构建树 +var areaTree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#areamanage_area_tree"), areaTree.setting, areaTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + treeObj.expandAll(true); + areaTree.selectedNodes(-1); + }, + setting: { + view: { + selectedMulti: true //静止多选 + }, + check: { + enable: false, //显示多选框 + chkStyle: "radio" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + edit: { + + enable: true, + showRemoveBtn: setBlockRemoveBtn, + removeTitle: "删除", + showRenameBtn: setBlockRenameBtn, + renameTitle: "编辑", + drag: { + isCopy: false, + isMove: false + } + }, + callback: { + beforeEditName: zTreeBeforeEditName, + beforeRemove: zTreeBeforeRemove, + onRemove: zTreeOnRemove, + onRename: zTreeOnRename, + onClick: zTreeOnClick + } + + + }, + //获取选中的节点 + getSelectedNodeId:function(areaType){ + var blockId=""; + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + var nodes = treeObj.getSelectedNodes(); + if(nodes.length>0) { + for (var i = 0; i < nodes.length; i++) { + if(null != nodes[i] && areaType == nodes[i].areaType ){ + blockId =nodes[i].id; + break; + } + } + }//if + return blockId; + }, + //展开某个节点 + selectedNodes:function(id){ + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + var nodes = treeObj.getNodesByParam("id", id, null); + if(nodes.length>0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = areaTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node==null){ + continue; + } + node.checked = true; + areaTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + var treeNode = areaTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //选中某个节点 + selectNode:function(id){ + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + var node = treeObj.getNodeByParam("id", id, null); + treeObj.selectNode(node); + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = areaTree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForBlock: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index =0; + for (var i = 0; i < nodes.length; i++) { + if(null != nodes[i].areaType && "60" == nodes[i].areaType ){ + ids[index++] ={areaId:nodes[i].id,areaType:nodes[i].areaType,orgAreaType:1} ; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names= ""; + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names+","+nodes[i].name; + } + return names; + }, + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("areamanage_area_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData:function() { + var sysCode=sessionStorage.getItem("sysCode"); + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode + }; + sysAjax({ + method:'POST', + url: dataUrl.util.getAreatreeByOpId(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + $.each(res.data, function(index,rows) { + var data=""; + if("60"==rows.areaType && v_areaBlockId ==""){ + v_areaBlockId=rows.id; + } + data={id:rows.id,pId:rows.parentId,name:rows.areaName,areaType:rows.areaType}; + zNodes[index] =data; + }); + + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } +} + //只有节点是办事处的显示编辑按钮 + function setBlockRenameBtn(treeId, treeNode){ + if(treeNode !=null && "60"==treeNode.areaType){ + return true; + } + return false; + } + //只有子节点和节点是办事处的显示删除按钮 + function setBlockRemoveBtn(treeId, treeNode){ + if(treeNode !=null && "60"==treeNode.areaType && !treeNode.isParent){ + return true; + } + return false; + } + + //禁止删除父节点和非办事处类型的节点 + function zTreeBeforeRemove(treeId, treeNode) { + $('#areamanage-deleteAreaBlock-errmsg').text(''); + $('#areamanage-deleteAreaBlock-errmsg').hide(); + if(treeNode !=null && "60"==treeNode.areaType && !treeNode.isParent){ + $("#areamanage_delete_area_block_id").val(""); + $("#areamanage_delete_area_block_id").val(treeNode.id); + $('#areamanage_deleteAreaBlock').modal('show'); + return false; + } + return false; + } + + //删除节点 + function zTreeOnRemove(event, treeId, treeNode) { + //删除节点 + } + //记录编辑之前的节点名称 + var oldEditBlodTreeNodeName = ""; + //禁止编辑父节点 + function zTreeBeforeEditName(treeId, treeNode) { + $('#areamanage-editAreaBlock-errmsg').text(''); + $('#areamanage-editAreaBlock-errmsg').hide(); + oldEditBlodTreeNodeName = treeNode.name; + return !treeNode.isParent; + } + //修改节点 + function zTreeOnRename(event, treeId, treeNode){ + //判断是否有更改 + var newName = treeNode.name; + if(newName==''){ + //将节点还原为未修改之前的名称 + treeNode.name = oldEditBlodTreeNodeName; + areaTree.updateNodes(treeNode); + return false; + } + if(newName == oldEditBlodTreeNodeName){ + return false; + } + if(treeNode !=null && "60"==treeNode.areaType){ + $("#areamanage_edit_area_block_id").val(""); + $("#areamanage_edit_area_block_name").val(""); + $("#areamanage_edit_area_block_id").val(treeNode.id); + $("#areamanage_edit_area_block_name").val(treeNode.name); + //名称唯一性判断 + var flg = func.checkBlockNameUnique(treeNode.name); + if(flg){ + $("#areamanage_tipe_context").text(""); + $("#areamanage_tipe_context").text("街道办事处名称已经存在!"); + $('#areamanage_tipe').modal('show'); + //将节点还原为未修改之前的名称 + treeNode.name = oldEditBlodTreeNodeName; + areaTree.updateNodes(treeNode); + return false; + } + $('#areamanage_editAreaBlock').modal('show'); + } + } + /** + * + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ +function zTreeOnClick(event, treeId, treeNode) { + if(treeNode !=null && "60"==treeNode.areaType){ + btnFlag = false;//不是按钮触发 + func.createTableData(); + } +}; +//停车场默认加载 +function tableLoadRequest(params){ + //1.获取左侧选中的服务点id + var blockId = areaTree.getSelectedNodeId(60); + if(blockId=="" || blockId ==undefined){ + blockId = v_areaBlockId; + } + areaTree.selectNode(blockId); + var blockIds = []; + var plType = null; + blockIds.push(blockId); + if(btnFlag){//如果是点击按钮,则不传服务点 + blockIds = null; + plType = $("#plType").val(); + } + var parkName=$("#areamanage_queryParkName").val(); + //设置请求参数 + var pageNum = (params.data.offset/params.data.limit)+1; + //条件查询 + var req= { + baseRequest:{ + pageNum:pageNum, + pageSize:params.data.limit + }, + sysCode:sysComm.sysCode, + blockIds: blockIds, + orgId :fn.getOrgId(), + plType:plType, + parkName:parkName + }; + var cehicleFlowTableAjax= { + method: params.type, + url: dataUrl.util.queryParkingLotForPageByAreaBlockId(), + data: JSON.stringify(req), + dataType:'json', + success: function(res){ + if(res.code == "8888"){ + params.success(res.data); + + }else{ + + } + } + }; + sysAjax(cehicleFlowTableAjax); +}; +/**excle导入.*/ + + //添加excle文件名 + // documentBindFunc.on("change", ".btn-file input[type='file']", function() { + function areaexcleImport(){ + // $('#areamanage_uploadFailed').empty(); + // $('#progressWrap').addClass('display-none'); + var filePath = $('#areamanage_file_btn').val(); + var arr = filePath.split('\\'); + var fileName = arr[arr.length - 1]; + console.log(fileName) + + $(".fileinput-filename").html(fileName); + $('#areamanage_uplate_sure').removeAttr("disabled"); //移除disabled属性 + }; + //批量导入打开对话框 + documentBindFunc.on('click', '#areamanage-reportBtn', function() { + $('#areamanage-addallMsg-error').hide(); + //1.获取左侧选中的区县 + var blockId = areaTree.getSelectedNodeId(60); + if(blockId=="" || blockId ==undefined){ + $("#areamanage_tipe_context").text(""); + $("#areamanage_tipe_context").text("请先选择左侧【街道办事处】再导入!"); + $('#areamanage_tipe').modal('show'); + return false; + } + $("#areamanage_uploadFailed").empty(); + $('#areamanage_file_btn').val(''); + $('#progressWrap').addClass('display-none'); + $('#areamanage_uplate_sure').attr('disabled', "true"); //添加disabled属性 + $(".fileinput-filename").html(''); + $('#areamanage_addallMsg').modal('show'); + }); + //路侧 封闭类型选择 + documentBindFunc.on('click', '#areamanage_parktypeadd0',function () { + $('#areamanage-plBerthNum-add').val('0') + $('#areamanage-plBerthNum-add').attr('readonly','readonly'); + }); + documentBindFunc.on('click', '#areamanage_parktypeadd1',function () { + $('#areamanage-plBerthNum-add').removeAttr('readonly'); + }); + /**excle文件预览后提交.*/ + documentBindFunc.on('click', '#areamanage-lookmodel-submit', function() { + var checkParmFlg = ""; + var checkUniquePlNameFlg=""; + var parkingLotList = new Array(); + //1.获取左侧选中的区县 + var blockId = areaTree.getSelectedNodeId(60); + if(blockId=="" || blockId ==undefined){ + $("#areamanage-editParkinglot").text(""); + $("#areamanage-editParkinglot").text("请先选择左侧【街道办事处】再添加!"); + $('#areamanage-editParkinglot').show(); + return false; + } + //块信息 + var nodeBlock = areaTree.getNodeById(blockId); + //区县信息 + var nodeCountry =""; + if(nodeBlock != null && nodeBlock !="" && "60" == nodeBlock.areaType){ + nodeCountry = areaTree.getNodeById(nodeBlock.pId) + } + //地市信息 + var nodeCity=""; + if(nodeCountry != null && nodeCountry !="" && "50" == nodeCountry.areaType){ + nodeCity = areaTree.getNodeById(nodeCountry.pId) + } + //省份 + var nodePro = ""; + if(nodeCity != null && nodeCity !="" && "40" == nodeCity.areaType){ + nodePro = areaTree.getNodeById(nodeCity.pId) + } + + /**省份ID*/ + var plProvinceId = nodePro.id; + /**省份名称*/ + var plProvinceName = nodePro.name; + /**城市ID*/ + var plCityId =nodeCity.id; + /**城市名称*/ + var plCityName = nodeCity.name; + /**区县ID*/ + var plCountryId = nodeCountry.id; + /**区县名称*/ + var plCountryName = nodeCountry.name; + /**块id*/ + var plAreaBlockId = nodeBlock.id; + /**块名称*/ + var plAreaBlockName =nodeBlock.name; + + //用户信息id + var createOp = fn.getUserId(); + /**经纬度类型:1:百度,2:地球,3:高德*/ + var lonLatType = 1; + var rows = $("#areamanage_LookmodelAddrow").find('tr'); + if(rows != null && rows != ""){ + $.each(rows, function(index) { + var indexNum = $(this).attr('index'); + var td = $(this).find('td'); + if(td !=null && td != ""){ + //停车场名称 + var plName=""; + plName = td.eq(0).text(); + //状态 + var state=""; + state = td.eq(1).attr("key"); + //类型 + var plType=""; + plType = td.eq(2).attr("key"); + //类型属性 + var plTypeProp=""; + plTypeProp =td.eq(3).attr("key"); + //商圈属性 + var busiCircle=""; + busiCircle = td.eq(4).attr("key"); + //来源 + var sourceType=""; + sourceType = td.eq(5).attr("key"); + //入口数 + var plEntranceNum=""; + plEntranceNum =td.eq(6).text(); + //出口数 + var plExitNum=""; + plExitNum = td.eq(7).text(); + //营业开始时间 + var busiTimeStart=""; + busiTimeStart= td.eq(8).text(); + //营业结束时间 + var busiTimeEnd=""; + busiTimeEnd= td.eq(9).text(); + //泊位数 + var plBerthNum=""; + plBerthNum = td.eq(10).text(); + //停车场详细地址 + var plAddress=""; + plAddress = td.eq(11).text(); + //服务电话 + var serviceTel=""; + serviceTel = td.eq(12).text(); + /** 经度 */ + var lonId=""; + lonId =td.eq(13).text(); + /** 纬度 */ + var latId=""; + latId = td.eq(14).text(); + //备注 + var remark = "停车场批量导入"; + /***/ + checkParmFlg =func.lookModeCheck(indexNum,plName,state,plType,plTypeProp,busiCircle,sourceType,plEntranceNum,plExitNum,plBerthNum,lonId,latId,serviceTel,plAddress); + if(!checkParmFlg){ + return false; + } + var req = { + "plName":plName, + "plProvinceId":plProvinceId, + "plProvinceName":plProvinceName, + "plCityId":plCityId, + "plCityName":plCityName, + "plCountryId":plCountryId, + "plCountryName":plCountryName, + "plAreaBlockId":plAreaBlockId, + "plAreaBlockName":plAreaBlockName, + "state":state, + "plType":plType, + "plTypeProp":plTypeProp, + "busiCircle":busiCircle, + "sourceType":sourceType, + "plExitNum":plExitNum, + "plEntranceNum":plEntranceNum, + "plBerthNum":plBerthNum, + "plAddress":plAddress, + "lonId":lonId, + "latId":latId, + "lonLatType":lonLatType, + "createOp":createOp, + "serviceTel":serviceTel, + "remark":remark, + "plBusiTimeStart":busiTimeStart, + "plBusiTimeEnd":busiTimeEnd, + }; + parkingLotList.push(req); + }//if + }); + } + var submitFlg = true; + if(submitFlg && checkParmFlg){ + submitFlg= false; + $('#areamanage-lookmodel-submit').attr("disabled","disabled"); // + //保存excle数据 + var req = {parkingLotList:parkingLotList, + sysCode: sysComm.sysCode + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.batchSaveParkingLotInfo(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + submitFlg=true; + $('#areamanage-lookmodel-submit').removeAttr("disabled"); // + $('#areamanage_Lookmodel').modal('hide'); + //初始化table + btnFlag = false;//不是按钮触发 + func.createTableData(); + } else { + submitFlg=true; + $('#areamanage-lookmodel-submit').removeAttr("disabled"); // + $("#areamanage-lookParkinglot").text(""); + $("#areamanage-lookParkinglot").text("保存失败!"); + $('#areamanage-lookParkinglot').show(); + return false; + } + } + }); + } + + }); + +/** + * 处理错误信息 + * @param {Object} res + */ +function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + var errorPop = new Pop({ + header:'错误提示', + content:$(''+res.msg+''), + buttons:[{ + type:'popOk', + text:'确定', + callback:function(){ + errorPop.close(); + } + }] + }); + return true; + }else{ + return false; + } +} + + + diff --git a/assets/pages/scripts/parksetFile/berthInterval/berthinterval.css b/assets/pages/scripts/parksetFile/berthInterval/berthinterval.css new file mode 100644 index 0000000..deb4484 --- /dev/null +++ b/assets/pages/scripts/parksetFile/berthInterval/berthinterval.css @@ -0,0 +1,15 @@ +.concat-line{ + display: inline-block;width: 15px;height: 1px;background-color: #d8e2e5; margin: 0 5px; +} +.berthintval-parking-l{ + margin-right: 15px; +} +.berthintval-table{ + float: left; + height: 700px; + width: calc((100% - 24px)/2); +} +/*#berthintval-table-r .bs-checkbox{ + padding-left: 0px !important; +}*/ +/*弹窗*/ \ No newline at end of file diff --git a/assets/pages/scripts/parksetFile/berthInterval/berthinterval.html b/assets/pages/scripts/parksetFile/berthInterval/berthinterval.html new file mode 100644 index 0000000..06acf5e --- /dev/null +++ b/assets/pages/scripts/parksetFile/berthInterval/berthinterval.html @@ -0,0 +1,256 @@ +
          +
          +
          +
          +
          + +
          +
          + +
          +
          +
          +
          查询
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          + 停车场 +
          +
          +
          +
          +
          +
          +
          + 泊位区间详情 +
          +
          + +
          + +
          + +
          +
          + +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          + + + + + + + + + + + + + + + diff --git a/assets/pages/scripts/parksetFile/berthInterval/img/areamanage_baidimapIco.png b/assets/pages/scripts/parksetFile/berthInterval/img/areamanage_baidimapIco.png new file mode 100644 index 0000000..c139675 Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthInterval/img/areamanage_baidimapIco.png differ diff --git a/assets/pages/scripts/parksetFile/berthInterval/img/dataicon.png b/assets/pages/scripts/parksetFile/berthInterval/img/dataicon.png new file mode 100644 index 0000000..b04bfc8 Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthInterval/img/dataicon.png differ diff --git a/assets/pages/scripts/parksetFile/berthInterval/img/input-checkbox.png b/assets/pages/scripts/parksetFile/berthInterval/img/input-checkbox.png new file mode 100644 index 0000000..27709ab Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthInterval/img/input-checkbox.png differ diff --git a/assets/pages/scripts/parksetFile/berthInterval/img/input-checkexActive.png b/assets/pages/scripts/parksetFile/berthInterval/img/input-checkexActive.png new file mode 100644 index 0000000..2e44210 Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthInterval/img/input-checkexActive.png differ diff --git a/assets/pages/scripts/parksetFile/berthInterval/img/input-radio-active.png b/assets/pages/scripts/parksetFile/berthInterval/img/input-radio-active.png new file mode 100644 index 0000000..2649720 Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthInterval/img/input-radio-active.png differ diff --git a/assets/pages/scripts/parksetFile/berthInterval/img/input-radio.png b/assets/pages/scripts/parksetFile/berthInterval/img/input-radio.png new file mode 100644 index 0000000..35e0b1b Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthInterval/img/input-radio.png differ diff --git a/assets/pages/scripts/parksetFile/berthManage/berthmanagement.css b/assets/pages/scripts/parksetFile/berthManage/berthmanagement.css new file mode 100644 index 0000000..d7d7250 --- /dev/null +++ b/assets/pages/scripts/parksetFile/berthManage/berthmanagement.css @@ -0,0 +1,21 @@ +.concat-line{ + display: inline-block;width: 15px;height: 1px;background-color: #d8e2e5; margin: 0 5px; +} +.berthmanagement-parking-l{ + margin-right: 15px; +} +.berthmanagement-table{ + float: left; + height: 700px; + /*overflow-y: auto;*/ + width: calc((100% - 24px)/2); +} +.portlet-body{ + height: 650px; + overflow-y: auto; +} + +/*#berthmanagement-table-r .bs-checkbox{ + padding-left: 0px !important; +}*/ +/*弹窗*/ \ No newline at end of file diff --git a/assets/pages/scripts/parksetFile/berthManage/berthmanagement.html b/assets/pages/scripts/parksetFile/berthManage/berthmanagement.html new file mode 100644 index 0000000..40f1766 --- /dev/null +++ b/assets/pages/scripts/parksetFile/berthManage/berthmanagement.html @@ -0,0 +1,370 @@ +
          +
          +
          +
          +
          + +
          +
          + +
          +
          +
          +
          查询
          +
          + +
          +
          +
          +
          +
          +
          +
          +
          +
          + 泊位区间详情 +
          +
          +
          +
          +
          +
          +
          + 泊位详情 +
          +
          + +
          +
          + +
          +
          + +
          +
          + +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/pages/scripts/parksetFile/berthManage/img/areamanage_baidimapIco.png b/assets/pages/scripts/parksetFile/berthManage/img/areamanage_baidimapIco.png new file mode 100644 index 0000000..c139675 Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthManage/img/areamanage_baidimapIco.png differ diff --git a/assets/pages/scripts/parksetFile/berthManage/img/dataicon.png b/assets/pages/scripts/parksetFile/berthManage/img/dataicon.png new file mode 100644 index 0000000..b04bfc8 Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthManage/img/dataicon.png differ diff --git a/assets/pages/scripts/parksetFile/berthManage/img/input-checkbox.png b/assets/pages/scripts/parksetFile/berthManage/img/input-checkbox.png new file mode 100644 index 0000000..27709ab Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthManage/img/input-checkbox.png differ diff --git a/assets/pages/scripts/parksetFile/berthManage/img/input-checkexActive.png b/assets/pages/scripts/parksetFile/berthManage/img/input-checkexActive.png new file mode 100644 index 0000000..2e44210 Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthManage/img/input-checkexActive.png differ diff --git a/assets/pages/scripts/parksetFile/berthManage/img/input-radio-active.png b/assets/pages/scripts/parksetFile/berthManage/img/input-radio-active.png new file mode 100644 index 0000000..2649720 Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthManage/img/input-radio-active.png differ diff --git a/assets/pages/scripts/parksetFile/berthManage/img/input-radio.png b/assets/pages/scripts/parksetFile/berthManage/img/input-radio.png new file mode 100644 index 0000000..35e0b1b Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthManage/img/input-radio.png differ diff --git a/assets/pages/scripts/parksetFile/berthfile/berthmanagement.css b/assets/pages/scripts/parksetFile/berthfile/berthmanagement.css new file mode 100644 index 0000000..b100a64 --- /dev/null +++ b/assets/pages/scripts/parksetFile/berthfile/berthmanagement.css @@ -0,0 +1,27 @@ +.concat-line{ + display: inline-block;width: 15px;height: 1px;background-color: #d8e2e5; margin: 0 5px; +} +.berthmanagement-parking-l{ + margin-right: 15px; +} +.berthmanagement-table{ + float: left; + /*height: 700px;*/ + /*overflow-y: auto;*/ + width: calc((100% - 24px)/2); + width: -webkit-calc((100% - 24px)/2); + width: -moz-calc((100% - 24px)/2); +} +.portlet-body{ + /*height: 650px;*/ + overflow-y: auto; +} +.berthmanagement-input78 { + width: 100%; + height: 34px; + line-height: 34px; +} +/*#berthmanagement-table-r .bs-checkbox{ + padding-left: 0px !important; +}*/ +/*弹窗*/ diff --git a/assets/pages/scripts/parksetFile/berthfile/berthmanagement.html b/assets/pages/scripts/parksetFile/berthfile/berthmanagement.html new file mode 100644 index 0000000..a1137c1 --- /dev/null +++ b/assets/pages/scripts/parksetFile/berthfile/berthmanagement.html @@ -0,0 +1,457 @@ +
          +
          +
          +
          +
          + +
          +
          + +
          +
          + +
          +
          + +
          +
          +
          +
          查询
          +
          + +
          +
          +
          +
          +
          +
          +
          + +
          +
          + 泊位详情 +
          +
          + +
          +
          + +
          +
          + +
          +
          + +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/parksetFile/berthfile/img/areamanage_baidimapIco.png b/assets/pages/scripts/parksetFile/berthfile/img/areamanage_baidimapIco.png new file mode 100644 index 0000000..c139675 Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthfile/img/areamanage_baidimapIco.png differ diff --git a/assets/pages/scripts/parksetFile/berthfile/img/dataicon.png b/assets/pages/scripts/parksetFile/berthfile/img/dataicon.png new file mode 100644 index 0000000..b04bfc8 Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthfile/img/dataicon.png differ diff --git a/assets/pages/scripts/parksetFile/berthfile/img/input-checkbox.png b/assets/pages/scripts/parksetFile/berthfile/img/input-checkbox.png new file mode 100644 index 0000000..27709ab Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthfile/img/input-checkbox.png differ diff --git a/assets/pages/scripts/parksetFile/berthfile/img/input-checkexActive.png b/assets/pages/scripts/parksetFile/berthfile/img/input-checkexActive.png new file mode 100644 index 0000000..2e44210 Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthfile/img/input-checkexActive.png differ diff --git a/assets/pages/scripts/parksetFile/berthfile/img/input-radio-active.png b/assets/pages/scripts/parksetFile/berthfile/img/input-radio-active.png new file mode 100644 index 0000000..2649720 Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthfile/img/input-radio-active.png differ diff --git a/assets/pages/scripts/parksetFile/berthfile/img/input-radio.png b/assets/pages/scripts/parksetFile/berthfile/img/input-radio.png new file mode 100644 index 0000000..35e0b1b Binary files /dev/null and b/assets/pages/scripts/parksetFile/berthfile/img/input-radio.png differ diff --git a/assets/pages/scripts/parksetFile/berthinterval.js b/assets/pages/scripts/parksetFile/berthinterval.js new file mode 100644 index 0000000..50fd23c --- /dev/null +++ b/assets/pages/scripts/parksetFile/berthinterval.js @@ -0,0 +1,985 @@ + +define(function (require, exports, module) { + require("sPath/berthInterval/berthinterval.css"); + /* + @页面初始化 + */ + var init = function () { + // setContent();//页面开发完删除 + bindEvent(); + // pageInit(); + return "泊位区间设置"; + }; + function pageInit() { + + $('#berthintval-park').selectpicker('refresh'); + $('#berthintval-service').selectpicker('refresh'); + //新增泊位区间弹窗 + documentBindFunc.on('click','#berthinterval-addBtn',function () { + $("#berthterval-addBerthterval").text(""); + $("#berthterval-addBerthterval").hide(); + + $("#berthterval-dataareaID").val(""); + $("#berthterval-add-plNo").val(""); + /**1、先选中左侧的停车场 */ + var index = $("#berthintval-table-l").find("tr.success").data("index"); + var row = $("#berthintval-table-l").bootstrapTable('getData')[index]; + console.log(index); + if(undefined==index || null ==index){ + swal({ + title: "提示", + text: '请选中左侧的任意一行停车场!', + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + }else{ + var addPlNo=row.plNo; + $("#berthterval-add-plNo").val(addPlNo); + $("#berthterval-add-plName").text(row.plName); + $('#berthinterval_addmodel').modal('show'); + } + + }); + //新增泊位区间确定提交事件 + documentBindFunc.on('click','#berthinterval-areaadd-submit',function () { + + fun.saveBerthAreaAjax(); + + }); + //新增泊位区间点击继续事件 + documentBindFunc.on('click','#berthinterval-addother-submit',function () { + // ajax 不关闭弹窗 + + fun.saveBerthAreaAjaxForDonotClose(); + $('#berthterval-dataareaID').val(''); + + }); + //删除泊位区间弹窗 + documentBindFunc.on('click','#berthinterval-del',function () { + var ids2 = []; + var parkAreaCodes = []; + var deleteBerthNums=[]; + ids2 = getIdSelections(); + deleteBerthNums=getBerthNumSelections(); + parkAreaCodes = getParkAreaCodeSelections(); + if(ids2[0] == null) { + swal({ + title: "提示", + text: '请选择至少一条记录!', + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } else { + /**1、判断该泊位区间下是否有泊位 **/ + var flag=true; + for(var indexBerth in deleteBerthNums){ + if(deleteBerthNums[indexBerth]>0){ + flag=false; + } + } + if(flag){ + $("#berthterval_delete-ids").val(ids2); + $("#berthterval_delete_parkAreaCodes").val(parkAreaCodes); + $('#berthinterval_deletemodel').modal('show'); + }else{ + swal({ + title: "提示", + text: '该泊位区间下有泊位不能删除', + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } + } + + }); + /**修改泊位区间 */ + documentBindFunc.on('click','.modifyBerthArea',function () { + var id = $(this).attr('data-value'); + var modifyRow = $('#berthintval-table-r').bootstrapTable('getRowByUniqueId', id); + //console.log(modifyRow); + $('#berthterval-dataareaID-update').val(modifyRow.parkAreaName); + $("#berthterval-update-id").val(id); + $("#berthterval-update-plNo").val(modifyRow.plNo); + $("#berthterval-update-plName").text(modifyRow.plName); + + //ajax 修改泊位区间 + $('#berthinterval_updatemodel').modal('show'); + }); + //修改泊位区间确定提交事件 + documentBindFunc.on('click','#berthinterval-areaupdate-submit',function () { + + fun.updateBerthAreaAjax(); + + }); + // 删除泊位区间提交事件 + documentBindFunc.on('click','#berthinterval-delete-submit',function () { + $("#berthterval-deleteBerthterval").text(""); + $('#berthterval-deleteBerthterval').hide(); + var deleteids=[]; + var deleteid=$("#berthterval_delete-ids").val(); + if(deleteid.indexOf(",")!=-1){ + deleteids=deleteid.split(","); + }else{ + deleteids.push(deleteid); + } + console.log(deleteids); + var parkAreaCodes=[]; + var parkAreaCode=$("#berthterval_delete_parkAreaCodes").val(); + if(parkAreaCode.indexOf(",")!=-1){ + parkAreaCodes=parkAreaCode.split(","); + }else{ + parkAreaCodes.push(parkAreaCode); + } + + //ajax 删除泊位区间 + fun.deleteBerthAreaAjax(deleteids, parkAreaCodes); + + + }); + + + + //批量导入 + documentBindFunc.on('click', '#berthinterval-reportBtn', function() { + /**1、先选中左侧的停车场 */ + var index = $("#berthintval-table-l").find("tr.success").data("index"); + var row = $("#berthintval-table-l").bootstrapTable('getData')[index]; + console.log(index); + if(undefined==index || null ==index){ + swal({ + title: "提示", + text: '请选中左侧的任意一行停车场!', + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + }else{ + var addPlNo=row.plNo; + $("#berthintval_batchAddPlNo").val(addPlNo); + $("#berthinterval-uploadFailed").empty(); + $('#berthinterval-file_btn').val(''); + $('#berthinterval-progressWrap').addClass('display-none'); + $('#berthinterval-uplate_sure').attr('disabled', "true"); //添加disabled属性 + $(".fileinput-filename").html(''); + $('#berthinterval_addallMsg').modal('show'); + } + + }); + //预览之后批量新增 + documentBindFunc.on('click', '#berthinterval-excellookmodel-submit', function() { + var rows = $("#berthintval_LookmodelAddrowForBerthInteval").find('tr'); + var parkAreaNames = []; + var plNo = $("#berthintval_batchAddPlNo").val(); + var createEmpid = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + if(rows != null && rows != "") { + $.each(rows, function (index) { + var indexNum = $(this).attr('index'); + var td = $(this).find('td'); + if (td != null && td != "") { + //泊位区间名称 + var parkAreaName = td.eq(0).text(); + parkAreaNames.push(parkAreaName); + } + }); + var req = { + "plNo": plNo, + "parkAreaNames": parkAreaNames, + "createEmpid": createEmpid, + "sysCode": sysComm.sysCode + }; + var easyUIOps = { + method: 'POST', + url: dataUrl.util.batchSaveTpPRegionArea(), + data: JSON.stringify(req), + success: function () { + //刷新table + $('#berthinterval_Lookmodel').modal('hide'); + $('#berthintval-table-r').bootstrapTable('refresh', { + silent: true + }); + } + }; + sysAjax(easyUIOps); + + } + }); + //模版下载 + documentBindFunc.on('click', '#berthinterval-excleTemplate', function() { + window.location.href = parkcloudbaseUrl + "berthinteval/泊位区间批量导入.xlsx"; + + }); + //预览filestr................................................. + $('#berthinterval-uplate_sure').on('click', function() { + + //接口介入 + + uploadFileBerthinterval(); + //ajax + //上传进度 + //上传excel报错 + }); + function uploadFileBerthinterval() { + var fd = new FormData(); + fd.append("excelFile", document.getElementById('berthinterval-file_btn').files[0]); + fd.append("sysOpName", fn.getUserName()); + fd.append("sysOpId", fn.getUserId()); + var xhr = new XMLHttpRequest(); + xhr.upload.addEventListener("progress", uploadProgressBerthinterval, false); + xhr.addEventListener("load", uploadCompleteBerthinterval, false); + xhr.addEventListener("error", uploadFailedBerthinterval, false); + xhr.addEventListener("abort", uploadCanceledBerthinterval, false); + xhr.open("POST", dataUrl.util.batchReadBerthIntevelExcleFile()); //修改成自己的接口 + xhr.send(fd); + } + + function uploadProgressBerthinterval(evt) { + if(evt.lengthComputable) { + var percentComplete = Math.round(evt.loaded * 100 / evt.total); + + } + } + + function uploadCompleteBerthinterval(evt) { + /* 服务器端返回响应时候触发event事件*/ + var result = JSON.parse(evt.target.responseText); + //console.log(evt.target.responseText); + $("#berthinterval-uploadFailed").empty(); + + if(result != null && "8888" != result.code) { + if("1019" == result.code) { + $("#berthinterval-uploadFailed").append("只能上传xlsx或者lsx格式文件"); + return false; + } + if("1020" == result.code) { + $("#berthinterval-uploadFailed").append("请在excle添加数据后上传"); + return false; + } + + } else { + //alert("成功"); + $('#berthinterval-progressNumber').text(100 + '%'); + $('#berthinterval-progressLoad').css('width', 100 + '%'); + $('#berthinterval_addallMsg').modal('hide'); + $('#berthinterval_Lookmodel').modal('show'); + //初始化table + if(null != result.data) { + console.log(result.data); + $("#berthintval_LookmodelAddrowForBerthInteval").empty(); + var html=""; + $.each(result.data, function(index, row) { + if(row != null && row !=""){ + html +=""; + html +=""+row.parkAreaName+""; + html +=""; + } + }); + $("#berthintval_LookmodelAddrowForBerthInteval").html(html); + } + + } + + } + + function uploadFailedBerthinterval(evt) { + console.log("There was an error attempting to upload the file."); + } + + function uploadCanceledBerthinterval(evt) { + console.log("The upload has been canceled by the user or the browser dropped the connection."); + } + //预览fileend................................................. + + /***langlw 2017-12-29 edit **/ + //定义全局变量 + var parkAreaCode = null; + var plNos = []; + var detailPlNos=[]; + var ids = []; + + /**点击某一行赋值 **/ + $("#berthintval-table-l").on("click-row.bs.table",function(e,row,ele){ + $(".success").removeClass("success"); + $(ele).addClass("success"); + var index = $("#berthintval-table-l").find("tr.success").data("index"); + var row = $("#berthintval-table-l").bootstrapTable('getData')[index]; + + console.log(row.plNo); + detailPlNos=[]; + detailPlNos.push(row.plNo); + fun.initBerthIntvalDetailTable(); + + }); + + var fun = { + init: function () { + + //3、初始化区域信息 + fun.initBlockSelect(); + + + $("#berthintval-service").change(function () { + fun.initParkSelect("#berthintval-service", "#berthintval-park"); + fun.initBerthIntvalTable(); + }); + + documentBindFunc.on('click', '#berthinterval-queryBtn', function() { + fun.initBerthIntvalTable(); + }); + + fun.initBerthIntvalTable(); + + + + }, + //初始化停车场表格数据 + initBerthIntvalTable: function() { + $('#berthintval-table-l').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [''], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: fun.ajaxTableLoadRequest, //自定义ajax加载数据 + uniqueId: 'plId', + columns: [ + { + field: 'plId', + title: '主键', + visible: false, + align: 'left' + }, + { + field: 'plAreaBlockName', + title: '街道办事处', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'plNo', + title: '车场编码', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'plName', + title: '车场名称', + width: '5%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'parkAreaNum', + title: '泊位区间数', + width: '5%', + align: 'left', + visible: false, + formatter: function (value, row, index) { + if(value != undefined && value != null) { + return value; + } else { + return "0"; + } + } + }, + ] + }); + + }, + //初始化泊位区间详情表格数据 + initBerthIntvalDetailTable: function() { + $('#berthintval-table-r').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [''], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: fun.ajaxDetailTableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [{ + field: 'state', + title: ' ', + width: '2%', + checkbox: true, + align: 'left', + // formatter: checkedFormatter + }, + { + field: 'id', + title: '主键', + visible: false, + align: 'left' + }, + { + field: 'plNo', + title: '车场编码', + visible: false, + align: 'left' + }, + { + field: 'plName', + title: '车场名称', + visible: false, + width: '5%', + align: 'left' + }, + { + field: 'parkAreaCode', + title: '泊位区间编号', + visible:true, + width: '8%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'parkAreaName', + title: '泊位区间名称', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + }, + + { + field: 'berthsNum', + title: '泊位数', + width: '5%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'oper', + title: '操作', + width: '23%', + align: 'left', + formatter: fun.operFormatter + } + ], + }); + + }, + //操作显示 + operFormatter:function (value, row, index) { + var operStr = '修改' + return operStr; + }, + /**初始化区域-服务点信息 */ + initBlockSelect:function () { + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + sysCode: sysComm.sysCode + }; + var opt = { + async:false, + method: 'post', + url: dataUrl.util.queryAreaByOpIdAndOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + var data = res.data; + $("#berthintval-service").empty(); + var html = ''; + var blockIds = []; + for(var key in data) { + blockIds.push(key); + html += ""; + } + blockIds.push(-1); + var plnosStr = JSON.stringify(blockIds); + html = '' + html; + $("#berthintval-service").append(html); + $('#berthintval-service').selectpicker('refresh'); + if(blockIds.length>0){ + //初始化停车场下拉框 + fun.initParkSelect("#berthintval-service", "#berthintval-park"); + } + + } + } + }; + sysAjax(opt); + }, + //根据块信息查询停车场信息 + initParkSelect: function (areaDom, parkDom) { + //停车场下拉框 + var data = fun.getParkingLotMsg(areaDom, parkDom); + $(parkDom).empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $(parkDom).append(html); + $(parkDom).selectpicker('refresh'); + }, + getParkingLotMsg: function (areaDom, parkDom) { + var parkLot = ""; + var plAreaBlockIds = JSON.parse($(areaDom).val()); + var req = {plBlockIds: plAreaBlockIds}; + console.log(plAreaBlockIds); + var opt = { + async: false, + data: 'plBlockIds=' + plAreaBlockIds, + method: "get", + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + url: dataUrl.util.getParkBlockNamesByBlockId(), + success: function (res) { + console.log(res); + if (res.code == '8888') { + parkLot = JSON.stringify(res.data); + } + } + } + sysAjax(opt); + return JSON.parse(parkLot); + }, + /*获取查询参数*/ + getQueryParam: function () { + + var plNo = ""; + var parkName= $("#berthintval-park option:selected").text(); + if("所有停车场"!=parkName && "" != parkName){ + var plNos = JSON.parse($("#berthintval-park option:selected").val()); + if (plNos != "" && plNos != undefined && plNos.length>0) { + plNo = plNos[0]; + } + } + var blockIds=JSON.parse($("#berthintval-service").val()); + var req = { + plNo: plNo, + blockIds: blockIds + }; + console.log(req); + return req; + }, + /**左侧停车场ajax请求 */ + ajaxTableLoadRequest: function(params) { + var req=fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var easyUIOps = { + method: params.type, + //url: dataUrl.util.queryTpPRegionAreaForPage(), + url: dataUrl.util.queryParkingLotForPageByAreaBlockId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res) + if(res.code == '8888') { + params.success(res.data); + if(res.data.rows.length>0){ + detailPlNos=[]; + detailPlNos.push(res.data.rows[0].plNo); + //console.log(detailPlNos); + //行颜色 + var oncLickRowUniqueId = res.data.rows[0].plId; + $('#berthintval-table-l').find("tr[data-uniqueid='"+oncLickRowUniqueId+"']").attr('class','success'); + /***1、初始化泊位区间详情表格数据*/ + fun.initBerthIntvalDetailTable(res.data.rows[0]); + + } + } + } + }; + sysAjax(easyUIOps); + }, + + /**右侧详情ajax请求 */ + ajaxDetailTableLoadRequest: function(params) { + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + var req= { + baseRequest:{ + pageNum:pageNum, + pageSize:params.data.limit + }, + sysCode:sysComm.sysCode, + plNos:detailPlNos + }; + var easyUIOps = { + method: params.type, + url: dataUrl.util.queryTpPRegionAreaForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + //console.log(res) + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(easyUIOps); + }, + saveBerthAreaAjax: function() { + $("#berthterval-addBerthterval").text(""); + $("#berthterval-addBerthterval").hide(); + //泊位区间名称 + var parkAreaName = $('#berthterval-dataareaID').val(); + + //泊位区间名称 + if(StrUtil.isEmpty(parkAreaName)) { + $("#berthterval-addBerthterval").text("请输入泊位区间名称!"); + $('#berthterval-addBerthterval').show(); + + } else if(parkAreaName.length > 40) { + $("#berthterval-addBerthterval").text("泊位区间名称不能大于40个字符!"); + $('#berthterval-addBerthterval').show(); + + }else{ + //return true; + var addPlNo = $('#berthterval-add-plNo').val(); + var createEmpid = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var req = { + "plNo": addPlNo, + "parkAreaName": parkAreaName, + "createEmpid": createEmpid, + "sysCode": sysComm.sysCode + }; + $('#berthinterval-areaadd-submit').attr('disabled',true); + var easyUIOps = { + //async:false, + method: 'POST', + url: dataUrl.util.saveOrUpdateTpPRegionArea(), + data: JSON.stringify(req), + success: function(res) { + $('#berthinterval-areaadd-submit').attr('disabled',false); + if (res.code == '8888') { + $('#berthinterval_addmodel').modal('hide'); + //刷新table + $('#berthintval-table-r').bootstrapTable('refresh', { + silent: true + }); + $("#berthterval-addBerthterval").text(""); + $('#berthterval-addBerthterval').hide(); + }else{ + $("#berthterval-addBerthterval").text("保存泊位区间失败!"); + $('#berthterval-addBerthterval').show(); + } + } + }; + sysAjax(easyUIOps); + } + + }, + saveBerthAreaAjaxForDonotClose: function() { + + $("#berthterval-addBerthterval").text(""); + //泊位区间名称 + var parkAreaName = $('#berthterval-dataareaID').val(); + //泊位区间名称 + if(StrUtil.isEmpty(parkAreaName)) { + $("#berthterval-addBerthterval").text("请输入泊位区间名称!"); + $('#berthterval-addBerthterval').show(); + + } else if(parkAreaName.length > 40) { + $("#berthterval-addBerthterval").text("泊位区间名称不能大于40个字符!"); + $('#berthterval-addBerthterval').show(); + + }else{ + //return true; + var addPlNo = $('#berthterval-add-plNo').val(); + var createEmpid = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var req = { + "plNo": addPlNo, + "parkAreaName": parkAreaName, + "createEmpid": createEmpid, + "sysCode": sysComm.sysCode + }; + $('#berthinterval-addother-submit').attr('disabled',true); + var easyUIOps = { + //async:false, + method: 'POST', + url: dataUrl.util.saveOrUpdateTpPRegionArea(), + data: JSON.stringify(req), + success: function(res) { + $('#berthinterval-addother-submit').attr('disabled',false); + if (res.code == '8888') { + //刷新table + $('#berthintval-table-r').bootstrapTable('refresh', { + silent: true + }); + $("#berthterval-addBerthterval").text("泊位区间保存成功!"); + $('#berthterval-addBerthterval').show(); + }else{ + $("#berthterval-addBerthterval").text("泊位区间保存失败!"); + $('#berthterval-addBerthterval').show(); + } + } + }; + sysAjax(easyUIOps); + } + + }, + updateBerthAreaAjax: function() { + $("#berthterval-editBerthterval").text(""); + $('#berthterval-editBerthterval').hide(); + //泊位区间名称 + var parkAreaName = $('#berthterval-dataareaID-update').val(); + + //泊位区间名称 + if(StrUtil.isEmpty(parkAreaName)) { + $("#berthterval-editBerthterval").text("请输入泊位区间名称"); + $('#berthterval-editBerthterval').show(); + + } else if(parkAreaName.length > 40) { + $("#berthterval-editBerthterval").text("泊位区间名称不能大于40个字符!"); + $('#berthterval-editBerthterval').show(); + + }else{ + var createEmpid = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var req = { + "plNo": $("#berthterval-update-plNo").val(), + "id": $("#berthterval-update-id").val(), + "parkAreaName": parkAreaName, + "createEmpid":createEmpid, + "sysCode": sysComm.sysCode + }; + $('#berthinterval-areaupdate-submit').attr('disabled',true); + var easyUIOps = { + //async:false, + method: 'POST', + url: dataUrl.util.saveOrUpdateTpPRegionArea(), + data: JSON.stringify(req), + success: function(res) { + $('#berthinterval-areaupdate-submit').attr('disabled',false); + if(res.code=="8888"){ + //刷新table + $('#berthintval-table-r').bootstrapTable('refresh', { + silent: true + }); + $('#berthinterval_updatemodel').modal('hide'); + + }else{ + $("#berthterval-editBerthterval").text("泊位区间修改失败!"); + $('#berthterval-editBerthterval').show(); + } + + } + }; + sysAjax(easyUIOps); + } + }, + //删除泊位区间 + deleteBerthAreaAjax: function(ids, parkAreaCodes) { + $("#berthterval-deleteBerthterval").text(""); + $('#berthterval-deleteBerthterval').hide(); + var createOp = fn.getUserId(); + + var req = { + sysCode: sysComm.sysCode, + ids: ids, + opId:(createOp==null || createOp=='')?-1:createOp + }; + $('#berthinterval-delete-submit').attr('disabled',true); + var easyUIOps = { + //async:false, + method: "post", + url: dataUrl.util.deleteTpPRegionArea(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + $('#berthinterval-delete-submit').attr('disabled',false); + //console.log(res) + if(res.code == '8888') { + $('#berthinterval_deletemodel').modal('hide'); + if(res.data) { + $('#id').val(''); + $('#berthintval-table-r').bootstrapTable('refresh', { + silent: true + }); + $("#berthterval-deleteBerthterval").text(""); + $('#berthterval-deleteBerthterval').hide(); + } else { + $("#berthterval-deleteBerthterval").text(res.msg); + $('#berthterval-deleteBerthterval').show(); + return false; + } + + } else { + $("#berthterval-deleteBerthterval").text(res.msg); + $('#berthterval-deleteBerthterval').show(); + } + + } + }; + sysAjax(easyUIOps); + }, + }; + + function getIdSelections() { + return $.map($("#berthintval-table-r").bootstrapTable('getSelections'), function(row) { + return row.id + }); + }; + function getBerthNumSelections() { + return $.map($("#berthintval-table-r").bootstrapTable('getSelections'), function(row) { + return row.berthsNum + }); + }; + + function getParkAreaCodeSelections() { + return $.map($("#berthintval-table-r").bootstrapTable('getSelections'), function(row) { + return row.parkAreaCode + }); + }; + + + + $(".recordbtn").click(function() { + var plNo = $('#BerthParkType').selectpicker('val'); + var parkAreaCodes = $("#berthRange").val(); + console.log(parkAreaCodes); + plNos = JSON.parse(plNo); + if(parkAreaCodes == undefined || parkAreaCodes == "" || parkAreaCodes == null) { + parkAreaCode = null; + } else { + parkAreaCode = parkAreaCodes; + } + console.log(plNos + parkAreaCode) + var url = dataUrl.util.exportTpPRegionAreaExcel() + '?plNos=' + plNos; + if(parkAreaCode != null) { + url = url + "&parkAreaCode=" + parkAreaCode; + } + console.log(url); + window.downloadFile(url); + + }); + + + + window.downloadFile = function(sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if(/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if(window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if(link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if(document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if(sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; + } + + window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; + window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; + + function isError(res) { + if(res == null || res == undefined) { + return true; + } + if(res.code != '8888') { + alert("系统错误"); + return true; + } else { + return false; + } + }; + + + fun.init(); + + + /** langlw 2017-12-29 edit end ***/ + + + + + } + /* + @设置内容 + */ + var setContent = function (url) { + var strHtml =''; + $("#main-con").empty(); + strHtml = require("text!./berthInterval/berthinterval.html"); + $("#main-con").html(strHtml); + pageInit(); + + + }; + + /* + @绑定事件 + */ + var bindEvent = function () { + $("#button-berthinterval").on('click', function () { + $(this).addClass('ITD-topbar-clickactive').siblings('li').removeClass('ITD-topbar-clickactive'); + var url = $(this).attr('data-url'); + setContent(url); + }); + } + module.exports = { + init: init, + setContentInit:setContent + } +}); +//添加excle文件名 +// $(".berthinteval_btn_file").on("change", "input[type='file']", function() { +function berthvalexcleImport(){ + console.log(333) + $('#berthinterval-uploadFailed').empty(); + //$('#progressWrap').addClass('display-none'); + var filePath = $('#berthinterval-file_btn').val(); + var arr = filePath.split('\\'); + var fileName = arr[arr.length - 1]; + $(".fileinput-filename-berth").html(fileName); + $('#berthinterval-uplate_sure').removeAttr("disabled"); //移除disabled属性 +}; + + diff --git a/assets/pages/scripts/parksetFile/berthmanage.js b/assets/pages/scripts/parksetFile/berthmanage.js new file mode 100644 index 0000000..a461a35 --- /dev/null +++ b/assets/pages/scripts/parksetFile/berthmanage.js @@ -0,0 +1,1231 @@ +//道路位置 +var v_roadPosition={"0":"左","1":"右"}; +//方位 +var v_direction={"0":"东","1":"西","2":"南","3":"北"}; +//停车方式 +var v_park_type={"0":"平行式","1":"垂直式","2":"倾斜式"}; + + + +var oncLickRowUniqueId=""; +define(function (require, exports, module) { + require("sPath/berthfile/berthmanagement.css"); + /* + @页面初始化 + */ + var init = function () { + // setContent();//页面开发完删除 + bindEvent(); + // pageInit(); + return "泊位管理"; + }; + function pageInit() { + func.init(); + $('#berthmanagement-area').selectpicker('refresh'); + $('#berthmanagement-park').selectpicker('refresh'); + $('#berthmanagement-service').selectpicker('refresh'); + + + + /**点击某一行赋值 **/ + documentBindFunc.on('click-row.bs.table','#berthmanagement-table-l',function(e,row,ele){ + $(".success").removeClass("success"); + $(ele).addClass("success"); + var index = $("#berthmanagement-table-l").find("tr.success").data("index"); + var row = $("#berthmanagement-table-l").bootstrapTable('getData')[index]; + oncLickRowUniqueId = row.id; + func.berthsTableInit(); + }); + + + //预览filestr................................................. + documentBindFunc.on('click','#berthmanage-uplate_sure',function() { + + //接口介入 + + uploadFileBerthManger(); + //ajax + //上传进度 + //上传excel报错 + }); + function uploadFileBerthManger() { + var fd = new FormData(); + fd.append("excelFile", document.getElementById('berthmanage-file_btn').files[0]); + var xhr = new XMLHttpRequest(); + xhr.upload.addEventListener("progress", uploadProgressBerthManger, false); + xhr.addEventListener("load", uploadCompleteBerthManger, false); + xhr.addEventListener("error", uploadFailedBerthManger, false); + xhr.addEventListener("abort", uploadCanceledBerthManger, false); + xhr.open("POST", dataUrl.util.batchReadBerthExcleFile()); //修改成自己的接口 + xhr.send(fd); + } + + function uploadProgressBerthManger(evt) { + if(evt.lengthComputable) { + var percentComplete = Math.round(evt.loaded * 100 / evt.total); + // $('#progressWrap').removeClass('display-none'); + // document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%'; + console.log(percentComplete.toString() + '%') + + /* if(percentComplete.toString()>=80){ + $('#progressLoad').css('width', 80 + '%'); + $('#progressNumber').text(80 + '%'); + }else{ + $('#progressLoad').css('width', percentComplete.toString() + '%'); + $('#progressNumber').text(percentComplete.toString() + '%'); + }*/ + + } else { + // document.getElementById('progressNumber').innerHTML = 'unable to compute'; + } + } + + function uploadCompleteBerthManger(evt) { + /* 服务器端返回响应时候触发event事件*/ + var result = JSON.parse(evt.target.responseText); + console.log(evt.target.responseText); + $("#uploadFailed").empty(); + if(result != null && "8888" != result.code) { + if("1019" == result.code) { + $("#berthmanage_addallMsg-error").text(""); + $("#berthmanage_addallMsg-error").text("只能上传xlsx或者lsx格式文件!"); + $("#berthmanage_addallMsg-error").show(); + return false; + } + if("1020" == result.code) { + $("#berthmanage_addallMsg-error").text(""); + $("#berthmanage_addallMsg-error").text("请在excle添加数据后上传!"); + $("#berthmanage_addallMsg-error").show(); + return false; + } + if("1022" == result.code) { + $("#berthmanage_addallMsg-error").text(""); + $("#berthmanage_addallMsg-error").text("excle模板错误!"); + $("#berthmanage_addallMsg-error").show(); + return false; + } + + + } else { + //alert("成功"); + $('#berthmanage-lookParkinglot').modal('hide'); + + if(null != result.data) { + $("#LookmodelAddrow").empty(); + var html = ""; + $.each(result.data, function (index, row) { + if (row != null && row != "") { + html += ""; + html += "" + row.berthNo + ""; + if (row.roadPosition != null && row.roadPosition != "") { + var roadPosition = row.roadPosition.split("-"); + html += "" + roadPosition[1] + ""; + } + if (row.direction != null && row.direction != "") { + var direction = row.direction.split("-"); + html += "" + direction[1] + ""; + } + if (row.parkType != null && row.parkType != "") { + var parkType = row.parkType.split("-"); + html += "" + parkType[1] + ""; + } + html += ""; + } + + }); + $("#berthmanageLookmodelAddrow").empty(); + $("#berthmanageLookmodelAddrow").html(html); + $('#berthmanage_addallMsg').modal('hide'); + $('#berthmanage_Lookmodel').modal('show'); + $("#berthmanage-lookParkinglot").hide(); + } + }//else + + } + + function uploadFailedBerthManger(evt) { + console.log("There was an error attempting to upload the file."); + } + + function uploadCanceledBerthManger(evt) { + console.log("The upload has been canceled by the user or the browser dropped the connection."); + } + //预览fileend................................................. + + } + /*** + * 功能函数.
          + */ + var func={ + /**1.初始化查询条件下拉框.*/ + initSelectLink:function(){ + //3、初始化区域信息 + func.initBlockSelect("#berthmanagement-service","#berthmanagement-park","#berthmanagement-area",true); + func.queryParkChange("#berthmanagement-park","#berthmanagement-area",true); + func.initAreaSelect("#berthmanagement-park","#berthmanagement-area",true); + documentBindFunc.on('change',"#berthmanagement-service",function () { + func.initParkSelect("#berthmanagement-service", "#berthmanagement-park","#berthmanagement-area",true); +// func.berthsAreaTableInit(); + }); + documentBindFunc.on('click', '#berthmanagement-queryBtn', function() { + func.berthsTableInit(); + }); + //导入按钮 + documentBindFunc.on('click', '#berthmanage-reportBtn', function() { + //选择泊位区间初始化 + $('#import_select_block').selectpicker('refresh'); + $('#import_select_park').selectpicker('refresh'); + $('#import_select_area').selectpicker('refresh'); + func.initBlockSelect("#import_select_block","#import_select_park","#import_select_area",false); + func.queryParkChange("#import_select_park","#import_select_area",false); + func.initAreaSelect("#import_select_park","#import_select_area",false); + $("#import_select_area_error").hide(); + $('#import_select_area_model').modal('show'); + }); + documentBindFunc.on('change',"#import_select_block",function () { + func.initParkSelect("#import_select_block", "#import_select_park","#import_select_area",false); + }); + + //新增按钮 + documentBindFunc.on('change',"#add_select_block",function () { + func.initParkSelect("#add_select_block", "#add_select_park","#add_select_area",false); + }); + + + }, + //停车场改变查询泊位区间 + queryParkChange:function(parkId,areaId,flag){ + $(parkId).change(function(){ + func.initAreaSelect(parkId,areaId,flag); + }); + }, + initAreaSelect:function(parkId,areaId,flag){ + var req={}; + var plNos = JSON.parse($(parkId).val()); + if (plNos == "" || plNos == undefined) { + plNos = [-1]; + } + req.plNos = plNos; + //设置请求参数 + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 10000 + }; + req.sysCode = sysComm.sysCode; + var easyUIOps = { + method: 'post', + async: false, + url: dataUrl.util.queryTpPRegionAreaForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + //console.log(res) + if(res.code == '8888') { + if(res.data.rows != null){ + var data = res.data.rows; + var parkAreaCodes = []; + var htmls = ''; + var html = ''; + for (var i = 0; i < data.length; i++) { + parkAreaCodes.push(data[i].parkAreaCode); +// html += ""; + html += ""; + } + var parkAreaCodesStr = JSON.stringify(parkAreaCodes); + htmls = '' + html; + + $(areaId).empty(); + if(flag){ + $(areaId).append(htmls); + }else{ + $(areaId).append(html); + } + $(areaId).selectpicker('refresh'); + }else{ + console.log(res); + } + } + } + }; + sysAjax(easyUIOps); + }, + /**3.泊位表格初始化.*/ + berthsTableInit:function(){ + $('#berthmanagement-table-r').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10,20,50], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: func.ajaxTableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [{ + field: 'berthmanagement-state', + title: '', + width: '2%', + checkbox: true, + align: 'left' + // formatter: checkedFormatter + }, + { + field: 'id', + title: '主键', + visible: false, + align: 'left' + }, + { + field: 'plName', + title: '车场名称', + visible: true, + // width: '5%', + align: 'left', + formatter:function(value,row,index){ + var plName = commonObj.replacenull(value,row,index); + return ''+plName+''; + } + }, + { + field: 'plNo', + title: '车场编码', + visible: true, + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'parkAreaName', + title: '泊位区间名称', + // width: '10%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'berthNo', + title: '泊位编号', + width: '33%', + visible: true, + align: 'left', + formatter:commonObj.replacenull + }, + + { + field: 'parkType', + title: '停车方式', + visible: false, + width: '33%', + align: 'left', + formatter:parkType + }, + { + field: 'orderId', + title: '泊位状态', + width: '33%', + visible: true, + formatter:function(value,row,index){ + if(value===null||value===undefined||value===''){ + return '无车'; + }else{ + return '有车-'+row.carNo; + } + }, + align: 'left' + }, + { + field: 'eqpNo', + title: '地磁编号', + width: '33%', + visible: false, + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'oper', + title: '操作', + width: '33%', + align: 'left', + formatter: operFormatter + } + ], + }); + function parkType(value, row, index){ + if(value == null || value =="" || value == undefined){ + return "-"; + }else{ + return v_park_type[value]; + } + } + //操作显示 + function operFormatter(value, row, index) { + var operStr = '修改' + return operStr; + }; + + }, + /**4.泊位添加初始化.*/ + addBerthsOpenWindow:function(){ + //新增泊位区间弹窗 + documentBindFunc.on('click','#berthmanage-addBtn',function () { +// $("#berthmanage-berthNoArea-add").val(''); + //选择泊位区间初始化 + $('#add_select_block').selectpicker('refresh'); + $('#add_select_park').selectpicker('refresh'); + $('#add_select_area').selectpicker('refresh'); + + func.initBlockSelect("#add_select_block","#add_select_park","#add_select_area",false); + func.queryParkChange("#add_select_park","#add_select_area",false); + func.initAreaSelect("#add_select_park","#add_select_area",false); + + + $("#berthmanage-berthNo-add").val(''); +// $("#berthmanage-berthNoArea-add").val(parkAreaName); + $("#berthmanage_addmodel-error").hide(); + //1.道路位置下拉框 + func.selectInit(v_roadPosition,"berthmanage-roadPosition-add"); + //2.方位 + func.selectInit(v_direction,"berthmanage-direction-add"); + //3.停车方式 + func.selectInit(v_park_type,"berthmanage-stopType-add"); + // var id = $(this).attr('data-id'); + // $("#areamanage-deleteID").val(id); + $('#berthmanage-roadpoi').selectpicker('refresh'); + $('#berthmanage-carpoi').selectpicker('refresh'); + $('#berthmanage-stopType').selectpicker('refresh'); + $('#berthmanage_addmodel').modal('show'); + }); + }, + /**5.保存泊位信息.*/ + saveBerthsInfo:function(){ + //新增泊位区间确定提交事件 + documentBindFunc.on('click','#berthmanage-areaadd-submit,#berthmanage-addother-submit',function () { + /** 要修改(或新增)的泊位区间编号 */ + var parkAreaCodes = JSON.parse($("#add_select_area").val()); + var plNos = JSON.parse($("#add_select_park").val()); + //var plName = $("#berthmanagement-area option:selected").attr('plname') + if (plNos == "" || plNos == undefined || plNos == null || plNos.length != 1) { + $("#berthmanage_addmodel-error").text(""); + $("#berthmanage_addmodel-error").text("请选择停车场!"); + $("#berthmanage_addmodel-error").show(); + return false; + } + if (parkAreaCodes == "" || parkAreaCodes == undefined || parkAreaCodes == null || parkAreaCodes.length != 1) { + $("#berthmanage_addmodel-error").text(""); + $("#berthmanage_addmodel-error").text("请选择泊位区间!"); + $("#berthmanage_addmodel-error").show(); + return false; + } + //点击标志 + var tagClick = $(this)[0].id; + /** 要修改(或新增)的泊位的停车场编号 */ + + var parkAreaCode = parkAreaCodes[0]; + var plNo = plNos[0]; + //泊位编号 + var berthNo = $("#berthmanage-berthNo-add").val(); + /** 要修改(或新增)的停车方式 */ + var parkType=$("#berthmanage-stopType-add").val(); + /**道路位置(0:左 1:右)*/ + var roadPosition= $("#berthmanage-roadPosition-add").val(); + /**方位:0:东 1:西 2:南 3 :北*/ + var direction =$("#berthmanage-direction-add").val(); + //校验 + var flg = func.checkParam(berthNo,"berthmanage_addmodel-error"); + if(flg){ + //校验泊位编码唯一性 + var heckUniqueFlg = func.checkUniqueForBerthNo(plNo,berthNo); + if(heckUniqueFlg){ + $("#berthmanage_addmodel-error").text(""); + $("#berthmanage_addmodel-error").text("泊位编号已经存在!"); + $("#berthmanage_addmodel-error").show(); + return false; + } + var req={ + plNo:plNo, + parkAreaCode:parkAreaCode, + berthNo:berthNo, + parkType:parkType, + roadPosition:roadPosition, + direction:direction, + sysCode:sysComm.sysCode + }; + var submitFlg =true; + if(submitFlg){ + submitFlg = false; + sysAjax({ + method: 'POST', + url: dataUrl.util.saveBerthInfo(), + data: JSON.stringify(req), + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + submitFlg=true; + if("berthmanage-areaadd-submit" == tagClick){ + $('#berthmanage_addmodel').modal('hide'); + } + $("#berthmanage_addmodel-error").text(""); + $("#berthmanage_addmodel-error").text("保存成功!"); + $("#berthmanage_addmodel-error").show(); + func.berthsTableInit(); + + $('#berthmanage-berthNo-add').val(''); + $('#berthmanage-berthNo-add').focus() + } else { + submitFlg=true; + $("#berthmanage_addmodel-error").text(""); + $("#berthmanage_addmodel-error").text("保存失败,请重新尝试!"); + $("#berthmanage_addmodel-error").show(); + } + } + }); + + } + + }//flg + + + }); + }, + /**6.校验填写的参数信息.*/ + checkParam:function(berthNo,errorTipId){ + var flg =true; + //校验泊位编号 + var regName = /^\S{1,40}$/; + if(!berthNo.match(regName)){ + $("#"+errorTipId).text(""); + $("#"+errorTipId).text("泊位编号必填且最大长度为40位!"); + $("#"+errorTipId).show(); + flg=false; + return false; + } + return flg; + }, + /**7.修改初始化框.*/ + editBerthsOpenWindow:function(){ + documentBindFunc.on('click','.modifyBerthArea',function(){ + $("#berthmanage_editmodel-error").hide(); + var berthId=$(this).attr('data-value'); + var rows = $('#berthmanagement-table-r').bootstrapTable('getRowByUniqueId',berthId); + var plNo = rows.plNo; + var parkAreaName = rows.parkAreaName; + var berthNo = rows.berthNo; + $("#berthmanage_edit_id").val(""); + $("#berthmanage_edit_id").val(berthId); + $("#berthmanage_edit_plNo").val(""); + $("#berthmanage_edit_plNo").val(plNo); + $("#berthmanage-berthNoArea-edit").val(''); + $("#berthmanage-berthNoArea-edit").val(parkAreaName); + $("#berthmanage_edit_berthNoCheck").val(""); + $("#berthmanage_edit_berthNoCheck").val(berthNo); + + + $("#berthmanage_addmodel-error").hide(); + $("#berthmanage-berthNo-edit").val(""); + $("#berthmanage-berthNo-edit").val(berthNo); + //1.道路位置下拉框 + func.selectInit(v_roadPosition,"berthmanage-roadPosition-edit"); + //2.方位 + func.selectInit(v_direction,"berthmanage-direction-edit"); + //3.停车方式 + func.selectInit(v_park_type,"berthmanage-stopType-edit"); + + $("#berthmanage-roadPosition-edit").selectpicker('val',rows.roadPosition); //道路位置下拉框 + $("#berthmanage-direction-edit").selectpicker('val',rows.direction); //道路位置下拉框 + $("#berthmanage-stopType-edit").selectpicker('val',rows.parkType); //fangshi + // var id = $(this).attr('data-id'); + // $("#areamanage-deleteID").val(id); + + $('#berthmanage_editmodel').modal('show'); + }); + }, + /**8.更新泊位信息*/ + updateBerthsInfo:function(){ + documentBindFunc.on('click','#berthmanage-areaedit-submit',function(){ + var berthNoCheck = $("#berthmanage_edit_berthNoCheck").val(); + var berthId = $("#berthmanage_edit_id").val(); + var plNo = $("#berthmanage_edit_plNo").val(); + //泊位编号 + var berthNo = $("#berthmanage-berthNo-edit").val(); + /** 要修改(或新增)的停车方式 */ + var parkType=$("#berthmanage-stopType-edit").val(); + /**道路位置(0:左 1:右)*/ + var roadPosition= $("#berthmanage-roadPosition-edit").val(); + /**方位:0:东 1:西 2:南 3 :北*/ + var direction =$("#berthmanage-direction-edit").val(); + //校验 + var flg = func.checkParam(berthNo,"berthmanage_editmodel-error"); + if(flg) { + + //校验泊位编码唯一 + var heckUniqueFlg = true; + if(berthNoCheck != berthNo ){ + heckUniqueFlg =func.checkUniqueForBerthNo(plNo, berthNo); + }else{ + heckUniqueFlg = false; + } + + if (heckUniqueFlg) { + $("#berthmanage_editmodel-error").text(""); + $("#berthmanage_editmodel-error").text("泊位编号已经存在!"); + $("#berthmanage_editmodel-error").show(); + return false; + } + var req={ + id:berthId, + berthNo:berthNo, + parkType:parkType, + roadPosition:roadPosition, + direction:direction, + sysCode:sysComm.sysCode + }; + var submitFlg =true; + if(submitFlg){ + submitFlg = false; + sysAjax({ + method: 'POST', + url: dataUrl.util.updateBerthInfo(), + data: JSON.stringify(req), + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + submitFlg=true; + $('#berthmanage_editmodel').modal('hide'); + func.berthsTableInit(); + + } else { + submitFlg=true; + $("#berthmanage_editmodel-error").text(""); + $("#berthmanage_editmodel-error").text("保存失败,请重新尝试!"); + $("#berthmanage_editmodel-error").show(); + } + } + }); + + } + }//flg + + }); + }, + /**9.批量删除泊位.*/ + batchRemoveBerths:function(){ + documentBindFunc.on('click','#berthmanage-del',function () { + $("#areamanage-deleteallMsg-error").text(""); + $('#areamanage-deleteallMsg-error').hide(); + var rowsData = $("#berthmanagement-table-r").bootstrapTable('getSelections'); + + if (rowsData.length <= 0) { + $("#berthmanage_tipe_context").text(""); + $("#berthmanage_tipe_context").text("请选择要删除的泊位!"); + $("#berthmanage_tipe").modal('show'); + return false; + } + $("#berthmanage_tipe").modal('hide'); + $('#berthmanage_deletemodel').modal('show'); + }); + // 删除泊位区间提交事件 + documentBindFunc.on('click','#berthmanage-delete-submit',function () { + var rowsData = $("#berthmanagement-table-r").bootstrapTable('getSelections'); + var ids = new Array(); + var plNo = ""; + //用户信息id + var createOp = fn.getUserId(); + $.each(rowsData,function(index,row){ + if(row != null ){ + plNo=row.plNo; + ids[index] = row.id; + } + }); + var req = { + plNo:plNo, + ids:ids, + opId:createOp, + sysCode: sysComm.sysCode + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.deleteBerths(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + // console.log(res.data); + if (res.code == '8888') { + $('#berthmanage_deletemodel').modal('hide'); + //初始化table + func.berthsTableInit(); + } else { + + $("#areamanage-deleteallMsg-error").text(""); + $("#areamanage-deleteallMsg-error").text(res.msg); + $('#areamanage-deleteallMsg-error').show(); + return false; + } + } + }); + });//click + + + + }, + /**10更换泊位区间弹出框.*/ + changBerthAreaOpenWindow:function(){ + // 更换泊位区间 + documentBindFunc.on('click','#berthmanage-change',function () { + var rowsData = $("#berthmanagement-table-r").bootstrapTable('getSelections'); + if (rowsData.length <= 0) { + $("#berthmanage_tipe_context").text(""); + $("#berthmanage_tipe_context").text("请选择要更换的泊位!"); + $("#berthmanage_tipe").modal('show'); + return false; + } + + for(var i=0;i"+row+""; + }); + $("#"+id).empty(); + $("#"+id).html(html); + $("#"+id).selectpicker('render'); + }, + /**初始化区域-服务点信息 */ + initBlockSelect:function (blockId,parkId,areaId,flag) { + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + sysCode: sysComm.sysCode + }; + var opt = { + async:false, + method: 'post', + url: dataUrl.util.queryAreaByOpIdAndOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + var data = res.data; + $(blockId).empty(); + var html = ''; + var blockIds = []; + for(var key in data) { + blockIds.push(key); + html += ""; + } + blockIds.push(-1); + var plnosStr = JSON.stringify(blockIds); + if(flag){ + html = '' + html; + } + $(blockId).append(html); + $(blockId).selectpicker('refresh'); + if(blockIds.length>0){ + //初始化停车场下拉框 + func.initParkSelect(blockId, parkId,areaId,flag); + } + + } + } + }; + sysAjax(opt); + }, + //根据块信息查询停车场信息 + initParkSelect: function (blockDom, parkDom,areaDom,flag) { + //停车场下拉框 + var data = func.getParkingLotMsg(blockDom, parkDom); + $(parkDom).empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + if(plNos.length < 1){ + plNos.push(-1); + } + var plnosStr = JSON.stringify(plNos); + if(flag){ + html = '' + html; + } + $(parkDom).append(html); + $(parkDom).selectpicker('refresh'); + + func.initAreaSelect(parkDom,areaDom,flag); + + }, + getParkingLotMsg: function (blockDom, parkDom) { + var parkLot = ""; + var plAreaBlockIds = JSON.parse($(blockDom).val()); + var req = {plBlockIds: plAreaBlockIds}; + console.log(plAreaBlockIds); + var opt = { + async: false, + data: 'plBlockIds=' + plAreaBlockIds, + method: "get", + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + url: dataUrl.util.getParkBlockNamesByBlockId(), + success: function (res) { + console.log(res); + if (res.code == '8888') { + parkLot = JSON.stringify(res.data); + } + } + } + sysAjax(opt); + return JSON.parse(parkLot); + }, + getBerthAreasByPlNo:function(plNo){ + //条件查询 + var plNos = [plNo]; + var req = { + plNos:plNos + } + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.sysCode = sysComm.sysCode; + var berthsAreas = ""; + var easyUIOps = { + async:false, + method: 'POST', + url: dataUrl.util.queryTpPRegionAreaForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + //console.log(res) + if(res.code == '8888') { + berthsAreas = JSON.stringify(res.data); + } + } + }; + sysAjax(easyUIOps); + return JSON.parse(berthsAreas); + }, + /*获取查询参数*/ + getQueryParam: function () { + + var plNos = JSON.parse($("#berthmanagement-park").val()); + if (plNos == "" || plNos == undefined) { + plNos = null; + } + var parkAreaCodes = JSON.parse($("#berthmanagement-area").val()); + if (parkAreaCodes == "" || parkAreaCodes == undefined) { + parkAreaCodes = null; + } + var blockIds=JSON.parse($("#berthmanagement-service").val()); + var blockId = ""; + if(blockIds!=null && blockIds.length>0){ + blockId=blockIds[0]; + } + var berthNo = $("#carberthNumber").val(); + var req = { + plNos: plNos, + parkAreaCodes: parkAreaCodes, + blockId: blockId, + berthNo:berthNo, + }; + console.log(req); + return req; + }, + /**右侧停车场ajax请求 */ + ajaxTableLoadRequest: function(params) { + var req=func.getQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + req.lonAndLatFlag = false; + var easyUIOps = { + method: params.type, + async: false, + url: dataUrl.util.berthInfoList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res) + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(easyUIOps); + + }, + + + + /**15选中下拉框.*/ + selectedInit:function(key,id){ + if(id != null && id != "" && id !=undefined){ + $("#"+id).selectpicker('val',key); + } + + }, + /**16.校验泊位编号唯一性(同一个停车场)*/ + checkUniqueForBerthNo:function(plNo,berthNo){ + var flg =false; + var req={ + plNo:plNo, + berthNo:berthNo, + sysCode:sysComm.sysCode + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.checkUniqueForBerthNo(), + data: JSON.stringify(req), + async:false, + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + flg = res.data; + } + } + }); + return flg; + }, + init:function(){ + func.initSelectLink(); //1.初始化查询条件下拉框 + func.berthsTableInit(); //3.泊位表格初始化 + func.addBerthsOpenWindow(); //4.泊位添加初始化 + func.saveBerthsInfo(); //5.保存泊位信息 + //func.checkParam(); //6.校验填写的参数信息 + func.editBerthsOpenWindow(); //7.修改初始化框 + func.updateBerthsInfo(); //8.更新泊位信息 + func.batchRemoveBerths(); //9.批量删除泊位 + func.changBerthAreaOpenWindow(); //10更换泊位弹出框 + func.updateChangBerthArea(); //11.更换泊位区间 + // func.excleImportRead(); //12.excel读取 + func.batchSaveExcle(); //13批量保存exce数据 + + + + } + + }; + /* + @设置内容 + */ + var setContent = function (url) { + var strHtml =''; + strHtml = require("text!./berthfile/berthmanagement.html"); + $("#main-con").html(strHtml); + pageInit(); + + + }; + + /* + @绑定事件 + */ + var bindEvent = function () { + documentBindFunc.on('click','#button-berthmanagement' ,function () { + $(this).addClass('ITD-topbar-clickactive').siblings('li').removeClass('ITD-topbar-clickactive'); + var url = $(this).attr('data-url'); + setContent(url); + }); + } + module.exports = { + init: init, + setContentInit:setContent + } +}); +/**12.excel读取.*/ +function berthmentexcleImportRead(){ + //添加excle文件名 + // documentBindFunc.on("change", ".berthmanger-btn-file input[type='file']", function() { + $('#uploadFailed').empty(); + $('#progressWrap').addClass('display-none'); + var filePath = $('#berthmanage-file_btn').val(); + var arr = filePath.split('\\'); + var fileName = arr[arr.length - 1]; + $(".fileinput-filename").html(fileName); + $('#berthmanage-uplate_sure').removeAttr("disabled"); //移除disabled属性 +}; +//批量导入 +documentBindFunc.on('click', '#import_select_area_submit', function() { + var parkAreaCodes = JSON.parse($("#import_select_area").val()); + var plNos = JSON.parse($("#import_select_park").val()); + if(plNos == null || plNos.length <= 0 || plNos.length > 1){ + $("#import_select_area_error").text(""); + $("#import_select_area_error").text("请选择停车场!"); + $("#import_select_area_error").show(); + return ; + } + if(parkAreaCodes == null || parkAreaCodes.length <= 0 || parkAreaCodes.length > 1){ + $("#import_select_area_error").text(""); + $("#import_select_area_error").text("请选择泊位区间!"); + $("#import_select_area_error").show(); + return ; + } + + $('#import_select_area_model').modal('hide'); + $("#berthmanage_addallMsg-error").hide(); + $("#berthmanage-uploadFailed").empty(); + $('#berthmanage-file_btn').val(''); + $('#berthmanage-progressWrap').addClass('display-none'); + $('#berthmanage-uplate_sure').attr('disabled', "true"); //添加disabled属性 + $(".fileinput-filename").html(''); + $('#berthmanage_addallMsg').modal('show'); +}); +//模版下载 +documentBindFunc.on('click', '#berthmanage-excleTemplate', function() { + window.location.href = parkcloudbaseUrl + "berths/泊位导入模板.xlsx"; + +}); diff --git a/assets/pages/scripts/parksetFile/berthmanagement.js b/assets/pages/scripts/parksetFile/berthmanagement.js new file mode 100644 index 0000000..6e0725b --- /dev/null +++ b/assets/pages/scripts/parksetFile/berthmanagement.js @@ -0,0 +1,1200 @@ +//道路位置 +var v_roadPosition={"0":"左","1":"右"}; +//方位 +var v_direction={"0":"东","1":"西","2":"南","3":"北"}; +//停车方式 +var v_park_type={"0":"平行式","1":"垂直式","2":"倾斜式"}; + + + +var oncLickRowUniqueId=""; +define(function (require, exports, module) { + require("sPath/berthManage/berthmanagement.css"); + /* + @页面初始化 + */ + var init = function () { + // setContent();//页面开发完删除 + bindEvent(); + // pageInit(); + return "泊位管理"; + }; + function pageInit() { + func.init(); + $('#berthmanagement-area').selectpicker('refresh'); + $('#berthmanagement-park').selectpicker('refresh'); + $('#berthmanagement-service').selectpicker('refresh'); + /**点击某一行赋值 **/ + documentBindFunc.on('click-row.bs.table','#berthmanagement-table-l',function(e,row,ele){ + $(".success").removeClass("success"); + $(ele).addClass("success"); + var index = $("#berthmanagement-table-l").find("tr.success").data("index"); + var row = $("#berthmanagement-table-l").bootstrapTable('getData')[index]; + oncLickRowUniqueId = row.id; + func.berthsTableInit(); + }); + + + //预览filestr................................................. + documentBindFunc.on('click','#berthmanage-uplate_sure',function() { + + //接口介入 + + uploadFileBerthManger(); + //ajax + //上传进度 + //上传excel报错 + }); + function uploadFileBerthManger() { + var fd = new FormData(); + fd.append("excelFile", document.getElementById('berthmanage-file_btn').files[0]); + var xhr = new XMLHttpRequest(); + xhr.upload.addEventListener("progress", uploadProgressBerthManger, false); + xhr.addEventListener("load", uploadCompleteBerthManger, false); + xhr.addEventListener("error", uploadFailedBerthManger, false); + xhr.addEventListener("abort", uploadCanceledBerthManger, false); + xhr.open("POST", dataUrl.util.batchReadBerthExcleFile()); //修改成自己的接口 + xhr.send(fd); + } + + function uploadProgressBerthManger(evt) { + if(evt.lengthComputable) { + var percentComplete = Math.round(evt.loaded * 100 / evt.total); + // $('#progressWrap').removeClass('display-none'); + // document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%'; + console.log(percentComplete.toString() + '%') + + /* if(percentComplete.toString()>=80){ + $('#progressLoad').css('width', 80 + '%'); + $('#progressNumber').text(80 + '%'); + }else{ + $('#progressLoad').css('width', percentComplete.toString() + '%'); + $('#progressNumber').text(percentComplete.toString() + '%'); + }*/ + + } else { + // document.getElementById('progressNumber').innerHTML = 'unable to compute'; + } + } + + function uploadCompleteBerthManger(evt) { + /* 服务器端返回响应时候触发event事件*/ + var result = JSON.parse(evt.target.responseText); + console.log(evt.target.responseText); + $("#uploadFailed").empty(); + if(result != null && "8888" != result.code) { + if("1019" == result.code) { + $("#berthmanage_addallMsg-error").text(""); + $("#berthmanage_addallMsg-error").text("只能上传xlsx或者lsx格式文件!"); + $("#berthmanage_addallMsg-error").show(); + return false; + } + if("1020" == result.code) { + $("#berthmanage_addallMsg-error").text(""); + $("#berthmanage_addallMsg-error").text("请在excle添加数据后上传!"); + $("#berthmanage_addallMsg-error").show(); + return false; + } + if("1022" == result.code) { + $("#berthmanage_addallMsg-error").text(""); + $("#berthmanage_addallMsg-error").text("excle模板错误!"); + $("#berthmanage_addallMsg-error").show(); + return false; + } + + + } else { + //alert("成功"); + $('#berthmanage-lookParkinglot').modal('hide'); + + if(null != result.data) { + $("#LookmodelAddrow").empty(); + var html = ""; + $.each(result.data, function (index, row) { + if (row != null && row != "") { + html += ""; + html += "" + row.berthNo + ""; + if (row.roadPosition != null && row.roadPosition != "") { + var roadPosition = row.roadPosition.split("-"); + html += "" + roadPosition[1] + ""; + } + if (row.direction != null && row.direction != "") { + var direction = row.direction.split("-"); + html += "" + direction[1] + ""; + } + if (row.parkType != null && row.parkType != "") { + var parkType = row.parkType.split("-"); + html += "" + parkType[1] + ""; + } + html += ""; + } + + }); + $("#berthmanageLookmodelAddrow").empty(); + $("#berthmanageLookmodelAddrow").html(html); + $('#berthmanage_addallMsg').modal('hide'); + $('#berthmanage_Lookmodel').modal('show'); + $("#berthmanage-lookParkinglot").hide(); + } + }//else + + } + + function uploadFailedBerthManger(evt) { + console.log("There was an error attempting to upload the file."); + } + + function uploadCanceledBerthManger(evt) { + console.log("The upload has been canceled by the user or the browser dropped the connection."); + } + //预览fileend................................................. + + } + /*** + * 功能函数.
          + */ + var func={ + /**1.初始化查询条件下拉框.*/ + initSelectLink:function(){ + //3、初始化区域信息 + func.initBlockSelect(); + + documentBindFunc.on('change',"#berthmanagement-service",function () { + func.initParkSelect("#berthmanagement-service", "#berthmanagement-park"); + func.berthsAreaTableInit(); + }); + documentBindFunc.on('click', '#berthmanagement-queryBtn', function() { + func.berthsAreaTableInit(); + }); + }, + /**2.初始化左侧泊位区间.*/ + berthsAreaTableInit:function(){ + $('#berthmanagement-table-l').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10,20,50], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + maintainSelected:true, + singleSelect : true, + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: func.ajaxDetailTableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [{ + field: 'state', + title: ' ', + visible: false, + align: 'left' + }, + { + field: 'id', + title: '主键', + visible: false, + align: 'left' + }, + + { + field: 'plName', + title: '车场名称', + visible: true, + // width: '5%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'plNo', + title: '车场编码', + visible: true, + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'parkAreaName', + title: '泊位区间名称', + // width: '10%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'parkAreaCode', + title: '泊位区间编号', + visible: false, + width: '8%', + align: 'left' + } + /**{ + field: 'berthNum', + title: '泊位数', + width: '5%', + align: 'left' + }*/ + ], + onClickRow: function (row) { + oncLickRowUniqueId=row.id; + } + }); + }, + /**3.泊位表格初始化.*/ + berthsTableInit:function(){ + $('#berthmanagement-table-r').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10,20,50], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: func.ajaxTableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [{ + field: 'berthmanagement-state', + title: '', + width: '2%', + checkbox: true, + align: 'left' + // formatter: checkedFormatter + }, + { + field: 'id', + title: '主键', + visible: false, + align: 'left' + }, + { + field: 'berthNo', + title: '泊位编号', + width: '33%', + visible: true, + align: 'left', + formatter:commonObj.replacenull + }, + + { + field: 'parkType', + title: '停车方式', + visible: true, + width: '33%', + align: 'left', + formatter:parkType + }, + { + field: 'isOccupy', + title: '泊位状态', + width: '33%', + visible: false, + formatter:function(value,row,index){ + if(value=='1'){ + return '在停'; + }else if(value=='2'){ + return '空闲'; + }else if (value=='3'){ + return '异常'; + } + }, + align: 'left' + }, + { + field: 'eqpNo', + title: '地磁编号', + width: '33%', + visible: false, + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'oper', + title: '操作', + width: '33%', + align: 'left', + formatter: operFormatter + } + ], + }); + function parkType(value, row, index){ + if(value == null || value =="" || value == undefined){ + return "-"; + }else{ + return v_park_type[value]; + } + } + //操作显示 + function operFormatter(value, row, index) { + var operStr = '修改' + return operStr; + }; + + }, + /**4.泊位添加初始化.*/ + addBerthsOpenWindow:function(){ + //新增泊位区间弹窗 + documentBindFunc.on('click','#berthmanage-addBtn',function () { + var rows = $('#berthmanagement-table-l').bootstrapTable('getRowByUniqueId',oncLickRowUniqueId); + if(rows == null || rows.length <= 0){ + $("#berthmanage_tipe_context").text(""); + $("#berthmanage_tipe_context").text("请选择左侧泊位区间!"); + $('#berthmanage_tipe').modal('show'); + return false; + } + + $("#berthmanage-berthNoArea-add").val(''); + $("#berthmanage-berthNo-add").val(''); + $("#berthmanage-berthNoArea-add").val(rows.parkAreaName); + $("#berthmanage_addmodel-error").hide(); + //1.道路位置下拉框 + func.selectInit(v_roadPosition,"berthmanage-roadPosition-add"); + //2.方位 + func.selectInit(v_direction,"berthmanage-direction-add"); + //3.停车方式 + func.selectInit(v_park_type,"berthmanage-stopType-add"); + // var id = $(this).attr('data-id'); + // $("#areamanage-deleteID").val(id); + $('#berthmanage-roadpoi').selectpicker('refresh'); + $('#berthmanage-carpoi').selectpicker('refresh'); + $('#berthmanage-stopType').selectpicker('refresh'); + $('#berthmanage_addmodel').modal('show'); + }); + }, + /**5.保存泊位信息.*/ + saveBerthsInfo:function(){ + //新增泊位区间确定提交事件 + documentBindFunc.on('click','#berthmanage-areaadd-submit,#berthmanage-addother-submit',function () { + var rows = $('#berthmanagement-table-l').bootstrapTable('getRowByUniqueId',oncLickRowUniqueId); + if(rows == null || rows.length <= 0){ + $("#berthmanage_addmodel-error").text(""); + $("#berthmanage_addmodel-error").text("请选择左侧泊位区间后再添加泊位!"); + $("#berthmanage_addmodel-error").show(); + return false; + } + //点击标志 + var tagClick = $(this)[0].id; + /** 要修改(或新增)的泊位的停车场编号 */ + var plNo=rows.plNo + /** 要修改(或新增)的泊位区间编号 */ + var parkAreaCode =rows.parkAreaCode + //泊位编号 + var berthNo = $("#berthmanage-berthNo-add").val(); + /** 要修改(或新增)的停车方式 */ + var parkType=$("#berthmanage-stopType-add").val(); + /**道路位置(0:左 1:右)*/ + var roadPosition= $("#berthmanage-roadPosition-add").val(); + /**方位:0:东 1:西 2:南 3 :北*/ + var direction =$("#berthmanage-direction-add").val(); + //校验 + var flg = func.checkParam(berthNo,"berthmanage_addmodel-error"); + if(flg){ + //校验泊位编码唯一性 + var heckUniqueFlg = func.checkUniqueForBerthNo(plNo,berthNo); + if(heckUniqueFlg){ + $("#berthmanage_addmodel-error").text(""); + $("#berthmanage_addmodel-error").text("泊位编号已经存在!"); + $("#berthmanage_addmodel-error").show(); + return false; + } + var req={ + plNo:plNo, + parkAreaCode:parkAreaCode, + berthNo:berthNo, + parkType:parkType, + roadPosition:roadPosition, + direction:direction, + sysCode:sysComm.sysCode + }; + var submitFlg =true; + if(submitFlg){ + submitFlg = false; + sysAjax({ + method: 'POST', + url: dataUrl.util.saveBerthInfo(), + data: JSON.stringify(req), + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + submitFlg=true; + if("berthmanage-areaadd-submit" == tagClick){ + $('#berthmanage_addmodel').modal('hide'); + } + $("#berthmanage_addmodel-error").text(""); + $("#berthmanage_addmodel-error").text("保存成功!"); + $("#berthmanage_addmodel-error").show(); + func.berthsTableInit(); + + $('#berthmanage-berthNo-add').val(''); + $('#berthmanage-berthNo-add').focus() + } else { + submitFlg=true; + $("#berthmanage_addmodel-error").text(""); + $("#berthmanage_addmodel-error").text("保存失败,请重新尝试!"); + $("#berthmanage_addmodel-error").show(); + } + } + }); + + } + + }//flg + + + }); + }, + /**6.校验填写的参数信息.*/ + checkParam:function(berthNo,errorTipId){ + var flg =true; + //校验泊位编号 + var regName = /^\S{1,40}$/; + if(!berthNo.match(regName)){ + $("#"+errorTipId).text(""); + $("#"+errorTipId).text("泊位编号必填且最大长度为40位!"); + $("#"+errorTipId).show(); + flg=false; + return false; + } + return flg; + }, + /**7.修改初始化框.*/ + editBerthsOpenWindow:function(){ + documentBindFunc.on('click','.modifyBerthArea',function(){ + $("#berthmanage_editmodel-error").hide(); + var berthId=$(this).attr('data-value'); + var rows = $('#berthmanagement-table-r').bootstrapTable('getRowByUniqueId',berthId); + var plNo = rows.plNo; + var parkAreaName = rows.parkAreaName; + var berthNo = rows.berthNo; + $("#berthmanage_edit_id").val(""); + $("#berthmanage_edit_id").val(berthId); + $("#berthmanage_edit_plNo").val(""); + $("#berthmanage_edit_plNo").val(plNo); + $("#berthmanage-berthNoArea-edit").val(''); + $("#berthmanage-berthNoArea-edit").val(parkAreaName); + $("#berthmanage_edit_berthNoCheck").val(""); + $("#berthmanage_edit_berthNoCheck").val(berthNo); + + + $("#berthmanage_addmodel-error").hide(); + $("#berthmanage-berthNo-edit").val(""); + $("#berthmanage-berthNo-edit").val(berthNo); + //1.道路位置下拉框 + func.selectInit(v_roadPosition,"berthmanage-roadPosition-edit"); + //2.方位 + func.selectInit(v_direction,"berthmanage-direction-edit"); + //3.停车方式 + func.selectInit(v_park_type,"berthmanage-stopType-edit"); + + $("#berthmanage-roadPosition-edit").selectpicker('val',rows.roadPosition); //道路位置下拉框 + $("#berthmanage-direction-edit").selectpicker('val',rows.direction); //道路位置下拉框 + $("#berthmanage-stopType-edit").selectpicker('val',rows.parkType); //fangshi + // var id = $(this).attr('data-id'); + // $("#areamanage-deleteID").val(id); + + $('#berthmanage_editmodel').modal('show'); + }); + }, + /**8.更新泊位信息*/ + updateBerthsInfo:function(){ + documentBindFunc.on('click','#berthmanage-areaedit-submit',function(){ + var berthNoCheck = $("#berthmanage_edit_berthNoCheck").val(); + var berthId = $("#berthmanage_edit_id").val(); + var plNo = $("#berthmanage_edit_plNo").val(); + //泊位编号 + var berthNo = $("#berthmanage-berthNo-edit").val(); + /** 要修改(或新增)的停车方式 */ + var parkType=$("#berthmanage-stopType-edit").val(); + /**道路位置(0:左 1:右)*/ + var roadPosition= $("#berthmanage-roadPosition-edit").val(); + /**方位:0:东 1:西 2:南 3 :北*/ + var direction =$("#berthmanage-direction-edit").val(); + //校验 + var flg = func.checkParam(berthNo,"berthmanage_editmodel-error"); + if(flg) { + + //校验泊位编码唯一 + var heckUniqueFlg = true; + if(berthNoCheck != berthNo ){ + heckUniqueFlg =func.checkUniqueForBerthNo(plNo, berthNo); + }else{ + heckUniqueFlg = false; + } + + if (heckUniqueFlg) { + $("#berthmanage_editmodel-error").text(""); + $("#berthmanage_editmodel-error").text("泊位编号已经存在!"); + $("#berthmanage_editmodel-error").show(); + return false; + } + var req={ + id:berthId, + berthNo:berthNo, + parkType:parkType, + roadPosition:roadPosition, + direction:direction, + sysCode:sysComm.sysCode + }; + var submitFlg =true; + if(submitFlg){ + submitFlg = false; + sysAjax({ + method: 'POST', + url: dataUrl.util.updateBerthInfo(), + data: JSON.stringify(req), + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + submitFlg=true; + $('#berthmanage_editmodel').modal('hide'); + func.berthsTableInit(); + + } else { + submitFlg=true; + $("#berthmanage_editmodel-error").text(""); + $("#berthmanage_editmodel-error").text("保存失败,请重新尝试!"); + $("#berthmanage_editmodel-error").show(); + } + } + }); + + } + }//flg + + }); + }, + /**9.批量删除泊位.*/ + batchRemoveBerths:function(){ + documentBindFunc.on('click','#berthmanage-del',function () { + $("#areamanage-deleteallMsg-error").text(""); + $('#areamanage-deleteallMsg-error').hide(); + var rowsData = $("#berthmanagement-table-r").bootstrapTable('getSelections'); + + if (rowsData.length <= 0) { + $("#berthmanage_tipe_context").text(""); + $("#berthmanage_tipe_context").text("请选择要删除的泊位!"); + $("#berthmanage_tipe").modal('show'); + return false; + } + $("#berthmanage_tipe").modal('hide'); + $('#berthmanage_deletemodel').modal('show'); + }); + // 删除泊位区间提交事件 + documentBindFunc.on('click','#berthmanage-delete-submit',function () { + var rowsData = $("#berthmanagement-table-r").bootstrapTable('getSelections'); + var ids = new Array(); + var plNo = ""; + //用户信息id + var createOp = fn.getUserId(); + $.each(rowsData,function(index,row){ + if(row != null ){ + plNo=row.plNo; + ids[index] = row.id; + } + }); + var req = { + plNo:plNo, + ids:ids, + opId:createOp, + sysCode: sysComm.sysCode + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.deleteBerths(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + // console.log(res.data); + if (res.code == '8888') { + $('#berthmanage_deletemodel').modal('hide'); + //初始化table + func.berthsTableInit(); + } else { + + $("#areamanage-deleteallMsg-error").text(""); + $("#areamanage-deleteallMsg-error").text(res.msg); + $('#areamanage-deleteallMsg-error').show(); + return false; + } + } + }); + });//click + + + + }, + /**10更换泊位区间弹出框.*/ + changBerthAreaOpenWindow:function(){ + // 更换泊位区间 + documentBindFunc.on('click','#berthmanage-change',function () { + var rowsData = $("#berthmanagement-table-r").bootstrapTable('getSelections'); + if (rowsData.length <= 0) { + $("#berthmanage_tipe_context").text(""); + $("#berthmanage_tipe_context").text("请选择要更换的泊位!"); + $("#berthmanage_tipe").modal('show'); + return false; + } + //获取选择的停车场 + var plNo = rowsData[0].plNo; + //获取停车场下面的泊位区间 + var data = func.getBerthAreasByPlNo(plNo); + $('#berthmanage-areachange-areaName').empty(); + var html = ''; + var plName = ''; + for (var i = 0; i < data.total; i++) { + html += ""; + } + plName = data.rows[0].plName; + $('#berthmanage-areachange-plname').val(plName); + $('#berthmanage-areachange-areaName').append(html); + $('#berthmanage-areachange-areaName').selectpicker('refresh'); + $('#berthmanage_changemodel').modal('show'); + }); + }, + /**11.更换泊位区间提交.*/ + updateChangBerthArea:function(){ + documentBindFunc.on('click', '#berthmanage-areachange-submit',function () { + $("#berthmanage_changemodel-error").text(""); + $("#berthmanage_changemodel-error").hide(); + //已经选择的泊位 + var rowsData = $("#berthmanagement-table-r").bootstrapTable('getSelections'); + if (rowsData.length <= 0) { + $("#berthmanage_tipe_context").text(""); + $("#berthmanage_tipe_context").text("请选择要更换的泊位!"); + $("#berthmanage_tipe").modal('show'); + return false; + } + var berthIds = []; + for(var i=0;i"+row+""; + }); + $("#"+id).empty(); + $("#"+id).html(html); + $("#"+id).selectpicker('render'); + }, + /**初始化区域-服务点信息 */ + initBlockSelect:function () { + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + sysCode: sysComm.sysCode + }; + var opt = { + async:false, + method: 'post', + url: dataUrl.util.queryAreaByOpIdAndOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + var data = res.data; + $("#berthmanagement-service").empty(); + var html = ''; + var blockIds = []; + for(var key in data) { + blockIds.push(key); + html += ""; + } + blockIds.push(-1); + var plnosStr = JSON.stringify(blockIds); + html = '' + html; + $("#berthmanagement-service").append(html); + $('#berthmanagement-service').selectpicker('refresh'); + if(blockIds.length>0){ + //初始化停车场下拉框 + func.initParkSelect("#berthmanagement-service", "#berthmanagement-park"); + } + + } + } + }; + sysAjax(opt); + }, + //根据块信息查询停车场信息 + initParkSelect: function (areaDom, parkDom) { + //停车场下拉框 + var data = func.getParkingLotMsg(areaDom, parkDom); + $(parkDom).empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $(parkDom).append(html); + $(parkDom).selectpicker('refresh'); + + + }, + getParkingLotMsg: function (areaDom, parkDom) { + var parkLot = ""; + var plAreaBlockIds = JSON.parse($(areaDom).val()); + var req = {plBlockIds: plAreaBlockIds}; + console.log(plAreaBlockIds); + var opt = { + async: false, + data: 'plBlockIds=' + plAreaBlockIds, + method: "get", + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + url: dataUrl.util.getParkBlockNamesByBlockId(), + success: function (res) { + console.log(res); + if (res.code == '8888') { + parkLot = JSON.stringify(res.data); + } + } + } + sysAjax(opt); + return JSON.parse(parkLot); + }, + getBerthAreasByPlNo:function(plNo){ + //条件查询 + var plNos = [plNo]; + var req = { + plNos:plNos + } + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.sysCode = sysComm.sysCode; + var berthsAreas = ""; + var easyUIOps = { + async:false, + method: 'POST', + url: dataUrl.util.queryTpPRegionAreaForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + //console.log(res) + if(res.code == '8888') { + berthsAreas = JSON.stringify(res.data); + } + } + }; + sysAjax(easyUIOps); + return JSON.parse(berthsAreas); + }, + /*获取查询参数*/ + getQueryParam: function () { + + var plNos = JSON.parse($("#berthmanagement-park").val()); + if (plNos == "" || plNos == undefined) { + plNos = null; + } + var blockIds=JSON.parse($("#berthmanagement-service").val()); + var blockId = ""; + if(blockIds!=null && blockIds.length>0){ + blockId=blockIds[0]; + } + var req = { + plNos: plNos, + blockId: blockId, + }; + console.log(req); + return req; + }, + /**左侧详情ajax请求 */ + ajaxDetailTableLoadRequest: function(params) { + var req=func.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var easyUIOps = { + method: params.type, + url: dataUrl.util.queryTpPRegionAreaForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + //console.log(res) + if(res.code == '8888') { + params.success(res.data); + if(res.data.rows.length>0){ + oncLickRowUniqueId = res.data.rows[0].id; + //行颜色 + $('#berthmanagement-table-l').find("tr[data-uniqueid='"+oncLickRowUniqueId+"']").attr('class','success'); + func.berthsTableInit(); + }else{ + func.berthsTableInit(); + } + } + } + }; + sysAjax(easyUIOps); + }, + getBerthsQueryParam: function () { + var rows = $('#berthmanagement-table-l').bootstrapTable('getRowByUniqueId',oncLickRowUniqueId); + var parkAreaCode =""; + + var plNo = ""; + if(rows != null && rows != "" && rows !=undefined ){ + /** 泊位区间编号 */ + parkAreaCode =rows.parkAreaCode; + plNo = rows.plNo; + } + + + + var req = { + plNo: plNo, + parkAreaCode: parkAreaCode + }; + //console.log(req); + return req; + }, + /**右侧停车场ajax请求 */ + ajaxTableLoadRequest: function(params) { + var req=func.getBerthsQueryParam(); + if(req.plNo != null && req.plNo !="" && req.parkAreaCode != null && req.parkAreaCode != ""){ + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var easyUIOps = { + method: params.type, + url: dataUrl.util.berthInfoList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res) + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(easyUIOps); + + }else{ + var data ={"rows":null,total:0}; + params.success(data); + } + }, + + + + /**15选中下拉框.*/ + selectedInit:function(key,id){ + if(id != null && id != "" && id !=undefined){ + $("#"+id).selectpicker('val',key); + } + + }, + /**16.校验泊位编号唯一性(同一个停车场)*/ + checkUniqueForBerthNo:function(plNo,berthNo){ + var flg =false; + var req={ + plNo:plNo, + berthNo:berthNo, + sysCode:sysComm.sysCode + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.checkUniqueForBerthNo(), + data: JSON.stringify(req), + async:false, + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + flg = res.data; + } + } + }); + return flg; + }, + init:function(){ + func.initSelectLink(); //1.初始化查询条件下拉框 + func.berthsAreaTableInit(); //2.初始化左侧泊位区间 + //func.berthsTableInit(); //3.泊位表格初始化 + func.addBerthsOpenWindow(); //4.泊位添加初始化 + func.saveBerthsInfo(); //5.保存泊位信息 + //func.checkParam(); //6.校验填写的参数信息 + func.editBerthsOpenWindow(); //7.修改初始化框 + func.updateBerthsInfo(); //8.更新泊位信息 + func.batchRemoveBerths(); //9.批量删除泊位 + func.changBerthAreaOpenWindow(); //10更换泊位弹出框 + func.updateChangBerthArea(); //11.更换泊位区间 + // func.excleImportRead(); //12.excel读取 + func.batchSaveExcle(); //13批量保存exce数据 + + + + } + + }; + /* + @设置内容 + */ + var setContent = function (url) { + var strHtml =''; + strHtml = require("text!./berthManage/berthmanagement.html"); + $("#main-con").html(strHtml); + pageInit(); + + + }; + + /* + @绑定事件 + */ + var bindEvent = function () { + documentBindFunc.on('click','#button-berthmanagement' ,function () { + $(this).addClass('ITD-topbar-clickactive').siblings('li').removeClass('ITD-topbar-clickactive'); + var url = $(this).attr('data-url'); + setContent(url); + }); + } + module.exports = { + init: init, + setContentInit:setContent + } +}); +/**12.excel读取.*/ +function berthmentexcleImportRead(){ + //添加excle文件名 + // documentBindFunc.on("change", ".berthmanger-btn-file input[type='file']", function() { + $('#uploadFailed').empty(); + $('#progressWrap').addClass('display-none'); + var filePath = $('#berthmanage-file_btn').val(); + var arr = filePath.split('\\'); + var fileName = arr[arr.length - 1]; + $(".fileinput-filename").html(fileName); + $('#berthmanage-uplate_sure').removeAttr("disabled"); //移除disabled属性 +}; +//批量导入 +documentBindFunc.on('click', '#berthmanage-reportBtn', function() { + var rows = $('#berthmanagement-table-l').bootstrapTable('getRowByUniqueId',oncLickRowUniqueId); + if(rows == null || rows.length <= 0){ + $("#berthmanage-lookParkinglot").text(""); + $("#berthmanage-lookParkinglot").text("请选择左侧泊位区间,然后保存!"); + $('#berthmanage-lookParkinglot').modal('show'); + return false; + } + $("#berthmanage_addallMsg-error").hide(); + $("#berthmanage-uploadFailed").empty(); + $('#berthmanage-file_btn').val(''); + $('#berthmanage-progressWrap').addClass('display-none'); + $('#berthmanage-uplate_sure').attr('disabled', "true"); //添加disabled属性 + $(".fileinput-filename").html(''); + $('#berthmanage_addallMsg').modal('show'); +}); +//模版下载 +documentBindFunc.on('click', '#berthmanage-excleTemplate', function() { + window.location.href = parkcloudbaseUrl + "berths/泊位导入模板.xlsx"; + +}); diff --git a/assets/pages/scripts/parksetFile/norberfile/normalberth.css b/assets/pages/scripts/parksetFile/norberfile/normalberth.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/parksetFile/norberfile/normalberth.css diff --git a/assets/pages/scripts/parksetFile/norberfile/normalberth.html b/assets/pages/scripts/parksetFile/norberfile/normalberth.html new file mode 100644 index 0000000..10eea05 --- /dev/null +++ b/assets/pages/scripts/parksetFile/norberfile/normalberth.html @@ -0,0 +1,74 @@ +
          +
          +
          +
          +
          + +
          +
          + +
          +
          +
          +
          查询
          +
          +
          +
          +
          +
          +
          + +
          +
          +
          +
          + 泊位详情 +
          +
          + +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          + + + + \ No newline at end of file diff --git a/assets/pages/scripts/parksetFile/normalberth.js b/assets/pages/scripts/parksetFile/normalberth.js new file mode 100644 index 0000000..bd0beb7 --- /dev/null +++ b/assets/pages/scripts/parksetFile/normalberth.js @@ -0,0 +1,258 @@ + +define(function (require, exports, module) { + require("sPath/norberfile/normalberth.css"); + /* + @页面初始化 + */ + var init = function () { + // setContent();//页面开发完删除 + bindEvent(); + // pageInit(); + return "空闲泊位"; + }; + function pageInit(){ + var fun={ + init:function () { + fun.initBlockSelect(); + fun.createtableData(); + }, + /**初始化区域-服务点信息 */ + initBlockSelect:function () { + var req = { + baseRequest: { + pageNum: 1, + pageSize: 0 + }, + sysCode: sysComm.sysCode + }; + var opt = { + async:false, + method: 'post', + url: dataUrl.util.queryAreaByOpIdAndOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + var data = res.data; + $("#berthintval-service").empty(); + var html = ''; + var blockIds = []; + for(var key in data) { + blockIds.push(key); + html += ""; + } + blockIds.push(-1); + var plnosStr = JSON.stringify(blockIds); + html = '' + html; + $("#berthintval-service").append(html); + $('#berthintval-service').selectpicker('refresh'); + if(blockIds.length>0){ + //初始化停车场下拉框 + fun.initParkSelect("#berthintval-service", "#berthintval-park"); + } + + } + } + }; + sysAjax(opt); + }, + //根据块信息查询停车场信息 + initParkSelect: function (areaDom, parkDom) { + //停车场下拉框 + var data = fun.getParkingLotMsg(areaDom, parkDom); + $(parkDom).empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $(parkDom).append(html); + $(parkDom).selectpicker('refresh'); + }, + getParkingLotMsg: function (areaDom, parkDom) { + var parkLot = ""; + var plAreaBlockIds = JSON.parse($(areaDom).val()); + var req = {plBlockIds: plAreaBlockIds}; + console.log(plAreaBlockIds); + var opt = { + async: false, + data: 'plBlockIds=' + plAreaBlockIds, + method: "get", + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + url: dataUrl.util.getParkBlockNamesByBlockId(), + success: function (res) { + console.log(res); + if (res.code == '8888') { + parkLot = JSON.stringify(res.data); + } + } + } + sysAjax(opt); + return JSON.parse(parkLot); + }, + /*获取查询参数*/ + getQueryParam: function () { + + var plNo = ""; + var parkName= $("#berthintval-park option:selected").text(); + if("所有停车场"!=parkName && "" != parkName){ + var plNos = JSON.parse($("#berthintval-park option:selected").val()); + if (plNos != "" && plNos != undefined && plNos.length>0) { + plNo = plNos[0]; + } + } + var blockIds=JSON.parse($("#berthintval-service").val()); + var req = { + plNo: plNo, + blockIds: blockIds + }; + console.log(req); + return req; + }, + /**泊位表格初始化.*/ + createtableData:function () { + $('#norbertable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10,20,50], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: func.ajaxTableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'id', + title: '主键', + visible: false, + align: 'left' + }, + { + field: 'plName', + title: '车场名称', + visible: true, + // width: '5%', + align: 'left', + formatter:function(value,row,index){ + var plName = commonObj.replacenull(value,row,index); + return ''+plName+''; + } + }, + { + field: 'plNo', + title: '车场编码', + visible: true, + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'parkAreaName', + title: '泊位区间名称', + // width: '10%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'berthNo', + title: '泊位编号', + width: '33%', + visible: true, + align: 'left', + formatter:commonObj.replacenull + }, + + + { + field: 'oper', + title: '操作', + width: '33%', + align: 'left', + formatter: operFormatter + } + ], + }); + //操作显示 + function operFormatter(value, row, index) { + var operStr = '修改' + + '诱导推送' + return operStr; + }; + + }, + + /**停车场ajax请求 */ + ajaxTableLoadRequest: function(params) { + var req=fun.getQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + req.lonAndLatFlag = false; + var easyUIOps = { + method: params.type, + async: false, + url: dataUrl.util.berthInfoList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res) + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(easyUIOps); + + }, + poploadClick:function () { + documentBindFunc.on('click', '.modifyBerthmsg', function() { + $('#popberthmodel').modal('show'); + }); + }, + + }; + fun.init(); + } +/* + @设置内容 + */ +var setContent = function (url) { + var strHtml =''; + $("#main-con").empty(); + strHtml = require("text!./norberfile/normalberth.html"); + $("#main-con").html(strHtml); + pageInit(); + + +}; + +/* + @绑定事件 + */ +var bindEvent = function () { + $("#button-normalberth").on('click', function () { + $(this).addClass('ITD-topbar-clickactive').siblings('li').removeClass('ITD-topbar-clickactive'); + var url = $(this).attr('data-url'); + setContent(url); + }); +} +module.exports = { + init: init, + setContentInit:setContent +} +}); \ No newline at end of file diff --git a/assets/pages/scripts/parksetFile/parksetTmp.js b/assets/pages/scripts/parksetFile/parksetTmp.js new file mode 100644 index 0000000..bf03b7e --- /dev/null +++ b/assets/pages/scripts/parksetFile/parksetTmp.js @@ -0,0 +1,43 @@ +seajs.config({ + base: "../../assets/pages/scripts", + paths: { + 'sPath': 'parksetFile', + 'seaJS': '../../assets/global/plugins/sea' + }, + alias: { + 'seajs-text': 'seajs-text', + 'seajs-css': 'seajs-css' + }, + preload: 'seajs-text.js', + //preload: ['../../assets/global/plugins/sea/seajs-text.js', '../../assets/global/plugins/sea/seajs-css.js'], + //文件编码 + charset: 'utf-8', + debug: 2 +}); + + +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +var _html = ''; +for(var i=0;i
          '+urlarr[i].name+'
          ' + }else{ + _html += '
        • '+urlarr[i].name+'
        • ' + } +} +$('#button-btn').html(_html); +seajs.use(['seaJS/seajs-text', 'seaJS/seajs-css'], function () { +//seajs.use(['seaJS/seajs-css'], function () { + seajs.use(['sPath/areamanagement.js','sPath/berthmanage.js','sPath/berthinterval.js','sPath/normalberth.js',], function (areamanagement,berthmanagement,berthinterval,normalberth) { + $("#main-con").empty(); + areamanagement.init(); + berthinterval.init(); + berthmanagement.init(); + normalberth.init(); + + var urlarrfirst =urlarr[0].url; + console.log(urlarrfirst) + eval(urlarrfirst).setContentInit(); + + }); +}); diff --git a/assets/pages/scripts/public/amazeui.min.js b/assets/pages/scripts/public/amazeui.min.js new file mode 100755 index 0000000..f50f9fe --- /dev/null +++ b/assets/pages/scripts/public/amazeui.min.js @@ -0,0 +1,8 @@ +/*! Amaze UI v2.7.2 | by Amaze UI Team | (c) 2016 AllMobilize, Inc. | Licensed under MIT | 2016-08-17T16:17:24+0800 */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?exports.AMUI=e(require("jquery")):t.AMUI=e(t.jQuery)}(this,function(t){return function(t){function e(n){if(i[n])return i[n].exports;var s=i[n]={exports:{},id:n,loaded:!1};return t[n].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){"use strict";var n=i(1),s=i(2);i(3),i(4),i(5),i(6),i(7),i(8),i(9),i(10),i(11),i(14),i(15),i(16),i(17),i(18),i(19),i(20),i(21),i(22),i(24),i(25),i(23),i(27),i(28),i(29),i(30),i(31),i(32),i(33),i(26),i(34),i(35),i(36),i(37),i(38),i(39),i(40),i(41),i(42),i(43),i(44),i(45),i(46),i(47),i(48),i(49),i(50),i(51),i(52),i(53),i(54),t.exports=n.AMUI=s},function(e,i){e.exports=t},function(t,e,i){"use strict";var n=i(1);if("undefined"==typeof n)throw new Error("Amaze UI 2.x requires jQuery :-(\n\u7231\u4e0a\u4e00\u5339\u91ce\u9a6c\uff0c\u53ef\u4f60\u7684\u5bb6\u91cc\u6ca1\u6709\u8349\u539f\u2026");var s=n.AMUI||{},o=n(window),a=window.document,r=n("html");s.VERSION="2.7.2",s.support={},s.support.transition=function(){var t=function(){var t=a.body||a.documentElement,e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return e[i]}();return t&&{end:t}}(),s.support.animation=function(){var t=function(){var t=a.body||a.documentElement,e={WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(var i in e)if(void 0!==t.style[i])return e[i]}();return t&&{end:t}}(),s.support.touch="ontouchstart"in window&&navigator.userAgent.toLowerCase().match(/mobile|tablet/)||window.DocumentTouch&&document instanceof window.DocumentTouch||window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>0||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>0||!1,s.support.mutationobserver=window.MutationObserver||window.WebKitMutationObserver||null,s.support.formValidation="function"==typeof document.createElement("form").checkValidity,s.utils={},s.utils.debounce=function(t,e,i){var n;return function(){var s=this,o=arguments,a=function(){n=null,i||t.apply(s,o)},r=i&&!n;clearTimeout(n),n=setTimeout(a,e),r&&t.apply(s,o)}},s.utils.isInView=function(t,e){var i=n(t),s=!(!i.width()&&!i.height())&&"none"!==i.css("display");if(!s)return!1;var a=o.scrollLeft(),r=o.scrollTop(),l=i.offset(),c=l.left,u=l.top;return e=n.extend({topOffset:0,leftOffset:0},e),u+i.height()>=r&&u-e.topOffset<=r+o.height()&&c+i.width()>=a&&c-e.leftOffset<=a+o.width()},s.utils.parseOptions=s.utils.options=function(t){if(n.isPlainObject(t))return t;var e=t?t.indexOf("{"):-1,i={};if(e!=-1)try{i=new Function("","var json = "+t.substr(e)+"; return JSON.parse(JSON.stringify(json));")()}catch(s){}return i},s.utils.generateGUID=function(t){var e=t+"-"||"am-";do e+=Math.random().toString(36).substring(2,7);while(document.getElementById(e));return e},s.utils.getAbsoluteUrl=function(){var t;return function(e){return t||(t=document.createElement("a")),t.href=e,t.href}}(),s.plugin=function(t,e,i){var o=n.fn[t];i=i||{},n.fn[t]=function(o){var a,r=Array.prototype.slice.call(arguments,0),l=r.slice(1),c=this.each(function(){var c=n(this),u="amui."+t,h=i.dataOptions||"data-am-"+t,d=c.data(u),p=n.extend({},s.utils.parseOptions(c.attr(h)),"object"==typeof o&&o);(d||"destroy"!==o)&&(d||c.data(u,d=new e(this,p)),i.methodCall?i.methodCall.call(c,r,d):(i.before&&i.before.call(c,r,d),"string"==typeof o&&(a="function"==typeof d[o]?d[o].apply(d,l):d[o]),i.after&&i.after.call(c,r,d)))});return void 0===a?c:a},n.fn[t].Constructor=e,n.fn[t].noConflict=function(){return n.fn[t]=o,this},s[t]=e},n.fn.emulateTransitionEnd=function(t){var e=!1,i=this;n(this).one(s.support.transition.end,function(){e=!0});var o=function(){e||n(i).trigger(s.support.transition.end),i.transitionEndTimmer=void 0};return this.transitionEndTimmer=setTimeout(o,t),this},n.fn.redraw=function(){return this.each(function(){this.offsetHeight})},n.fn.transitionEnd=function(t){function e(s){t.call(this,s),i&&n.off(i,e)}var i=s.support.transition.end,n=this;return t&&i&&n.on(i,e),this},n.fn.removeClassRegEx=function(){return this.each(function(t){var e=n(this).attr("class");if(!e||!t)return!1;var i=[];e=e.split(" ");for(var s=0,o=e.length;s=window.innerWidth)return 0;var t=n('
          ');n(document.body).append(t);var e=t[0].offsetWidth-t[0].clientWidth;return t.remove(),e},s.utils.imageLoader=function(t,e){function i(){e(t[0])}function n(){if(this.one("load",i),/MSIE (\d+\.\d+);/.test(navigator.userAgent)){var t=this.attr("src"),e=t.match(/\?/)?"&":"?";e+="random="+(new Date).getTime(),this.attr("src",t+e)}}return t.attr("src")?void(t[0].complete||4===t[0].readyState?i():n.call(t)):void i()},s.template=function(t,e){var i=s.template;return i.cache[t]||(i.cache[t]=function(){var e=t,n=/^[\w\-]+$/.test(t)?i.get(t):(e="template(string)",t),s=1,o=("try { "+(i.variable?"var "+i.variable+" = this.stash;":"with (this.stash) { ")+"this.ret += '"+n.replace(/<%/g,"\x11").replace(/%>/g,"\x13").replace(/'(?![^\x11\x13]+?\x13)/g,"\\x27").replace(/^\s*|\s*$/g,"").replace(/\n/g,function(){return"';\nthis.line = "+ ++s+"; this.ret += '\\n"}).replace(/\x11-(.+?)\x13/g,"' + ($1) + '").replace(/\x11=(.+?)\x13/g,"' + this.escapeHTML($1) + '").replace(/\x11(.+?)\x13/g,"'; $1; this.ret += '")+"'; "+(i.variable?"":"}")+"return this.ret;} catch (e) { throw 'TemplateError: ' + e + ' (on "+e+"' + ' line ' + this.line + ')'; } //@ sourceURL="+e+"\n").replace(/this\.ret \+= '';/g,""),a=new Function(o),r={"&":"&","<":"<",">":">",'"':""","'":"'"},l=function(t){return(""+t).replace(/[&<>\'\"]/g,function(t){return r[t]})};return function(t){return a.call(i.context={escapeHTML:l,line:1,ret:"",stash:t})}}()),e?i.cache[t](e):i.cache[t]},s.template.cache={},s.template.get=function(t){if(t){var e=document.getElementById(t);return e&&e.innerHTML||""}},s.DOMWatchers=[],s.DOMReady=!1,s.ready=function(t){s.DOMWatchers.push(t),s.DOMReady&&t(document)},s.DOMObserve=function(t,e,i){var o=s.support.mutationobserver;o&&(e=n.isPlainObject(e)?e:{childList:!0,subtree:!0},i="function"==typeof i&&i||function(){},n(t).each(function(){var t=this,a=n(t);if(!a.data("am.observer"))try{var r=new o(s.utils.debounce(function(e,n){i.call(t,e,n),a.trigger("changed.dom.amui")},50));r.observe(t,e),a.data("am.observer",r)}catch(l){}}))},n.fn.DOMObserve=function(t,e){return this.each(function(){s.DOMObserve(this,t,e)})},s.support.touch&&r.addClass("am-touch"),n(document).on("changed.dom.amui",function(t){var e=t.target;n.each(s.DOMWatchers,function(t,i){i(e)})}),n(function(){var t=n(document.body);s.DOMReady=!0,n.each(s.DOMWatchers,function(t,e){e(document)}),s.DOMObserve("[data-am-observe]"),r.removeClass("no-js").addClass("js"),s.support.animation&&r.addClass("cssanimations"),window.navigator.standalone&&r.addClass("am-standalone"),n(".am-topbar-fixed-top").length&&t.addClass("am-with-topbar-fixed-top"),n(".am-topbar-fixed-bottom").length&&t.addClass("am-with-topbar-fixed-bottom");var e=n(".am-layout");e.find('[class*="md-block-grid"]').alterClass("md-block-grid-*"),e.find('[class*="lg-block-grid"]').alterClass("lg-block-grid"),n("[data-am-widget]").each(function(){var t=n(this);0===t.parents(".am-layout").length&&t.addClass("am-no-layout")})}),t.exports=s},function(t,e,i){"use strict";function n(t,e,i){return setTimeout(l(t,i),e)}function s(t,e,i){return!!Array.isArray(t)&&(o(t,i[e],i),!0)}function o(t,e,i){var n;if(t)if(t.forEach)t.forEach(e,i);else if(void 0!==t.length)for(n=0;n\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=window.console&&(window.console.warn||window.console.log);return s&&s.call(window.console,n,i),t.apply(this,arguments)}}function r(t,e,i){var n,s=e.prototype;n=t.prototype=Object.create(s),n.constructor=t,n._super=s,i&&ut(n,i)}function l(t,e){return function(){return t.apply(e,arguments)}}function c(t,e){return typeof t==ft?t.apply(e?e[0]||void 0:void 0,e):t}function u(t,e){return void 0===t?e:t}function h(t,e,i){o(f(e),function(e){t.addEventListener(e,i,!1)})}function d(t,e,i){o(f(e),function(e){t.removeEventListener(e,i,!1)})}function p(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function m(t,e){return t.indexOf(e)>-1}function f(t){return t.trim().split(/\s+/g)}function v(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var n=0;ni[e]}):n.sort()),n}function w(t,e){for(var i,n,s=e[0].toUpperCase()+e.slice(1),o=0;o1&&!i.firstMultiple?i.firstMultiple=F(e):1===s&&(i.firstMultiple=!1);var o=i.firstInput,a=i.firstMultiple,r=a?a.center:o.center,l=e.center=A(n);e.timeStamp=yt(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=N(r,l),e.distance=P(r,l),k(i,e),e.offsetDirection=M(e.deltaX,e.deltaY);var c=$(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=c.x,e.overallVelocityY=c.y,e.overallVelocity=gt(c.x)>gt(c.y)?c.x:c.y,e.scale=a?O(a.pointers,n):1,e.rotation=a?I(a.pointers,n):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,D(i,e);var u=t.element;p(e.srcEvent.target,u)&&(u=e.srcEvent.target),e.target=u}function k(t,e){var i=e.center,n=t.offsetDelta||{},s=t.prevDelta||{},o=t.prevInput||{};e.eventType!==Mt&&o.eventType!==Nt||(s=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},n=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=s.x+(i.x-n.x),e.deltaY=s.y+(i.y-n.y)}function D(t,e){var i,n,s,o,a=t.lastInterval||e,r=e.timeStamp-a.timeStamp;if(e.eventType!=It&&(r>$t||void 0===a.velocity)){var l=e.deltaX-a.deltaX,c=e.deltaY-a.deltaY,u=$(r,l,c);n=u.x,s=u.y,i=gt(u.x)>gt(u.y)?u.x:u.y,o=M(l,c),t.lastInterval=e}else i=a.velocity,n=a.velocityX,s=a.velocityY,o=a.direction;e.velocity=i,e.velocityX=n,e.velocityY=s,e.direction=o}function F(t){for(var e=[],i=0;i=gt(e)?t<0?Lt:_t:e<0?zt:Rt}function P(t,e,i){i||(i=Bt);var n=e[i[0]]-t[i[0]],s=e[i[1]]-t[i[1]];return Math.sqrt(n*n+s*s)}function N(t,e,i){i||(i=Bt);var n=e[i[0]]-t[i[0]],s=e[i[1]]-t[i[1]];return 180*Math.atan2(s,n)/Math.PI}function I(t,e){return N(e[1],e[0],Ut)+N(t[1],t[0],Ut)}function O(t,e){return P(e[0],e[1],Ut)/P(t[0],t[1],Ut)}function L(){this.evEl=Xt,this.evWin=Yt,this.pressed=!1,x.apply(this,arguments)}function _(){this.evEl=Gt,this.evWin=Kt,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function z(){this.evTarget=Qt,this.evWin=te,this.started=!1,x.apply(this,arguments)}function R(t,e){var i=g(t.touches),n=g(t.changedTouches);return e&(Nt|It)&&(i=y(i.concat(n),"identifier",!0)),[i,n]}function q(){this.evTarget=ie,this.targetIds={},x.apply(this,arguments)}function W(t,e){var i=g(t.touches),n=this.targetIds;if(e&(Mt|Pt)&&1===i.length)return n[i[0].identifier]=!0,[i,i];var s,o,a=g(t.changedTouches),r=[],l=this.target;if(o=i.filter(function(t){return p(t.target,l)}),e===Mt)for(s=0;s-1&&n.splice(t,1)};setTimeout(s,ne)}}function V(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,n=0;n-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,n=this.state;n=ge&&e(i.options.event+G(n))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=be)},canEmit:function(){for(var t=0;te.threshold&&s&e.direction},attrTest:function(t){return Q.prototype.attrTest.call(this,t)&&(this.state&fe||!(this.state&fe)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=K(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),r(et,Q,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ue]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&fe)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),r(it,Z,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[le]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,s=t.distancee.time;if(this._input=t,!s||!i||t.eventType&(Nt|It)&&!o)this.reset();else if(t.eventType&Mt)this.reset(),this._timer=n(function(){this.state=ye,this.tryEmit()},e.time,this);else if(t.eventType&Nt)return ye;return be},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===ye&&(t&&t.eventType&Nt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=yt(),this.manager.emit(this.options.event,this._input)))}}),r(nt,Q,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ue]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&fe)}}),r(st,Q,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:qt|Wt,pointers:1},getTouchAction:function(){return tt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(qt|Wt)?e=t.overallVelocity:i&qt?e=t.overallVelocityX:i&Wt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&>(e)>this.options.velocity&&t.eventType&Nt},emit:function(t){var e=K(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),r(ot,Z,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ce]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,s=t.distanceAdd to Home Screen.",android:'To add this web app to the home screen open the browser option menu and tap on Add to homescreen. The menu can be accessed by pressing the menu hardware button if your device has one, or by tapping the top right menu icon icon.'},zh_cn:{ios:"\u5982\u8981\u628a\u5e94\u7528\u7a0b\u5f0f\u52a0\u81f3\u4e3b\u5c4f\u5e55,\u8bf7\u70b9\u51fb%icon, \u7136\u540e\u52a0\u81f3\u4e3b\u5c4f\u5e55",android:'To add this web app to the home screen open the browser option menu and tap on Add to homescreen. The menu can be accessed by pressing the menu hardware button if your device has one, or by tapping the top right menu icon icon.'},zh_tw:{ios:"\u5982\u8981\u628a\u61c9\u7528\u7a0b\u5f0f\u52a0\u81f3\u4e3b\u5c4f\u5e55, \u8acb\u9ede\u64ca%icon, \u7136\u5f8c\u52a0\u81f3\u4e3b\u5c4f\u5e55.",android:'To add this web app to the home screen open the browser option menu and tap on Add to homescreen. The menu can be accessed by pressing the menu hardware button if your device has one, or by tapping the top right menu icon icon.'}};for(var p in s.intl)s.intl[p.substr(0,2)]=s.intl[p];s.defaults={appID:"org.cubiq.addtohome",fontSize:15,debug:!1,logging:!1,modal:!1,mandatory:!1,autostart:!0,skipFirstVisit:!1,startDelay:1,lifespan:15,displayPace:1440,maxDisplayCount:0,icon:!0,message:"",validLocation:[],onInit:null,onShow:null,onRemove:null,onAdd:null,onPrivate:null,privateModeOverride:!1,detectHomescreen:!1};var m=window.navigator.userAgent,f=window.navigator;o(s,{hasToken:"#ath"==document.location.hash||h.test(document.location.href)||d.test(document.location.search),isRetina:window.devicePixelRatio&&window.devicePixelRatio>1,isIDevice:/iphone|ipod|ipad/i.test(m), +isMobileChrome:m.indexOf("Android")>-1&&/Chrome\/[.0-9]*/.test(m)&&m.indexOf("Version")==-1,isMobileIE:m.indexOf("Windows Phone")>-1,language:f.language&&f.language.toLowerCase().replace("-","_")||""}),s.language=s.language&&s.language in s.intl?s.language:"en_us",s.isMobileSafari=s.isIDevice&&m.indexOf("Safari")>-1&&m.indexOf("CriOS")<0,s.OS=s.isIDevice?"ios":s.isMobileChrome?"android":s.isMobileIE?"windows":"unsupported",s.OSVersion=m.match(/(OS|Android) (\d+[_\.]\d+)/),s.OSVersion=s.OSVersion&&s.OSVersion[2]?+s.OSVersion[2].replace("_","."):0,s.isStandalone="standalone"in window.navigator&&window.navigator.standalone,s.isTablet=s.isMobileSafari&&m.indexOf("iPad")>-1||s.isMobileChrome&&m.indexOf("Mobile")<0,s.isCompatible=s.isMobileSafari&&s.OSVersion>=6||s.isMobileChrome;var v={lastDisplayTime:0,returningVisitor:!1,displayCount:0,optedout:!1,added:!1};s.removeSession=function(t){try{if(!localStorage)throw new Error("localStorage is not defined");localStorage.removeItem(t||s.defaults.appID)}catch(e){}},s.doLog=function(t){this.options.logging&&console.log(t)},s.Class=function(t){if(this.doLog=s.doLog,this.options=o({},s.defaults),o(this.options,t),this.options.debug&&(this.options.logging=!0),l){if(this.options.mandatory=this.options.mandatory&&("standalone"in window.navigator||this.options.debug),this.options.modal=this.options.modal||this.options.mandatory,this.options.mandatory&&(this.options.startDelay=-.5),this.options.detectHomescreen=this.options.detectHomescreen===!0?"hash":this.options.detectHomescreen,this.options.debug&&(s.isCompatible=!0,s.OS="string"==typeof this.options.debug?this.options.debug:"unsupported"==s.OS?"android":s.OS,s.OSVersion="ios"==s.OS?"8":"4"),this.container=document.documentElement,this.session=this.getItem(this.options.appID),this.session=this.session?JSON.parse(this.session):void 0,!s.hasToken||s.isCompatible&&this.session||(s.hasToken=!1,a()),!s.isCompatible)return void this.doLog("Add to homescreen: not displaying callout because device not supported");this.session=this.session||v;try{if(!localStorage)throw new Error("localStorage is not defined");localStorage.setItem(this.options.appID,JSON.stringify(this.session)),s.hasLocalStorage=!0}catch(e){s.hasLocalStorage=!1,this.options.onPrivate&&this.options.onPrivate.call(this)}for(var i=!this.options.validLocation.length,n=this.options.validLocation.length;n--;)if(this.options.validLocation[n].test(document.location.href)){i=!0;break}if(this.getItem("addToHome")&&this.optOut(),this.session.optedout)return void this.doLog("Add to homescreen: not displaying callout because user opted out");if(this.session.added)return void this.doLog("Add to homescreen: not displaying callout because already added to the homescreen");if(!i)return void this.doLog("Add to homescreen: not displaying callout because not a valid location");if(s.isStandalone)return this.session.added||(this.session.added=!0,this.updateSession(),this.options.onAdd&&s.hasLocalStorage&&this.options.onAdd.call(this)),void this.doLog("Add to homescreen: not displaying callout because in standalone mode");if(this.options.detectHomescreen){if(s.hasToken)return a(),this.session.added||(this.session.added=!0,this.updateSession(),this.options.onAdd&&s.hasLocalStorage&&this.options.onAdd.call(this)),void this.doLog("Add to homescreen: not displaying callout because URL has token, so we are likely coming from homescreen");"hash"==this.options.detectHomescreen?history.replaceState("",window.document.title,document.location.href+"#ath"):"smartURL"==this.options.detectHomescreen?history.replaceState("",window.document.title,document.location.href.replace(/(\/)?$/,"/ath$1")):history.replaceState("",window.document.title,document.location.href+(document.location.search?"&":"?")+"ath=")}if(!this.session.returningVisitor&&(this.session.returningVisitor=!0,this.updateSession(),this.options.skipFirstVisit))return void this.doLog("Add to homescreen: not displaying callout because skipping first visit");if(!this.options.privateModeOverride&&!s.hasLocalStorage)return void this.doLog("Add to homescreen: not displaying callout because browser is in private mode");this.ready=!0,this.options.onInit&&this.options.onInit.call(this),this.options.autostart&&(this.doLog("Add to homescreen: autostart displaying callout"),this.show())}},s.Class.prototype={events:{load:"_delayedShow",error:"_delayedShow",orientationchange:"resize",resize:"resize",scroll:"resize",click:"remove",touchmove:"_preventDefault",transitionend:"_removeElements",webkitTransitionEnd:"_removeElements",MSTransitionEnd:"_removeElements"},handleEvent:function(t){var e=this.events[t.type];e&&this[e](t)},show:function(t){if(this.options.autostart&&!c)return void setTimeout(this.show.bind(this),50);if(this.shown)return void this.doLog("Add to homescreen: not displaying callout because already shown on screen");var e=Date.now(),i=this.session.lastDisplayTime;if(t!==!0){if(!this.ready)return void this.doLog("Add to homescreen: not displaying callout because not ready");if(e-i<6e4*this.options.displayPace)return void this.doLog("Add to homescreen: not displaying callout because displayed recently");if(this.options.maxDisplayCount&&this.session.displayCount>=this.options.maxDisplayCount)return void this.doLog("Add to homescreen: not displaying callout because displayed too many times already")}this.shown=!0,this.session.lastDisplayTime=e,this.session.displayCount++,this.updateSession(),this.applicationIcon||("ios"==s.OS?this.applicationIcon=document.querySelector('head link[rel^=apple-touch-icon][sizes="152x152"],head link[rel^=apple-touch-icon][sizes="144x144"],head link[rel^=apple-touch-icon][sizes="120x120"],head link[rel^=apple-touch-icon][sizes="114x114"],head link[rel^=apple-touch-icon]'):this.applicationIcon=document.querySelector('head link[rel^="shortcut icon"][sizes="196x196"],head link[rel^=apple-touch-icon]'));var n="";"object"==typeof this.options.message&&s.language in this.options.message?n=this.options.message[s.language][s.OS]:"object"==typeof this.options.message&&s.OS in this.options.message?n=this.options.message[s.OS]:this.options.message in s.intl?n=s.intl[this.options.message][s.OS]:""!==this.options.message?n=this.options.message:s.OS in s.intl[s.language]&&(n=s.intl[s.language][s.OS]),n="

          "+n.replace("%icon",'icon')+"

          ",this.viewport=document.createElement("div"),this.viewport.className="ath-viewport",this.options.modal&&(this.viewport.className+=" ath-modal"),this.options.mandatory&&(this.viewport.className+=" ath-mandatory"),this.viewport.style.position="absolute",this.element=document.createElement("div"),this.element.className="ath-container ath-"+s.OS+" ath-"+s.OS+(s.OSVersion+"").substr(0,1)+" ath-"+(s.isTablet?"tablet":"phone"),this.element.style.cssText="-webkit-transition-property:-webkit-transform,opacity;-webkit-transition-duration:0s;-webkit-transition-timing-function:ease-out;transition-property:transform,opacity;transition-duration:0s;transition-timing-function:ease-out;",this.element.style.webkitTransform="translate3d(0,-"+window.innerHeight+"px,0)",this.element.style.transform="translate3d(0,-"+window.innerHeight+"px,0)",this.options.icon&&this.applicationIcon&&(this.element.className+=" ath-icon",this.img=document.createElement("img"),this.img.className="ath-application-icon",this.img.addEventListener("load",this,!1),this.img.addEventListener("error",this,!1),this.img.src=this.applicationIcon.href,this.element.appendChild(this.img)),this.element.innerHTML+=n,this.viewport.style.left="-99999em",this.viewport.appendChild(this.element),this.container.appendChild(this.viewport),this.img?this.doLog("Add to homescreen: not displaying callout because waiting for img to load"):this._delayedShow()},_delayedShow:function(t){setTimeout(this._show.bind(this),1e3*this.options.startDelay+500)},_show:function(){var t=this;this.updateViewport(),window.addEventListener("resize",this,!1),window.addEventListener("scroll",this,!1),window.addEventListener("orientationchange",this,!1),this.options.modal&&document.addEventListener("touchmove",this,!0),this.options.mandatory||setTimeout(function(){t.element.addEventListener("click",t,!0)},1e3),setTimeout(function(){t.element.style.webkitTransitionDuration="1.2s",t.element.style.transitionDuration="1.2s",t.element.style.webkitTransform="translate3d(0,0,0)",t.element.style.transform="translate3d(0,0,0)"},0),this.options.lifespan&&(this.removeTimer=setTimeout(this.remove.bind(this),1e3*this.options.lifespan)),this.options.onShow&&this.options.onShow.call(this)},remove:function(){clearTimeout(this.removeTimer),this.img&&(this.img.removeEventListener("load",this,!1),this.img.removeEventListener("error",this,!1)),window.removeEventListener("resize",this,!1),window.removeEventListener("scroll",this,!1),window.removeEventListener("orientationchange",this,!1),document.removeEventListener("touchmove",this,!0),this.element.removeEventListener("click",this,!0),this.element.addEventListener("transitionend",this,!1),this.element.addEventListener("webkitTransitionEnd",this,!1),this.element.addEventListener("MSTransitionEnd",this,!1),this.element.style.webkitTransitionDuration="0.3s",this.element.style.opacity="0"},_removeElements:function(){this.element.removeEventListener("transitionend",this,!1),this.element.removeEventListener("webkitTransitionEnd",this,!1),this.element.removeEventListener("MSTransitionEnd",this,!1),this.container.removeChild(this.viewport),this.shown=!1,this.options.onRemove&&this.options.onRemove.call(this)},updateViewport:function(){if(this.shown){this.viewport.style.width=window.innerWidth+"px",this.viewport.style.height=window.innerHeight+"px",this.viewport.style.left=window.scrollX+"px",this.viewport.style.top=window.scrollY+"px";var t=document.documentElement.clientWidth;this.orientation=t>document.documentElement.clientHeight?"landscape":"portrait";var e="ios"==s.OS?"portrait"==this.orientation?screen.width:screen.height:screen.width;this.scale=screen.width>t?1:e/window.innerWidth,this.element.style.fontSize=this.options.fontSize/this.scale+"px"}},resize:function(){clearTimeout(this.resizeTimer),this.resizeTimer=setTimeout(this.updateViewport.bind(this),100)},updateSession:function(){s.hasLocalStorage!==!1&&localStorage&&localStorage.setItem(this.options.appID,JSON.stringify(this.session))},clearSession:function(){this.session=v,this.updateSession()},getItem:function(t){try{if(!localStorage)throw new Error("localStorage is not defined");return localStorage.getItem(t)}catch(e){s.hasLocalStorage=!1}},optOut:function(){this.session.optedout=!0,this.updateSession()},optIn:function(){this.session.optedout=!1,this.updateSession()},clearDisplayCount:function(){this.session.displayCount=0,this.updateSession()},_preventDefault:function(t){t.preventDefault(),t.stopPropagation()}},s.VERSION="3.2.2",t.exports=r.addToHomescreen=s},function(t,e,i){"use strict";var n=i(1),s=i(2),o=function(t,e){var i=this;this.options=n.extend({},o.DEFAULTS,e),this.$element=n(t),this.$element.addClass("am-fade am-in").on("click.alert.amui",".am-close",function(){i.close()})};o.DEFAULTS={removeElement:!0},o.prototype.close=function(){function t(){e.trigger("closed.alert.amui").remove()}var e=this.$element;e.trigger("close.alert.amui").removeClass("am-in"),s.support.transition&&e.hasClass("am-fade")?e.one(s.support.transition.end,t).emulateTransitionEnd(200):t()},s.plugin("alert",o),n(document).on("click.alert.amui.data-api","[data-am-alert]",function(t){var e=n(t.target);e.is(".am-close")&&n(this).alert("close")}),t.exports=o},function(t,e,i){"use strict";var n=i(1),s=i(2),o=function(t,e){this.$element=n(t),this.options=n.extend({},o.DEFAULTS,e),this.isLoading=!1,this.hasSpinner=!1};o.DEFAULTS={loadingText:"loading...",disabledClassName:"am-disabled",activeClassName:"am-active",spinner:void 0},o.prototype.setState=function(t,e){var i=this.$element,o="disabled",a=i.data(),r=this.options,l=i.is("input")?"val":"html",c="am-btn-"+t+" "+r.disabledClassName;t+="Text",r.resetText||(r.resetText=i[l]()),s.support.animation&&r.spinner&&"html"===l&&!this.hasSpinner&&(r.loadingText=''+r.loadingText,this.hasSpinner=!0),e=e||(void 0===a[t]?r[t]:a[t]),i[l](e),setTimeout(n.proxy(function(){"loadingText"===t?(i.addClass(c).attr(o,o),this.isLoading=!0):this.isLoading&&(i.removeClass(c).removeAttr(o),this.isLoading=!1)},this),0)},o.prototype.toggle=function(){var t=!0,e=this.$element,i=this.$element.parent('[class*="am-btn-group"]'),n=o.DEFAULTS.activeClassName;if(i.length){var s=this.$element.find("input");"radio"==s.prop("type")&&(s.prop("checked")&&e.hasClass(n)?t=!1:i.find("."+n).removeClass(n)),t&&s.prop("checked",!e.hasClass(n)).trigger("change")}t&&(e.toggleClass(n),e.hasClass(n)||e.blur())},s.plugin("button",o,{dataOptions:"data-am-loading",methodCall:function(t,e){"toggle"===t[0]?e.toggle():"string"==typeof t[0]&&e.setState.apply(e,t)}}),n(document).on("click.button.amui.data-api","[data-am-button]",function(t){t.preventDefault();var e=n(t.target);e.hasClass("am-btn")||(e=e.closest(".am-btn")),e.button("toggle")}),s.ready(function(t){n("[data-am-loading]",t).button(),n("[data-am-button]",t).find("input:checked").each(function(){n(this).parent("label").addClass(o.DEFAULTS.activeClassName)})}),t.exports=s.button=o},function(t,e,i){"use strict";function n(t){return this.each(function(){var e=s(this),i=e.data("amui.collapse"),n=s.extend({},a.DEFAULTS,o.utils.options(e.attr("data-am-collapse")),"object"==typeof t&&t);!i&&n.toggle&&"open"===t&&(t=!t),i||e.data("amui.collapse",i=new a(this,n)),"string"==typeof t&&i[t]()})}var s=i(1),o=i(2),a=function(t,e){this.$element=s(t),this.options=s.extend({},a.DEFAULTS,e),this.transitioning=null,this.options.parent&&(this.$parent=s(this.options.parent)),this.options.toggle&&this.toggle()};a.DEFAULTS={toggle:!0},a.prototype.open=function(){if(!this.transitioning&&!this.$element.hasClass("am-in")){var t=s.Event("open.collapse.amui");if(this.$element.trigger(t),!t.isDefaultPrevented()){var e=this.$parent&&this.$parent.find("> .am-panel > .am-in");if(e&&e.length){var i=e.data("amui.collapse");if(i&&i.transitioning)return;n.call(e,"close"),i||e.data("amui.collapse",null)}this.$element.removeClass("am-collapse").addClass("am-collapsing").height(0),this.transitioning=1;var a=function(){this.$element.removeClass("am-collapsing").addClass("am-collapse am-in").height("").trigger("opened.collapse.amui"),this.transitioning=0};if(!o.support.transition)return a.call(this);var r=this.$element[0].scrollHeight;this.$element.one(o.support.transition.end,s.proxy(a,this)).emulateTransitionEnd(300).css({height:r})}}},a.prototype.close=function(){if(!this.transitioning&&this.$element.hasClass("am-in")){var t=s.Event("close.collapse.amui");if(this.$element.trigger(t),!t.isDefaultPrevented()){this.$element.height(this.$element.height()).redraw(),this.$element.addClass("am-collapsing").removeClass("am-collapse am-in"),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.trigger("closed.collapse.amui").removeClass("am-collapsing").addClass("am-collapse")};return o.support.transition?void this.$element.height(0).one(o.support.transition.end,s.proxy(e,this)).emulateTransitionEnd(300):e.call(this)}}},a.prototype.toggle=function(){this[this.$element.hasClass("am-in")?"close":"open"]()},s.fn.collapse=n,s(document).on("click.collapse.amui.data-api","[data-am-collapse]",function(t){var e,i=s(this),a=o.utils.options(i.attr("data-am-collapse")),r=a.target||t.preventDefault()||(e=i.attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,""),l=s(r),c=l.data("amui.collapse"),u=c?"toggle":a,h=a.parent,d=h&&s(h);c&&c.transitioning||(d&&d.find("[data-am-collapse]").not(i).addClass("am-collapsed"),i[l.hasClass("am-in")?"addClass":"removeClass"]("am-collapsed")),n.call(l,u)}),t.exports=o.collapse=a},function(t,e,i){"use strict";var n=i(1),s=i(2),o=n(document),a=function(t,e){if(this.$element=n(t),this.options=n.extend({},a.DEFAULTS,e),this.format=r.parseFormat(this.options.format),this.$element.data("date",this.options.date),this.language=this.getLocale(this.options.locale),this.theme=this.options.theme,this.$picker=n(r.template).appendTo("body").on({click:n.proxy(this.click,this)}),this.isInput=this.$element.is("input"),this.component=!!this.$element.is(".am-datepicker-date")&&this.$element.find(".am-datepicker-add-on"),this.isInput?this.$element.on({"click.datepicker.amui":n.proxy(this.open,this),"keyup.datepicker.amui":n.proxy(this.update,this)}):this.component?this.component.on("click.datepicker.amui",n.proxy(this.open,this)):this.$element.on("click.datepicker.amui",n.proxy(this.open,this)),this.minViewMode=this.options.minViewMode,"string"==typeof this.minViewMode)switch(this.minViewMode){case"months":this.minViewMode=1;break;case"years":this.minViewMode=2;break;default:this.minViewMode=0}if(this.viewMode=this.options.viewMode,"string"==typeof this.viewMode)switch(this.viewMode){case"months":this.viewMode=1;break;case"years":this.viewMode=2;break;default:this.viewMode=0}this.startViewMode=this.viewMode,this.weekStart=(this.options.weekStart||a.locales[this.language].weekStart||0)%7,this.weekEnd=(this.weekStart+6)%7,this.onRender=this.options.onRender,this.setTheme(),this.fillDow(),this.fillMonths(),this.update(),this.showMode()};a.DEFAULTS={locale:"zh_CN",format:"yyyy-mm-dd",weekStart:void 0,viewMode:0,minViewMode:0,date:"",theme:"",autoClose:1,onRender:function(t){return""}},a.prototype.open=function(t){this.$picker.show(),this.height=this.component?this.component.outerHeight():this.$element.outerHeight(),this.place(),n(window).on("resize.datepicker.amui",n.proxy(this.place,this)),t&&(t.stopPropagation(),t.preventDefault());var e=this;o.on("mousedown.datapicker.amui touchstart.datepicker.amui",function(t){0===n(t.target).closest(".am-datepicker").length&&e.close()}),this.$element.trigger({type:"open.datepicker.amui",date:this.date})},a.prototype.close=function(){this.$picker.hide(),n(window).off("resize.datepicker.amui",this.place),this.viewMode=this.startViewMode,this.showMode(),this.isInput||n(document).off("mousedown.datapicker.amui touchstart.datepicker.amui",this.close),this.$element.trigger({type:"close.datepicker.amui",date:this.date})},a.prototype.set=function(){var t,e=r.formatDate(this.date,this.format);this.isInput?t=this.$element.attr("value",e):(this.component&&(t=this.$element.find("input").attr("value",e)),this.$element.data("date",e)),t&&t.trigger("change")},a.prototype.setValue=function(t){"string"==typeof t?this.date=r.parseDate(t,this.format):this.date=new Date(t),this.set(),this.viewDate=new Date(this.date.getFullYear(),this.date.getMonth(),1,0,0,0,0),this.fill()},a.prototype.place=function(){var t=this.component?this.component.offset():this.$element.offset(),e=this.component?this.component.width():this.$element.width(),i=t.top+this.height,n=t.left,s=o.width()-t.left-e,a=this.isOutView();if(this.$picker.removeClass("am-datepicker-right"),this.$picker.removeClass("am-datepicker-up"),o.width()>640){if(a.outRight)return this.$picker.addClass("am-datepicker-right"),void this.$picker.css({top:i,left:"auto",right:s});a.outBottom&&(this.$picker.addClass("am-datepicker-up"),i=t.top-this.$picker.outerHeight(!0))}else n=0;this.$picker.css({top:i,left:n})},a.prototype.update=function(t){this.date=r.parseDate("string"==typeof t?t:this.isInput?this.$element.prop("value"):this.$element.data("date"),this.format),this.viewDate=new Date(this.date.getFullYear(),this.date.getMonth(),1,0,0,0,0),this.fill()},a.prototype.fillDow=function(){for(var t=this.weekStart,e="";t'+a.locales[this.language].daysMin[t++%7]+"";e+="",this.$picker.find(".am-datepicker-days thead").append(e)},a.prototype.fillMonths=function(){for(var t="",e=0;e<12;)t+=''+a.locales[this.language].monthsShort[e++]+"";this.$picker.find(".am-datepicker-months td").append(t)},a.prototype.fill=function(){var t=new Date(this.viewDate),e=t.getFullYear(),i=t.getMonth(),n=this.date.valueOf(),s=new Date(e,i-1,28,0,0,0,0),o=r.getDaysInMonth(s.getFullYear(),s.getMonth()),l=this.$picker.find(".am-datepicker-days .am-datepicker-select");"zh_CN"===this.language?l.text(e+a.locales[this.language].year[0]+" "+a.locales[this.language].months[i]):l.text(a.locales[this.language].months[i]+" "+e),s.setDate(o),s.setDate(o-(s.getDay()-this.weekStart+7)%7);var c=new Date(s);c.setDate(c.getDate()+42),c=c.valueOf();for(var u,h,d,p=[];s.valueOf()"),u=this.onRender(s,0),h=s.getFullYear(),d=s.getMonth(),di&&h===e||h>e)&&(u+=" am-datepicker-new"),s.valueOf()===n&&(u+=" am-active"),p.push(''+s.getDate()+""),s.getDay()===this.weekEnd&&p.push(""),s.setDate(s.getDate()+1);this.$picker.find(".am-datepicker-days tbody").empty().append(p.join(""));var m=this.date.getFullYear(),f=this.$picker.find(".am-datepicker-months").find(".am-datepicker-select").text(e);f=f.end().find("span").removeClass("am-active").removeClass("am-disabled");for(var v=0;v<12;)this.onRender(t.setFullYear(e,v),1)&&f.eq(v).addClass("am-disabled"),v++;m===e&&f.eq(this.date.getMonth()).removeClass("am-disabled").addClass("am-active"),p="",e=10*parseInt(e/10,10);var g,y=this.$picker.find(".am-datepicker-years").find(".am-datepicker-select").text(e+"-"+(e+9)).end().find("td"),w=new Date(this.viewDate);e-=1;for(var b=-1;b<11;b++)g=this.onRender(w.setFullYear(e),2),p+=''+e+"",e+=1;y.html(p)},a.prototype.click=function(t){t.stopPropagation(),t.preventDefault();var e,i,s=this.$picker.find(".am-datepicker-days").find(".am-active"),o=this.$picker.find(".am-datepicker-months"),a=o.find(".am-active").index(),l=n(t.target).closest("span, td, th");if(1===l.length)switch(l[0].nodeName.toLowerCase()){case"th":switch(l[0].className){case"am-datepicker-switch":this.showMode(1);break;case"am-datepicker-prev":case"am-datepicker-next":this.viewDate["set"+r.modes[this.viewMode].navFnc].call(this.viewDate,this.viewDate["get"+r.modes[this.viewMode].navFnc].call(this.viewDate)+r.modes[this.viewMode].navStep*("am-datepicker-prev"===l[0].className?-1:1)),this.fill(),this.set()}break;case"span":if(l.is(".am-disabled"))return;l.is(".am-datepicker-month")?(e=l.parent().find("span").index(l),l.is(".am-active")?this.viewDate.setMonth(e,s.text()):this.viewDate.setMonth(e)):(i=parseInt(l.text(),10)||0,l.is(".am-active")?this.viewDate.setFullYear(i,a,s.text()):this.viewDate.setFullYear(i)),0!==this.viewMode&&(this.date=new Date(this.viewDate),this.$element.trigger({type:"changeDate.datepicker.amui",date:this.date,viewMode:r.modes[this.viewMode].clsName})),this.showMode(-1),this.fill(),this.set();break;case"td":if(l.is(".am-datepicker-day")&&!l.is(".am-disabled")){var c=parseInt(l.text(),10)||1;e=this.viewDate.getMonth(),l.is(".am-datepicker-old")?e-=1:l.is(".am-datepicker-new")&&(e+=1),i=this.viewDate.getFullYear(),this.date=new Date(i,e,c,0,0,0,0),this.viewDate=new Date(i,e,Math.min(28,c),0,0,0,0),this.fill(),this.set(),this.$element.trigger({type:"changeDate.datepicker.amui",date:this.date,viewMode:r.modes[this.viewMode].clsName}),this.options.autoClose&&this.close()}}},a.prototype.mousedown=function(t){t.stopPropagation(),t.preventDefault()},a.prototype.showMode=function(t){t&&(this.viewMode=Math.max(this.minViewMode,Math.min(2,this.viewMode+t))),this.$picker.find(">div").hide().filter(".am-datepicker-"+r.modes[this.viewMode].clsName).show()},a.prototype.isOutView=function(){var t=this.component?this.component.offset():this.$element.offset(),e={outRight:!1,outBottom:!1},i=this.$picker,n=t.left+i.outerWidth(!0),s=t.top+i.outerHeight(!0)+this.$element.innerHeight();return n>o.width()&&(e.outRight=!0),s>o.height()&&(e.outBottom=!0),e},a.prototype.getLocale=function(t){return t||(t=navigator.language&&navigator.language.split("-"),t[1]=t[1].toUpperCase(),t=t.join("_")),a.locales[t]||(t="en_US"),t},a.prototype.setTheme=function(){this.theme&&this.$picker.addClass("am-datepicker-"+this.theme)},a.locales={en_US:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekStart:0},zh_CN:{days:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],daysShort:["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"],daysMin:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],months:["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"],monthsShort:["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"],weekStart:1,year:["\u5e74"]}};var r={modes:[{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10}],isLeapYear:function(t){return t%4===0&&t%100!==0||t%400===0},getDaysInMonth:function(t,e){return[31,r.isLeapYear(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]},parseFormat:function(t){var e=t.match(/[.\/\-\s].*?/),i=t.split(/\W+/);if(!e||!i||0===i.length)throw new Error("Invalid date format.");return{separator:e,parts:i}},parseDate:function(t,e){var i,n=t.split(e.separator);if(t=new Date,t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),n.length===e.parts.length){for(var s=t.getFullYear(),o=t.getDate(),a=t.getMonth(),r=0,l=e.parts.length;r
          ',contTemplate:''};r.template='
          '+r.headTemplate+'
          '+r.headTemplate+r.contTemplate+'
          '+r.headTemplate+r.contTemplate+"
          ",s.plugin("datepicker",a),s.ready(function(t){n("[data-am-datepicker]").datepicker()}),t.exports=s.datepicker=a},function(t,e,i){"use strict";var n=i(1),s=i(2),o=n(document),a=s.support.transition,r=function(){this.id=s.utils.generateGUID("am-dimmer"),this.$element=n(r.DEFAULTS.tpl,{id:this.id}),this.inited=!1,this.scrollbarWidth=0,this.$used=n([])};r.DEFAULTS={tpl:'
          '},r.prototype.init=function(){return this.inited||(n(document.body).append(this.$element),this.inited=!0,o.trigger("init.dimmer.amui"),this.$element.on("touchmove.dimmer.amui",function(t){t.preventDefault()})),this},r.prototype.open=function(t){this.inited||this.init();var e=this.$element;return t&&(this.$used=this.$used.add(n(t))),this.checkScrollbar().setScrollbar(),e.show().trigger("open.dimmer.amui"),a&&e.off(a.end),setTimeout(function(){e.addClass("am-active")},0),this},r.prototype.close=function(t,e){function i(){s.hide(),this.resetScrollbar()}if(this.$used=this.$used.not(n(t)),!e&&this.$used.length)return this;var s=this.$element;return s.removeClass("am-active").trigger("close.dimmer.amui"),i.call(this),this},r.prototype.checkScrollbar=function(){return this.scrollbarWidth=s.utils.measureScrollbar(),this},r.prototype.setScrollbar=function(){var t=n(document.body),e=parseInt(t.css("padding-right")||0,10);return this.scrollbarWidth&&t.css("padding-right",e+this.scrollbarWidth),t.addClass("am-dimmer-active"),this},r.prototype.resetScrollbar=function(){return n(document.body).css("padding-right","").removeClass("am-dimmer-active"),this},t.exports=s.dimmer=new r},function(t,e,i){"use strict";var n=i(1),s=i(2),o=s.support.animation,a=function(t,e){this.options=n.extend({},a.DEFAULTS,e),e=this.options,this.$element=n(t),this.$toggle=this.$element.find(e.selector.toggle),this.$dropdown=this.$element.find(e.selector.dropdown),this.$boundary=e.boundary===window?n(window):this.$element.closest(e.boundary),this.$justify=e.justify&&n(e.justify).length&&n(e.justify)||void 0,!this.$boundary.length&&(this.$boundary=n(window)),this.active=!!this.$element.hasClass("am-active"),this.animating=null,this.events()};a.DEFAULTS={animation:"am-animation-slide-top-fixed",boundary:window,justify:void 0,selector:{dropdown:".am-dropdown-content",toggle:".am-dropdown-toggle"},trigger:"click"},a.prototype.toggle=function(){this.clear(),this.animating||this[this.active?"close":"open"]()},a.prototype.open=function(t){var e=this.$toggle,i=this.$element,s=this.$dropdown;if(!e.is(".am-disabled, :disabled")&&!this.active){i.trigger("open.dropdown.amui").addClass("am-active"),e.trigger("focus"),this.checkDimensions(t);var a=n.proxy(function(){i.trigger("opened.dropdown.amui"),this.active=!0,this.animating=0},this);o?(this.animating=1,s.addClass(this.options.animation).on(o.end+".open.dropdown.amui",n.proxy(function(){a(),s.removeClass(this.options.animation)},this))):a()}},a.prototype.close=function(){if(this.active){var t="am-dropdown-animation",e=this.$element,i=this.$dropdown;e.trigger("close.dropdown.amui");var s=n.proxy(function(){e.removeClass("am-active").trigger("closed.dropdown.amui"),this.active=!1,this.animating=0,this.$toggle.blur()},this);o?(i.removeClass(this.options.animation),i.addClass(t),this.animating=1,i.one(o.end+".close.dropdown.amui",function(){i.removeClass(t),s()})):s()}},a.prototype.enable=function(){this.$toggle.prop("disabled",!1)},a.prototype.disable=function(){this.$toggle.prop("disabled",!0)},a.prototype.checkDimensions=function(t){if(this.$dropdown.length){var e=this.$dropdown;t&&t.offset&&e.offset(t.offset);var i=e.offset(),s=e.outerWidth(),o=this.$boundary.width(),a=n.isWindow(this.boundary)&&this.$boundary.offset()?this.$boundary.offset().left:0;this.$justify&&e.css({"min-width":this.$justify.css("width")}),s+(i.left-a)>o&&this.$element.addClass("am-dropdown-flip")}},a.prototype.clear=function(){n("[data-am-dropdown]").not(this.$element).each(function(){var t=n(this).data("amui.dropdown");t&&t.close()})},a.prototype.events=function(){var t="dropdown.amui",e=this.$toggle;e.on("click."+t,n.proxy(function(t){t.preventDefault(),this.toggle()},this)),n(document).on("keydown.dropdown.amui",n.proxy(function(t){27===t.keyCode&&this.active&&this.close()},this)).on("click.outer.dropdown.amui",n.proxy(function(t){!this.active||this.$element[0]!==t.target&&this.$element.find(t.target).length||this.close()},this))},s.plugin("dropdown",a),s.ready(function(t){n("[data-am-dropdown]",t).dropdown()}),n(document).on("click.dropdown.amui.data-api",".am-dropdown form",function(t){ +t.stopPropagation()}),t.exports=s.dropdown=a},function(t,e,i){(function(e){var n=i(1),s=i(2),o=!0;n.flexslider=function(t,i){var s=n(t);s.vars=n.extend({},n.flexslider.defaults,i);var a,r=s.vars.namespace,l=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture,c=("ontouchstart"in window||l||window.DocumentTouch&&document instanceof DocumentTouch)&&s.vars.touch,u="click touchend MSPointerUp keyup",h="",d="vertical"===s.vars.direction,p=s.vars.reverse,m=s.vars.itemWidth>0,f="fade"===s.vars.animation,v=""!==s.vars.asNavFor,g={};n.data(t,"flexslider",s),g={init:function(){s.animating=!1,s.currentSlide=parseInt(s.vars.startAt?s.vars.startAt:0,10),isNaN(s.currentSlide)&&(s.currentSlide=0),s.animatingTo=s.currentSlide,s.atEnd=0===s.currentSlide||s.currentSlide===s.last,s.containerSelector=s.vars.selector.substr(0,s.vars.selector.search(" ")),s.slides=n(s.vars.selector,s),s.container=n(s.containerSelector,s),s.count=s.slides.length,s.syncExists=n(s.vars.sync).length>0,"slide"===s.vars.animation&&(s.vars.animation="swing"),s.prop=d?"top":"marginLeft",s.args={},s.manualPause=!1,s.stopped=!1,s.started=!1,s.startTimeout=null,s.transitions=!s.vars.video&&!f&&s.vars.useCSS&&function(){var t=document.createElement("div"),e=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var i in e)if(void 0!==t.style[e[i]])return s.pfx=e[i].replace("Perspective","").toLowerCase(),s.prop="-"+s.pfx+"-transform",!0;return!1}(),s.ensureAnimationEnd="",""!==s.vars.controlsContainer&&(s.controlsContainer=n(s.vars.controlsContainer).length>0&&n(s.vars.controlsContainer)),""!==s.vars.manualControls&&(s.manualControls=n(s.vars.manualControls).length>0&&n(s.vars.manualControls)),""!==s.vars.customDirectionNav&&(s.customDirectionNav=2===n(s.vars.customDirectionNav).length&&n(s.vars.customDirectionNav)),s.vars.randomize&&(s.slides.sort(function(){return Math.round(Math.random())-.5}),s.container.empty().append(s.slides)),s.doMath(),s.setup("init"),s.vars.controlNav&&g.controlNav.setup(),s.vars.directionNav&&g.directionNav.setup(),s.vars.keyboard&&(1===n(s.containerSelector).length||s.vars.multipleKeyboard)&&n(document).bind("keyup",function(t){var e=t.keyCode;if(!s.animating&&(39===e||37===e)){var i=39===e?s.getTarget("next"):37===e&&s.getTarget("prev");s.flexAnimate(i,s.vars.pauseOnAction)}}),s.vars.mousewheel&&s.bind("mousewheel",function(t,e,i,n){t.preventDefault();var o=e<0?s.getTarget("next"):s.getTarget("prev");s.flexAnimate(o,s.vars.pauseOnAction)}),s.vars.pausePlay&&g.pausePlay.setup(),s.vars.slideshow&&s.vars.pauseInvisible&&g.pauseInvisible.init(),s.vars.slideshow&&(s.vars.pauseOnHover&&s.hover(function(){s.manualPlay||s.manualPause||s.pause()},function(){s.manualPause||s.manualPlay||s.stopped||s.play()}),s.vars.pauseInvisible&&g.pauseInvisible.isHidden()||(s.vars.initDelay>0?s.startTimeout=setTimeout(s.play,s.vars.initDelay):s.play())),v&&g.asNav.setup(),c&&s.vars.touch&&g.touch(),(!f||f&&s.vars.smoothHeight)&&n(window).bind("resize orientationchange focus",g.resize),s.find("img").attr("draggable","false"),setTimeout(function(){s.vars.start(s)},200)},asNav:{setup:function(){s.asNav=!0,s.animatingTo=Math.floor(s.currentSlide/s.move),s.currentItem=s.currentSlide,s.slides.removeClass(r+"active-slide").eq(s.currentItem).addClass(r+"active-slide"),l?(t._slider=s,s.slides.each(function(){var t=this;t._gesture=new MSGesture,t._gesture.target=t,t.addEventListener("MSPointerDown",function(t){t.preventDefault(),t.currentTarget._gesture&&t.currentTarget._gesture.addPointer(t.pointerId)},!1),t.addEventListener("MSGestureTap",function(t){t.preventDefault();var e=n(this),i=e.index();n(s.vars.asNavFor).data("flexslider").animating||e.hasClass("active")||(s.direction=s.currentItem'),s.pagingCount>1)for(var a=0;a":''+o+"","thumbnails"===s.vars.controlNav&&!0===s.vars.thumbCaptions){var c=e.attr("data-thumbcaption");""!==c&&void 0!==c&&(t+=''+c+"")}s.controlNavScaffold.append("
        • "+t+"
        • "),o++}s.controlsContainer?n(s.controlsContainer).append(s.controlNavScaffold):s.append(s.controlNavScaffold),g.controlNav.set(),g.controlNav.active(),s.controlNavScaffold.delegate("a, img",u,function(t){if(t.preventDefault(),""===h||h===t.type){var e=n(this),i=s.controlNav.index(e);e.hasClass(r+"active")||(s.direction=i>s.currentSlide?"next":"prev",s.flexAnimate(i,s.vars.pauseOnAction))}""===h&&(h=t.type),g.setToClearWatchedEvent()})},setupManual:function(){s.controlNav=s.manualControls,g.controlNav.active(),s.controlNav.bind(u,function(t){if(t.preventDefault(),""===h||h===t.type){var e=n(this),i=s.controlNav.index(e);e.hasClass(r+"active")||(i>s.currentSlide?s.direction="next":s.direction="prev",s.flexAnimate(i,s.vars.pauseOnAction))}""===h&&(h=t.type),g.setToClearWatchedEvent()})},set:function(){var t="thumbnails"===s.vars.controlNav?"img":"a";s.controlNav=n("."+r+"control-nav li "+t,s.controlsContainer?s.controlsContainer:s)},active:function(){s.controlNav.removeClass(r+"active").eq(s.animatingTo).addClass(r+"active")},update:function(t,e){s.pagingCount>1&&"add"===t?s.controlNavScaffold.append(n('
        • '+s.count+"
        • ")):1===s.pagingCount?s.controlNavScaffold.find("li").remove():s.controlNav.eq(e).closest("li").remove(),g.controlNav.set(),s.pagingCount>1&&s.pagingCount!==s.controlNav.length?s.update(e,t):g.controlNav.active()}},directionNav:{setup:function(){var t=n('");s.customDirectionNav?s.directionNav=s.customDirectionNav:s.controlsContainer?(n(s.controlsContainer).append(t),s.directionNav=n("."+r+"direction-nav li a",s.controlsContainer)):(s.append(t),s.directionNav=n("."+r+"direction-nav li a",s)),g.directionNav.update(),s.directionNav.bind(u,function(t){t.preventDefault();var e;""!==h&&h!==t.type||(e=n(this).hasClass(r+"next")?s.getTarget("next"):s.getTarget("prev"),s.flexAnimate(e,s.vars.pauseOnAction)),""===h&&(h=t.type),g.setToClearWatchedEvent()})},update:function(){var t=r+"disabled";1===s.pagingCount?s.directionNav.addClass(t).attr("tabindex","-1"):s.vars.animationLoop?s.directionNav.removeClass(t).removeAttr("tabindex"):0===s.animatingTo?s.directionNav.removeClass(t).filter("."+r+"prev").addClass(t).attr("tabindex","-1"):s.animatingTo===s.last?s.directionNav.removeClass(t).filter("."+r+"next").addClass(t).attr("tabindex","-1"):s.directionNav.removeClass(t).removeAttr("tabindex")}},pausePlay:{setup:function(){var t=n('
          ');s.controlsContainer?(s.controlsContainer.append(t),s.pausePlay=n("."+r+"pauseplay a",s.controlsContainer)):(s.append(t),s.pausePlay=n("."+r+"pauseplay a",s)),g.pausePlay.update(s.vars.slideshow?r+"pause":r+"play"),s.pausePlay.bind(u,function(t){t.preventDefault(),""!==h&&h!==t.type||(n(this).hasClass(r+"pause")?(s.manualPause=!0,s.manualPlay=!1,s.pause()):(s.manualPause=!1,s.manualPlay=!0,s.play())),""===h&&(h=t.type),g.setToClearWatchedEvent()})},update:function(t){"play"===t?s.pausePlay.removeClass(r+"pause").addClass(r+"play").html(s.vars.playText):s.pausePlay.removeClass(r+"play").addClass(r+"pause").html(s.vars.pauseText)}},touch:function(){function i(e){e.stopPropagation(),s.animating?e.preventDefault():(s.pause(),t._gesture.addPointer(e.pointerId),C=0,u=d?s.h:s.w,v=Number(new Date),c=m&&p&&s.animatingTo===s.last?0:m&&p?s.limit-(s.itemW+s.vars.itemMargin)*s.move*s.animatingTo:m&&s.currentSlide===s.last?s.limit:m?(s.itemW+s.vars.itemMargin)*s.move*s.currentSlide:p?(s.last-s.currentSlide+s.cloneOffset)*u:(s.currentSlide+s.cloneOffset)*u)}function n(i){i.stopPropagation();var n=i.target._slider;if(n){var s=-i.translationX,o=-i.translationY;return C+=d?o:s,h=C,b=d?Math.abs(C)500)&&(i.preventDefault(),!f&&n.transitions&&(n.vars.animationLoop||(h=C/(0===n.currentSlide&&C<0||n.currentSlide===n.last&&C>0?Math.abs(C)/u+2:1)),n.setProps(c+h,"setTouch"))))}}function o(t){t.stopPropagation();var e=t.target._slider;if(e){if(e.animatingTo===e.currentSlide&&!b&&null!==h){var i=p?-h:h,n=i>0?e.getTarget("next"):e.getTarget("prev");e.canAdvance(n)&&(Number(new Date)-v<550&&Math.abs(i)>50||Math.abs(i)>u/2)?e.flexAnimate(n,e.vars.pauseOnAction):f||e.flexAnimate(e.currentSlide,e.vars.pauseOnAction,!0)}a=null,r=null,h=null,c=null,C=0}}var a,r,c,u,h,v,g,y,w,b=!1,T=0,x=0,C=0;l?(t.style.msTouchAction="none",t._gesture=new MSGesture,t._gesture.target=t,t.addEventListener("MSPointerDown",i,!1),t._slider=s,t.addEventListener("MSGestureChange",n,!1),t.addEventListener("MSGestureEnd",o,!1)):(g=function(e){s.animating?e.preventDefault():(window.navigator.msPointerEnabled||1===e.touches.length)&&(s.pause(),u=d?s.h:s.w,v=Number(new Date),T=e.touches[0].pageX,x=e.touches[0].pageY,c=m&&p&&s.animatingTo===s.last?0:m&&p?s.limit-(s.itemW+s.vars.itemMargin)*s.move*s.animatingTo:m&&s.currentSlide===s.last?s.limit:m?(s.itemW+s.vars.itemMargin)*s.move*s.currentSlide:p?(s.last-s.currentSlide+s.cloneOffset)*u:(s.currentSlide+s.cloneOffset)*u,a=d?x:T,r=d?T:x,t.addEventListener("touchmove",y,!1),t.addEventListener("touchend",w,!1))},y=function(t){T=t.touches[0].pageX,x=t.touches[0].pageY,h=d?a-x:a-T,b=d?Math.abs(h)e)&&(t.preventDefault(),!f&&s.transitions&&(s.vars.animationLoop||(h/=0===s.currentSlide&&h<0||s.currentSlide===s.last&&h>0?Math.abs(h)/u+2:1),s.setProps(c+h,"setTouch")))},w=function(e){if(t.removeEventListener("touchmove",y,!1),s.animatingTo===s.currentSlide&&!b&&null!==h){var i=p?-h:h,n=i>0?s.getTarget("next"):s.getTarget("prev");s.canAdvance(n)&&(Number(new Date)-v<550&&Math.abs(i)>50||Math.abs(i)>u/2)?s.flexAnimate(n,s.vars.pauseOnAction):f||s.flexAnimate(s.currentSlide,s.vars.pauseOnAction,!0)}t.removeEventListener("touchend",w,!1),a=null,r=null,h=null,c=null},t.addEventListener("touchstart",g,!1))},resize:function(){!s.animating&&s.is(":visible")&&(m||s.doMath(),f?g.smoothHeight():m?(s.slides.width(s.computedW),s.update(s.pagingCount),s.setProps()):d?(s.viewport.height(s.h),s.setProps(s.h,"setTotal")):(s.vars.smoothHeight&&g.smoothHeight(),s.newSlides.width(s.computedW),s.setProps(s.computedW,"setTotal")))},smoothHeight:function(t){if(!d||f){var e=f?s:s.viewport;t?e.animate({height:s.slides.eq(s.animatingTo).innerHeight()},t):e.innerHeight(s.slides.eq(s.animatingTo).innerHeight())}},sync:function(t){var e=n(s.vars.sync).data("flexslider"),i=s.animatingTo;switch(t){case"animate":e.flexAnimate(i,s.vars.pauseOnAction,!1,!0);break;case"play":e.playing||e.asNav||e.play();break;case"pause":e.pause()}},uniqueID:function(t){return t.filter("[id]").add(t.find("[id]")).each(function(){var t=n(this);t.attr("id",t.attr("id")+"_clone")}),t},pauseInvisible:{visProp:null,init:function(){var t=g.pauseInvisible.getHiddenProp();if(t){var e=t.replace(/[H|h]idden/,"")+"visibilitychange";document.addEventListener(e,function(){g.pauseInvisible.isHidden()?s.startTimeout?clearTimeout(s.startTimeout):s.pause():s.started?s.play():s.vars.initDelay>0?setTimeout(s.play,s.vars.initDelay):s.play()})}},isHidden:function(){var t=g.pauseInvisible.getHiddenProp();return!!t&&document[t]},getHiddenProp:function(){var t=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var e=0;es.currentSlide?"next":"prev"),v&&1===s.pagingCount&&(s.direction=s.currentItems.limit&&1!==s.visible?s.limit:y):h=0===s.currentSlide&&t===s.count-1&&s.vars.animationLoop&&"next"!==s.direction?p?(s.count+s.cloneOffset)*w:0:s.currentSlide===s.last&&0===t&&s.vars.animationLoop&&"prev"!==s.direction?p?0:(s.count+1)*w:p?(s.count-1-t+s.cloneOffset)*w:(t+s.cloneOffset)*w,s.setProps(h,"",s.vars.animationSpeed),s.transitions?(s.vars.animationLoop&&s.atEnd||(s.animating=!1,s.currentSlide=s.animatingTo),s.container.unbind("webkitTransitionEnd transitionend"),s.container.bind("webkitTransitionEnd transitionend",function(){clearTimeout(s.ensureAnimationEnd),s.wrapup(w)}),clearTimeout(s.ensureAnimationEnd),s.ensureAnimationEnd=setTimeout(function(){s.wrapup(w)},s.vars.animationSpeed+100)):s.container.animate(s.args,s.vars.animationSpeed,s.vars.easing,function(){s.wrapup(w)})}s.vars.smoothHeight&&g.smoothHeight(s.vars.animationSpeed)}},s.wrapup=function(t){f||m||(0===s.currentSlide&&s.animatingTo===s.last&&s.vars.animationLoop?s.setProps(t,"jumpEnd"):s.currentSlide===s.last&&0===s.animatingTo&&s.vars.animationLoop&&s.setProps(t,"jumpStart")),s.animating=!1,s.currentSlide=s.animatingTo,s.vars.after(s)},s.animateSlides=function(){!s.animating&&o&&s.flexAnimate(s.getTarget("next"))},s.pause=function(){clearInterval(s.animatedSlides),s.animatedSlides=null,s.playing=!1,s.vars.pausePlay&&g.pausePlay.update("play"),s.syncExists&&g.sync("pause")},s.play=function(){s.playing&&clearInterval(s.animatedSlides),s.animatedSlides=s.animatedSlides||setInterval(s.animateSlides,s.vars.slideshowSpeed),s.started=s.playing=!0,s.vars.pausePlay&&g.pausePlay.update("pause"),s.syncExists&&g.sync("play")},s.stop=function(){s.pause(),s.stopped=!0},s.canAdvance=function(t,e){var i=v?s.pagingCount-1:s.last;return!!e||(!(!v||s.currentItem!==s.count-1||0!==t||"prev"!==s.direction)||(!v||0!==s.currentItem||t!==s.pagingCount-1||"next"===s.direction)&&(!(t===s.currentSlide&&!v)&&(!!s.vars.animationLoop||(!s.atEnd||0!==s.currentSlide||t!==i||"next"===s.direction)&&(!s.atEnd||s.currentSlide!==i||0!==t||"next"!==s.direction))))},s.getTarget=function(t){return s.direction=t,"next"===t?s.currentSlide===s.last?0:s.currentSlide+1:0===s.currentSlide?s.last:s.currentSlide-1},s.setProps=function(t,e,i){var n=function(){var i=t?t:(s.itemW+s.vars.itemMargin)*s.move*s.animatingTo,n=function(){if(m)return"setTouch"===e?t:p&&s.animatingTo===s.last?0:p?s.limit-(s.itemW+s.vars.itemMargin)*s.move*s.animatingTo:s.animatingTo===s.last?s.limit:i;switch(e){case"setTotal":return p?(s.count-1-s.currentSlide+s.cloneOffset)*t:(s.currentSlide+s.cloneOffset)*t;case"setTouch":return p?t:t;case"jumpEnd":return p?t:s.count*t;case"jumpStart":return p?s.count*t:t;default:return t}}();return n*-1+"px"}();s.transitions&&(n=d?"translate3d(0,"+n+",0)":"translate3d("+n+",0,0)",i=void 0!==i?i/1e3+"s":"0s",s.container.css("-"+s.pfx+"-transition-duration",i),s.container.css("transition-duration",i)),s.args[s.prop]=n,(s.transitions||void 0===i)&&s.container.css(s.args),s.container.css("transform",n)},s.setup=function(t){if(f)s.slides.css({width:"100%","float":"left",marginRight:"-100%",position:"relative"}),"init"===t&&(c?s.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+s.vars.animationSpeed/1e3+"s ease",zIndex:1}).eq(s.currentSlide).css({opacity:1,zIndex:2}):0==s.vars.fadeFirstSlide?s.slides.css({opacity:0,display:"block",zIndex:1}).eq(s.currentSlide).css({zIndex:2}).css({opacity:1}):s.slides.css({opacity:0,display:"block",zIndex:1}).eq(s.currentSlide).css({zIndex:2}).animate({opacity:1},s.vars.animationSpeed,s.vars.easing)),s.vars.smoothHeight&&g.smoothHeight();else{var e,i;"init"===t&&(s.viewport=n('
          ').css({overflow:"hidden",position:"relative"}).appendTo(s).append(s.container),s.cloneCount=0,s.cloneOffset=0,p&&(i=n.makeArray(s.slides).reverse(),s.slides=n(i),s.container.empty().append(s.slides))),s.vars.animationLoop&&!m&&(s.cloneCount=2,s.cloneOffset=1,"init"!==t&&s.container.find(".clone").remove(),s.container.append(g.uniqueID(s.slides.first().clone().addClass("clone")).attr("aria-hidden","true")).prepend(g.uniqueID(s.slides.last().clone().addClass("clone")).attr("aria-hidden","true"))),s.newSlides=n(s.vars.selector,s),e=p?s.count-1-s.currentSlide+s.cloneOffset:s.currentSlide+s.cloneOffset,d&&!m?(s.container.height(200*(s.count+s.cloneCount)+"%").css("position","absolute").width("100%"),setTimeout(function(){s.newSlides.css({display:"block"}),s.doMath(),s.viewport.height(s.h),s.setProps(e*s.h,"init")},"init"===t?100:0)):(s.container.width(200*(s.count+s.cloneCount)+"%"),s.setProps(e*s.computedW,"init"),setTimeout(function(){s.doMath(),s.newSlides.css({width:s.computedW,marginRight:s.computedM,"float":"left",display:"block"}),s.vars.smoothHeight&&g.smoothHeight()},"init"===t?100:0))}m||s.slides.removeClass(r+"active-slide").eq(s.currentSlide).addClass(r+"active-slide"),s.vars.init(s)},s.doMath=function(){var t=s.slides.first(),e=s.vars.itemMargin,i=s.vars.minItems,n=s.vars.maxItems;s.w=void 0===s.viewport?s.width():s.viewport.width(),s.h=t.height(),s.boxPadding=t.outerWidth()-t.width(),m?(s.itemT=s.vars.itemWidth+e,s.itemM=e,s.minW=i?i*s.itemT:s.w,s.maxW=n?n*s.itemT-e:s.w,s.itemW=s.minW>s.w?(s.w-e*(i-1))/i:s.maxWs.w?s.w:s.vars.itemWidth,s.visible=Math.floor(s.w/s.itemW),s.move=s.vars.move>0&&s.vars.moves.w?s.itemW*(s.count-1)+e*(s.count-1):(s.itemW+e)*s.count-s.w-e):(s.itemW=s.w,s.itemM=e,s.pagingCount=s.count,s.last=s.count-1),s.computedW=s.itemW-s.boxPadding,s.computedM=s.itemM},s.update=function(t,e){s.doMath(),m||(ts.controlNav.length?g.controlNav.update("add"):("remove"===e&&!m||s.pagingCounts.last&&(s.currentSlide-=1,s.animatingTo-=1),g.controlNav.update("remove",s.last))),s.vars.directionNav&&g.directionNav.update()},s.addSlide=function(t,e){var i=n(t);s.count+=1,s.last=s.count-1,d&&p?void 0!==e?s.slides.eq(s.count-e).after(i):s.container.prepend(i):void 0!==e?s.slides.eq(e).before(i):s.container.append(i),s.update(e,"add"),s.slides=n(s.vars.selector+":not(.clone)",s),s.setup(),s.vars.added(s)},s.removeSlide=function(t){var e=isNaN(t)?s.slides.index(n(t)):t;s.count-=1,s.last=s.count-1,isNaN(t)?n(t,s.slides).remove():d&&p?s.slides.eq(s.last).remove():s.slides.eq(t).remove(),s.doMath(),s.update(e,"remove"),s.slides=n(s.vars.selector+":not(.clone)",s),s.setup(),s.vars.removed(s)},g.init()},n(window).blur(function(t){o=!1}).focus(function(t){o=!0}),n.flexslider.defaults={namespace:"am-",selector:".am-slides > li",animation:"slide",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:5e3,animationSpeed:600,initDelay:0,randomize:!1,fadeFirstSlide:!0,thumbCaptions:!1,pauseOnAction:!0,pauseOnHover:!1,pauseInvisible:!0,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:" ",nextText:" ",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",customDirectionNav:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:1,maxItems:0,move:0,allowOneSlide:!0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){},init:function(){}},n.fn.flexslider=function(t){var e=Array.prototype.slice.call(arguments,1);if(void 0===t&&(t={}),"object"==typeof t)return this.each(function(){var e=n(this),i=t.selector?t.selector:".am-slides > li",s=e.find(i);1===s.length&&t.allowOneSlide===!1||0===s.length?(s.fadeIn(400),t.start&&t.start(e)):void 0===e.data("flexslider")&&new n.flexslider(this,t)});var i,s=n(this).data("flexslider");switch(t){case"next":s.flexAnimate(s.getTarget("next"),!0);break;case"prev":case"previous":s.flexAnimate(s.getTarget("prev"),!0);break;default:"number"==typeof t?s.flexAnimate(t,!0):"string"==typeof t&&(i="function"==typeof s[t]?s[t].apply(s,e):s[t])}return void 0===i?this:i},s.ready(function(t){n("[data-am-flexslider]",t).each(function(t,e){var i=n(e),o=s.utils.parseOptions(i.data("amFlexslider"));o.before=function(t){t._pausedTimer&&(window.clearTimeout(t._pausedTimer),t._pausedTimer=null)},o.after=function(t){var e=t.vars.playAfterPaused;!e||isNaN(e)||t.playing||t.manualPause||t.manualPlay||t.stopped||(t._pausedTimer=window.setTimeout(function(){t.play()},e))},i.flexslider(o)})}),t.exports=n.flexslider}).call(e,i(12).setImmediate)},function(t,e,i){(function(t,n){function s(t,e){this._id=t,this._clearFn=e}var o=i(13).nextTick,a=Function.prototype.apply,r=Array.prototype.slice,l={},c=0;e.setTimeout=function(){return new s(a.call(setTimeout,window,arguments),clearTimeout)},e.setInterval=function(){return new s(a.call(setInterval,window,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t.close()},s.prototype.unref=s.prototype.ref=function(){},s.prototype.close=function(){this._clearFn.call(window,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},e.setImmediate="function"==typeof t?t:function(t){var i=c++,n=!(arguments.length<2)&&r.call(arguments,1);return l[i]=!0,o(function(){l[i]&&(n?t.apply(null,n):t.call(null),e.clearImmediate(i))}),i},e.clearImmediate="function"==typeof n?n:function(t){delete l[t]}}).call(e,i(12).setImmediate,i(12).clearImmediate)},function(t,e){function i(t){if(l===setTimeout)return setTimeout(t,0);try{return l(t,0)}catch(e){try{return l.call(null,t,0)}catch(e){return l.call(this,t,0)}}}function n(t){if(c===clearTimeout)return clearTimeout(t);try{return c(t)}catch(e){try{return c.call(null,t)}catch(e){return c.call(this,t)}}}function s(){p&&h&&(p=!1,h.length?d=h.concat(d):m=-1,d.length&&o())}function o(){if(!p){var t=i(s);p=!0;for(var e=d.length;e;){for(h=d,d=[];++m1)for(var n=1;n0&&(a=s?s/2.5*(c/8):0,l=Math.abs(t)+a,r=l/c),{destination:Math.round(a),duration:r}};var s=t("transform");return e.extend(e,{hasTransform:s!==!1,hasPerspective:t("perspective")in i,hasTouch:"ontouchstart"in window,hasPointer:!(!window.PointerEvent&&!window.MSPointerEvent),hasTransition:t("transition")in i}),e.isBadAndroid=function(){var t=window.navigator.appVersion;if(/Android/.test(t)&&!/Chrome\/\d/.test(t)){var e=t.match(/Safari\/(\d+.\d)/);return!(e&&"object"==typeof e&&e.length>=2)||parseFloat(e[1])<535.19}return!1}(),e.extend(e.style={},{transform:s,transitionTimingFunction:t("transitionTimingFunction"),transitionDuration:t("transitionDuration"),transitionDelay:t("transitionDelay"),transformOrigin:t("transformOrigin")}),e.hasClass=function(t,e){var i=new RegExp("(^|\\s)"+e+"(\\s|$)");return i.test(t.className)},e.addClass=function(t,i){if(!e.hasClass(t,i)){var n=t.className.split(" ");n.push(i),t.className=n.join(" ")}},e.removeClass=function(t,i){if(e.hasClass(t,i)){var n=new RegExp("(^|\\s)"+i+"(\\s|$)","g");t.className=t.className.replace(n," ")}},e.offset=function(t){for(var e=-t.offsetLeft,i=-t.offsetTop;t=t.offsetParent;)e-=t.offsetLeft,i-=t.offsetTop;return{left:e,top:i}},e.preventDefaultException=function(t,e){for(var i in e)if(e[i].test(t[i]))return!0;return!1},e.extend(e.eventType={},{touchstart:1,touchmove:1,touchend:1,mousedown:2,mousemove:2,mouseup:2,pointerdown:3,pointermove:3,pointerup:3,MSPointerDown:3,MSPointerMove:3,MSPointerUp:3}),e.extend(e.ease={},{quadratic:{style:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",fn:function(t){return t*(2-t)}},circular:{style:"cubic-bezier(0.1, 0.57, 0.1, 1)",fn:function(t){return Math.sqrt(1- --t*t)}},back:{style:"cubic-bezier(0.175, 0.885, 0.32, 1.275)",fn:function(t){var e=4;return(t-=1)*t*((e+1)*t+e)+1}},bounce:{style:"",fn:function(t){return(t/=1)<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}},elastic:{style:"",fn:function(t){var e=.22,i=.4;return 0===t?0:1==t?1:i*Math.pow(2,-10*t)*Math.sin((t-e/4)*(2*Math.PI)/e)+1}}}),e.tap=function(t,e){var i=document.createEvent("Event");i.initEvent(e,!0,!0),i.pageX=t.pageX,i.pageY=t.pageY,t.target.dispatchEvent(i)},e.click=function(t){var e,i=t.target;/(SELECT|INPUT|TEXTAREA)/i.test(i.tagName)||(e=document.createEvent(window.MouseEvent?"MouseEvents":"Event"),e.initEvent("click",!0,!0),e.view=t.view||window,e.detail=1,e.screenX=i.screenX||0,e.screenY=i.screenY||0,e.clientX=i.clientX||0,e.clientY=i.clientY||0,e.ctrlKey=!!t.ctrlKey,e.altKey=!!t.altKey,e.shiftKey=!!t.shiftKey,e.metaKey=!!t.metaKey,e.button=0,e.relatedTarget=null,e._constructed=!0,i.dispatchEvent(e))},e}();n.prototype={version:"5.2.0",_init:function(){this._initEvents()},destroy:function(){this._initEvents(!0),clearTimeout(this.resizeTimeout),this.resizeTimeout=null,this._execEvent("destroy")},_transitionEnd:function(t){t.target==this.scroller&&this.isInTransition&&(this._transitionTime(),this.resetPosition(this.options.bounceTime)||(this.isInTransition=!1,this._execEvent("scrollEnd")))},_start:function(t){if(1!=a.eventType[t.type]){var e;if(e=t.which?t.button:t.button<2?0:4==t.button?1:2,0!==e)return}if(this.enabled&&(!this.initiated||a.eventType[t.type]===this.initiated)){!this.options.preventDefault||a.isBadAndroid||a.preventDefaultException(t.target,this.options.preventDefaultException)||t.preventDefault();var i,n=t.touches?t.touches[0]:t;this.initiated=a.eventType[t.type],this.moved=!1,this.distX=0,this.distY=0,this.directionX=0,this.directionY=0,this.directionLocked=0,this.startTime=a.getTime(),this.options.useTransition&&this.isInTransition?(this._transitionTime(),this.isInTransition=!1,i=this.getComputedPosition(),this._translate(Math.round(i.x),Math.round(i.y)),this._execEvent("scrollEnd")):!this.options.useTransition&&this.isAnimating&&(this.isAnimating=!1, +this._execEvent("scrollEnd")),this.startX=this.x,this.startY=this.y,this.absStartX=this.x,this.absStartY=this.y,this.pointX=n.pageX,this.pointY=n.pageY,this._execEvent("beforeScrollStart")}},_move:function(t){if(this.enabled&&a.eventType[t.type]===this.initiated){this.options.preventDefault&&t.preventDefault();var e,i,n,s,o=t.touches?t.touches[0]:t,r=o.pageX-this.pointX,l=o.pageY-this.pointY,c=a.getTime();if(this.pointX=o.pageX,this.pointY=o.pageY,this.distX+=r,this.distY+=l,n=Math.abs(this.distX),s=Math.abs(this.distY),!(c-this.endTime>300&&n<10&&s<10)){if(this.directionLocked||this.options.freeScroll||(n>s+this.options.directionLockThreshold?this.directionLocked="h":s>=n+this.options.directionLockThreshold?this.directionLocked="v":this.directionLocked="n"),"h"==this.directionLocked){if("vertical"==this.options.eventPassthrough)t.preventDefault();else if("horizontal"==this.options.eventPassthrough)return void(this.initiated=!1);l=0}else if("v"==this.directionLocked){if("horizontal"==this.options.eventPassthrough)t.preventDefault();else if("vertical"==this.options.eventPassthrough)return void(this.initiated=!1);r=0}r=this.hasHorizontalScroll?r:0,l=this.hasVerticalScroll?l:0,e=this.x+r,i=this.y+l,(e>0||e0?0:this.maxScrollX),(i>0||i0?0:this.maxScrollY),this.directionX=r>0?-1:r<0?1:0,this.directionY=l>0?-1:l<0?1:0,this.moved||this._execEvent("scrollStart"),this.moved=!0,this._translate(e,i),c-this.startTime>300&&(this.startTime=c,this.startX=this.x,this.startY=this.y)}}},_end:function(t){if(this.enabled&&a.eventType[t.type]===this.initiated){this.options.preventDefault&&!a.preventDefaultException(t.target,this.options.preventDefaultException)&&t.preventDefault();var e,i,n=(t.changedTouches?t.changedTouches[0]:t,a.getTime()-this.startTime),s=Math.round(this.x),o=Math.round(this.y),r=Math.abs(s-this.startX),l=Math.abs(o-this.startY),c=0,u="";if(this.isInTransition=0,this.initiated=0,this.endTime=a.getTime(),!this.resetPosition(this.options.bounceTime))return this.scrollTo(s,o),this.moved?this._events.flick&&n<200&&r<100&&l<100?void this._execEvent("flick"):(this.options.momentum&&n<300&&(e=this.hasHorizontalScroll?a.momentum(this.x,this.startX,n,this.maxScrollX,this.options.bounce?this.wrapperWidth:0,this.options.deceleration):{destination:s,duration:0},i=this.hasVerticalScroll?a.momentum(this.y,this.startY,n,this.maxScrollY,this.options.bounce?this.wrapperHeight:0,this.options.deceleration):{destination:o,duration:0},s=e.destination,o=i.destination,c=Math.max(e.duration,i.duration),this.isInTransition=1),s!=this.x||o!=this.y?((s>0||s0||o0?e=0:this.x0?i=0:this.y-1&&this._events[t].splice(i,1)}},_execEvent:function(t){if(this._events[t]){var e=0,i=this._events[t].length;if(i)for(;e0;var s=this.options.useTransition&&n.style;!i||s?(s&&(this._transitionTimingFunction(n.style),this._transitionTime(i)),this._translate(t,e)):this._animate(t,e,i,n.fn)},scrollToElement:function(t,e,i,n,s){if(t=t.nodeType?t:this.scroller.querySelector(t)){var o=a.offset(t);o.left-=this.wrapperOffset.left,o.top-=this.wrapperOffset.top,i===!0&&(i=Math.round(t.offsetWidth/2-this.wrapper.offsetWidth/2)),n===!0&&(n=Math.round(t.offsetHeight/2-this.wrapper.offsetHeight/2)),o.left-=i||0,o.top-=n||0,o.left=o.left>0?0:o.left0?0:o.top=h?(r.isAnimating=!1,r._translate(t,e),void(r.resetPosition(r.options.bounceTime)||r._execEvent("scrollEnd"))):(f=(f-u)/i,m=n(f),d=(t-l)*m+l,p=(e-c)*m+c,r._translate(d,p),void(r.isAnimating&&o(s)))}var r=this,l=this.x,c=this.y,u=a.getTime(),h=u+i;this.isAnimating=!0,s()},handleEvent:function(t){switch(t.type){case"touchstart":case"pointerdown":case"MSPointerDown":case"mousedown":this._start(t);break;case"touchmove":case"pointermove":case"MSPointerMove":case"mousemove":this._move(t);break;case"touchend":case"pointerup":case"MSPointerUp":case"mouseup":case"touchcancel":case"pointercancel":case"MSPointerCancel":case"mousecancel":this._end(t);break;case"orientationchange":case"resize":this._resize();break;case"transitionend":case"webkitTransitionEnd":case"oTransitionEnd":case"MSTransitionEnd":this._transitionEnd(t);break;case"wheel":case"DOMMouseScroll":case"mousewheel":this._wheel(t);break;case"keydown":this._key(t);break;case"click":this.enabled&&!t._constructed&&(t.preventDefault(),t.stopPropagation())}}},n.utils=a,t.exports=s.iScroll=n},function(t,e,i){"use strict";function n(t,e){return this.each(function(){var i=s(this),n=i.data("amui.modal"),o="object"==typeof t&&t;n||i.data("amui.modal",n=new c(this,o)),"string"==typeof t?n[t]&&n[t](e):n.toggle(t&&t.relatedTarget||void 0)})}var s=i(1),o=i(2),a=i(9),r=s(document),l=o.support.transition,c=function(t,e){this.options=s.extend({},c.DEFAULTS,e||{}),this.$element=s(t),this.$dialog=this.$element.find(".am-modal-dialog"),this.$element.attr("id")||this.$element.attr("id",o.utils.generateGUID("am-modal")),this.isPopup=this.$element.hasClass("am-popup"),this.isActions=this.$element.hasClass("am-modal-actions"),this.isPrompt=this.$element.hasClass("am-modal-prompt"),this.isLoading=this.$element.hasClass("am-modal-loading"),this.active=this.transitioning=this.relatedTarget=null,this.dimmer=this.options.dimmer?a:{open:function(){},close:function(){}},this.events()};c.DEFAULTS={className:{active:"am-modal-active",out:"am-modal-out"},selector:{modal:".am-modal",active:".am-modal-active"},closeViaDimmer:!0,cancelable:!0,onConfirm:function(){},onCancel:function(){},closeOnCancel:!0,closeOnConfirm:!0,dimmer:!0,height:void 0,width:void 0,duration:300,transitionEnd:l&&l.end+".modal.amui"},c.prototype.toggle=function(t){return this.active?this.close():this.open(t)},c.prototype.open=function(t){var e=this.$element,i=this.options,n=this.isPopup,o=i.width,a=i.height,r={};if(!this.active&&this.$element.length){t&&(this.relatedTarget=t),this.transitioning&&(clearTimeout(e.transitionEndTimmer),e.transitionEndTimmer=null,e.trigger(i.transitionEnd).off(i.transitionEnd)),n&&this.$element.show(),this.active=!0,e.trigger(s.Event("open.modal.amui",{relatedTarget:t})),this.dimmer.open(e),e.show().redraw(),n||this.isActions||(o&&(r.width=parseInt(o,10)+"px"),a&&(r.height=parseInt(a,10)+"px"),this.$dialog.css(r)),e.removeClass(i.className.out).addClass(i.className.active),this.transitioning=1;var c=function(){e.trigger(s.Event("opened.modal.amui",{relatedTarget:t})),this.transitioning=0,this.isPrompt&&this.$dialog.find("input").eq(0).focus()};return l?void e.one(i.transitionEnd,s.proxy(c,this)).emulateTransitionEnd(i.duration):c.call(this)}},c.prototype.close=function(t){if(this.active){var e=this.$element,i=this.options,n=this.isPopup;this.transitioning&&(clearTimeout(e.transitionEndTimmer),e.transitionEndTimmer=null,e.trigger(i.transitionEnd).off(i.transitionEnd),this.dimmer.close(e,!0)),this.$element.trigger(s.Event("close.modal.amui",{relatedTarget:t})),this.transitioning=1;var o=function(){e.trigger("closed.modal.amui"),n&&e.removeClass(i.className.out),e.hide(),this.transitioning=0,this.dimmer.close(e,!1),this.active=!1};return e.removeClass(i.className.active).addClass(i.className.out),l?void e.one(i.transitionEnd,s.proxy(o,this)).emulateTransitionEnd(i.duration):o.call(this)}},c.prototype.events=function(){var t=this,e=this.options,i=this.$element,n=this.dimmer.$element,o=i.find(".am-modal-prompt-input"),a=i.find("[data-am-modal-confirm]"),r=i.find("[data-am-modal-cancel]"),l=function(){var t=[];return o.each(function(){t.push(s(this).val())}),0===t.length?void 0:1===t.length?t[0]:t};this.options.cancelable&&i.on("keyup.modal.amui",function(e){t.active&&27===e.which&&(i.trigger("cancel.modal.amui"),t.close())}),this.options.dimmer&&this.options.closeViaDimmer&&!this.isLoading&&n.on("click.dimmer.modal.amui",function(){t.close()}),i.on("click.close.modal.amui","[data-am-modal-close], .am-modal-btn",function(i){i.preventDefault();var n=s(this);n.is(a)?e.closeOnConfirm&&t.close():n.is(r)?e.closeOnCancel&&t.close():t.close()}).on("click",function(t){s(t.target).is(i)&&n.trigger("click.dimmer.modal.amui")}),a.on("click.confirm.modal.amui",function(){i.trigger(s.Event("confirm.modal.amui",{trigger:this}))}),r.on("click.cancel.modal.amui",function(){i.trigger(s.Event("cancel.modal.amui",{trigger:this}))}),i.on("confirm.modal.amui",function(e){e.data=l(),t.options.onConfirm.call(t,e)}).on("cancel.modal.amui",function(e){e.data=l(),t.options.onCancel.call(t,e)})},s.fn.modal=n,r.on("click.modal.amui.data-api","[data-am-modal]",function(){var t=s(this),e=o.utils.parseOptions(t.attr("data-am-modal")),i=s(e.target||this.href&&this.href.replace(/.*(?=#[^\s]+$)/,"")),a=i.data("amui.modal")?"toggle":e;n.call(i,a,this)}),t.exports=o.modal=c},function(t,e,i){"use strict";function n(t,e){var i=Array.prototype.slice.call(arguments,1);return this.each(function(){var n=s(this),o=n.data("amui.offcanvas"),a=s.extend({},"object"==typeof t&&t);o||(n.data("amui.offcanvas",o=new c(this,a)),(!t||"object"==typeof t)&&o.open(e)),"string"==typeof t&&o[t]&&o[t].apply(o,i)})}var s=i(1),o=i(2);i(3);var a,r=s(window),l=s(document),c=function(t,e){this.$element=s(t),this.options=s.extend({},c.DEFAULTS,e),this.active=null,this.bindEvents()};c.DEFAULTS={duration:300,effect:"overlay"},c.prototype.open=function(t){var e=this,i=this.$element;if(i.length&&!i.hasClass("am-active")){var n=this.options.effect,o=s("html"),l=s("body"),c=i.find(".am-offcanvas-bar").first(),u=c.hasClass("am-offcanvas-bar-flip")?-1:1;c.addClass("am-offcanvas-bar-"+n),a={x:window.scrollX,y:window.scrollY},i.addClass("am-active"),l.css({width:window.innerWidth,height:r.height()}).addClass("am-offcanvas-page"),"overlay"!==n&&l.css({"margin-left":c.outerWidth()*u}).width(),o.css("margin-top",a.y*-1),setTimeout(function(){c.addClass("am-offcanvas-bar-active").width()},0),i.trigger("open.offcanvas.amui"),this.active=1,i.on("click.offcanvas.amui",function(t){var i=s(t.target);i.hasClass("am-offcanvas-bar")||i.parents(".am-offcanvas-bar").first().length||(t.stopImmediatePropagation(),e.close())}),o.on("keydown.offcanvas.amui",function(t){27===t.keyCode&&e.close()})}},c.prototype.close=function(t){function e(){r.removeClass("am-offcanvas-page").css({width:"",height:"","margin-left":"","margin-right":""}),l.removeClass("am-active"),c.removeClass("am-offcanvas-bar-active"),n.css("margin-top",""),window.scrollTo(a.x,a.y),l.trigger("closed.offcanvas.amui"),i.active=0}var i=this,n=s("html"),r=s("body"),l=this.$element,c=l.find(".am-offcanvas-bar").first();l.length&&this.active&&l.hasClass("am-active")&&(l.trigger("close.offcanvas.amui"),o.support.transition?(setTimeout(function(){c.removeClass("am-offcanvas-bar-active")},0),r.css("margin-left","").one(o.support.transition.end,function(){e()}).emulateTransitionEnd(this.options.duration)):e(),l.off("click.offcanvas.amui"),n.off(".offcanvas.amui"))},c.prototype.bindEvents=function(){var t=this;return l.on("click.offcanvas.amui",'[data-am-dismiss="offcanvas"]',function(e){e.preventDefault(),t.close()}),r.on("resize.offcanvas.amui orientationchange.offcanvas.amui",function(){t.active&&t.close()}),this.$element.hammer().on("swipeleft swipeleft",function(e){e.preventDefault(),t.close()}),this},s.fn.offCanvas=n,l.on("click.offcanvas.amui","[data-am-offcanvas]",function(t){t.preventDefault();var e=s(this),i=o.utils.parseOptions(e.data("amOffcanvas")),a=s(i.target||this.href&&this.href.replace(/.*(?=#[^\s]+$)/,"")),r=a.data("amui.offcanvas")?"open":i;n.call(a,r,this)}),t.exports=o.offcanvas=c},function(t,e,i){"use strict";var n=i(1),s=i(2),o=s.utils.rAF,a=function(t){var e=function(e,i){this.el=t(e),this.zoomFactor=1,this.lastScale=1,this.offset={x:0,y:0},this.options=t.extend({},this.defaults,i),this.setupMarkup(),this.bindEvents(),this.update(),this.enable()},i=function(t,e){return t+e},n=function(t,e){return t>e-.01&&t1){var e=this.getTouches(t)[0];this.drag(e,this.lastDragPosition),this.offset=this.sanitizeOffset(this.offset),this.lastDragPosition=e}},handleDragEnd:function(){this.el.trigger(this.options.dragEndEventName),this.end()},handleZoomStart:function(t){this.el.trigger(this.options.zoomStartEventName),this.stopAnimation(),this.lastScale=1,this.nthZoom=0,this.lastZoomCenter=!1,this.hasInteraction=!0},handleZoom:function(t,e){var i=this.getTouchCenter(this.getTouches(t)),n=e/this.lastScale;this.lastScale=e,this.nthZoom+=1,this.nthZoom>3&&(this.scale(n,i),this.drag(i,this.lastZoomCenter)),this.lastZoomCenter=i},handleZoomEnd:function(){this.el.trigger(this.options.zoomEndEventName),this.end()},handleDoubleTap:function(t){var e=this.getTouches(t)[0],i=this.zoomFactor>1?1:this.options.tapZoomFactor,n=this.zoomFactor,s=function(t){this.scaleTo(n+t*(i-n),e)}.bind(this);this.hasInteraction||(n>i&&(e=this.getCurrentZoomCenter()),this.animate(this.options.animationDuration,s,this.swing),this.el.trigger(this.options.doubleTapEventName))},sanitizeOffset:function(t){var e=(this.zoomFactor-1)*this.getContainerX(),i=(this.zoomFactor-1)*this.getContainerY(),n=Math.max(e,0),s=Math.max(i,0),o=Math.min(e,0),a=Math.min(i,0);return{x:Math.min(Math.max(t.x,o),n),y:Math.min(Math.max(t.y,a),s)}},scaleTo:function(t,e){this.scale(t/this.zoomFactor,e)},scale:function(t,e){t=this.scaleZoomFactor(t),this.addOffset({x:(t-1)*(e.x+this.offset.x),y:(t-1)*(e.y+this.offset.y)})},scaleZoomFactor:function(t){var e=this.zoomFactor;return this.zoomFactor*=t,this.zoomFactor=Math.min(this.options.maxZoom,Math.max(this.zoomFactor,this.options.minZoom)),this.zoomFactor/e},drag:function(t,e){e&&(this.options.lockDragAxis?Math.abs(t.x-e.x)>Math.abs(t.y-e.y)?this.addOffset({x:-(t.x-e.x),y:0}):this.addOffset({y:-(t.y-e.y),x:0}):this.addOffset({y:-(t.y-e.y),x:-(t.x-e.x)}))},getTouchCenter:function(t){return this.getVectorAvg(t)},getVectorAvg:function(t){return{x:t.map(function(t){return t.x}).reduce(i)/t.length,y:t.map(function(t){return t.y}).reduce(i)/t.length}},addOffset:function(t){this.offset={x:this.offset.x+t.x,y:this.offset.y+t.y}},sanitize:function(){this.zoomFactor=t?(e(1),n&&n(),this.update(),this.stopAnimation(),this.update()):(i&&(l=i(l)),e(l),this.update(),o(a))}}.bind(this);this.inAnimation=!0,o(a)},stopAnimation:function(){this.inAnimation=!1},swing:function(t){return-Math.cos(t*Math.PI)/2+.5},getContainerX:function(){return this.container[0].offsetWidth},getContainerY:function(){return this.container[0].offsetHeight},setContainerY:function(t){return this.container.height(t)},setupMarkup:function(){this.container=t('
          '),this.el.before(this.container),this.container.append(this.el),this.container.css({overflow:"hidden",position:"relative"}),this.el.css({"-webkit-transform-origin":"0% 0%","-moz-transform-origin":"0% 0%","-ms-transform-origin":"0% 0%","-o-transform-origin":"0% 0%","transform-origin":"0% 0%",position:"absolute"})},end:function(){this.hasInteraction=!1,this.sanitize(),this.update()},bindEvents:function(){s(this.container.get(0),this),t(window).on("resize",this.update.bind(this)),t(this.el).find("img").on("load",this.update.bind(this))},update:function(){this.updatePlaned||(this.updatePlaned=!0,setTimeout(function(){this.updatePlaned=!1,this.updateAspectRatio();var t=this.getInitialZoomFactor()*this.zoomFactor,e=-this.offset.x/t,i=-this.offset.y/t,n="scale3d("+t+", "+t+",1) translate3d("+e+"px,"+i+"px,0px)",s="scale("+t+", "+t+") translate("+e+"px,"+i+"px)",o=function(){this.clone&&(this.clone.remove(),delete this.clone)}.bind(this);!this.options.use2d||this.hasInteraction||this.inAnimation?(this.is3d=!0,o(),this.el.css({"-webkit-transform":n,"-o-transform":s,"-ms-transform":s,"-moz-transform":s,transform:n})):(this.is3d&&(this.clone=this.el.clone(),this.clone.css("pointer-events","none"),this.clone.appendTo(this.container),setTimeout(o,200)),this.el.css({"-webkit-transform":s,"-o-transform":s,"-ms-transform":s,"-moz-transform":s,transform:s}),this.is3d=!1)}.bind(this),0))},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1}};var s=function(t,e){var i=null,n=0,s=null,o=null,a=function(t,n){if(i!==t){if(i&&!t)switch(i){case"zoom":e.handleZoomEnd(n);break;case"drag":e.handleDragEnd(n)}switch(t){case"zoom":e.handleZoomStart(n);break;case"drag":e.handleDragStart(n)}}i=t},r=function(t){2===n?a("zoom"):1===n&&e.canDrag()?a("drag",t):a(null,t)},l=function(t){return Array.prototype.slice.call(t).map(function(t){return{x:t.pageX,y:t.pageY}})},c=function(t,e){var i,n;return i=t.x-e.x,n=t.y-e.y,Math.sqrt(i*i+n*n)},u=function(t,e){var i=c(t[0],t[1]),n=c(e[0],e[1]);return n/i},h=function(t){t.stopPropagation(),t.preventDefault()},d=function(t){var o=(new Date).getTime();if(n>1&&(s=null),o-s<300)switch(h(t),e.handleDoubleTap(t),i){case"zoom":e.handleZoomEnd(t);break;case"drag":e.handleDragEnd(t)}1===n&&(s=o)},p=!0;t.addEventListener("touchstart",function(t){e.enabled&&(p=!0,n=t.touches.length,d(t))}),t.addEventListener("touchmove",function(t){if(e.enabled){if(p)r(t),i&&h(t),o=l(t.touches);else{switch(i){case"zoom":e.handleZoom(t,u(o,l(t.touches)));break;case"drag":e.handleDrag(t)}i&&(h(t),e.update())}p=!1}}),t.addEventListener("touchend",function(t){e.enabled&&(n=t.touches.length,r(t))})};return e};t.exports=s.pichzoom=a(n)},function(t,e,i){"use strict";var n=i(1),s=i(2),o=n(window),a=function(t,e){this.options=n.extend({},a.DEFAULTS,e),this.$element=n(t),this.active=null,this.$popover=this.options.target&&n(this.options.target)||null,this.init(),this._bindEvents()};a.DEFAULTS={theme:null,trigger:"click",content:"",open:!1,target:null,tpl:'
          '},a.prototype.init=function(){function t(){i.sizePopover()}var e,i=this,o=this.$element;this.options.target||(this.$popover=this.getPopover(),this.setContent()),e=this.$popover,e.appendTo(n("body")),this.sizePopover(),o.on("open.popover.amui",function(){n(window).on("resize.popover.amui",s.utils.debounce(t,50))}),o.on("close.popover.amui",function(){n(window).off("resize.popover.amui",t)}),this.options.open&&this.open()},a.prototype.sizePopover=function(){var t=this.$element,e=this.$popover;if(e&&e.length){var i=e.outerWidth(),n=e.outerHeight(),s=e.find(".am-popover-caret"),a=s.outerWidth()/2||8,r=n+8,l=t.outerWidth(),c=t.outerHeight(),u=t.offset(),h=t[0].getBoundingClientRect(),d=o.height(),p=o.width(),m=0,f=0,v=0,g=2,y="top";e.css({left:"",top:""}).removeClass("am-popover-left am-popover-right am-popover-top am-popover-bottom"),r-gp&&(f=p-i-20),"top"===y&&e.addClass("am-popover-top"),"bottom"===y&&e.addClass("am-popover-bottom"),v-=f):"middle"===y&&(f=u.left-i-a,e.addClass("am-popover-left"),f<5&&(f=u.left+l+a,e.removeClass("am-popover-left").addClass("am-popover-right")),f+i>p&&(f=p-i-5,e.removeClass("am-popover-left").addClass("am-popover-right"))),e.css({top:m+"px",left:f+"px"})}},a.prototype.toggle=function(){return this[this.active?"close":"open"]()},a.prototype.open=function(){var t=this.$popover;this.$element.trigger("open.popover.amui"),this.sizePopover(),t.show().addClass("am-active"),this.active=!0},a.prototype.close=function(){var t=this.$popover;this.$element.trigger("close.popover.amui"),t.removeClass("am-active").trigger("closed.popover.amui").hide(),this.active=!1},a.prototype.getPopover=function(){var t=s.utils.generateGUID("am-popover"),e=[];return this.options.theme&&n.each(this.options.theme.split(" "),function(t,i){e.push("am-popover-"+n.trim(i))}),n(this.options.tpl).attr("id",t).addClass(e.join(" "))},a.prototype.setContent=function(t){t=t||this.options.content,this.$popover&&this.$popover.find(".am-popover-inner").empty().html(t)},a.prototype._bindEvents=function(){for(var t="popover.amui",e=this.options.trigger.split(" "),i=e.length;i--;){var s=e[i];if("click"===s)this.$element.on("click."+t,n.proxy(this.toggle,this));else{var o="hover"==s?"mouseenter":"focusin",a="hover"==s?"mouseleave":"focusout";this.$element.on(o+"."+t,n.proxy(this.open,this)),this.$element.on(a+"."+t,n.proxy(this.close,this))}}},a.prototype.destroy=function(){this.$element.off(".popover.amui").removeData("amui.popover"),this.$popover.remove()},s.plugin("popover",a),s.ready(function(t){n("[data-am-popover]",t).popover()}),t.exports=a},function(t,e,i){"use strict";var n=i(2),s=function(){function t(t,e,i){return ti?i:t}function e(t){return 100*(-1+t)}function i(t,i,n){var s;return s="translate3d"===c.positionUsing?{transform:"translate3d("+e(t)+"%,0,0)"}:"translate"===c.positionUsing?{transform:"translate("+e(t)+"%,0)"}:{"margin-left":e(t)+"%"},s.transition="all "+i+"ms "+n,s}function n(t,e){var i="string"==typeof t?t:a(t);return i.indexOf(" "+e+" ")>=0}function s(t,e){var i=a(t),s=i+e;n(i,e)||(t.className=s.substring(1))}function o(t,e){var i,s=a(t);n(t,e)&&(i=s.replace(" "+e+" "," "),t.className=i.substring(1,i.length-1))}function a(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function r(t){t&&t.parentNode&&t.parentNode.removeChild(t)}var l={};l.version="0.2.0";var c=l.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,parent:"body",barSelector:'[role="nprogress-bar"]',spinnerSelector:'[role="nprogress-spinner"]',template:'
          '};l.configure=function(t){var e,i;for(e in t)i=t[e],void 0!==i&&t.hasOwnProperty(e)&&(c[e]=i);return this},l.status=null,l.set=function(e){var n=l.isStarted();e=t(e,c.minimum,1),l.status=1===e?null:e;var s=l.render(!n),o=s.querySelector(c.barSelector),a=c.speed,r=c.easing;return s.offsetWidth,u(function(t){""===c.positionUsing&&(c.positionUsing=l.getPositioningCSS()),h(o,i(e,a,r)),1===e?(h(s,{transition:"none",opacity:1}),s.offsetWidth,setTimeout(function(){h(s,{transition:"all "+a+"ms linear",opacity:0}),setTimeout(function(){l.remove(),t()},a)},a)):setTimeout(t,a)}),this},l.isStarted=function(){return"number"==typeof l.status},l.start=function(){l.status||l.set(0);var t=function(){setTimeout(function(){l.status&&(l.trickle(),t())},c.trickleSpeed)};return c.trickle&&t(),this},l.done=function(t){return t||l.status?l.inc(.3+.5*Math.random()).set(1):this},l.inc=function(e){var i=l.status;return i?("number"!=typeof e&&(e=(1-i)*t(Math.random()*i,.1,.95)),i=t(i+e,0,.994),l.set(i)):l.start()},l.trickle=function(){return l.inc(Math.random()*c.trickleRate)},function(){var t=0,e=0;l.promise=function(i){return i&&"resolved"!==i.state()?(0===e&&l.start(),t++,e++,i.always(function(){e--,0===e?(t=0,l.done()):l.set((t-e)/t)}),this):this}}(),l.render=function(t){if(l.isRendered())return document.getElementById("nprogress");s(document.documentElement,"nprogress-busy");var i=document.createElement("div");i.id="nprogress",i.innerHTML=c.template;var n,o=i.querySelector(c.barSelector),a=t?"-100":e(l.status||0),u=document.querySelector(c.parent);return h(o,{transition:"all 0 linear",transform:"translate3d("+a+"%,0,0)"}),c.showSpinner||(n=i.querySelector(c.spinnerSelector),n&&r(n)),u!=document.body&&s(u,"nprogress-custom-parent"),u.appendChild(i),i},l.remove=function(){o(document.documentElement,"nprogress-busy"),o(document.querySelector(c.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&r(t)},l.isRendered=function(){return!!document.getElementById("nprogress")},l.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var u=function(){function t(){var i=e.shift();i&&i(t)}var e=[];return function(i){e.push(i),1==e.length&&t()}}(),h=function(){function t(t){return t.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()})}function e(t){var e=document.body.style;if(t in e)return t;for(var i,n=s.length,o=t.charAt(0).toUpperCase()+t.slice(1);n--;)if(i=s[n]+o,i in e)return i;return t}function i(i){return i=t(i),o[i]||(o[i]=e(i))}function n(t,e,n){e=i(e),t.style[e]=n}var s=["Webkit","O","Moz","ms"],o={};return function(t,e){var i,s,o=arguments;if(2==o.length)for(i in e)s=e[i],void 0!==s&&e.hasOwnProperty(i)&&n(t,i,s);else n(t,o[1],o[2])}}();return l}();t.exports=n.progress=s},function(t,e,i){"use strict";var n=i(1),s=i(2),o=i(17),a=i(3),r=s.support.animation,l=s.support.transition,c=function(t,e){this.$element=n(t),this.$body=n(document.body),this.options=n.extend({},c.DEFAULTS,e),this.$pureview=n(this.options.tpl).attr("id",s.utils.generateGUID("am-pureview")),this.$slides=null,this.transitioning=null,this.scrollbarWidth=0,this.init()};c.DEFAULTS={tpl:'
              /
              ',className:{prevSlide:"am-pureview-slide-prev",nextSlide:"am-pureview-slide-next",onlyOne:"am-pureview-only",active:"am-active",barActive:"am-pureview-bar-active",activeBody:"am-pureview-active"},selector:{slider:".am-pureview-slider",close:'[data-am-close="pureview"]',total:".am-pureview-total",current:".am-pureview-current",title:".am-pureview-title",actions:".am-pureview-actions", +bar:".am-pureview-bar",pinchZoom:".am-pinch-zoom",nav:".am-pureview-nav"},shareBtn:!1,toggleToolbar:!0,target:"img",weChatImagePreview:!0},c.prototype.init=function(){var t=this,e=this.options,i=this.$element,s=this.$pureview;this.refreshSlides(),n("body").append(s),this.$title=s.find(e.selector.title),this.$current=s.find(e.selector.current),this.$bar=s.find(e.selector.bar),this.$actions=s.find(e.selector.actions),e.shareBtn&&this.$actions.append(''),this.$element.on("click.pureview.amui",e.target,function(i){i.preventDefault();var n=t.$images.index(this);e.weChatImagePreview&&window.WeixinJSBridge?window.WeixinJSBridge.invoke("imagePreview",{current:t.imgUrls[n],urls:t.imgUrls}):t.open(n)}),s.find(".am-pureview-direction").on("click.direction.pureview.amui","li",function(e){e.preventDefault(),n(this).is(".am-pureview-prev")?t.prevSlide():t.nextSlide()}),s.find(e.selector.nav).on("click.nav.pureview.amui","li",function(){var e=t.$navItems.index(n(this));t.activate(t.$slides.eq(e))}),s.find(e.selector.close).on("click.close.pureview.amui",function(e){e.preventDefault(),t.close()}),this.$slider.hammer().on("swipeleft.pureview.amui",function(e){e.preventDefault(),t.nextSlide()}).on("swiperight.pureview.amui",function(e){e.preventDefault(),t.prevSlide()}).on("press.pureview.amui",function(i){i.preventDefault(),e.toggleToolbar&&t.toggleToolBar()}),this.$slider.data("hammer").get("swipe").set({direction:a.DIRECTION_HORIZONTAL,velocity:.35}),i.DOMObserve({childList:!0,subtree:!0},function(t,e){}),i.on("changed.dom.amui",function(e){e.stopPropagation(),t.refreshSlides()}),n(document).on("keydown.pureview.amui",n.proxy(function(t){var e=t.keyCode;37==e?this.prevSlide():39==e?this.nextSlide():27==e&&this.close()},this))},c.prototype.refreshSlides=function(){this.$images=this.$element.find(this.options.target);var t=this,e=this.options,i=this.$pureview,o=n([]),a=n([]),r=this.$images,l=r.length;this.$slider=i.find(e.selector.slider),this.$nav=i.find(e.selector.nav);var c="data-am-pureviewed";this.imgUrls=this.imgUrls||[],l&&(1===l&&i.addClass(e.className.onlyOne),r.not("["+c+"]").each(function(e,i){var r,l;"A"===i.nodeName?(r=i.href,l=i.title||""):(r=n(i).data("rel")||i.src,r=s.utils.getAbsoluteUrl(r),l=n(i).attr("alt")||""),i.setAttribute(c,"1"),t.imgUrls.push(r),o=o.add(n('
            1. ')),a=a.add(n("
            2. "+(e+1)+"
            3. "))}),i.find(e.selector.total).text(l),this.$slider.append(o),this.$nav.append(a),this.$navItems=this.$nav.find("li"),this.$slides=this.$slider.find("li"))},c.prototype.loadImage=function(t,e){var i="image-appended";if(!t.data(i)){var s=n("",{src:t.data("src"),alt:t.data("title")});t.html(s).wrapInner('
              ').redraw();var a=t.find(this.options.selector.pinchZoom);a.data("amui.pinchzoom",new o(a[0],{})),t.data("image-appended",!0)}e&&e.call(this)},c.prototype.activate=function(t){var e=this.options,i=this.$slides,o=i.index(t),a=t.data("title")||"",r=e.className.active;i.find("."+r).is(t)||this.transitioning||(this.loadImage(t,function(){s.utils.imageLoader(t.find("img"),function(e){t.find(".am-pinch-zoom").addClass("am-pureview-loaded"),n(e).addClass("am-img-loaded")})}),this.transitioning=1,this.$title.text(a),this.$current.text(o+1),i.removeClass(),t.addClass(r),i.eq(o-1).addClass(e.className.prevSlide),i.eq(o+1).addClass(e.className.nextSlide),this.$navItems.removeClass().eq(o).addClass(e.className.active),l?t.one(l.end,n.proxy(function(){this.transitioning=0},this)).emulateTransitionEnd(300):this.transitioning=0)},c.prototype.nextSlide=function(){if(1!==this.$slides.length){var t=this.$slides,e=t.filter(".am-active"),i=t.index(e),n="am-animation-right-spring";i+1>=t.length?r&&e.addClass(n).on(r.end,function(){e.removeClass(n)}):this.activate(t.eq(i+1))}},c.prototype.prevSlide=function(){if(1!==this.$slides.length){var t=this.$slides,e=t.filter(".am-active"),i=this.$slides.index(e),n="am-animation-left-spring";0===i?r&&e.addClass(n).on(r.end,function(){e.removeClass(n)}):this.activate(t.eq(i-1))}},c.prototype.toggleToolBar=function(){this.$pureview.toggleClass(this.options.className.barActive)},c.prototype.open=function(t){var e=t||0;this.checkScrollbar(),this.setScrollbar(),this.activate(this.$slides.eq(e)),this.$pureview.show().redraw().addClass(this.options.className.active),this.$body.addClass(this.options.className.activeBody)},c.prototype.close=function(){function t(){this.$pureview.hide(),this.$body.removeClass(e.className.activeBody),this.resetScrollbar()}var e=this.options;this.$pureview.removeClass(e.className.active),this.$slides.removeClass(),l?this.$pureview.one(l.end,n.proxy(t,this)).emulateTransitionEnd(300):t.call(this)},c.prototype.checkScrollbar=function(){this.scrollbarWidth=s.utils.measureScrollbar()},c.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.scrollbarWidth&&this.$body.css("padding-right",t+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},s.plugin("pureview",c),s.ready(function(t){n("[data-am-pureview]",t).pureview()}),t.exports=c},function(t,e,i){"use strict";var n=i(1),s=i(2),o=function(t,e){if(s.support.animation){this.options=n.extend({},o.DEFAULTS,e),this.$element=n(t);var i=function(){s.utils.rAF.call(window,n.proxy(this.checkView,this))}.bind(this);this.$window=n(window).on("scroll.scrollspy.amui",i).on("resize.scrollspy.amui orientationchange.scrollspy.amui",s.utils.debounce(i,50)),this.timer=this.inViewState=this.initInView=null,i()}};o.DEFAULTS={animation:"fade",className:{inView:"am-scrollspy-inview",init:"am-scrollspy-init"},repeat:!0,delay:0,topOffset:0,leftOffset:0},o.prototype.checkView=function(){var t=this.$element,e=this.options,i=s.utils.isInView(t,e),n=e.animation?" am-animation-"+e.animation:"";i&&!this.inViewState&&(this.timer&&clearTimeout(this.timer),this.initInView||(t.addClass(e.className.init),this.offset=t.offset(),this.initInView=!0,t.trigger("init.scrollspy.amui")),this.timer=setTimeout(function(){i&&t.addClass(e.className.inView+n).width()},e.delay),this.inViewState=!0,t.trigger("inview.scrollspy.amui")),!i&&this.inViewState&&e.repeat&&(t.removeClass(e.className.inView+n),this.inViewState=!1,t.trigger("outview.scrollspy.amui"))},o.prototype.check=function(){s.utils.rAF.call(window,n.proxy(this.checkView,this))},s.plugin("scrollspy",o),s.ready(function(t){n("[data-am-scrollspy]",t).scrollspy()}),t.exports=o},function(t,e,i){"use strict";var n=i(1),s=i(2);i(23);var o=function(t,e){this.options=n.extend({},o.DEFAULTS,e),this.$element=n(t),this.anchors=[],this.$links=this.$element.find('a[href^="#"]').each(function(t,e){this.anchors.push(n(e).attr("href"))}.bind(this)),this.$targets=n(this.anchors.join(", "));var i=function(){s.utils.rAF.call(window,n.proxy(this.process,this))}.bind(this);this.$window=n(window).on("scroll.scrollspynav.amui",i).on("resize.scrollspynav.amui orientationchange.scrollspynav.amui",s.utils.debounce(i,50)),i(),this.scrollProcess()};o.DEFAULTS={className:{active:"am-active"},closest:!1,smooth:!0,offsetTop:0},o.prototype.process=function(){var t=this.$window.scrollTop(),e=this.options,i=[],o=this.$links,a=this.$targets;if(a.each(function(t,n){s.utils.isInView(n,e)&&i.push(n)}),i.length){var r;if(n.each(i,function(e,i){if(n(i).offset().top>=t)return r=n(i),!1}),!r)return;e.closest?(o.closest(e.closest).removeClass(e.className.active),o.filter('a[href="#'+r.attr("id")+'"]').closest(e.closest).addClass(e.className.active)):o.removeClass(e.className.active).filter('a[href="#'+r.attr("id")+'"]').addClass(e.className.active)}},o.prototype.scrollProcess=function(){var t=this.$links,e=this.options;e.smooth&&n.fn.smoothScroll&&t.on("click",function(t){t.preventDefault();var i=n(this),s=n(i.attr("href"));if(s){var o=e.offsetTop&&!isNaN(parseInt(e.offsetTop))&&parseInt(e.offsetTop)||0;n(window).smoothScroll({position:s.offset().top-o})}})},s.plugin("scrollspynav",o),s.ready(function(t){n("[data-am-scrollspynav]",t).scrollspynav()}),t.exports=o},function(t,e,i){"use strict";var n=i(1),s=i(2),o=s.utils.rAF,a=s.utils.cancelAF,r=!1,l=function(t,e){function i(t){return(t/=.5)<1?.5*Math.pow(t,5):.5*(Math.pow(t-2,5)+2)}function s(){p.off("touchstart.smoothscroll.amui",w),r=!1}function c(t){r&&(u||(u=t),h=Math.min(1,Math.max((t-u)/y,0)),d=Math.round(f+g*i(h)),g>0&&d>m&&(d=m),g<0&&d=0};var o=function(t,e){this.$element=n(t),this.options=n.extend({},o.DEFAULTS,{placeholder:t.getAttribute("placeholder")||o.DEFAULTS.placeholder},e),this.$originalOptions=this.$element.find("option"),this.multiple=t.multiple,this.$selector=null,this.initialized=!1,this.init()};o.DEFAULTS={btnWidth:null,btnSize:null,btnStyle:"default",dropUp:0,maxHeight:null,maxChecked:null,placeholder:"\u70b9\u51fb\u9009\u62e9...",selectedClass:"am-checked",disabledClass:"am-disabled",searchBox:!1,tpl:'

              \u8fd4\u56de

              <% if (searchBox) { %> <% } %>
                <% for (var i = 0; i < options.length; i++) { %> <% var option = options[i] %> <% if (option.header) { %>
              • <%= option.text %>
              • <% } else { %>
              • <%= option.text %>
              • <% } %> <% } %>
              ',listTpl:'<% for (var i = 0; i < options.length; i++) { %> <% var option = options[i] %> <% if (option.header) { %>
            4. <%= option.text %>
            5. <% } else { %>
            6. <%= option.text %>
            7. <% } %> <% } %>'},o.prototype.init=function(){var t=this,e=this.$element,i=this.options;e.hide();var o={id:s.utils.generateGUID("am-selected"),multiple:this.multiple,options:[],searchBox:i.searchBox,dropUp:i.dropUp,placeholder:i.placeholder};this.$selector=n(s.template(this.options.tpl,o)),this.$selector.css({width:this.options.btnWidth}),this.$list=this.$selector.find(".am-selected-list"),this.$searchField=this.$selector.find(".am-selected-search input"),this.$hint=this.$selector.find(".am-selected-hint");var a=this.$selector.find(".am-selected-btn"),r=[];i.btnSize&&r.push("am-btn-"+i.btnSize),i.btnStyle&&r.push("am-btn-"+i.btnStyle),a.addClass(r.join(" ")),this.$selector.dropdown({justify:a}),e[0].disabled&&this.disable(),i.maxHeight&&this.$selector.find(".am-selected-list").css({"max-height":i.maxHeight,"overflow-y":"scroll"});var l=[],c=e.attr("minchecked"),u=e.attr("maxchecked")||i.maxChecked;this.maxChecked=u||1/0,e[0].required&&l.push("\u5fc5\u9009"),(c||u)&&(c&&l.push("\u81f3\u5c11\u9009\u62e9 "+c+" \u9879"),u&&l.push("\u81f3\u591a\u9009\u62e9 "+u+" \u9879")),this.$hint.text(l.join("\uff0c")),this.renderOptions(),this.$element.after(this.$selector),this.dropdown=this.$selector.data("amui.dropdown"),this.$status=this.$selector.find(".am-selected-status"),setTimeout(function(){t.syncData(),t.initialized=!0},0),this.bindEvents()},o.prototype.renderOptions=function(){function t(t,e,s){if(""===e.value)return!0;var o="";e.disabled&&(o+=i.disabledClass),!e.disabled&&e.selected&&(o+=i.selectedClass),n.push({group:s,index:t,classNames:o,text:e.text,value:e.value})}var e=this.$element,i=this.options,n=[],o=e.find("optgroup");this.$originalOptions=this.$element.find("option"),this.multiple||null!==e.val()||this.$originalOptions.length&&(this.$originalOptions.get(0).selected=!0),o.length?o.each(function(e){n.push({header:!0,group:e+1,text:this.label}),o.eq(e).find("option").each(function(i,n){t(i,n,e)})}):this.$originalOptions.each(function(e,i){t(e,i,null)}),this.$list.html(s.template(i.listTpl,{options:n})),this.$shadowOptions=this.$list.find("> li").not(".am-selected-list-header")},o.prototype.setChecked=function(t){var e=this.options,i=n(t),s=i.hasClass(e.selectedClass);if(this.multiple){var o=this.$list.find("."+e.selectedClass).length;if(!s&&this.maxChecked<=o)return this.$element.trigger("checkedOverflow.selected.amui",{selected:this}),!1}else{if(this.dropdown.close(),s)return!1;this.$shadowOptions.not(i).removeClass(e.selectedClass)}i.toggleClass(e.selectedClass),this.syncData(t)},o.prototype.syncData=function(t){var e=this,i=this.options,s=[],o=n([]);if(this.$shadowOptions.filter("."+i.selectedClass).each(function(){var i=n(this);s.push(i.find(".am-selected-text").text()),t||(o=o.add(e.$originalOptions.filter('[value="'+i.data("value")+'"]').prop("selected",!0)))}),t){var a=n(t);this.$originalOptions.filter('[value="'+a.data("value")+'"]').prop("selected",a.hasClass(i.selectedClass))}else this.$originalOptions.not(o).prop("selected",!1);this.$element.val()||(s=[i.placeholder]),this.$status.text(s.join(", ")),this.initialized&&this.$element.trigger("change")},o.prototype.bindEvents=function(){var t=this,e="am-selected-list-header",i=s.utils.debounce(function(i){t.$shadowOptions.not("."+e).hide().filter(':containsNC("'+i.target.value+'")').show()},100);this.$list.on("click","> li",function(i){var s=n(this);!s.hasClass(t.options.disabledClass)&&!s.hasClass(e)&&t.setChecked(this)}),this.$searchField.on("keyup.selected.amui",i),this.$selector.on("closed.dropdown.amui",function(){t.$searchField.val(""),t.$shadowOptions.css({display:""})}),this.$element.on("validated.field.validator.amui",function(e){if(e.validity){var i=e.validity.valid,n="am-invalid";t.$selector[(i?"remove":"add")+"Class"](n)}}),s.support.mutationobserver&&(this.observer=new s.support.mutationobserver(function(){t.$element.trigger("changed.selected.amui")}),this.observer.observe(this.$element[0],{childList:!0,subtree:!0,characterData:!0})),this.$element.on("changed.selected.amui",function(){t.renderOptions(),t.syncData()})},o.prototype.select=function(t){var e;e="number"==typeof t?this.$list.find("> li").not(".am-selected-list-header").eq(t):"string"==typeof t?this.$list.find(t):n(t),e.trigger("click")},o.prototype.enable=function(){this.$element.prop("disable",!1),this.$selector.dropdown("enable")},o.prototype.disable=function(){this.$element.prop("disable",!0),this.$selector.dropdown("disable")},o.prototype.destroy=function(){this.$element.removeData("amui.selected").show(),this.$selector.remove()},s.plugin("selected",o),s.ready(function(t){n("[data-am-selected]",t).selected()}),t.exports=o},function(t,e,i){"use strict";i(15);var n=i(1),s=i(2),o=i(26),a=document,r=n(a),l=function(t){this.options=n.extend({},l.DEFAULTS,t||{}),this.$element=null,this.$wechatQr=null,this.pics=null,this.inited=!1,this.active=!1};l.DEFAULTS={sns:["weibo","qq","qzone","tqq","wechat","renren"],title:"\u5206\u4eab\u5230",cancel:"\u53d6\u6d88",closeOnShare:!0,id:s.utils.generateGUID("am-share"),desc:"Hi\uff0c\u5b64\u591c\u89c2\u5929\u8c61\uff0c\u53d1\u73b0\u4e00\u4e2a\u4e0d\u9519\u7684\u897f\u897f\uff0c\u5206\u4eab\u4e00\u4e0b\u4e0b ;-)",via:"Amaze UI",tpl:''},l.SNS={weibo:{title:"\u65b0\u6d6a\u5fae\u535a",url:"http://service.weibo.com/share/share.php",width:620,height:450,icon:"weibo"},qq:{title:"QQ \u597d\u53cb",url:"http://connect.qq.com/widget/shareqq/index.html",icon:"qq"},qzone:{title:"QQ \u7a7a\u95f4",url:"http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey",icon:"star"},tqq:{title:"\u817e\u8baf\u5fae\u535a",url:"http://v.t.qq.com/share/share.php",icon:"tencent-weibo"},wechat:{title:"\u5fae\u4fe1",url:"[qrcode]",icon:"wechat"},renren:{title:"\u4eba\u4eba\u7f51",url:"http://widget.renren.com/dialog/share",icon:"renren"},douban:{title:"\u8c46\u74e3",url:"http://www.douban.com/recommend/",icon:"share-alt"},mail:{title:"\u90ae\u4ef6\u5206\u4eab",url:"mailto:",icon:"envelope-o"},sms:{title:"\u77ed\u4fe1\u5206\u4eab",url:"sms:",icon:"comment"}},l.prototype.render=function(){var t=this.options,e=[],i=encodeURIComponent(a.title),o=encodeURIComponent(a.location),r="?body="+i+o;return t.sns.forEach(function(n,s){if(l.SNS[n]){var a,c=l.SNS[n];c.id=n,a="mail"===n?r+"&subject="+t.desc:"sms"===n?r:"?url="+o+"&title="+i,c.shareUrl=c.url+a,e.push(c)}}),s.template(t.tpl,n.extend({},t,{sns:e}))},l.prototype.init=function(){if(!this.inited){var t=this,e="[data-am-share-to]";r.ready(n.proxy(function(){n("body").append(this.render()),this.$element=n("#"+this.options.id),this.$element.find("[data-am-share-close]").on("click.share.amui",function(){t.close()})},this)),r.on("click.share.amui",e,n.proxy(function(t){var i=n(t.target),s=i.is(e)&&i||i.parent(e),o=s.attr("data-am-share-to");"mail"!==o&&"sms"!==o&&(t.preventDefault(),this.shareTo(o,this.setData(o))),this.close()},this)),this.inited=!0}},l.prototype.open=function(){!this.inited&&this.init(),this.$element&&this.$element.modal("open"),this.$element.trigger("open.share.amui"),this.active=!0},l.prototype.close=function(){this.$element&&this.$element.modal("close"),this.$element.trigger("close.share.amui"),this.active=!1},l.prototype.toggle=function(){this.active?this.close():this.open()},l.prototype.setData=function(t){if(t){var e={url:a.location,title:a.title},i=this.options.desc,n=this.pics||[],s=/^(qzone|qq|tqq)$/;if(s.test(t)&&!n.length){for(var o=a.images,r=0;r
              ');e.attr("id",t);var i=new o({render:"canvas",correctLevel:0,text:a.location.href,width:180,height:180,background:"#fff",foreground:"#000"});e.find(".am-share-wx-qr").html(i),e.appendTo(n("body")),this.$wechatQr=n("#"+t)}this.$wechatQr.modal("open")};var c=new l;r.on("click.share.amui.data-api",'[data-am-toggle="share"]',function(t){t.preventDefault(),c.toggle()}),t.exports=s.share=c},function(t,e,i){function n(t){return t<128?[t]:t<2048?(c0=192+(t>>6),c1=128+(63&t),[c0,c1]):(c0=224+(t>>12),c1=128+(t>>6&63),c2=128+(63&t),[c0,c1,c2])}function s(t){for(var e=[],i=0;i>6),c1=128+(63&t),[c0,c1]):(c0=224+(t>>12),c1=128+(t>>6&63),c2=128+(63&t),[c0,c1,c2])}function s(t){for(var e=[],i=0;i');var i=-1,n=-1,s=-1,o=-1;i=s=Math.floor(this.options.width/t.getModuleCount()),n=o=Math.floor(this.options.height/t.getModuleCount()),s<=0&&(i=t.getModuleCount()<80?2:1),o<=0&&(n=t.getModuleCount()<80?2:1),foreTd='',backTd='',l=t.getModuleCount();for(var a=0;a');for(var r=0;r")}e.push("");var c=document.createElement("span");return c.innerHTML=e.join(""),c.firstChild},d.prototype.createSVG=function(t){for(var e,i,n,s,o=t.getModuleCount(),a=this.options.height/this.options.width,r='',l="',h=' style="stroke-width:0.5;stroke:'+this.options.background+";fill:"+this.options.background+';">',d=0;d=7&&this.setupTypeNumber(!0),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(t,e){for(var i=-1;i<=7;i++)if(!(t+i<=-1||this.moduleCount<=t+i))for(var n=-1;n<=7;n++)e+n<=-1||this.moduleCount<=e+n||(0<=i&&i<=6&&(0==n||6==n)||0<=n&&n<=6&&(0==i||6==i)||2<=i&&i<=4&&2<=n&&n<=4?this.modules[t+i][e+n]=!0:this.modules[t+i][e+n]=!1)},createQrcode:function(){for(var t=0,e=0,i=null,n=0;n<8;n++){this.makeImpl(n);var s=f.getLostPoint(this);(0==n||t>s)&&(t=s,e=n,i=this.modules)}this.modules=i,this.setupTypeInfo(!1,e),this.typeNumber>=7&&this.setupTypeNumber(!1)},setupTimingPattern:function(){for(var t=8;t>i&1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=n,this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=n}},setupTypeInfo:function(t,e){for(var i=p[this.errorCorrectLevel]<<3|e,n=f.getBCHTypeInfo(i),s=0;s<15;s++){var o=!t&&1==(n>>s&1);s<6?this.modules[s][8]=o:s<8?this.modules[s+1][8]=o:this.modules[this.moduleCount-15+s][8]=o;var o=!t&&1==(n>>s&1);s<8?this.modules[8][this.moduleCount-s-1]=o:s<9?this.modules[8][15-s-1+1]=o:this.modules[8][15-s-1]=o}this.modules[this.moduleCount-8][8]=!t},createData:function(){var t=new r,e=this.typeNumber>9?16:8;t.put(4,4),t.put(this.utf8bytes.length,e);for(var i=0,n=this.utf8bytes.length;i=8*this.totalDataCount)break;if(t.put(o.PAD0,8),t.length>=8*this.totalDataCount)break;t.put(o.PAD1,8)}return this.createBytes(t)},createBytes:function(t){for(var e=0,i=0,n=0,s=this.rsBlock.length/3,o=new Array,r=0;r=0?b.get(T):0}}for(var x=new Array(this.totalDataCount),C=0,r=0;r0;a-=2)for(6==a&&a--;;){for(var r=0;r<2;r++)if(null==this.modules[n][a-r]){var l=!1;o>>s&1));var c=f.getMask(e,n,a-r);c&&(l=!l),this.modules[n][a-r]=l,s--,s==-1&&(o++,s=7)}if(n+=i,n<0||this.moduleCount<=n){n-=i,i=-i;break}}}},o.PAD0=236,o.PAD1=17;for(var p=[1,0,3,2],m={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},f={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(t){for(var e=t<<10;f.getBCHDigit(e)-f.getBCHDigit(f.G15)>=0;)e^=f.G15<=0;)e^=f.G18<>>=1;return e},getPatternPosition:function(t){return f.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,i){switch(t){case m.PATTERN000:return(e+i)%2==0;case m.PATTERN001:return e%2==0;case m.PATTERN010:return i%3==0;case m.PATTERN011:return(e+i)%3==0;case m.PATTERN100:return(Math.floor(e/2)+Math.floor(i/3))%2==0;case m.PATTERN101:return e*i%2+e*i%3==0;case m.PATTERN110:return(e*i%2+e*i%3)%2==0;case m.PATTERN111:return(e*i%3+(e+i)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new a([1],0),i=0;i3&&t.modules[s][r-1]&&t.modules[s][r-2]&&t.modules[s][r-3]&&t.modules[s][r-4]&&(i+=40)),s=5&&(i+=3+o-5),o=1),l&&n++}for(var r=0;r3&&t.modules[s-1][r]&&t.modules[s-2][r]&&t.modules[s-3][r]&&t.modules[s-4][r]&&(i+=40)), +a^l?o++:(a=l,o>=5&&(i+=3+o-5),o=1)}var u=Math.abs(100*n/e/e-50)/5;return i+=10*u}},v={glog:function(t){if(t<1)throw new Error("glog("+t+")");return v.LOG_TABLE[t]},gexp:function(t){for(;t<0;)t+=255;for(;t>=256;)t-=255;return v.EXP_TABLE[t]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},g=0;g<8;g++)v.EXP_TABLE[g]=1<=i;){for(var o=v.glog(n[0])-v.glog(t.get(0)),s=0;s9?2:1;if(this.utf8bytes.length+r>>7-t%8&1},put:function(t,e){for(var i=0;i>>e-i-1&1)},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},o.prototype={constructor:o,getModuleCount:function(){return this.moduleCount},make:function(){this.getRightType(),this.dataCache=this.createData(),this.createQrcode()},makeImpl:function(t){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var e=0;e=7&&this.setupTypeNumber(!0),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(t,e){for(var i=-1;i<=7;i++)if(!(t+i<=-1||this.moduleCount<=t+i))for(var n=-1;n<=7;n++)e+n<=-1||this.moduleCount<=e+n||(0<=i&&i<=6&&(0==n||6==n)||0<=n&&n<=6&&(0==i||6==i)||2<=i&&i<=4&&2<=n&&n<=4?this.modules[t+i][e+n]=!0:this.modules[t+i][e+n]=!1)},createQrcode:function(){for(var t=0,e=0,i=null,n=0;n<8;n++){this.makeImpl(n);var s=f.getLostPoint(this);(0==n||t>s)&&(t=s,e=n,i=this.modules)}this.modules=i,this.setupTypeInfo(!1,e),this.typeNumber>=7&&this.setupTypeNumber(!1)},setupTimingPattern:function(){for(var t=8;t>i&1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=n,this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=n}},setupTypeInfo:function(t,e){for(var i=p[this.errorCorrectLevel]<<3|e,n=f.getBCHTypeInfo(i),s=0;s<15;s++){var o=!t&&1==(n>>s&1);s<6?this.modules[s][8]=o:s<8?this.modules[s+1][8]=o:this.modules[this.moduleCount-15+s][8]=o;var o=!t&&1==(n>>s&1);s<8?this.modules[8][this.moduleCount-s-1]=o:s<9?this.modules[8][15-s-1+1]=o:this.modules[8][15-s-1]=o}this.modules[this.moduleCount-8][8]=!t},createData:function(){var t=new r,e=this.typeNumber>9?16:8;t.put(4,4),t.put(this.utf8bytes.length,e);for(var i=0,n=this.utf8bytes.length;i=8*this.totalDataCount)break;if(t.put(o.PAD0,8),t.length>=8*this.totalDataCount)break;t.put(o.PAD1,8)}return this.createBytes(t)},createBytes:function(t){for(var e=0,i=0,n=0,s=this.rsBlock.length/3,o=new Array,r=0;r=0?b.get(T):0}}for(var x=new Array(this.totalDataCount),C=0,r=0;r0;a-=2)for(6==a&&a--;;){for(var r=0;r<2;r++)if(null==this.modules[n][a-r]){var l=!1;o>>s&1));var c=f.getMask(e,n,a-r);c&&(l=!l),this.modules[n][a-r]=l,s--,s==-1&&(o++,s=7)}if(n+=i,n<0||this.moduleCount<=n){n-=i,i=-i;break}}}},o.PAD0=236,o.PAD1=17;for(var p=[1,0,3,2],m={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},f={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(t){for(var e=t<<10;f.getBCHDigit(e)-f.getBCHDigit(f.G15)>=0;)e^=f.G15<=0;)e^=f.G18<>>=1;return e},getPatternPosition:function(t){return f.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,i){switch(t){case m.PATTERN000:return(e+i)%2==0;case m.PATTERN001:return e%2==0;case m.PATTERN010:return i%3==0;case m.PATTERN011:return(e+i)%3==0;case m.PATTERN100:return(Math.floor(e/2)+Math.floor(i/3))%2==0;case m.PATTERN101:return e*i%2+e*i%3==0;case m.PATTERN110:return(e*i%2+e*i%3)%2==0;case m.PATTERN111:return(e*i%3+(e+i)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new a([1],0),i=0;i3&&t.modules[s][r-1]&&t.modules[s][r-2]&&t.modules[s][r-3]&&t.modules[s][r-4]&&(i+=40)),s=5&&(i+=3+o-5),o=1),l&&n++}for(var r=0;r3&&t.modules[s-1][r]&&t.modules[s-2][r]&&t.modules[s-3][r]&&t.modules[s-4][r]&&(i+=40)),a^l?o++:(a=l,o>=5&&(i+=3+o-5),o=1)}var u=Math.abs(100*n/e/e-50)/5;return i+=10*u}},v={glog:function(t){if(t<1)throw new Error("glog("+t+")");return v.LOG_TABLE[t]},gexp:function(t){for(;t<0;)t+=255;for(;t>=256;)t-=255;return v.EXP_TABLE[t]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},g=0;g<8;g++)v.EXP_TABLE[g]=1<=i;){for(var o=v.glog(n[0])-v.glog(t.get(0)),s=0;s9?2:1;if(this.utf8bytes.length+r>>7-t%8&1},put:function(t,e){for(var i=0;i>>e-i-1&1)},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},c.fn.qrcode=function(t){return this.each(function(){c(this).append(new d(t))})},t.exports=u.qrcode=d},function(t,e,i){"use strict";var n=i(1),s=i(2),o=function(t,e){var i=this;this.options=n.extend({},o.DEFAULTS,e),this.$element=n(t),this.sticked=null,this.inited=null,this.$holder=void 0,this.$window=n(window).on("scroll.sticky.amui",s.utils.debounce(n.proxy(this.checkPosition,this),10)).on("resize.sticky.amui orientationchange.sticky.amui",s.utils.debounce(function(){i.reset(!0,function(){i.checkPosition()})},50)).on("load.sticky.amui",n.proxy(this.checkPosition,this)),this.offset=this.$element.offset(),this.init()};o.DEFAULTS={top:0,bottom:0,animation:"",className:{sticky:"am-sticky",resetting:"am-sticky-resetting",stickyBtm:"am-sticky-bottom",animationRev:"am-animation-reverse"}},o.prototype.init=function(){var t=this.check();if(!t)return!1;var e=this.$element,i="";n.each(e.css(["marginTop","marginRight","marginBottom","marginLeft"]),function(t,e){return i+=" "+e});var s=n('
              ').css({height:"absolute"!==e.css("position")?e.outerHeight():"","float":"none"!=e.css("float")?e.css("float"):"",margin:i});return this.$holder=e.css("margin",0).wrap(s).parent(),this.inited=1,!0},o.prototype.reset=function(t,e){var i=this.options,n=this.$element,o=i.animation?" am-animation-"+i.animation:"",a=function(){n.css({position:"",top:"",width:"",left:"",margin:0}),n.removeClass([o,i.className.animationRev,i.className.sticky,i.className.resetting].join(" ")),this.animating=!1,this.sticked=!1,this.offset=n.offset(),e&&e()}.bind(this);n.addClass(i.className.resetting),!t&&i.animation&&s.support.animation?(this.animating=!0,n.removeClass(o).one(s.support.animation.end,function(){a()}).width(),n.addClass(o+" "+i.className.animationRev)):a()},o.prototype.check=function(){if(!this.$element.is(":visible"))return!1;var t=this.options.media;if(t)switch(typeof t){case"number":if(window.innerWidththis.$holder.offset().top;!this.sticked&&l?o.addClass(r):this.sticked&&!l&&this.reset(),this.$holder.css({height:o.is(":visible")&&"absolute"!==o.css("position")?o.outerHeight():""}),l&&o.css({top:n,left:this.$holder.offset().left,width:this.$holder.width()}),this.sticked=l},s.plugin("sticky",o),n(window).on("load",function(){n("[data-am-sticky]").sticky()}),t.exports=o},function(t,e,i){"use strict";function n(t){var e,i=Array.prototype.slice.call(arguments,1);return this.each(function(){var n=s(this),a=n.is(".am-tabs")&&n||n.closest(".am-tabs"),r=a.data("amui.tabs"),l=s.extend({},o.utils.parseOptions(n.data("amTabs")),s.isPlainObject(t)&&t);r||a.data("amui.tabs",r=new c(a[0],l)),"string"==typeof t&&("open"===t&&n.is(".am-tabs-nav a")?r.open(n):e="function"==typeof r[t]?r[t].apply(r,i):r[t])}),void 0===e?this:e}var s=i(1),o=i(2),a=i(3),r=o.support.transition,l=o.support.animation,c=function(t,e){this.$element=s(t),this.options=s.extend({},c.DEFAULTS,e||{}),this.transitioning=this.activeIndex=null,this.refresh(),this.init()};c.DEFAULTS={selector:{nav:"> .am-tabs-nav",content:"> .am-tabs-bd",panel:"> .am-tab-panel"},activeClass:"am-active"},c.prototype.refresh=function(){var t=this.options.selector;this.$tabNav=this.$element.find(t.nav),this.$navs=this.$tabNav.find("a"),this.$content=this.$element.find(t.content),this.$tabPanels=this.$content.find(t.panel);var e=this.$tabNav.find("> ."+this.options.activeClass);1!==e.length?this.open(0):this.activeIndex=this.$navs.index(e.children("a"))},c.prototype.init=function(){var t=this,e=this.options;if(this.$element.on("click.tabs.amui",e.selector.nav+" a",function(e){e.preventDefault(),t.open(s(this))}),!e.noSwipe){if(!this.$content.length)return this;var i=new a.Manager(this.$content[0]),n=new a.Swipe({direction:a.DIRECTION_HORIZONTAL});i.add(n),i.on("swipeleft",o.utils.debounce(function(e){e.preventDefault(),t.goTo("next")},100)),i.on("swiperight",o.utils.debounce(function(e){e.preventDefault(),t.goTo("prev")},100)),this._hammer=i}},c.prototype.open=function(t){var e=this.options.activeClass,i="number"==typeof t?t:this.$navs.index(s(t));if(t="number"==typeof t?this.$navs.eq(i):s(t),t&&t.length&&!this.transitioning&&!t.parent("li").hasClass(e)){var n=this.$tabNav,o=t.attr("href"),a=/^#.+$/,r=a.test(o)&&this.$content.find(o)||this.$tabPanels.eq(i),l=n.find("."+e+" a")[0],c=s.Event("open.tabs.amui",{relatedTarget:l});t.trigger(c),c.isDefaultPrevented()||(this.activate(t.closest("li"),n),this.activate(r,this.$content,function(){t.trigger({type:"opened.tabs.amui",relatedTarget:l})}),this.activeIndex=i)}},c.prototype.activate=function(t,e,i){this.transitioning=!0;var n=this.options.activeClass,o=e.find("> ."+n),a=i&&r&&!!o.length;o.removeClass(n+" am-in"),t.addClass(n),a?(t.redraw(),t.addClass("am-in")):t.removeClass("am-fade");var l=s.proxy(function(){i&&i(),this.transitioning=!1},this);a&&!this.$content.is(".am-tabs-bd-ofv")?o.one(r.end,l):l()},c.prototype.goTo=function(t){var e=this.activeIndex,i="next"===t,n=i?"am-animation-right-spring":"am-animation-left-spring";if(i&&e+1>=this.$navs.length||!i&&0===e){var s=this.$tabPanels.eq(e);l&&s.addClass(n).on(l.end,function(){s.removeClass(n)})}else this.open(i?e+1:e-1)},c.prototype.destroy=function(){this.$element.off(".tabs.amui"),a.off(this.$content[0],"swipeleft swiperight"),this._hammer&&this._hammer.destroy(),s.removeData(this.$element,"amui.tabs")},s.fn.tabs=n,o.ready(function(t){s("[data-am-tabs]",t).tabs()}),s(document).on("click.tabs.amui.data-api","[data-am-tabs] .am-tabs-nav a",function(t){t.preventDefault(),n.call(s(this),"open")}),t.exports=o.tabs=c},function(t,e,i){"use strict";var n=i(1),s=i(2),o=function(t,e){this.options=n.extend({},o.DEFAULTS,e),this.$element=n(t),this.init()};o.DEFAULTS={checkboxClass:"am-ucheck-checkbox",radioClass:"am-ucheck-radio",checkboxTpl:'',radioTpl:''},o.prototype.init=function(){var t=this.$element,e=t[0],i=this.options;"checkbox"===e.type?t.addClass(i.checkboxClass).after(i.checkboxTpl):"radio"===e.type&&t.addClass(i.radioClass).after(i.radioTpl)},o.prototype.check=function(){this.$element.prop("checked",!0).trigger("change.ucheck.amui").trigger("checked.ucheck.amui")},o.prototype.uncheck=function(){this.$element.prop("checked",!1).trigger("change").trigger("unchecked.ucheck.amui")},o.prototype.toggle=function(){this.$element.prop("checked",function(t,e){return!e}).trigger("change.ucheck.amui").trigger("toggled.ucheck.amui")},o.prototype.disable=function(){this.$element.prop("disabled",!0).trigger("change.ucheck.amui").trigger("disabled.ucheck.amui")},o.prototype.enable=function(){this.$element.prop("disabled",!1),this.$element.trigger("change.ucheck.amui").trigger("enabled.ucheck.amui")},o.prototype.destroy=function(){this.$element.removeData("amui.ucheck").removeClass(this.options.checkboxClass+" "+this.options.radioClass).next(".am-ucheck-icons").remove().end().trigger("destroyed.ucheck.amui")},s.plugin("uCheck",o,{after:function(){s.support.touch&&this.parent().hover(function(){n(this).addClass("am-nohover")},function(){n(this).removeClass("am-nohover")})}}),s.ready(function(t){n("[data-am-ucheck]",t).uCheck()}),t.exports=o},function(t,e,i){"use strict";var n=i(1),s=i(2),o=function(t,e){this.options=n.extend({},o.DEFAULTS,e),this.options.patterns=n.extend({},o.patterns,this.options.patterns);var i=this.options.locales;!o.validationMessages[i]&&(this.options.locales="zh_CN"),this.$element=n(t),this.init()};o.DEFAULTS={debug:!1,locales:"zh_CN",H5validation:!1,H5inputType:["email","url","number"],patterns:{},patternClassPrefix:"js-pattern-",activeClass:"am-active",inValidClass:"am-field-error",validClass:"am-field-valid",validateOnSubmit:!0,alwaysRevalidate:!1,allFields:":input:not(:submit, :button, :disabled, .am-novalidate)",ignore:":hidden:not([data-am-selected], .am-validate)",customEvents:"validate",keyboardFields:":input:not(:submit, :button, :disabled, .am-novalidate)",keyboardEvents:"focusout, change",activeKeyup:!1,textareaMaxlenthKeyup:!0,pointerFields:'input[type="range"]:not(:disabled, .am-novalidate), input[type="radio"]:not(:disabled, .am-novalidate), input[type="checkbox"]:not(:disabled, .am-novalidate), select:not(:disabled, .am-novalidate), option:not(:disabled, .am-novalidate)',pointerEvents:"click",onValid:function(t){},onInValid:function(t){},markValid:function(t){var e=this.options,i=n(t.field),s=i.closest(".am-form-group");i.addClass(e.validClass).removeClass(e.inValidClass),s.addClass("am-form-success").removeClass("am-form-error"),e.onValid.call(this,t)},markInValid:function(t){var e=this.options,i=n(t.field),s=i.closest(".am-form-group");i.addClass(e.inValidClass+" "+e.activeClass).removeClass(e.validClass),s.addClass("am-form-error").removeClass("am-form-success"),e.onInValid.call(this,t)},validate:function(t){},submit:null},o.VERSION="2.7.2",o.patterns={email:/^((([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/,url:/^(https?|ftp):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/,number:/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/,dateISO:/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,integer:/^-?\d+$/},o.validationMessages={zh_CN:{valueMissing:"\u8bf7\u586b\u5199\uff08\u9009\u62e9\uff09\u6b64\u5b57\u6bb5",customError:{tooShort:"\u81f3\u5c11\u586b\u5199 %s \u4e2a\u5b57\u7b26",checkedOverflow:"\u81f3\u591a\u9009\u62e9 %s \u9879",checkedUnderflow:"\u81f3\u5c11\u9009\u62e9 %s \u9879"},patternMismatch:"\u8bf7\u6309\u7167\u8981\u6c42\u7684\u683c\u5f0f\u586b\u5199",rangeOverflow:"\u8bf7\u586b\u5199\u5c0f\u4e8e\u7b49\u4e8e %s \u7684\u503c",rangeUnderflow:"\u8bf7\u586b\u5199\u5927\u4e8e\u7b49\u4e8e %s \u7684\u503c",stepMismatch:"",tooLong:"\u81f3\u591a\u586b\u5199 %s \u4e2a\u5b57\u7b26",typeMismatch:"\u8bf7\u6309\u7167\u8981\u6c42\u7684\u7c7b\u578b\u586b\u5199"}},o.ERROR_MAP={tooShort:"minlength",checkedOverflow:"maxchecked",checkedUnderflow:"minchecked",rangeOverflow:"max",rangeUnderflow:"min",tooLong:"maxlength"},o.prototype.init=function(){function t(t){var e=t.toString();return e.substring(1,e.length-1)}function e(t,e,a){var r=e.split(","),l=function(t){i.validate(this)};a&&(l=s.utils.debounce(l,a)),n.each(r,function(e,i){o.on(i+".validator.amui",t,l)})}var i=this,o=this.$element,a=this.options;return(!a.H5validation||!s.support.formValidation)&&(o.attr("novalidate","novalidate"),n.each(a.H5inputType,function(e,i){var n=o.find("input[type="+i+"]");n.attr("pattern")||n.is("[class*="+a.patternClassPrefix+"]")||n.attr("pattern",t(a.patterns[i]))}),n.each(a.patterns,function(e,i){var n=o.find("."+a.patternClassPrefix+e);!n.attr("pattern")&&n.attr("pattern",t(i))}),o.on("submit.validator.amui",function(t){if("function"==typeof a.submit)return a.submit.call(i,t);if(a.validateOnSubmit){var e=i.isFormValid();return"boolean"===n.type(e)?e:!!o.data("amui.checked")||(n.when(e).then(function(){o.data("amui.checked",!0).submit()},function(){o.data("amui.checked",!1).find("."+a.inValidClass).eq(0).focus()}),!1)}}),e(":input",a.customEvents),e(a.keyboardFields,a.keyboardEvents),e(a.pointerFields,a.pointerEvents),a.textareaMaxlenthKeyup&&e("textarea[maxlength]","keyup",50),void(a.activeKeyup&&e(".am-active","keyup",50)))},o.prototype.isValid=function(t){var e=n(t),i=this.options;return(void 0===e.data("validity")||i.alwaysRevalidate)&&this.validate(t),e.data("validity")&&e.data("validity").valid},o.prototype.validate=function(t){var e=this,i=this.$element,s=this.options,o=n(t),a=o.data("equalTo");a&&o.attr("pattern","^"+i.find(a).val()+"$");var r=o.attr("pattern")||!1,l=new RegExp(r),c=null,u=null,h=o.is("[type=checkbox]")?(u=i.find('input[name="'+t.name+'"]')).filter(":checked").length:o.is("[type=radio]")?(c=this.$element.find('input[name="'+t.name+'"]')).filter(":checked").length>0:o.val();o=u&&u.length?u.first():o;var d=void 0!==o.attr("required")&&"false"!==o.attr("required"),p=parseInt(o.attr("maxlength"),10),m=parseInt(o.attr("minlength"),10),f=Number(o.attr("min")),v=Number(o.attr("max")),g=this.createValidity({field:o[0],valid:!0});if(s.debug&&window.console&&(console.log("Validate: value -> ["+h+", regex -> ["+l+"], required -> "+d),console.log("Regex test: "+l.test(h)+", Pattern: "+r)),!isNaN(p)&&h.length>p&&(g.valid=!1,g.tooLong=!0),!isNaN(m)&&h.lengthv&&(g.valid=!1,g.rangeOverflow=!0),d&&!h)g.valid=!1,g.valueMissing=!0;else if((u||o.is('select[multiple="multiple"]'))&&h){h=u?h:h.length;var y=parseInt(o.attr("minchecked"),10),w=parseInt(o.attr("maxchecked"),10);!isNaN(y)&&hw&&(g.valid=!1,g.customError="checkedOverflow")}else r&&!l.test(h)&&h&&(g.valid=!1,g.patternMismatch=!0);var b,T=function(t){this.markField(t);var i=n.Event("validated.field.validator.amui");i.validity=t,o.trigger(i).data("validity",t);var s=c||u;return s&&s.not(o).data("validity",t).each(function(){t.field=this,e.markField(t)}),t};if("function"==typeof s.validate&&(b=s.validate.call(this,g)),b){var x=new n.Deferred;return o.data("amui.dfdValidity",x.promise()),n.when(b).always(function(t){x[t.valid?"resolve":"reject"](t),T.call(e,t)})}T.call(this,g)},o.prototype.markField=function(t){var e=this.options,i="mark"+(t.valid?"":"In")+"Valid";e[i]&&e[i].call(this,t)},o.prototype.validateForm=function(){var t=this,e=this.$element,i=this.options,s=e.find(i.allFields).not(i.ignore),o=[],a=!0,r=[],l=n([]),c=[],u=!1;e.trigger("validate.form.validator.amui");var h=s.filter(function(t){var e;if("INPUT"===this.tagName&&"radio"===this.type){if(e=this.name,o[e]===!0)return!1;o[e]=!0; +}return!0});h.each(function(){var i=n(this),s=t.isValid(this),o=i.data("validity");a=!!s&&a,r.push(o),s||(l=l.add(n(this),e));var h=i.data("amui.dfdValidity");if(h)c.push(h),u=!0;else{var d=new n.Deferred;c.push(d.promise()),d[s?"resolve":"reject"](o)}});var d={valid:a,$invalidFields:l,validity:r,promises:c,async:u};return e.trigger("validated.form.validator.amui",d),d},o.prototype.isFormValid=function(){var t=this,e=this.validateForm(),i=function(e){t.$element.trigger(e+".validator.amui")};if(e.async){var s=new n.Deferred;return n.when.apply(null,e.promises).then(function(){s.resolve(),i("valid")},function(){s.reject(),i("invalid")}),s.promise()}if(!e.valid){var o=e.$invalidFields.first();return o.is("[data-am-selected]")&&(o=o.next(".am-selected").find(".am-selected-btn")),o.focus(),i("invalid"),!1}return i("valid"),!0},o.prototype.createValidity=function(t){return n.extend({customError:t.customError||!1,patternMismatch:t.patternMismatch||!1,rangeOverflow:t.rangeOverflow||!1,rangeUnderflow:t.rangeUnderflow||!1,stepMismatch:t.stepMismatch||!1,tooLong:t.tooLong||!1,typeMismatch:t.typeMismatch||!1,valid:t.valid||!0,valueMissing:t.valueMissing||!1},t)},o.prototype.getValidationMessage=function(t){var e,i,s=o.validationMessages[this.options.locales],a="%s",r=n(t.field);return(r.is('[type="checkbox"]')||r.is('[type="radio"]'))&&(r=this.$element.find("[name="+r.attr("name")+"]").first()),n.each(t,function(t,i){return"field"===t||"valid"===t?t:"customError"===t&&i?(e=i,s=s.customError,!1):i===!0?(e=t,!1):void 0}),i=s[e]||void 0,i&&o.ERROR_MAP[e]&&(i=i.replace(a,r.attr(o.ERROR_MAP[e])||"\u89c4\u5b9a\u7684")),i},o.prototype.removeMark=function(){this.$element.find(".am-form-success, .am-form-error, ."+this.options.inValidClass+", ."+this.options.validClass).removeClass(["am-form-success","am-form-error",this.options.inValidClass,this.options.validClass].join(" "))},o.prototype.destroy=function(){this.removeMark(),this.$element.removeData("amui.validator amui.checked").off(".validator.amui").find(this.options.allFields).removeData("validity amui.dfdValidity")},s.plugin("validator",o),s.ready(function(t){n("[data-am-validator]",t).validator()}),t.exports=o},function(t,e,i){"use strict";var n=i(2),s={get:function(t){var e,i=encodeURIComponent(t)+"=",n=document.cookie.indexOf(i),s=null;return n>-1&&(e=document.cookie.indexOf(";",n),e==-1&&(e=document.cookie.length),s=decodeURIComponent(document.cookie.substring(n+i.length,e))),s},set:function(t,e,i,n,s,o){var a=encodeURIComponent(t)+"="+encodeURIComponent(e);i instanceof Date&&(a+="; expires="+i.toUTCString()),n&&(a+="; path="+n),s&&(a+="; domain="+s),o&&(a+="; secure"),document.cookie=a},unset:function(t,e,i,n){this.set(t,"",new Date(0),e,i,n)}};n.utils=n.utils||{},t.exports=n.utils.cookie=s},function(t,e,i){"use strict";var n=i(2),s=function(){var t="undefined"!=typeof Element&&"ALLOW_KEYBOARD_INPUT"in Element,e=function(){for(var t,e,i=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n=0,s=i.length,o={};n",{async:!0,type:"text/javascript",src:i,charset:"utf-8"});s("body").append(n)}}var s=i(1),o=i(2);s(window).on("load",n),t.exports=o.duoshuo={VERSION:"2.0.1",init:n}},function(t,e,i){"use strict";function n(){s(".am-figure").each(function(t,e){var i,n=o.utils.parseOptions(s(e).attr("data-am-figure")),a=s(e);if(n.pureview)if("auto"===n.pureview){var r=s.isImgZoomAble(a.find("img")[0]);r&&a.pureview()}else a.addClass("am-figure-zoomable").pureview();i=a.data("amui.pureview"),i&&a.on("click",":not(img)",function(){i.open(0)})})}var s=i(1),o=i(2);i(20),s.isImgZoomAble=function(t){var e=new Image;e.src=t.src;var i=s(t).width()50?"add":"remove")+"Class"]("am-active")}var e=s('[data-am-widget="gotop"]'),i=e.filter(".am-gotop-fixed"),n=s(window);e.data("init")||(e.find("a").on("click",function(t){t.preventDefault(),n.smoothScroll()}),t(),n.on("scroll.gotop.amui",o.utils.debounce(t,100)),e.data("init",!0))}var s=i(1),o=i(2);i(23),s(n),t.exports=o.gotop={VERSION:"4.0.2",init:n}},function(t,e,i){"use strict";function n(){s('[data-am-widget="header"]').each(function(){if(s(this).hasClass("am-header-fixed"))return s("body").addClass("am-with-fixed-header"),!1})}var s=i(1),o=i(2);s(n),t.exports=o.header={VERSION:"2.0.0",init:n}},function(t,e,i){"use strict";var n=i(2);t.exports=n.intro={VERSION:"4.0.2",init:function(){}}},function(t,e,i){"use strict";var n=i(2);t.exports=n.listNews={VERSION:"4.0.0",init:function(){}}},function(t,e,i){function n(t){var e=o(" \ No newline at end of file diff --git a/assets/pages/scripts/refundSta/refundfile/ltrefund.js b/assets/pages/scripts/refundSta/refundfile/ltrefund.js new file mode 100644 index 0000000..106e695 --- /dev/null +++ b/assets/pages/scripts/refundSta/refundfile/ltrefund.js @@ -0,0 +1,377 @@ +var payTypes={"\"[1,2,4,5,6]\"":"所有支付状态","\"[1]\"":"支付宝","\"[2,4]\"":"微信","\"[5,6]\"":"其他"}; +var fun= { + init: function () { + commSelect.area_Pl_LinkedSelect('#parkArea','#parkplnos'); + fun.dateInit(); + //退款状态 +// $.each(payTypes,function(index,item){ +// html += ""; +// }); +// $("#payTypes").html(html); + $('#payTypes').selectpicker('refresh'); + fun.createTabledata(); + fun.queryRefundOrderByRefunFinshTimeAndTerminalSource(); + }, + //退款汇总查询 + queryRefundOrderByRefunFinshTimeAndTerminalSource:function(){ + $("#allRefundFee").text(commonObj.moneyFormatter(0)); + $("#aliRefundFee").text(commonObj.moneyFormatter(0)); + $("#wxRefundFee").text(commonObj.moneyFormatter(0)); + $("#otherRefundFee").text(commonObj.moneyFormatter(0)); + var req = fun.sumGetQueryParam(); + var opt = { + method: 'post', + url: dataUrl.util.queryRefundOrderTotalByCondition(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data =res.data; + $("#allRefundFee").text(commonObj.moneyFormatter(data.allRefundFee)); + $("#aliRefundFee").text(commonObj.moneyFormatter(data.aliRefundFee)); + $("#wxRefundFee").text(commonObj.moneyFormatter(data.wxRefundFee)); + $("#otherRefundFee").text(commonObj.moneyFormatter(data.otherRefundFee)); + + } + + } + }; + sysAjax(opt); + }, + dateInit:function () { + $("#sum_daterange_sta").val(moment().subtract('days',0).format('YYYY-MM-DD')); + $("#sum_daterange_end").val(moment().subtract('days',0).format('YYYY-MM-DD')); + $("#sum_daterange_sta").datetimepicker({ + endDate: moment().subtract('days',0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + $("#sum_daterange_end").datetimepicker({ + endDate: moment().subtract('days',0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + + + }, + createTabledata:function () { + $('#recharge_table').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: sumtableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'rltPayOrderId', + title: ' 支付单号', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'plName', + title: ' 车场名称', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'payType', + title: ' 支付方式', + width: '15%', + align: "left", + formatter:fun.payTypeFormatter + + }, + { + field: 'carNumber', + title: ' 车牌号', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'orderActFee', + title: ' 实收金额', + width: '15%', + align: "left", + formatter:commonObj.moneydetailFormatter + }, + { + field: 'payFinishTime', + title: ' 支付时间', + width: '15%', + align: "left", + formatter:commonObj.timeFormatter + }, + { + field: 'refundTotalFee', + title: ' 退款金额', + width: '15%', + align: "left", + formatter:commonObj.moneydetailFormatter + }, + { + field: 'refundFinishTime', + title: ' 退款完成时间', + width: '15%', + align: "left", + formatter:commonObj.timeFormatter + }, + { + field: 'createEmpName', + title: ' 退款人', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + + ] + }); + }, + //支付方式处理 + payTypeFormatter:function(value){ + if (value==null||value==undefined||value=='') { + return "-"; + } + else if(value == 1){ + return "支付宝"; + } + else if (value == 2){ + return "微信"; + } + else if(value == 3){ + return "银联"; + } + else if(value == 4){ + return "微信"; + } + else if(value == 5){ + return "余额"; + } + else if(value == 6){ + return "现金"; + } + else{ + return "未知"; + } + }, + /*获取查询参数*/ + sumGetQueryParam: function () { + var plNos = $("#parkplnos").val(); + if (plNos.length < 0 || plNos == null || plNos == undefined || plNos == "") { + + plNos=[-1]; + }else{ + plNos = JSON.parse($("#parkplnos").val()); + } +// plNos = fn.getPlNos(); + var beginTime = $("#sum_daterange_sta").val(); + beginTime = beginTime + " 00:00:00"; + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + var endTime = $("#sum_daterange_end").val(); + endTime = endTime + " 23:59:59"; + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + // console.log(beginTime+','+endTime) + var payTypes = JSON.parse($("#payTypes").val()); + if(payTypes == 'ALL' || payTypes==''){ + payTypes =null; + } + var orgId = fn.getOrgId(); + var req = { + plNos:plNos, + refundFinishTimeStart: new Date(beginTime), + refundFinishTimeEnd: new Date(endTime), + orgId:orgId, + payTypes:payTypes + }; + req.sysCode = sysComm.sysCode; + //console.log(req); + return req; + }, + +}; +fun.init(); + + +//查询事件 +documentBindFunc.on('click', "#sum_queryBtn", function () { + fun.queryRefundOrderByRefunFinshTimeAndTerminalSource(); + fun.createTabledata(); +}); + + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function sumtableLoadRequest(params) { + var req = fun.sumGetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + + var opt = { + method: 'post', + url: dataUrl.util.queryRefundOrderByCondition(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#sum_reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#sum_reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#sum_reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#sum_reportBtn").val("导出"); + } + else { + curCount--; + $("#sum_reportBtn").val(curCount + "秒后可再次导出"); + } +} + +//导出excle +documentBindFunc.on('click','#sum_reportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#recharge_table").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recharge_table").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + console.log(parkLot) + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数s + sendMessage(); + + var req = fun.sumGetQueryParam(); + var url = dataUrl.util.exportRefundOrderList(); + var forms = exportIncomeDetailFormforbill(url,req); + forms.submit(); +}); + + +function exportIncomeDetailFormforbill(url,req) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "get"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "refundFinishTimeStart"; + input.value = DateUtils.long2String(req.refundFinishTimeStart,7); + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "refundFinishTimeEnd"; + input2.value = DateUtils.long2String(req.refundFinishTimeEnd,7); + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "plNos"; + input3.value = req.plNos; + form.appendChild(input3); + + var input4 = document.createElement("input"); + input4.name = "orgId"; + input4.value = req.orgId; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "payTypes"; + input5.value = req.payTypes; + form.appendChild(input5); + + var input6 = document.createElement("input"); + input6.name = "sysCode"; + input6.value = req.sysCode; + form.appendChild(input6); + + return form; + +}; diff --git a/assets/pages/scripts/refundSta/refundstaTmp.js b/assets/pages/scripts/refundSta/refundstaTmp.js new file mode 100644 index 0000000..0139227 --- /dev/null +++ b/assets/pages/scripts/refundSta/refundstaTmp.js @@ -0,0 +1,40 @@ + +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
              '+urlarr[i].name+'
              ' + }else{ + _html += '
            8. '+urlarr[i].name+'
            9. ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/ltrefund', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/refundSta/refundfile/ltrefund.css'); + res.load('../../assets/pages/scripts/refundSta/refundfile/ltrefund.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-ltrefund').addClass('ITD-topbar-clickactive'); +}); diff --git a/assets/pages/scripts/refundfile/apprefund/apprefund.css b/assets/pages/scripts/refundfile/apprefund/apprefund.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/refundfile/apprefund/apprefund.css diff --git a/assets/pages/scripts/refundfile/apprefund/apprefund.html b/assets/pages/scripts/refundfile/apprefund/apprefund.html new file mode 100644 index 0000000..a47d1d0 --- /dev/null +++ b/assets/pages/scripts/refundfile/apprefund/apprefund.html @@ -0,0 +1,157 @@ + +
              +
              + +
              +
              +
              + 日期 +
              + +
              + - +
              + +
              + +
              +
              + 手机号 + +
              +
              + +
              +
              +
              +
              查询
              +
              +
              +
              +
              +
              +
              + +
              +
              +
                +
              • +
                  +
                • 退款总金额 (元)
                • +
                • + 0.00 +
                • +
                  +
                +
              • + +
              +
              +
              +
                +
              • +
                  +
                • 微信退款 (元)
                • +
                • + 0.00 +
                • +
                  +
                +
              • +
              +
              +
              +
                +
              • +
                  +
                • 支付宝退款 (元)
                • +
                • + 0.00 +
                • +
                  +
                +
              • +
              +
              +
              +
              +
              +
              +
                +
              • 详细记录
              • +
              • + +
              • +
              +
              +
              +
              +
              + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/refundfile/apprefund/apprefund.js b/assets/pages/scripts/refundfile/apprefund/apprefund.js new file mode 100644 index 0000000..3ba0276 --- /dev/null +++ b/assets/pages/scripts/refundfile/apprefund/apprefund.js @@ -0,0 +1,517 @@ +var refundState={"80":"退款中","70":"退款成功","100":"未退款"}; +var fun= { + init: function () { + fun.dateInit(); + fun.createTabledata(); + fun.refundFun(); + fun.queryRefundOrderByRefunFinshTimeAndTerminalSource(); + fun.recharge_submit(); + }, + recharge_submit:function(){ + documentBindFunc.on('click','#recharge_submit',function () { + var payorderId =$("#payorderId").val(); //支付单 + var rltOrderId =$("#rltOrderId").val(); //订单单 + var orderAcctFee = $("#orderAcctFee").val();//支付单实收金额 + var refundTotalFee=$("#tolltor_amount").val();//本次退款金额 + var tolltorsum =$("#tolltorsumValue").val();//账户余额 + + if(refundTotalFee == null || refundTotalFee==''||refundTotalFee==undefined){ + $('#recharge_error').removeClass('display-none').text("退款金额不能为空"); + return false; + + }else if(parseFloat(refundTotalFee) > parseFloat(orderAcctFee)){ + $('#recharge_error').removeClass('display-none').text("退款金额需小于等于充值金额"); + return false; + }else if(parseFloat(refundTotalFee) > parseFloat(tolltorsum)){ + $('#recharge_error').removeClass('display-none').text("退款金额需小于等于账户余额"); + return false; + }else if(payorderId == null || payorderId ==''|| payorderId==undefined){ + $('#recharge_error').removeClass('display-none').text("获取充值支付单失败"); + return false; + }else if(parseFloat(refundTotalFee) =='0'){ + $('#recharge_error').removeClass('display-none').text("退款金额需大于0"); + return false; + }else{ + $('#recharge_error').addClass('display-none'); + var req = { + rltPayOrderId: payorderId, + refundTotalFee:refundTotalFee+'00', + rltOrderId:rltOrderId, + saveOrUpdateFlg:1 + }; + + req.sysCode = sysComm.sysCode; + + var opt = { + method: 'post', + url: dataUrl.util.saveOrUpdateOrderRefund(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data =res.data; + if(data){ + $('#recharge_table').bootstrapTable('refresh'); + $('#refund_rechargemodel').modal('hide'); + }else{ + $('#recharge_error').removeClass('display-none').text("退款失败"); + return false; + } + } + + } + }; + sysAjax(opt); + }//else + }); + }, + //退款汇总查询 + queryRefundOrderByRefunFinshTimeAndTerminalSource:function(){ + var reqQuery = fun.sumGetQueryParam(); + var terminalSourceIds =[]; + terminalSourceIds.push(1);//用户充值 + var req = { + beginTime: new Date(reqQuery.beginTime), + endTime:new Date(reqQuery.endTime), + orgId:reqQuery.orgId, + terminalSourceIds:terminalSourceIds + }; + + req.sysCode = sysComm.sysCode; + + var opt = { + method: 'post', + url: dataUrl.util.queryRefundOrderByRefunTerminalSource(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data =res.data; + $.each(data,function(index,item){ + if(item.payType=='0'){ + $("#all_totalFee").text(commonObj.moneyFormatter(item.refundTotalFee)); + }else if(item.payType=='1'){ + $("#all_zfbFee").text(commonObj.moneyFormatter(item.refundTotalFee)); + }else{ + $("#all_wxFee").text(commonObj.moneyFormatter(item.refundTotalFee)); + } + }); + } + + } + }; + sysAjax(opt); + }, + //.退款弹出框 + refundFun:function(){ + //充值 弹窗 + documentBindFunc.on('click','.changeMsgRefund',function () { + var custId = $(this).attr("data-custid"); + var payorderId = $(this).attr("data-payorderid"); + var userPhone = $(this).attr("data-userPhone"); + console.log(userPhone) + debugger + var orderAcctFee = parseFloat($(this).attr("data-orderactfee")); + var rltOrderId = $(this).attr("data-rltOrderId"); + if(userPhone===null||userPhone===undefined||userPhone===''||userPhone==='null'){ + userPhone = '-'; + } + + $("#tolltorNum").text(userPhone); + $("#tolltor_amount").val(orderAcctFee); + $("#payorderId").val(""); + $("#payorderId").val(payorderId); + $("#orderAcctFee").val(""); + $("#orderAcctFee").val(orderAcctFee); + $("#rltOrderId").val(""); + $("#rltOrderId").val(rltOrderId); + + var custIds=[]; + var acctTypeList=[]; + custIds.push(custId); + acctTypeList.push(1); + var req = { + custIds:custIds, + acctTypeList:acctTypeList + }; + + req.sysCode = sysComm.sysCode; + + var opt = { + method: 'post', + url: dataUrl.util.queryAcctPersonByCustIdAndAcctType(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.errCode == 'BIZ_SUCCESS') { + var data= res.data; + console.log(data.acctBalance) + if(data.acctBalance===null||data.acctBalance===undefined||data.acctBalance===''){ + $("#tolltorsum").text('-'); + } + else{ + $("#tolltorsum").text(commonObj.moneyFormatter(data.acctBalance)+" 元"); + $("#tolltorsumValue").val(); + $("#tolltorsumValue").val(commonObj.moneyFormatter(data.acctBalance)); + } + $('#refund_rechargemodel').modal('show'); + }else{ + console.log('获取账户余额失败'); + } + + } + }; + sysAjax(opt); + + + }); + }, + dateInit:function () { + $("#sum_daterange_sta").val(moment().subtract('days',0).format('YYYY-MM-DD')); + $("#sum_daterange_end").val(moment().subtract('days',0).format('YYYY-MM-DD')); + $("#sum_daterange_sta").datetimepicker({ + endDate: moment().subtract('days',0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + $("#sum_daterange_end").datetimepicker({ + endDate: moment().subtract('days',0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + //退款状态 + var html=""; + $.each(refundState,function(index,item){ + + html += ""; + + + }); + $("#refundID").html(html); + $("#refundID").selectpicker('refresh'); + + }, + createTabledata:function () { + $('#recharge_table').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: sumtableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'phoneNum', + title: ' 手机号', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'payType', + title: ' 充值类型', + width: '15%', + align: "left", + formatter: fun.chargeTypeFormatter + }, + { + field: 'orderActFee', + title: ' 充值金额', + width: '15%', + align: "left", + formatter:commonObj.moneyFormatter + + }, + { + field: 'payFinishTime', + title: ' 充值时间', + width: '15%', + align: "left", + formatter:commonObj.timeFormatter + }, + { + field: 'refundTotalFee', + title: ' 退款金额', + width: '15%', + align: "left", + formatter:commonObj.moneydetailFormatter + }, + { + field: 'refundFinishTime', + title: ' 退款时间', + width: '15%', + align: "left", + formatter:commonObj.timeFormatter + }, + { + field: 'refundState', + title: ' 退款状态', + width: '15%', + align: "left", + formatter:function(value, row, index){ + if (value==null||value==undefined||value=='') { + return "-"; + } else { + return refundState[value]; + } + } + }, + {field: '', title: '操作', width: '15%', align: 'left', + formatter:function(value, row, index){ + if(row.refundState==null || row.refundState==undefined || row.refundState ==''){ + return ""; + }else if(row.refundState=='100'){ + var operStr ='退款'; + + return operStr; + }else{ + return ""; + } + + }, + } + + + ] + }); + }, + /*获取查询参数*/ + sumGetQueryParam: function () { + var beginTime = $("#sum_daterange_sta").val(); + beginTime = beginTime + " 00:00:00"; + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + var endTime = $("#sum_daterange_end").val(); + endTime = endTime + " 23:59:59"; + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + // console.log(beginTime+','+endTime) + var userPhone = $("#phone_Number").val(); + var refundState = $("#refundID").val(); + if(refundState == 'ALL'){ + refundState =null; + } + var orgId = fn.getOrgId(); + var req = { + userPhone:userPhone, + beginTime: new Date(beginTime), + endTime: new Date(endTime), + orgId:orgId, + refundState:refundState + }; + //console.log(req); + return req; + }, + + //账户类型 + acctTypeFormatter: function (value) { + // console.log(typeof value) + if (value == 1) { + return "账户余额"; + } else if(value == 7){ + return "充值账户"; + }else { + return '-'; + } + }, + //支付类型 + chargeTypeFormatter: function (value) { + // console.log(typeof value) + if (value == 1) { + return "支付宝"; + } else if(value == 2){ + return "微信"; + }else { + return '-'; + } + } +}; +fun.init(); + + +//查询事件 +documentBindFunc.on('click', "#sum_queryBtn", function () { + fun.queryRefundOrderByRefunFinshTimeAndTerminalSource(); + fun.createTabledata(); +}); + + +//用户只能输入正数与小数 +function checkInputText(obj){ + obj.value = obj.value.replace(/[^\d.]/g,"");//先把非数字的都替换掉,除了数字和. + obj.value = obj.value.replace(/\.{2,}/g,".");//保证只有出现一个.而没有多个. + obj.value = obj.value.replace(/^\./g,"");//必须保证第一个为数字而不是. + obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");//保证.只出现一次,而不能出现两次以上 + obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数 +} + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function sumtableLoadRequest(params) { + var req = fun.sumGetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + + var opt = { + method: 'post', + url: dataUrl.util.queryUserRechargeRefundForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#sum_reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#sum_reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#sum_reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#sum_reportBtn").val("导出"); + } + else { + curCount--; + $("#sum_reportBtn").val(curCount + "秒后可再次导出"); + } +} + +//导出excle +documentBindFunc.on('click','#sum_reportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#recharge_table").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recharge_table").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + console.log(parkLot) + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数s + sendMessage(); + + var req = fun.sumGetQueryParam(); + var url = dataUrl.util.excleImportRefundOrder(); + var forms = exportIncomeDetailFormforbill(url,req); + forms.submit(); +}); + + +function exportIncomeDetailFormforbill(url,req) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "get"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "beginTime"; + input.value = new Date(req.beginTime); + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endTime"; + input2.value = new Date(req.endTime); + form.appendChild(input2); + + var input3 = document.createElement("input"); + //input2.type = "hidden"; + input3.name = "userPhone"; + input3.value = req.userPhone; + form.appendChild(input3); + + var input4 = document.createElement("input"); + input4.name = "orgId"; + input4.value = req.orgId; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "refundState"; + input5.value = req.refundState; + form.appendChild(input5); + + return form; + +}; diff --git a/assets/pages/scripts/refundfile/ltred/ltrefund.css b/assets/pages/scripts/refundfile/ltred/ltrefund.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/refundfile/ltred/ltrefund.css diff --git a/assets/pages/scripts/refundfile/ltred/ltrefund.html b/assets/pages/scripts/refundfile/ltred/ltrefund.html new file mode 100644 index 0000000..940d714 --- /dev/null +++ b/assets/pages/scripts/refundfile/ltred/ltrefund.html @@ -0,0 +1,140 @@ + +
              +
              + +
              +
              +
              + +
              +
              + +
              +
              + 退款时间 +
              + +
              + - +
              + +
              +
              + +
              +
              +
              查询
              +
              +
              +
              +
              +
              + +
              +
              +
              +
              +
              + +
              +
              +
                +
              • +
                  +
                • 退款总金额 (元)
                • +
                • + 0.00 +
                • +
                  +
                +
              • + +
              +
              +
              +
                +
              • +
                  +
                • 微信退款 (元)
                • +
                • + 0.00 +
                • +
                  +
                +
              • +
              +
              +
              +
                +
              • +
                  +
                • 支付宝退款 (元)
                • +
                • + 0.00 +
                • +
                  +
                +
              • +
              +
              +
              +
                +
              • +
                  +
                • 其他退款 (元)
                • +
                • + 0.00 +
                • +
                  +
                +
              • +
              +
              +
              +
              +
              +
              +
                +
              • 详细记录
              • +
              • + +
              • +
              +
              +
              +
              +
              + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/refundfile/ltred/ltrefund.js b/assets/pages/scripts/refundfile/ltred/ltrefund.js new file mode 100644 index 0000000..106e695 --- /dev/null +++ b/assets/pages/scripts/refundfile/ltred/ltrefund.js @@ -0,0 +1,377 @@ +var payTypes={"\"[1,2,4,5,6]\"":"所有支付状态","\"[1]\"":"支付宝","\"[2,4]\"":"微信","\"[5,6]\"":"其他"}; +var fun= { + init: function () { + commSelect.area_Pl_LinkedSelect('#parkArea','#parkplnos'); + fun.dateInit(); + //退款状态 +// $.each(payTypes,function(index,item){ +// html += ""; +// }); +// $("#payTypes").html(html); + $('#payTypes').selectpicker('refresh'); + fun.createTabledata(); + fun.queryRefundOrderByRefunFinshTimeAndTerminalSource(); + }, + //退款汇总查询 + queryRefundOrderByRefunFinshTimeAndTerminalSource:function(){ + $("#allRefundFee").text(commonObj.moneyFormatter(0)); + $("#aliRefundFee").text(commonObj.moneyFormatter(0)); + $("#wxRefundFee").text(commonObj.moneyFormatter(0)); + $("#otherRefundFee").text(commonObj.moneyFormatter(0)); + var req = fun.sumGetQueryParam(); + var opt = { + method: 'post', + url: dataUrl.util.queryRefundOrderTotalByCondition(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data =res.data; + $("#allRefundFee").text(commonObj.moneyFormatter(data.allRefundFee)); + $("#aliRefundFee").text(commonObj.moneyFormatter(data.aliRefundFee)); + $("#wxRefundFee").text(commonObj.moneyFormatter(data.wxRefundFee)); + $("#otherRefundFee").text(commonObj.moneyFormatter(data.otherRefundFee)); + + } + + } + }; + sysAjax(opt); + }, + dateInit:function () { + $("#sum_daterange_sta").val(moment().subtract('days',0).format('YYYY-MM-DD')); + $("#sum_daterange_end").val(moment().subtract('days',0).format('YYYY-MM-DD')); + $("#sum_daterange_sta").datetimepicker({ + endDate: moment().subtract('days',0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + $("#sum_daterange_end").datetimepicker({ + endDate: moment().subtract('days',0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + + + }, + createTabledata:function () { + $('#recharge_table').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: sumtableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'rltPayOrderId', + title: ' 支付单号', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'plName', + title: ' 车场名称', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'payType', + title: ' 支付方式', + width: '15%', + align: "left", + formatter:fun.payTypeFormatter + + }, + { + field: 'carNumber', + title: ' 车牌号', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'orderActFee', + title: ' 实收金额', + width: '15%', + align: "left", + formatter:commonObj.moneydetailFormatter + }, + { + field: 'payFinishTime', + title: ' 支付时间', + width: '15%', + align: "left", + formatter:commonObj.timeFormatter + }, + { + field: 'refundTotalFee', + title: ' 退款金额', + width: '15%', + align: "left", + formatter:commonObj.moneydetailFormatter + }, + { + field: 'refundFinishTime', + title: ' 退款完成时间', + width: '15%', + align: "left", + formatter:commonObj.timeFormatter + }, + { + field: 'createEmpName', + title: ' 退款人', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + + ] + }); + }, + //支付方式处理 + payTypeFormatter:function(value){ + if (value==null||value==undefined||value=='') { + return "-"; + } + else if(value == 1){ + return "支付宝"; + } + else if (value == 2){ + return "微信"; + } + else if(value == 3){ + return "银联"; + } + else if(value == 4){ + return "微信"; + } + else if(value == 5){ + return "余额"; + } + else if(value == 6){ + return "现金"; + } + else{ + return "未知"; + } + }, + /*获取查询参数*/ + sumGetQueryParam: function () { + var plNos = $("#parkplnos").val(); + if (plNos.length < 0 || plNos == null || plNos == undefined || plNos == "") { + + plNos=[-1]; + }else{ + plNos = JSON.parse($("#parkplnos").val()); + } +// plNos = fn.getPlNos(); + var beginTime = $("#sum_daterange_sta").val(); + beginTime = beginTime + " 00:00:00"; + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + var endTime = $("#sum_daterange_end").val(); + endTime = endTime + " 23:59:59"; + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + // console.log(beginTime+','+endTime) + var payTypes = JSON.parse($("#payTypes").val()); + if(payTypes == 'ALL' || payTypes==''){ + payTypes =null; + } + var orgId = fn.getOrgId(); + var req = { + plNos:plNos, + refundFinishTimeStart: new Date(beginTime), + refundFinishTimeEnd: new Date(endTime), + orgId:orgId, + payTypes:payTypes + }; + req.sysCode = sysComm.sysCode; + //console.log(req); + return req; + }, + +}; +fun.init(); + + +//查询事件 +documentBindFunc.on('click', "#sum_queryBtn", function () { + fun.queryRefundOrderByRefunFinshTimeAndTerminalSource(); + fun.createTabledata(); +}); + + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function sumtableLoadRequest(params) { + var req = fun.sumGetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + + var opt = { + method: 'post', + url: dataUrl.util.queryRefundOrderByCondition(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#sum_reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#sum_reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#sum_reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#sum_reportBtn").val("导出"); + } + else { + curCount--; + $("#sum_reportBtn").val(curCount + "秒后可再次导出"); + } +} + +//导出excle +documentBindFunc.on('click','#sum_reportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#recharge_table").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recharge_table").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + console.log(parkLot) + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数s + sendMessage(); + + var req = fun.sumGetQueryParam(); + var url = dataUrl.util.exportRefundOrderList(); + var forms = exportIncomeDetailFormforbill(url,req); + forms.submit(); +}); + + +function exportIncomeDetailFormforbill(url,req) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "get"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "refundFinishTimeStart"; + input.value = DateUtils.long2String(req.refundFinishTimeStart,7); + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "refundFinishTimeEnd"; + input2.value = DateUtils.long2String(req.refundFinishTimeEnd,7); + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "plNos"; + input3.value = req.plNos; + form.appendChild(input3); + + var input4 = document.createElement("input"); + input4.name = "orgId"; + input4.value = req.orgId; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "payTypes"; + input5.value = req.payTypes; + form.appendChild(input5); + + var input6 = document.createElement("input"); + input6.name = "sysCode"; + input6.value = req.sysCode; + form.appendChild(input6); + + return form; + +}; diff --git a/assets/pages/scripts/refundfile/lttk/temprefund.css b/assets/pages/scripts/refundfile/lttk/temprefund.css new file mode 100644 index 0000000..855b4a9 --- /dev/null +++ b/assets/pages/scripts/refundfile/lttk/temprefund.css @@ -0,0 +1,294 @@ +.parkmanage-input78{ + width: 100%; + height: 34px; + line-height: 34px; +} +/*支出明细 弹窗 sta*/ +/*返回按钮*/ +.returnLastbtn{ + cursor: pointer; + width: 60px; + height: 24px; + text-align: center; + line-height: 22px; + background: rgba(97,181,220,1) !important; + color: #fff !important; + border: 1px solid rgba(97,181,220,1) !important; + border-radius: 4px!important; + box-sizing: border-box; +} +.showMaxwidth{ + width: 590px; + margin: 0 auto; +} +.handle_left{ + width:228px; + height:92px; + background:rgba(255,255,255,1); + box-shadow:0px 1px 6px 0px rgba(192,199,202,0.5); + border-radius:4px !important; +} +.handle_lbg{ + background: url("../../../img/recordspaylico.png") no-repeat; + width: 44px; + height: 44px; + margin-left: 19px; + margin-top: 27px; +} +.handle_ltxt,.handle_rtxt{ + width:25px; + height:50px; + font-size:12px; + margin-top:27px; + margin-left: 10px; + font-family:MicrosoftYaHei; + font-weight:400; + color:rgba(0,0,0,.7); +} +.handle_ltop,.handle_rtop{ + width:25px; + height:13px; + font-size:12px; + margin-bottom: 15px; +} +.handle_lmoney{ + width: 120px; + margin-top: 22px; + margin-left: 8px; + height: 54px; + font-size: 18px; + font-family: MicrosoftYaHei; + font-weight: 400; +} +.handle_lmoneytop,.handle_rmoneytop{ + height: 22px; + margin-bottom: 6px; +} +.handle_right{ + width:329px; + height:92px; + background:rgba(255,255,255,1); + box-shadow:0px 1px 6px 0px rgba(192,199,202,0.5); + border-radius:4px !important; +} +.handle_rbg{ + background: url("../../../img/recordspayrico.png") no-repeat; + width: 44px; + height: 44px; + margin-left: 19px; + margin-top: 27px; +} +.handle_rmoney{ + width: 90px; + margin-top: 22px; + margin-left: 8px; + height: 54px; + font-size: 18px; + font-family: MicrosoftYaHei; + font-weight: 400; + color:rgba(0,0,0,.7); +} +/*住处明细 列表 sta*/ +.records_detail{ + /*max-height: 400px;*/ + /*overflow-y: auto;*/ + width: 590px; + /*margin-left: 38px;*/ +} +.detail_cont{ + height: 96px; + width: 100%; +} +/*成功 icon*/ +.detail_trueIco{ + background: url("../../../img/recordsPassico.png") no-repeat; + width: 20px; + height: 20px; + margin-top: 30px; +} +/*失败 icon*/ +.detail_falseIco{ + background: url("../../../img/recordsdefeatico.png") no-repeat; + width: 20px; + height: 20px; + margin-top: 30px; +} +/*上 线*/ +.detail_linetop{ + bottom: 20px; + left: 9px; + height: 30px; + width: 1px; + border: 1px dashed rgba(203,211,211,0.9); +} +/* 下 线*/ +.detail_line{ + top: 20px; + left: 9px; + height: 45px; + width: 1px; + border: 1px dashed rgba(203,211,211,0.9); +} +.detail_right{ + width:590px; + height:80px; + background:rgba(250,250,250,1); + box-shadow:0px 3px 1px 0px rgba(192,199,202,0.48); +} +.detail_righttime{ + width: 110px; + height: 80px; + background: #DDF1F9; + margin-right: 6px; + padding: 24px 16px; + font-size:14px; + font-family:MicrosoftYaHei; + font-weight:400; + color:rgba(0,0,0,0.8); + line-height:20px; + position: relative; +} +.detail_righttime:after{ + content:""; + width:0; + height:0; + position:absolute; + right:-6px; + top:45px; + border-top:solid 6px transparent; + border-left:solid 6px #DDF1F9; /* 白色小三角形 */ + border-bottom:solid 6px transparent; +} +.detail_rightmsg{ + height: 80px; + width: 385px; +} +.detail_rightmsgtop{ + height: 50px; +} +.detail_rightmsgbot{ + height: 29px; + display: flex; +} +.detail_rightmsgtop,.detail_rightmsgbot{ + width: 100%; + padding: 0 15px; +} +/*微信 icon*/ +.msgwx-ico{ + background: url("../../../img/recordsWXico.png") no-repeat; + width: 25px; + height: 20px; + margin-top: 17px; + margin-right: 10px; +} +/*支付宝 icon*/ +.msgalipay-ico{ + background: url("../../../img/recordsAlipayico.png") no-repeat; + width: 24px; + height: 24px; + margin-top: 13px; + margin-right: 11px; +} +/*现金 icon*/ +.msgxj-ico{ + background: url("../../../img/recordsXJico.png") no-repeat; + width: 23px; + height: 16px; + margin-top: 17px; + margin-right: 12px; +} +/*余额 icon*/ +.msgyy-ico{ + background: url("../../../img/recordsYYico.png") no-repeat; + height: 22px; + width: 22px; + margin-top: 14px; + margin-right: 13px; +} +.detail_rightmsgtopl,.detail_rightmsgtopr{ + font-size: 14px; + line-height: 50px; + color:rgba(0,0,0,0.8); +} +.detail_rightmsgline{ + /*margin-top: 2px;*/ + height: 1px; + width: 382px; + border:1px dashed rgba(203,211,211,.9); +} +.detail_rightmsgbot div{ + height: 28px; + line-height: 28px; + font-size:12px; + font-family:MicrosoftYaHei; + font-weight:400; + color:rgba(0,0,0,.6); + flex: 1; +} +/*停车费 栏*/ +.records_popMsg{ + height: 80px; + padding-top: 5px; +} +/*无支出明细字段样式*/ +.detail_default{ + height: 60px; + line-height: 60px; + text-align: center; +} +/*右侧*/ +.detail_rightoper{ + width: 88px; + height: 100%; +} +.detail_rightoper div{ + width:50px; + height:24px; + line-height: 24px; + border-radius:4px !important; + margin-left: 19px; + text-align: center; + margin-top: 28px; + cursor: pointer; +} +.detail_reviseBtn{ + color: #fff; + background:rgba(244,28,64,1); +} +.detail_drawBtn{ + color: #fff; + background:rgba(75,170,215,1); +} + +/*input radio style*/ +/*单选复选美化*/ +input[type=checkbox], +input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} +input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} \ No newline at end of file diff --git a/assets/pages/scripts/refundfile/lttk/temprefund.html b/assets/pages/scripts/refundfile/lttk/temprefund.html new file mode 100644 index 0000000..0bc7536 --- /dev/null +++ b/assets/pages/scripts/refundfile/lttk/temprefund.html @@ -0,0 +1,349 @@ + +
              +
              +
              +
              +
              +
              + +
              +
              + 时间 +
              + +
              + - +
              + +
              +
              +
              +
              +
              查询
              +
              + +
              +
              + +
              +
              +
              全部
              +
              在场
              +
              离场
              +
              +
              +
              +
              +
              + +
              +
              +
              +
                +
              • 详细记录
              • + +
              +
              +
              +
              +
              + +
              + + + + + + + + + + + + + + + + + + + + diff --git a/assets/pages/scripts/refundfile/lttk/temprefund.js b/assets/pages/scripts/refundfile/lttk/temprefund.js new file mode 100644 index 0000000..45a4939 --- /dev/null +++ b/assets/pages/scripts/refundfile/lttk/temprefund.js @@ -0,0 +1,822 @@ +var fun = { + init: function () { + fun.timeInit(); + fun.createTableData(); + }, + timeInit: function () { + //进场时间初始化 + $('#parkmanage-daterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $('#parkmanage-daterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#parkmanage-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + clearBtn: true, //添加清除按钮,可选值:true/false + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#parkmanage-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + clearBtn: true, //添加清除按钮,可选值:true/false + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //生成表格数据 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 1, + ajax: tableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'carNumber', + title: '车牌号', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
              ' + commonClass.cutString(value, 8) + '
              '; + + }, + }, + {field: 'parkName', title: '车场名称', width: '20%', align: "left"}, + { + field: 'parkInTime', + title: '进场时间', + width: '20%', + align: "left", + formatter: commonObj.timeFormatter + }, + { + field: 'parkOutTime', + title: '出场时间', + width: '20%', + align: "left", + formatter: commonObj.timeFormatter + }, + { + field: 'orderTotalFees', + title: '应收', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'orderActFees', + title: '实收', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + + { + field: '', + title: '操作', + width: '10%', + align: 'left', + formatter: fun.operFormater + } + ] + }); + + }, + /*获取查询参数*/ + getQueryParam: function () { + var parks = fn.getParkLot(); + var plNos = [-1]; + $.each(parks, function (index, item) { + plNos.push(item.code); + }); + /*进场开始时间*/ + var beginInTime = null; + /*进场结束*/ + var endInTime = null; + /*解析时间*/ + var times1 = $('#parkmanage-daterange-btnsta').val(); + var times2 = $('#parkmanage-daterange-btnend').val(); + if (null != times1 && times1.trim().length > 0) { + beginInTime = times1; + } + if (null != times2 && times2.trim().length > 0) { + endInTime = times2; + } + /*车牌号*/ + var carNum = $('#carNumber').val(); + carNum = carNum == null || carNum.length == 0 ? null : carNum.trim(); + var parkStatus = null; + var data_parkState = $('#parkmanage-toptab div.ITD-graynav-topbaractive').data('parkstate'); + if (data_parkState == 'all') { + parkStatus = null; + } + if (data_parkState == 'in') { + parkStatus = JSON.parse('[10]'); + } + if (data_parkState == 'out') { + parkStatus = JSON.parse('[20]'); + } + + var req = { + plNos: plNos, + beginInTime: beginInTime, + endInTime: endInTime, + parkStatus: parkStatus, + carNum: carNum + }; + + return req; + }, + //操作 + operFormater: function (value, row, index) { + var html = '编辑'; + + return html; + }, +} + +fun.init(); +//查询 「」 +documentBindFunc.on('click', "#parkmanage_queryBtn", function () { + fun.createTableData(); +}); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryParkOrderForFinance(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + console.log(res.data); + params.success(res.data); + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + } + } + }; + sysAjax(opt); +} + +//切换 搜索部分 是否生效 +documentBindFunc.on('click', "#parkmanage-toptab div.ITD-graynav-topbar", function () { + + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + //console.log(index); + //切换完后,调用查询表格 + fun.createTableData(); + +}); + +// 编辑 +documentBindFunc.on('click', ".relMsg", function () { + $('.parkingCont').addClass('display-none'); + var orderId = $(this).attr('data-index'); + // 支付明细 + console.log(orderId); + var req = { + orderId: orderId + }; + + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryExpenseRecordByOrderId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + // console.log("支出明细" + JSON.stringify(res.data)); + $('#records_detail').empty(); + + var orderData = res.data.orderParkQueryDTO; + var detailData = res.data.expenseRecordDetailDTOList; + + var totalFee = commonObj.moneyFormatter(orderData.orderTotalFee) + '元'; + var actFee = commonObj.moneyFormatter(orderData.orderActFee) + '元'; + var refundActFee = commonObj.moneyFormatter(orderData.refundActFee) + '元'; + var arrearageFee = commonObj.moneyFormatter(orderData.arrearageFee) + '元'; + var backActFee = commonObj.moneyFormatter(orderData.backActFee) + '元'; + var discountFee = commonObj.moneyFormatter(orderData.orderDicountFee) + '元' + + $('#handle_moneytop').attr('title', totalFee); + $('#handle_moneytop').text(totalFee); + + $('#handle_moneybot').attr('title', actFee); + $('#handle_moneybot').text(actFee); + + $('#handle_rdismoneytop').attr('title', arrearageFee); + $('#handle_rdismoneytop').text(arrearageFee); + + $('#handle_rovermoneybot').attr('title', backActFee); + $('#handle_rovermoneybot').text(backActFee); + + $('#handle_rarrmoneytop').attr('title', discountFee); + $('#handle_rarrmoneytop').text(discountFee); + + $('#handle_rrefmoneybot').attr('title', refundActFee); + $('#handle_rrefmoneybot').text(refundActFee); + + + //遍历 消费明细 + if (null != detailData && detailData.length != 0) { + + //数据长度 + var detailDataNum = detailData.length; + + var html = ''; + $.each(detailData, function (index, item) { + // + var createTime = DateUtils.long2String(item.createTime, 11); + + var payFinishTime = item.payFinishTime == 0 ? '-' : DateUtils.long2String(item.payFinishTime, 11); + //支付方式[字典表:PAY_TYPE]-- -1:未知(创建时还不清楚支付方式)1:支付宝 2:微信 3:银联 + // 4:微信公众号 5:个人账户 6:现金 7:IC卡 + var payType = item.payType; + var payTypeStr; + var payTypeIcon; + switch (payType) { + case null: + payTypeStr = '未支付'; + payTypeIcon = 'msgxj-ico'; + break; + case 1: + payTypeStr = '支付宝'; + payTypeIcon = 'msgalipay-ico'; + break; + case 2: + payTypeStr = '微信'; + payTypeIcon = 'msgwx-ico'; + break; + case 3: + payTypeStr = '银联'; + payTypeIcon = 'msgxj-ico'; + break; + case 4: + payTypeStr = '微信'; + payTypeIcon = 'msgwx-ico'; + break; + case 5: + payTypeStr = '余额'; + payTypeIcon = 'msgyy-ico'; + break; + case 6: + payTypeStr = '现金'; + payTypeIcon = 'msgxj-ico'; + break; + case 7: + payTypeStr = 'IC卡'; + payTypeIcon = 'msgxj-ico'; + break; + default: + payTypeStr = '未知'; + payTypeIcon = 'msgxj-ico'; + } + + var actFee = commonObj.moneyFormatter(item.actFee); + + var terminal = item.terminalSource; + var terminalStr; + //终端来源[字典表:TERMINAL_SOURCE]:1:任你听 2:pda 3:微信公共号 4:云平台,5:道闸', + switch (terminal) { + case null: + terminalStr = '-'; + break; + case 1: + terminalStr = 'APP'; + break; + case 2: + terminalStr = 'PDA'; + break; + case 3: + terminalStr = '微信公众号'; + break; + case 4: + terminalStr = '云平台'; + break; + case 5: + terminalStr = '道闸'; + break; + case 6: + terminalStr = '企业APP'; + break; + case 7: + terminalStr = 'H5支付'; + break; + default: + terminalStr = '未知'; + } + + var status = item.status == null ? '-' : item.status; + var statusStr; + var statusIcon; + //订单状态[字典表:ORDER_STATE]:-50:已取消,10:待核算,20:待支付,30:支付中, + // 40:支付完成,50:已完成,52:欠费逃逸, 53:已补缴 60:退款中 70:退款成功 + switch (status) { + case -50: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 10: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 20: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 30: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 40: + statusStr = '成功'; + statusIcon = 'detail_trueIco'; + break; + case 50: + statusStr = '成功'; + statusIcon = 'detail_trueIco'; + break; + case 52: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 53: + statusStr = '成功'; + statusIcon = 'detail_trueIco'; + break; + case 60: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + break; + case 70: + statusStr = '成功'; + statusIcon = 'detail_trueIco'; + break; + case 80: + statusStr = '正在退款'; + statusIcon = 'detail_falseIco'; + break; + default: + statusStr = '失败'; + statusIcon = 'detail_falseIco'; + } + + + var type = item.type == null ? '-' : item.type; + var typeStr; + var buttonStr; + var buttonClass; + //支付单类型[字典表:PAY_ORDER_TYPE]:-100:停车欠费单,-200:停车退费单,101:停车付款单,102:停车预付单,103:停车补缴单,104:共享车位;201:余额充值单,202:押金充值;301:会员卡购买单,302:会员卡续费 + switch (type) { + case 101: + typeStr = '停车付款'; + buttonStr = '退款'; + buttonClass = 'detail_drawBtn'; + break; + case 102: + typeStr = '停车预付'; + buttonStr = '退款'; + buttonClass = 'detail_drawBtn'; + break; + case 103: + typeStr = '停车补缴'; + buttonStr = '-----'; + buttonClass = ''; + break; + case -100: + typeStr = '停车欠费'; + buttonStr = '修改'; + buttonClass = 'detail_reviseBtn'; + statusStr = '未支付'; + break; + case -200: + typeStr = '停车退费'; + buttonStr = '-----'; + buttonClass = ''; + break; + default: + typeStr = '未知'; + } + if (status == 53) {//已补缴 + typeStr = '欠费已补缴'; + buttonStr = '-----'; + buttonClass = ''; + statusStr = '已补缴'; + } + if (status == -50 || status == 10 || status == 20 || + status == 30 || status == 60 || status == 70) {//失败的或者已经退款的 + buttonStr = '-----'; + buttonClass = ''; + } + var operId = item.operId == null ? '-' : item.operId; + + var operName = item.operName == null ? '-' : item.operName; + +// var lineHtml = ''; +// +// if (detailDataNum != 1) { +// +// if (index == 0) { +// //第一个,只有下线 +// lineHtml = +// '
              '; +// } else if (index == (detailDataNum - 1)) { +// //最后一个,只有上线 +// lineHtml = +// '
              '; +// } else { +// //中间的 上线、下线都有 +// lineHtml = +// '
              ' + +// '
              '; +// } +// } + + html += '
              ' + + '
              ' + + '
              ' + createTime + '
              ' + + '
              ' + + '
              ' + + '
              ' + + '
              ' + + '
              ' + payTypeStr + ':' + actFee + '元
              ' + + '
              ' + + '
              ' + typeStr + '
              ' + + '
              ' + + '
              ' + + '
              ' + + '
              状态:' + statusStr + '
              ' + + '
              渠道:' + terminalStr + '
              ' + + '
              操作人:' + operName + '
              ' + + '
              ' + + '
              ' + + '
              ' + + '
              ' + buttonStr + '
              ' + + '
              ' + + '
              ' + + '
              '; + + + }); + $('#records_detail').append(html); + } else { + var nullhtml = '
              暂无支出明细信息
              '; + $('#records_detail').append(nullhtml); + } + + + //显示 + $('.records_handle').removeClass('display-none'); + } else { + $('#records_alertmodel').modal('show'); + $('.ITD-alertmodel-contentmsg').text('查询订单支出明细失败'); + // 支付明细 + $('.records_handle').addClass('display-none'); + $('.parkingCont').removeClass('display-none'); + fun.createTableData(); + } + } + }; + sysAjax(opt); + + +}); + +//强制离场 弹窗 +documentBindFunc.on('click', '.outMsg', function () { + $('#force_error').addClass('display-none').text(''); + var plType = $(this).attr('data-plType'); + console.log(plType); + $('#park_arrearage_div').hide(); + if (plType == 2) {//封闭停车场不计费 + $('#park_out0').attr('disabled', false);//性别初始化 + $("#outMsg").html("确认强制离场?"); + } else { + $('#park_out0').attr('disabled', false);//性别初始化 + $("#outMsg").html("确认强制离场?"); + } + $('#park_out1').parent().addClass('checked');//性别初始化 + $('#park_out1')[0].checked = true;//性别初始化 + $('#park_out0').parent().removeClass('checked');//性别初始化 + $('#parking_forcemodel').data('pltype', plType); + $('#parking_forcemodel').modal('show'); + var orderId = $(this).attr('data-index'); + + $('#parking_forcemodel').val(orderId); +}); + + +documentBindFunc.on('change', "input:radio[name='park_out']", function () { + var isBilling = $(this).val(); + var pltype = $('#parking_forcemodel').data('pltype'); + $('#park_arrearage').val(0); + if (isBilling == 1 && pltype == 2) { + $('#park_arrearage_div').show(); + + } else { + $('#park_arrearage_div').hide(); + } +}); + +//强制离场 确定 +documentBindFunc.on('click', '#parking_forcesubmit', function () { + //ajax success + var outParkType = $("input[name='park_out']:checked").val(); + var orderId = $('#parking_forcemodel').val(); + var arrearageFee = $('#park_arrearage').val(); + var pltype = $('#parking_forcemodel').data('pltype'); + + //欠费金额默认为0 + arrearageFee = arrearageFee <0?0:arrearageFee; + arrearageFee = arrearageFee*100; + if(outParkType == 1 && pltype == 2 ){ + //如果是计费出场,且为封闭车场的话,修改为3 + outParkType =3; + if(arrearageFee==''||arrearageFee==undefined||arrearageFee==null){ + $('#force_error').removeClass('display-none').text('欠费金额不能为空'); + return false; + } + + } + + + var req = { + orderId: orderId, + outParkType: outParkType, + arrearageFee:arrearageFee + }; + console.log(req); + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.outParkForOrderPark(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + $('#parking_forcemodel').modal('hide'); + + $('.ITD-alertmodel-contentmsg').text('强制出场成功!'); + $('#records_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#records_alertmodel').modal('hide') + }, 2000); + $("#recordtable").bootstrapTable('refresh'); + } else { + $('#parking_forcemodel').modal('hide'); + + $('.ITD-alertmodel-contentmsg').text(res.msg); + $('#records_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#records_alertmodel').modal('hide') + }, 2000); + $("#recordtable").bootstrapTable('refresh'); + } + } + } + sysAjax(opt); + +}); + +// return 返回 +documentBindFunc.on('click', ".returnLastbtn", function () { + // 支付明细 + $('.records_handle').addClass('display-none'); + $('.parkingCont').removeClass('display-none'); + +}); +//欠费 修改 +documentBindFunc.on('click', ".detail_reviseBtn", function () { + // parking_regmodel + $('#parking_regmodel').val(''); + var orderId = $(this).attr('data-orderId'); + var data = $(this).attr('data-row'); + data = JSON.parse(data); + data.orderId = orderId; + console.log(data); + $('#parking_regmodel').val(data); + $('#tolltorsum').text(commonObj.moneyFormatter(data.actFee)); + + $('#recharge_error').addClass('display-none').text(''); + $('#tolltor_amount').val(''); + $('#parking_regmodel').modal('show'); +}); + +//提交 欠费 修改 +documentBindFunc.on('click', "#recharge_submit", function () { + var chargerFee = $('#tolltor_amount').val(); + if (chargerFee == '' || chargerFee == undefined || chargerFee == null || isNaN(chargerFee)) { + $('#recharge_error').removeClass('display-none').text('请输入欠费金额'); + return; + } + /*if(parseFloat(chargerFee)<=0){ + $('#recharge_error').removeClass('display-none').text('修改后金额不能小于0'); + return; + }*/ + $('#recharge_error').addClass('display-none').text(''); + var row = $('#parking_regmodel').val(); + var req = { + orderId: row.rltOrderId, + arrearageFee: chargerFee * 100 + }; + + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.updateArrearageRecordByOrderId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + $('#parking_regmodel').modal('hide'); + $('.ITD-alertmodel-contentmsg').text('修改成功!'); + $('#records_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#records_alertmodel').modal('hide') + }, 2000); + + $(".returnLastbtn").click(); + fun.createTableData(); + } else { + $('#recharge_error').removeClass('display-none').text(res.msg); + } + } + } + sysAjax(opt); +}); +//退款 弹窗 +documentBindFunc.on('click', ".detail_drawBtn", function () { + // parking_regmodel + $('#parking_reimmodel').val(''); + $('#rechargereim_submit').removeAttr('disabled'); + var orderId = $(this).attr('data-orderId'); + var data = $(this).attr('data-row'); + data = JSON.parse(data); + data.orderId = orderId; + console.log(data); + $('#parking_reimmodel').val(data); + $('#reim_error').addClass('display-none').text(''); + $("#tolltorsumreim").text(commonObj.moneyFormatter(data.actFee)); + $('#tolltor_amountreim').val(''); + //查询已经退款的金额 + var req = { + payOrderid: data.rltOrderId, + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryRefundFeeByPayOrderId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + $("#al_tolltorsum").text(commonObj.moneyFormatter(res.data.allRefundFee)); + $('#parking_reimmodel').modal('show'); + } else { + $('#reim_error').removeClass('display-none').text(res.msg); + } + } + } + sysAjax(opt); + +}); + +//提交 退款 +documentBindFunc.on('click', "#rechargereim_submit", function () { + $('#rechargereim_submit').attr('disabled', 'disabled'); + var sumreim = parseFloat($.trim($("#tolltorsumreim").text())); + var al_tolltorsum = parseFloat($.trim($("#al_tolltorsum").text())); + var chargerFee = parseFloat($.trim($('#tolltor_amountreim').val())); + if (chargerFee == '' || chargerFee == undefined || chargerFee == null || isNaN(chargerFee)) { + $('#reim_error').removeClass('display-none').text('请输入大于0的退款金额'); + return; + } + if (chargerFee < 0) { + $('#reim_error').removeClass('display-none').text('退款金额需大于0'); + return; + } + if (chargerFee > (sumreim - al_tolltorsum)) { + $('#reim_error').removeClass('display-none').text('退款金额不能大于支付金额减已退金额'); + return; + } + + $('#reim_error').addClass('display-none').text(''); + var row = $('#parking_reimmodel').val(); + var req = { + payOrderType: row.type, + rltOrderId: row.orderId, + rltPayOrderId: row.rltOrderId, + refundTotalFee: chargerFee * 100, + orderActFee: row.actFee, + orderTotalFee: row.actFee, + terminalSource: 4, + payType: row.payType, + payFinishTime: row.payFinishTime, + appId: 'no_app_id', + saveOrUpdateFlg: 1 + }; + + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.saveUpdateOrderRefund(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + $('#parking_reimmodel').modal('hide'); + $('.ITD-alertmodel-contentmsg').text('退款申请已提交!'); + $('#records_alertmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#records_alertmodel').modal('hide'); + }, 2000); + $(".returnLastbtn").click(); + fun.createTableData(); + } else { + $('#reim_error').removeClass('display-none').text(res.msg); + } + } + } + sysAjax(opt); +}); + + +//用户只能输入正数与小数 +function checkInputText(obj) { + +//先把非数字的都替换掉,除了数字和. + obj.value = obj.value.replace(/[^\d.]/g, ""); + +//保证只有出现一个.而没有多个. + + obj.value = obj.value.replace(/\.{2,}/g, "."); + +//必须保证第一个为数字而不是. + + obj.value = obj.value.replace(/^\./g, ""); + +//保证.只出现一次,而不能出现两次以上 + + obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); + +//只能输入两个小数 + + obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); + + +} + diff --git a/assets/pages/scripts/refundfile/refundTmp.js b/assets/pages/scripts/refundfile/refundTmp.js new file mode 100644 index 0000000..414f498 --- /dev/null +++ b/assets/pages/scripts/refundfile/refundTmp.js @@ -0,0 +1,52 @@ + +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
              '+urlarr[i].name+'
              ' + }else{ + _html += '
            10. '+urlarr[i].name+'
            11. ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/apprefund', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/refundfile/apprefund/apprefund.css'); + res.load('../../assets/pages/scripts/refundfile/apprefund/apprefund.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-apprefund').addClass('ITD-topbar-clickactive'); +}); +R.route('/temprefund', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/refundfile/lttk/temprefund.css'); + res.load('../../assets/pages/scripts/refundfile/lttk/temprefund.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-temprefund').addClass('ITD-topbar-clickactive'); +}); +R.route('/ltrefund', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/refundfile/ltred/ltrefund.css'); + res.load('../../assets/pages/scripts/refundfile/ltred/ltrefund.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-ltrefund').addClass('ITD-topbar-clickactive'); +}); \ No newline at end of file diff --git a/assets/pages/scripts/remsum/appmenuFile/remsum.css b/assets/pages/scripts/remsum/appmenuFile/remsum.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/remsum/appmenuFile/remsum.css diff --git a/assets/pages/scripts/remsum/appmenuFile/remsum.html b/assets/pages/scripts/remsum/appmenuFile/remsum.html new file mode 100644 index 0000000..e9908ac --- /dev/null +++ b/assets/pages/scripts/remsum/appmenuFile/remsum.html @@ -0,0 +1,149 @@ + +
              +
              + + +
              +
              +
              + 日期 +
              + +
              + - +
              + +
              + +
              +
              + +
              + +
              +
              +
              查询
              +
              +
              +
              +
              +
              + 手机号 + +
              + +
              +
              +
              +
              + +
              +
              +
                +
              • +
                  +
                • 总收入 (元)
                • +
                • + 0.00 +
                • +
                  +
                +
              • + +
              +
              +
              +
                +
              • +
                  +
                • 微信收入 (元)
                • +
                • + 0.00 +
                • +
                  +
                +
              • +
              +
              +
              +
                +
              • +
                  +
                • 支付宝收入 (元)
                • +
                • + 0.00 +
                • +
                  +
                +
              • +
              +
              +
              +
                +
              • +
                  +
                • 其他收入 (元)
                • +
                • + 0.00 +
                • +
                  +
                +
              • + +
              +
              +
              +
              +
              +
              +
                +
              • 充值记录
              • +
              • + +
              • +
              +
              +
              +
              +
              + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/remsum/appmenuFile/remsum.js b/assets/pages/scripts/remsum/appmenuFile/remsum.js new file mode 100644 index 0000000..abab770 --- /dev/null +++ b/assets/pages/scripts/remsum/appmenuFile/remsum.js @@ -0,0 +1,490 @@ +var datanum=$('#toll-toptab').attr('data-value'); +var fun= { + init: function () { + fun.dateInit(); + fun.createTabledata(); + fun.createpayTabledata(); + fun.queryEmployeeStatisRequest(); + $('#payType').selectpicker('refresh'); + }, + dateInit:function () { + $("#sum_daterange_sta").val(moment().subtract('days', 0).format('YYYY-MM-DD 00:00:00')); + $("#sum_daterange_end").val(moment().subtract('days', -1).format('YYYY-MM-DD 00:00:00')); + + $("#sum_daterange_sta").datetimepicker({ + weekStart: 1, + autoclose: true, + startView: 2, + minView:1, + forceParse: false, + // minView: 0, + // minuteStep:60,//分钟间隔1分钟 + // showMeridian: 1, + format: 'yyyy-mm-dd hh:00:00', + endDate: moment().subtract('days', 0).format('YYYY-MM-DD 23:59:59'), + language: 'zh-CN', + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }); + $("#sum_daterange_end").datetimepicker({ + weekStart: 1, + autoclose: true, + startView: 2, + forceParse: false, + minView: 1, + // showMeridian: 1, + format: 'yyyy-mm-dd hh:00:00', + endDate: moment().subtract('days', -1).format('YYYY-MM-DD 00:00:00'), + language: 'zh-CN', + clearBtn: true, //添加清除按钮,可选值:true/false + pickerPosition: "bottom-right" + }); + }, + createTabledata:function () { + $('#recharge_table').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: sumtableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'userPhone', + title: ' 手机号', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'acctType', + title: ' 账户类型', + width: '15%', + align: "left", + formatter: fun.acctTypeFormatter + }, + { + field: 'rechargeType', + title: ' 充值类型', + width: '15%', + align: "left", + formatter: fun.chargeTypeFormatter + }, + { + field: 'rechargeFee', + title: ' 充值金额', + width: '15%', + align: "left", + formatter:commonObj.moneyFormatter + + }, + + { + field: 'rechargeBalance', + title: ' 充值后金额', + width: '15%', + align: "left", + formatter:commonObj.moneyFormatter + }, + { + field: 'rechargeTime', + title: ' 充值时间', + width: '15%', + align: "left", + formatter:commonObj.timeFormatter + } + + ] + }); + }, + createpayTabledata:function () { + $('#apppay_table').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: sumtableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'plName', + title: ' 车场名称', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'userPhone', + title: ' 手机号', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'acctType', + title: ' 账户类型', + width: '15%', + align: "left", + formatter: fun.acctTypeFormatter + }, + { + field: 'carNumber', + title: ' 车牌', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'tradeFee', + title: ' 支出费用', + width: '15%', + align: "left", + formatter:commonObj.moneyFormatter + + }, + { + field: 'tradeBalance', + title: ' 支出后余额', + width: '15%', + align: "left", + formatter:commonObj.moneyFormatter + + }, + + { + field: 'berthNo', + title: ' 泊位编号', + width: '15%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'tradeTime', + title: ' 支出时间', + width: '15%', + align: "left", + formatter:commonObj.timeFormatter + } + + ] + }); + }, + /*获取查询参数*/ + sumGetQueryParam: function () { + + beginTime = $("#sum_daterange_sta").val(); + //beginTime = beginTime + " 00:00:00"; + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = $("#sum_daterange_end").val(); + // endTime = endTime + " 23:59:59"; + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + // console.log(beginTime+','+endTime) + userPhone = $("#phone_Number").val(); + var payType = $("#payType").val(); + payTypeList = payType.split(","); + + var req = { + userPhone:userPhone, + startTime: beginTime, + beginTime: beginTime, + endTime:endTime, + payTypeList:payTypeList + }; + //console.log(req); + return req; + }, + + //账户类型 + acctTypeFormatter: function (value) { + // console.log(typeof value) + if (value == 1) { + return "账户余额"; + } else if(value == 7){ + return "充值赠送"; + }else { + return '-'; + } + }, + //支付类型 + chargeTypeFormatter: function (value) { + // console.log(typeof value) + if (value == 1) { + return "支付宝"; + } else if(value == 2){ + return "微信"; + }else if(value == 6){ + return "线下充值"; + }else if(value == 11){ + return "充值卡"; + }else { + return '-'; + } + }, + + queryEmployeeStatisRequest: function () { + var req = fun.sumGetQueryParam(); + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCustRechargeFeeStatic(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + console.log(res.data); + var zfb = 0; + var wx = 0; + var other = 0; + //多条累加 + $.each(res.data.rows,function(index,item){ + zfb += item.zfb; + wx += item.wx; + other += item.other; + }); + /*if(res.data.total == 1){ + zfb = res.data.rows[0].zfb; + wx = res.data.rows[0].wx; + }*/ + $('#all_totalFee').text(commonObj.moneyFormatter(zfb+wx+other)); + $('#all_zfbFee').text(commonObj.moneyFormatter(zfb)); + $('#all_wxFee').text(commonObj.moneyFormatter(wx)); + $('#all_otherFee').text(commonObj.moneyFormatter(other)); + } + } + }; + sysAjax(opt); + }, +}; + +fun.init(); + +//查询事件 +documentBindFunc.on('click', "#sum_queryBtn", function () { + //console.log(index); + if (0 == datanum) { + // console.log(index); + //充值记录 + fun.createTabledata(); + fun.queryEmployeeStatisRequest(); + } else { + //支出记录 + fun.createpayTabledata(); + } +}); + +//切换头部收入topbar +documentBindFunc.on('click', "#toll-toptab div", function () { + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + datanum=$("#toll-toptab").attr('data-value'); + datanum=index; + if(index==0){ + fun.queryEmployeeStatisRequest(); + /** 函数 表格数据 **/ + fun.createTabledata(); + $('#apprecharge_Cont').removeClass('display-none'); + $('#appmsg_card').removeClass('display-none'); + $('#apppay_Cont').addClass('display-none'); + window.clearInterval(InterValObj);//停止计时器 + $("#sum_reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#sum_reportBtn").val("导出"); + + }else{ + /** 函数 表格数据 **/ + fun.createpayTabledata(); + window.clearInterval(InterValObj);//停止计时器 + $('#apprecharge_Cont').addClass('display-none'); + $('#apppay_Cont').removeClass('display-none'); + $('#appmsg_card').addClass('display-none'); + $("#sum_reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#sum_reportBtn").val("导出"); + + } + +}); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function sumtableLoadRequest(params) { + var req = fun.sumGetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var url = dataUrl.util.queryCustRechargeFeeStaticMsg(); + if (datanum==0) { + url = dataUrl.util.queryCustRechargeFeeStaticMsg(); + } else{ + console.log(1) + url = dataUrl.util.queryappAcctPayOutForPage(); + } + var opt = { + method: 'post', + url: url, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#sum_reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#sum_reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#sum_reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#sum_reportBtn").val("导出"); + } + else { + curCount--; + $("#sum_reportBtn").val(curCount + "秒后可再次导出"); + } +} + +//导出excle +documentBindFunc.on('click','#sum_reportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#recharge_table").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recharge_table").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + console.log(parkLot) + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数s + sendMessage(); + + var req = fun.sumGetQueryParam(); + var beginTime = DateUtils.long2String(req.startTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + var url = dataUrl.util.exportappAcctRechargeList(); + var payTypeList = []; + payTypeList = $("#payType").val().split(","); + console.log(beginTime+','+endTime) + var forms = exportIncomeDetailFormforbill(url,beginTime,endTime,req.userPhone,fn.getOrgId(),payTypeList); + forms.submit(); +}); + + +function exportIncomeDetailFormforbill(url,beginTime, endTime,userPhone,orgId,payTypeList) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "get"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "beginTime"; + input.value = beginTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endTime"; + input2.value = endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + //input2.type = "hidden"; + input3.name = "userPhone"; + input3.value = userPhone; + form.appendChild(input3); + + var input4 = document.createElement("input"); + input4.name = "orgId"; + input4.value = orgId; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "payTypeList"; + input5.value = payTypeList; + form.appendChild(input5); + + return form; + +}; diff --git a/assets/pages/scripts/remsum/sumTmp.js b/assets/pages/scripts/remsum/sumTmp.js new file mode 100644 index 0000000..420d770 --- /dev/null +++ b/assets/pages/scripts/remsum/sumTmp.js @@ -0,0 +1,46 @@ + +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
              '+urlarr[i].name+'
              ' + }else{ + _html += '
            12. '+urlarr[i].name+'
            13. ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/remsum', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/remsum/appmenuFile/remsum.css'); + res.load('../../assets/pages/scripts/remsum/appmenuFile/remsum.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-remsum').addClass('ITD-topbar-clickactive'); +}); +R.route('/apprefund', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/remsum/apprefund/apprefund.css'); + res.load('../../assets/pages/scripts/remsum/apprefund/apprefund.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-apprefund').addClass('ITD-topbar-clickactive'); +}); \ No newline at end of file diff --git a/assets/pages/scripts/rulesetFile/analFile/analogbilling.css b/assets/pages/scripts/rulesetFile/analFile/analogbilling.css new file mode 100644 index 0000000..615bfd1 --- /dev/null +++ b/assets/pages/scripts/rulesetFile/analFile/analogbilling.css @@ -0,0 +1,123 @@ +/*公用开始*/ + +.table{ + margin-bottom: 0; +} +/*公用结束*/ +/*搜索css开始。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。*/ +.analog-parking-l { + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.analog-parkinput78{ + width: 78%; + height: 34px; + line-height: 34px; +} +.control-label { + width: 60px; + line-height: 35px; +} +.bootstrap-select.btn-group .dropdown-toggle .filter-option{ + text-overflow: ellipsis; + color: #666; +} +/*.input-group .daterange-bg { + width: 130px; + text-align: left; + background: url(../img/dataicon.png) no-repeat right 0; + background-color: #fff; + padding-right: 40px; +}*/ +/*搜索css结束。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。*/ + + +/*表格css开始。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。*/ +.main_wrap .portlet.light{ + padding-top: 0; + padding-right: 0; +} + +.col_center{ + width: calc(100% - 357px); + width: -webkit-calc(100% - 357px); + width: -moz-calc(100% - 357px); + width: -ms-calc(100% - 357px); + width: -o-calc(100% - 357px); + height: 180px; + overflow-y: scroll; +} +.col_center table thead tr th{ + width: 110px !important; + text-align: center; +} +.col_center table tbody tr td{ + width: 110px !important; + text-align: center; +} +.col_right{ + width: 332px; + height: 175px; + background-color: #fafafa; + margin-left: 25px; + padding-top: 25px; + padding-left: 25px; + box-shadow: 0px 1px 10px 0px rgba(50, 50, 50, 0.2); +} +.col_right_ul{padding-left: 0} +.col_right_ul li{ + float: left; + width: 153px; + margin-bottom: 20px; +} +.col_right_li_title{ + border-left: 2px solid #2abb9b; + font-size: 13px; + padding-left: 10px; + height: 13px; + line-height: 13px; + margin-bottom: 10px; +} +.col_right_li_mon{ + padding-left: 14px; +} +.col_right_li_mon span:nth-of-type(1){ + font-size: 28px; + color: #1f2b3d; +} +.col_right_li_mon span:nth-of-type(2){ + color: #1f2b3d; +} +.col_right_li_title_l{ + border:0; + padding-left: 13px; +} +.col_right_li_mon_ellipsis{ + overflow: hidden; text-overflow:ellipsis; white-space: nowrap; +} +.form-control{ + color: #666 !important; +} + +/*表格css结束。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。*/ + + +/*图例css开始。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。*/ +.echarts_wrap{ + margin-top: 24px; +} +.echarts_wrap_title{ + padding: 5px 10px; + background-color: #1f2b3d; + color: #fff; + width: 110px; + border-radius: 5px!important; +} +.echart_con{ + height: 270px; + width: 100%; +} + +/*图例css结束。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。*/ \ No newline at end of file diff --git a/assets/pages/scripts/rulesetFile/analFile/analogbilling.html b/assets/pages/scripts/rulesetFile/analFile/analogbilling.html new file mode 100644 index 0000000..5953df8 --- /dev/null +++ b/assets/pages/scripts/rulesetFile/analFile/analogbilling.html @@ -0,0 +1,254 @@ + +
              +
              +
              +
              +
              + +
              +
              + +
              +
              + 车牌号 + +
              +
              +
              +
              更多
              +
              +
              +
              查询
              +
              +
              +
              + + + +
              + +
              +
              + +
              +
              +
              +
              + 停车计费标准 +
              +
              +
              +
              + + + + + + + + + + + + + + + + + + + + + + +
              车型 适用日期 单日限价 单次限价 单次免费时长 跨时间段规则
              - - - - - -
              + + + + + + + + + + + + + + + + + + + + + +
              开始时间 结束时间 时长限制 计费类型 费率 单位免费时长
              - - - - - -
              +
              +
              +
                +
              • +
                费用总计
                +
                + 0.00 元 +
                +
              • +
              • +
                停车时长
                +
                + 0.00 分钟 +
                +
              • +
              • +
                车牌号
                +
                + - +
                +
              • +
              • +
                停车场
                +
                + - +
                +
              • +
              +
              +
              +
              + +
              +
              +
              + + +
              +
              +
              +
              + 费用计算明细 +
              +
              +
              +
              +
              +
              +
              + +
              +
              +
              + + + + + diff --git a/assets/pages/scripts/rulesetFile/analFile/analogbilling.js b/assets/pages/scripts/rulesetFile/analFile/analogbilling.js new file mode 100644 index 0000000..80d760f --- /dev/null +++ b/assets/pages/scripts/rulesetFile/analFile/analogbilling.js @@ -0,0 +1,624 @@ +var plNos = []; +(function () { + var mydate = new Date(); + var year = mydate.getFullYear(); //获取当前年份(2位) + + $("#timeinStartDate").val( moment().subtract('days', 2).format('YYYY-MM-DD hh:mm')); + $("#timeinEndDate").val( moment().subtract('days', 0).format('YYYY-MM-DD hh:mm')); + + $("#timeinStartDate").datetimepicker({ + endDate: moment(year+'-12-29').subtract('seconds', 0).format('YYYY-MM-DD hh:mm'), + format: 'yyyy-mm-dd hh:ii', + minView: 0, + minuteStep:1, + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }).on("changeDate", function (ev) { + var startval = moment($("#timeinStartDate").val()).add('days', 0).format('YYYY-MM-DD HH:mm'); + var val = moment($("#timeinStartDate").val()).add('days', 2).format('YYYY-MM-DD HH:mm'); + // console.log(startval+ ' '+val) + $("#timeinEndDate").datetimepicker("setStartDate", startval); + $("#timeinEndDate").datetimepicker("setEndDate", val); + $("#timeinEndDate").val(val) + $('#timeinEndDate').datetimepicker('update'); + $("#timeinEndDate").datetimepicker({ + format: 'yyyy-MM-dd hh:ii', + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + });; + $("#timeinEndDate").datetimepicker({ + startDate: moment().subtract('days', 2).format('YYYY-MM-DD hh:mm'), + endDate: moment().subtract('days', 0).format('YYYY-MM-DD hh:mm'), + format: 'yyyy-mm-dd hh:ii', + autoclose: true, + forceParse: false, + minView: 0, + minuteStep:1, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + + $('#echart_con').css('width',$(window).width()-245+'px'); + var myChart = echarts.init(document.getElementById('echart_con')); + //条件查询 + $(document).on('click', '#queryBtn', function() { + if(!fun.validateParams()){ + return; + }; + fun.initTable(); + + + }); + var fun = { + //初始下拉框 + init:function () { + //初始化停车场下拉框 + fun.initPark(); + //初始化车辆类型下拉框 + fn.getCarType(fun.setCarTypeSelect); + /*if(!fun.validateParams()){ + return; + };*/ + //ajax 下拉框和出场类型后 请求table表格和图例 + + //fun.initEcharts(); + + + }, + validateParams: function(){ + var carNo = $("#carNo").val().trim(); + if(!/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/.test(carNo)||carNo.length<7) { + swal({title:"提示",text:"请输入正确的车牌号!",type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + + var plNosTemp = $("#parkIds").val(); + if(plNosTemp == "" || plNosTemp == null){ + swal({title:"提示",text:"停车场必选!",type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + var carType = $("#carType").val(); + if(carType == "" || carType == null){ + swal({title:"提示",text:"车辆类型必选!",type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + var inTime = $("#timeinStartDate").val(); + if(inTime == "" || inTime == null){ + swal({title:"提示",text:"进场时间必选!",type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + var outTime = $("#timeinEndDate").val(); + if(outTime == "" || outTime == null){ + swal({title:"提示",text:"出场时间必选!",type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + return true; + + }, + //初始化停车场下拉框 + initPark: function () { + var data = fn.getParkLot(); + $("#parkIds").empty(); + var html = ''; + plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } +// var plnosStr = JSON.stringify(plNos); +// html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + $('#parkIds').trigger('change'); + }, + //设置车辆类型下拉框 + setCarTypeSelect: function (datas) { + $('#carType').empty(); + var html = ''; + + $.each(datas, function (index, data) { + html += ""; + }) + + //html = '' + html; + $('#carType').append(html); + $('#carType').selectpicker('refresh'); + + fun.initTable(); + + }, + initBilling:function(data){ + //load parkFee + var divs = $(".col_right_li_mon"); + //费用 + var totalFee = (data.parkFee/100).toFixed(2)+""; + var frontFee = totalFee.substring(0,totalFee.length-3); + var afterFee = totalFee.substring(totalFee.length-3,totalFee.length); + divs.eq(0).find("span").eq(0).text(frontFee); + divs.eq(0).find("span").eq(1).text(afterFee+" 元"); + //停车时长 + var second = parseInt(data.parkDuration); + var duration = formatSeconds(second); + var patrn = /\d+(\.\d+)?/g; + var nums = duration.match(patrn); + divs.eq(1).find("span").eq(0).text(nums[0]); + divs.eq(1).find("span").eq(1).text(duration.substr(nums[0].length,duration.length)); + //车牌号 + divs.eq(2).text(data.carNo); + //停车场 + var parkName = $("#parkIds").find("option:selected").text(); + divs.eq(3).text(parkName); + $(".col_right_li_mon_ellipsis").attr("title",parkName); + var billingLogId = data.billingLogId; + fun.initEcharts(billingLogId); + }, + initTable:function () { + var plNosTemp = $("#parkIds").val(); + plNos = JSON.parse(plNosTemp); + var inTime = $("#timeinStartDate").val()+':00'; + var outTime = $("#timeinEndDate").val()+':00'; + var carType = $("#carType").val(); + var carNo = $("#carNo").val().trim(); + + var req = { + sysCode: sysComm.sysCode, + plNo: plNos[0], + carType:carType, + carNo:carNo, + inTime:new Date(inTime.replace(new RegExp(/-/gm) ,"/")), + outTime:new Date(outTime.replace(new RegExp(/-/gm) ,"/")), + isShowLog:1 + }; + var opt = { + method: 'post', + url: dataUrl.util.queryBillingRuleByPlNoAndCarType(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code=='8888') { + if(res.data.length>0){ + fun.loadTable(res.data); + } + } + else{ + swal({title:"提示",text:res.msg,type:"warning",timer:3000,allowOutsideClick:true}); + return ; + } + } + }; + sysAjax(opt); + var opt2 = { + method: 'post', + url: dataUrl.util.billing(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code=='8888') { + fun.initBilling(res.data); + } + else{ + swal({title:"提示",text:res.msg,type:"warning",timer:3000,allowOutsideClick:true}); + return ; + } + } + }; + sysAjax(opt2); + + }, + loadTable:function(data){ + //load ruleTable + var ruleTable = $("#ruleTable"); + var tableHead = '' + +'' + +' 车型 ' + +' 适用日期 ' + +' 单日限价 ' + +' 单次限价 ' + +' 单次免费时长 ' + +' 跨时间段规则 ' + +'' + +''; + var tableBody = ''; + $.each(data, function (index, item) { + var fristFreeTime = item.fristFreeTime/60; + if(fristFreeTime<=0){ + fristFreeTime = '不限'; + } + tableBody += '' + +' '+fun.carTypeFormatter(item.carType) +' ' + +' '+fun.applyDateTypeFormatter(item.applyDateType) +' ' + +' '+fun.chargeFormatter(item.dayMaxCharge) +' ' + +' '+fun.chargeFormatter(item.maxCharge) +' ' + +' '+fristFreeTime +' 分钟' + +' '+fun.crossTimeRuleTypeFormatter(item.crossTimeRuleType) +' ' + +''; + }); + tableBody+=''; + ruleTable.html(tableHead+tableBody); + //load ruleDetailTable + var ruleDetailTable = $("#ruleDetailTable"); + var tableHead = '' + +'' + +' 开始时间' + +' 结束时间 ' + +' 时长限制 ' + +' 计费类型 ' + +' 费率 ' + +' 单位免费时长 ' + +'' + +''; + var tableBody = ''; + var num = 1; + $.each(data, function (index, item) { + for(var i=0;i<(item.billingRuleConfigs).length;i++){ + var unitFreeTime = item.billingRuleConfigs[i].unitFreeTime/60; + if(unitFreeTime<=0){ + unitFreeTime = '不限'; + }else{ + unitFreeTime += '分钟'; + } + + tableBody += '' + +' '+fun.timeFormatter(item.billingRuleConfigs[i].startTime) +' ' + +' '+fun.timeFormatter(item.billingRuleConfigs[i].endTime) +' ' + +' '+(fun.formatterSecondToHour(item.billingRuleConfigs[i].startBillingTime))+'-'+(fun.formatterSecondToHour(item.billingRuleConfigs[i].endBillingTime)) +'小时 ' + +' '+fun.billingConfigTypeFormatter(item.billingRuleConfigs[i].billingConfigType) +' ' + +' '+fun.chargeFormatter(item.billingRuleConfigs[i].unitRate)+'/'+fun.unitFormatter(item.billingRuleConfigs[i].unit) +' ' + +' '+unitFreeTime+'' + +''; + } + + }); + tableBody+=''; + ruleDetailTable.html(tableHead+tableBody); + + + }, + formatterSecondToHour:function(value){ + if(value == null){ + return ""; + } + return value/60/60; + }, + timeFormatter: function (value) { + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 3); + } + }, + dateFormatter: function (value) { + if (value == null) { + return ""; + } else { + return DateUtils.long2String(value, 1); + } + }, + billingConfigTypeFormatter:function(value){ + var result=""; + if (value == null ) { + return "-"; + } + switch (value) { + case 1: + result = '按时'; + break; + case 2: + result = '按次'; + break; + default: + result = '未知'; + } + return result; + }, + unitFormatter:function(value){ + var result=""; + if (value == null ) { + return "-"; + } + switch (value) { + case 1: + result = '分钟'; + break; + case 2: + result = '15分钟'; + break; + case 3: + result = '30分钟'; + break; + case 4: + result = '60分钟'; + break; + case 5: + result = '次'; + break; + default: + result = '未知'; + } + return result; + }, + carTypeFormatter:function(value){ + var result=""; + if (value == null ) { + return "-"; + } + switch (value) { + case 1: + result = '大型车'; + break; + case 2: + result = '小型车'; + break; + default: + result = '未知'; + } + return result; + }, + applyDateTypeFormatter:function(value){ + var result=""; + if (value == null ) { + return "-"; + } + switch (value) { + case -1: + result = '不限'; + break; + case 1: + result = '工作日'; + break; + case 2: + result = '非工作日'; + break; + default: + result = '未知'; + } + return result; + }, + //分-元 + chargeFormatter:function(value){ + + if (value == null||value<0 ) { + return "不限"; + } + return (value/100).toFixed(2)+"元"; + }, + //分-元(不带单位) + feeFormatter:function(value){ + if (value == null ) { + return 0; + } + return (value/100).toFixed(2); + }, + //跨时间段规则类型 + crossTimeRuleTypeFormatter:function(value){ + var result=""; + if (value == null ) { + return "-"; + } + switch (value) { + case 1: + result = '前置匹配'; + break; + case 2: + result = '后置匹配'; + break; + case 3: + result = '完全匹配'; + break; + default: + result = '未知'; + } + return result; + }, + initEcharts:function (billingLogId) { + // 指定图表的配置项和数据 + var option = { + color:['#1890FF','#5fe98f','#fdc94d'], + tooltip: { +// trigger: 'item', +// formatter: function (params) { +// return '我的'+params.seriesName+':'+params.value+'元'; +// } + trigger: 'axis' + + }, + legend: { + left: 'center', + y:'bottom', + data: ['停车费用'] + }, + xAxis: { + type: 'category', + axisLabel: { + interval: 0, + rotate:30,//倾斜度 -90 至 90 默认为0 + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + // splitNumber:10, + // minInterval:2, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + data: ['2017-10-10', '2017-10-10', '2017-10-10', '2017-10-10', '2017-10-10', '2017-10-10', '2017-10-10', '2017-10-10', '2017-10-10'] + }, + grid: { + x: '1%', + right: '4%', + y2: '30%', + y:'2%', + containLabel: true + }, + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + }, + series: [ + { + name: '停车费用', + type: 'line', + data: [11, 32, 91, 27, 81, 247, 41, 51,61], + markPoint:{ + symbolSize :13, + itemStyle:{ + normal:{ + color:'#ff0202' + } + }, + data:[] + } + + } + ] + }; + + // 使用刚指定的配置项和数据显示图表。 + //myChart.setOption(option); + //费用计算明细ajax请求函数 + fun.feeDetailAjax(option, myChart,billingLogId); + + + }, + feeDetailAjax:function(option,myChart,billingLogId){ +// billingLogId = 'fa8d84e6ec88456ca096cbbca0a94a5a'; + if(billingLogId==null || billingLogId == ""){ + return; + } + + var req = { + sysCode: sysComm.sysCode, + id:billingLogId + }; + var opt = { + method: 'post', + async: false, + url: dataUrl.util.queryBillingLogForLineChart(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code=='8888') { + //fun.loadTable(res.data); + if(res.data.length<1){ + return; + } + var dates = []; + var realFeeOfDays = []; + var points=[]; + $.each(res.data.feeRecordChart,function(index,item){ + dates.push(item.xName); + realFeeOfDays.push(item.yFee); + }); + $.each(res.data.pointMarkBeans,function(index,item){ + points.push(item); + + }); + option.xAxis.data = dates; + option.series[0].data = realFeeOfDays; + option.series[0].markPoint.data =points; + } + else{ + swal({title:"提示",text:res.msg,type:"warning",timer:3000,allowOutsideClick:true}); + return ; + } + } + }; + sysAjax(opt); + myChart.setOption(option,true); + myChart.resize(); + } + }; + fun.init(); + window.onresize = function () { + $('#echart_con').css('width',$(window).width()-245+'px'); + myChart.resize(); + } +})(); +function formatSeconds(value) { + var theTime = parseInt(value);// 秒 + var theTime1 = 0;// 分 + var theTime2 = 0;// 小时 + var theTime3 = 0;//天 +// alert(theTime); + if(theTime<60){ + return theTime+'秒'; + } + if (theTime >= 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); +// alert(theTime1+"-"+theTime); + if (theTime1 >= 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + if(theTime2 >= 24){ + theTime3 = parseInt(theTime2/24); + theTime2 = parseInt(theTime2%24); + } + } + } + var result = ''; + if (theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if (theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + if (theTime3 > 0) { + result = "" + parseInt(theTime3) + "天" + result; + } + return result; +}; +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click',".ITD-search-morebtn",function(){ + $(".hide-common-style").toggleClass("display-none"); +}); diff --git a/assets/pages/scripts/rulesetFile/chargingRule/chargingrule.css b/assets/pages/scripts/rulesetFile/chargingRule/chargingrule.css new file mode 100644 index 0000000..87c70f9 --- /dev/null +++ b/assets/pages/scripts/rulesetFile/chargingRule/chargingrule.css @@ -0,0 +1,483 @@ + +/*错误提示*/ +#errormodel .modal-content{ + margin-top: 150px; + margin-left: 186px; + height: 44px; + width: 300px; + text-align: center; + border-radius: 20px !important; +} +#errormodel .modal-body{ + font-size: 13px; + background: #1f2b3d; + color: #fff; + height: 44px; + line-height: 44px; + padding: 0; + border-radius: 20px !important; +} +/*公用结束*/ +/*------主体内容---------*/ +.chargingrule-wrap{ + padding-left: 0; +} +.chargingrule-wrap li{ + width: 266px; + height: 316px; + float: left; + margin: 0 18px 18px 0; +} +.chargingrule-title{ + height: 68px; + line-height: 68px; +} +.chargingrule-title-green:after{ + content: ''; + width: 0; + height: 0; + border-top: 36px solid #5fe98f; + border-left: 36px solid transparent; + right: 0; + top:0; + position: absolute; + transition:all .7s linear; + -moz-transition:all .7s linear; /* Firefox 4 */ + -webkit-transition:all .7s linear; /* Safari and Chrome */ + -o-transition:all .7s linear; /* Opera */ + -ms-transition:all .7s linear; +} +.chargingrule-title-yellow:after{ + content: ''; + width: 0; + height: 0; + border-top: 36px solid #fed64d; + border-left: 36px solid transparent; + right: 0; + top:0; + position: absolute; + transition:all .7s linear; + -moz-transition:all .7s linear; /* Firefox 4 */ + -webkit-transition:all .7s linear; /* Safari and Chrome */ + -o-transition:all .7s linear; /* Opera */ + -ms-transition:all .7s linear; +} +.chargingrule-title-blue:after{ + content: ''; + width: 0; + height: 0; + border-top: 36px solid #1E95CD; + border-left: 36px solid transparent; + right: 0; + top:0; + position: absolute; + transition:all .7s linear; + -moz-transition:all .7s linear; /* Firefox 4 */ + -webkit-transition:all .7s linear; /* Safari and Chrome */ + -o-transition:all .7s linear; /* Opera */ + -ms-transition:all .7s linear; +} +.chargingrule-wrap li:hover .chargingrule-more{ + opacity: 1; + filter:alpha(opacity=100); +} +.chargingrule-wrap li:hover .chargingrule-title-green:after{ + border-top: 46px solid #26be96; + border-left: 46px solid transparent; +} +.chargingrule-wrap li:hover .chargingrule-title-yellow:after{ + border-top: 46px solid #fed64d; + border-left: 46px solid transparent; +} +.chargingrule-wrap li:hover .chargingrule-title-blue:after{ + border-top: 46px solid #1E95CD; + border-left: 46px solid transparent; +} +.chargingrule-circle-green{ + height: 160px; + background: url("../img/chargingrule-circle-green.png") no-repeat center center; +} +.chargingrule-circle-yellow{ + height: 160px; + background: url("../img/chargingrule-circle-yellow.png") no-repeat center center; +} +.chargingrule-circle-blue{ + height: 160px; + background: url("../img/chargingrule-circle-blue.png") no-repeat center center; +} +.chargingrule-time{ + padding-top: 45px; + line-height: 48px; + height: 48px; + box-sizing: content-box; +} +.chargingrule-more{ + -webkit-transition: all 0.7s linear; + -moz-transition: all 0.7s linear; + -ms-transition: all 0.7s linear; + -o-transition: all 0.7s linear; + transition: all 0.7s linear; + bottom: 24px; + left:50%; + margin-left: -36px; + opacity: 0; + filter:alpha(opacity=0); +} + +.chargingrule-wrap li:last-of-type .chargingrule-add{ + height: 120px; + width: 120px; + margin: 111px auto 15px; + background-color: #e7eaef; + border-radius: 50%!important; + position: relative; + cursor: pointer; +} +.chargingrule-wrap li:last-of-type .chargingrule-add span:nth-of-type(1){ + width: 56px; + height: 6px; + border-radius: 5px!important; + position: absolute; + top:50%; + left: 50%; + transform:translate(-50%,-50%) ; + -webkit-transform:translate(-50%,-50%) ; + -moz-transform:translate(-50%,-50%) ; + -ms-transform:translate(-50%,-50%) ; + -o-transform:translate(-50%,-50%) ; + display: block; + background-color: #fff; +} +.chargingrule-wrap li:last-of-type .chargingrule-add span:nth-of-type(2){ + width: 6px; + height: 56px; + border-radius: 5px!important; + position: absolute; + top:50%; + left: 50%; + transform:translate(-50%,-50%) ; + -webkit-transform:translate(-50%,-50%) ; + -moz-transform:translate(-50%,-50%) ; + -ms-transform:translate(-50%,-50%) ; + -o-transform:translate(-50%,-50%) ; + display: block; + background-color: #fff; +} + +/*-------新增弹窗 sta--------*/ +.chargingrule-form-step{ + /*max-height: 417px;*/ + height: 390px; + overflow-y: scroll; +} +.chargingrule-width80 { + width: 80px; +} +.chargingrule-width60{ + width: 60px; +} +.chargingrule-bgf5f7f8{ + background-color: #f5f7f8 !important; +} +.chargingrule-pad5{ + padding-left:5px; + padding-right:5px; +} +/*特殊资费 sta*/ +.chargingrule-space-tit{ + height: 22px; + line-height: 22px; + width: 82px; + margin-left: 20px; + cursor: pointer; + background: url("../img/chargingrule_smallIcon.png") no-repeat; + background-position: 0px 1px; + padding-left: 10px; + color: #fff; +} +.chargingrule-space-titactive{ + background: url("../img/chargingrule_smallIcon.png") no-repeat; + background-position: -97px 1px; + padding-left: 20px !important; +} +.chargingrule-special-con{ + margin:9px; + border: 1px dashed #cfcfcf; + padding: 22px 10px; + display: none; +} +.chargingrule-padl5{ + padding-left: 5px; +} +.chargingrule-add-msg{ + height: 22px; + line-height: 22px; + width: 100%; + font-size: 12px; +} +/*特殊资费 end*/ +/*规则样式 sta*/ +.chargingrule-daycon-main{ + width: 322px; +} +.chargingrule-common-marl9{ + margin-left: 9px; +} +.chargingrule-daytitImg{ + width: 26px; + height: 24px; + top: 5px; + left: 60px; + background: url(../img/chargingrule_smallIcon.png) no-repeat; + background-position: -140px -30px; +} +.chargingrule-nighttitImg{ + width: 26px; + height: 24px; + top: 5px; + left: 60px; + background: url(../img/chargingrule_smallIcon.png) no-repeat; + background-position: -105px -30px; +} +/*大型车小型车 icon*/ +.chargingrule-car-smallbg{ + margin-top: 9px; + width: 18px; + height: 18px; + float: left; + background: url(../img/chargingrule_smallIcon.png) no-repeat; + background-position: -72px -66px; +} +.chargingrule-car-bigbg{ + margin-top: 9px; + width: 18px; + height: 18px; + float: left; + background: url("../img/chargingrule_smallIcon.png") no-repeat; + background-position: -98px -66px; +} +/*规则样式内容*/ +.chargingrule-car-common{ + height: 36px; + line-height: 36px; + width: 290px; + margin: 0 16px; + border-bottom: 1px solid #d8e2e5; +} +.chargingrule-add-right{ + height: 36px; + width: 26px; + text-align: center; + float: right; + cursor: pointer; +} +.chargingrule-car-name{ + width: 60px; + float: left; + height: 36px; + line-height: 36px; + margin-left: 10px; +} +.chargingrule-defaultUl,.chargingrule-addSmallul,.chargingrule-addBigul{ + padding-left: 16px; + padding-bottom: 5px; +} +.chargingrule-defaultUl .chargingrule-car-contmsg{ + width: 290px; + height: 28px; + line-height: 28px; + margin-top: 5px; +} +.chargingrule-wid24{ + width: 22px; +} +.chargingrule-wid3{ + width: 30px; +} +.chargingrule-time-style{ + outline:none; + border: none; + color: #26be96; + height: 22px; + text-align: center; + line-height: 22px; + display: inline-block; + border-bottom: 1px dashed #26be96; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.chargingrule-daycon-main input{ + background-color: #f5f7f8 !important; +} +.chargingrule-addSmallli,.chargingrule-addBigli{ + width: 290px; + height: 28px; + line-height: 28px; + margin-bottom: 8px; +} +.chargingrule-addleft{ + float: left; + height: 28px; + line-height: 28px; +} +.chargingrule-wid105{ + width: 105px; +} +.chargingrule-wid138{ + width: 138px; +} +/*layui时间插件样式*/ +.layui-laydate-header{ + display: none; +} +/*删除按钮*/ +.chargingrule-minusBtn{ + margin-top: 8px; + background: url(../img/chargingrule_smallIcon.png) no-repeat; + background-position: -44px -35px; + width: 15px; + height: 15px; + cursor: pointer; + float: left; +} +/*select 下拉框字体样式*/ +.chargingrule-car-contmsg .btn-group,.chargingrule-addSmallli .btn-group,.chargingrule-addBigli .btn-group{ + height: 28px; + line-height: 28px; + float: left; +} +.chargingrule-car-contmsg .btn,.chargingrule-addSmallli .btn,.chargingrule-addBigli .btn{ + padding:3px 6px !important; + background: #f5f7f8; + color: #6aabe9; + border-color: #f5f7f8 !important; +} +.chargingrule-car-contmsg .dropdown-menu.inner,.chargingrule-addSmallli .dropdown-menu.inner,.chargingrule-addBigli .dropdown-menu.inner{ + width: 90px !important; +} +.chargingrule-defaultUl .btn, .chargingrule-addSmallul .btn, .chargingrule-addBigul .btn{ + font-size: 13px !important; +} +/*yincang*/ +.addCarType:nth-of-type(2){ + display: none !important; +} + + +/*单选复选美化*/ +input[type=checkbox], +input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +input[type=checkbox]:hover + label{ + background: url('../img/input-checkexActive.png') no-repeat 0 center; + +} +input[type=checkbox]:checked + label{ + background: url('../img/input-checkbox.png') no-repeat 0 center; + +} + +input[type=checkbox]:checked:hover + label{ + background: url('../img/input-checkbox.png') no-repeat 0 center; + +} + +input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +input[type=radio]:hover + label{ + background: url('../img/input-radio.png') no-repeat 0 center; +} +input[type=radio]:checked + label{ + background : url('../img/input-radio-active.png') no-repeat 0 center; + +} +input[type=radio]:checked:hover + label{ + background: url('../img/input-radio-active.png') no-repeat 0 center; + +} + +/**/ +.chargingrule-des{ + height: 70px; + padding: 0 50px; +} +.des_add,.des_addRead{ + background: url("../img/rule_add.png") no-repeat; + height: 16px; + width: 16px; + background-size: 100% 100%; + margin-left: 10px; +} +.des_del,.des_delRead{ + background: url("../img/rule_del.png") no-repeat; + height: 16px; + width: 16px; + background-size: 100% 100%; + margin-left: 10px; +} +textarea{ + padding:4px; + resize:none; + outline:none; + border: 1px solid #b1b1b1; + border-radius: 4px !important; +} + +/*查看规则 修改描述 */ +.tab-btn-wrap{ + height: 40px; + width: 100%; + margin-bottom: 5px; + border-bottom: 1px solid #D9D9D9; +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; + margin-left: 252px; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD; + color: #1E95CD; +} \ No newline at end of file diff --git a/assets/pages/scripts/rulesetFile/chargingRule/chargingrule.html b/assets/pages/scripts/rulesetFile/chargingRule/chargingrule.html new file mode 100644 index 0000000..0d5e086 --- /dev/null +++ b/assets/pages/scripts/rulesetFile/chargingRule/chargingrule.html @@ -0,0 +1,657 @@ + +
              +
              +
                +
              • +
                + 中兴智能停车场计费规则 +
                +
                +
                35
                +
                免费时长
                +
                min
                +
                +
                + 当日封顶 : 50元 +
                +
                ...
                + +
              • +
              • +
                + 中兴智能停车场计费规则 +
                +
                +
                45
                +
                免费时长
                +
                min
                +
                +
                + 当日封顶 : 50元 +
                +
                ...
                + +
              • +
              • +
                + 中兴智能停车场计费规则 +
                +
                +
                225
                +
                免费时长
                +
                min
                +
                +
                + 当日封顶 : 50元 +
                +
                ...
                + +
              • + + +
              • +
                + + +
                +
                新增计费规则
                +
              • + +
              +
              +
              + + + + + + + + + + + diff --git a/assets/pages/scripts/rulesetFile/chargingRule/chargingrule.js b/assets/pages/scripts/rulesetFile/chargingRule/chargingrule.js new file mode 100644 index 0000000..146c444 --- /dev/null +++ b/assets/pages/scripts/rulesetFile/chargingRule/chargingrule.js @@ -0,0 +1,1303 @@ +function pageInitChargingrule() { + var fun = { + init: function () { + $('#ruleCollects li:not(.add-rule-li)').remove(); + var req = { + sysCode: sysComm.sysCode + }; + + var opt = { + method: 'post', + url: dataUrl.util.queryBillingRuleCollects(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var html = ''; + $.each(res.data, function (index, item) { + // html += '
            14. ' + + // '
              ' + + // ' ' + formatSecondToMinute(item.freeTime) + '' + + // ' 免费时长' + + // ' 分钟' + + // '
              ' + + // '
              ' + item.ruleCollectName + '
              ' + + // '
              单日封顶 : ' + formatFenToYuan(item.dayMaxCharge) + '
              ' + + // '
              查看更多
              ' + + // '
            15. '; + + if (formatSecondToMinute(item.freeTime) <= 15) { + html += '
            16. ' + + '
              ' + item.ruleCollectName + '
              ' + + '
              ' + + '
              ' + formatSecondToMinute(item.freeTime) + '
              ' + + '
              免费时长
              ' + + '
              min
              ' + + '
              ' + + '
              ' + + '当日封顶 : ' + formatFenToYuan(item.dayMaxCharge) + '' + + '
              ' + + '
              ...
              ' + + '' + + '
            17. '; + } + if (15 < formatSecondToMinute(item.freeTime) && formatSecondToMinute(item.freeTime) <= 30) { + html += '
            18. ' + + '
              ' + item.ruleCollectName + '
              ' + + '
              ' + + '
              ' + formatSecondToMinute(item.freeTime) + '
              ' + + '
              免费时长
              ' + + '
              min
              ' + + '
              ' + + '
              ' + + '当日封顶 : ' + formatFenToYuan(item.dayMaxCharge) + '' + + '
              ' + + '
              ...
              ' + + '' + + '
            19. '; + } + if (30 < formatSecondToMinute(item.freeTime) && formatSecondToMinute(item.freeTime)) { + html += '
            20. ' + + '
              ' + item.ruleCollectName + '
              ' + + '
              ' + + '
              ' + formatSecondToMinute(item.freeTime) + '
              ' + + '
              免费时长
              ' + + '
              min
              ' + + '
              ' + + '
              ' + + '当日封顶 : ' + formatFenToYuan(item.dayMaxCharge) + '' + + '
              ' + + '
              ...
              ' + + '' + + '
            21. '; + } + }) + $('#ruleCollects').prepend(html); + + } else { + swal({title: "提示", text: res.msg, type: "warning", timer: 3000, allowOutsideClick: true}); + return; + } + } + }; + sysAjax(opt); + }, + showRuleDetai: function (ruleCollectName, ruleCollectNo) { + $("#rulenameread").html(ruleCollectName); + + var req = { + sysCode: sysComm.sysCode, + collectNo: ruleCollectNo + }; + + var opt = { + method: 'post', + url: dataUrl.util.queryBilingRuleShowInfoByCollectNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var rule = res.data; + $("#moneymaxread").html('小型车/' + formatFenToYuan(rule.dayMaxCharge) + ' 大型车/' + formatFenToYuan(rule.dayMaxChargeForBig)); + $("#freetimeread").html(formatSecondToMinute(rule.fristFreeTime) + "分钟"); + $("#applyDateRead").html(applyDateTypeFormatter(rule.applyDateType)); + + $("#maxRmbread").html('小型车/' + formatFenToYuan(rule.maxCharge) + ' 大型车/' + formatFenToYuan(rule.maxChargerForBig)); + $("#crossTimeRuleRead").html(crossTimeRuleTypeFormatter(rule.crossTimeRuleType)); + $("#chargingrule_timelength").html(rule.freeTimeType == 1 ? "否" : "是"); + + $("#dayStartTimeRead").val(rule.dayStartTime); + $("#dayEndTimeRead").val(rule.dayEndTime); + $("#nightStartTimeRead").val(rule.dayEndTime); + $("#nightEndTimeRead").val(rule.dayStartTime); + var bigCarConfigRules = rule.bigCarRule.billingRuleConfigs; + var smallCarConfigRules = rule.smallCarRule.billingRuleConfigs; + + var bigCarNightTime; + var smallCarNightTime; + + $('#dayAndBigReadDetail').empty(); + $('#dayAndSmallReadDetail').empty(); + $('#nightAndSmallReadDetail').empty(); + $('#nightAndBigReadDetail').empty(); + //小型车 + $.each(smallCarConfigRules, function (index, item) { + + if (item.isday == 1) { + //白天 + //先清空 + + $('#dayAndSmallReadDetail').append( + '
            22. ' + + '至时,单位费率' + + '元/' + unitFormatter(item.unit) + '
            23. '); + } else { + //夜间 + if (null == smallCarNightTime) { + smallCarNightTime = item.startTime; + } + if (smallCarNightTime == item.startTime) { + + $('#nightAndSmallReadDetail').append( + '
            24. ' + + '至时,单位费率' + + '元/' + unitFormatter(item.unit) + '
            25. '); + } + } + + }) + + //大型车 + $.each(bigCarConfigRules, function (index, item) { + + if (item.isday == 1) { + //白天 + //先清空 + + $('#dayAndBigReadDetail').append( + '
            26. ' + + '至时,单位费率' + + '元/' + unitFormatter(item.unit) + '
            27. '); + } else { + //夜间 + if (null == smallCarNightTime) { + smallCarNightTime = item.startTime; + } + if (smallCarNightTime == item.startTime) { + + $('#nightAndBigReadDetail').append( + '
            28. ' + + '至时,单位费率' + + '元/' + unitFormatter(item.unit) + '
            29. '); + } + } + + }) + + $('#chargingrule_Readmodel').modal('show'); + + } else { + swal({title: "提示", text: res.msg, type: "warning", timer: 3000, allowOutsideClick: true}); + return; + } + + } + }; + sysAjax(opt); + + } + + } + + fun.init(); + // //验证单位费率 小数点钱最多5位数,保留2位小数 + documentBindFunc.on('keyup', '.day-min-after', function () { + var obj = this; + clearNoNumrate(obj); + }); + + // //验证单位费率 小数点钱最多5位数,保留2位小数 + documentBindFunc.on('click', '#readdes-submit', function () { + var ruleCollectNo = $('#chargingrule_Readmodel_collect_rule_no').val(); + var text = queryUpdateBillingDesc(); + saveOrUpdateBillingDesciption(ruleCollectNo,text); + }); + + //更新的计费规则描述信息 + function querySaveBillingDesc() { + var data={}; + debugger + var num = 0; + $.each($('#chargingdesAddcont textarea'),function (index,item) { + + var text = $(item).val(); + if(data[num] == undefined){ + data[num] = {}; + } + + if($(item).hasClass('standard')){ + data[num]['standard'] = text; + } + + if($(item).hasClass('standardInfo')){ + data[num]['standardInfo'] = text; + } + if(index % 2 ==1){ + num++; + } + + }); + + + var result = []; + for(var key in data){ + result.push(data[key]); + } + + console.log('新增的计费规则描述:'+JSON.stringify(result)); + return JSON.stringify(result); + } + + //更新的计费规则描述信息 + function queryUpdateBillingDesc() { + var data={}; + debugger + var num = 0; + $.each($('#chargingdescontRead textarea'),function (index,item) { + + + var text = $(item).val(); + if(data[num] == undefined){ + data[num] = {}; + } + + if($(item).hasClass('standard')){ + data[num]['standard'] = text; + } + + if($(item).hasClass('standardInfo')){ + data[num]['standardInfo'] = text; + } + if(index % 2 ==1){ + num++; + } + + }); + + + var result = []; + for(var key in data){ + + if($.trim(data[key]['standard'])!='' || $.trim(data[key]['standardInfo'])!=''){ + result.push(data[key]); + } + + } + + console.log('更新计费规则描述:'+JSON.stringify(result)); + return JSON.stringify(result); + } + + function saveOrUpdateBillingDesciption(ruleCollectNo,descText){ + + + var req = { + sysCode: sysComm.sysCode, + ruleCollectionNo: ruleCollectNo, + billDescText:descText + }; + + var opts={ + method: 'post', + url: dataUrl.util.saveOrUpdateBillDescription(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res){ + if('8888' == res.code){ + $('#chargingrule_Readmodel').modal('hide'); + + }else{ + alert('保存计费规则描述失败'); + } + } + + + } + + sysAjax(opts); + + } + + //查询计费规则描述 + function queryBillingDescription(ruleCollectNo){ + $('#chargingdescontRead').empty(); + var req = { + sysCode: sysComm.sysCode, + billCollectionNo: ruleCollectNo + }; + + //空的计费描述 + var emptyHtml = '
              ' + + '
              ' + + '
              ' + + '
              规则描述
              ' + + '
              ' + + ' ' + + '
              ' + + '
              ' + + '
              ' + + '
              备注
              ' + + '
              ' + + ' ' + + '
              ' + + '
              ' + + '
              ' + + '
              ' + + '
              '; + var html = ''; + var opts={ + method: 'post', + url: dataUrl.util.queryTBillingDescriptionByCollectionNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res){ + if('8888' == res.code){ + if(res.data !=null && res.data.descText !=null){ + + var descArray = JSON.parse(res.data.descText); + + if(descArray.length == 0){ + html = emptyHtml; + }else{ + for(var a = 0;a' + + '
              ' + + '
              规则描述
              ' + + '
              ' + + ' ' + + '
              ' + + '
              ' + + '
              ' + + '
              备注
              ' + + '
              ' + + ' ' + + '
              '; + + html+= (a==0)?'
              ':'
              '; + html+='
              ' + + '
              ' + + '
              '; + + + } + + } + + + }else{ + html = emptyHtml; + + } + + $('#chargingdescontRead').append(html); + + }else{ + alert('查询计费描述失败'); + } + } + + + } + + sysAjax(opts); + + + } + + + //只能输入数字 . + function clearNoNumrate(obj) { + obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符 + obj.value = obj.value.replace(/\.{5,}/g, "."); //只保留第一个. 清除多余的 + obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); + obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两个小数 + if (obj.value.indexOf(".") < 0 && obj.value != "") {//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 + obj.value = parseFloat(obj.value); + } + } + + function formatterSecondToHour(value) { + if (value == null) { + return ""; + } + return value / 60 / 60; + } + + function unitFormatter(value) { + var result = ""; + if (value == null) { + return "-"; + } + switch (value) { + case 1: + result = '分钟'; + break; + case 2: + result = '15分钟'; + break; + case 3: + result = '30分钟'; + break; + case 4: + result = '1小时'; + break; + case 5: + result = '次'; + break; + default: + result = '未知'; + } + return result; + } + +//跨时间段规则类型 + function crossTimeRuleTypeFormatter(value) { + var result = ""; + if (value == null) { + return "-"; + } + switch (value) { + case 1: + result = '否'; + break; + case 2: + result = '后置匹配'; + break; + case 3: + result = '是'; + break; + default: + result = '未知'; + } + return result; + } + + function applyDateTypeFormatter(value) { + var result = ""; + if (value == null) { + return "-"; + } + switch (value) { + case -1: + result = '不限'; + break; + case 1: + result = '工作日'; + break; + case 2: + result = '非工作日'; + break; + default: + result = '未知'; + } + return result; + } + + function formatFenToYuan(fen) { + if (fen <= 0) { + return '不限' + } else { + return fen / 100 + '元' + } + } + + function formatFenToYuanWithNoUnit(fen) { + if (fen < 0) { + return 0 + } else { + return fen / 100 + } + } + +//时间格式化 + function formatSecondToMinute(second) { + if (second <= 0) { + return 0 + } else { + return second / 60 + } + } + + documentBindFunc.on('click', '.chargingrule-more', function () { + $(".chargingrule-special-con").css("display", "none"); + $(".chargingrule-space-tit").removeClass("chargingrule-space-titactive"); + + $('#chargetab-btn-wrap li:first').addClass('tabAction').siblings().removeClass('tabAction'); + $('#chargeStep').removeClass('display-none'); + $('#chargeDes_step').addClass('display-none'); + $('#desmodel-footer').addClass('display-none'); + + $('#row-read input').attr("readonly", "readonly"); + var ruleCollectName = $(this).data("name"); + var ruleCollectNo = $(this).data("no"); + $('#chargingrule_Readmodel_collect_rule_no').val(''); + $('#chargingrule_Readmodel_collect_rule_no').val(ruleCollectNo); + + fun.showRuleDetai(ruleCollectName, ruleCollectNo); + queryBillingDescription(ruleCollectNo); + + }) + +//新增计费规则 + var leftsmall = 1; + var leftbig = 1; + var rightsmall = 1; + var rightbig = 1; + var ruleDes = 1; + $('#chargingrule-add').on('click', function (e) { + $(".chargingrule-special-con").css("display", "none"); + $(".chargingrule-space-tit").removeClass("chargingrule-space-titactive"); + $(".radio span").removeClass("checked"); + //var defaulta=-1; + $("#first-min-center").val(2); + $("#first-min-after").val(15); + $("#timeTypes").selectpicker('refresh'); + $("#timeTypes").selectpicker("val", 5); + + $("#two-min-center").val(2); + $("#two-min-after").val(15); + $("#twotimeTypes").selectpicker('refresh'); + $("#twotimeTypes").selectpicker("val", 5); + + $("#first-max-center").val(2); + $("#first-max-after").val(15); + $("#bigtimeTypes").selectpicker('refresh'); + $("#bigtimeTypes").selectpicker("val", 5); + + $("#two-max-center").val(2); + $("#two-max-after").val(15); + $("#twobigaddtimeTypes").selectpicker('refresh'); + $("#twobigaddtimeTypes").selectpicker("val", 5); + + $('#chargingrule-maxRmb').val(''); + $('#chargingrule-match-typeedit2').prop('checked', true); + $('#chargingrule-addsale').prop('checked', true); + $('#chargingruletime_addsale').prop('checked', true); + + //$("#chargingrule-match-typeedit2 span").addClass("checked"); + + //$("#chargingrule span").addClass("checked"); + //$("#chargingruletime_addsale span").addClass("checked"); + //$("input[type=radio][name=sale-ed][value='"+3+"']").prop("checked", true); + //初始化 + var rulename_inp = $('#rulename_inp').val('');//规则名称 + + var timeLimit = $('#timeLimit').val('');//单日封顶 + var maxTimeLimit = $('#maxtimeLimit').val('');//单日封顶 + var maxCharge = $("#chargingrule-maxRmb").val(); + var timeLength = $('#timeLength').val('');//免费停车时长 + //白天和夜间时间初始化 + //时间格式化 + $('#startTime-right').val('19:00') + $('#endTime-right').val('07:00') + laydate.render({ + elem: '#startTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '07:00', + min: '00:00:00', + max: '23:00:00', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'fixed', + done: function (value, date, endDate) { + console.log(value); //得到日期生成的值,如:2017-08-18 + console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + + $('#endTime-right').val(value) + } + // range: true + + }); + laydate.render({ + elem: '#endTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '19:00', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'fixed', + done: function (value, date, endDate) { + console.log(value); //得到日期生成的值,如:2017-08-18 + console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + $('#startTime-right').val(value) + } + // range: true + + }); + //给input赋值 + // $('#startDate').val(laydate.now(-30, 'HH:mm:ss')); + // $('#endDate').val(laydate.now(0, 'HH:mm:ss')); + + $('#addSmallul-left').empty();//白天小型车初始化 + $('#addBigul-left').empty();//白天大型车初始化 + $('#addSmallul-right').empty();//夜间小型车初始化 + $('#addBigul-right').empty();//夜间大型车初始化 + $('#chargingrule_rule').text('') + $('#max-chargingrule-maxRmb').val('') + $('#chargingrule_addmodel').modal('show'); + }); + $(".chargingrule-space-tit").click(function () { + $(".chargingrule-space-tit").toggleClass("chargingrule-space-titactive"); + $('.chargingrule-special-con').toggle(); + }); + + + //新增 第二步 上一步 + documentBindFunc.on('click','#add_prebtn',function () { + $('.chargingrule-form-end').addClass('display-none'); + $('.chargingrule-form-first').removeClass('display-none'); + }); + //新增 下一步 第二步 + documentBindFunc.on('click','#step_next',function () { + $('.chargingrule-form-first').addClass('display-none'); + $('.chargingrule-form-end').removeClass('display-none'); + }); + + //切换 + documentBindFunc.on('click','#chargetab-btn-wrap li',function () { + var _index = $(this).index(); + if(_index==0){ + $('#chargeStep').removeClass('display-none'); + $('#chargeDes_step').addClass('display-none'); + $('#desmodel-footer').addClass('display-none'); + }else{ + $('#chargeStep').addClass('display-none'); + $('#chargeDes_step').removeClass('display-none'); + $('#desmodel-footer').removeClass('display-none'); + }; + $(this).addClass('tabAction').siblings().removeClass('tabAction'); + + }); + //新增提交 + $('#add-submit').on('click', function () { + var rulename_inp = $.trim($('#rulename_inp').val()); //规则名称 + var timeLimit = $.trim($('#timeLimit').val()); //小型车单日封顶 + var maxtimeLimit = $.trim($('#maxtimeLimit').val()); //小型车单日封顶 + var timeLength = $.trim($('#timeLength').val()); //免费停车时长 + var startTime = new Date('2017/10/1 ' + $('#startTime').val()); //有效时间段 + var endTime = new Date('2017/10/1 ' + $('#endTime').val()); + var chargingruleRmb = $.trim($('#chargingrule-maxRmb').val()); //单次封顶 + var maxchargingruleRmb = $.trim($('#max-chargingrule-maxRmb').val()); //单次封顶 + // + + if (rulename_inp) { + if (timeLimit == '0') { + $('#chargingrule_rule').removeClass('display-none').text('错误提示:小型车单日封顶不能为0'); + } else { + if (maxtimeLimit == '0') { + $('#chargingrule_rule').removeClass('display-none').text('错误提示:大型车单日封顶不能为0'); + } else { + if (timeLength == '0') { + $('#chargingrule_rule').removeClass('display-none').text('错误提示:免费时长不能为0'); + + } else { + if (chargingruleRmb == '0') { + $('#chargingrule_rule').removeClass('display-none').text('错误提示:单次封顶不能为0'); + + } else { + if (maxchargingruleRmb == '0') { + $('#chargingrule_rule').removeClass('display-none').text('错误提示:单次封顶不能为0'); + + } else { + //ajax + if (startTime < endTime) { + + // var flag = $(".space-tit").hasClass("space-titactive"); + var applyDateType = $("input[name='sameStyl-ed']:checked").val(); + + var maxCharge = $("#chargingrule-maxRmb").val(); + var maxChargeBig = $("#max-chargingrule-maxRmb").val(); + + if (maxCharge != undefined && maxCharge != null && maxCharge != "") { + maxCharge = parseInt(maxCharge) * 100; + } else { + maxCharge = -1; + } + // + + if (maxChargeBig != undefined && maxChargeBig != null && maxChargeBig != "") { + maxChargeBig = parseInt(maxChargeBig) * 100; + } else { + maxChargeBig = -1; + } + + var crossTimeRuleType = $("input[name='sale-ed']:checked").val(); + + var freeTimeType = $("input[name='time-ed']:checked").val(); + //获取2个时间间隔的小时数 + var startTime = $('#startTime').val() + ":00"; + var endTime = $('#endTime').val() + ":00"; + var start = startTime.substr(0, 2); + var end = endTime.substr(0, 2); + var max = (parseInt(end) - parseInt(start)) * 3600; + var nightMax = 24 * 3600 - parseInt(max); + //小型车白天 + var ruleConfigListForMinDay = []; + ruleConfigListForMinDay = getRuleConfigListForMinDay(ruleConfigListForMinDay, max); + + //小型车黑夜 + var ruleConfigListForMinNight = []; + ruleConfigListForMinNight = getRuleConfigListForMinNight(ruleConfigListForMinNight, max); + + //大型车白天 + var ruleConfigListForMaxDay = []; + ruleConfigListForMaxDay = getRuleConfigListForMaxDay(ruleConfigListForMaxDay, max); + + //大型车黑夜 + var ruleConfigListForMaxNight = []; + ruleConfigListForMaxNight = getRuleConfigListForMaxNight(ruleConfigListForMaxNight, max); + + //校验时间必须是一个闭环 + if (ruleConfigListForMinDay.length != leftsmall || ruleConfigListForMaxDay.length != leftbig + || ruleConfigListForMinNight.length != rightsmall || ruleConfigListForMaxNight.length != rightbig) { + $('#chargingrule_rule').removeClass('display-none').text('错误提示:上一个结束时间必须等于下一个开始时间') + + } else { + var flag = true; + if (parseInt(ruleConfigListForMinDay[ruleConfigListForMinDay.length - 1].endBillingTime) < max) { + flag = false; + } + if (parseInt(ruleConfigListForMinNight[ruleConfigListForMinNight.length - 1].endBillingTime) < nightMax) { + flag = false; + } + if (parseInt(ruleConfigListForMaxDay[ruleConfigListForMaxDay.length - 1].endBillingTime) < max) { + flag = false; + } + if (parseInt(ruleConfigListForMaxNight[ruleConfigListForMaxNight.length - 1].endBillingTime) < nightMax) { + flag = false; + } + if (flag) { + + var billDesc = JSON.parse(querySaveBillingDesc()); + billDesc = JSON.stringify(billDesc); + if(billDesc.length ==0){ + $('#chargingrule_rule').removeClass('display-none').text('错误提示:请输入计费描述'); + } + + //alert("保存"); + $('#chargingrule_rule').addClass('display-none') + $('#add-submit').attr("disabled", true); + saveChargeRule(rulename_inp, timeLimit, timeLength, crossTimeRuleType, + maxCharge, applyDateType, ruleConfigListForMinDay, ruleConfigListForMinNight, + ruleConfigListForMaxDay, ruleConfigListForMaxNight, startTime, endTime, freeTimeType, maxtimeLimit, maxChargeBig,billDesc); + } else { + $('#chargingrule_rule').removeClass('display-none').text('错误提示:时间值不能小于白天或黑夜的差值的最大值'); + + } + } + } else { + $('#chargingrule_rule').removeClass('display-none').text('错误提示:结束时间必须大于开始时间'); + } + } + + } + } + } + + } + } else { + $('#chargingrule_rule').removeClass('display-none').text('错误提示:请输入规则名称'); + + } + + }); +//白天小型车添加 + $('#add-left-small').on('click', function () { + + if (leftsmall >= 5) { + return + } + leftsmall++; + var text = $('#dispalynone li').html(); + $('#addSmallul-left').append('
            30. ' + text + '
            31. '); + $(".addCarType").selectpicker("refresh"); + + }); +//白天小型车删除 + $(document).delegate('#addSmallul-left .chargingrule-minusBtn', 'click', function () { + if (leftsmall <= 1) { + return + } + leftsmall--; + $(this).parent().remove(); + }); +//白天大型车添加 + $('#add-left-big').on('click', function () { + + if (leftbig >= 5) { + return + } + leftbig++; + var text = $('#dispalynone li').html(); + $('#addBigul-left').append('
            32. ' + text + '
            33. '); + $(".addCarType").selectpicker("refresh"); + }); +//白天大型车删除 + $(document).delegate('#addBigul-left .chargingrule-minusBtn', 'click', function () { + if (leftbig <= 1) { + return + } + leftbig--; + $(this).parent().remove(); + }); +//夜间大型车添加 + $('#add-right-big').on('click', function () { + + if (rightbig >= 5) { + return + } + rightbig++; + var text = $('#dispalynone li').html(); + $('#addBigul-right').append('
            34. ' + text + '
            35. '); + $(".addCarType").selectpicker("refresh"); + }); +//夜间大型车删除 + $(document).delegate('#addBigul-right .chargingrule-minusBtn', 'click', function () { + if (rightbig <= 1) { + return + } + rightbig--; + $(this).parent().remove(); + }); +//夜间小型车添加 + $('#add-right-small').on('click', function () { + + if (rightsmall >= 5) { + return + } + rightsmall++; + var text = $('#dispalynone li').html(); + $('#addSmallul-right').append('
            36. ' + text + '
            37. '); + $(".addCarType").selectpicker("refresh"); + + }); +//夜间小型车删除 + $(document).delegate('#addSmallul-right .chargingrule-minusBtn', 'click', function () { + if (rightsmall <= 1) { + return + } + rightsmall--; + $(this).parent().remove(); + }); + +//规则描述 添加 新增部分 弹窗 + $('.des_add').on('click', function () { + + var ruleDes= $('#chargingdesAddcont textarea').length/2; + + if (ruleDes >= 10) { + return + } + var text = $('#chargingNone .chargingrule-des').html(); + $('#chargingdesAddcont').append('
              ' + text + '
              '); + }); +//规则描述 删除 新增部分 弹窗 + $(document).delegate('#chargingdesAddcont .des_del', 'click', function () { + + var ruleDes= $('#chargingdesAddcont textarea').length/2; + + if (ruleDes <= 1) { + return + } + $(this).parent().parent().parent().remove(); + }); + + //规则描述 添加 查看更多 弹窗 + documentBindFunc.on('click', '.des_addRead',function () { + + var ruleDesRead= $('#chargingdescontRead textarea').length/2; + + if (ruleDesRead >= 10) { + return + } + var text = $('#chargingNoneRead .chargingrule-des').html(); + $('#chargingdescontRead').append('
              ' + text + '
              '); + }); +//规则描述删除 + $(document).delegate('#chargingdescontRead .des_delRead', 'click', function () { + var ruleDesRead= $('#chargingdescontRead textarea').length/2; + + if (ruleDesRead <= 1) { + return + } + $(this).parent().parent().parent().remove(); + }); + + /** + * 获取小型车白天 + * @param {Object} ruleConfigListForMinDay + */ + function getRuleConfigListForMinDay(ruleConfigListForMinDay) { + var startBillingTime = $("#first-min-pre").val(); + var endBillingTime = $("#first-min-center").val(); + var unitRate = $("#first-min-after").val(); + var unit = $("#timeTypes option:selected").attr("value"); + + var minDay = { + unit: unit, + unitRate: unitRate * 100, + startBillingTime: startBillingTime * 3600, + endBillingTime: endBillingTime * 3600, + sort: 1 + }; + ruleConfigListForMinDay.push(minDay); + //判断有几个li + if (leftsmall > 1) { + for (var i = 2; i <= leftsmall; i++) { + var startBillingTimeNew = $("#addSmallli" + i).find(".chargingrule-wid24:first").val(); + var endBillingTimeNew = $("#addSmallli" + i).find(".chargingrule-wid24:nth-child(2)").val(); + var unitRate = $("#addSmallli" + i).find(".chargingrule-wid3").val(); + var unit = $("#addSmallli" + i).find(".addCarType option:selected").attr("value"); + /***判断第一个结束时间和 第2个开始时间是否相等**/ + if (parseInt(endBillingTime) != parseInt(startBillingTimeNew)) { + var minDay = { + unit: 1, + unitRate: 1, + startBillingTime: 1, + endBillingTime: 1, + sort: 1 + }; + ruleConfigListForMinDay.push(minDay); + + } + + /***判断下一个开始时间和 第2个结束时间是否相等**/ + var startNext = $("#addSmallli" + (i + 1)).find(".chargingrule-wid24:first").val(); + if (startNext != undefined && startNext != null) { + if (parseInt(endBillingTimeNew) != parseInt(startNext)) { + var minDay = { + unit: 1, + unitRate: 1, + startBillingTime: 1, + endBillingTime: 1, + sort: 1 + }; + ruleConfigListForMinDay.push(minDay); + + } + + } + var minDay = { + unit: unit, + unitRate: unitRate * 100, + startBillingTime: startBillingTimeNew * 3600, + endBillingTime: endBillingTimeNew * 3600, + sort: i + }; + ruleConfigListForMinDay.push(minDay); + endBillingTime = endBillingTimeNew; + + } + } + return ruleConfigListForMinDay; + }; + + /** + * 获取小型车黑夜 + * @param {Object} ruleConfigListForMinNight + */ + function getRuleConfigListForMinNight(ruleConfigListForMinNight) { + var startBillingTime = $("#two-min-pre").val(); + var endBillingTime = $("#two-min-center").val(); + var unitRate = $("#two-min-after").val(); + var unit = $("#twotimeTypes option:selected").attr("value"); + + var minDay = { + unit: unit, + unitRate: unitRate * 100, + startBillingTime: startBillingTime * 3600, + endBillingTime: endBillingTime * 3600, + sort: 1 + }; + ruleConfigListForMinNight.push(minDay); + + //判断有几个li + if (rightsmall > 1) { + for (var i = 2; i <= rightsmall; i++) { + var startBillingTimeNew = $("#addSmallNightli" + i).find(".chargingrule-wid24:first").val(); + var endBillingTimeNew = $("#addSmallNightli" + i).find(".chargingrule-wid24:nth-child(2)").val(); + var unitRate = $("#addSmallNightli" + i).find(".chargingrule-wid3").val(); + var unit = $("#addSmallNightli" + i).find(".addCarType option:selected").attr("value"); + + /***判断第一个结束时间和 第2个开始时间是否相等**/ + if (parseInt(endBillingTime) != parseInt(startBillingTimeNew)) { + var minDay = { + unit: 1, + unitRate: 1, + startBillingTime: 1, + endBillingTime: 1, + sort: 1 + }; + ruleConfigListForMinNight.push(minDay); + } + + /***判断下一个开始时间和 第2个结束时间是否相等**/ + + + + var startNext = $("#addSmallNightli" + (i + 1)).find(".chargingrule-wid24:first").val(); + if (startNext != undefined && startNext != null) { + if (parseInt(endBillingTimeNew) != parseInt(startNext)) { + var minDay = { + unit: 1, + unitRate: 1, + startBillingTime: 1, + endBillingTime: 1, + sort: 1 + }; + ruleConfigListForMinNight.push(minDay); + } + + } + var minDay = { + unit: unit, + unitRate: unitRate * 100, + startBillingTime: startBillingTimeNew * 3600, + endBillingTime: endBillingTimeNew * 3600, + sort: i + }; + ruleConfigListForMinNight.push(minDay); + + endBillingTime = endBillingTimeNew; + + } + } + return ruleConfigListForMinNight; + }; + + /** + * 获取白天大型车 + * @param {Object} ruleConfigListForMaxDay + */ + function getRuleConfigListForMaxDay(ruleConfigListForMaxDay) { + var startBillingTime = $("#first-max-pre").val(); + var endBillingTime = $("#first-max-center").val(); + var unitRate = $("#first-max-after").val(); + var unit = $("#bigtimeTypes option:selected").attr("value"); + + var minDay = { + unit: unit, + unitRate: unitRate * 100, + startBillingTime: startBillingTime * 3600, + endBillingTime: endBillingTime * 3600, + sort: 1 + }; + ruleConfigListForMaxDay.push(minDay); + + //判断有几个li + if (leftbig > 1) { + for (var i = 2; i <= leftbig; i++) { + var startBillingTimeNew = $("#addMaxDayli" + i).find(".chargingrule-wid24:first").val(); + var endBillingTimeNew = $("#addMaxDayli" + i).find(".chargingrule-wid24:nth-child(2)").val(); + var unitRate = $("#addMaxDayli" + i).find(".chargingrule-wid3").val(); + var unit = $("#addMaxDayli" + i).find(".addCarType option:selected").attr("value"); + + /***判断第一个结束时间和 第2个开始时间是否相等**/ + if (parseInt(endBillingTime) != parseInt(startBillingTimeNew)) { + var minDay = { + unit: 1, + unitRate: 1, + startBillingTime: 1, + endBillingTime: 1, + sort: 1 + }; + ruleConfigListForMaxDay.push(minDay); + } + + /***判断下一个开始时间和 第2个结束时间是否相等**/ + + var startNext = $("#addMaxDayli" + (i + 1)).find(".chargingrule-wid24:first").val(); + if (startNext != undefined && startNext != null) { + if (parseInt(endBillingTimeNew) != parseInt(startNext)) { + var minDay = { + unit: 1, + unitRate: 1, + startBillingTime: 1, + endBillingTime: 1, + sort: 1 + }; + ruleConfigListForMaxDay.push(minDay); + } + + } + var minDay = { + unit: unit, + unitRate: unitRate * 100, + startBillingTime: startBillingTimeNew * 3600, + endBillingTime: endBillingTimeNew * 3600, + sort: i + }; + ruleConfigListForMaxDay.push(minDay); + endBillingTime = endBillingTimeNew; + + } + } + return ruleConfigListForMaxDay; + }; + + /** + * 获取大型车黑夜 + * @param {Object} ruleConfigListForMaxNight + */ + function getRuleConfigListForMaxNight(ruleConfigListForMaxNight) { + var startBillingTime = $("#two-max-pre").val(); + var endBillingTime = $("#two-max-center").val(); + var unitRate = $("#two-max-after").val(); + var unit = $("#twobigaddtimeTypes option:selected").attr("value"); + + var minDay = { + unit: unit, + unitRate: unitRate * 100, + startBillingTime: startBillingTime * 3600, + endBillingTime: endBillingTime * 3600, + sort: 1 + }; + ruleConfigListForMaxNight.push(minDay); + + //判断有几个li + if (rightbig > 1) { + for (var i = 2; i <= rightbig; i++) { + var startBillingTimeNew = $("#addMaxNightli" + i).find(".chargingrule-wid24:first").val(); + var endBillingTimeNew = $("#addMaxNightli" + i).find(".chargingrule-wid24:nth-child(2)").val(); + var unitRate = $("#addMaxNightli" + i).find(".chargingrule-wid3").val(); + var unit = $("#addMaxNightli" + i).find(".addCarType option:selected").attr("value"); + + /***判断第一个结束时间和 第2个开始时间是否相等**/ + if (parseInt(endBillingTime) != parseInt(startBillingTimeNew)) { + var minDay = { + unit: 1, + unitRate: 1, + startBillingTime: 1, + endBillingTime: 1, + sort: 1 + }; + ruleConfigListForMaxNight.push(minDay); + } + + /***判断下一个开始时间和 第2个结束时间是否相等**/ + + var startNext = $("#addMaxNightli" + (i + 1)).find(".chargingrule-wid24:first").val(); + if (startNext != undefined && startNext != null) { + if (parseInt(endBillingTimeNew) != parseInt(startNext)) { + var minDay = { + unit: 1, + unitRate: 1, + startBillingTime: 1, + endBillingTime: 1, + sort: 1 + }; + ruleConfigListForMaxNight.push(minDay); + } + + } + var minDay = { + unit: unit, + unitRate: unitRate * 100, + startBillingTime: startBillingTimeNew * 3600, + endBillingTime: endBillingTimeNew * 3600, + sort: i + }; + ruleConfigListForMaxNight.push(minDay); + endBillingTime = endBillingTimeNew; + } + } + return ruleConfigListForMaxNight; + }; + + function saveChargeRule(rulename_inp, timeLimit, timeLength, crossTimeRuleType, maxCharge, applyDateType, + ruleConfigListForMinDay, ruleConfigListForMinNight, + ruleConfigListForMaxDay, ruleConfigListForMaxNight, startTime, endTime, freeTimeType, maxtimeLimit, maxChargeBig,billDesc) { + + var createEmpid = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var createName = StrUtil.isEmpty(fn.getUserName()) ? '-1' : fn.getUserName(); + //effDate = effDate == null || effDate.length == 0 ? null : new Date(effDate); + + var req = { + createOp: createEmpid, + createOpName: createName, + + ruleCollectName: rulename_inp, + dayMaxCharge: parseInt(timeLimit) * 100, + dayMaxChargeForBig: parseInt(maxtimeLimit) * 100, + fristFreeTime: timeLength * 60, + + crossTimeRuleType: crossTimeRuleType, + maxCharge: maxCharge, + maxChargeForBig: maxChargeBig, + applyDateType: applyDateType, + freeTimeType: freeTimeType, + + startTimeForDay: startTime, + endTimeForDay: endTime, + startTimeForNight: endTime, + endTimeForNight: startTime, + + ruleConfigListForMinDay: ruleConfigListForMinDay, + ruleConfigListForMinNight: ruleConfigListForMinNight, + ruleConfigListForMaxDay: ruleConfigListForMaxDay, + ruleConfigListForMaxNight: ruleConfigListForMaxNight, + billDesc:billDesc, + sysCode: sysComm.sysCode + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.saveBillingRuleAndConfigAndCollect(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + $('#add-submit').attr("disabled", false); + console.log(res); + leftsmall = 1; + leftbig = 1; + rightsmall = 1; + rightbig = 1; + if (res.code == '8888') { + if (res.data) { + swal({ + title: "提示", + text: "保存成功", + type: "success", + timer: 3000, + allowOutsideClick: true + }); + //初始化table + fun.init(); + //关闭添加页面 + $('#chargingrule_addmodel').modal('hide'); + } else { + //关闭添加页面 + $('#chargingrule_addmodel').modal('hide'); + swal({ + title: "提示", + text: res.msg, + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + return false; + } + + } else { + //关闭添加页面 + $('#chargingrule_addmodel').modal('hide'); + swal({ + title: "提示", + text: res.msg, + type: "warning", + timer: 3000, + allowOutsideClick: true + }); + } + } + }); + + }; +}; +pageInitChargingrule(); diff --git a/assets/pages/scripts/rulesetFile/img/Lineright-icon.png b/assets/pages/scripts/rulesetFile/img/Lineright-icon.png new file mode 100644 index 0000000..010e2ae Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/Lineright-icon.png differ diff --git a/assets/pages/scripts/rulesetFile/img/bgBlue-icon.png b/assets/pages/scripts/rulesetFile/img/bgBlue-icon.png new file mode 100644 index 0000000..1a17067 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/bgBlue-icon.png differ diff --git a/assets/pages/scripts/rulesetFile/img/bgGray-icon.png b/assets/pages/scripts/rulesetFile/img/bgGray-icon.png new file mode 100644 index 0000000..bbbe22e Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/bgGray-icon.png differ diff --git a/assets/pages/scripts/rulesetFile/img/carBig-icon.png b/assets/pages/scripts/rulesetFile/img/carBig-icon.png new file mode 100644 index 0000000..dff430d Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/carBig-icon.png differ diff --git a/assets/pages/scripts/rulesetFile/img/carSmall-icon.png b/assets/pages/scripts/rulesetFile/img/carSmall-icon.png new file mode 100644 index 0000000..177889c Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/carSmall-icon.png differ diff --git a/assets/pages/scripts/rulesetFile/img/chargingrule-circle-blue.png b/assets/pages/scripts/rulesetFile/img/chargingrule-circle-blue.png new file mode 100644 index 0000000..dfd36ca Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/chargingrule-circle-blue.png differ diff --git a/assets/pages/scripts/rulesetFile/img/chargingrule-circle-green.png b/assets/pages/scripts/rulesetFile/img/chargingrule-circle-green.png new file mode 100644 index 0000000..e47a229 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/chargingrule-circle-green.png differ diff --git a/assets/pages/scripts/rulesetFile/img/chargingrule-circle-yellow.png b/assets/pages/scripts/rulesetFile/img/chargingrule-circle-yellow.png new file mode 100644 index 0000000..d09a7fd Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/chargingrule-circle-yellow.png differ diff --git a/assets/pages/scripts/rulesetFile/img/chargingrule-more.png b/assets/pages/scripts/rulesetFile/img/chargingrule-more.png new file mode 100644 index 0000000..467bee7 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/chargingrule-more.png differ diff --git a/assets/pages/scripts/rulesetFile/img/chargingrule-time.png b/assets/pages/scripts/rulesetFile/img/chargingrule-time.png new file mode 100644 index 0000000..ff39533 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/chargingrule-time.png differ diff --git a/assets/pages/scripts/rulesetFile/img/chargingrule_smallIcon.png b/assets/pages/scripts/rulesetFile/img/chargingrule_smallIcon.png new file mode 100644 index 0000000..60631d6 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/chargingrule_smallIcon.png differ diff --git a/assets/pages/scripts/rulesetFile/img/dataicon.png b/assets/pages/scripts/rulesetFile/img/dataicon.png new file mode 100644 index 0000000..b04bfc8 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/dataicon.png differ diff --git a/assets/pages/scripts/rulesetFile/img/day-iconbg.png b/assets/pages/scripts/rulesetFile/img/day-iconbg.png new file mode 100644 index 0000000..ffd131d Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/day-iconbg.png differ diff --git a/assets/pages/scripts/rulesetFile/img/delList-icon.png b/assets/pages/scripts/rulesetFile/img/delList-icon.png new file mode 100644 index 0000000..a7060a3 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/delList-icon.png differ diff --git a/assets/pages/scripts/rulesetFile/img/delete_Rule.png b/assets/pages/scripts/rulesetFile/img/delete_Rule.png new file mode 100644 index 0000000..aa416f0 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/delete_Rule.png differ diff --git a/assets/pages/scripts/rulesetFile/img/discountrule_bgIco.png b/assets/pages/scripts/rulesetFile/img/discountrule_bgIco.png new file mode 100644 index 0000000..3527e1e Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/discountrule_bgIco.png differ diff --git a/assets/pages/scripts/rulesetFile/img/discountrule_topBgico.png b/assets/pages/scripts/rulesetFile/img/discountrule_topBgico.png new file mode 100644 index 0000000..912196a Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/discountrule_topBgico.png differ diff --git a/assets/pages/scripts/rulesetFile/img/find_icon.png b/assets/pages/scripts/rulesetFile/img/find_icon.png new file mode 100644 index 0000000..e3b88d2 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/find_icon.png differ diff --git a/assets/pages/scripts/rulesetFile/img/input-checkbox.png b/assets/pages/scripts/rulesetFile/img/input-checkbox.png new file mode 100644 index 0000000..27709ab Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/input-checkbox.png differ diff --git a/assets/pages/scripts/rulesetFile/img/input-checkexActive.png b/assets/pages/scripts/rulesetFile/img/input-checkexActive.png new file mode 100644 index 0000000..2e44210 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/input-checkexActive.png differ diff --git a/assets/pages/scripts/rulesetFile/img/input-radio-active.png b/assets/pages/scripts/rulesetFile/img/input-radio-active.png new file mode 100644 index 0000000..2649720 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/input-radio-active.png differ diff --git a/assets/pages/scripts/rulesetFile/img/input-radio.png b/assets/pages/scripts/rulesetFile/img/input-radio.png new file mode 100644 index 0000000..35e0b1b Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/input-radio.png differ diff --git a/assets/pages/scripts/rulesetFile/img/night-iconbg.png b/assets/pages/scripts/rulesetFile/img/night-iconbg.png new file mode 100644 index 0000000..f13bc21 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/night-iconbg.png differ diff --git a/assets/pages/scripts/rulesetFile/img/parkclose_icon.png b/assets/pages/scripts/rulesetFile/img/parkclose_icon.png new file mode 100644 index 0000000..61e4a24 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/parkclose_icon.png differ diff --git a/assets/pages/scripts/rulesetFile/img/popParknullIco.png b/assets/pages/scripts/rulesetFile/img/popParknullIco.png new file mode 100644 index 0000000..6efd454 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/popParknullIco.png differ diff --git a/assets/pages/scripts/rulesetFile/img/rule_add.png b/assets/pages/scripts/rulesetFile/img/rule_add.png new file mode 100644 index 0000000..16893df Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/rule_add.png differ diff --git a/assets/pages/scripts/rulesetFile/img/rule_del.png b/assets/pages/scripts/rulesetFile/img/rule_del.png new file mode 100644 index 0000000..c7e11f7 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/rule_del.png differ diff --git a/assets/pages/scripts/rulesetFile/img/truelist-blue.png b/assets/pages/scripts/rulesetFile/img/truelist-blue.png new file mode 100644 index 0000000..49ed84b Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/truelist-blue.png differ diff --git a/assets/pages/scripts/rulesetFile/img/truelist-green.png b/assets/pages/scripts/rulesetFile/img/truelist-green.png new file mode 100644 index 0000000..13a160e Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/truelist-green.png differ diff --git a/assets/pages/scripts/rulesetFile/img/truelist-orange.png b/assets/pages/scripts/rulesetFile/img/truelist-orange.png new file mode 100644 index 0000000..01d41f5 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/truelist-orange.png differ diff --git a/assets/pages/scripts/rulesetFile/img/vipcardrule-1.png b/assets/pages/scripts/rulesetFile/img/vipcardrule-1.png new file mode 100644 index 0000000..2f952ee Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/vipcardrule-1.png differ diff --git a/assets/pages/scripts/rulesetFile/img/vipcardrule-2.png b/assets/pages/scripts/rulesetFile/img/vipcardrule-2.png new file mode 100644 index 0000000..bb1fdfc Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/vipcardrule-2.png differ diff --git a/assets/pages/scripts/rulesetFile/img/vipcardrule-3.png b/assets/pages/scripts/rulesetFile/img/vipcardrule-3.png new file mode 100644 index 0000000..bb1fdfc Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/vipcardrule-3.png differ diff --git a/assets/pages/scripts/rulesetFile/img/vipcardrule-blue.png b/assets/pages/scripts/rulesetFile/img/vipcardrule-blue.png new file mode 100644 index 0000000..d32b586 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/vipcardrule-blue.png differ diff --git a/assets/pages/scripts/rulesetFile/img/vipcardrule-edit-1.png b/assets/pages/scripts/rulesetFile/img/vipcardrule-edit-1.png new file mode 100644 index 0000000..00cf034 Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/vipcardrule-edit-1.png differ diff --git a/assets/pages/scripts/rulesetFile/img/vipcardrule-edit-2.png b/assets/pages/scripts/rulesetFile/img/vipcardrule-edit-2.png new file mode 100644 index 0000000..bc77cca Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/vipcardrule-edit-2.png differ diff --git a/assets/pages/scripts/rulesetFile/img/vipcardrule-edit-3.png b/assets/pages/scripts/rulesetFile/img/vipcardrule-edit-3.png new file mode 100644 index 0000000..bc77cca Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/vipcardrule-edit-3.png differ diff --git a/assets/pages/scripts/rulesetFile/img/vipcardrule-green.png b/assets/pages/scripts/rulesetFile/img/vipcardrule-green.png new file mode 100644 index 0000000..d2af31e Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/vipcardrule-green.png differ diff --git a/assets/pages/scripts/rulesetFile/img/vipcardrule-red.png b/assets/pages/scripts/rulesetFile/img/vipcardrule-red.png new file mode 100644 index 0000000..2139cce Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/vipcardrule-red.png differ diff --git a/assets/pages/scripts/rulesetFile/img/vipcardrule-yellow.png b/assets/pages/scripts/rulesetFile/img/vipcardrule-yellow.png new file mode 100644 index 0000000..c34267c Binary files /dev/null and b/assets/pages/scripts/rulesetFile/img/vipcardrule-yellow.png differ diff --git a/assets/pages/scripts/rulesetFile/rateFile/ratemanage.css b/assets/pages/scripts/rulesetFile/rateFile/ratemanage.css new file mode 100644 index 0000000..c848612 --- /dev/null +++ b/assets/pages/scripts/rulesetFile/rateFile/ratemanage.css @@ -0,0 +1,400 @@ +/*新样式start*/ + /*树*/ +#user_org_tree li span.button.ico_docu{ + background-position: -17px -105px; +} +#user_org_tree li span.button.ico_open{ + background-position: 1px -105px; +} + +#user_org_tree li span.button.ico_close{ + background-position: 1px -105px; +} + + + +.ratemanage-parking-l{ + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.ratemanage-daterange-bg { + width: 180px; + text-align: left; + background: url(../img/dataicon.png) no-repeat 152px 9px; + background-color: #fff; + padding-right: 40px; +} +/*新样式end*/ +/*----------- 预览弹窗 sta -------------*/ +.ratemanage-form-step { + max-height: 467px; + overflow-y: scroll; +} +.ratemanage-width80 { + width: 80px; +} +.ratemanage-width60{ + width: 60px; +} +.ratemanage-bgf5f7f8{ + background-color: #f5f7f8 !important; +} +.ratemanage-pad5{ + padding-left:5px; + padding-right:5px; +} +/*特殊资费*/ +.ratemanage-space-tit{ + height: 22px; + line-height: 22px; + width: 82px; + margin-left: 20px; + cursor: pointer; + background: url("../img/chargingrule_smallIcon.png") no-repeat; + background-position: 0px 1px; + padding-left: 10px; + color: #fff; +} +.ratemanage-space-titactive{ + background: url("../img/chargingrule_smallIcon.png") no-repeat; + background-position: -97px 1px; + padding-left: 20px !important; +} +.ratemanage-special-con{ + margin:9px; + border: 1px dashed #cfcfcf; + padding: 22px 10px; + display: none; +} +.ratemanage-padl5{ + padding-left: 5px; +} +.ratemanage-add-msg{ + height: 22px; + line-height: 22px; + width: 100%; + font-size: 12px; +} +.ratemanage-wid105{ + width: 105px; +} +.ratemanage-wid138{ + width: 138px; +} +/*特殊资费 end*/ +/*规则样式 sta*/ +.ratemanage-daycon-main{ + width: 322px; +} +.ratemanage-common-marl9{ + margin-left: 9px; +} +.ratemanage-daytitImg{ + width: 26px; + height: 24px; + top: 5px; + left: 60px; + background: url(../img/chargingrule_smallIcon.png) no-repeat; + background-position: -140px -30px; +} +.ratemanage-nighttitImg{ + width: 26px; + height: 24px; + top: 5px; + left: 60px; + background: url(../img/chargingrule_smallIcon.png) no-repeat; + background-position: -105px -30px; +} +/*大型车小型车 icon*/ +.ratemanage-car-smallbg{ + margin-top: 9px; + width: 18px; + height: 18px; + float: left; + background: url(../img/chargingrule_smallIcon.png) no-repeat; + background-position: -72px -66px; +} +.ratemanage-car-bigbg{ + margin-top: 9px; + width: 18px; + height: 18px; + float: left; + background: url("../img/chargingrule_smallIcon.png") no-repeat; + background-position: -98px -66px; +} +/*icon end*/ +/*规则样式内容*/ +.ratemanage-car-common{ + height: 36px; + line-height: 36px; + width: 290px; + margin: 0 16px; + border-bottom: 1px solid #d8e2e5; +} +.ratemanage-add-right{ + height: 36px; + width: 26px; + text-align: center; + float: right; + cursor: pointer; +} +.ratemanage-car-name{ + width: 60px; + float: left; + height: 36px; + line-height: 36px; + margin-left: 10px; +} +.ratemanage-defaultUl,.ratemanage-addSmallul,.ratemanage-addBigul{ + padding-left: 16px; + padding-bottom: 5px; +} +.ratemanage-defaultUl .ratemanage-car-contmsg{ + width: 290px; + height: 28px; + line-height: 28px; + margin-top: 5px; +} +.ratemanage-wid24{ + width: 22px; +} +.ratemanage-wid3{ + width: 30px; +} +.ratemanage-time-style{ + outline:none; + border: none; + color: #26be96; + height: 22px; + text-align: center; + line-height: 22px; + display: inline-block; + border-bottom: 1px dashed #26be96; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.ratemanage-daycon-main input{ + background-color: #f5f7f8 !important; +} +.ratemanage-addSmallli,.ratemanage-addBigli{ + width: 290px; + height: 28px; + line-height: 28px; + margin-bottom: 8px; +} +.ratemanage-addleft{ + float: left; + height: 28px; + line-height: 28px; +} +.ratemanage-wid105{ + width: 105px; +} +.ratemanage-wid138{ + width: 138px; +} +/*layui时间插件样式*/ +.layui-laydate-header{ + display: none; +} +/*删除按钮*/ +.ratemanage-minusBtn{ + margin-top: 8px; + background: url(../img/chargingrule_smallIcon.png) no-repeat; + background-position: -44px -35px; + width: 15px; + height: 15px; + cursor: pointer; + float: left; +} +/*select 下拉框字体样式*/ +.ratemanage-car-contmsg .btn-group,.ratemanage-addSmallli .btn-group,.ratemanage-addBigli .btn-group{ + height: 28px; + line-height: 28px; + float: left; +} +.ratemanage-car-contmsg .btn,.ratemanage-addSmallli .btn,.ratemanage-addBigli .btn{ + padding:3px 6px !important; + background: #f5f7f8; + color: #6aabe9; + border-color: #f5f7f8 !important; +} +.ratemanage-car-contmsg .dropdown-menu.inner,.ratemanage-addSmallli .dropdown-menu.inner,.ratemanage-addBigli .dropdown-menu.inner{ + width: 90px !important; +} +.ratemanage-defaultUl .btn,.ratemanage-addSmallul .btn,.ratemanage-addBigul .btn{ + font-size: 13px !important; +} +/*----------- 预览弹窗 end -------------*/ +/*----------- 新增弹窗 sta -------------*/ +.ratemanage-tree-wrap{ + height: 300px; +} +.ratemanage-saleCard { + float: left; + width: 205px; + height: 34px; + line-height: 34px; + padding-left: 10px; +} +.ratemanage-borcol { + border: 1px solid #c2cad8; +} +.ratemanage-findPark { + position: absolute; + top: 0; + right: 0; + height: 34px; + width: 34px; + background: url(../img/find_icon.png) no-repeat; + background-size: 17px 17px; + background-position: 6px 8px; + cursor: pointer; +} +/*----------- 树 sta -------------*/ +.ratemanage-Tree-cont{ + width: 664px; + margin-left: 9px; + height: 225px; + background-color: #f5f7f8; +} +.ratemanage-form-group-ul { + height: 225px; + margin-left: 50px; + width: 250px; + float: left; + padding-top: 15px; + overflow-y: auto; +} +.ratemanage-toLineright{ + float: left; + width: 1px; + height: 172px; + margin-top: 26px; + background-color: #c2cad8; +} +.ratemanage-treeview-checkable_org { + width: 240px; + overflow-y: auto; + overflow-x: auto; +} +.ratemanage-form-grup-checked { + padding-top: 15px; + padding-left: 35px; + height: 225px; + width: 345px; + overflow-y: auto; + float: left; +} +/*----------- 规则list sta -------------*/ +.ratemanage-radio-wrap{ + height: 150px; +} +.ratemanage-radio-main{ + width: 664px; + margin-left: 9px; + height: 100px; + overflow-y: auto; + padding-left: 15px !important; + padding-top: 15px; + background-color: #f5f7f8; +} +.ratemanage-radio-main li{ + float: left; + margin: 0px 12px 5px 0; + width: 200px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + padding-left: 20px; + background: url(../img/input-radio.png) no-repeat 0 center; + cursor: pointer; +} +.ratemanage-radio-main li.radioActive{ + background: url("../img/input-radio-active.png") no-repeat 0 center; +} +.ratemanagepop-daterange-bg { + width: 220px; + text-align: left; + background: url(../img/dataicon.png) no-repeat 190px 9px; + background-color: #fff; + padding-right: 30px; +} +.ratemanagepop-parkCheck, .ratemanagepop-editParkCheck { + width: 140px; + height: 28px; + line-height: 28px; + padding: 0 24px 0 12px; + display: inline-block; + border-radius: 4px !important; + background-color: #fff; + border: 1px solid #d8e2e5; + position: relative; + margin: 0 5px 5px 0; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.ratemanagepop-closex, .ratemanagepop-editclosex { + position: absolute; + top: 10px; + right: 9px; + height: 9px; + width: 9px; + background: url(../img/parkclose_icon.png) no-repeat; + background-size: 9px 9px; + cursor: pointer; +} + + + + + + +/*错误提示*/ +#errormodel .modal-content{ + margin-top: 150px; + margin-left: 186px; + height: 44px; + width: 300px; + text-align: center; + border-radius: 20px !important; +} +#errormodel .modal-body{ + font-size: 13px; + background: #1f2b3d; + color: #fff; + height: 44px; + line-height: 44px; + padding: 0; + border-radius: 20px !important; +} + + + + + + + + + + + +/*----------- 新增弹窗 end -------------*/ +/*暂无停车场样式*/ +.ratemanage-nodata{ + width: 190px; + height: 185px; + padding-top: 50px; +} + +/* new topbar */ + +.ratemanage-input78{ + width: 78%; + height: 34px; + line-height: 34px; +} diff --git a/assets/pages/scripts/rulesetFile/rateFile/ratemanage.html b/assets/pages/scripts/rulesetFile/rateFile/ratemanage.html new file mode 100644 index 0000000..767635d --- /dev/null +++ b/assets/pages/scripts/rulesetFile/rateFile/ratemanage.html @@ -0,0 +1,348 @@ + +
              +
              +
              +
              +
              + +
              +
              + +
              +
              + 规则名称 + +
              +
              +
              +
              更多
              +
              +
              +
              查询
              +
              +
              +
              + + +
              +
              +
              + + +
              +
              +
              +
                +
              • 详细记录
              • +
              • + + +
              • +
              +
              +
              +
              +
              + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/rulesetFile/rateFile/ratemanage.js b/assets/pages/scripts/rulesetFile/rateFile/ratemanage.js new file mode 100644 index 0000000..219a092 --- /dev/null +++ b/assets/pages/scripts/rulesetFile/rateFile/ratemanage.js @@ -0,0 +1,1278 @@ +//导出功能 +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; + +function pageInitratemanage() { + var arrid = []; + var cacheParkData; + + /*时间筛选框*/ + $("#startTime").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + + format: 'yyyy-mm-dd', + + autoclose: true, + minView: 3, + minuteStep: 1, + // //maxDate:moment().subtract('months', 3), + // minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + $("#endTime").datetimepicker({ + // endDate: moment().subtract('seconds', 0).format('YYYY-MM-DD'), + + format: 'yyyy-mm-dd', + + autoclose: true, + minView: 3, + minuteStep: 1, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + // minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + /*时间筛选框*/ + // $("#timeinStartDate").val(moment().subtract('days',1).format('YYYY-MM-DD')); + + var timestartaddDate=moment().subtract('days', 0).format('YYYY/M/DD'); + /* $("#timeinStartDate").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + minView: 3, + minuteStep: 1, + // //maxDate:moment().subtract('months', 3), + // minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-right" + });*/ + $("#staType").selectpicker('refresh'); + + var fun = { + //根据块信息查询停车场信息 + initParkSelect: function () { + //停车场下拉框 + var data = fun.getParkingLotMsg(); + $("#parkIds").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('refresh'); + }, + //停车区域-块 + initParkBlock: function () { + var data = fn.getParkBlock(); + $("#plAreaBlockIds").empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#plAreaBlockIds").append(html); + $('#plAreaBlockIds').selectpicker('render'); + //加载下拉框 + fun.initParkSelect(); + }, + //条件查询 + queryBtn: function () { + documentBindFunc.on('click', '#queryBtn', function () { + //初始化table + fun.createTableData(); + }); + }, + //块改变查询停车场 + queryBlockChange: function () { + $("#plAreaBlockIds").change(function () { + fun.initParkSelect(); + }); + }, + getParkingLotMsg: function () { + var parkLot = ""; + var plAreaBlockIds = JSON.parse($("#plAreaBlockIds").val()); + var req = {plBlockIds: plAreaBlockIds}; + var opt = { + async: false, + data: 'plBlockIds=' + plAreaBlockIds, + method: "get", + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + url: dataUrl.util.getParkBlockNamesByBlockId(), + success: function (res) { + if (res.code == '8888') { + parkLot = JSON.stringify(res.data); + } + } + } + sysAjax(opt); + return JSON.parse(parkLot); + }, + initRuleCollect: function () { + $('#radio-main').empty(); + var req = { + sysCode: sysComm.sysCode + }; + + var opt = { + method: 'post', + url: dataUrl.util.queryBillingRuleCollects(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var html = ''; + $.each(res.data, function (index, item) { + html += '
            38. ' + item.ruleCollectName + '
            39. ' + }) + $('#radio-main').append(html); + $('#radio-main li:first').addClass('radioActive'); + + } else { + swal({title: "提示", text: res.msg, type: "warning", timer: 3000, allowOutsideClick: true}); + return; + } + } + }; + sysAjax(opt); + }, + //获取选中的停车场 + getSelectPark: function () { + var parkNos = []; + var doms = $('#parkCheck span.ratemanagepop-parkCheck'); + $.each(doms, function (index, item) { + parkNos.push($(item).data('id')); + }) + return parkNos; + }, + //获取选中的计费规则 + getSelectRuleCollect: function () { + var ruleCollectNo = $('li.radioActive').data('no'); + return ruleCollectNo; + }, + //获取新增计费绑定关系中用户输入的生效时间 + getEffectTimeOfAddRel: function () { + var time = $("#timeinStartDate").val(); + return time; + }, + init: function () { + + + fun.initRuleCollect(); + //初始化块下拉框 + fun.initParkBlock(); + //块下拉框变化,停车场下拉框变化 + fun.queryBlockChange(); + fun.queryBtn(); + + + }, + //生成表格数据 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'id', + title: '主键', + width: '10%', + visible: false, + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'servise', + title: '服务点', + width: '15%', + align: 'left', + formatter: function (value, row, index) { + if(mapObj[row.plNo]==null||mapObj[row.plNo]==''||mapObj[row.plNo]==undefined){ + return '-'; + } + return mapObj[row.plNo]; + } + }, + + { + field: 'plName', + title: '车场名称', + width: '15%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'ruleCollectName', + title: '规则名称', + width: '15%', + align: 'left', + formatter: function (value, row, index) { + //console.log(row.ruleCollectNo); + if(row.ruleCollectName==''||row.ruleCollectName==null||row.ruleCollectName==undefined){ + return '-'; + } + var html = ''; + html += "" + row.ruleCollectName + ""; + return html; + } + }, + { + field: 'effectTime', + title: '生效时间', + width: '10%', + align: 'left', + visible: true, + formatter:commonObj.timeOneFormatter + }, + { + field: 'expireTime', + title: '失效时间', + width: '10%', + align: 'left', + visible: true, + formatter:commonObj.timeOneFormatter + }, + + { + field: 'dataStates', + title: '状态', + width: '10%', + align: 'left', + formatter: function (value, row, index) { + var date = new Date(); + if (row.expireTime == null ||row.expireTime==''||row.expireTime==undefined) { + return "无效"; + } else { + if (row.effectTime <= date.getTime() && date.getTime() <= row.expireTime) { + return "生效中"; + } else if (date.getTime() < row.effectTime && date.getTime() < row.expireTime && row.effectTime < row.expireTime ) { + return "未生效"; + } else { + return "已失效"; + } + } + } + }, + ] + }); + + }, + + /*获取查询参数*/ + getQueryParam: function () { + + /*状态:1:生效 中2:已失效 3:未生效*/ + var isEff = $("#staType").val(); + if (isEff == "ALL" || isEff == undefined) { + isEff = null; + } + var plNos = JSON.parse($("#parkIds").val()); + /*开始时间*/ + var beginTime = $('#startTime').val(); + /*结束时间*/ + var endTime = $('#endTime').val(); + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date(beginTime); + endTime = endTime == null || endTime.length == 0 ? null : new Date(endTime + " 23:59:59"); + + /*规则名称*/ + var ruleCollectName = $("#ruleName").val(); + ruleCollectName = ruleCollectName == null || ruleCollectName.length == 0 ? null : ruleCollectName.trim(); + + + var req = { + plNos: plNos, + ruleCollectName: ruleCollectName, + effectTime: beginTime, + expireTime: endTime, + isEff: isEff, + }; + console.log(req); + return req; + }, + + }; + + +//初始执行 + fun.init(); + documentBindFunc.on('click', '#queryBtn', function () { + fun.createTableData(); + }); + + + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryBillingParkRuleRelForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + // console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + else if(res.code == '1003'){ + //alert('未查询到停车场!') + $('.fixed-table-loading').css('display','none'); + } + } + }; + sysAjax(opt); + } + + +// $('#addmodel').modal('show'); +// 新增初始化 + $('#ratemanage-addBtn').on('click', function () { + $('#add-submit').attr('data-flag','0'); + + //规则名称初始化 + $('#ratemanage_rule').addClass('display-none').text(''); + $('#add-findPark').val('');//搜索框初始化 + $('#parkCheck').empty();//树下面内容初始化 + $('#add-findPark').val(''); + $('#rulename_inp').val(''); + $('#parkCheck').empty(); + /*有效失效时间筛选框*/ + $("#timeinStartDate").val(moment().add('day', 1).format('YYYY-MM-DD')) + $("#timeinStartDate").datetimepicker({ + startDate: moment().add('day', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + // //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-left" + }).on('changeDate', function(ev){ + console.log((ev.date).toLocaleDateString()) + console.log(timestartaddDate) + if ((ev.date).toLocaleDateString() ==timestartaddDate){ + $('#rate_alertmodel').modal('show'); + } + }); + areaTree.initTree(); //初始化区域tree + + + $('#ratemanage-addmodel').modal('show'); + }); +// 规则名称 点击事件 + $(document).delegate('#radio-main li', 'click', function () { + $('#radio-main li').removeClass('radioActive'); + $(this).addClass('radioActive'); + }); +// 点击预览详情 + documentBindFunc.on('click', '.reviseMon', function () { + $('#ratemanage_Readmodel').modal('show'); + }); + +// 点击新增取消按钮 + documentBindFunc.on('click', '#cancel-btn', function () { + $('#ratemanage-addBtn').removeClass('active'); + }); + +// 点击新增关闭按钮 + documentBindFunc.on('click', '#addClose', function () { + $('#ratemanage-addBtn').removeClass('active'); + }); + + +//特殊资费 + $(".ratemanage-space-tit").click(function () { + $(".ratemanage-space-tit").toggleClass("ratemanage-space-titactive"); + $('.ratemanage-special-con').toggle(); + }); +// 规则名称 搜索 + $('#rulename-btn').on('click', function () { + var searchStr = $('#rulename_inp').val(); + if (null == searchStr || searchStr.length == 0) { + //所有数据都展示 + $('#radio-main li').show(); + return; + } + //是否有展示的数据 + var hasShow = false; + var doms = $('#radio-main li'); + $('#radio-main li').removeClass('radioActive'); + $.each(doms, function (index, item) { + var str = $(item).find('span').text(); + if (str.indexOf(searchStr) < 0) { + $(item).hide(); + } else { + hasShow = true; + $('#ratemanage_rule').addClass('display-none') + $(item).show(); + } + }) + + if (!hasShow) { + //没有要展示的数据 ratemanage_rule + $('#ratemanage_rule').removeClass('display-none').text('错误提示:没有匹配的计费规则名称'); + doms.show(); + } + + }); + + + function plSearch() { + //先展示所有节点 + areaTree.showAllNodes(); + var search = $("#add-findPark").val(); + //如果为空,就直接把所有 + if (search == undefined || null == search || search.trim() == "") { + //折叠起所有 + areaTree.expandAll(false); + return; + } + + var nodes = areaTree.getNodesByFilter(nodeFilter, search) + areaTree.hideNodes(nodes); + //展开所有 + areaTree.expandAll(true); + + } + /** + * + * 过滤出level==1 并且 不包含搜索字符串的数据,根节点level 为0 + */ + function nodeFilter(node, search) { + return (node.level == 1 && node.name.indexOf(search)<0); + } + + documentBindFunc.on('click','#findPark',function () { + var val = $.trim($('#add-findPark').val()); + $('#ratemanage_rule').addClass('display-none').text(''); + areaTree.getNodesByParamFuzzy(val); + //plSearch(); + }) + +//--------------------------------------树 +//新增 + var areaTree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#user_org_tree"), areaTree.setting, areaTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.expandAll(false); + areaTree.selectedNodes(0); + }, + setting: { + view: { + selectedMulti: true //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "checkbox", + // chkStyle: "radio", + radioType: "all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + callback: { + onCheck: zTreeOnCheck + }, + edit: { + enable: false + } + }, + expandAll:function(expandFlag){ + //expandFlag = true 表示 展开 全部节点 + //expandFlag = false 表示 折叠 全部节点 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.expandAll(expandFlag); + }, + showAllNodes: function () { + //将所有隐藏的节点显示 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodesByParam("isHidden", true); + treeObj.showNodes(nodes); + }, + hideAllNodes: function () { + //将所有节点隐藏 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodes(); + treeObj.hideNodes(nodes); + + + }, + showNodes: function (nodes) { + //展示指定的节点 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.showNodes(nodes); + }, + hideNodes:function(nodes){ + //隐藏指定的节点 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.hideNodes(nodes); + }, + getNodesByFilter: function (filter, invokeParam) { + + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + return treeObj.getNodesByFilter(filter, false, null, invokeParam); + + + }, + getNodesByParamFuzzyAll: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodes(); + for (var i = 0; i < nodes.length; i++) { + treeObj.setting.view.fontCss["color"] = '#575757'; + treeObj.updateNode(nodes[i]); + var children = nodes[i].children; + if(children != null && children!="" && children != undefined){ + for (var j = 0; j < children.length; j++) { + treeObj.setting.view.fontCss["color"] = '#575757'; + treeObj.updateNode(children[j]); + } + } + + + } + }, + //根据名称模糊搜索树 + getNodesByParamFuzzy: function (name) { + areaTree.getNodesByParamFuzzyAll(); + if (name != "" && name != null) { + var treeObjs = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodess = treeObjs.getNodesByParamFuzzy("name",name, null); + if(nodess.length <=0){ + $('#ratemanage_rule').removeClass('display-none').text('提示:没有搜索到停车场'); + return false; + } + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodesByParamFuzzy("name", name, null); + for (var i = 0; i < nodes.length; i++) { + treeObj.setting.view.fontCss["color"] = '#CD0000'; + treeObj.updateNode(nodes[i]); + //获取父节点 + var parentNote = areaTree.getNodeById(nodes[i].pId); + treeObj.updateNode(parentNote); + } + } else { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodes(); + if (nodes.length > 0) { + for (var i = 0; i < nodes.length; i++) { + treeObj.expandNode(nodes[i], false, true, true); + } + } + $('#ratemanage_rule').removeClass('display-none').text('提示:没有搜索到停车场'); + return false; + } + + }, + //展开某个节点 + selectedNodes: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodesByParam("id", id, null); + if (nodes.length > 0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = areaTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if (node == null) { + continue; + } + node.checked = true; + areaTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var treeNode = areaTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = areaTree.getNodeById(ids[i]); + } + return nodes; + }, + //根据id取消选/选中节点 + updateNodesForNotChecked: function (id, checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + node.checked = checked; + treeObj.updateNode(node); + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForArea: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index = 0; + for (var i = 0; i < nodes.length; i++) { + if (null != nodes[i].areaType && "70" == nodes[i].areaType) { + ids[index++] = { + areaId: nodes[i].id, + areaType: nodes[i].areaType, + plNo: nodes[i].pId, + orgAreaType: 1 + }; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names = ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names + "," + nodes[i].name; + } + return names; + }, + + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData: function () { + var sysCode = sessionStorage.getItem("sysCode"); + var zNodes = []; + sysAjax({ + method: 'POST', + url: dataUrl.util.vipCardSelectParkTree(), + //data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (isError(res)) { + return false; + } + //console.log("res.data=" + res.data); + $.each(res.data, function (index, rows) { + var data = ""; + if (rows.level == "1") {//服务点 + data = { + id: rows.id, + pId: rows.parentId, + name: rows.treeName, + level: rows.level, + chkDisabled: true + }; + } else { + data = {id: rows.id, pId: rows.parentId, name: rows.treeName, level: rows.level}; + } + + zNodes[index] = data; + }); + + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } + }; + + + $('#add-submit').on('click', function () { + + var plNos = fun.getSelectPark(); + var ruleCollectNo = fun.getSelectRuleCollect(); + var inputTime = fun.getEffectTimeOfAddRel(); + + + if (null == plNos || plNos.length == 0) { + $('#ratemanage_rule').removeClass('display-none').text('错误提示:请至少选择一个停车场'); + return false; + } + + if (null == ruleCollectNo) { + $('#ratemanage_rule').removeClass('display-none').text('错误提示:请选择一个计费规则'); + return false; + } + + if (null == inputTime || inputTime.length == 0) { + $('#ratemanage_rule').removeClass('display-none').text('错误提示:请输入生效时间'); + return false; + } + var flag=$('#add-submit').attr('data-flag'); + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + ruleCollectNo: ruleCollectNo, + effectTime: inputTime + }; + + var opt = { + method: 'post', + url: dataUrl.util.saveBillingParkRuleRel(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + + $("#add-submit").attr("disabled",false); + if (res.code == '8888') { + $('#ratemanage_rule').addClass('display-none') + $('#ratemanage-addBtn').removeClass('active'); + $('#ratemanage-addmodel').modal('hide'); + $("#queryBtn").trigger('click'); + } + } + }; + $("#add-submit").attr("disabled",true); + sysAjax(opt); + // if(flag==0){ + // if(inputTime==timestartaddDate){ + // $('#add-submit').attr('data-flag','1'); + // $('#rate_alertmodel').modal('show'); + // } + // }else{ + // + // + // } + + + + + + + + + + + }); + // $('#rate_textTrue').on('click', function (){ + // $('#rate_alertmodel').modal('hide'); + // }); + // $('#textFalse').on('click',function () { + // $('#add-submit').attr('data-flag','0'); + // }); +//新增树下面内容删除 + $(document).delegate('.ratemanagepop-closex', 'click', function () { + var valid = $(this).parent().attr('data-id'); + arrid.remove(valid); + $(this).parent().remove(); + //取消树的选中 + areaTree.updateNodesForNotChecked(valid, false); + }); + $('#write-submit').on('click', function () { + + }); + /** + * 处理错误信息 + * @param {Object} res + */ + function isError(res) { + if (res == null || res == undefined) { + return true; + } + if (res.code != '8888') { + alert('树失败') + return true; + } else { + return false; + } + } + /** + * 左侧单选按钮点击选中右侧.
              + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ + function zTreeOnCheck(event, treeId, treeNode) { + + if (treeNode.checked === true) { + $('#parkCheck').append('' + treeNode.name + '') + } else { + $('.ratemanagepop-parkCheck[data-id="' + treeNode.id + '"]').remove(); + //$('.parkCheck' + treeNode.id).remove(); + } + ; + + }; + + + function moneyFormatter(value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return 0; + } else { + return (value / 100).toFixed(2); + } + }; +//数组删除方式 + Array.prototype.indexOf = function (val) { + for (var i = 0; i < this.length; i++) { + if (this[i] == val) return i; + } + return -1; + }; + Array.prototype.remove = function (val) { + var index = this.indexOf(val); + if (index > -1) { + this.splice(index, 1); + } + }; + + + initPark(); + function initPark() { + mapObj = {}; + var data = fn.getParkLot(); + console.log(data); + for (var index in data) { + var keyValue = data[index].code; + var valueStr = data[index].areaName; + mapObj[keyValue] = valueStr; + } + + fun.createTableData(); + }; + + + $(document).delegate('.rulecollectdetil', 'click', function (element) { + //$('#row-read input').attr("readonly", "readonly"); + $(".ratemanage-special-con").css("display","none"); + $(".ratemanage-space-tit").removeClass("ratemanage-space-titactive"); + var ruleCollectName = $(this).attr("dataname"); + var ruleCollectNo = $(this).attr("datavalue"); +// console.log(ruleCollectNo); +// console.log(ruleCollectName); + showRuleDetai(ruleCollectName, ruleCollectNo); + + + }); + + + function showRuleDetai(ruleCollectName, ruleCollectNo) { + $("#ratemanage-rulenameread").html(ruleCollectName); + + var req = { + sysCode: sysComm.sysCode, + collectNo: ruleCollectNo + }; + + var opt = { + method: 'post', + url: dataUrl.util.queryBilingRuleShowInfoByCollectNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var rule = res.data; + $("#ratemanage-moneymaxread").html('小型车/'+formatFenToYuan(rule.dayMaxCharge)+' 大型车/'+formatFenToYuan(rule.dayMaxChargeForBig)); + + $("#ratemanage-freetimeread").html(formatSecondToMinute(rule.fristFreeTime) + "分钟"); + $("#ratemanage-applyDateRead").html(applyDateTypeFormatter(rule.applyDateType)); + + $("#ratemanage-maxRmbread").html('小型车/'+formatFenToYuan(rule.maxCharge)+' 大型车/'+formatFenToYuan(rule.maxChargerForBig)); + $("#ratemanage-crossTimeRuleRead").html(crossTimeRuleTypeFormatter(rule.crossTimeRuleType)); + $("#ratemanage-timelength").html(rule.freeTimeType==1?"否":"是") + $("#dayStartTimeRead").val(rule.dayStartTime); + $("#dayEndTimeRead").val(rule.dayEndTime); + $("#nightStartTimeRead").val(rule.dayEndTime); + $("#nightEndTimeRead").val(rule.dayStartTime); + var bigCarConfigRules = rule.bigCarRule.billingRuleConfigs; + var smallCarConfigRules = rule.smallCarRule.billingRuleConfigs; + + var bigCarNightTime; + var smallCarNightTime; + + $('#dayAndBigReadDetail').empty(); + $('#dayAndSmallReadDetail').empty(); + $('#nightAndSmallReadDetail').empty(); + $('#nightAndBigReadDetail').empty(); + //小型车 + $.each(smallCarConfigRules, function (index, item) { + if (item.isday == 1) { + //白天 + //先清空 + $('#dayAndSmallReadDetail').append( + '
            40. ' + + '至时,单位费率' + + '元/' + unitFormatter(item.unit) + '
            41. '); + } else { + //夜间 + if (null == smallCarNightTime) { + smallCarNightTime = item.startTime; + } + if (smallCarNightTime == item.startTime) { + $('#nightAndSmallReadDetail').append( + '
            42. ' + + '至时,单位费率' + + '元/' + unitFormatter(item.unit) + '
            43. '); + } + } + }) + + //大型车 + $.each(bigCarConfigRules, function (index, item) { + + if (item.isday == 1) { + //白天 + //先清空 + + $('#dayAndBigReadDetail').append( + '
            44. ' + + '至时,单位费率' + + '元/' + unitFormatter(item.unit) + '
            45. '); + } else { + //夜间 + if (null == smallCarNightTime) { + smallCarNightTime = item.startTime; + } + if (smallCarNightTime == item.startTime) { + $('#nightAndBigReadDetail').append( + '
            46. ' + + '至时,单位费率' + + '元/' + unitFormatter(item.unit) + '
            47. '); + } + } + }) + $('#ratemanage_Readmodel').modal('show'); + + } else { + swal({title: "提示", text: res.msg, type: "warning", timer: 3000, allowOutsideClick: true}); + return; + } + + } + }; + sysAjax(opt); + + + }; + + function formatterSecondToHour(value) { + if (value == null) { + return ""; + } + return value / 60 / 60; + } + + function unitFormatter(value) { + var result = ""; + if (value == null) { + return "-"; + } + switch (value) { + case 1: + result = '分钟'; + break; + case 2: + result = '15分钟'; + break; + case 3: + result = '30分钟'; + break; + case 4: + result = '1小时'; + break; + case 5: + result = '次'; + break; + default: + result = '未知'; + } + return result; + } + +//跨时间段规则类型 + function crossTimeRuleTypeFormatter(value) { + var result = ""; + if (value == null) { + return "-"; + } + switch (value) { + case 1: + result = '否'; + break; + case 2: + result = '后置匹配'; + break; + case 3: + result = '是'; + break; + default: + result = '未知'; + } + return result; + } + + function applyDateTypeFormatter(value) { + var result = ""; + if (value == null) { + return "-"; + } + switch (value) { + case -1: + result = '不限'; + break; + case 1: + result = '工作日'; + break; + case 2: + result = '非工作日'; + break; + default: + result = '未知'; + } + return result; + } + + function formatFenToYuan(fen) { + if (fen <= 0) { + return '不限' + } else { + return fen / 100 + '元' + } + } + + function formatFenToYuanWithNoUnit(fen) { + if (fen <= 0) { + return 0 + } else { + return fen / 100 + } + } + +//时间格式化 + function formatSecondToMinute(second) { + if (second <= 0) { + return 0 + } else { + return second / 60 + } + } +}; +pageInitratemanage(); +/*获取查询参数*/ +function getQueryParams () { + + /*状态:1:生效 中2:已失效 3:未生效*/ + var isEff = $("#staType").val(); + if (isEff == "ALL" || isEff == undefined || isEff == null) { + isEff = ""; + } + var plNos = JSON.parse($("#parkIds").val()); + + /*规则名称*/ + var ruleCollectName = $("#ruleName").val(); + ruleCollectName = ruleCollectName == null || ruleCollectName.length == 0 ? "" : ruleCollectName.trim(); + + + var req = { + plNos: plNos, + ruleCollectName: ruleCollectName, + isEff: isEff, + }; + return req; +} +//点击导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#reportBtn").val("导出"); + } + else { + curCount--; + $("#reportBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#reportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#recordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var req = getQueryParams(); + /*开始时间*/ + var beginTime = $('#startTime').val().trim(); + if(beginTime != ''){ + beginTime = $('#startTime').val().trim()+" 00:00:00"; + } + /*结束时间*/ + var endTime = $('#endTime').val().trim(); + if(endTime != ''){ + endTime = $('#endTime').val().trim()+" 23:59:59"; + } + var url = dataUrl.util.exportBillingParkRuleRel() + '?plNos=' + req.plNos + '&ruleCollectName=' + req.ruleCollectName + '&isEff=' + req.isEff + '&effectTime=' + beginTime + '&expireTime=' + endTime +'&sysCode='+sysComm.sysCode; + window.downloadFile(url); +}); + + +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); +}); \ No newline at end of file diff --git a/assets/pages/scripts/rulesetFile/rulesetTmp.js b/assets/pages/scripts/rulesetFile/rulesetTmp.js new file mode 100644 index 0000000..8ec2ec5 --- /dev/null +++ b/assets/pages/scripts/rulesetFile/rulesetTmp.js @@ -0,0 +1,52 @@ + +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
              '+urlarr[i].name+'
              ' + }else{ + _html += '
            48. '+urlarr[i].name+'
            49. ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/chargingrule', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/rulesetFile/chargingRule/chargingrule.css'); + res.load('../../assets/pages/scripts/rulesetFile/chargingRule/chargingrule.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-chargingrule').addClass('ITD-topbar-clickactive'); +}); +R.route('/ratemanage', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/rulesetFile/rateFile/ratemanage.css'); + res.load('../../assets/pages/scripts/rulesetFile/rateFile/ratemanage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-ratemanage').addClass('ITD-topbar-clickactive'); +}); +R.route('/analogbilling', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/rulesetFile/analFile/analogbilling.css'); + res.load('../../assets/pages/scripts/rulesetFile/analFile/analogbilling.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-analogbilling').addClass('ITD-topbar-clickactive'); +}); \ No newline at end of file diff --git a/assets/pages/scripts/schedulingFile/img/plan-cashier-Ico.png b/assets/pages/scripts/schedulingFile/img/plan-cashier-Ico.png new file mode 100644 index 0000000..80b262f Binary files /dev/null and b/assets/pages/scripts/schedulingFile/img/plan-cashier-Ico.png differ diff --git a/assets/pages/scripts/schedulingFile/img/replace-person-left.png b/assets/pages/scripts/schedulingFile/img/replace-person-left.png new file mode 100644 index 0000000..efbbaa1 Binary files /dev/null and b/assets/pages/scripts/schedulingFile/img/replace-person-left.png differ diff --git a/assets/pages/scripts/schedulingFile/img/replace-person-right.png b/assets/pages/scripts/schedulingFile/img/replace-person-right.png new file mode 100644 index 0000000..efbbaa1 Binary files /dev/null and b/assets/pages/scripts/schedulingFile/img/replace-person-right.png differ diff --git a/assets/pages/scripts/schedulingFile/img/replace-person.png b/assets/pages/scripts/schedulingFile/img/replace-person.png new file mode 100644 index 0000000..2071f3a Binary files /dev/null and b/assets/pages/scripts/schedulingFile/img/replace-person.png differ diff --git a/assets/pages/scripts/schedulingFile/img/schedulingplan-replace-wrap.png b/assets/pages/scripts/schedulingFile/img/schedulingplan-replace-wrap.png new file mode 100644 index 0000000..19ffc4d Binary files /dev/null and b/assets/pages/scripts/schedulingFile/img/schedulingplan-replace-wrap.png differ diff --git a/assets/pages/scripts/schedulingFile/schedleTmp.js b/assets/pages/scripts/schedulingFile/schedleTmp.js new file mode 100644 index 0000000..4a2106c --- /dev/null +++ b/assets/pages/scripts/schedulingFile/schedleTmp.js @@ -0,0 +1,46 @@ + +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
              '+urlarr[i].name+'
              ' + }else{ + _html += '
            50. '+urlarr[i].name+'
            51. ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/schedulingplan', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.css'); + res.load('../../assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-schedulingplan').addClass('ITD-topbar-clickactive'); +}); +R.route('/schedulingsetting', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.css'); + res.load('../../assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-schedulingsetting').addClass('ITD-topbar-clickactive'); +}); diff --git a/assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.css b/assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.css new file mode 100644 index 0000000..b861d98 --- /dev/null +++ b/assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.css @@ -0,0 +1,174 @@ +/*------------------排班计划*/ +.schedulingplan-data-wrap{ + height: 44px; + line-height: 44px; + background: #e8f4fa; + font-size: 14px; + font-weight: 600; + color: rgba(0,0,0,.7); +} +.width-90{ + width: 100px; +} +.width-50{ + width: 50px; +} +.width-180{ + width: 200px; +} +.schedulingplan-con-wrap{ + height: 146px; + border-bottom: 1px solid #f0f0f2; +} +.schedulingplan-con-wrap>li{ + border-right: 1px solid #f0f0f2; +} +.schedulingplan-con-wrap>li:nth-of-type(1){ + padding-top: 50px; +} +.schedulingplan-rest{ + line-height: 146px; +} +.schedulingplan-falls-wrap{ + padding-top: 25px; +} +.schedulingplan-falls-wrap div{ + margin-bottom: 5px; + margin-left: 20px; +} +.schedulingplan-forfalls{ + cursor: pointer; + padding: 1px 5px; + border: 1px solid #1E95CD; + color: #1E95CD; + font-size: 14px; + width: 70px; + border-radius: 4px!important; + text-align: center; + margin-left: 12px; + margin-top: 6px; +} +.schedulingplan-falls{ + cursor: pointer; + padding: 1px 5px; + border: 1px solid #1E95CD; + color: #1E95CD; + font-size: 14px; + width: 50px; + border-radius: 4px!important; + text-align: center; + margin-left: 12px; +} +.schedulingplan-replace-wrap{ + background: url("../img/schedulingplan-replace-wrap.png") no-repeat right 0; + position: relative; +} +.schedulingplan-adjust-wrap{ + background: url("../img/schedulingplan-replace-wrap.png") no-repeat right 0; + position: relative; +} +.schedulingplan-replace-wrap:before{ + content: '代班'; + color: #fff; + position: absolute; + right: 10px; + top:10px; + +} +.schedulingplan-adjust-wrap:before{ + content: '调休'; + color: #fff; + position: absolute; + right: 10px; + top:10px; + +} +.replace-person span{ + display: inline-block; + padding-left: 20px; + background: url("../img/replace-person.png") no-repeat 0 center; + margin-left: 10px; + color: #fe944d; +} +.schedulingplan-park-wrap{ + +} +/*.schedulingplan-parkright-wrap>li:nth-of-type(1) div{*/ + /*width: 90px;*/ + /*line-height: 130px;*/ + /*overflow: hidden;*/ + /*white-space: nowrap;*/ + /*text-overflow: ellipsis;*/ +/*}*/ + +.between-pos{ + top: 50%; + left:50%; + transform: translate(-50%,-50%); + -webkit-transform: translate(-50%,-50%); + -moz-transform: translate(-50%,-50%); +} +.top50-pos{ + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + top: 50%; + width: 100px; + transform: translate(-50%); + -webkit-transform: translateY(-50%); + -moz-transform:translateY(-50%); + +} +.border-right-bottom{ + border-right: 1px solid #f0f0f2; + border-bottom: 1px solid #f0f0f2; +} +.heightper50{ + height: 130px; +} +.schedulingmanage-com-margin { + padding-top: 37px; + color: rgba(0,0,0,.7); + max-height: 170px; + overflow-y: auto; +} +.schedulingmanage-com-margin div{ + margin-bottom: 5px; + margin-left: 10px; +} +.heightmin160{ + min-height: 160px; +} +.height100{ + height: 100%; +} + +/*------- 周 按钮样式*/ +.time-opr-prevbtn { + margin-right: 6px; +} +.time-opr-btn { + padding: 4px 21px; + /* width: 112px; */ + /* height: 34px; */ + background: rgba(255,255,255,1); + border: 1px solid #1E95CD; + border-radius: 4px !important; + text-align: center; + float: left; + margin-right: 6px; + cursor: pointer; + color:#1E95CD; +} +.weekActive{ + background-color: #e8f4fa; + border: 1px solid #e8f4fa; +} + +.width16{ + width: 16px; + padding: 20px 0; + overflow: hidden; + text-overflow: ellipsis; + max-height: 90%; +} diff --git a/assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.html b/assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.html new file mode 100644 index 0000000..9655e94 --- /dev/null +++ b/assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.html @@ -0,0 +1,249 @@ + +
              +
              +
              +
              + +
              + +
              + + + +
              +
              +
              查询
              +
              + +
              +
              + +
              +
              + +
              +
              +
              + + +
              +
              +
              + +
              收费员
              +
              停车场
              + +
              +
              +
              +
              上一周
              +
              下一周
              +
              +
              +
              +
              +
              +
              +
              + +
              + +
              + + + +
              +
              +
              + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.js b/assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.js new file mode 100644 index 0000000..e11452e --- /dev/null +++ b/assets/pages/scripts/schedulingFile/schedulingplan/schedulingplan.js @@ -0,0 +1,882 @@ +var weekOfday = Number(moment().format('E'));//计算今天是这周第几天 +var clicknum = 0;//定义上下周点击次数 +var startDate, endDate; +var weekNum = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']; +var fun = { + init: function () { + // 初始化 + fun.refreshQueryTime(); + //收费员下拉框 + fun.initChargerSelect(); + // domStr,isNeedAll, plFilterFun, isIncludeRechargePlNo, plBusiType + commSelect.plName_select("#parkIds",null,null,null,3); + $('#scheduType').selectpicker('render'); + // 获取今天时间 + var todaytime = moment().subtract('days', 0).format('YYYY/MM/DD'); + // $('#time-opr-nowtime').text(todaytime); + fun.queryDutyRosterser(); + }, + //更新查询时间 + refreshQueryTime: function () { + var start = weekOfday - 7 * clicknum - 1; + var end = weekOfday - clicknum * 7 - 7; + startDate = moment().subtract('days', start).format('YYYY-MM-DD'); + endDate = moment().subtract('days', end).format('YYYY-MM-DD'); + //console.log(startDate,endDate); + }, + timeoprprevbtn: function () { + $('#time-opr-nextbtn').removeClass('weekActive'); + $('#time-opr-prevbtn').addClass('weekActive'); + clicknum--; + // if (clicknum == 0) { + // $('#time-opr-prevbtn').addClass('display-none'); + // } else { + // + // } + fun.refreshQueryTime(); + fun.queryDutyRosterser(); + + }, + timeoprnextbtn: function () { + $('#time-opr-prevbtn').removeClass('weekActive'); + $('#time-opr-nextbtn').addClass('weekActive'); + if (clicknum == 4) { + return false; + } else { + clicknum++; + console.log(clicknum) + fun.refreshQueryTime(); + fun.queryDutyRosterser(); + } + + }, + breakOperFun: function () { + + $('#schplan-oper-add').selectpicker('render'); + fun.queryNoRestCharger(); + + }, + //调班操作 + exchangeOperFun: function () { + fun.queryWorkChargerForDateList(); + }, + //永久调班操作 + exchangeForeverOperFun: function () { + fun.queryChargerInfoForDutyRosterBase(); + }, + + getQueryParam: function () { + var chargeCodes = JSON.parse($('#scheduType').val()); + var plNos = JSON.parse($('#parkIds').val()); + var req = { + startDate: new Date(startDate + ' 00:00:00'.replace(new RegExp(/-/gm), "/")), + endDate: new Date(endDate + ' 23:59:59'.replace(new RegExp(/-/gm), "/")), + sysCode: sysComm.sysCode, + } + // 视图类型 10:收费员视图 20:停车场视图 + if (fun.isChargerView()) { + req.chargeCodes = chargeCodes; + req.viewType = 10; + req.workState = [10, 20, 30, 40]; + //$('#scheduType').val(); + } else { + req.chargeCodes = []; + req.plNo = plNos; + req.viewType = 20; + req.workState = [10, 40];//停车场视图只需要查询上班的记录 + } + return req; + }, + //根据停车场编号查询收费员信息 + initChargerSelect: function () { + var data = fun.getChargerMsg(); + var htmls = ''; + var html = ''; + var chargerCodes = []; + for (var i = 0; i < data.length; i++) { + chargerCodes.push(data[i].chargerCode); + html += ""; + } + var chargerCodesStr = JSON.stringify(chargerCodes); + htmls = '' + html; + + $("#scheduType").empty(); + $("#scheduType").append(htmls); + $('#scheduType').selectpicker('refresh'); + }, + getChargerMsg: function () { + var plNo = ""; + var chargers = ""; + var req = { + baseRequest: {pageNum: 1, pageSize: 0}, + plNo: plNo, + parkAreaCode: "", + groupCode: "", + onduty: "", + status: "", + nameOrNo: "", +// chargerCodes:fn.getChargerCodes(), + orgId:fn.getOrgId(), + sysCode: sysComm.sysCode + }; + var opt = { + async: false, + data: JSON.stringify(req), + method: "POST", + url: dataUrl.util.queryCashierListInfo(), + success: function (res) { + if (res.code == '8888') { + chargers = JSON.stringify(res.data.rows); + } + } + } + sysAjax(opt); + return JSON.parse(chargers); + }, + //判断是否收费员视图 + isChargerView: function () { + return $('#schtolltype').hasClass('ITD-graynav-topbaractive'); + }, + + /*查询排班计划*/ + queryDutyRosterser: function () { + var req = fun.getQueryParam(); + var opt = { + method: 'post', + url: dataUrl.util.queryDutyRoster(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + //console.log(res.data); + if (req.viewType == 10) { + //收费员视图 + fun.handelChargerViewDutyRosterData(req, res.data); + } else { + //停车场视图 + fun.handelParkViewDutyRosterData(req, res.data); + } + } + } + }; + sysAjax(opt); + + }, + + /*查询临时调班收费员*/ + queryWorkChargerForDateList: function () { + $("#schplan-tboper-add").empty(); + $('#schplan-tboper-add').selectpicker('refresh'); + + var chargerCodeSource = $.trim($('#chargerCodeExchange').val()); + var req = { + dutyDay: $("#dutyDayExchange").val(), + sysCode: sysComm.sysCode + } + + var opt = { + method: 'post', + url: dataUrl.util.queryWorkChargerForDateList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + //console.log(res.data); + var data = res.data; + var html = ''; + var chargerCodes = []; + for (var i = 0; i < data.length; i++) { + if(chargerCodeSource != data[i].chargerCode){ + chargerCodes.push(data[i].chargerCode); + html += ""; + } + } + $("#schplan-tboper-add").empty(); + $("#schplan-tboper-add").append(html); + $('#schplan-tboper-add').selectpicker('refresh'); + $('#achplan_tibanmodel').modal('show'); + } + + } + }; + sysAjax(opt); + + }, + + /*查询永久调班收费员*/ + queryChargerInfoForDutyRosterBase: function () { + $("#schplan-ftboper-add").empty(); + $('#schplan-ftboper-add').selectpicker('refresh'); + + var chargerCodeSource =$.trim($('#chargerCodeExchangeForever').val()); + + var req = { + sysCode: sysComm.sysCode + } + + var opt = { + method: 'post', + url: dataUrl.util.queryChargerInfoForDutyRosterBase(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + var html = ''; + var chargerCodes = []; + for (var i = 0; i < data.length; i++) { + debugger + if(chargerCodeSource != data[i].chargerCode){ + chargerCodes.push(data[i].chargerCode); + html += ""; + } + } + $("#schplan-ftboper-add").empty(); + $("#schplan-ftboper-add").append(html); + $('#schplan-ftboper-add').selectpicker('refresh'); + $('#achplan_tipeForever').modal('show'); + + } + + } + }; + sysAjax(opt); + }, + + /*查询永久调班收费员数据*/ + queryChargerInfoForDutyRosterBaseOfData: function () { + + var req = { + sysCode: sysComm.sysCode + } + var chargerCodes = []; + var opt = { + method: 'post', + url: dataUrl.util.queryChargerInfoForDutyRosterBase(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async:false, + success: function (res) { + if (res.code == '8888') { + var data = res.data; + for (var i = 0; i < data.length; i++) { + chargerCodes.push(data[i].chargerCode); + } + } + + } + }; + sysAjax(opt); + return chargerCodes; + }, + + + + + //调班处理 + exchangeDutyRoster:function(souceChargerCode,targetChargerCode,dutyDay,exchangeType){ + + var req = { + sysCode: sysComm.sysCode, + souceChargerCode:souceChargerCode, + targetChargerCode:targetChargerCode, + dutyDay:dutyDay, + exchangeType:exchangeType + } + + var opt = { + method: 'post', + url: dataUrl.util.exchangeDutyRoster(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + + //1-临时调换 2-永久调换 + if(exchangeType == 1){ + // + $('#achplan_tibanmodel').modal('hide'); + }else{ + $('#achplan_tipeForever').modal('hide'); + } + fun.queryDutyRosterser(); + + }else { + alert('调班失败'); + } + + + } + }; + sysAjax(opt); + + }, + + + /*处理停车场视图排班计划数据*/ + handelParkViewDutyRosterData: function (req, data) { + + var dateFilterArray = []; + //表头数据初始化 + $("#park-wrap").empty(); + var html = '
                ' + + '
              • 停车场/时间
              • '; + var tempTime = req.startDate; + for (var i = 0; i < 7; i++) { + + var day = Number(moment(tempTime).format('E')); + var dateStr = (tempTime.getMonth() + 1) + '月' + tempTime.getDate() + '日 ' + weekNum[day - 1]; + html += '
              • ' + dateStr + '
              • '; + dateFilterArray.push(tempTime.getTime()); + tempTime.setDate(tempTime.getDate() + 1); + } + html += '
              '; + $("#park-wrap").html(html); + if (data.length == 0) { + $("#park-wrap").append('
              暂无数据
              '); + } else { + //数据格式整理 + var resData = data; + var parkData = {}; + var berthData = {}; + var groupData = {}; + var dutyDayData = {}; + var data = {}; + + $.each(resData, function (index, item) { + var plNo = item.plNo; + var berthNo = item.berthRangeNo; + var groupId = item.groupId; + var dutyDay = item.dutyDay; + + if (parkData[plNo] == undefined || parkData[plNo] == null) { + parkData[plNo] = item.plName; + data[plNo] = {}; + } + if (data[plNo][berthNo] == undefined || data[plNo][berthNo] == null) { + berthData[berthNo] = item.berthRangeName; + data[plNo][berthNo] = {}; + } + if (data[plNo][berthNo][groupId] == undefined || data[plNo][berthNo][groupId] == null) { + groupData[groupId] = {}; + groupData[groupId].groupName = item.groupName; + groupData[groupId].groupStartTime = item.groupStartTime; + groupData[groupId].groupEndTime = item.groupEndTime; + + data[plNo][berthNo][groupId] = {}; + } + if (data[plNo][berthNo][groupId][dutyDay] == undefined || data[plNo][berthNo][groupId][dutyDay] == null) { + dutyDayData[dutyDay] = {}; + dutyDayData[dutyDay].dutyDay = item.dutyDay; + data[plNo][berthNo][groupId][dutyDay] = []; + } + data[plNo][berthNo][groupId][dutyDay].push(item); + }); + + //console.log('data:'); + //console.log(data); + html = '
              '; + for (var plNo in data) { + html += '
                ' + + '
              • ' + + '
                ' + fun.strFormatter(parkData[plNo]) + '
                ' + + '
              • ' + + '
              • '; + for (var berth in data[plNo]) { + html += '
                  ' + + '
                • ' + + '
                  ' + fun.strFormatter(berthData[berth]) + '
                  ' + + '
                • ' + + '
                • '; + for (var group in data[plNo][berth]) { + html += '
                    ' + + '
                  • ' + + '
                    ' + fun.strFormatter(groupData[group].groupName) + '
                    ' + + '
                    ' + fun.strFormatter((DateUtils.long2String(groupData[group].groupStartTime, 3)).substr(0, 5)) + '
                    ' + + '
                    -
                    ' + + '
                    ' + fun.strFormatter((DateUtils.long2String(groupData[group].groupEndTime, 3)).substr(0, 5)) + '
                    ' + + '
                  • '; + $.each(dateFilterArray, function (index, filter) { + var isFind = false; + //console.log('filter====================:'+DateUtils.long2String(filter, 1)); + for (var dutyDay in data[plNo][berth][group]) { + //; + //console.log('duty:'+dutyDay); + //console.log('duty:'+DateUtils.long2String(parseInt(dutyDay), 1)); + if (DateUtils.long2String(filter, 1) == DateUtils.long2String(parseInt(dutyDay), 1)) { + isFind = true; + var tempHtml = '
                  • '; + for (var i in data[plNo][berth][group][dutyDay]) { + var temp = data[plNo][berth][group][dutyDay][i]; + if (temp.workState == 10) {//正常上班 + tempHtml += '
                    ' + fun.strFormatter(temp.chargerName) + '
                    '; + } else if (temp.workState == 40) {//代班 + tempHtml += '
                    ' + fun.strFormatter(temp.chargerName) + ' ' + fun.strFormatter(temp.chargerNameRep) + '
                    '; + } + + } + tempHtml += '
                  • '; + html += tempHtml; + } + } + if (!isFind) { + html += '
                  • 暂无排班
                  • '; + } + + }); + + html += '
                  '; + } + html += '
                '; + } + html += '
              '; + } + html += '
              '; + $("#park-wrap").append(html); + } + + }, + /*处理收费员视图排班计划数据*/ + handelChargerViewDutyRosterData: function (req, data) { + //数据初始化 + var dateFilterArray = []; + $("#toll-wrap").empty(); + var html = '
                ' + + '
              • 收费员/时间
              • '; + var tempTime = req.startDate; + for (var i = 0; i < 7; i++) { + var day = Number(moment(tempTime).format('E')); + var dateStr = (tempTime.getMonth() + 1) + '月' + tempTime.getDate() + '日 ' + weekNum[day - 1]; + html += '
              • ' + dateStr + '
              • '; + dateFilterArray.push(tempTime.getTime()); + tempTime.setDate(tempTime.getDate() + 1); + } + html += '
              '; + $("#toll-wrap").html(html); + if (data.length == 0) { + $("#toll-wrap").append('
              暂无数据
              '); + } else { + //数据格式整理 + var resData = data; + var chargerData = {}; + var data = {}; + + $.each(resData, function (index, item) { + var chargerCode = item.chargerCode; + if (data[chargerCode] == undefined || data[chargerCode] == null) { + chargerData[chargerCode] = {}; + chargerData[chargerCode] = item.chargerName; + data[chargerCode] = []; + } + data[chargerCode].push(item); + }); + + var foreverChargerCodeArray = fun.queryChargerInfoForDutyRosterBaseOfData(); + //填充内容 + html = '
              '; + for (var chargerCode in data) { + + html += '
                '; + html += '
              • ' + fun.strFormatter(chargerData[chargerCode]) + '
                ' + + '
                ' + fun.strFormatter(chargerCode) + '
                ' ; + if(foreverChargerCodeArray.indexOf(chargerCode)>-1){ + html += '
                永久调班
              • '; + } + $.each(dateFilterArray, function (index, filter) { + var isFind = false; + for (var i in data[chargerCode]) { + var _item = data[chargerCode][i]; + if (DateUtils.long2String(filter, 1) == DateUtils.long2String(parseInt(_item.dutyDay), 1)) { + isFind = true; + if (_item.workState == 10) {//正常工作 + html += '
              • ' + + '
                ' + fun.strFormatter(_item.plName) + '
                ' + + '
                ' + fun.strFormatter(_item.berthRangeName) + '
                ' + + '
                ' + fun.strFormatter(_item.groupName) + '
                ' + + '
                ' + fun.strFormatter((DateUtils.long2String(_item.groupStartTime, 3)).substr(0, 5)) + ' - ' + fun.strFormatter((DateUtils.long2String(_item.groupEndTime, 3)).substr(0, 5)) + '
                ' + + '调休' + + '调班' + + '
              • '; + } else if (_item.workState == 20) {//休息 + html += '
              • 休息
              • '; + + } else if (_item.workState == 30) {//调休 + html += '
              • ' + + '
                ' + fun.strFormatter(_item.plName) + '
                ' + + '
                ' + fun.strFormatter(_item.berthRangeName) + '
                ' + + '
                ' + fun.strFormatter(_item.groupName) + ' ' + fun.strFormatter(_item.chargerNameRep) + '
                ' + + '
                ' + fun.strFormatter((DateUtils.long2String(_item.groupStartTime, 3)).substr(0, 5)) + ' - ' + fun.strFormatter((DateUtils.long2String(_item.groupEndTime, 3)).substr(0, 5)) + '
                ' + + //'
                调休
                '+ + '
              • '; + } else if (_item.workState == 40) {//代班 + html += '
              • ' + + '
                ' + fun.strFormatter(_item.plName) + '
                ' + + '
                ' + fun.strFormatter(_item.berthRangeName) + '
                ' + + '
                ' + fun.strFormatter(_item.groupName) + ' ' + fun.strFormatter(_item.chargerNameRep) + '
                ' + + '
                ' + fun.strFormatter((DateUtils.long2String(_item.groupStartTime, 3)).substr(0, 5)) + ' - ' + fun.strFormatter((DateUtils.long2String(_item.groupEndTime, 3)).substr(0, 5)) + '
                ' + + //'
                调休
                '+ + '
              • '; + } + } + + } + if (!isFind) { + html += '
              • 暂无排班
              • '; + } + }); + html += '
              '; + } + $("#toll-wrap").append(html); + } + + }, + strFormatter: function (value) { + if (value == undefined || value == null || value == "") { + return '-'; + } + return value; + }, + /** + * todo 查询组织下排班计划中的收费员 + */ + + /*查询对应日期休息的收费员*/ + queryNoRestCharger: function () { + $("#schplan-oper-add").empty(); + $('#schplan-oper-add').selectpicker('refresh'); + var req = { + planId: $("#planId").val(), + dutyDay: $("#dutyDay").val(), + sysCode: sysComm.sysCode + } + + var opt = { + method: 'post', + url: dataUrl.util.queryRelaxChargerList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + //console.log(res.data); + var data = res.data; + var html = ''; + var chargerCodes = []; + if (data.length == 0) { + $('#achplan_notipe').modal('show'); + } else { + for (var i = 0; i < data.length; i++) { + chargerCodes.push(data[i].chargerCode); + html += ""; + } + + $("#schplan-oper-add").empty(); + $("#schplan-oper-add").append(html); + $('#schplan-oper-add').selectpicker('refresh'); + console.log(data.length) + $('#achplan_tipe').modal('show'); + } + + } + } + }; + sysAjax(opt); + + + }, + /*保存调休记录*/ + saveTakeRestRecord: function () { + + if ($("#schplan-oper-add").val() == undefined || $("#schplan-oper-add").val() == null || $("#schplan-oper-add").val() == '') { + return; + } + + var option = $("#schplan-oper-add").find("option:selected"); + + var req = { + dutyDay: $("#dutyDay").val(), + chargerCode: $("#chargerCode").val(), + dutyType: option.data('dutytype'), + chargeCodeRep: JSON.parse(option.val())[0], + chargeCodeRepName: option.text(), + sysCode: sysComm.sysCode + + } + + var opt = { + method: 'post', + url: dataUrl.util.saveTakeRestRecord(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + console.log(res.data); + $('#achplan_tipe').modal('hide'); + fun.queryDutyRosterser(); + } + } + }; + sysAjax(opt); + + } + + +}; +fun.init(); + +//切换 搜索部分 是否生效 +documentBindFunc.on('click', "#schplan-toptab-ser div.ITD-graynav-topbar", function () { + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + $("#park-wrap").empty(); + fun.queryDutyRosterser(); + +}); +documentBindFunc.on('click', '#schparktype', function () { + $('#parkingtype').removeClass('display-none'); + $('#park-wrap').removeClass('display-none'); + $('#tolltype').addClass('display-none'); + $('#toll-wrap').addClass('display-none'); + $('#queryType').attr('data-value', '1'); + //切换完后,调用查询表格 + // fun.createTableData(); + +}); +documentBindFunc.on('click', '#schtolltype', function () { + $('#tolltype').removeClass('display-none'); + $('#toll-wrap').removeClass('display-none'); + $('#parkingtype').addClass('display-none'); + $('#park-wrap').addClass('display-none'); + $('#queryType').attr('data-value', '2'); + //切换完后,调用查询表格 + // fun.createTableData(); + +}); + + +// 查询按钮 +documentBindFunc.on('click', '#chargegroup-queryBtnser', function () { + fun.queryDutyRosterser(); +}); +// 上一周点击time-opr-prevbtn +documentBindFunc.on('click', '#time-opr-prevbtn', function () { + fun.timeoprprevbtn(); +}); +// 下一周点击time-opr-nextbtn +documentBindFunc.on('click', '#time-opr-nextbtn', function () { + fun.timeoprnextbtn(); +}); +// 调休弹窗 + +documentBindFunc.on('click', '.schedulingplan-tipex', function () { + + $("#dutyDay").val(''); + $("#chargerCode").val(''); + $("#planId").val(''); + + $("#dutyDay").val($(this).attr('dutyDay')); + $("#chargerCode").val($(this).attr('chargerCode')); + $("#planId").val($(this).attr('planId')); + fun.breakOperFun(); +}); +// 调休保存按钮 +documentBindFunc.on('click', '#planbreak-submit', function () { + fun.saveTakeRestRecord(); +}); + +//调班弹窗 schedulingplan-tipebanx +documentBindFunc.on('click', '.schedulingplan-tipebanx', function () { + + $("#dutyDayExchange").val(''); + $("#chargerCodeExchange").val(''); + $("#planIdExchange").val(''); + + $("#dutyDayExchange").val($(this).attr('dutyDay')); + $("#chargerCodeExchange").val($(this).attr('chargerCode')); + $("#planIdExchange").val($(this).attr('planId')); + console.log($(this).attr('dutyDay') + 'dutyDay'); + fun.exchangeOperFun(); + $('#schplan-tboper-add').selectpicker('render'); + $('#achplan_tibanmodel').modal('show'); +}); + + +//永久调班弹窗 +documentBindFunc.on('click', '.schedulingplan-forfalls', function () { + + $("#dutyDayExchangeForever").val(''); + $("#chargerCodeExchangeForever").val(''); + $("#planIdExchangeForever").val(''); + // + $("#dutyDayExchangeForever").val($(this).attr('dutyDay')); + $("#chargerCodeExchangeForever").val($(this).attr('chargerCode')); + $("#planIdExchangeForever").val($(this).attr('planId')); + fun.exchangeForeverOperFun(); + //x下拉框初始化 + $('#schplan-ftboper-add').selectpicker('render'); + //时间初始化 + $('#schefdaterange-btnsta').val(moment().subtract('days', -1).format('YYYY-MM-DD')); + //开始日期 + $("#schefdaterange-btnsta").datetimepicker({ + startDate: moment().subtract('days', -1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + + $('#achplan_tipeForever').modal('show'); +}); + + +// 调班保存按钮 +documentBindFunc.on('click', '#planbreak-tbsubmit', function () { + var souceChargerCode = $.trim($('#chargerCodeExchange').val()); + var targetChargerCode = JSON.parse($('#schplan-tboper-add').val())[0]; + var dutyDay = $('#dutyDayExchange').val(); + var exchangeType = 1; + + fun.exchangeDutyRoster(souceChargerCode,targetChargerCode,dutyDay,exchangeType); + + +}); + +// 永久调班保存按钮 +documentBindFunc.on('click', '#planbreak-ftbsubmit', function () { + var souceChargerCode = $.trim($('#chargerCodeExchangeForever').val()); + var targetChargerCode = JSON.parse($('#schplan-ftboper-add').val())[0]; + var dutyDay = new Date($('#schefdaterange-btnsta').val().replace(/-/g,"/")); + var exchangeType = 2; + + fun.exchangeDutyRoster(souceChargerCode,targetChargerCode,dutyDay,exchangeType); + +}); + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#sch_exportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#sch_exportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#sch_exportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#sch_exportBtn").val("导出"); + } else { + curCount--; + $("#sch_exportBtn").val(curCount + "秒后可再次导出"); + } +} + +//导出excle +documentBindFunc.on('click', '#sch_exportBtn', function () { + //获取table所有行数据 + // var parkLot = $("#recordtable").bootstrapTable('getData'); + var parkLot = "保证有数据导出"; + //获取table总条数 + // var numTotal = $("#recordtable").bootstrapTable('getOptions').totalRows; + var numTotal = 100; + if (parkLot.length < 1) { + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + }, 3000); + return false; + } + if (numTotal > 10000) { + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + }, 3000); + return false; + } + //执行倒计时函数 + sendMessage(); + var params = fun.getQueryParam(); + var url = dataUrl.util.excleDutyRosterList(); + url += '?sysCode=' + params.sysCode; + if (null != params.startDate && "" != params.startDate) { + var tempDate = params.startDate; + var startDate = DateUtils.date2String(tempDate, 7); + url += '&startDate=' + startDate; + tempDate.setDate(tempDate.getDate() + 27); + var endDate = DateUtils.date2String(tempDate, 7); + url += '&endDate=' + endDate; + } + var orgId = fn.getOrgId(); + if (orgId != null) { + url += '&orgId=' + orgId; + } + url = encodeURI(url); + window.downloadFile(url); +}); + +//导出功能 +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; + + + diff --git a/assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.css b/assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.css new file mode 100644 index 0000000..ed56d20 --- /dev/null +++ b/assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.css @@ -0,0 +1,496 @@ +/*步骤流程*/ +.step-wrap{ + width: 484px; + margin: 40px auto 10px; +} +.step-wrap li{ + float: left; + width: 121px; +} +.step-wrap-active div:nth-of-type(3){ + color: #1E95CD; +} +.step-wrap-active .step-wrap-num{ + background-color: #1E95CD; +} +.step-wrap-line{ + height: 1px ; + background: #1e95cd; + margin-bottom: 20px; + position: relative; +} +.step-wrap-num{ + width: 20px; + height: 20px; + border-radius: 50%!important; + color: #fff; + background: #ccc; + top:-10px; + left: 50px; + z-index: 1; +} + +.cut-off-line{ + border-top:1px solid #f0f0f2 ; + padding-top: 20px; +} +.close-schedulingsetting,.lookclose-schedulingsetting,.close-schedulingsettinghand{ + cursor: pointer; + width: 90px; + height: 30px; + text-align: center; + line-height: 30px; + background: #c2cad8; + color: #fff; + border-radius: 4px!important; + + /*margin-right: 20px;*/ +} +.next-step-schedulingsetting{ + cursor: pointer; + width: 90px; + height: 30px; + text-align: center; + line-height: 30px; + background: #1E95CD; + color: #fff; + border-radius: 4px!important; + margin-left: 20px; +} +.prev-step-schedulingsetting{ + color: rgba(0,0,0,.45); + width: 90px; + height: 30px; + text-align: center; + line-height: 30px; + border-radius: 4px!important; + border: 1px solid rgba(0,0,0,.45); + cursor: pointer; + margin-left: 20px; +} +.plan-step-wrap{ + margin-top: 32px; +} +.plan-onestep-main{ + width: 485px; + margin: 0 auto; +} + + + +/*步骤流程1*/ +.plan-step-group{ + height: 35px; + width: 340px; + margin: 5px auto; +} +.plan-park-step{ + height: 288px; + margin: 16px auto; + width: 340px; +} +.plan-input-wid220{ + padding-left: 12px; + width: 220px; + height: 34px; + line-height: 34px; +} +.plan-park-list{ + height: 288px; + width: 220px; + margin-left: 5px; + background-color: #f3f4f5; + border-radius: 4px !important; + overflow: auto; +} +/*选中的停车场样式------*/ +.plan-parkcheck-step{ + width: 220px; + margin-left: 177.5px; + min-height: 100px; +} +.plancheck-parkCheck{ + height: 28px; + width: 107px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + line-height: 28px; + padding: 0 24px 0 12px; + display: inline-block; + border-radius: 4px !important; + position: relative; + border: 1px solid #d8e2e5; + background-color: #f7f7f7; +} + +.closex,.closexhand{ + position: absolute; + top: 8px; + right: 9px; + height: 9px; + width: 9px; + background: url(../../vipmanageFile/img/parkclose_icon.png) no-repeat; + background-size: 9px 9px; + cursor: pointer; +} + +/*步骤流程2*/ +.plan-twostep-main{ + width: 500px; + margin: 0 auto; +} +.twostep-top-wrap{ + height: 35px; + width: 486px; + margin: 0 auto; +} +.plan-pop-panel-wid65{ + width: 65px; +} +.plan-pop-panel-wid77{ + width: 77px; +} +.plan-input-wid120{ + width: 120px; + padding-left: 12px; + height: 34px; + line-height: 34px; +} +.plan-input-wid80{ + width: 80px; + padding-left: 24px; + height: 34px; + line-height: 34px; +} +.plan-top-line{ + height: 34px; + line-height: 34px; + margin-left: 5px; +} +#schplan_addBtn .ITD-panelicon-add:before,#schplan_addBtnhand .ITD-panelicon-add:before { + background-image: url(../../../img/theme_btn_addhover.png) !important; +} +/*新增内容*/ +.schplan_rule{ + color: red; + height: 30px; + line-height: 30px; + text-align: center; +} +.schplan_tablecon{ + margin-left: 3px; + border-top: 1px solid #d8e2e5 !important; + border-left: 1px solid #d8e2e5 !important; + border-right: 1px solid #d8e2e5 !important; +} +.schplan_tab-topbar { + background: #e8f4fa !important; + /*color: #4f5052;*/ + height: 30px; + line-height: 30px; + padding-left: 0 !important; + display: flex; + margin: 0; +} +.schplan_tabli { + flex: 1; + height: 30px; + line-height: 30px; + text-align: center; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.schplan_tablecon-list { + padding-left: 0; + /* max-height: 120px; */ + overflow-y: auto; +} +.schplan_tablecon-list>li { + height: 30px; + line-height: 30px; +} +.schplan_tablecon-main { + width: 100%; + padding-left: 0; + display: flex; + border-bottom: 1px solid #d8e2e5; +} +.schplan_tablecon-main>li{ + flex: 1; + text-align: center; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +/*步骤流程3*/ +.plan-cashier-step{ + height: 300px; + margin: 0px auto 16px; + width: 340px; +} +.plan-cl-rule{ + color: red; +} +.plan-cashier-listl{ + margin-left: 5px; +} +.plan-cashier-listl,.plan-cashier-listr{ + width: 98px; + height: 300px; +} +.plan-cashier-listl>ul{ + padding: 4px; + height: 300px; + overflow-y: auto; +} + +.plan-cashier-listr{ + background-color: #f7f7f7; +} +.plan-cashier-icon{ + background: url("../img/plan-cashier-Ico.png") no-repeat; + width: 15px; + height: 14px; + margin: 35px 5px auto; +} +.replace-person-left li{ + background-image: url("../img/replace-person-left.png"); + background-repeat: no-repeat; + background-size: 12px 12px; + background-position:3px 5px; + /*width: 98px;*/ + height: 25px; + line-height: 25px; + text-indent: 18px; +} +.plan-cashier-listrtop{ + height: 22px; + line-height: 22px; + text-align: center; + color: #fff; + background-color: #65b5dc; + border-top-left-radius:4px !important; + border-top-right-radius:4px !important; +} +.replace-person-right li{ + background-image: url("../img/replace-person-right.png"); + background-repeat: no-repeat; + background-size: 12px 12px; + background-position:3px 5px; + /*width: 98px;*/ + height: 25px; + line-height: 25px; + text-indent: 18px; +} +.plan-cashier-listr>ul{ + padding: 4px; + height: 278px; + overflow-y: auto; +} +/*步骤流程4*/ + +/*------------------排班计划*/ +.schedulingplan-data-wrap{ + height: 44px; + line-height: 44px; + background: #e8f4fa; + font-size: 14px; + font-weight: 600; + color: rgba(0,0,0,.7); +} +.width-90{ + min-width: 100px; + display: inline-block; +} +.width-50{ + width: 60px; +} +.width-180{ + width: 180px; + float: left; +} +.width-240{ + width: 240px; + float: left; +} +.schedulingplan-con-wrap{ + height: 146px; + border-bottom: 1px solid #f0f0f2; +} +.schedulingplan-con-wrap>li{ + border-right: 1px solid #f0f0f2; +} +.schedulingplan-con-wrap>li:nth-of-type(1){ + padding-top: 50px; +} +.schedulingplan-rest{ + line-height: 146px; +} +.schedulingplan-falls-wrap{ + padding-top: 15px; + min-width: 120px; +} +.schedulingplan-falls-wrap div{ + margin-bottom: 5px; + margin-left: 20px; +} +.schedulingplan-falls{ + cursor: pointer; + padding: 1px 5px; + border: 1px solid #1E95CD; + color: #1E95CD; + font-size: 14px; + width: 50px; + border-radius: 4px!important; + text-align: center; +} +.schedulingplan-replace-wrap{ + background: url("../img/schedulingplan-replace-wrap.png") no-repeat right 0; + position: relative; +} +.schedulingplan-adjust-wrap{ + background: url("../img/schedulingplan-replace-wrap.png") no-repeat right 0; + position: relative; +} +.schedulingplan-replace-wrap:before{ + content: '代班'; + color: #fff; + position: absolute; + right: 10px; + top:10px; + +} +.schedulingplan-adjust-wrap:before{ + content: '调休'; + color: #fff; + position: absolute; + right: 10px; + top:10px; + +} +.replace-person span{ + display: inline-block; + padding-left: 20px; + background: url("../img/replace-person.png") no-repeat 0 center; + margin-left: 10px; + color: #fe944d; +} +.schedulingplan-park-wrap{ + +} +/*.schedulingplan-parkright-wrap>li:nth-of-type(1) div{*/ +/*width: 90px;*/ +/*line-height: 130px;*/ +/*overflow: hidden;*/ +/*white-space: nowrap;*/ +/*text-overflow: ellipsis;*/ +/*}*/ + +.between-pos{ + top: 50%; + left:50%; + transform: translate(-50%,-50%); + -webkit-transform: translate(-50%,-50%); + -moz-transform: translate(-50%,-50%); +} +.top50-pos{ + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + top: 50%; + width: 100px; + transform: translate(-50%); + -webkit-transform: translateY(-50%); + -moz-transform:translateY(-50%); + +} +.border-right-bottom{ + border-right: 1px solid #f0f0f2; + border-bottom: 1px solid #f0f0f2; +} +.heightper50{ + height: 130px; +} +.schedulingmanage-com-margin { + min-width: 120px; + max-width: 120px; + padding-top: 37px; + color: rgba(0,0,0,.45); + max-height: 170px; + /*overflow-y: auto;*/ +} +.schedulingmanage-com-margin div.cashierType{ + margin-left: 10px !important; +} +.schedulingmanage-com-margin div.dropdown-menu.open,.schedulingmanage-com-margin div.dropdown-menu.open .bs-searchbox{ + margin-left: 0px !important; +} +.schedulingmanage-com-margin div{ + margin-bottom: 5px; + margin-left: 30px; +} +.heightmin160{ + min-height: 160px; +} +.height100{ + height: 100%; +} + +/*------- 周 按钮样式*/ +.time-opr-prevbtn { + margin-right: 6px; +} +.time-opr-btn { + padding: 4px 21px; + /* width: 112px; */ + /* height: 34px; */ + background: rgba(255,255,255,1); + border: 1px solid #1E95CD; + border-radius: 4px !important; + text-align: center; + float: left; + margin-right: 6px; + cursor: pointer; + color:#1E95CD; +} +.weekActive{ + background-color: #e8f4fa; + border: 1px solid #e8f4fa; +} + +.width16{ + width: 16px; + /*padding: 20px 0;*/ + overflow: hidden; + text-overflow: ellipsis; + max-height: 90%; + writing-mode: tb-rl; +} +.ITD-pop-panel-wid110{ + width: 110px; +} +.width120{ + min-width: 120px; + max-width: 120px; + float: left; +} +.minwidth-60{ + min-width: 60px; + display: inline-block; +} +select span,.btn{ + font-size: 12px; +} +.dropdown-menu input{ + height: 28px; + font-size: 12px; +} + +.sche-daterange-bg { + width: 220px; + text-align: left; + background: url(../../../img/dataicon.png) no-repeat 195px 9px; + background-color: #fff; +} \ No newline at end of file diff --git a/assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.html b/assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.html new file mode 100644 index 0000000..29b6ac5 --- /dev/null +++ b/assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.html @@ -0,0 +1,1678 @@ +
              + +
              +
              +
              +
              +
              + +
              +
              +
              +
              查询
              +
              +
              +
              + +
              +
              +
              + + +
              +
              +
              +
              + 排班列表 +
              +
              + +
              + +
              +
              +
              +
              +
              +
              +
              + +
              + + + + + + + + + + + + + + + + + diff --git a/assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.js b/assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.js new file mode 100644 index 0000000..041399d --- /dev/null +++ b/assets/pages/scripts/schedulingFile/schedulingsetting/schedulingsetting.js @@ -0,0 +1,3043 @@ +//今日时间 +var timestartaddDate=moment().subtract('days', 0).format('YYYY/M/DD'); + +var fun = { + init: function () { + // 初始化 + commSelect.plName_select("#setting-parkIds", true); + fun.createTableData(); + fun.popDateinitHand(); + fun.popDateinitIntel(); + }, + strFormatter: function (value) { + if (value == undefined || value == null || value == "") { + return '-'; + } + return value; + }, + //手动排班 生效时间初始化 + popDateinitHand:function () { + $('#timeinStartDatehand').val(moment().subtract('days', -1).format('YYYY-MM-DD')); + $("#timeinStartDatehand").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + clearBtn: true, //添加清除按钮,可选值:true/false + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on('changeDate', function(ev){ + console.log((ev.date).toLocaleDateString()) + console.log(timestartaddDate) + if ((ev.date).toLocaleDateString() ==timestartaddDate){ + $('#sche_alertmodel').modal('show'); + } + }); + }, + //智能排班 生效时间初始化 + popDateinitIntel:function () { + $('#timeinStartDate').val(moment().subtract('days', -1).format('YYYY-MM-DD')); + $("#timeinStartDate").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + clearBtn: true, //添加清除按钮,可选值:true/false + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on('changeDate', function(ev){ + console.log((ev.date).toLocaleDateString()) + console.log(timestartaddDate) + if ((ev.date).toLocaleDateString() ==timestartaddDate){ + $('#sche_alertmodel').modal('show'); + } + }); + }, + createTableData: function () { + //结算记录表格 + $('#sch-settingtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: schsettingRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'id', + title: 'id', + width: '10%', + visible: false, + align: "left" + }, + + { + field: 'planName', + title: '名称', + width: '10%', + visible: true, + align: "center", + formatter: function (value, row, index) { + return '
              ' + value + '
              ' + + } + }, + { + field: 'employeeNum', + title: '收费员数量', + width: '10%', + visible: true, + align: "center", + formatter: function (value, row, index) { + return '
              ' + value + '
              ' + + } + }, + { + field: 'plNum', + title: '停车场数量', + width: '10%', + align: "center", + formatter: function (value, row, index) { + + return '
              ' + value + '
              ' + + } + }, + { + field: 'berthRangeNum', + title: '泊位区间数量', + width: '10%', + align: "center", + formatter: function (value, row, index) { + + return '
              ' + value + '
              ' + } + }, + { + field: 'dutyCycle', + title: '轮转周期', + width: '10%', + align: "center", + formatter: function (value, row, index) { + + return '
              ' + value + '
              ' + } + }, + + { + field: 'oper', + title: '操作', + width: '10%', + align: "center", + formatter: function (value, row, index) { + var html = '查看 '; + + html += '删除' + + return html; + + } + }, + + + ] + }); + }, + //正式提交排班计划 + submitDutyRoster: function () { + var planId = fun.generatorDutyRosterPlanId(); + var planName = fun.getDutyRosterPlanName(); + var restStrategy = fun.getRestStrategy(); + var infoMap = fun.getSelectPlNoInfo(); + var berthRangeNos = infoMap.berthRangeNos; + var plNos=infoMap.plNos; + var effectTime = Date.parse($('#timeinStartDate').val().replace(/-/g,"/")); + + var charCodes = fun.getSelectedCharger(); + var req = { + sysCode: sysComm.sysCode, + planName: planName, + planId: planId, + plNum: plNos.length, + employeeNum: charCodes.length, + dutyCycle: restStrategy.dutyCycle, + restType: restStrategy.restType, + berthRangeNum: berthRangeNos.length, + effectTime:effectTime + }; + + var opt = { + method: 'post', + url: dataUrl.util.submitDutyRoster(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + // console.log('正式提交排班计划:') + // console.log(res) + if (res.code == '8888') { + //成功刷新table + fun.createTableData(); + $('#schedulingsetting-con').removeClass('display-none'); + $('#schedulingsetting-wrap').addClass('display-none'); + $('#plan-onestep-wrap').addClass('display-none'); + $('#plan-twostep-wrap').addClass('display-none'); + $('#plan-threestep-wrap').addClass('display-none'); + $('#plan-fourstep-wrap').addClass('display-none'); + $('#schplan_rule').addClass('display-none').text(''); + + } else { + alert('保存失败'); + } + + } + }; + sysAjax(opt); + }, + + //提交排班计划 --手工排班 + submitDutyRosterByHand: function () { + var planId = fun.generatorDutyRosterPlanIdByHand(); + var planName = fun.getDutyRosterPlanNameByHand(); + + var infoMap = fun.getSelectPlNoInfoByHand(); + + var berthRangeNos = infoMap.berthRangeNos; + var plNos =infoMap.plNos; + + var dutyCycle = fun.getDutyDaysNumByHand(); + var dutyData = JSON.parse($('#hand_duty_roster_data').data('handdata')); + //生效时间 + var effectTime = Date.parse($('#timeinStartDatehand').val().replace(/-/g,"/")); + + + var charCodes = []; + $.each(dutyData, function (index, item) { + + if ($.inArray(item.chargerCode, charCodes) < 0) { + charCodes.push(item.chargerCode); + } + + + }); + + + var req = { + sysCode: sysComm.sysCode, + planName: planName, + planId: planId, + plNum: plNos.length, + employeeNum: charCodes.length, + dutyCycle: dutyCycle, + restType: '手工排班', + berthRangeNum: berthRangeNos.length, + effectTime:effectTime + }; + + var opt = { + method: 'post', + url: dataUrl.util.submitDutyRoster(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + // console.log('正式提交排班计划:') + // console.log(res) + if (res.code == '8888') { + //成功刷新table + fun.createTableData(); + $('#schedulingsetting-con').removeClass('display-none'); + $('#schedulingsetting-wraphand').addClass('display-none'); + $('#plan-onestep-wraphand').addClass('display-none'); + $('#plan-twostep-wraphand').addClass('display-none'); + $('#plan-threestep-wraphand').addClass('display-none'); + $('#plan-fourstep-wraphand').addClass('display-none'); + $('#schplan_rulehand').addClass('display-none').text(''); + + } else { + alert('保存失败'); + } + + } + }; + sysAjax(opt); + }, + + //生成智能排班计划临时数据 + makeDutyRosterForAI: function () { + //生效时间 + var effectTime = Date.parse($('#timeinStartDate').val().replace(/-/g,"/")); + var planId = fun.generatorDutyRosterPlanId(); + var infoMap = fun.getSelectPlNoInfo(); + var plNos = infoMap.plNos; + var berthRangeNos = infoMap.berthRangeNos; + + var chargerCodes = fun.getSelectedChargerCodes(); + var restStrategy = fun.getRestStrategy(); + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + berthRangeNos:berthRangeNos, + planId: planId, + chargerCodes: chargerCodes, + cycleNum: restStrategy.dutyCycle, + maxWorkDayNum: restStrategy.worknum, + maxRestDayNum: 1, + effectTime:effectTime + }; + + var opt = { + method: 'post', + url: dataUrl.util.makeDutyRosterForAI(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + // console.log('排班计划临时数据:') + // console.log(res) + if (res.code == '8888') { + //将生成的数据放到 页面上 + $('#ai_duty_roster_data').data('aidata', JSON.stringify(res.data)); + fun.handelChargerViewDutyRosterDataset(res.data, 'preview'); + $('#plan-threestep-wrap').addClass('display-none'); + $('#plan-fourstep-wrap').removeClass('display-none'); + $('#step-wrap').find('li').eq(3).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); + + + } else { + alert('生成失败'); + } + } + }; + sysAjax(opt); + + }, + //查询排班计划基础数据 + queryDutyRosterBase: function () { + var planId = $('#schplan-toptablook').data('planid'); + $("#toll-wrap").empty(); + var req = { + sysCode: sysComm.sysCode, + planId: planId, + }; + if (fun.isChargerViewForViewPage()) { + req.viewType = 10; + req.workState = [10, 20]; + } else { + req.viewType = 20; + req.workState = [10] + } + var opt = { + method: 'post', + url: dataUrl.util.queryDutyRosterBase(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + // console.log('查询排班计划基础数据:') + if (res.code == '8888') { + if (fun.isChargerViewForViewPage()) { + fun.handelChargerViewDutyRosterDataset(res.data, 'view'); + } else { + fun.handelParkViewDutyRosterDataset(res.data, 'view'); + } + + } else { + alert('查询失败'); + } + + } + }; + sysAjax(opt); + }, + /** + * 预览视图 表头 + */ + createDutyRosterViewTitle: function (dataLength, viewType) { + + if (viewType == undefined || null == viewType) { + viewType = 'preview' + } + + var html = '' + + + //查看页面 是收费员视图 或者 预览页面 并且是收费员视图 + if ((viewType == 'view' && fun.isChargerViewForViewPage()) || (viewType == 'preview' && fun.isChargerViewForPreview())) { + html = '
                ' + + '
              • 收费员/时间
              • '; + } else { + html = '
                  ' + + '
                • 停车场/时间
                • '; + } + + for (var i = 1; i <= dataLength; i++) { + html += '
                • 第' + i + '天
                • '; + } + + html += '
                '; + + + return html; + }, + /** + * 手工排班第三步 进行排班设置 + */ + createDutyRosterViewTitleByHandThree: function (dataLength, viewType) { + + if (viewType == undefined || null == viewType) { + viewType = 'preview' + } + + var html = '' + + html = '
                  ' + + '
                • 停车场/时间
                • '; + + for (var i = 1; i <= dataLength; i++) { + html += '
                • 第' + i + '天
                • '; + } + + html += '
                '; + + + return html; + }, + + /** + * 手工排班第四步 进行排班预览 + */ + createDutyRosterViewTitleByHandFour: function (dataLength, viewType) { + + if (viewType == undefined || null == viewType) { + viewType = 'preview' + } + + var html = '' + + + //查看页面 是收费员视图 或者 预览页面 并且是收费员视图 + if ((viewType == 'view' && fun.isChargerViewForViewPage()) || (viewType == 'preview' && fun.isChargerViewForPreviewForHand())) { + html = '
                  ' + + '
                • 收费员/时间
                • '; + } else { + html = '
                    ' + + '
                  • 停车场/时间
                  • '; + } + + for (var i = 1; i <= dataLength; i++) { + html += '
                  • 第' + i + '天
                  • '; + } + + html += '
                  '; + + + return html; + }, + + /*处理停车场视图排班计划数据*/ + handelParkViewDutyRosterDataset: function (resData, viewType) { + $("#toll-wrap").empty(); + $("#park-wrap").empty(); + $("#toll-wraplook").empty(); + $("#park-wraplook").empty(); + var tempData = []; + + //预览 + if (viewType == 'preview') { + $.each(resData, function (index, temp) { + if (temp.isRest == 10) { + tempData.push(temp); + } + + }); + resData = tempData; + } + // console.log(viewType); + // console.log('停车场视图数据:'); + // console.log(JSON.stringify(resData)); + //数据格式整理 + var parkData = {}; + var berthData = {}; + var groupData = {}; + var dutyDayData = {}; + var data = {}; + var dutyCycle = 0; + + $.each(resData, function (index, item) { + dutyCycle = item.dutyCycle; + var plNo = item.plNo; + var berthNo = item.berthRangeNo; + var groupId = item.groupId; + var dayNum = item.dayNum + ''; + + if (parkData[plNo] == undefined || parkData[plNo] == null) { + parkData[plNo] = item.plName; + data[plNo] = {}; + } + if (data[plNo][berthNo] == undefined || data[plNo][berthNo] == null) { + berthData[berthNo] = item.berthRangeName; + data[plNo][berthNo] = {}; + } + if (data[plNo][berthNo][groupId] == undefined || data[plNo][berthNo][groupId] == null) { + groupData[groupId] = {}; + groupData[groupId].groupName = item.groupName; + groupData[groupId].groupStartTime = item.groupStartTime; + groupData[groupId].groupEndTime = item.groupEndTime; + + data[plNo][berthNo][groupId] = {}; + } + if (data[plNo][berthNo][groupId][dayNum] == undefined || data[plNo][berthNo][groupId][dayNum] == null) { + dutyDayData[dayNum] = {}; + dutyDayData[dayNum].dayNum = item.dayNum; + data[plNo][berthNo][groupId][dayNum] = []; + } + data[plNo][berthNo][groupId][dayNum].push(item); + }); + var dateFilterArray = []; + + for (var i = 1; i <= dutyCycle; i++) { + dateFilterArray.push(i + ''); + } + fun.handelParkViewDutyRosterDataToHtml(data, parkData, berthData, groupData, dutyDayData, viewType, dutyCycle, dateFilterArray) + + }, + + /*处理停车场视图排班计划数据转换为 html*/ + handelParkViewDutyRosterDataToHtml: function (data, parkData, berthData, groupData, dutyDayData, viewType, dutyCycle, dateFilterArray) { + $("#toll-wrap").empty(); + $("#park-wrap").empty(); + $("#toll-wraplook").empty(); + $("#park-wraplook").empty(); + + var html = fun.createDutyRosterViewTitle(dutyCycle, viewType); + + html += '
                  '; + for (var plNo in data) { + html += '
                    ' + + '
                  • ' + + '
                    ' + fun.strFormatter(parkData[plNo]) + '
                    ' + + '
                  • ' + + '
                  • '; + for (var berth in data[plNo]) { + html += '
                      ' + + '
                    • ' + + '
                      ' + fun.strFormatter(berthData[berth]) + '
                      ' + + '
                    • ' + + '
                    • '; + for (var group in data[plNo][berth]) { + html += '
                        ' + + '
                      • ' + + '
                        ' + fun.strFormatter(groupData[group].groupName) + '
                        ' + + '
                        ' + fun.strFormatter((DateUtils.long2String(groupData[group].groupStartTime, 3)).substr(0, 5)) + '
                        ' + + '
                        -
                        ' + + '
                        ' + fun.strFormatter((DateUtils.long2String(groupData[group].groupEndTime, 3)).substr(0, 5)) + '
                        ' + + '
                      • '; + $.each(dateFilterArray, function (index, filter) { + var isFind = false; + //console.log('filter====================:'+DateUtils.long2String(filter, 1)); + for (var dutyDay in data[plNo][berth][group]) { + //console.log('duty:'+dutyDay); + //console.log('duty:'+DateUtils.long2String(parseInt(dutyDay), 1)); + if (filter == parseInt(dutyDay)) { + isFind = true; + var tempHtml = '
                      • '; + for (var i in data[plNo][berth][group][dutyDay]) { + var temp = data[plNo][berth][group][dutyDay][i]; + if (temp.isRest == 10) {//正常上班 + tempHtml += '
                        ' + fun.strFormatter(temp.chargerName) + '
                        '; + } + + } + tempHtml += '
                      • '; + html += tempHtml; + } + } + if (!isFind) { + html += '
                      • 暂无排班
                      • '; + } + + }); + + html += '
                      '; + } + html += '
                    '; + } + html += '
                  '; + } + html += '
                  '; + $("#toll-wrap").append(html) + $("#park-wrap").append(html) + $("#toll-wraplook").append(html) + + $("#park-wraplook").append(html) + // console.log(data.length) + var len = $('#park-wrap .schedulingplan-data-wrap li').length; + + $('.schedulingplan-data-wrap,.schedulingplan-main-wrap').css('width', (Number(120 * len) + Number(120)) + 'px') + + }, + + + /*处理停车场视图排班计划数据 手工排班*/ + handelParkViewDutyRosterDatasetByHand: function (resData, viewType) { + $("#park-wraphandthree").empty(); + var tempData = []; + + //预览 + if (viewType == 'preview') { + $.each(resData, function (index, temp) { + if (temp.isRest == 10) { + tempData.push(temp); + } + + }); + resData = tempData; + } + // console.log(viewType); + // console.log('停车场视图数据:'); + // console.log(JSON.stringify(resData)); + //数据格式整理 + var parkData = {}; + var berthData = {}; + var groupData = {}; + var dutyDayData = {}; + var data = {}; + var dutyCycle = 0; + + $.each(resData, function (index, item) { + dutyCycle = item.dutyCycle; + var plNo = item.plNo; + var berthNo = item.berthRangeNo; + var groupId = item.groupId; + var dayNum = item.dayNum + ''; + + if (parkData[plNo] == undefined || parkData[plNo] == null) { + parkData[plNo] = item.plName; + data[plNo] = {}; + } + if (data[plNo][berthNo] == undefined || data[plNo][berthNo] == null) { + berthData[berthNo] = item.berthRangeName; + data[plNo][berthNo] = {}; + } + if (data[plNo][berthNo][groupId] == undefined || data[plNo][berthNo][groupId] == null) { + groupData[groupId] = {}; + groupData[groupId].groupName = item.groupName; + groupData[groupId].groupStartTime = item.groupStartTime; + groupData[groupId].groupEndTime = item.groupEndTime; + + data[plNo][berthNo][groupId] = {}; + } + if (data[plNo][berthNo][groupId][dayNum] == undefined || data[plNo][berthNo][groupId][dayNum] == null) { + dutyDayData[dayNum] = {}; + dutyDayData[dayNum].dayNum = item.dayNum; + data[plNo][berthNo][groupId][dayNum] = []; + } + data[plNo][berthNo][groupId][dayNum].push(item); + }); + var dateFilterArray = []; + + for (var i = 1; i <= dutyCycle; i++) { + dateFilterArray.push(i + ''); + } + fun.handelParkViewDutyRosterDataToHtmlByHand(data, parkData, berthData, groupData, dutyDayData, viewType, dutyCycle, dateFilterArray) + + }, + + /*处理停车场视图排班计划数据转换为 html 手工排班*/ + handelParkViewDutyRosterDataToHtmlByHand: function (data, parkData, berthData, groupData, dutyDayData, viewType, dutyCycle, dateFilterArray) { + $("#park-wraphandthree").empty(); + + var html = fun.createDutyRosterViewTitleByHandThree(dutyCycle, viewType); + + html += '
                  '; + for (var plNo in data) { + console.log('停车场排班信息为:' + JSON.stringify(data)) + html += '
                    ' + + '
                  • ' + + '
                    ' + fun.strFormatter(parkData[plNo]) + '
                    ' + + '
                  • ' + + '
                  • '; + for (var berth in data[plNo]) { + html += '
                      ' + + '
                    • ' + + '
                      ' + fun.strFormatter(berthData[berth]) + '
                      ' + + '
                    • ' + + '
                    • '; + for (var group in data[plNo][berth]) { + html += '
                        ' + + '
                      • ' + + '
                        ' + fun.strFormatter(groupData[group].groupName) + '
                        ' + + '
                        ' + fun.strFormatter((DateUtils.long2String(groupData[group].groupStartTime, 3)).substr(0, 5)) + '
                        ' + + '
                        -
                        ' + + '
                        ' + fun.strFormatter((DateUtils.long2String(groupData[group].groupEndTime, 3)).substr(0, 5)) + '
                        ' + + '
                      • '; + $.each(dateFilterArray, function (index, filter) { + var isFind = false; + for (var dutyDay in data[plNo][berth][group]) { + if (filter == parseInt(dutyDay)) { + isFind = true; + var tempHtml = '
                      • '; + for (var i in data[plNo][berth][group][dutyDay]) { + var temp = data[plNo][berth][group][dutyDay][i]; + if (temp.isRest == 10) {//正常上班 + tempHtml += "'; + } + } + tempHtml += '
                      • '; + html += tempHtml; + } + } + if (!isFind) { + html += '
                      • 暂无排班
                      • '; + } + + }); + + html += '
                      '; + } + html += '
                    '; + } + html += '
                  '; + } + html += '
                  '; + $("#park-wraphandthree").append(html); + + $('.handDutyChargerSelect').selectpicker('render'); + var len = $('#park-wraphandthree .schedulingplan-data-wrap li').length-1; + + $('#park-wraphandthree .schedulingplan-data-wrap ').css('width', (Number(120 * len) + Number(240)) + 'px') + }, + + /*处理停车场视图排班计划数据 手工排班*/ + handelParkViewDutyRosterDatasetByHandForStep4: function (resData, viewType) { + $("#park-wraphand").empty(); + var tempData = []; + + //预览 + if (viewType == 'preview') { + $.each(resData, function (index, temp) { + if (temp.isRest == 10) { + tempData.push(temp); + } + + }); + resData = tempData; + } + // console.log(viewType); + // console.log('停车场视图数据:'); + // console.log(JSON.stringify(resData)); + //数据格式整理 + var parkData = {}; + var berthData = {}; + var groupData = {}; + var dutyDayData = {}; + var data = {}; + var dutyCycle = 0; + + $.each(resData, function (index, item) { + dutyCycle = item.dutyCycle; + var plNo = item.plNo; + var berthNo = item.berthRangeNo; + var groupId = item.groupId; + var dayNum = item.dayNum + ''; + + if (parkData[plNo] == undefined || parkData[plNo] == null) { + parkData[plNo] = item.plName; + data[plNo] = {}; + } + if (data[plNo][berthNo] == undefined || data[plNo][berthNo] == null) { + berthData[berthNo] = item.berthRangeName; + data[plNo][berthNo] = {}; + } + if (data[plNo][berthNo][groupId] == undefined || data[plNo][berthNo][groupId] == null) { + groupData[groupId] = {}; + groupData[groupId].groupName = item.groupName; + groupData[groupId].groupStartTime = item.groupStartTime; + groupData[groupId].groupEndTime = item.groupEndTime; + + data[plNo][berthNo][groupId] = {}; + } + if (data[plNo][berthNo][groupId][dayNum] == undefined || data[plNo][berthNo][groupId][dayNum] == null) { + dutyDayData[dayNum] = {}; + dutyDayData[dayNum].dayNum = item.dayNum; + data[plNo][berthNo][groupId][dayNum] = []; + } + data[plNo][berthNo][groupId][dayNum].push(item); + }); + var dateFilterArray = []; + + for (var i = 1; i <= dutyCycle; i++) { + dateFilterArray.push(i + ''); + } + fun.handelParkViewDutyRosterDataToHtmlByHandForStep4(data, parkData, berthData, groupData, dutyDayData, viewType, dutyCycle, dateFilterArray) + + }, + + /*处理停车场视图排班计划数据转换为 html 手工排班*/ + handelParkViewDutyRosterDataToHtmlByHandForStep4: function (data, parkData, berthData, groupData, dutyDayData, viewType, dutyCycle, dateFilterArray) { + $("#park-wraphand").empty(); + $("#toll-wraphand").empty(); + + var html = fun.createDutyRosterViewTitleByHandFour(dutyCycle, viewType); + + html += '
                  '; + for (var plNo in data) { + console.log('停车场排班信息为:' + JSON.stringify(data)) + html += '
                    ' + + '
                  • ' + + '
                    ' + fun.strFormatter(parkData[plNo]) + '
                    ' + + '
                  • ' + + '
                  • '; + for (var berth in data[plNo]) { + html += '
                      ' + + '
                    • ' + + '
                      ' + fun.strFormatter(berthData[berth]) + '
                      ' + + '
                    • ' + + '
                    • '; + for (var group in data[plNo][berth]) { + html += '
                        ' + + '
                      • ' + + '
                        ' + fun.strFormatter(groupData[group].groupName) + '
                        ' + + '
                        ' + fun.strFormatter((DateUtils.long2String(groupData[group].groupStartTime, 3)).substr(0, 5)) + '
                        ' + + '
                        -
                        ' + + '
                        ' + fun.strFormatter((DateUtils.long2String(groupData[group].groupEndTime, 3)).substr(0, 5)) + '
                        ' + + '
                      • '; + $.each(dateFilterArray, function (index, filter) { + var isFind = false; + for (var dutyDay in data[plNo][berth][group]) { + if (filter == parseInt(dutyDay)) { + isFind = true; + var tempHtml = '
                      • '; + for (var i in data[plNo][berth][group][dutyDay]) { + var temp = data[plNo][berth][group][dutyDay][i]; + if (temp.isRest == 10) {//正常上班 + tempHtml += '
                        ' + fun.strFormatter(temp.chargerName) + '
                        '; + } + } + tempHtml += '
                      • '; + html += tempHtml; + } + } + if (!isFind) { + html += '
                      • 暂无排班
                      • '; + } + + }); + + html += '
                      '; + } + html += '
                    '; + } + html += '
                  '; + } + html += '
                  '; + $("#park-wraphand").append(html); + $("#toll-wraphand").append(html); + + $('.handDutyChargerSelect').selectpicker('render'); + var len = $('#park-wrap .schedulingplan-data-wrap li').length; + + // $('.schedulingplan-data-wrap,.schedulingplan-main-wrap').css('width', (Number(120 * len) + Number(120)) + 'px') + }, + + + /*处理收费员视图排班计划数据*/ + handelChargerViewDutyRosterDataset: function (data, viewType) { + $("#toll-wrap").empty(); + $("#park-wrap").empty(); + $("#toll-wraplook").empty(); + $("#park-wraplook").empty(); + var chargerData = {}; + var handelData = {}; + var dutyCycle = 0; + $.each(data, function (index, item) { + dutyCycle = item.dutyCycle; + var chargerCode = item.chargerCode; + if (undefined == handelData[chargerCode]) { + handelData[chargerCode] = [] + var charger = {}; + charger.chargerCode = chargerCode; + charger.chargerName = item.chargerName; + chargerData[chargerCode] = charger; + } + handelData[chargerCode].push(item); + }); + + var dateFilterArray = []; + for (var i = 1; i <= dutyCycle; i++) { + dateFilterArray.push(i + ''); + } + + fun.handelChargerViewDutyRosterDataToHtml(handelData, chargerData, viewType, dateFilterArray); + }, + //将处理过后的收费员视图数据转换为 html; + handelChargerViewDutyRosterDataToHtml: function (data, chargerData, viewType, dateFilterArray) { + + $("#toll-wrap").empty(); + $("#park-wrap").empty(); + $("#toll-wraplook").empty(); + $("#park-wraplook").empty(); + + //获取标题头 + var html = fun.createDutyRosterViewTitle(dateFilterArray.length, viewType); + + //填充内容 + html += '
                  '; + // console.log(data) + for (var chargerCode in data) { + html += '
                    '; + html += '
                  • ' + fun.strFormatter(chargerData[chargerCode].chargerName) + '
                    ' + + '
                    ' + fun.strFormatter(chargerCode) + '
                  • '; + $.each(dateFilterArray, function (index, filter) { + var isFind = false; + for (var i in data[chargerCode]) { + var _item = data[chargerCode][i]; + if (filter == _item.dayNum) { + isFind = true; + if (_item.isRest == 10) {//正常工作 + html += '
                  • ' + + '
                    ' + fun.strFormatter(_item.plName) + '
                    ' + + '
                    ' + fun.strFormatter(_item.berthRangeName) + '
                    ' + + '
                    ' + fun.strFormatter(_item.groupName) + '
                    ' + + '
                    ' + fun.strFormatter((DateUtils.long2String(_item.groupStartTime, 3)).substr(0, 5)) + ' - ' + fun.strFormatter((DateUtils.long2String(_item.groupEndTime, 3)).substr(0, 5)) + '
                    ' + + // '
                    调休
                    ' + + '
                  • '; + } else if (_item.isRest == 20) {//休息 + html += '
                  • 休息
                  • '; + + } else if (_item.workState == 30) {//调休 + html += '
                  • ' + + '
                    ' + fun.strFormatter(_item.plName) + '
                    ' + + '
                    ' + fun.strFormatter(_item.berthRangeName) + '
                    ' + + '
                    ' + fun.strFormatter(_item.groupName) + ' ' + fun.strFormatter(_item.chargerNameRep) + '
                    ' + + '
                    ' + fun.strFormatter((DateUtils.long2String(_item.groupStartTime, 3)).substr(0, 5)) + ' - ' + fun.strFormatter((DateUtils.long2String(_item.groupEndTime, 3)).substr(0, 5)) + '
                    ' + + //'
                    调休
                    '+ + '
                  • '; + } else if (_item.workState == 40) {//代班 + html += '
                  • ' + + '
                    ' + fun.strFormatter(_item.plName) + '
                    ' + + '
                    ' + fun.strFormatter(_item.berthRangeName) + '
                    ' + + '
                    ' + fun.strFormatter(_item.groupName) + ' ' + fun.strFormatter(_item.chargerNameRep) + '
                    ' + + '
                    ' + fun.strFormatter((DateUtils.long2String(_item.groupStartTime, 3)).substr(0, 5)) + ' - ' + fun.strFormatter((DateUtils.long2String(_item.groupEndTime, 3)).substr(0, 5)) + '
                    ' + + //'
                    调休
                    '+ + '
                  • '; + } + } + + } + if (!isFind) { + html += '
                  • 暂无排班
                  • '; + } + }); + html += '
                  '; + } + + $("#toll-wrap").append(html) + $("#park-wrap").append(html) + $("#toll-wraplook").append(html) + $("#park-wraplook").append(html) + $('.schedulingplan-data-wrap,.schedulingplan-main-wrap').css('width', 120 * (dateFilterArray.length + 1) + 'px') + }, + + /*处理收费员视图排班计划数据*/ + handelChargerViewDutyRosterDatasetByHandForStep4: function (data, viewType) { + $("#park-wraphand").empty(); + $("#toll-wraphand").empty(); + var chargerData = {}; + var handelData = {}; + var dutyCycle = 0; + $.each(data, function (index, item) { + dutyCycle = item.dutyCycle; + var chargerCode = item.chargerCode; + if (undefined == handelData[chargerCode]) { + handelData[chargerCode] = [] + var charger = {}; + charger.chargerCode = chargerCode; + charger.chargerName = item.chargerName; + chargerData[chargerCode] = charger; + } + handelData[chargerCode].push(item); + }); + + var dateFilterArray = []; + for (var i = 1; i <= dutyCycle; i++) { + dateFilterArray.push(i + ''); + } + + fun.handelChargerViewDutyRosterDataToHtmlByHandForStep4(handelData, chargerData, viewType, dateFilterArray); + }, + //将处理过后的收费员视图数据转换为 html; + handelChargerViewDutyRosterDataToHtmlByHandForStep4: function (data, chargerData, viewType, dateFilterArray) { + + $("#park-wraphand").empty(); + $("#toll-wraphand").empty(); + + //获取标题头 + var html = fun.createDutyRosterViewTitleByHandFour(dateFilterArray.length, viewType); + + //填充内容 + html += '
                  '; + // console.log(data) + for (var chargerCode in data) { + html += '
                    '; + html += '
                  • ' + fun.strFormatter(chargerData[chargerCode].chargerName) + '
                    ' + + '
                    ' + fun.strFormatter(chargerCode) + '
                  • '; + $.each(dateFilterArray, function (index, filter) { + var isFind = false; + for (var i in data[chargerCode]) { + var _item = data[chargerCode][i]; + if (filter == _item.dayNum) { + isFind = true; + if (_item.isRest == 10) {//正常工作 + html += '
                  • ' + + '
                    ' + fun.strFormatter(_item.plName) + '
                    ' + + '
                    ' + fun.strFormatter(_item.berthRangeName) + '
                    ' + + '
                    ' + fun.strFormatter(_item.groupName) + '
                    ' + + '
                    ' + fun.strFormatter((DateUtils.long2String(_item.groupStartTime, 3)).substr(0, 5)) + ' - ' + fun.strFormatter((DateUtils.long2String(_item.groupEndTime, 3)).substr(0, 5)) + '
                    ' + + // '
                    调休
                    ' + + '
                  • '; + } else if (_item.isRest == 20) {//休息 + html += '
                  • 休息
                  • '; + + } else if (_item.workState == 30) {//调休 + html += '
                  • ' + + '
                    ' + fun.strFormatter(_item.plName) + '
                    ' + + '
                    ' + fun.strFormatter(_item.berthRangeName) + '
                    ' + + '
                    ' + fun.strFormatter(_item.groupName) + ' ' + fun.strFormatter(_item.chargerNameRep) + '
                    ' + + '
                    ' + fun.strFormatter((DateUtils.long2String(_item.groupStartTime, 3)).substr(0, 5)) + ' - ' + fun.strFormatter((DateUtils.long2String(_item.groupEndTime, 3)).substr(0, 5)) + '
                    ' + + //'
                    调休
                    '+ + '
                  • '; + } else if (_item.workState == 40) {//代班 + html += '
                  • ' + + '
                    ' + fun.strFormatter(_item.plName) + '
                    ' + + '
                    ' + fun.strFormatter(_item.berthRangeName) + '
                    ' + + '
                    ' + fun.strFormatter(_item.groupName) + ' ' + fun.strFormatter(_item.chargerNameRep) + '
                    ' + + '
                    ' + fun.strFormatter((DateUtils.long2String(_item.groupStartTime, 3)).substr(0, 5)) + ' - ' + fun.strFormatter((DateUtils.long2String(_item.groupEndTime, 3)).substr(0, 5)) + '
                    ' + + //'
                    调休
                    '+ + '
                  • '; + } + } + + } + if (!isFind) { + html += '
                  • 暂无排班
                  • '; + } + }); + html += '
                  '; + } + + $("#toll-wraphand").append(html) + $("#park-wraphand").append(html) + $('.schedulingplan-data-wrap,.schedulingplan-main-wrap').css('width', 120 * (dateFilterArray.length + 1) + 'px') + }, + + + //获取未添加的排班计划班次 + getNoAddDutyRosterGroup: function () { + var group = {} + var groupName = $('#bcNames_inp').val(); + var startTime = $('#startTime').val(); + var endTime = $('#endTime').val(); + group.name = groupName; + group.startTime = startTime; + group.endTime = endTime; + return group; + }, + //获取未添加的排班计划班次 手工排班 + getNoAddDutyRosterGroupByHand: function () { + var group = {} + var groupName = $('#bcNames_inphand').val(); + var startTime = $('#startTimehand').val(); + var endTime = $('#endTimehand').val(); + group.name = groupName; + group.startTime = startTime; + group.endTime = endTime; + return group; + }, + //获取已添加的排班计划班次 + getHasAddDutyRosterGroup: function () { + var groups = []; + $('#schplan_tablecon-list').find('ul').each(function () { + var group = {}; + $(this).find('li').each(function (index, item) { + if (index == 0) { + group.name = $(item).text(); + } + if (index == 1) { + var dateRange = $(item).text().split('-'); + group.startTime = new Date(('1970-01-01 ' + dateRange[0].trim() + ':00').replace(new RegExp(/-/gm), "/")); + group.endTime = new Date(('1970-01-01 ' + dateRange[1].trim() + ':00').replace(new RegExp(/-/gm), "/")); + + } + }); + groups.push(group); + + }); + + return groups; + }, + //获取已添加的排班计划班次 手工排班 + getHasAddDutyRosterGroupByHand: function () { + var groups = []; + $('#schplan_tablecon-listhand').find('ul').each(function () { + var group = {}; + $(this).find('li').each(function (index, item) { + if (index == 0) { + group.name = $(item).text(); + } + if (index == 1) { + var dateRange = $(item).text().split('-'); + group.startTime = new Date(('1970-01-01 ' + dateRange[0].trim() + ':00').replace(new RegExp(/-/gm), "/")); + group.endTime = new Date(('1970-01-01 ' + dateRange[1].trim() + ':00').replace(new RegExp(/-/gm), "/")); + + } + }); + groups.push(group); + + }); + + return groups; + }, + //根据planId获取班次信息 + getGroupByPlanIdForRemote: function () { + var planId = fun.generatorDutyRosterPlanIdByHand(); + var planIds = []; + planIds.push(planId); + var req = { + sysCode: sysComm.sysCode, + planIds: planIds, + isContainNoValidate: true + }; + var groups = []; + var opt = { + method: 'post', + url: dataUrl.util.queryDutyRosterGroups(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + groups = res.data; + } else { + alert('查询失败:' + res.code); + } + + } + }; + sysAjax(opt); + return groups; + }, + + /** + * 获取调休策略 + * @returns {{}} + */ + getRestStrategy: function () { + var restStrategy = {}; + var options = $("#planclname option:selected"); + restStrategy.restType = options.text(); + restStrategy.personNum = options.data('personnum'); + restStrategy.berthRangeNum = options.data('berthrangenum'); + restStrategy.worknum = options.data('worknum'); + restStrategy.dutyCycle = options.data('dutycycle'); + + return restStrategy; + + + }, + + //查询调休策略 + queryDutyPersonNumAndRecessNum: function () { + $('#planclname').empty(); + + var groups = fun.getHasAddDutyRosterGroup(); + var infoMap = fun.getSelectPlNoInfo(); + + var berthRangeNos = infoMap.berthRangeNos; + var plNos= infoMap.plNos; + + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + berthRangeNos:berthRangeNos, + rosterGroupNum: groups.length + }; + + var opt = { + method: 'post', + url: dataUrl.util.queryDutyPersonNumAndRecessNum(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + // console.log('调休策略') + + var html = ''; + $.each(res.data, function (index, item) { + + var restHtml = ''; + if (item.recessNum == 0) { + restHtml = '无调休'; + } else { + restHtml = '上' + item.recessNum + '天休1天'; + } + + html += '' + }) + + $('#planclname').append(html); + $('#planclname').selectpicker('refresh'); + $('#planclname').trigger('change'); + } + }; + sysAjax(opt); + + }, + + //获取选择的收费员 + getSelectedCharger: function () { + var chargers = []; + $('#replace-person-right').find('li').each(function () { + var charger = {}; + charger.name = $(this).text(); + charger.code = $(this).data('code'); + chargers.push(charger); + }) + return chargers; + + }, + + //获取选择的收费员编码 + getSelectedChargerCodes: function () { + var chargerCodes = []; + + var chargers = fun.getSelectedCharger(); + $.each(chargers, function (index, item) { + chargerCodes.push(item.code); + }) + + return chargerCodes; + + }, + + + //删除排班计划 + deleteDutyRosterPlan: function (planId) { + var planIds = []; + planIds.push(planId); + var req = { + sysCode: sysComm.sysCode, + planIds: planIds + }; + var opt = { + method: 'post', + url: dataUrl.util.deleteDutyRosterPlan(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + $('#plan_deletemodel').modal('hide'); + fun.createTableData(); + } else { + alert('删除失败:' + res.code); + } + + } + }; + sysAjax(opt); + + + }, + //获取未排班的收费员 + queryNotDutyChargerList: function () { + sessionStorage.setItem("no_duty_charger_data", JSON.stringify([])); + $('#replace-person-left').empty(); + $('#replace-person-right').empty(); + $('#checked-persons').text(0); + var req = { + sysCode: sysComm.sysCode, + }; + var opt = { + method: 'post', + url: dataUrl.util.queryNotDutyChargerList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + sessionStorage.setItem("no_duty_charger_data", JSON.stringify(res.data)); + var html = ''; + $.each(res.data, function (index, item) { + html += '
                • ' + item.chargerName + '
                • ' + }) + $('#replace-person-left').append(html); + } else { + alert("查询未排班收费员异常:code=" + res.code); + } + } + }; + sysAjax(opt); + + + }, + //获取手工排班 排班天数 手工排班 + getDutyDaysNumByHand: function () { + var dayNum = $('#bctime_inphand').val(); + return dayNum; + }, + //初始化手工排班内容 手工排班 + initHandDutyContent: function () { + + //获取天数 + var dayNum = fun.getDutyDaysNumByHand(); + //获取排班班次 + var groups = fun.getGroupByPlanIdForRemote(); + //获取泊位区间 + var berthRanges = fun.getBerthRangeByPlNosForHand(); + var planId = fun.generatorDutyRosterPlanIdByHand(); + var plMap = fun.getSelectPlNosByHandMap(); + var data = []; + + $.each(berthRanges, function (index, berthRange) { + + $.each(groups, function (index, group) { + for (var i = 1; i <= dayNum; i++) { + var dutyTemp = { + 'planId': planId, + 'chargerCode': -1, + 'chargerName': -1, + 'dayNum': i, + 'dutyCycle': dayNum, + 'plNo': berthRange.plNo, + 'plName': plMap[berthRange.plNo], + "berthRangeNo": berthRange.parkAreaCode, + "berthRangeName": berthRange.parkAreaName, + "groupId": group.groupId, + "groupName": group.groupName, + "groupStartTime": group.groupStartTime, + "groupEndTime": group.groupEndTime, + "dataStatus": 1, + "isRest": 10 + }; + data.push(dutyTemp); + } + + + }); + + }); + + fun.handelParkViewDutyRosterDatasetByHand(data, "preview"); + + + }, + + + //获取排班计划名称 + getDutyRosterPlanName: function () { + return $('#schjhNames_inp').val(); + } + , + //获取手工排班计划名称 + getDutyRosterPlanNameByHand: function () { + return $('#schjhNames_inphand').val(); + }, + + //获取选择的停车场及泊位区间信息 + getSelectPlNoInfo:function(){ + + var berthRangeNos = []; + var plNos = []; + $('#planstep-parkCheck').find('span').each(function () { + var berthRangeNo = $(this).data('id'); + var plno = $(this).data('plno'); + + if (undefined != berthRangeNo && null != berthRangeNo && berthRangeNos.indexOf(berthRangeNo) <0 ) { + berthRangeNos.push(berthRangeNo); + } + + if (undefined != plno && null != plno && plNos.indexOf(plno) <0 ) { + plNos.push(plno); + } + }); + var infoMap = { + berthRangeNos:berthRangeNos, + plNos:plNos + } + + return infoMap; + + }, + + //获取选择的停车场Map + getSelectPlNosByHandMap: function () { + var plMap = []; + $('#planstep-parkCheckhand').find('span').each(function () { + var plNo = $(this).data('plno'); + var plName = $(this).data('plname'); + if (undefined != plNo && null != plNo) { + plMap[plNo] = plName; + } + }); + return plMap; + }, + //获取手工选择的停车场 + getSelectPlNosByHand: function () { + var plNos = []; + $('#planstep-parkCheckhand').find('span').each(function () { + var plNo = $(this).data('id'); + if (undefined != plNo && null != plNo) { + plNos.push(plNo); + } + }); + return plNos; + }, + + //获取选择的停车场及泊位区间信息 + getSelectPlNoInfoByHand:function(){ + + var berthRangeNos = []; + var plNos = []; + $('#planstep-parkCheckhand').find('span').each(function () { + var berthRangeNo = $(this).data('id'); + var plno = $(this).data('plno'); + + if (undefined != berthRangeNo && null != berthRangeNo && berthRangeNos.indexOf(berthRangeNo) <0 ) { + berthRangeNos.push(berthRangeNo); + } + + if (undefined != plno && null != plno && plNos.indexOf(plno) <0 ) { + plNos.push(plno); + } + }); + var infoMap = { + berthRangeNos:berthRangeNos, + plNos:plNos + } + + return infoMap; + + }, + + + + + //预览页面 判断是否收费员视图 + isChargerViewForPreview: function () { + return $('#schtolltypeset').hasClass('ITD-graynav-topbaractive'); + }, + + //预览页面 判断是否收费员视图 手工排班 + isChargerViewForPreviewForHand: function () { + return $('#schtolltypesethand').hasClass('ITD-graynav-topbaractive'); + }, + + //查看页面 判断是否收费员视图 + isChargerViewForViewPage: function () { + return $('#schtolltypelook').hasClass('ITD-graynav-topbaractive'); + }, + //获取选择的收费员数量 + getViewSelectChargerNum: function () { + var num = $('#checked-persons').text(); + return parseInt(num); + }, + generatorDutyRosterPlanId: function () { + var planId = $('#schedulingsetting-addBtn').data('planid'); + if (undefined != planId && null != planId && planId.length > 0) { + return planId; + } + planId = fun.generatorDutyRosterPlanIdOfRemote(); + $('#schedulingsetting-addBtn').data('planid', planId); + return planId; + }, + + generatorDutyRosterPlanIdByHand: function () { + var planId = $('#schedulingsetting-addBtnhand').data('planid'); + if (undefined != planId && null != planId && planId.length > 0) { + return planId; + } + planId = fun.generatorDutyRosterPlanIdOfRemote(); + $('#schedulingsetting-addBtnhand').data('planid', planId); + return planId; + }, + //从远端获取值班计划planId + generatorDutyRosterPlanIdOfRemote: function () { + var planId = ''; + var req = { + sysCode: sysComm.sysCode, + }; + var opt = { + method: 'post', + url: dataUrl.util.generatorDutyRosterPlanId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function (res) { + planId = res.data; + } + }; + sysAjax(opt); + return planId; + }, + //根据停车场编码获取泊位区间信息 + getBerthRangeByPlNosForHand: function () { + + var infoMap = fun.getSelectPlNoInfoByHand(); + + var berthRangeNos = infoMap.berthRangeNos; + var plNos =infoMap.plNos; + + var req = { + sysCode: sysComm.sysCode, + berthRangeNos: berthRangeNos, + }; + var data = []; + var opt = { + method: 'post', + url: dataUrl.util.queryTpPRegionAreaByBerthRangeNos(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function (res) { + data = res.data; + } + }; + sysAjax(opt); + return data; + }, + + + //保存班次 + saveDutyRosterGroups: function () { + var planId = fun.generatorDutyRosterPlanId(); + var groups = fun.getHasAddDutyRosterGroup(); + + var dutyRosterGroupDTOList = []; + + + $.each(groups, function (index, item) { + var dto = {}; + dto.planId = planId; + dto.groupName = item.name; + dto.groupStartTime = item.startTime; + dto.groupEndTime = item.endTime; + dutyRosterGroupDTOList.push(dto); + }) + + var req = { + sysCode: sysComm.sysCode, + planId: planId, + dutyRosterGroupDTOList: dutyRosterGroupDTOList + }; + var opt = { + method: 'post', + url: dataUrl.util.saveDutyRosterGroups(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + + + return res.data; + } + }; + sysAjax(opt); + + + }, + //保存班次 -手工排班 + saveDutyRosterGroupsByHand: function () { + var planId = fun.generatorDutyRosterPlanIdByHand(); + var groups = fun.getHasAddDutyRosterGroupByHand(); + + var dutyRosterGroupDTOList = []; + + + $.each(groups, function (index, item) { + var dto = {}; + dto.planId = planId; + dto.groupName = item.name; + dto.groupStartTime = item.startTime; + dto.groupEndTime = item.endTime; + dutyRosterGroupDTOList.push(dto); + }) + + var req = { + sysCode: sysComm.sysCode, + planId: planId, + dutyRosterGroupDTOList: dutyRosterGroupDTOList + }; + var opt = { + method: 'post', + url: dataUrl.util.saveDutyRosterGroups(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + fun.initHandDutyContent(); + + return res.data; + } + }; + sysAjax(opt); + + + }, + //组装未排班收费员html Opthion数据 手工排班 + getNoDutyChargerDataToOptionHtml: function () { + var noDutyCharger = JSON.parse(sessionStorage.getItem("no_duty_charger_data")); + var html = ''; + + $.each(noDutyCharger, function (index, charge) { + html += ''; + }); + + return html; + + + }, + //获取手工排班数据 + getDutyDataForHand: function () { + var dutyData = []; + + var chargers = []; + var dayDutyMap = {}; + + $('select.handDutyChargerSelect').each(function (index, item) { + var tempData = $(item).data('duty'); + var chargerCode = $(item).val(); + var chargerName = $(item).find("option:selected").text(); + tempData.chargerCode = chargerCode; + tempData.chargerName = chargerName; + if(fun.isContainCharger(chargers,{ + chargerCode: chargerCode, + chargerName: chargerName + })); + var dayNum = tempData.dayNum; + var dayDutyData = dayDutyMap[dayNum]; + if (dayDutyData == undefined || dayDutyData == null) { + dayDutyData = []; + } + dayDutyData.push(tempData); + dayDutyMap[dayNum] = dayDutyData; + dutyData.push(tempData); + }); + + var dayNum = fun.getDutyDaysNumByHand(); + for (var i = 1; i <= dayNum; i++) { + var dayDutyData = dayDutyMap[i]; + $.each(chargers, function (index, charger) { + var data = fun.handelHandDutyData(dayDutyData, charger); + if (data != null) { + dutyData.push(data); + } + }) + + } + console.log('处理完后数据:'); + console.log(JSON.stringify(dutyData)); + return dutyData; + }, + //判断是否包含,如果未包含,加进去,包含,不加 + isContainCharger:function(chargers,charger){ + var flag = true; + $.each(chargers,function (index,item) { + if(item.chargerCode == charger.chargerCode){ + //说明包含 + flag = false; + } + }) + if(flag){ + chargers.push(charger); + } + + }, + + //处理排班数据 + handelHandDutyData: function (dutyData, charger) { + var tempData = null; + var flag = true; + var planId = '-1'; + var dayNum = 0; + var dutyCycle = 0; + $.each(dutyData, function (index, item) { + planId = item.planId; + dayNum = item.dayNum; + dutyCycle = item.dutyCycle; + if (item.chargerCode == charger.chargerCode) { + flag = false + } + }); + + if (flag) { + tempData = { + + "planId": planId, + "chargerCode": charger.chargerCode, + "chargerName": charger.chargerName, + "dayNum": dayNum, + "dutyCycle": dutyCycle, + "isRest": 20, + "plNo": "-1", + "plName": "-1", + "berthRangeNo": "-1", + "berthRangeName": "-1", + "groupId": "-1", + "groupName": "-1", + "groupStartTime": null, + "groupEndTime": null, + "dataStatus": 1 + } + } + + return tempData; + }, + + //核查手工排班数据 + checkDutyDataForHand: function (data) { + // + + var flag = true; + $('#schplan_rulehand').addClass('display-none').text(''); + + var dayMapData = {}; + + //校验未排班项 + if (flag) { + for (var i = 0; i < data.length; i++) { + var item = data[i]; + var dayData = dayMapData[item.dayNum]; + if (dayData == undefined || null == dayData) { + dayData = []; + } + dayData.push(item); + if (item.chargerCode == -1) { + $('#schplan_rulehand').removeClass('display-none').text('第'+item.dayNum+'天 '+item.plName + ' ' + item.berthRangeName + ' ' + item.groupName + ' 未排班'); + flag = false; + break; + } + dayMapData[item.dayNum] = dayData; + } + } + //校验 同一天一个人只能管理一个泊位区间 + if (flag) { + for(var i in dayMapData){ + + var dayData = dayMapData[i]; + for(var index = 0;index 0) { + for (var i = 0; i < nodes.length; i++) { + treeObj.expandNode(nodes[i], false, true, true); + } + } + } + + }, + //展开某个节点 + selectedNodes: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodesByParam("id", id, null); + if (nodes.length > 0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = areaTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if (node == null) { + continue; + } + node.checked = true; + areaTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var treeNode = areaTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = areaTree.getNodeById(ids[i]); + } + return nodes; + }, + //根据id取消选/选中节点 + updateNodesForNotChecked: function (id, checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + node.checked = checked; + treeObj.updateNode(node); + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForArea: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index = 0; + for (var i = 0; i < nodes.length; i++) { + if (null != nodes[i].areaType && "70" == nodes[i].areaType) { + ids[index++] = { + areaId: nodes[i].id, + areaType: nodes[i].areaType, + plNo: nodes[i].pId, + orgAreaType: 1 + }; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names = ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names + "," + nodes[i].name; + } + return names; + }, + +//获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData: function () { + + var sysCode = sessionStorage.getItem("sysCode"); + var zNodes = []; + sysAjax({ + method: 'POST', + url: dataUrl.util.queryNoDutyRosterParkTreeInfo(), + //data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + + if (res.data != undefined && res.data != null && res.data.length == 0) { + //如果没有返回来数据 + $('#schplan_rule').removeClass('display-none').text('暂无待排班停车场!'); + } + + //禁用服务点级、停车场级可点击的节点 + $.each(res.data,function (index,item) { + item.chkDisabled=true + $.each(item.children,function(cIndex,cItem){ + cItem.chkDisabled=true + }) + + }) + + + + zNodes = res.data; + + + } + }); + + return zNodes; + }, + + +}; + +areaTree.initTree(); +/** + * 处理错误信息 + * @param {Object} res + */ +function isError(res) { + if (res == null || res == undefined) { + return true; + } + if (res.code != '8888') { + alert('树失败') + return true; + } else { + return false; + } +}; + +Array.prototype.remove = function (val) { + var index = this.indexOf(val); + if (index > -1) { + this.splice(index, 1); + } +}; +/** + * 左侧单选按钮点击选中右侧.
                  + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ +function zTreeOnCheck(event, treeId, treeNode) { + console.log('添加页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + if (treeNode.checked === true) { + arrid.push(treeNode.id); + var plno = treeNode.getParentNode().id; + // console.log(arrid) + $('#planstep-parkCheck').append('' + treeNode.name + '') + } else { + arrid.remove(treeNode.id); + $('.plancheck-parkCheck' + treeNode.id).remove(); + } + ; + + +}; + +//新增树下面内容删除 +$(document).delegate('.closex', 'click', function () { + var valid = $(this).parent().attr('data-id'); + arrid.remove(valid); + $(this).parent().remove(); + //取消树的选中 + areaTree.updateNodesForNotChecked(valid, false); +}); +// 新增------------------------------------------------ +// 新增初始化 +function addinit() { + $('#schedulingsetting-con').addClass('display-none'); + $('#schedulingsetting-wrap').removeClass('display-none'); + $('#plan-onestep-wrap').removeClass('display-none'); + $('#plan-twostep-wrap').addClass('display-none'); + $('#plan-threestep-wrap').addClass('display-none'); + $('#plan-fourstep-wrap').addClass('display-none'); + $('#step-wrap').find('li').eq(0).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); + //第一步初始化 + $('#schplan_rule').addClass('display-none').text(''); + arrid = []; + $('#planstep-parkCheck').empty(); + //生效时间初始化 + fun.popDateinitIntel(); + areaTree.initTree(); //初始化区域tree停车场 + $('#schjhNames_inp').val('');//初始化计划名称 +} +// 取消按钮 事件 +documentBindFunc.on('click', '.close-schedulingsetting', function () { + $('#schedulingsetting-con').removeClass('display-none'); + $('#schedulingsetting-wrap').addClass('display-none'); + $('#plan-onestep-wrap').addClass('display-none'); + $('#plan-twostep-wrap').addClass('display-none'); + $('#plan-threestep-wrap').addClass('display-none'); + $('#plan-fourstep-wrap').addClass('display-none'); + $('#schplan_rule').addClass('display-none').text(''); +}); +// 取消按钮 事件 +documentBindFunc.on('click', '.lookclose-schedulingsetting', function () { + $('#schedulingsetting-con').removeClass('display-none'); + $('#plan-step-wraplook').addClass('display-none'); + +}); + +//智能排班 按钮事件 +$('#schedulingsetting-addBtn').on('click', function () { + $('#schedulingsetting-addBtn').data('planid', ''); + //每次点击新增,新获取一个planId + var planId = fun.generatorDutyRosterPlanId; + addinit() +}); + + +// 步骤1 下一步按钮事件 第二步初始化事件------------------------------------------------ +$('#one-step-next').on('click', function () { + $('#schplan_rule').addClass('display-none').text(''); + // 校验规则 如果有没有填的或者填错的 提示信息 + var jhname_inp = fun.getDutyRosterPlanName(); + var infoMap = fun.getSelectPlNoInfo(); + + var berthRangeNos = infoMap.berthRangeNos; + var plNos =infoMap.plNos; + + if (jhname_inp == undefined || jhname_inp == '' || jhname_inp == null) { + $('#schplan_rule').removeClass('display-none').text('请输入计划名称'); + return false; + } + + if (null == berthRangeNos || berthRangeNos.length == 0) { + $('#schplan_rule').removeClass('display-none').text('请选择泊位区间'); + return false; + } + + + $('#schplan_rule').addClass('display-none').text(''); + $('#plan-onestep-wrap').addClass('display-none'); + $('#plan-twostep-wrap').removeClass('display-none'); + $('#step-wrap').find('li').eq(1).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); + //班次名称初始化 + $('#bcNames_inp').val(''); + //时间格式化 + $('#startTime').val('07:00'); + $('#endTime').val('19:00'); + laydate.render({ + elem: '#startTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '07:00', + min: '00:00:00', + max: '23:00:00', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'fixed', + done: function (value, date, endDate) { + // console.log(value); //得到日期生成的值,如:2017-08-18 + // console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + // console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + + // $('#endTime-right').val(value) + } + // range: true + + }); + laydate.render({ + elem: '#endTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '19:00', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'fixed', + done: function (value, date, endDate) { + // console.log(value); //得到日期生成的值,如:2017-08-18 + // console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + // console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + // $('#startTime-right').val(value) + } + // range: true + + }); + //第二步tablecon-list 初始化 + $('#schplan_tablecon-list').empty(); + +}); + +// 步骤2 add事件------------------------------------------------ +documentBindFunc.on('click', '#schplan_addBtn', function () { + var group = fun.getNoAddDutyRosterGroup(); + if (group == null || group.name == undefined || group.name == null || group.name.trim().length == 0) { + $('#schplan_rule').removeClass('display-none').text('请输入班次名称'); + return false; + } + $('#schplan_rule').addClass('display-none').text(''); + $('#schplan_tablecon-list').append( + '
                • ' + + '
                    ' + + '
                  • ' + group.name + '
                  • ' + + '
                  • ' + group.startTime + '-' + group.endTime + '
                  • ' + + '
                  • 删除
                  • ' + + '
                  ' + + '
                • '); +}); +// 步骤2 delete事件------------------------------------------------ +documentBindFunc.on('click', '#schplan_tablecon-list .delList', function () { + var arrVal = $(this).attr('data-arr'); + // objArr.removeByValue(arrVal);//删除这行包含 + $(this).parent().parent().parent().remove(); + +}); + + +// 步骤2 下一步初始化 ------------------------------------------------ + +$('#two-step-next').on('click', function () { + + $('#schplan_rule').addClass('display-none').text(''); + // + var groups = fun.getHasAddDutyRosterGroup(); + + if (undefined == groups || null == groups || groups.length == 0) { + $('#schplan_rule').removeClass('display-none').text('请至少添加一个班次,如不区分班次,请添加00:00-23:59 全天的班次'); + return false; + } + $('#schplan_rule').addClass('display-none').text(''); + $('#checked-persons').text('0'); + // 校验规则 如果有没有填的或者填错的 提示信息 + $('#plan-twostep-wrap').addClass('display-none'); + $('#plan-threestep-wrap').removeClass('display-none'); + $('#step-wrap').find('li').eq(2).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); + // 初始化策略 + $('#planclname').selectpicker('render'); + + fun.saveDutyRosterGroups(); + fun.queryNotDutyChargerList(); + fun.queryDutyPersonNumAndRecessNum(); + + +}); + +$('#two-step-prev').on('click', function () {//第二步的上一步 + $('#schplan_rule').addClass('display-none').text(''); + $('#plan-twostep-wrap').addClass('display-none'); + $('#plan-onestep-wrap').removeClass('display-none'); + $('#step-wrap').find('li').eq(0).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); +}); + +// 步骤3------------------------------------------------ +$('#three-step-next').on('click', function () { + var restStrategy = fun.getRestStrategy(); + + var chargers = fun.getSelectedCharger(); + if (restStrategy.personNum != chargers.length) { + $('#schplan_rule').removeClass('display-none').text('收费员数量不正确'); + return false; + } + + $('#schplan_rule').addClass('display-none').text(''); + $('#schtolltypeset').addClass('ITD-graynav-topbaractive') + $('#schparktypeset').removeClass('ITD-graynav-topbaractive') + $('#park-wrap').addClass('display-none') + $('#toll-wrap').removeClass('display-none') + // 校验规则 如果有没有填的或者填错的 提示信息 + // $('#plan-threestep-wrap').addClass('display-none'); + // $('#plan-fourstep-wrap').removeClass('display-none'); + // $('#step-wrap').find('li').eq(3).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); + fun.makeDutyRosterForAI(); +}); +$('#three-step-prev').on('click', function () {//第三步的上一步 + $('#schplan_rule').addClass('display-none').text(''); + $('#plan-threestep-wrap').addClass('display-none'); + $('#plan-twostep-wrap').removeClass('display-none'); + $('#step-wrap').find('li').eq(1).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); +}); + +$('#replace-person-left').delegate('li', 'click', function () { + + var code = $(this).attr('data-code'); + var indextext = $(this).text(); + $(this).remove(); + // var num = Number($('#checked-persons').text()); + // alert(typeof num) + var num = fun.getViewSelectChargerNum(); + num++; + $('#checked-persons').text(num) + $('#replace-person-right').append('
                • ' + indextext + '
                • ') + +}); + +$('#replace-person-right ').delegate('li', 'click', function () { + + var code = $(this).attr('data-code'); + var indextext = $(this).text(); + var num = fun.getViewSelectChargerNum(); + num--; + $('#checked-persons').text(num) + $(this).remove(); + $('#replace-person-left').append('
                • ' + indextext + '
                • ') + +}); + +// 步骤4------------------------------------------------ + +$('#four-step-prev').on('click', function () {//第三步的上一步 + $('#schplan_rule').addClass('display-none').text(''); + $('#plan-fourstep-wrap').addClass('display-none'); + $('#plan-threestep-wrap').removeClass('display-none'); + $('#step-wrap').find('li').eq(2).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); +}); +//步骤4------------------------------------------------ 切换 +documentBindFunc.on('click', '#schparktypeset', function () { + $('#park-wrap').removeClass('display-none'); + $('#schparktypeset').addClass('ITD-graynav-topbaractive'); + $('#toll-wrap').addClass('display-none'); + $('#schtolltypeset').removeClass('ITD-graynav-topbaractive'); + $('#queryType').attr('data-value', '1'); + //从前台缓存的数据中取数据 + var data = JSON.parse($('#ai_duty_roster_data').data('aidata')); + fun.handelParkViewDutyRosterDataset(data, 'preview'); + +}); +documentBindFunc.on('click', '#schtolltypeset', function () { + $('#toll-wrap').removeClass('display-none'); + $('#schparktypeset').removeClass('ITD-graynav-topbaractive'); + $('#park-wrap').addClass('display-none'); + $('#schtolltypeset').addClass('ITD-graynav-topbaractive'); + $('#queryType').attr('data-value', '2'); + //从前台缓存的数据中取数据 + var data = JSON.parse($('#ai_duty_roster_data').data('aidata')); + fun.handelChargerViewDutyRosterDataset(data, 'preview'); + +}); + +//点击排班计划查看 +documentBindFunc.on('click', '.duty-roster-view', function () { + + var planId = $(this).data('planid'); + $('#schedulingsetting-con').addClass('display-none'); + $('#plan-step-wraplook').removeClass('display-none'); + $('#schplan-toptab').data('viewtype', 'view'); + $('#schplan-toptablook').data('planid', planId); + fun.queryDutyRosterBase(); + +}); + +//点击排班计划删除 +documentBindFunc.on('click', '.duty-roster-del', function () { + var planId = $(this).data('planid'); + $('#dutyRosterDelPlanId').data('planid', planId); + $('#plan_deletemodel').modal('show'); +}); + + +//点击查询 +documentBindFunc.on('click', '#chargegroup-queryBtn', function () { + fun.createTableData(); + +}); + +$('#planclname').change(function () { + $('#schplan_rule').addClass('display-none').text(''); + var restStrategy = fun.getRestStrategy(); + var html = '轮转周期为' + restStrategy.dutyCycle + '天,需要' + restStrategy.personNum + '个收费员' + $('#dutyRosterDesc').text(html); + +}); + +/** + * 结算客户信息资料 + * @param params + */ +function schsettingRequest(params) { + + var plNos = $("#setting-parkIds").val(); + + var plNo = null; + if (undefined != plNos && null != plNos) { + plNos = JSON.parse(plNos); + if (plNos.length == 1) { + plNo = plNos[0]; + } + + } + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + var req = { + baseRequest: { + pageNum: pageNum, + pageSize: params.data.limit + }, + sysCode: sysComm.sysCode, + plNo: plNo, + }; + var opt = { + method: 'post', + url: dataUrl.util.queryDutyRosterPlanForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + // console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +//查看 弹窗------------------------------------------------ 切换 +//收费员视图 +documentBindFunc.on('click', '#schparktypelook', function () { + $('#park-wraplook').removeClass('display-none'); + $('#schparktypelook').addClass('ITD-graynav-topbaractive'); + $('#toll-wraplook').addClass('display-none'); + $('#schtolltypelook').removeClass('ITD-graynav-topbaractive'); + $('#queryTypelook').attr('data-value', '1'); + + //查看类型的话 + + fun.queryDutyRosterBase(); + + +}); +//停车场视图 +documentBindFunc.on('click', '#schtolltypelook', function () { + $('#toll-wraplook').removeClass('display-none'); + $('#schparktypelook').removeClass('ITD-graynav-topbaractive'); + $('#park-wraplook').addClass('display-none'); + $('#schtolltypelook').addClass('ITD-graynav-topbaractive'); + $('#queryTypelook').attr('data-value', '2'); + + + //查看类型的话 + fun.queryDutyRosterBase(); + + +}); + +//智能排班 弹窗 点击添加确认事件 +documentBindFunc.on('click', '#four-step-next', function () { + fun.submitDutyRoster(); + + +}); + +//delete确定按钮 +documentBindFunc.on('click', '#plan-delete-submit', function () { + var planId = $('#dutyRosterDelPlanId').data('planid'); + fun.deleteDutyRosterPlan(planId); +}); + +// 2018-10-09 手动添加排班功能------------------------------------------------- + +var areaTreeHand = { + //初始化树 + initTree: function () { + $("#user_org_treehand").empty(); + $.fn.zTree.init($("#user_org_treehand"), areaTreeHand.setting, areaTreeHand.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + treeObj.expandAll(false); + areaTreeHand.selectedNodes(0); + }, + setting: { + view: { + selectedMulti: true //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "checkbox", + // chkStyle: "radio", + radioType: "all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + callback: { + onCheck: zTreeOnCheckhand + }, + edit: { + enable: false + } + }, + getNodesByParamFuzzyAll: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + var nodes = treeObj.getNodes(); + for (var i = 0; i < nodes.length; i++) { + treeObj.setting.view.fontCss["color"] = '#575757'; + treeObj.updateNode(nodes[i]); + var children = nodes[i].children; + if (children != null && children != "" && children != undefined) { + for (var j = 0; j < children.length; j++) { + treeObj.setting.view.fontCss["color"] = '#575757'; + treeObj.updateNode(children[j]); + } + } + + } + }, + //根据名称模糊搜索树 + getNodesByParamFuzzy: function (name) { + areaTreeHand.getNodesByParamFuzzyAll(); + if (name != "" && name != null) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + var nodes = treeObj.getNodesByParamFuzzy("name", name, null); + if (nodes.length <= 0) { + $('#whitelist-write_rule').removeClass('display-none').text("没有搜索到停车场"); + } + for (var i = 0; i < nodes.length; i++) { + treeObj.setting.view.fontCss["color"] = '#CD0000'; + treeObj.updateNode(nodes[i]); + //获取父节点 + var parentNote = areaTreeHand.getNodeById(nodes[i].pId); + treeObj.updateNode(parentNote); + } + } else { + $('#whitelist-write_rule').removeClass('display-none').text("没有搜索到停车场"); + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + var nodes = treeObj.getNodes(); + if (nodes.length > 0) { + for (var i = 0; i < nodes.length; i++) { + treeObj.expandNode(nodes[i], false, true, true); + } + } + } + + }, + //展开某个节点 + selectedNodes: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + var nodes = treeObj.getNodesByParam("id", id, null); + if (nodes.length > 0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = areaTreeHand.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if (node == null) { + continue; + } + node.checked = true; + areaTreeHand.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + var treeNode = areaTreeHand.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = areaTreeHand.getNodeById(ids[i]); + } + return nodes; + }, + //根据id取消选/选中节点 + updateNodesForNotChecked: function (id, checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + var node = treeObj.getNodeByParam("id", id, null); + node.checked = checked; + treeObj.updateNode(node); + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForArea: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + var nodes = treeObj.getCheckedNodes(checked); + index = 0; + for (var i = 0; i < nodes.length; i++) { + if (null != nodes[i].areaType && "70" == nodes[i].areaType) { + ids[index++] = { + areaId: nodes[i].id, + areaType: nodes[i].areaType, + plNo: nodes[i].pId, + orgAreaType: 1 + }; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names = ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names + "," + nodes[i].name; + } + return names; + }, + +//获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_treehand"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData: function () { + + var sysCode = sessionStorage.getItem("sysCode"); + var zNodes = []; + sysAjax({ + method: 'POST', + url: dataUrl.util.queryNoDutyRosterParkTreeInfo(), + //data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + // console.log(res) + if (res.data != undefined && res.data != null && res.data.length == 0) { + //如果没有返回来数据 + $('#schplan_rulehand').removeClass('display-none').text('暂无待排班停车场!'); + } + if (res.data != undefined && res.data != null && res.data.length == 0) { + //如果没有返回来数据 + $('#schplan_rule').removeClass('display-none').text('暂无待排班停车场!'); + } + + //禁用服务点级、停车场级可点击的节点 + $.each(res.data,function (index,item) { + item.chkDisabled=true + $.each(item.children,function(cIndex,cItem){ + cItem.chkDisabled=true + }) + + }) + + + + zNodes = res.data; + + } + }); + + return zNodes; + }, + + +}; +areaTreeHand.initTree(); +/** + * 处理错误信息 + * @param {Object} res + */ +function isError(res) { + if (res == null || res == undefined) { + return true; + } + if (res.code != '8888') { + alert('树失败') + return true; + } else { + return false; + } +}; + +Array.prototype.remove = function (val) { + var index = this.indexOf(val); + if (index > -1) { + this.splice(index, 1); + } +}; +/** + * 左侧单选按钮点击选中右侧.
                  + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ +function zTreeOnCheckhand(event, treeId, treeNode) { + console.log('添加页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + if (treeNode.checked === true) { + var plno = treeNode.getParentNode().id; + var plname = treeNode.getParentNode().name; + arrid.push(treeNode.id); + $('#planstep-parkCheckhand').append('' + treeNode.name + '') + } else { + arrid.remove(treeNode.id); + $('.plancheck-parkCheckhand' + treeNode.id).remove(); + } + ; + + +}; + +//新增树下面内容删除 +$(document).delegate('.closexhand', 'click', function () { + var valid = $(this).parent().attr('data-id'); + arrid.remove(valid); + $(this).parent().remove(); + //取消树的选中 + areaTreeHand.updateNodesForNotChecked(valid, false); +}); +// 手动新增------------------------------------------------ +// 手动新增初始化 +function addinitHand() { + $('#schedulingsetting-con').addClass('display-none'); + $('#schedulingsetting-wraphand').removeClass('display-none'); + $('#plan-onestep-wraphand').removeClass('display-none'); + $('#plan-twostep-wraphand').addClass('display-none'); + $('#plan-threestep-wraphand').addClass('display-none'); + $('#plan-fourstep-wraphand').addClass('display-none'); + $('#step-wraphand').find('li').eq(0).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); + //第一步初始化 + $('#schplan_rulehand').addClass('display-none').text(''); + arrid = []; + $('#planstep-parkCheckhand').empty(); + //生效时间初始化 + fun.popDateinitHand(); + areaTreeHand.initTree(); //初始化区域tree停车场 + $('#schjhNames_inphand').val('');//初始化计划名称 +} +// 手动步骤中取消按钮 事件 +documentBindFunc.on('click', '.close-schedulingsettinghand', function () { + $('#schedulingsetting-con').removeClass('display-none'); + $('#schedulingsetting-wraphand').addClass('display-none'); + $('#plan-onestep-wraphand').addClass('display-none'); + $('#plan-twostep-wraphand').addClass('display-none'); + $('#plan-threestep-wraphand').addClass('display-none'); + $('#plan-fourstep-wraphand').addClass('display-none'); + $('#schplan_rulehand').addClass('display-none').text(''); +}); + + +//手动排班 按钮事件 +$('#schedulingsetting-addBtnhand').on('click', function () { + //每次点击新增,新获取一个planId + $('#schedulingsetting-addBtnhand').data('planid', ''); + $('#bctime_inphand').val(''); + addinitHand(); +}); + +// 手动排班 步骤1 下一步按钮事件 第二步初始化事件------------------------------------------------ +documentBindFunc.on('click', '#one-step-nexthand', function () { + $('#schplan_rulehand').addClass('display-none').text(''); + // 校验规则 如果有没有填的或者填错的 提示信息 + var jhname_inp = fun.getDutyRosterPlanNameByHand(); + var infoMap = fun.getSelectPlNoInfoByHand(); + + var berthRangeNos = infoMap.berthRangeNos; + var plNos =infoMap.plNos; + + if (jhname_inp == undefined || jhname_inp == '' || jhname_inp == null) { + $('#schplan_rulehand').removeClass('display-none').text('请输入计划名称'); + return false; + } + if (null == berthRangeNos || berthRangeNos.length == 0) { + $('#schplan_rulehand').removeClass('display-none').text('请选择泊位区间'); + return false; + } + + + $('#schplan_rulehand').addClass('display-none').text(''); + $('#plan-onestep-wraphand').addClass('display-none'); + $('#plan-twostep-wraphand').removeClass('display-none'); + $('#step-wraphand').find('li').eq(1).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); + //班次名称初始化 + $('#bcNames_inphand').val(''); + //时间格式化 + $('#startTimehand').val('07:00'); + $('#endTimehand').val('19:00'); + laydate.render({ + elem: '#startTimehand',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '07:00', + min: '00:00:00', + max: '23:00:00', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'fixed', + done: function (value, date, endDate) { + // console.log(value); //得到日期生成的值,如:2017-08-18 + // console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + // console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + + // $('#endTime-right').val(value) + } + // range: true + + }); + laydate.render({ + elem: '#endTimehand',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '19:00', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'fixed', + done: function (value, date, endDate) { + // console.log(value); //得到日期生成的值,如:2017-08-18 + // console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + // console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + // $('#startTime-right').val(value) + } + // range: true + + }); + //第二步tablecon-list 初始化 + $('#schplan_tablecon-listhand').empty(); + +}); + +// 手动排班 步骤2 add事件------------------------------------------------ +documentBindFunc.on('click', '#schplan_addBtnhand', function () { + + var group = fun.getNoAddDutyRosterGroupByHand(); + if (group == null || group.name == undefined || group.name == null || group.name.trim().length == 0) { + $('#schplan_rulehand').removeClass('display-none').text('请输入班次名称'); + return false; + } + $('#schplan_rulehand').addClass('display-none').text(''); + $('#schplan_tablecon-listhand').append( + '
                • ' + + '
                    ' + + '
                  • ' + group.name + '
                  • ' + + '
                  • ' + group.startTime + '-' + group.endTime + '
                  • ' + + '
                  • 删除
                  • ' + + '
                  ' + + '
                • '); +}); +// 手动排班 步骤2 delete事件------------------------------------------------ +documentBindFunc.on('click', '#schplan_tablecon-listhand .delListhand', function () { + var arrVal = $(this).attr('data-arr'); + // objArr.removeByValue(arrVal);//删除这行包含 + $(this).parent().parent().parent().remove(); + +}); + + +// 手动排班 步骤2 下一步初始化 ------------------------------------------------ +// 改 +documentBindFunc.on('click', '#two-step-nexthand', function () { + var bctimeinphandval = $.trim($('#bctime_inphand').val()); + $('#schplan_rulehand').addClass('display-none').text(''); + //初始化下拉框 + $('.cashierType').selectpicker('render'); + // + var groups = fun.getHasAddDutyRosterGroupByHand(); + + var dutyDayNum = fun.getDutyDaysNumByHand(); + + if (undefined == groups || null == groups || groups.length == 0) { + $('#schplan_rulehand').removeClass('display-none').text('请至少添加一个班次,如不区分班次,请添加00:00-23:59 全天的班次'); + return false; + } + if(undefined == bctimeinphandval || null == bctimeinphandval || bctimeinphandval.length == 0){ + $('#schplan_rulehand').removeClass('display-none').text('请添加排班天数'); + return false; + } + if(bctimeinphandval=='0'){ + $('#schplan_rulehand').removeClass('display-none').text('排班天数不能为0'); + return false; + } + if (undefined == dutyDayNum || null == dutyDayNum || groups > 30) { + $('#schplan_rulehand').removeClass('display-none').text('请输入排班天数,并且排班天数不能大于30天'); + return false; + } + + $('#schplan_rulehand').addClass('display-none').text(''); + // 校验规则 如果有没有填的或者填错的 提示信息 + $('#plan-twostep-wraphand').addClass('display-none'); + $('#plan-threestep-wraphand').removeClass('display-none'); + $('#step-wraphand').find('li').eq(2).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); + fun.queryNotDutyChargerList(); + setTimeout(function () {//异步加载导致收费员加载不出来,延迟一秒钟 + fun.saveDutyRosterGroupsByHand(); + }, 1000); + // 改 + // 改 + + +}); +//第二步的上一步 +documentBindFunc.on('click', '#two-step-prevhand', function () { + $('#schplan_rulehand').addClass('display-none').text(''); + $('#plan-twostep-wraphand').addClass('display-none'); + $('#plan-onestep-wraphand').removeClass('display-none'); + $('#step-wraphand').find('li').eq(0).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); +}); + +// 步骤3------------------------------------------------ +documentBindFunc.on('click', '#three-step-nexthand', function () { + + // 获取排班后的数据,并进行校验 + //获取排班数据 + var data = fun.getDutyDataForHand(); + var flag = fun.checkDutyDataForHand(data); + if (flag) { + $('#hand_duty_roster_data').data('handdata', JSON.stringify(data)); + fun.saveDutyRosterBaseTemps(data); + + $('#schplan_rulehand').addClass('display-none').text(''); + $('#schtolltypesethand').addClass('ITD-graynav-topbaractive') + $('#schparktypesethand').removeClass('ITD-graynav-topbaractive') + $('#park-wraphand').addClass('display-none') + $('#toll-wraphand').removeClass('display-none') + + + $('#plan-threestep-wraphand').addClass('display-none'); + $('#plan-fourstep-wraphand').removeClass('display-none'); + $('#step-wraphand').find('li').eq(3).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); + } + + + + +}); +//第三步的上一步 +documentBindFunc.on('click', '#three-step-prevhand', function () { + $('#schplan_rulehand').addClass('display-none').text(''); + $('#plan-threestep-wraphand').addClass('display-none'); + $('#plan-twostep-wraphand').removeClass('display-none'); + $('#step-wraphand').find('li').eq(1).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); +}); + +// 步骤4------------------------------------------------ + +//第4步的上一步 +$('#four-step-prevhand').on('click', function () { + $('#schplan_rulehand').addClass('display-none').text(''); + $('#plan-fourstep-wraphand').addClass('display-none'); + $('#plan-threestep-wraphand').removeClass('display-none'); + $('#step-wraphand').find('li').eq(2).addClass('step-wrap-active').siblings().removeClass('step-wrap-active'); + var _width = $('#park-wraphandthree .schedulingplan-data-wrap ').width(); + + var _width = _width+120; + $('#park-wraphandthree .schedulingplan-data-wrap ').css('width',_width+'px') +}); +//步骤4------------------------------------------------ 切换 +documentBindFunc.on('click', '#schparktypesethand', function () { + $('#park-wraphand').removeClass('display-none'); + $('#schparktypesethand').addClass('ITD-graynav-topbaractive'); + $('#toll-wraphand').addClass('display-none'); + $('#schtolltypesethand').removeClass('ITD-graynav-topbaractive'); + $('#queryTypehand').attr('data-value', '1'); + //从前台缓存的数据中取数据 + var data = JSON.parse($('#hand_duty_roster_data').data('handdata')); + fun.handelParkViewDutyRosterDatasetByHandForStep4(data, 'preview'); + +}); +documentBindFunc.on('click', '#schtolltypesethand', function () { + $('#toll-wraphand').removeClass('display-none'); + $('#schparktypesethand').removeClass('ITD-graynav-topbaractive'); + $('#park-wraphand').addClass('display-none'); + $('#schtolltypesethand').addClass('ITD-graynav-topbaractive'); + $('#queryTypehand').attr('data-value', '2'); + //从前台缓存的数据中取数据 + var data = JSON.parse($('#hand_duty_roster_data').data('handdata')); + fun.handelChargerViewDutyRosterDatasetByHandForStep4(data, 'preview'); + +}); + + +//手工排班 弹窗 点击添加确认事件 +documentBindFunc.on('click', '#four-step-nexthand', function () { + fun.submitDutyRosterByHand(); + +}); + + + + + + + + diff --git a/assets/pages/scripts/servicemanage/css/myworklist.css b/assets/pages/scripts/servicemanage/css/myworklist.css new file mode 100644 index 0000000..95ea7e2 --- /dev/null +++ b/assets/pages/scripts/servicemanage/css/myworklist.css @@ -0,0 +1,199 @@ +.parking-l{ + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.worklist-input78{ + width: 78%; + height: 34px; + line-height: 34px; +} +.worklist-input{ + padding-left: 5px; + width: 120px; + height: 34px; + line-height: 34px; + background-color: #f3f3f3; +} +.worklist-perBtn{ + border-radius: 4px!important; + cursor: pointer; + width: 55px; + height: 32px; + text-align: center; + /*font-size: 14px;*/ + color: #fff; +} +.worklist-baractive { + color: #1E95CD; + background-color: rgba(30,149,205,.2) !important; +} +.worklist-checkStyle { + float: left; + width: 95px; + height: 34px; + line-height: 34px; + text-align: center; + cursor: pointer; + background-color: rgba(243,243,243,0.8); +} +.worklist-queryAbs { + top: 66px; + right: 24px; +} +/*单选复选美化*/ +.ITD-form-group input[type=checkbox], +.ITD-form-group input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.ITD-form-group input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.ITD-form-group input[type=checkbox]:hover + label{ + background: url('../../../img/input-checkexActive.png') no-repeat 0 center; + +} +.ITD-form-group input[type=checkbox]:checked + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=checkbox]:checked:hover + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +.ITD-form-group input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +.ITD-form-group input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.ITD-form-group input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.fixed-table-container .bs-checkbox .th-inner { + padding-left: 30px !important; +} +/*处理进度 弹窗*/ +.detail_cont{ + height: 400px; + width: 635px; + margin-left: 24px; + overflow-y: auto; +} +.detail_cont .cont_Msgdiv{ + width: 440px; + height: 90px; + margin-left: 80px; + /*padding-top: 10px;*/ +} +.cont_Msgdivleft{ + height: 100px; + margin-left: 50px; + width: 50px; + padding-top: 4px; +} +.comspan_style{ + width: 16px; + height: 16px; + border:2px solid #24c496; + border-radius: 50% !important; +} +.last-comspan{ + width: 16px; + height: 16px; + border-radius: 50% !important; + background-color: #24c496; +} +.success-comspan{ + width: 16px; + height: 16px; + border-radius: 50% !important; + background:url("../../../img/success-icon.png") no-repeat; + background-size: 16px 16px; +} +.comspan_line{ + width: 2px; + height: 80px; + background-color: #e4e3e8; + margin-left: 7px; +} +.cont_Msgdivright{ + width: 340px; + height: 100px; +} +.handle-top{ + height: 24px; + line-height: 24px; +} +.workcont_per{ + margin-right: 30px; +} +.workcont_msg{ + /*display: inline-block;*/ + height: 40px; + line-height: 20px; + overflow:hidden; + text-overflow:ellipsis; + /*display:-webkit-box;*/ + -webkit-box-orient:vertical; + -webkit-line-clamp:2; +} +/*add pop*/ +.worklist-comMsg{ + width: 180px; + height: 135px; + line-height: 20px; + padding-left: 5px; +} +.worklistread-comMsg{ + width: 180px; + height:135px !important; + line-height: 34px!important; + padding-left: 5px; + overflow:hidden; + text-overflow:ellipsis; + display:-webkit-box; + -webkit-box-orient:vertical; + -webkit-line-clamp:4; +} +.worklistread-sugMsg{ + width: 180px; + height: 135px !important; + line-height: 34px!important; + padding-left: 5px; + +} +/*add tree*/ +.worklist-form-group-ul { + background: #fff; + width: 320px; + height: 320px; + overflow: auto; + padding-left: 24px; +} diff --git a/assets/pages/scripts/servicemanage/css/workordermanage.css b/assets/pages/scripts/servicemanage/css/workordermanage.css new file mode 100644 index 0000000..ac9a1fb --- /dev/null +++ b/assets/pages/scripts/servicemanage/css/workordermanage.css @@ -0,0 +1,174 @@ +.parking-l{ + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.workorder-input78{ + width: 78%; + height: 34px; + line-height: 34px; +} +.workorder-input{ + padding-left: 5px; + width: 120px; + height: 34px; + line-height: 34px; + background-color: #f3f3f3; +} +.workorder-perBtn{ + border-radius: 4px!important; + cursor: pointer; + width: 55px; + height: 32px; + text-align: center; + /*font-size: 14px;*/ + color: #fff; +} +/*add tree*/ +.workorder-form-group-ul { + background: #fff; + width: 320px; + height: 320px; + overflow: auto; + padding-left: 24px; +} +.workorder-comMsg{ + width: 180px; + height: 135px; + line-height: 20px; + padding-left: 5px; + /*margin-left: 5px;*/ +} +/*单选复选美化*/ +.ITD-form-group input[type=checkbox], +.ITD-form-group input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.ITD-form-group input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.ITD-form-group input[type=checkbox]:hover + label{ + background: url('../../../img/input-checkexActive.png') no-repeat 0 center; + +} +.ITD-form-group input[type=checkbox]:checked + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=checkbox]:checked:hover + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +.ITD-form-group input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +.ITD-form-group input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.ITD-form-group input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.fixed-table-container .bs-checkbox .th-inner { + padding-left: 30px !important; +} + +/*处理进度 弹窗*/ +.detail_cont{ + height: 400px; + width: 635px; + margin-left: 24px; + overflow-y: auto; +} +.detail_cont .cont_Msgdiv{ + width: 400px; + height: 90px; + margin-left: 100px; + /*padding-top: 10px;*/ +} +.cont_Msgdivleft{ + height: 100px; + margin-left: 50px; + width: 50px; + padding-top: 4px; +} +.comspan_style{ + width: 16px; + height: 16px; + border:2px solid #24c496; + border-radius: 50% !important; +} +.last-comspan{ + width: 16px; + height: 16px; + border-radius: 50% !important; + background-color: #24c496; +} +.success-comspan{ + width: 16px; + height: 16px; + border-radius: 50% !important; + background:url("../../../img/success-icon.png") no-repeat; + background-size: 16px 16px; +} +.comspan_line{ + width: 2px; + height: 80px; + background-color: #e4e3e8; + margin-left: 7px; +} +.cont_Msgdivright{ + width: 300px; + height: 100px; +} +.handle-top{ + height: 24px; + line-height: 24px; +} +.workcont_per{ + margin-right: 30px; +} +.workcont_msg{ + /*display: inline-block;*/ + height: 40px; + line-height: 18px; + width: 220px; + padding-left: 5px; + overflow:hidden; + text-overflow:ellipsis; + -webkit-box-orient:vertical; + -webkit-line-clamp:2; +} + +.maxwidth200{ + max-width: 140px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + diff --git a/assets/pages/scripts/servicemanage/myworklist.js b/assets/pages/scripts/servicemanage/myworklist.js new file mode 100644 index 0000000..390b0e2 --- /dev/null +++ b/assets/pages/scripts/servicemanage/myworklist.js @@ -0,0 +1,1057 @@ +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); +}); + +var worklistfun={ + init:function () { + //办事处初始化 + //停车场初始化 + worklistfun.initParkBlock(); + //块下拉框变化,停车场下拉框变化 + worklistfun.queryBlockChange(); + //工单类型 + $('#workorderType').selectpicker('refresh'); + //工单小类型 + $('#workorderDetailType').empty(); + $('#workorderDetailType').append(''); + $('#workorderDetailType').selectpicker('refresh'); + $('#worklist-smallType').selectpicker('refresh'); + //时间初始化 + $('#worklist-daterange-btnsta').val(moment().subtract('days',0).format('YYYY-MM-DD')); + $('#worklist-daterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#worklist-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + //结束日期 + $("#worklist-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + + + //工单类型初始化 + worklistfun.workorderTypeInit(); + + //选择指派人 + worklistfun.workorderperSubmit(); + + }, + /**工单类型初始化.*/ + workorderTypeInit:function(){ + //1.初始化工单类型 + + fn.getWorkorderBigType(function(data){ + var htmls = ''; + if(data != null ){ + $.each(data,function(index,rows){ + htmls += ""; + }); + + } + htmls = '' + htmls; + $("#workorderBigType").empty(); + $("#workorderBigType").append(htmls); + $('#workorderBigType').selectpicker('refresh'); + $('#workorderDetailType').selectpicker('render'); + + }); + //2.投诉问题小类 + $(document).on('change',"#workorderBigType",function(){ + + //获取付级id + var parentId = $("#workorderBigType").val(); + if(parentId == null || parentId =="ALL"){ + return false; + } + fn.getWorkorderDetailType(function(data){ + var htmls=""; + if(data != null && data != undefined){ + $.each(data,function(index,rows){ + if(parentId == rows.parentCodeKind){ + htmls += ""; + } + }); + + } + htmls = '' + htmls; + $("#workorderDetailType").empty(); + $("#workorderDetailType").append(htmls); + $('#workorderDetailType').selectpicker('refresh'); + }); + }); + }, + //停车区域-块 + initParkBlock: function () { + var req = {sysCode: sysComm.sysCode}; + var opt = { + method: 'post', + url: dataUrl.util.queryAreaBlockListByOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + + var data = res.data; + var html = ''; + var blockIds = [-1]; + for (var i = 0; i < data.length; i++) { + blockIds.push(data[i].id); + html += ""; + } + var blockIdsStr = JSON.stringify(blockIds); + html = '' + html; + + $("#worklist-plAreaBlockIds").empty(); + + $("#worklist-plAreaBlockIds").append(html); + $('#worklist-plAreaBlockIds').selectpicker('refresh'); + if(blockIds.length>0){ + //初始化停车场下拉框 + worklistfun.initParkSelect("#worklist-plAreaBlockIds", "#worklist-parkIds"); + } + //加载下拉框 + } + } + } + sysAjax(opt); + + }, + + //根据块信息查询停车场信息 + initParkSelect: function (areaDom, parkDom) { + //停车场下拉框 + var data = worklistfun.getParkingLotMsg(areaDom, parkDom); + $(parkDom).empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $(parkDom).append(html); + $(parkDom).selectpicker('refresh'); + // 待办工单table + worklistfun.worklistwaitcreateTableData(); + //历史工单table + //worklistfun.worklistoldcreateTableData(); + + }, + getParkingLotMsg: function (areaDom, parkDom) { + var parkLot = ""; + var plAreaBlockIds = JSON.parse($(areaDom).val()); + var req = {plBlockIds: plAreaBlockIds}; + // console.log(plAreaBlockIds); + var opt = { + async: false, + data: 'plBlockIds=' + plAreaBlockIds, + method: "get", + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + url: dataUrl.util.getParkBlockNamesByBlockId(), + success: function (res) { + // console.log(res); + if (res.code == '8888') { + parkLot = JSON.stringify(res.data); + } + } + } + sysAjax(opt); + return JSON.parse(parkLot); + }, + + //块改变查询停车场 + queryBlockChange:function(){ + $("#worklist-plAreaBlockIds").change(function(){ + worklistfun.initParkSelect("#worklist-plAreaBlockIds", "#worklist-parkIds"); + }); + }, + //待办工单table + worklistwaitcreateTableData:function () { + $('#worklist-waittable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: worklisttableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'workId', + title: '工单号', + width: '10%', + visible: true, + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'plAreaBlockName', + title: '办事处', + width: '8%', + visible: true, + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'plName', + title: '车场名称', + width: '8%', + visible: true, + align: 'left', + formatter: commonObj.replacenull + }, + + { + field: 'workBigType', + title: '工单类型', + width: '5%', + visible: true, + align: 'left', + formatter: worklistfun.workBigTypeFormatter + }, + { + field: 'remark', + title: '投诉内容', + width: '10%', + visible: true, + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'complaintName', + title: '投诉人', + width: '5%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'createDate', + title: '录入时间', + width: '10%', + align: 'left', + formatter: commonObj.timeFormatter + }, + { + field: 'solveName', + title: '当前处理人', + width: '5%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'popfield', + title: '操作', + width: '10%', + align: 'left', + formatter: worklistfun.topopFormatter + } + + ] + }); + }, + //历史工单table + worklistoldcreateTableData:function () { + $('#worklist-oldtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: worklisttableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'workId', + title: '工单号', + width: '10%', + visible: true, + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'plAreaBlockName', + title: '办事处', + width: '8%', + visible: true, + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'plName', + title: '车场名称', + width: '8%', + visible: true, + align: 'left', + formatter: commonObj.replacenull + }, + + { + field: 'workBigType', + title: '工单类型', + width: '5%', + visible: true, + align: 'left', + formatter: worklistfun.workBigTypeFormatter + }, + { + field: 'remark', + title: '投诉内容', + width: '10%', + visible: true, + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'complaintName', + title: '投诉人', + width: '5%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'createDate', + title: '录入时间', + width: '10%', + align: 'left', + formatter: commonObj.timeFormatter + }, + { + field: 'solveName', + title: '当前处理人', + width: '5%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'popfield', + title: '操作', + width: '10%', + align: 'left', + formatter: worklistfun.popFormatter + } + + ] + }); + }, + workBigTypeFormatter: function (value, row, index) { + /**工单大类型:100:维修工单;200:停车工单;300:投诉工单*/ + if(value==null||value==undefined||value==''){ + return "-"; + } else if(100==value){ + return "维修工单"; + } else if(200==value){ + return "停车工单"; + } else if(300==value){ + return "投诉工单"; + } + }, + workSmallTypeFormatter: function (value, row, index) { + /**工单具体类型:101:地磁维修工单;102:道闸维修工单;301:APP投诉工单*/ + if(value==null||value==undefined||value==''){ + return "-"; + } else if(101==value){ + return "地磁维修工单"; + } else if(102==value){ + return "道闸维修工单"; + } else if(301==value){ + return "APP投诉工单"; + } + }, + //操作 + topopFormatter:function (value, row, index) { + if(row.solveState==3){ + return '详情'+ + '处理进度'; + }else { + return '详情'+ + '处理进度'+ + '处理'; + } + }, + popFormatter:function (value, row, index) { + var operStr ='详情'+ + '处理进度'; + return operStr; + }, + //参数函数 + getQueryParam:function () { + var plNos = []; + var plnos = $("#worklist-parkIds").val(); + if(plnos==null||plnos==''){ + plNos.push("-1X"); + } + else{ + plNos = JSON.parse(plnos); + } + var datesta = $("#worklist-daterange-btnsta").val(); + var dateend = $("#worklist-daterange-btnend").val(); + var beginTime = datesta+" 00:00:00"; + var endTime=dateend+" 23:59:59"; + //缺少字段 ***** 工单类型 workorderType + var workBigTypes=[]; + var workBigType=$("#workorderBigType").val(); + if(workBigType!=null && workBigType!='' && workBigType!=undefined&&workBigType !="ALL"){ + workBigTypes.push(workBigType); + } + //缺少字段 ***** 工单小类 worklist-smallType + var workTypes=[]; + var workType=$("#workorderDetailType").val(); + if(workType!=null && workType!='' && workType!=undefined &&workType !="ALL"){ + workTypes.push(workType); + } + //缺少字段 ***** 投诉人 personName + var complaintName=$("#personName").val(); + //缺少字段 ***** 内容检索 msgFinds + var remark=$("#msgFinds").val(); + var req = { + sysCode: sysComm.sysCode, + workBigTypes: workBigTypes, + workTypes: workTypes, + complaintName: complaintName, + remark: remark, + plNos: plNos, + beginTime: new Date(beginTime.replace(new RegExp(/-/gm) ,"/")), + endTime: new Date(endTime.replace(new RegExp(/-/gm) ,"/")), + }; + + return req; + }, + //弹窗详情函数 + getworkorderDetailInfo:function (id,type) { + var modifyRow; + if(1==parseInt(type)){ + modifyRow = $('#worklist-waittable').bootstrapTable('getRowByUniqueId', id); + }else{ + modifyRow = $('#worklist-oldtable').bootstrapTable('getRowByUniqueId', id); + } + + console.log(modifyRow); + $('#detail_chargerCode').html(modifyRow.workId); + $('#detail_plName').html(modifyRow.plName); + $('#detail_msgOrder').html(modifyRow.remark); + $('#detail_compliantphone').html(modifyRow.complaintPhone); + $('#detail_handleId').html(modifyRow.solveName); + $('#detail_areaCode').html(modifyRow.plAreaBlockName); + $('#detail_groupType').html(worklistfun.workBigTypeFormatter(modifyRow.workBigType)); + + $('#detail_compliantper').html(modifyRow.complaintName); + + $('#detail_enterTimes').html(DateUtils.long2String(modifyRow.inputTime,7)); + }, + //保存处理 + workorderaddSubmit:function(workId){ + + var workId=$('#workId').val(); + var id=$('#id').val(); + var reson=$('#worklistread-sugMsg').val(); + + + var solveName=$("#worklistread-addhandle").val(); + var solveId=$("#worklistread-addhandle").attr("data-id"); + var solvePhone=$("#worklistread-addhandle").attr("data-phone"); + // console.log(plAreaBlockName+plAreaBlockId+plNo+plName); + // console.log(workBigType+workType); + // console.log(complaintName+complaintPhone+remark); + + console.log(solveId+solveName+solvePhone); + /**是否指派 1,是 (指派)2、否(不指派)**/ + var isAppoint=1; + if(solveName==null || solveName==undefined ||solveName==""){ + isAppoint=2; + }else{ + if(solveId.indexOf('-')!=-1){ + solveId=solveId.substr(1,solveId.length); + } + } + + if(reson == null || reson=='' || reson == undefined){ + + $('#managelistwrite_rule').removeClass('display-none').text('提示:请输入处理意见'); + return false; + } + + var createEmpId = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var createEmpName = StrUtil.isEmpty(fn.getUserName()) ? '-1' : fn.getUserName(); + var req = { + id: id, + rltWorkId: workId, + // complaintName: complaintName, + // complaintPhone: complaintPhone, + reson: reson, + sysCode: sysComm.sysCode, + solveName: solveName, + solveId: solveId, + solvePhone: solvePhone, + isAppoint: isAppoint, + createEmpId: createEmpId, + createEmpName: createEmpName, + inputTime:new Date() + + }; + var opt = { + method: 'post', + url: dataUrl.util.saveOrderWorkTrack(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + + var data = res.data; + $('#worklist_managemodel').modal('hide'); + $('#worklist-waittable').bootstrapTable('refresh', { + silent: true + }); + + } + } + } + sysAjax(opt); + + }, + /**处理轨迹信息 **/ + getworkorderhandleInfo:function (workId) { + console.log(workId); + var req = {sysCode: sysComm.sysCode,workId:workId}; + var opt = { + method: 'post', + url: dataUrl.util.queryOrderWorkTrackByWorkId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + // console.log(res); + if (res.code == '8888') { + $("#work_list_track").empty(); + var html =''; + var data = res.data; + var length =0; + if(data!=undefined && data !=null && data.rows!=null & data.rows!=undefined){ + length=data.rows.length; + } + var data=data.rows; + var html=''; + $.each(data,function(index,row){ + if(data.length >1) { + if(index < data.length -1){ + html += '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  处理人: ' + row.solveName + '' + DateUtils.long2String(row.solveTime, 7) + '
                  \n' + + '
                  \n' + + ' 处理意见: ' + (row.reason == null ? '' : row.reason) + '' + + '
                  \n' + + '
                  \n' + + '
                  '; + }else{ + html+='
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  处理人: '+row.solveName+''+DateUtils.long2String(row.solveTime,7)+'
                  \n' + + '
                  \n' + + ' 处理意见: '+(row.reason == null ? '':row.reason)+''+ + '
                  \n' + + '
                  \n' + + '
                  '; + } + + }else{//最后一天 + html+='
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  处理人: '+row.solveName+''+DateUtils.long2String(row.solveTime,7)+'
                  \n' + + '
                  \n' + + ' 处理意见: '+(row.reason == null ? '':row.reason)+''+ + '
                  \n' + + '
                  \n' + + '
                  '; + } + + if(3==parseInt(row.solveState)){//完成 + html+='
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  处理完成
                  \n' + + '\n' + + '
                  \n' + + '
                  '; + } + + }); + + + $("#work_list_track").html(html); + } + } + } + sysAjax(opt); + + + }, + //选择指派人 + workorderperSubmit:function(){ + documentBindFunc.on('click', '#worklistper-submit', function () { + var selectedNodes = Tree.getCheckedNodes(); + //console.log(selectedNodes) + if(selectedNodes != null){ + $.each(selectedNodes,function(index,row){ + $("#worklistread-addhandle").val(""); + $("#worklistread-addhandle").attr("data-id",""); + $("#worklistread-addhandle").attr("data-phone",""); + $("#worklistread-addhandle").val(row.name); + $("#worklistread-addhandle").attr("data-id",row.id); + $("#worklistread-addhandle").attr("data-phone",row.code); + $('#worklist_Assignormodel').modal('hide'); + }); + } + }); + + } + +}; +worklistfun.init(); +//工单切换 点击事件 +//待办工单 点击 +documentBindFunc.on('click','#worklist-waittopbar',function () { + $('.worklist-oldtopbar').removeClass('worklist-baractive'); + $('.worklist-choosewaitlist').removeClass('display-none'); + $('.worklist-waittopbar').addClass('worklist-baractive'); + $('.worklist-chooseoldlist').addClass('display-none'); + $('#queryType').attr('data-value','1'); + worklistfun.worklistwaitcreateTableData(); +}); +//历史工单 点击 +documentBindFunc.on('click','#worklist-oldtopbar',function () { + $('.worklist-waittopbar').removeClass('worklist-baractive'); + $('.worklist-chooseoldlist').removeClass('display-none'); + $('.worklist-oldtopbar').addClass('worklist-baractive'); + $('.worklist-choosewaitlist').addClass('display-none'); + $('#queryType').attr('data-value','2'); + worklistfun.worklistoldcreateTableData(); +}); + +//查询 +documentBindFunc.on('click', '#worklist-queryBtn', function () { + var queryType = $('#queryType').attr('data-value'); + if(queryType == '1'){ + worklistfun.worklistwaitcreateTableData(); + }else{ + worklistfun.worklistoldcreateTableData(); + } + +}); +//详情弹窗 +documentBindFunc.on('click','.lookMsg',function () { + var id = $(this).attr('data-index'); + $('#worklist_detailmodel').modal('show'); + worklistfun.getworkorderDetailInfo(id,1); +}); +documentBindFunc.on('click','.lookMsgTwo',function () { + var id = $(this).attr('data-index'); + $('#worklist_detailmodel').modal('show'); + worklistfun.getworkorderDetailInfo(id,2); +}); +//处理进度弹窗 +documentBindFunc.on('click','.resMsg',function () { + var workId = $(this).attr('data-index'); + $('#worklist_handlemodel').modal('show'); + worklistfun.getworkorderhandleInfo(workId); + +}); +// documentBindFunc.on('click','.resMsgTwo',function () { +// var workId = $(this).attr('data-index'); +// $('#worklist_handlemodel').modal('show'); +// worklistfun.getworkorderhandleInfo(workId); +// +// }); +//新增弹窗 +documentBindFunc.on('click','#worklist-addBtn',function () { + //初始化 tree 指派人 + // Tree.initTree(); + $('#worklist-addareaName').selectpicker('refresh'); + $('#worklist-addplNames').selectpicker('refresh'); + $('#worklist-addorderType').selectpicker('refresh'); + $('#worklist-addordersmallType').selectpicker('refresh'); + $('#worklist-addcompliant').val(''); + $('#worklist-addcompliantPhone').val(''); + $('#worklist-addcomMsg').val(''); + $('#worklist_addmodel').modal('show'); +}); +//处理弹窗 +documentBindFunc.on('click','.toresMsg',function () { + $('#managelistwrite_rule').addClass('display-none').text(''); + //清空 + $("#worklistread-sugMsg").val(''); + $("#worklistread-addhandle").val(''); + $("#worklistread-addhandle").attr('data-id','').attr('data-phone',''); + //初始化 tree 指派人 + // Tree.initTree(); + var id = $(this).attr('data-index'); + //console.log(id); + var modifyRow = $('#worklist-waittable').bootstrapTable('getRowByUniqueId', id); + console.log(modifyRow); + + $('#worklistread-plNames').html(modifyRow.plName); + $('#worklistread-comMsg').html(modifyRow.remark); + $('#worklistread-compliantPhone').html(modifyRow.complaintPhone); + $('#worklistread-ordersmallType').html(worklistfun.workSmallTypeFormatter(modifyRow.workType)); + $('#worklistread-areaName').html(modifyRow.plAreaBlockName); + $('#worklistread-orderType').html(worklistfun.workBigTypeFormatter(modifyRow.workBigType)); + $('#worklistread-compliant').html(modifyRow.complaintName); + $('#detail_enterTimes').html(DateUtils.long2String(modifyRow.inputTime,7)); + $('#workId').val(modifyRow.workId); + $('#id').val(modifyRow.id); + + + + $('#worklist_managemodel').modal('show'); +}); +//指派人弹窗 +documentBindFunc.on('click','#worklist-perBtn,#worklistread-perBtn',function () { + //初始化 tree 指派人 + Tree.initTree(); + $('#worklist_Assignormodel').modal('show'); +}); +//保存弹窗 +documentBindFunc.on('click', '#worklistread-submit', function () { + // var compliant=$.trim($('#worklist-addcompliant').val()); + // var carpho=$.trim($('#worklist-addcompliantPhone').val()); + // var comMsg=$.trim($('#worklist-addcomMsg').val()); + // if(compliant == null || compliant =="" || compliant ==undefined){ + // $('#listwrite_rule').removeClass('display-none').text('错误提示:请输入投诉人名称'); + // return false; + // }else if(carpho == null || carpho =="" || carpho ==undefined){ + // $('#listwrite_rule').removeClass('display-none').text('错误提示:请输入投诉电话'); + // return false; + // }else if(carpho&&!/^1[3|4|5|7|8]{1}\d{9}$/.test(carpho)&&carpho.length!=11){ + // $('#listwrite_rule').removeClass('display-none').text('错误提示:请输入正确投诉电话'); + // return false; + // }else if(comMsg == null || comMsg =="" || comMsg ==undefined){ + // $('#listwrite_rule').removeClass('display-none').text('错误提示:请输入投诉内容'); + // return false; + // }else{ + // // 成功 ajax + // $('#listwrite_rule').addClass('display-none'); + // + // } + + worklistfun.workorderaddSubmit(); +}); +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function worklisttableLoadRequest(params) { + var req = worklistfun.getQueryParam(); + var queryType = $('#queryType').attr('data-value'); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + if(queryType =='1' ){//我的代办 + req.solveId = fn.getUserId(); + req.solveStates = [5,4,1,2]; + }else{ + req.solveStates = [3]; + } + + var opt = { + method: 'post', + url: dataUrl.util.queryOrderWorkForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + // console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + else{ + + } + } + }; + sysAjax(opt); +} +/** + * 处理错误信息 + * @param {Object} res + */ +function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + var errorPop = new Pop({ + header:'错误提示', + content:$(''+res.msg+''), + buttons:[{ + type:'popOk', + text:'确定' + }] + }); + return true; + }else{ + return false; + } +} +//新增 指派人 +//构建树 +var Tree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#user_org_tree_add"), Tree.setting, Tree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + treeObj.expandAll(false); + Tree.setChkDisabled(treeObj); + }, + setting: { + view: { + selectedMulti: false //静止多选 + }, + check: { + enable: true, //显示多选框 + radioType: "all", + chkStyle: "radio" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + + + }, + edit: { + enable: false + + } + }, + getCheckedNodes:function(){ + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var nodes = treeObj.getCheckedNodes(true); + return nodes; + }, + //禁止选择非末级节点 + setChkDisabled: function(treeObj){ + var node = treeObj.getNodes(); + var nodes = treeObj.transformToArray(node); + for (var i=0, l=nodes.length; i < l; i++) { + if(nodes[i].id >0){ + treeObj.setChkDisabled(nodes[i], true,true,false); + + } + + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = Tree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node==null){ + continue; + } + node.checked = true; + Tree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var treeNode = Tree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = Tree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var nodes = treeObj.getCheckedNodes(true); + var index=0; + for (var i = 0; i < nodes.length; i++) { + if(!nodes[i].isParent){ + ids[index++] = nodes[i].id + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的组织级别节点ID集合 + getCheckedNodesIdForOrgLevel: function (checked,orgLevel) { + var ids = ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var nodes = treeObj.getCheckedNodes(checked); + for (var i = 0; i < nodes.length; i++) { + if(orgLevel ==nodes[i].orgLevel){ + ids= nodes[i].id + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names= ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names+","+nodes[i].name; + } + return names; + }, + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData:function() { + //var sysCodeHidde = $('#sysCodeHidde').val(); + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + isAddSysOp:1, + sysCode:sysComm.sysCode + }; + sysAjax({ + method:'POST', + url: dataUrl.util.getOrgTreeBySysCode(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + $.each(res.data, function(index,rows) { + var data=""; + if(rows.id !=null && rows.id <0){ + data={id:rows.plNo,pId:rows.parentId,name:rows.name,chkDisabled:true}; + }else{ + data={id:rows.id,pId:rows.parentId,name:rows.name,telephone:rows.code}; + } + zNodes[index] =data; + }); + zNodes =res.data; + } + }); + //增加一个公告根节点 +// zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } +} + + +// 2018 -7-12 edit +$("#workorderBigType").change(function(){ + console.log(111); + //获取付级id + var parentId = $("#workorderBigType").val(); + // if(parentId == null || parentId =="ALL"){ + // return false; + // } + fn.getWorkorderDetailType(function(data){ + var htmls=""; + if(data != null && data != undefined){ + $.each(data,function(index,rows){ + if(parentId == rows.parentCodeKind){ + htmls += ""; + } + }); + + } + htmls = '' + htmls; + $("#workorderDetailType").empty(); + $("#workorderDetailType").append(htmls); + $('#workorderDetailType').selectpicker('refresh'); + }); +}); + + diff --git a/assets/pages/scripts/servicemanage/pages/workordermanage.html b/assets/pages/scripts/servicemanage/pages/workordermanage.html new file mode 100644 index 0000000..d2bc2e9 --- /dev/null +++ b/assets/pages/scripts/servicemanage/pages/workordermanage.html @@ -0,0 +1,330 @@ + +
                  +
                  +
                  +
                  +
                  + + +
                  +
                  + + +
                  +
                  + + +
                  +
                  +
                  +
                  + + +
                  +
                  + + +
                  +
                  + + +
                  +
                  +
                  +
                  + 录入时间 +
                  + +
                  + - +
                  + +
                  +
                  +
                  +
                  + 查询 +
                  + +
                  +
                  +
                  + + +
                  +
                  +
                  +
                  + 详细记录 +
                  +
                  + +
                  + +
                  +
                  +
                  +
                  +
                  + +
                  +
                  +
                  + + + + + + + + + + + + + + + diff --git a/assets/pages/scripts/servicemanage/workordermanage.js b/assets/pages/scripts/servicemanage/workordermanage.js new file mode 100644 index 0000000..f8e5176 --- /dev/null +++ b/assets/pages/scripts/servicemanage/workordermanage.js @@ -0,0 +1,1052 @@ +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); +}); +var workorderfun={ + init:function () { + //办事处初始化 + //停车场初始化 + workorderfun.initParkBlock(); + //块下拉框变化,停车场下拉框变化 + workorderfun.queryBlockChange(); + workorderfun.addqueryBlockChange(); + //工单类型 + $('#workorderType').selectpicker('refresh'); + //工单小类型 + $("#workorderDetailType").empty(); + $("#workorderDetailType").append(''); + $('#workorderDetailType').selectpicker('refresh'); + $('#workorder-smallType').selectpicker('refresh'); + //时间初始化 + $('#workorder-daterange-btnsta').val(moment().subtract('days',0).format('YYYY-MM-DD')); + $('#workorder-daterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#workorder-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + //结束日期 + $("#workorder-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + + + //工单类型初始化 + workorderfun.workorderTypeInit(); + //选择指派人 + workorderfun.workorderperSubmit(); + + }, + /**工单类型初始化.*/ + workorderTypeInit:function(){ + //1.初始化工单类型 + + fn.getWorkorderBigType(function(data){ + var htmls = ''; + if(data != null ){ + $.each(data,function(index,rows){ + htmls += ""; + }); + + } + htmls = '' + htmls; + $("#workorderBigType").empty(); + $("#workorderBigType").append(htmls); + $('#workorderBigType').selectpicker('refresh'); + $('#workorderDetailType').selectpicker('render'); + + }); + //2.投诉问题小类 + $(document).on('change',"#workorderBigType",function(){ + + //获取付级id + var parentId = $("#workorderBigType").val(); + if(parentId == null || parentId =="ALL"){ + return false; + } + fn.getWorkorderDetailType(function(data){ + var htmls=""; + if(data != null && data != undefined){ + $.each(data,function(index,rows){ + if(parentId == rows.parentCodeKind){ + htmls += ""; + } + }); + + } + htmls = '' + htmls; + $("#workorderDetailType").empty(); + $("#workorderDetailType").append(htmls); + $('#workorderDetailType').selectpicker('refresh'); + }); + }); + }, + //停车区域-块 + initParkBlock: function () { + var req = {sysCode: sysComm.sysCode}; + var opt = { + method: 'post', + url: dataUrl.util.queryAreaBlockListByOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + + var data = res.data; + var html = ''; + var blockIds = [-1]; + for (var i = 0; i < data.length; i++) { + blockIds.push(data[i].id); + html += ""; + } + var blockIdsStr = JSON.stringify(blockIds); + html = '' + html; + + $("#workorder-plAreaBlockIds").empty(); + + $("#workorder-plAreaBlockIds").append(html); + $('#workorder-plAreaBlockIds').selectpicker('refresh'); + if(blockIds.length>0){ + //初始化停车场下拉框 + workorderfun.initParkSelect("#workorder-plAreaBlockIds", "#workorder-parkIds"); + } + //加载下拉框 + } + } + } + sysAjax(opt); + + }, + + //根据块信息查询停车场信息 + initParkSelect: function (areaDom, parkDom) { + //停车场下拉框 + var data = workorderfun.getParkingLotMsg(areaDom, parkDom); + $(parkDom).empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $(parkDom).append(html); + $(parkDom).selectpicker('refresh'); + // table + workorderfun.workordercreateTableData(); + + }, + getParkingLotMsg: function (areaDom, parkDom) { + var parkLot = ""; + var plAreaBlockIds = JSON.parse($(areaDom).val()); + var req = {plBlockIds: plAreaBlockIds}; + console.log(plAreaBlockIds); + var opt = { + async: false, + data: 'plBlockIds=' + plAreaBlockIds, + method: "get", + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + url: dataUrl.util.getParkBlockNamesByBlockId(), + success: function (res) { + console.log(res); + if (res.code == '8888') { + parkLot = JSON.stringify(res.data); + } + } + } + sysAjax(opt); + return JSON.parse(parkLot); + }, + + //块改变查询停车场 + queryBlockChange:function(){ + $("#workorder-plAreaBlockIds").change(function(){ + workorderfun.initParkSelect("#workorder-plAreaBlockIds", "#workorder-parkIds"); + }); + }, + /****新增时初始化下拉框begin *****/ + /**工单类型初始化.*/ + addworkorderTypeInit:function(){ + //1.初始化工单类型 + + fn.getWorkorderBigType(function(data){ + var htmls = ''; + if(data != null ){ + $.each(data,function(index,rows){ + htmls += ""; + }); + + } + $("#workorder-addorderType").empty(); + $("#workorder-addorderType").append(htmls); + $('#workorder-addorderType').selectpicker('refresh'); + //小类初始化 + var parentId = $("#workorder-addorderType").val(); + if(parentId == null || parentId =="ALL"){ + return false; + } + fn.getWorkorderDetailType(function(data){ + var htmls=""; + if(data != null && data != undefined){ + $.each(data,function(index,rows){ + if(parentId == rows.parentCodeKind){ + htmls += ""; + } + }); + + } + $("#workorder-addordersmallType").empty(); + $("#workorder-addordersmallType").append(htmls); + $('#workorder-addordersmallType').selectpicker('refresh'); + }); + + }); + //2.投诉问题小类 + $(document).on('change',"#workorder-addorderType",function(){ + + //获取付级id + var parentId = $("#workorder-addorderType").val(); + if(parentId == null || parentId =="ALL"){ + return false; + } + fn.getWorkorderDetailType(function(data){ + var htmls=""; + if(data != null && data != undefined){ + $.each(data,function(index,rows){ + if(parentId == rows.parentCodeKind){ + htmls += ""; + } + }); + + } + $("#workorder-addordersmallType").empty(); + $("#workorder-addordersmallType").append(htmls); + $('#workorder-addordersmallType').selectpicker('refresh'); + }); + }); + }, + //停车区域-块 + addinitParkBlock: function () { + var req = {sysCode: sysComm.sysCode}; + var opt = { + method: 'post', + url: dataUrl.util.queryAreaBlockListByOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + + var data = res.data; + var html = ''; + var blockIds = [-1]; + for (var i = 0; i < data.length; i++) { + blockIds.push(data[i].id); + if(parseInt(i)==0){ + html += ""; + }else{ + html += ""; + } + + } + + $("#workorder-addareaName").empty(); + $("#workorder-addareaName").append(html); + $('#workorder-addareaName').selectpicker('refresh'); + if(blockIds.length>0){ + //初始化停车场下拉框 + workorderfun.addinitParkSelect("#workorder-addareaName", "#workorder-addplNames"); + } + + } + } + } + sysAjax(opt); + + }, + + //根据块信息查询停车场信息 + addinitParkSelect: function (areaDom, parkDom) { + //停车场下拉框 + var data = workorderfun.addgetParkingLotMsg(areaDom, parkDom); + $(parkDom).empty(); + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + if(parseInt(i)==0){ + html += ""; + }else{ + html += ""; + } + + } + + $(parkDom).append(html); + $(parkDom).selectpicker('refresh'); + }, + addgetParkingLotMsg: function (areaDom, parkDom) { + var parkLot = ""; + var plAreaBlockIds = JSON.parse($(areaDom).val()); + var req = {plBlockIds: plAreaBlockIds}; + console.log(plAreaBlockIds); + var opt = { + async: false, + data: 'plBlockIds=' + plAreaBlockIds, + method: "get", + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + url: dataUrl.util.getParkBlockNamesByBlockId(), + success: function (res) { + console.log(res); + if (res.code == '8888') { + parkLot = JSON.stringify(res.data); + } + } + } + sysAjax(opt); + return JSON.parse(parkLot); + }, + + //块改变查询停车场 + addqueryBlockChange:function(){ + $("#workorder-addareaName").change(function(){ + workorderfun.addinitParkSelect("#workorder-addareaName", "#workorder-addplNames"); + }); + }, + /*****新增时初始化下拉框end********/ + + workordercreateTableData:function () { + $('#workordertable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: workordertableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'workId', + title: '工单号', + width: '10%', + visible: true, + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'plAreaBlockName', + title: '办事处', + width: '8%', + visible: true, + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'plName', + title: '车场名称', + width: '8%', + visible: true, + align: 'left', + formatter: commonObj.replacenull + }, + + { + field: 'workBigType', + title: '工单类型', + width: '5%', + visible: true, + align: 'left', + formatter: workorderfun.workBigTypeFormatter + }, + { + field: 'remark', + title: '投诉内容', + width: '10%', + visible: true, + formatter:workorderfun.solveconFormater + }, + { + field: 'complaintName', + title: '投诉人', + width: '5%', + align: 'left', + formatter: commonObj.replacenull + }, + + { + field: 'createDate', + title: '录入时间', + width: '10%', + align: 'left', + formatter: commonObj.timeFormatter + }, + { + field: 'solveName', + title: '当前处理人', + width: '5%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'popfield', + title: '操作', + width: '10%', + align: 'left', + formatter: workorderfun.popFormatter + } + + ] + }); + }, + + solveconFormater: function (value, row, index) { + if(value==null||value==undefined||value==''){ + return '-' + }else { + return '
                  '+value+'
                  '; + } + }, + workBigTypeFormatter: function (value, row, index) { + /**工单大类型:100:维修工单;200:停车工单;300:投诉工单*/ + if(value==null||value==undefined||value==''){ + return '-' + }else if(100==value){ + return "维修工单"; + } else if(200==value){ + return "停车工单"; + } else if(300==value){ + return "投诉工单"; + } + }, + //操作 + popFormatter:function (value, row, index) { + var operStr ='详情'+ + '处理进度'; + return operStr; + }, + //参数函数 + getQueryParam:function () { + var plNos = []; + var plnos = $("#workorder-parkIds").val(); + if(plnos==null||plnos==''){ + plNos.push("-1X"); + } + else{ + plNos = JSON.parse(plnos); + } + var datesta = $("#workorder-daterange-btnsta").val(); + var dateend = $("#workorder-daterange-btnend").val(); + var beginTime = datesta+" 00:00:00"; + var endTime=dateend+" 23:59:59"; + //缺少字段 ***** 工单类型 workorderType workorder-addorderType + var workBigTypes=[]; + var workBigType=$("#workorderBigType").val(); + if(workBigType!=null && workBigType!='' && workBigType!=undefined&&workBigType !="ALL"){ + workBigTypes.push(workBigType); + } + //缺少字段 ***** 工单小类 workorder-smallType + var workTypes=[]; + var workType=$("#workorderDetailType").val(); + if(workType!=null && workType!='' && workType!=undefined &&workType !="ALL"){ + workTypes.push(workType); + } + //缺少字段 ***** 投诉人 personName + var complaintName=$("#personName").val(); + //缺少字段 ***** 内容检索 msgFinds + var remark=$("#msgFinds").val(); + var req = { + sysCode: sysComm.sysCode, + workBigTypes: workBigTypes, + workTypes: workTypes, + complaintName: complaintName, + remark: remark, + plNos: plNos, + beginTime: new Date(beginTime.replace(new RegExp(/-/gm) ,"/")), + endTime: new Date(endTime.replace(new RegExp(/-/gm) ,"/")), + }; + + return req; + }, + //弹窗详情函数 + getworkorderDetailInfo:function (id) { + //console.log(id); + var modifyRow = $('#workordertable').bootstrapTable('getRowByUniqueId', id); + //console.log(modifyRow); + $('#detail_chargerCode').html(modifyRow.workId); + $('#detail_plName').html(modifyRow.plName); + $('#detail_msgOrder').html(modifyRow.remark); + $('#detail_msgOrder').attr('title',modifyRow.remark) + $('#detail_compliantphone').html(modifyRow.complaintPhone); + $('#detail_handleId').html(modifyRow.solveName); + $('#detail_areaCode').html(modifyRow.plAreaBlockName); + $('#detail_groupType').html(workorderfun.workBigTypeFormatter(modifyRow.workBigType)); + + $('#detail_compliantper').html(modifyRow.complaintName); + + $('#detail_enterTimes').html(DateUtils.long2String(modifyRow.inputTime,7)); + + + }, + + /**处理轨迹信息 **/ + getworkorderhandleInfo:function (workId) { + console.log(workId); + var req = {sysCode: sysComm.sysCode,workId:workId}; + var opt = { + method: 'post', + url: dataUrl.util.queryOrderWorkTrackByWorkId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + + // console.log(res); + if (res.code == '8888') { + + $("#work_order_track").empty(); + var html =''; + var data = res.data; + var length =0; + if(data!=undefined && data !=null && data.rows!=null & data.rows!=undefined){ + length=data.rows.length; + } + var data=data.rows; + var html=''; + $.each(data,function(index,row){ + if(data.length >1) { + if(index < data.length -1){ + html += '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  处理人: ' + row.solveName + '' + DateUtils.long2String(row.solveTime, 7) + '
                  \n' + + '
                  \n' + + ' 处理意见: ' + (row.reason == null ? '' : row.reason) + '' + + '
                  \n' + + '
                  \n' + + '
                  '; + }else{ + html+='
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  处理人: '+row.solveName+''+DateUtils.long2String(row.solveTime,7)+'
                  \n' + + '
                  \n' + + ' 处理意见: '+(row.reason == null ? '':row.reason)+''+ + '
                  \n' + + '
                  \n' + + '
                  '; + } + + }else{//最后一天 + html+='
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  处理人: '+row.solveName+''+DateUtils.long2String(row.solveTime,7)+'
                  \n' + + '
                  \n' + + ' 处理意见: '+(row.reason == null ? '':row.reason)+''+ + '
                  \n' + + '
                  \n' + + '
                  '; + } + if(3==parseInt(row.solveState)){//完成 + html+='
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  \n' + + '
                  处理完成
                  \n' + + '\n' + + '
                  \n' + + '
                  '; + } + + }); + + $("#work_order_track").html(html); + } + } + } + sysAjax(opt); + + + }, + //保存新建工单 + workorderaddSubmit:function(){ + ; + var plAreaBlockId=$('#workorder-addareaName').val(); + var plAreaBlockName=$('#workorder-addareaName option:selected').text(); + var plNo=$('#workorder-addplNames').val(); + var plName=$('#workorder-addplNames option:selected').text(); + var workBigType=$('#workorder-addorderType').val(); + var workType=$('#workorder-addordersmallType').val(); + + var complaintName=$('#workorder-addcompliant').val(); + + var complaintPhone=$('#workorder-addcompliantPhone').val(); + var remark=$('#workorder-addcomMsg').val(); + + var solveName=$("#workorder-addhandle").val(); + var solveId=$("#workorder-addhandle").attr("data-id"); + var solvePhone=$("#workorder-addhandle").attr("data-phone"); + var workorSubMsg = $('#workorder-addsugMsg').val(); + console.log(plAreaBlockName+plAreaBlockId+plNo+plName); + console.log(workBigType+workType); + console.log(complaintName+complaintPhone+remark); + + console.log(solveId+solveName+solvePhone); + /**是否指派 1,是 (指派)2、否(不指派)**/ + var isAppoint=1; + if(solveName==null || solveName==undefined ||solveName==""){ + isAppoint=2; + }else{ + if(solveId.indexOf('-')!=-1){ + solveId=solveId.substr(1,solveId.length); + } + } + + var createEmpId = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var createEmpName = StrUtil.isEmpty(fn.getUserName()) ? '-1' : fn.getUserName(); + var req = { + plAreaBlockId: plAreaBlockId, + plAreaBlockName: plAreaBlockName, + plNo: plNo, + plName: plName, + workBigType: workBigType, + workType: workType, + complaintName: complaintName, + complaintPhone: complaintPhone, + remark: remark, + sysCode: sysComm.sysCode, + solveName: solveName, + solveId: solveId, + solvePhone: solvePhone, + reason:workorSubMsg, + isAppoint: isAppoint, + createEmpId: createEmpId, + createEmpName: createEmpName + + }; + var opt = { + method: 'post', + url: dataUrl.util.saveOrderWork(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + + var data = res.data; + $('#workorder_addmodel').modal('hide'); + $('#workordertable').bootstrapTable('refresh', { + silent: true + }); + + } + } + } + sysAjax(opt); + + + + }, + //选择指派人 + workorderperSubmit:function(){ + + documentBindFunc.on('click', '#workorderper-submit', function () { + var selectedNodes = Tree.getCheckedNodes(); + ; + if(selectedNodes != null){ + $.each(selectedNodes,function(index,row){ + $("#workorder-addhandle").val(""); + $("#workorder-addhandle").attr("data-id",""); + $("#workorder-addhandle").attr("data-phone",""); + $("#workorder-addhandle").val(row.name); + $("#workorder-addhandle").attr("data-id",row.id); + $("#workorder-addhandle").attr("data-phone",row.code); + $('#workorder_Assignormodel').modal('hide'); + }); + } + }); + } + + +}; +workorderfun.init(); +//查询 +documentBindFunc.on('click', '#workorder-queryBtn', function () { + workorderfun.workordercreateTableData(); +}); +//详情弹窗 +documentBindFunc.on('click','.lookMsg',function () { + var id = $(this).attr('data-index'); + $('#workorder_detailmodel').modal('show'); + workorderfun.getworkorderDetailInfo(id); +}); +//处理进度弹窗 +documentBindFunc.on('click','.resMsg',function () { + var workId = $(this).attr('data-index'); + $('#workorder_handlemodel').modal('show'); + + workorderfun.getworkorderhandleInfo(workId); +}); +//新增弹窗 +documentBindFunc.on('click','#workorder-addBtn',function () { + //初始化 tree 指派人 + //工单类型初始化 + workorderfun.addinitParkBlock(); + workorderfun.addworkorderTypeInit(); + + $('#workorder-addareaName').selectpicker('refresh'); + $('#workorder-addplNames').selectpicker('refresh'); + $('#workorder-addorderType').selectpicker('refresh'); + $('#workorder-addordersmallType').selectpicker('refresh'); + $('#workorder-addcompliant').val(''); + $('#workorder-addcompliantPhone').val(''); + $('#workorder-addhandle').val(''); + $('#workorder-addcomMsg').val(''); + $('#workorder-addsugMsg').val(''); + $('#workorder_addmodel').modal('show'); +}); +//指派人弹窗 +documentBindFunc.on('click','#workorder-perBtn',function () { + //初始化 tree 指派人 + Tree.initTree(); + $('#workorder_Assignormodel').modal('show'); +}); +//保存弹窗 +documentBindFunc.on('click', '#workorderadd-submit', function () { + var compliant=$.trim($('#workorder-addcompliant').val()); + var carpho=$.trim($('#workorder-addcompliantPhone').val()); + var comMsg=$.trim($('#workorder-addcomMsg').val()); + var solveName=$.trim($("#workorder-addhandle").val()); + var addsugMsg=$.trim($("#workorder-addsugMsg").val()); + if(compliant == null || compliant =="" || compliant ==undefined){ + $('#write_rule').removeClass('display-none').text('错误提示:请输入投诉人名称'); + return false; + }else if(carpho == null || carpho =="" || carpho ==undefined){ + $('#write_rule').removeClass('display-none').text('错误提示:请输入投诉电话'); + return false; + }else if(carpho&&!/^1[3|4|5|7|8]{1}\d{9}$/.test(carpho)&&carpho.length!=11){ + $('#write_rule').removeClass('display-none').text('错误提示:请输入正确投诉电话'); + return false; + }else if(comMsg == null || comMsg =="" || comMsg ==undefined){ + $('#write_rule').removeClass('display-none').text('错误提示:请输入投诉内容'); + return false; + }else if(addsugMsg == null || addsugMsg =="" || addsugMsg ==undefined){ + $('#write_rule').removeClass('display-none').text('错误提示:请输入处理意见'); + return false; + }else { + if(solveName == null || solveName =="" || solveName ==undefined){ + $('#write_rule').removeClass('display-none').text('错误提示:不指派人直接结束流程'); + } + // 成功 ajax + $('#write_rule').addClass('display-none'); + workorderfun.workorderaddSubmit(); + + } +}); +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function workordertableLoadRequest(params) { + var req = workorderfun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryOrderWorkForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + $("[data-toggle='tooltip']").tooltip(); + } + else{ + + } + } + }; + sysAjax(opt); +} +//新增 指派人 +//构建树 +var Tree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#user_org_tree_add"), Tree.setting, Tree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + treeObj.expandAll(false); + Tree.setChkDisabled(treeObj); + }, + setting: { + view: { + selectedMulti: false //静止多选 + }, + check: { + enable: true, //显示多选框 + radioType: "all", + chkStyle: "radio" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + + + }, + edit: { + enable: false + + } + }, + getCheckedNodes:function(){ + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var nodes = treeObj.getCheckedNodes(true); + return nodes; + }, + //禁止选择非末级节点 + setChkDisabled: function(treeObj){ + var node = treeObj.getNodes(); + var nodes = treeObj.transformToArray(node); + for (var i=0, l=nodes.length; i < l; i++) { + if(nodes[i].id >0){ + treeObj.setChkDisabled(nodes[i], true,true,false); + + } + + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = Tree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node==null){ + continue; + } + node.checked = true; + Tree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var treeNode = Tree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = Tree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var nodes = treeObj.getCheckedNodes(true); + var index=0; + for (var i = 0; i < nodes.length; i++) { + if(!nodes[i].isParent){ + ids[index++] = nodes[i].id + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的组织级别节点ID集合 + getCheckedNodesIdForOrgLevel: function (checked,orgLevel) { + var ids = ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var nodes = treeObj.getCheckedNodes(checked); + for (var i = 0; i < nodes.length; i++) { + if(orgLevel ==nodes[i].orgLevel){ + ids= nodes[i].id + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names= ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names+","+nodes[i].name; + } + return names; + }, + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree_add"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData:function() { + //var sysCodeHidde = $('#sysCodeHidde').val(); + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + isAddSysOp:1, + sysCode:sysComm.sysCode + }; + sysAjax({ + method:'POST', + url: dataUrl.util.getOrgTreeBySysCode(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + $.each(res.data, function(index,rows) { + var data=""; + if(rows.id !=null && rows.id <0){ + data={id:rows.plNo,pId:rows.parentId,name:rows.name,chkDisabled:true}; + }else{ + data={id:rows.id,pId:rows.parentId,name:rows.name,telephone:rows.code}; + } + zNodes[index] =data; + }); + zNodes =res.data; + } + }); + //增加一个公告根节点 +// zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } +} + +/** + * 处理错误信息 + * @param {Object} res + */ +function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + var errorPop = new Pop({ + header:'错误提示', + content:$(''+res.msg+''), + buttons:[{ + type:'popOk', + text:'确定' + }] + }); + return true; + }else{ + return false; + } +} + + +// 2018 -7-12 edit +$("#workorderBigType").change(function(){ + console.log(111); + //获取付级id + var parentId = $("#workorderBigType").val(); + // if(parentId == null || parentId =="ALL"){ + // return false; + // } + fn.getWorkorderDetailType(function(data){ + var htmls=""; + if(data != null && data != undefined){ + $.each(data,function(index,rows){ + if(parentId == rows.parentCodeKind){ + htmls += ""; + } + }); + + } + htmls = '' + htmls; + $("#workorderDetailType").empty(); + $("#workorderDetailType").append(htmls); + $('#workorderDetailType').selectpicker('refresh'); + }); +}); diff --git a/assets/pages/scripts/settleFile/settlementmanage.js b/assets/pages/scripts/settleFile/settlementmanage.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/settleFile/settlementmanage.js diff --git a/assets/pages/scripts/settleFile/temporarysettletob.js b/assets/pages/scripts/settleFile/temporarysettletob.js new file mode 100644 index 0000000..596295e --- /dev/null +++ b/assets/pages/scripts/settleFile/temporarysettletob.js @@ -0,0 +1,868 @@ +/** + * 结算记录函数 + * + */ +var tobToOrgFun = { + initFromOrgList: function () { + var req = { + sysCode: sysComm.sysCode, + }; + var opt = { + method: 'post', + async: false, + url: dataUrl.util.queryOrgNameByOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + $("#settleObj").val(data.orgName); + $('#settleObj').attr('data-value','[\"' + data.id + '\"]'); + } + else { + console.log("根据当前登录人组织id获取打款组织报错:", res); + } + } + }; + sysAjax(opt); + }, + + +} +tobToOrgFun.initFromOrgList(); + +var recordFun = { + + //获取查询参数 + getQueryParam: function () { + + //var toOrgIds = JSON.parse($("#settleObj").attr('data-value')); + var status = JSON.parse($("#settleSta").val()); + var selectTime = $("#temporary-daterange-btn").val().split(" - "); + var startDate = selectTime[0]; + var endDate = selectTime[1]; + + + var req = { + sysCode: sysComm.sysCode, + orgIds: [], + status: status, + startDate: startDate, + endDate: endDate + } + + return req; + + }, + + //获取未结算金额 + getNoSettleMoney: function () { + var req = recordFun.getQueryParam(); + + var opt = { + method: 'post', + url: dataUrl.util.queryNoSettleRecordStaticFee(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + console.log("查询未结算金额"); + console.log(res); + + var totalFee = res.data.settlementTotalFee; + var actFee = res.data.settlementActFee; + var aliSrvFee = res.data.aliSrvFee; + var wxSrvFee = res.data.wxSrvFee; + var balanceSrvFee = res.data.balanceSrvFee; + //var platformSrvFee = res.data.platformSrvFee; + + var servFee = balanceSrvFee + wxSrvFee + aliSrvFee; + //actFee = totalFee - servFee; + + totalFee = totalFee == null ? "0.00" : (totalFee / 100).toFixed(2); + actFee = actFee == null ? "0.00" : (actFee/100).toFixed(2); + servFee = servFee == null ? "0.00" : (servFee/100).toFixed(2); + $('#no_act_settlement').html(actFee); + $('#no_total_settlement').html(totalFee); + $('#no_server_fee').html(servFee); + + } + } + }; + sysAjax(opt); + + + }, + //查询未结算记录 + queryNoSettleRecord: function (params) { + + var req = recordFun.getQueryParam(); + req.status = [100, -100, 200, 300]; + + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + + + var opt = { + method: 'post', + url: dataUrl.util.querySettlementRecordByStatusForOrgId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + console.log("查询未结算记录"); + console.log(res); + + params.success(res.data); + + } + } + }; + sysAjax(opt); + + } + +} +var fun={ + init:function () { + /**时间初始化*/ + $('#temporary-daterange-btn').val(moment().subtract('days', 7).format('YYYY-MM-DD') + ' - ' + moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#temporary-daterange-btn').daterangepicker({ + startDate: moment().subtract('days', 7), + endDate: moment().subtract('days', 1), + opens: 'right', //日期选择框的弹出位置 + dateLimit : { + days : 30 + }, //起止时间的最大间隔 + locale: { + applyLabel: '确定', + cancelLabel: '取消', + customRangeLabel: '自定义', + daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'], + monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', + '七月', '八月', '九月', '十月', '十一月', '十二月' + ], + + }, + + ranges: { + '昨天': [moment().subtract('days', 1), moment().subtract('days', 1)], + '最近一周': [moment().subtract('days', 7), moment().subtract('days', 1)], + '最近一个月': [moment().subtract('months', 1), moment().subtract('days', 1)], + }, + maxDate: moment().subtract('days', 1), //最大时间 + + }, + function (start, end) { + $('#temporary-daterange-btn').val(start.format('YYYY-MM-DD ') + ' - ' + end.format('YYYY-MM-DD ')); + //alert(start.format('YYYYMMDD') + " " + end.format('YYYYMMDD')); + } + ); + //初始化结算状态 + $('#settleSta').selectpicker('refresh'); + + //查询未结算金额 + recordFun.getNoSettleMoney(); + //查询已结算、结算中金额汇总 + fun.querySettlementFeeSummary(); + //默认 结算记录 table + fun.createTableDataSettle(); + + }, + + //结算单费用汇总 + querySettlementFeeSummary:function(){ + var req = fun.getQueryParamSettle(); + var opt = { + method: 'post', + async: false, + url: dataUrl.util.querySettlementFeeSummary(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + $(".temporary-con-title").text($("#settleObj").val()); + $.each(data, function(index,item) { + if(item.settlementState==400){ + $(".temporary-con-mon").eq(1).text(fun.moneyFormatter(item.settlementActFee)); + $(".ITD-common-fontsize14.colorsmall").eq(2).find('span').text(fun.moneyFormatter(item.settlementTotalFee)); + $(".ITD-common-fontsize14.colorsmall").eq(3).find('span').text(fun.moneyFormatter(item.srvFee)); + } + else if(item.settlementState==100){ + $(".temporary-con-mon").eq(2).text(fun.moneyFormatter(item.settlementActFee)); + $(".ITD-common-fontsize14.colorsmall").eq(4).find('span').text(fun.moneyFormatter(item.settlementTotalFee)); + $(".ITD-common-fontsize14.colorsmall").eq(5).find('span').text(fun.moneyFormatter(item.srvFee)); + } + }); + } + else{ + console.log("查询结算单费用汇总报错:",res); + } + } + }; + sysAjax(opt); + }, + //金额处理 + moneyFormatter:function(value){ + if(value==null || value ==''){ + return "0.00"; + } + else{ + return (value/100).toFixed(2); + } + }, + //金额-分处理 + moneyToLongFormatter:function(value){ + if(value==null || value ==''){ + return 0; + } + else{ + return (value)*100; + } + }, + toOrgNameFormatter:function(value){ + if(value==null || value==''){ + return ''; + } + return $("#settleObj").val(); + }, + //默认表格生成 结算记录 table + createTableDataSettle:function () { + $('#temporaryrecord-table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequestSettle,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + [ + /* { + title:'', + width: '5%', + checkbox: true, + valign: "middle", + align: 'center', + },*/ + { + field: 'settlementNo', + title: '结算单号', + valign: "middle", + align: 'left', + }, + { + field: 'toOrgName', + title: '结算对象', + valign: "middle", + align: 'left', + //formatter: fun.toOrgNameFormatter + }, + { + field: 'settlementActFee', + title: '结算金额', + valign: "middle", + align: 'left', + formatter: fun.moneyFormatter + }, + { + field: 'checkDate', + title: '第三方手续费', + valign: "middle", + align: 'left', + formatter: fun.srvFeeFormatter + }, + { + field: 'checkDate', + title: '交易笔数', + valign: "middle", + align: 'left', + formatter: fun.chargeNumFormatter + }, + { + field: 'settlementState', + title: '结算状态', + valign: "middle", + align: 'left', + formatter: fun.settleStaFormatter + }, + { + field: 'bankSeriNo', + title: '银行流水号', + valign: "middle", + align: 'left', + formatter: fun.bankStaFormatter + }, + { + field: '', + title: '操作', + valign: "middle", + align: 'left', + formatter: fun.operateFormatter + }, + + ] + + + ] + }); + }, + + //弹窗 table 所有明细 + createSettlementRecordDetail: function () { + $('#temporaryall-tableDetail').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequestallDetail,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + [ + + { + field: 'checkDate', + title: '时间', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + formatter:fun.dateFormatter + }, + {field: 'orgName',title: '结算对象',align: 'left',rowspan: 2,valign: "middle",width: '7%',}, + {field: 'settlementActFee',title: '应结金额',align: 'left',rowspan: 2,valign: "middle",width: '7%',formatter:fun.moneyFormatter}, + {field: '', title: "微信", valign: "middle", align: "center", colspan: 3, rowspan: 1}, + {field: '', title: "支付宝", valign: "middle", align: "center", colspan: 3, rowspan: 1}, + {field: '', title: "余额", valign: "middle", align: "center", colspan: 3, rowspan: 1}, + {field: 'checkStatus',title: '核账状态',align: 'left',rowspan: 2,valign: "middle",width: '7%',formatter:fun.checkStatusFormatter}, + {field: 'checkOpId',title: '核账人',align: 'left',rowspan: 2,valign: "middle",width: '7%',} + + ], + [ + { + field: 'wxFee', + title: '实收', + width: '7%', + align: "left", + formatter: fun.moneyFormatter + }, + { + field: 'wxRefundFee', + title: '退费', + width: '7%', + align: "left", + formatter: fun.moneyFormatter + }, + { + field: 'wxSrvFee', + title: '手续费', + width: '7%', + align: "left", + formatter: fun.moneyFormatter + }, + { + field: 'aliFee', + title: '实收', + width: '7%', + align: "left", + formatter: fun.moneyFormatter + }, + { + field: 'aliRefundFee', + title: '退费', + width: '7%', + align: "left", + formatter: fun.moneyFormatter + }, + { + field: 'aliSrvFee', + title: '手续费', + width: '7%', + align: "left", + formatter: fun.moneyFormatter + }, + { + field: 'balanceFee', + title: '实收', + width: '7%', + align: "left", + formatter: fun.moneyFormatter + }, + { + field: 'balanceRefundFee', + title: '退费', + width: '7%', + align: "left", + formatter: fun.moneyFormatter + }, + { + field: 'balanceSrvFee', + title: '手续费', + width: '7%', + align: "left", + formatter: fun.moneyFormatter + } + ] + + ] + }); + }, + //汇总选中的条数及金额 + summaryRowsFee:function(){ + var rowsData= $("#temporaryall-table").bootstrapTable('getSelections'); + var settlementFee=0; + $.each(rowsData, function(index,item) { + settlementFee+=item.settlementActFee; + }); + $("#MonenyALL").text(fun.moneyFormatter(settlementFee)); + $("#footNum").text(rowsData.length); + }, + //日期格式化 + dateFormatter:function(value){ + if(value==null|value==''){ + return '-'; + } + return DateUtils.long2String(value, 1); + }, + //交易笔数 + chargeNumFormatter:function (value, row, index) { + return row.aliChargeNum+row.wxChargeNum+row.balanceChargeNum; + }, + //服务费 + srvFeeFormatter:function (value, row, index) { + //+row.platformSrvFee + var srvFee = row.aliSrvFee+row.wxSrvFee+row.balanceSrvFee; + return fun.moneyFormatter(srvFee); + }, + //结算状态 + settleStaFormatter:function (value, row, index) { + // 未结算 已结算 结算中 + if(value==null||value==''){ + return ''; + } + else if(value==100){ + return "未结算"; + } + else if(value==200){ + return "收款组织已确认"; + } + else if(value==300){ + return "已打款"; + } + else if(value==400){ + return "已结算"; + } + else{ + return "未知"; + } + }, + checkStatusFormatter:function(value){ + if(value==null||value==''){ + return ''; + } + else if(value==100){ + return "无差异"; + } + else if(value==-100){ + return "有差异"; + } + else if(value==200){ + return "已平账"; + } + else if(value==300){ + return "已核账"; + } + else if(value==400){ + return "已结算"; + } + else{ + return "未知"; + } + }, + //银行流水 上传 + bankStaFormatter:function (value, row, index) { + if(value==null||value==''){ + value='-'; + } + var operStr =' '+value+''; + + return operStr; + }, + //操作 + operateFormatter:function (value, row, index) { + var operStr =" 查看 "+ + " 详细 "; + //结算单状态为300已打款时,才会有确认按钮 + if(row.settlementState==300){ + operStr+=" 确认"; + } + return operStr; + }, + + //结算记录 参数 + getQueryParamSettle:function () { + //查询起始日期 + var dateStr = $("#temporary-daterange-btn").val(); + var dates = dateStr.split(" - "); + var startDate = new Date(dates[0]+" 00:00:00".replace(new RegExp(/-/gm) ,"/")); + var endDate = new Date(dates[1]+" 23:59:59".replace(new RegExp(/-/gm) ,"/")); + //结算对象 + var toOrgIds = null; + var settleObj = $("#settleObj").attr('data-value'); + if(settleObj != null && settleObj != ''){ + toOrgIds = JSON.parse(settleObj); + } + //结算状态 + var settlementStates = null; + var settleSta = $("#settleSta").selectpicker('val'); + if(settleSta != null && settleSta != ''){ + settlementStates = JSON.parse(settleSta); + } + var req = { + startDate:startDate, + endDate:endDate, + toOrgIds:[], + settlementStates:settlementStates, + flag:false, + sysCode: sysComm.sysCode + } + + return req; + }, + + + //渲染详细结算单 + drawSettlementDetail:function(data){ + //结算单号 + $("#settleNumcall").text((data.settlementNo)+""); + //结算周期 + $("#settleNumcall-time").text(fun.dateFormatter(data.startDate)+"至"+fun.dateFormatter(data.endDate)); + //结算对象 + $("#settlecallObj").text((data.toOrgName)==null?"":(data.toOrgName)); + $("#settlecallObj").val(data.toOrgId); + //结算总额 + $("#settlecallMonery").text(fun.moneyFormatter(data.settlementActFee)); + //微信实收 + $("#wxFee").text((fun.moneyFormatter(data.wxFee))); + //微信退款 + $("#wxRefundFee").text(fun.moneyFormatter(data.wxRefundFee)); + //微信手续费 + $("#wxSrvFee").text(fun.moneyFormatter(data.wxSrvFee)); + //微信应结金额 + $("#wxFeeTotal").text(fun.moneyFormatter(data.wxFee-data.wxRefundFee-data.wxSrvFee)); + //微信支付笔数 + $("#wxFeeTotal").val(new Number(data.wxChargeNum)); + + //支付宝实收 + $("#aliFee").text(fun.moneyFormatter(data.aliFee)); + //$("#aliFee").text(fun.moneyFormatter(data.)); + //支付宝退款 + $("#aliRefundFee").text(fun.moneyFormatter(data.aliRefundFee)); + //支付宝手续费 + $("#aliSrvFee").text(fun.moneyFormatter(data.aliSrvFee)); + //支付宝应结金额 + $("#aliFeeTotal").text(fun.moneyFormatter(data.aliFee-data.aliRefundFee-data.aliSrvFee)); + //支付宝支付笔数 + $("#aliFeeTotal").val(new Number(data.aliChargeNum)); + + //余额实收 + $("#balanceFee").text(fun.moneyFormatter(data.balanceFee)); + //余额退款 + $("#balanceRefundFee").text(fun.moneyFormatter(data.balanceRefundFee)); + //余额手续费 + $("#balanceSrvFee").text(fun.moneyFormatter(data.balanceSrvFee)); + //余额应结金额 + $("#balanceFeeTotal").text(fun.moneyFormatter(data.balanceFee-data.balanceRefundFee-data.balanceSrvFee)); + //余额支付笔数 + $("#balanceFeeTotal").val(new Number(data.balanceChargeNum)); + + //结算时间 + $("#setadvice-endtime").text(data.createDate == null?'-':DateUtils.long2String(data.createDate, 10)); + //操作人 + $("#setadvice-endNames").text(data.createEmpName==null?'-':data.createEmpName); + }, + + //初始化结算单详情 + initSettlementDetail:function(){ + + //结算周期 + $("#settleNumcall-time").text("至"); + //结算对象 + $("#settlecallObj").text(''); + $("#settlecallObj").val(''); + //结算总额 + $("#settlecallMonery").text(''); + + //几个金额 + $(".liClass").text(''); + + //结算时间 + $("#setadvice-endtime").text(''); + //操作人 + $("#setadvice-endNames").text(''); + }, + + + //查看结算单 + settlementDetailInfo:function(settlementNo){ + fun.initSettlementDetail(); + var req = { + settlementNo:settlementNo, + sysCode: sysComm.sysCode + }; + var opt = { + method: 'post', + async: false, + url: dataUrl.util.querySettlementInfoByNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + if(data==null){ + console.log(res); + return; + } + fun.drawSettlementDetail(data); + $('#settleadvice-model').modal('show'); + } + else{ + console.log("查看结算单报错:",res); + } + } + }; + sysAjax(opt); + }, + //确认收款 + confirmReceiveMoney:function(settlementNo,toOrgId){ + var req = { + settlementNo:settlementNo, + toOrgId:toOrgId, + sysCode: sysComm.sysCode + }; + var opt = { + method: 'post', + async: false, + url: dataUrl.util.confirmReceiveMoney(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + swal({title:"提示",text:"确认收款成功!",type:"success",timer:3000,allowOutsideClick:true}); + //查询未结算金额 + recordFun.getNoSettleMoney(); + //查询已结算、结算中金额汇总 + fun.querySettlementFeeSummary(); + //默认 结算记录 table + fun.createTableDataSettle(); + } + else{ + console.log("确认收款报错:",res); + } + } + }; + sysAjax(opt); + } +}; + +fun.init(); +//查询按钮 +documentBindFunc.on('click','#temporary-queryBtn',function () { + //查询未结算金额 + recordFun.getNoSettleMoney(); + //查询已结算、结算中金额汇总 + fun.querySettlementFeeSummary(); + //默认 结算记录 table + fun.createTableDataSettle(); +}); + //详情弹窗 +documentBindFunc.on('click', '.detailInfo', function() { + var settlementNo =$(this).attr('value'); + //alert("详情:"+settlementNo); + fun.settlementDetailInfo(settlementNo); +}); + +//弹窗 所有明细 table +documentBindFunc.on('click', '.listInfo', function() { + var settlementNo =$(this).attr('value'); + settlementNos = []; + settlementNos.push(settlementNo); + fun.createSettlementRecordDetail(); + $('#settledetail-allmodelDetail').modal('show'); + +}); +//确认收款 +documentBindFunc.on('click', '.confirmMoney', function() { + var settlementNo =$(this).attr('value'); + var toOrgId = $(this).attr('toOrgId'); + fun.confirmReceiveMoney(settlementNo,toOrgId); + +}); + +//鼠标移动 事件 imgHover +$("#imgHover").mouseover(function(){ + $(".triangle-up").removeClass('display-none'); + $(".temporary-des").removeClass('display-none'); +}); +$("#imgHover").mouseout(function(){ + $(".triangle-up").addClass("display-none"); + $(".temporary-des").addClass("display-none"); +}); + +/** + * 默认结算记录 table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequestSettle(params) { + var req = fun.getQueryParamSettle(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + + var opt = { + method: 'post', + async: false, + url: dataUrl.util.querySettlementListForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +/** + * 所有明细 table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequestallDetail(params) { + var req = { + settlementNos:settlementNos, + sysCode: sysComm.sysCode + }; + + + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + + + var opt = { + method: 'post', + url: dataUrl.util.querySettlementRecordListBySettleNO(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + console.log("查询结算记录详细"); + console.log(res); + + params.success(res.data); + + } + } + }; + sysAjax(opt); + + +} + +//结算单导出 +documentBindFunc.on('click', '#record-detailBtn', function() { + var req = fun.getQueryParamSettle(); + + var startDate = DateUtils.date2String(req.startDate,7); + var endDate = DateUtils.date2String(req.endDate,7); + var orgId=fn.getOrgId();//获取当前登录人组织id + + var url=dataUrl.util.exportSettlementList(); + var forms = settlementExportForm(url,startDate,endDate,false,req.toOrgIds,req.settlementStates,sysComm.sysCode,orgId); + forms.submit(); + +}); +//创建结算单导出提交表单 +function settlementExportForm(url,startDate,endDate,flag,toOrgIds,settlementStates,sysCode,orgId){ + + var form = document.createElement("form"); + form.style.display='none';; + form.action = url; + form.method="post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "startDate"; + input.value = startDate; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endDate"; + input2.value = endDate; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "flag"; + input3.value = flag; + form.appendChild(input3); + + var input4 = document.createElement("input"); + input4.name = "toOrgIds"; + input4.value = toOrgIds; + form.appendChild(input4); + + var input5 = document.createElement("input"); + input5.name = "settlementStates"; + input5.value = settlementStates; + form.appendChild(input5); + + var input6 = document.createElement("input"); + input6.name = "sysCode"; + input6.value = sysCode; + form.appendChild(input6); + + var input7 = document.createElement("input"); + input7.name = "orgId"; + input7.value = orgId; + form.appendChild(input7); + + return form; +} \ No newline at end of file diff --git a/assets/pages/scripts/shootFile/endorfile/endorsement.css b/assets/pages/scripts/shootFile/endorfile/endorsement.css new file mode 100644 index 0000000..9f50382 --- /dev/null +++ b/assets/pages/scripts/shootFile/endorfile/endorsement.css @@ -0,0 +1,21 @@ +/*查看 img*/ +div.orbit-wrapper { + width: 1px; + height: 1px; + position: relative; +} + +#featured-in { + width: 600px; + height: 400px; + margin-top:20px; + overflow: hidden; +} +#featured-in>img, +#featured-in>div, +#featured-in>a { + /*display: none; */ + width:600px; + height: 400px; +} + diff --git a/assets/pages/scripts/shootFile/endorfile/endorsement.html b/assets/pages/scripts/shootFile/endorfile/endorsement.html new file mode 100644 index 0000000..f727535 --- /dev/null +++ b/assets/pages/scripts/shootFile/endorfile/endorsement.html @@ -0,0 +1,180 @@ + +
                  +
                  +
                  +
                  +
                  + +
                  +
                  + +
                  +
                  + +
                  +
                  + +
                  +
                  +
                  +
                  更多
                  +
                  +
                  +
                  查询
                  +
                  + +
                  + +
                  + + + +
                  +
                  +
                  + +
                  +
                  +
                  +
                  + 违停信息 +
                  +
                  + +
                  +
                  +
                  +
                  +
                  +
                  +
                  + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/shootFile/endorfile/endorsement.js b/assets/pages/scripts/shootFile/endorfile/endorsement.js new file mode 100644 index 0000000..614400b --- /dev/null +++ b/assets/pages/scripts/shootFile/endorfile/endorsement.js @@ -0,0 +1,438 @@ +var fun = { + init: function () { + //初始化停车场下拉框 + commSelect.area_Pl_LinkedSelect("#parkArea", "#parkIds", null, "", 3); + //时间初始化 + fun.dateInit(); + //收费员初始化 + fun.tollperInit(); + //审核状态初始化 + $('#ender_type').selectpicker('refresh'); + //表格初始化 + fun.createTableData(); + + }, + //时间初始化 + dateInit: function () { + $('#tollcheck-daydaterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $('#tollcheck-daydaterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#tollcheck-daydaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + $("#tollcheck-daydaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //获取接口收费员信息 + getChargerMsg: function () { + var plNo = ""; + var chargers = ""; + var req = { + baseRequest: {pageNum: 1, pageSize: 0}, + plNo: plNo, + parkAreaCode: "", + groupCode: "", + onduty: "", + status: "", + nameOrNo: "", + orgId:fn.getOrgId(), + sysCode: sysComm.sysCode + }; + var opt = { + async: false, + data: JSON.stringify(req), + method: "POST", + url: dataUrl.util.queryCashierListInfo(), + success: function (res) { + if (res.code == '8888') { + chargers = JSON.stringify(res.data.rows); + } + } + } + sysAjax(opt); + return JSON.parse(chargers); + }, + //收费员下拉框 + tollperInit:function () { + var data = fun.getChargerMsg(); + var htmls = ''; + var html = ''; + var chargerCodes = []; + for (var i = 0; i < data.length; i++) { + chargerCodes.push(data[i].chargerCode); + html += ""; + } + var chargerCodesStr = JSON.stringify(chargerCodes); + htmls = '' + html; + + $("#tollcheck-tollper").empty(); + $("#tollcheck-tollper").append(htmls); + $('#tollcheck-tollper').selectpicker('render'); + }, + /*获取查询参数*/ + getQueryParam: function () { + //收费员 + var chargerCodes = JSON.parse($("#tollcheck-tollper").val()); + if (chargerCodes.length < 1) { + chargerCodes.push("-1X"); + } + //停车场 + var plNos = JSON.parse($("#parkIds").val()); + if (plNos.length < 1) { + plNos.push("-1X"); + } + var auditType = $.trim($("#ender_type").val()); + var beginTime = $("#tollcheck-daydaterange-btnsta").val(); + var endTime = $("#tollcheck-daydaterange-btnend").val(); + beginTime = beginTime + " 00:00:00"; + endTime = endTime + " 23:59:59"; + + var req = { + beginTime:new Date(beginTime), + endTime :new Date(endTime), + chargerCodes: chargerCodes, + plNos: plNos, + auditType: auditType, + sysCode: sysComm.sysCode + }; + return req; + }, + createTableData:function () { + $('#endortable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'berthmanagement-state', + title: '', + width: '2%', + checkbox: true, + align: 'left' + + }, + { + field: 'carNo', + title: ' 车牌号', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'breakRuleCode', + title: ' 违章编码', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'roadName', + title: ' 道路名称', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'plName', + title: ' 车场名称', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'chargerName', + title: ' 收费员', + width: '15%', + align: "left", + formatter: commonObj.replacenull + + }, + { + field: 'createDate', + title: ' 创建时间', + width: '15%', + align: "left", + formatter: commonObj.timeFormatter + + }, + + { + field: 'auditType', + title: ' 审核状态', + width: '15%', + align: "left", + formatter: function (value, row, index) { + var str = '-'; + value = value == null ? 0 : value; + + if(value == 1){ + str = '未审核'; + } + if (value == 2) { + str = '审核通过'; + } + if (value == 3) { + str = '审核驳回'; + } + return str; + + } + }, + { + field: 'uploadType', + title: ' 上传状态', + width: '15%', + align: "left", + formatter: function (value, row, index) { + var str = '-'; + value = value == null ? 0 : value; + + if(value == 0){ + str = '未上传'; + } + if (value == 1) { + str = '上传成功'; + } + if (value == 2) { + str = '上传失败'; + } + return str; + + } + }, + { + field: '', + title: '操作', + width: '15%', + align: 'left', + //visible: false, + formatter: function (value, row, index) { + var operStr = '查看'; + if(row.auditType == 1){ + operStr+='审核' + } + return operStr; + } + } + + ] + }); + + }, + +}; + +fun.init(); + +//查询按钮 +$('#tollcheck-Btn').on('click',function () { + fun.createTableData(); + +}); + +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); +}); +//批量上传 +documentBindFunc.on('click','#endor_updateBtn',function () { + $("#uploadIds").val(''); + $("#areamanage-deleteallMsg-error").text(""); + $('#areamanage-deleteallMsg-error').addClass('display-none'); + var rowsData = $("#endortable").bootstrapTable('getSelections'); + if (rowsData.length <= 0) { + $("#berthmanage_tipe_context").text(""); + $("#berthmanage_tipe_context").text("请选择要上传的违停信息!"); + $("#berthmanage_tipe").modal('show'); + return false; + } + var ids = []; + $.each(rowsData, function(index,item) { + ids.push(item.id); + }); + $("#uploadIds").val(ids); + $("#berthmanage_tipe").modal('hide'); + $('#en_updatemodel').modal('show'); +}); +documentBindFunc.on('click','#endor-upsubmit',function () { + var req = {}; + req.sysCode = sysComm.sysCode; + req.ids = $("#uploadIds").val(); + var opt = { + method: 'post', + url: dataUrl.util.uploadCarBreakRuleToThird(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + if(res.data){ + $('#areamanage-deleteallMsg-error').removeClass('display-none').text("上传成功!"); + $('#en_updatemodel').modal('hide'); + fun.createTableData(); + }else{ + $('#areamanage-deleteallMsg-error').removeClass('display-none').text(res.msg); + console.log(res); + } + }else{ + $('#areamanage-deleteallMsg-error').removeClass('display-none').text(res.msg); + console.log(res); + } + } + }; + sysAjax(opt); + +}); +//查看 +documentBindFunc.on('click','.lookMsg',function () { + var breakRuleCarPath = $(this).attr('data-value'); + $("#featured-in").find('img').attr('src',breakRuleCarPath); + $('#en_alertmodel').modal('show'); +}); + +//审核 +documentBindFunc.on('click','.relMsg',function () { + $('#berthterval-editBerthterval').addClass('display-none'); + $("#update_bz").val(''); + var id = $(this).attr('data-value'); + console.log(id); + $("#check_id").val(id); + $('#endor_shmodel').modal('show'); +}); + +//提交审核通过 +documentBindFunc.on('click', "#endorsh_submit", function () { + var remark = $("#update_bz").val(); + if(remark == null || remark == ''){ + $("#berthterval-editBerthterval").removeClass('display-none').text("请输入备注信息!"); + return; + } + var req = {}; + req.sysCode = sysComm.sysCode; + req.id = $("#check_id").val(); + req.auditType = 2; + req.auditRemark = remark; + var opt = { + method: 'post', + url: dataUrl.util.updateCarBreakRuleCheckStatus(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + if(res.data){ + $('#berthterval-editBerthterval').removeClass('display-none').text("提交成功!"); + $('#endor_shmodel').modal('hide'); + fun.createTableData(); + }else{ + console.log(res); + } + }else{ + console.log(res); + } + } + }; + sysAjax(opt); +}); +//提交审核驳回 +documentBindFunc.on('click', "#unendorsh_submit", function () { + var remark = $("#update_bz").val(); + if(remark == null || remark == ''){ + $("#berthterval-editBerthterval").removeClass('display-none').text("请输入备注信息!"); + return; + } + var req = {}; + req.sysCode = sysComm.sysCode; + req.id = $("#check_id").val(); + req.auditType = 3; + req.auditRemark = remark; + var opt = { + method: 'post', + url: dataUrl.util.updateCarBreakRuleCheckStatus(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + if(res.data){ + $('#berthterval-editBerthterval').removeClass('display-none').text("提交成功!"); + $('#endor_shmodel').modal('hide'); + fun.createTableData(); + }else{ + console.log(res); + } + }else{ + console.log(res); + } + } + }; + sysAjax(opt); +}); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCarBreakRuleForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + } + } + }; + sysAjax(opt); +} \ No newline at end of file diff --git a/assets/pages/scripts/shootFile/roadfile/roadviolation.css b/assets/pages/scripts/shootFile/roadfile/roadviolation.css new file mode 100644 index 0000000..0ba7ba9 --- /dev/null +++ b/assets/pages/scripts/shootFile/roadfile/roadviolation.css @@ -0,0 +1,133 @@ +/*---------------弹窗------------------*/ +.whitelist-findPark { + position: absolute; + top: 0; + right: 0; + height: 34px; + width: 34px; + background: url(../../otherSetting/img/find_icon.png) no-repeat; + background-size: 17px 17px; + background-position: 6px 8px; + cursor: pointer; +} +.whitelist-group{ + width: 656px; + height: 390px; + margin-left: 12px; + background-color: #f5f7f8; + margin-bottom: 24px; +} +.whitelist-form-group-ul { + float: left; + height: 368px; + margin-left: 13px; + width: 320px; + padding-top: 15px; +} +.whitelist-line1 { + width: 1px; + height: 350px; + background-color: #c2cad8; + margin-top: 18px; + float: left; +} +.whitelist-form-grup-checked{ + padding-top: 18px; + height: 368px; + width: 310px; + float: left; + overflow-y: auto; +} + +.treeview-checkable_org { + height: 352px; + /* margin-left: 30px; */ + width: 300px; + overflow-y: auto; + overflow-x: auto; + float: left; +} +.whitelist-parkCheck, .whitelist-editParkCheck { + height: 28px; + width: 142px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + line-height: 28px; + padding: 0 24px 0 12px; + display: inline-block; + border-radius: 4px !important; + background-color: #fff; + position: relative; + border: 1px solid #d8e2e5; + margin-left: 8px; +} +.closex, .editclosex { + position: absolute; + top: 8px; + right: 9px; + height: 9px; + width: 9px; + background: url(../../otherSetting/img/parkclose_icon.png) no-repeat; + background-size: 9px 9px; + cursor: pointer; +} +.whitelist-padtop8{ + padding-top: 8px !important; +} + + +/*单选复选美化*/ +input[type=checkbox], +input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../otherSetting/img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +input[type=checkbox]:hover + label{ + background: url('../../otherSetting/img/input-checkexActive.png') no-repeat 0 center; + +} +input[type=checkbox]:checked + label{ + background: url('../../otherSetting/img/input-checkbox.png') no-repeat 0 center; + +} + +input[type=checkbox]:checked:hover + label{ + background: url('../../otherSetting/img/input-checkbox.png') no-repeat 0 center; + +} + +input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../otherSetting/img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +input[type=radio]:hover + label{ + background: url('../../otherSetting/img/input-radio.png') no-repeat 0 center; +} +input[type=radio]:checked + label{ + background : url('../../otherSetting/img/input-radio-active.png') no-repeat 0 center; + +} +input[type=radio]:checked:hover + label{ + background: url('../../otherSetting/img/input-radio-active.png') no-repeat 0 center; + +} \ No newline at end of file diff --git a/assets/pages/scripts/shootFile/roadfile/roadviolation.html b/assets/pages/scripts/shootFile/roadfile/roadviolation.html new file mode 100644 index 0000000..42d335a --- /dev/null +++ b/assets/pages/scripts/shootFile/roadfile/roadviolation.html @@ -0,0 +1,165 @@ + +
                  +
                  +
                  +
                  +
                  + +
                  +
                  + +
                  +
                  + 道路名称 + +
                  +
                  +
                  +
                  查询
                  +
                  +
                  +
                  +
                  +
                  +
                  + + + +
                  +
                  +
                  +
                  + 违停道路信息 +
                  +
                  + +
                  +
                  +
                  + +
                  +
                  +
                  +
                  + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/shootFile/roadfile/roadviolation.js b/assets/pages/scripts/shootFile/roadfile/roadviolation.js new file mode 100644 index 0000000..675d3e2 --- /dev/null +++ b/assets/pages/scripts/shootFile/roadfile/roadviolation.js @@ -0,0 +1,689 @@ +var fun = { + init: function () { + + //初始化办事处 停车场 + commSelect.area_Pl_LinkedSelect('#parkArea', '#parkIds'); + //初始化停车场下拉框 + // fun.initPark(); + //表格数据 + fun.createTableData(); + // areaTree.initTree(); + }, + //生成表格数据 + createTableData: function () { + $('#recordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 1, + ajax: tableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'roadNo', + title: '道路编码', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'illegalNo', + title: '违章编码', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'roadName', + title: '道路名称', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'parkRelStr', + title: '关联车场', + width: '15%', + align: "left", + formatter: commonObj.replacenull + }, + { + field: 'createTime', + title: '创建时间', + width: '15%', + align: "left", + formatter: commonObj.timeFormatter + }, + { + field: 'oper', + title: '操作', + width: '15%', + align: 'left', + formatter: function (value, row, index) { + return '车场维护删除'; + }, + }, + + + ] + }); + + }, + + /*获取查询参数*/ + getQueryParam: function () { + /*停车场编码*/ + var plNos = JSON.parse($("#parkIds").val()); + /*车牌号*/ + var carNum = $('#carNumber').val(); + /***/ + var roadName = $('#roadName').val(); + + var plNo; + + if (plNos.length > 1) { + plNos = null; + } + + var req = { + plNos: plNos, + roadName: roadName, + }; + return req; + }, + + //金额处理 + moneyFormatter: function (value) { + // console.log(typeof value) + if (value == 0 || value == undefined || value == null) { + return 0; + } else { + return (value / 100).toFixed(2); + } + }, +}; + +fun.init(); + +// tree init +var areaTree = { + //初始化树 + initTree: function () { + console.log(123) + $.fn.zTree.init($("#user_org_tree"), areaTree.setting, areaTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.expandAll(false); + areaTree.selectedNodes(0); + }, + setting: { + view: { + selectedMulti: true //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "checkbox", + // chkStyle: "radio", + radioType: "all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + callback: { + onCheck: zTreeOnCheck + }, + edit: { + enable: false + } + }, + getNodesByParamFuzzyAll: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodes(); + for (var i = 0; i < nodes.length; i++) { + treeObj.setting.view.fontCss["color"] = '#575757'; + treeObj.updateNode(nodes[i]); + var children = nodes[i].children; + if (children != null && children != "" && children != undefined) { + for (var j = 0; j < children.length; j++) { + treeObj.setting.view.fontCss["color"] = '#575757'; + treeObj.updateNode(children[j]); + } + } + + } + }, + //根据名称模糊搜索树 + getNodesByParamFuzzy: function (name) { + areaTree.getNodesByParamFuzzyAll(); + if (name != "" && name != null) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodesByParamFuzzy("name", name, null); + if (nodes.length <= 0) { + $('#whitelist-write_rule').removeClass('display-none').text("没有搜索到停车场"); + } + for (var i = 0; i < nodes.length; i++) { + treeObj.setting.view.fontCss["color"] = '#CD0000'; + treeObj.updateNode(nodes[i]); + //获取父节点 + var parentNote = areaTree.getNodeById(nodes[i].pId); + treeObj.updateNode(parentNote); + } + } else { + $('#whitelist-write_rule').removeClass('display-none').text("没有搜索到停车场"); + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodes(); + if (nodes.length > 0) { + for (var i = 0; i < nodes.length; i++) { + treeObj.expandNode(nodes[i], false, true, true); + } + } + } + + }, + //展开某个节点 + selectedNodes: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodesByParam("id", id, null); + if (nodes.length > 0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = areaTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if (node == null) { + continue; + } + node.checked = true; + areaTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var treeNode = areaTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = areaTree.getNodeById(ids[i]); + } + return nodes; + }, + //根据id取消选/选中节点 + updateNodesForNotChecked: function (id, checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + node.checked = checked; + treeObj.updateNode(node); + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForArea: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index = 0; + for (var i = 0; i < nodes.length; i++) { + if (null != nodes[i].areaType && "70" == nodes[i].areaType) { + ids[index++] = { + areaId: nodes[i].id, + areaType: nodes[i].areaType, + plNo: nodes[i].pId, + orgAreaType: 1 + }; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names = ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names + "," + nodes[i].name; + } + return names; + }, + +//获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData: function () { + var sysCode = sessionStorage.getItem("sysCode"); + var zNodes = []; + sysAjax({ + method: 'POST', + url: dataUrl.util.vipCardSelectParkTree(), + //data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (isError(res)) { + return false; + } + //console.log("res.data="+res.data); + $.each(res.data, function (index, rows) { + var data = ""; + if (rows.level == "1") {//服务点 + data = { + id: rows.id, + pId: rows.parentId, + name: rows.treeName, + level: rows.level, + chkDisabled: true + }; + } else { + data = {id: rows.id, pId: rows.parentId, name: rows.treeName, level: rows.level}; + } + + zNodes[index] = data; + }); + + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + }, + +}; + +/** + * 处理错误信息 + * @param {Object} res + */ +function isError(res) { + if (res == null || res == undefined) { + return true; + } + if (res.code != '8888') { + alert('树失败') + return true; + } else { + return false; + } +} + +Array.prototype.remove = function (val) { + var index = this.indexOf(val); + if (index > -1) { + this.splice(index, 1); + } +}; + +/** + * 左侧单选按钮点击选中右侧.
                  + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ +function zTreeOnCheck(event, treeId, treeNode) { + // if($("#whitelist_editmodel").css("display")=='none' ){ + console.log('添加页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + if (treeNode.checked === true) { + arrid.push(treeNode.id); + console.log(arrid) + $('#whitelist-parkCheck').append('' + treeNode.name + '') + } else { + arrid.remove(treeNode.id); + $('.whitelist-parkCheck' + treeNode.id).remove(); + } + ; + // }else{ + // console.log('编辑页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + // if (treeNode.checked === true) { + // //还需要判断下 editarrid 是否存在这个treeNode.id 如果存在 就不添加了。 + // if($.inArray(treeNode.id, editarrid) == -1){ + // editarrid.push(treeNode.id); + // console.log(editarrid) + // $('#whitelist-edit-checked').append('' + treeNode.name + ''); + // }else{ + // return + // } + // + // } else { + // editarrid.remove(treeNode.id); + // $('.whitelist-editParkCheck' + treeNode.id).remove(); + // } + // } +}; + +//新增树下面内容删除 +$(document).delegate('.closex', 'click', function () { + var valid = $(this).parent().attr('data-id'); + arrid.remove(valid); + $(this).parent().remove(); + //取消树的选中 + areaTree.updateNodesForNotChecked(valid, false); +}); + +//查询事件 +documentBindFunc.on('click', '#abn-queryBtn', function () { + fun.createTableData(); +}); +//新增事件 +documentBindFunc.on('click', '#roadAddbtn', function () { + $('#berthmanage_addmodel-error').text('').hide(); + + $('#roadcodeadd').val(''); + $('#vilacodeadd').val(''); + $('#roadnameadd').val(''); + $('#road_addmodel').modal('show'); +}); +//车场维护事件 +documentBindFunc.on('click', '.relMsg', function () { + $('#whitelist-parkCheck').empty(); + arrid = []; + areaTree.initTree(); //初始化区域tree + var id = $(this).data('id'); + console.log(id) + $("#whitelist-write-submit").data('id', id); + + queryParkIllegalRelForPlNo(id); + +}); +//删除事件 +documentBindFunc.on('click', '.delPop', function () { + var id = $(this).data('id'); + console.log(id) + $("#roaddel_submit").data('id', id); + $('#road_deletemodel').modal('show'); +}); + +//删除确认 +documentBindFunc.on('click', '#roaddel_submit', function () { + var id = $(this).data('id'); + console.log(id); + deleteRoadBaseInfo(id); + + +}) + +//车场维护提交按钮 +documentBindFunc.on('click', '#whitelist-write-submit', function () { + var id = $(this).data('id'); + saveParkIllegalAreaRel(id); + +}) + +//违章道路基础信息新增 +documentBindFunc.on('click', '#roadviola_submit', function () { + + saveParkIllegalAreaBase(); + +}) + + +//查询停车场信息 +function queryParkIllegalRelForPlNo(id){ + var req = { + parkIllegalBaseId: id, + sysCode: sysComm.sysCode + } + + var opt = { + method: 'post', + url: dataUrl.util.queryParkIllegalAreaRel(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + + console.log(res.data); + var html = ''; + $.each(res.data,function (index,item) { + areaTree.updateNodesForNotChecked(item.plNo, true); + html+=' '+item.plName+''; + }) + + + $('#whitelist-parkCheck').append(html); + + $('#road_relmodel').modal('show'); + } + } + }; + sysAjax(opt); +} + + +//保存道路信息与车场的绑定关系 +function saveParkIllegalAreaRel(id) { + + var plNos =[]; + $('.whitelist-parkCheck').each(function () { + plNos.push($(this).data('id')) + }); + + + + var req = { + parkIllegalBaseId: id, + plNos:plNos, + sysCode: sysComm.sysCode + } + + var opt = { + method: 'post', + url: dataUrl.util.saveParkIllegalAreaRel(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + fun.createTableData(); + $('#road_relmodel').modal('hide'); + + } + } + }; + sysAjax(opt); + + + +} + +//保存违章道路基础信息 +function saveParkIllegalAreaBase() { + + $('#berthmanage_addmodel-error').text('').hide(); + var roadNo = $('#roadcodeadd').val(); + var illegalNo = $('#vilacodeadd').val(); + var roadName = $('#roadnameadd').val(); + + if (!roadNo || roadNo.length == 0) { + $('#berthmanage_addmodel-error').text('道路编码不能为空!').show(); + } + + if (!illegalNo || illegalNo.length == 0) { + $('#berthmanage_addmodel-error').text('违章编码不能为空!').show(); + } + + if (!roadName || roadName.length == 0) { + $('#berthmanage_addmodel-error').text('道路名称不能为空!').show(); + } + + var req = { + roadNo: roadNo, + illegalNo: illegalNo, + roadName: roadName, + sysCode: sysComm.sysCode + } + + var opt = { + method: 'post', + url: dataUrl.util.saveParkIllegalAreaBase(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + //执行成功后执行 + fun.createTableData(); + $('#road_addmodel').modal('hide'); + } + } + }; + sysAjax(opt); + +} + + +//删除 +function deleteRoadBaseInfo(id) { + + //条件查询 + var req = { + id: id, + sysCode: sysComm.sysCode + }; + var opt = { + method: 'post', + url: dataUrl.util.deleteParkIllegalAreaBase(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + //执行成功后执行 + fun.createTableData(); + $('#road_deletemodel').modal('hide'); + } + } + }; + sysAjax(opt); + + +} + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryParkIllegalAreaBaseForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + console.log(res.data); + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +function formatSeconds(value) { + var theTime = parseInt(value);// 秒 + var theTime1 = 0;// 分 + var theTime2 = 0;// 小时 + var theTime3 = 0;//天 + if (theTime < 60) { + return theTime + '秒'; + } + if (theTime > 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); + + + } + + if (theTime1 > 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + } + + if (theTime2 > 24) { + theTime3 = parseInt(theTime2 / 24); + theTime2 = parseInt(theTime2 % 24); + } + + var result = ''; + if (theTime1 == 0 && theTime2 == 0 && theTime3 == 0) { + result = parseInt(theTime) + "秒" + } + + if (theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if (theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + + if (theTime3 > 0) { + result = "" + parseInt(theTime3) + "天" + result; + } + return result; +}; + diff --git a/assets/pages/scripts/shootFile/shootTmp.js b/assets/pages/scripts/shootFile/shootTmp.js new file mode 100644 index 0000000..3e52825 --- /dev/null +++ b/assets/pages/scripts/shootFile/shootTmp.js @@ -0,0 +1,46 @@ + +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
                  '+urlarr[i].name+'
                  ' + }else{ + _html += '
                • '+urlarr[i].name+'
                • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/roadviolation', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/shootFile/roadfile/roadviolation.css'); + res.load('../../assets/pages/scripts/shootFile/roadfile/roadviolation.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-roadviolation').addClass('ITD-topbar-clickactive'); +}); +R.route('/endorsement', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/shootFile/endorfile/endorsement.css'); + res.load('../../assets/pages/scripts/shootFile/endorfile/endorsement.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-endorsement').addClass('ITD-topbar-clickactive'); +}); diff --git a/assets/pages/scripts/textIconOverlay.js b/assets/pages/scripts/textIconOverlay.js new file mode 100755 index 0000000..fc88d94 --- /dev/null +++ b/assets/pages/scripts/textIconOverlay.js @@ -0,0 +1,1040 @@ +/** + * @fileoverview 此类表示地图上的一个覆盖物,该覆盖物由文字和图标组成,从Overlay继承。 + * 主入口类是TextIconOverlay, + * 基于Baidu Map API 1.2。 + * + * @author Baidu Map Api Group + * @version 1.2 + */ + + + /** + * @namespace BMap的所有library类均放在BMapLib命名空间下 + */ +var BMapLib = window.BMapLib = BMapLib || {}; + +(function () { + + /** + * 声明baidu包 + */ + var T, + baidu = T = baidu || {version: "1.3.8"}; + + (function (){ + //提出guid,防止在与老版本Tangram混用时 + //在下一行错误的修改window[undefined] + baidu.guid = "$BAIDU$"; + + //Tangram可能被放在闭包中 + //一些页面级别唯一的属性,需要挂载在window[baidu.guid]上 + window[baidu.guid] = window[baidu.guid] || {}; + + /** + * @ignore + * @namespace baidu.dom 操作dom的方法。 + */ + baidu.dom = baidu.dom || {}; + + + /** + * 从文档中获取指定的DOM元素 + * @name baidu.dom.g + * @function + * @grammar baidu.dom.g(id) + * @param {string|HTMLElement} id 元素的id或DOM元素 + * @shortcut g,T.G + * @meta standard + * @see baidu.dom.q + * + * @returns {HTMLElement|null} 获取的元素,查找不到时返回null,如果参数不合法,直接返回参数 + */ + baidu.dom.g = function (id) { + if ('string' == typeof id || id instanceof String) { + return document.getElementById(id); + } else if (id && id.nodeName && (id.nodeType == 1 || id.nodeType == 9)) { + return id; + } + return null; + }; + + // 声明快捷方法 + baidu.g = baidu.G = baidu.dom.g; + + /** + * 获取目标元素所属的document对象 + * @name baidu.dom.getDocument + * @function + * @grammar baidu.dom.getDocument(element) + * @param {HTMLElement|string} element 目标元素或目标元素的id + * @meta standard + * @see baidu.dom.getWindow + * + * @returns {HTMLDocument} 目标元素所属的document对象 + */ + baidu.dom.getDocument = function (element) { + element = baidu.dom.g(element); + return element.nodeType == 9 ? element : element.ownerDocument || element.document; + }; + + /** + * @ignore + * @namespace baidu.lang 对语言层面的封装,包括类型判断、模块扩展、继承基类以及对象自定义事件的支持。 + */ + baidu.lang = baidu.lang || {}; + + /** + * 判断目标参数是否string类型或String对象 + * @name baidu.lang.isString + * @function + * @grammar baidu.lang.isString(source) + * @param {Any} source 目标参数 + * @shortcut isString + * @meta standard + * @see baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate + * + * @returns {boolean} 类型判断结果 + */ + baidu.lang.isString = function (source) { + return '[object String]' == Object.prototype.toString.call(source); + }; + + // 声明快捷方法 + baidu.isString = baidu.lang.isString; + + /** + * 从文档中获取指定的DOM元素 + * **内部方法** + * + * @param {string|HTMLElement} id 元素的id或DOM元素 + * @meta standard + * @return {HTMLElement} DOM元素,如果不存在,返回null,如果参数不合法,直接返回参数 + */ + baidu.dom._g = function (id) { + if (baidu.lang.isString(id)) { + return document.getElementById(id); + } + return id; + }; + + // 声明快捷方法 + baidu._g = baidu.dom._g; + + /** + * @ignore + * @namespace baidu.browser 判断浏览器类型和特性的属性。 + */ + baidu.browser = baidu.browser || {}; + + if (/msie (\d+\.\d)/i.test(navigator.userAgent)) { + //IE 8下,以documentMode为准 + //在百度模板中,可能会有$,防止冲突,将$1 写成 \x241 + /** + * 判断是否为ie浏览器 + * @property ie ie版本号 + * @grammar baidu.browser.ie + * @meta standard + * @shortcut ie + * @see baidu.browser.firefox,baidu.browser.safari,baidu.browser.opera,baidu.browser.chrome,baidu.browser.maxthon + */ + baidu.browser.ie = baidu.ie = document.documentMode || + RegExp['\x241']; + } + + /** + * 获取目标元素的computed style值。如果元素的样式值不能被浏览器计算,则会返回空字符串(IE) + * + * @author berg + * @name baidu.dom.getComputedStyle + * @function + * @grammar baidu.dom.getComputedStyle(element, key) + * @param {HTMLElement|string} element 目标元素或目标元素的id + * @param {string} key 要获取的样式名 + * + * @see baidu.dom.getStyle + * + * @returns {string} 目标元素的computed style值 + */ + + baidu.dom.getComputedStyle = function(element, key){ + element = baidu.dom._g(element); + var doc = baidu.dom.getDocument(element), + styles; + if (doc.defaultView && doc.defaultView.getComputedStyle) { + styles = doc.defaultView.getComputedStyle(element, null); + if (styles) { + return styles[key] || styles.getPropertyValue(key); + } + } + return ''; + }; + + /** + * 提供给setStyle与getStyle使用 + */ + baidu.dom._styleFixer = baidu.dom._styleFixer || {}; + + /** + * 提供给setStyle与getStyle使用 + */ + baidu.dom._styleFilter = baidu.dom._styleFilter || []; + + /** + * 为获取和设置样式的过滤器 + * @private + * @meta standard + */ + baidu.dom._styleFilter.filter = function (key, value, method) { + for (var i = 0, filters = baidu.dom._styleFilter, filter; filter = filters[i]; i++) { + if (filter = filter[method]) { + value = filter(key, value); + } + } + return value; + }; + + /** + * @ignore + * @namespace baidu.string 操作字符串的方法。 + */ + baidu.string = baidu.string || {}; + + /** + * 将目标字符串进行驼峰化处理 + * @name baidu.string.toCamelCase + * @function + * @grammar baidu.string.toCamelCase(source) + * @param {string} source 目标字符串 + * @remark + * 支持单词以“-_”分隔 + * @meta standard + * + * @returns {string} 驼峰化处理后的字符串 + */ + baidu.string.toCamelCase = function (source) { + //提前判断,提高getStyle等的效率 thanks xianwei + if (source.indexOf('-') < 0 && source.indexOf('_') < 0) { + return source; + } + return source.replace(/[-_][^-_]/g, function (match) { + return match.charAt(1).toUpperCase(); + }); + }; + + /** + * 获取目标元素的样式值 + * @name baidu.dom.getStyle + * @function + * @grammar baidu.dom.getStyle(element, key) + * @param {HTMLElement|string} element 目标元素或目标元素的id + * @param {string} key 要获取的样式名 + * @remark + * + * 为了精简代码,本模块默认不对任何浏览器返回值进行归一化处理(如使用getStyle时,不同浏览器下可能返回rgb颜色或hex颜色),也不会修复浏览器的bug和差异性(如设置IE的float属性叫styleFloat,firefox则是cssFloat)。
                  + * baidu.dom._styleFixer和baidu.dom._styleFilter可以为本模块提供支持。
                  + * 其中_styleFilter能对颜色和px进行归一化处理,_styleFixer能对display,float,opacity,textOverflow的浏览器兼容性bug进行处理。 + * @shortcut getStyle + * @meta standard + * @see baidu.dom.setStyle,baidu.dom.setStyles, baidu.dom.getComputedStyle + * + * @returns {string} 目标元素的样式值 + */ + baidu.dom.getStyle = function (element, key) { + var dom = baidu.dom; + + element = dom.g(element); + key = baidu.string.toCamelCase(key); + //computed style, then cascaded style, then explicitly set style. + var value = element.style[key] || + (element.currentStyle ? element.currentStyle[key] : "") || + dom.getComputedStyle(element, key); + + // 在取不到值的时候,用fixer进行修正 + if (!value) { + var fixer = dom._styleFixer[key]; + if(fixer){ + value = fixer.get ? fixer.get(element) : baidu.dom.getStyle(element, fixer); + } + } + + /* 检查结果过滤器 */ + if (fixer = dom._styleFilter) { + value = fixer.filter(key, value, 'get'); + } + + return value; + }; + + // 声明快捷方法 + baidu.getStyle = baidu.dom.getStyle; + + + if (/opera\/(\d+\.\d)/i.test(navigator.userAgent)) { + /** + * 判断是否为opera浏览器 + * @property opera opera版本号 + * @grammar baidu.browser.opera + * @meta standard + * @see baidu.browser.ie,baidu.browser.firefox,baidu.browser.safari,baidu.browser.chrome + */ + baidu.browser.opera = + RegExp['\x241']; + } + + /** + * 判断是否为webkit内核 + * @property isWebkit + * @grammar baidu.browser.isWebkit + * @meta standard + * @see baidu.browser.isGecko + */ + baidu.browser.isWebkit = /webkit/i.test(navigator.userAgent); + + /** + * 判断是否为gecko内核 + * @property isGecko + * @grammar baidu.browser.isGecko + * @meta standard + * @see baidu.browser.isWebkit + */ + baidu.browser.isGecko = /gecko/i.test(navigator.userAgent) && !/like gecko/i.test(navigator.userAgent); + + /** + * 判断是否严格标准的渲染模式 + * @property isStrict + * @grammar baidu.browser.isStrict + * @meta standard + */ + baidu.browser.isStrict = document.compatMode == "CSS1Compat"; + + /** + * 获取目标元素相对于整个文档左上角的位置 + * @name baidu.dom.getPosition + * @function + * @grammar baidu.dom.getPosition(element) + * @param {HTMLElement|string} element 目标元素或目标元素的id + * @meta standard + * + * @returns {Object} 目标元素的位置,键值为top和left的Object。 + */ + baidu.dom.getPosition = function (element) { + element = baidu.dom.g(element); + var doc = baidu.dom.getDocument(element), + browser = baidu.browser, + getStyle = baidu.dom.getStyle, + // Gecko 1.9版本以下用getBoxObjectFor计算位置 + // 但是某些情况下是有bug的 + // 对于这些有bug的情况 + // 使用递归查找的方式 + BUGGY_GECKO_BOX_OBJECT = browser.isGecko > 0 && + doc.getBoxObjectFor && + getStyle(element, 'position') == 'absolute' && + (element.style.top === '' || element.style.left === ''), + pos = {"left":0,"top":0}, + viewport = (browser.ie && !browser.isStrict) ? doc.body : doc.documentElement, + parent, + box; + + if(element == viewport){ + return pos; + } + + if(element.getBoundingClientRect){ // IE and Gecko 1.9+ + + //当HTML或者BODY有border width时, 原生的getBoundingClientRect返回值是不符合预期的 + //考虑到通常情况下 HTML和BODY的border只会设成0px,所以忽略该问题. + box = element.getBoundingClientRect(); + + pos.left = Math.floor(box.left) + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft); + pos.top = Math.floor(box.top) + Math.max(doc.documentElement.scrollTop, doc.body.scrollTop); + + // IE会给HTML元素添加一个border,默认是medium(2px) + // 但是在IE 6 7 的怪异模式下,可以被html { border: 0; } 这条css规则覆盖 + // 在IE7的标准模式下,border永远是2px,这个值通过clientLeft 和 clientTop取得 + // 但是。。。在IE 6 7的怪异模式,如果用户使用css覆盖了默认的medium + // clientTop和clientLeft不会更新 + pos.left -= doc.documentElement.clientLeft; + pos.top -= doc.documentElement.clientTop; + + var htmlDom = doc.body, + // 在这里,不使用element.style.borderLeftWidth,只有computedStyle是可信的 + htmlBorderLeftWidth = parseInt(getStyle(htmlDom, 'borderLeftWidth')), + htmlBorderTopWidth = parseInt(getStyle(htmlDom, 'borderTopWidth')); + if(browser.ie && !browser.isStrict){ + pos.left -= isNaN(htmlBorderLeftWidth) ? 2 : htmlBorderLeftWidth; + pos.top -= isNaN(htmlBorderTopWidth) ? 2 : htmlBorderTopWidth; + } + } else { + // safari/opera/firefox + parent = element; + + do { + pos.left += parent.offsetLeft; + pos.top += parent.offsetTop; + + // safari里面,如果遍历到了一个fixed的元素,后面的offset都不准了 + if (browser.isWebkit > 0 && getStyle(parent, 'position') == 'fixed') { + pos.left += doc.body.scrollLeft; + pos.top += doc.body.scrollTop; + break; + } + + parent = parent.offsetParent; + } while (parent && parent != element); + + // 对body offsetTop的修正 + if(browser.opera > 0 || (browser.isWebkit > 0 && getStyle(element, 'position') == 'absolute')){ + pos.top -= doc.body.offsetTop; + } + + // 计算除了body的scroll + parent = element.offsetParent; + while (parent && parent != doc.body) { + pos.left -= parent.scrollLeft; + // see https://bugs.opera.com/show_bug.cgi?id=249965 + if (!browser.opera || parent.tagName != 'TR') { + pos.top -= parent.scrollTop; + } + parent = parent.offsetParent; + } + } + + return pos; + }; + + /** + * @ignore + * @namespace baidu.event 屏蔽浏览器差异性的事件封装。 + * @property target 事件的触发元素 + * @property pageX 鼠标事件的鼠标x坐标 + * @property pageY 鼠标事件的鼠标y坐标 + * @property keyCode 键盘事件的键值 + */ + baidu.event = baidu.event || {}; + + /** + * 事件监听器的存储表 + * @private + * @meta standard + */ + baidu.event._listeners = baidu.event._listeners || []; + + /** + * 为目标元素添加事件监听器 + * @name baidu.event.on + * @function + * @grammar baidu.event.on(element, type, listener) + * @param {HTMLElement|string|window} element 目标元素或目标元素id + * @param {string} type 事件类型 + * @param {Function} listener 需要添加的监听器 + * @remark + * + 1. 不支持跨浏览器的鼠标滚轮事件监听器添加
                  + 2. 改方法不为监听器灌入事件对象,以防止跨iframe事件挂载的事件对象获取失败 + + * @shortcut on + * @meta standard + * @see baidu.event.un + * + * @returns {HTMLElement|window} 目标元素 + */ + baidu.event.on = function (element, type, listener) { + type = type.replace(/^on/i, ''); + element = baidu.dom._g(element); + + var realListener = function (ev) { + // 1. 这里不支持EventArgument, 原因是跨frame的事件挂载 + // 2. element是为了修正this + listener.call(element, ev); + }, + lis = baidu.event._listeners, + filter = baidu.event._eventFilter, + afterFilter, + realType = type; + type = type.toLowerCase(); + // filter过滤 + if(filter && filter[type]){ + afterFilter = filter[type](element, type, realListener); + realType = afterFilter.type; + realListener = afterFilter.listener; + } + + // 事件监听器挂载 + if (element.addEventListener) { + element.addEventListener(realType, realListener, false); + } else if (element.attachEvent) { + element.attachEvent('on' + realType, realListener); + } + + // 将监听器存储到数组中 + lis[lis.length] = [element, type, listener, realListener, realType]; + return element; + }; + + // 声明快捷方法 + baidu.on = baidu.event.on; + + /** + * 返回一个当前页面的唯一标识字符串。 + * @name baidu.lang.guid + * @function + * @grammar baidu.lang.guid() + * @version 1.1.1 + * @meta standard + * + * @returns {String} 当前页面的唯一标识字符串 + */ + + (function(){ + //不直接使用window,可以提高3倍左右性能 + var guid = window[baidu.guid]; + + baidu.lang.guid = function() { + return "TANGRAM__" + (guid._counter ++).toString(36); + }; + + guid._counter = guid._counter || 1; + })(); + + /** + * 所有类的实例的容器 + * key为每个实例的guid + * @meta standard + */ + + window[baidu.guid]._instances = window[baidu.guid]._instances || {}; + + /** + * 判断目标参数是否为function或Function实例 + * @name baidu.lang.isFunction + * @function + * @grammar baidu.lang.isFunction(source) + * @param {Any} source 目标参数 + * @version 1.2 + * @see baidu.lang.isString,baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate + * @meta standard + * @returns {boolean} 类型判断结果 + */ + baidu.lang.isFunction = function (source) { + // chrome下,'function' == typeof /a/ 为true. + return '[object Function]' == Object.prototype.toString.call(source); + }; + + /** + * + * @ignore + * @class Tangram继承机制提供的一个基类,用户可以通过继承baidu.lang.Class来获取它的属性及方法。 + * @name baidu.lang.Class + * @grammar baidu.lang.Class(guid) + * @param {string} guid 对象的唯一标识 + * @meta standard + * @remark baidu.lang.Class和它的子类的实例均包含一个全局唯一的标识guid。guid是在构造函数中生成的,因此,继承自baidu.lang.Class的类应该直接或者间接调用它的构造函数。
                  baidu.lang.Class的构造函数中产生guid的方式可以保证guid的唯一性,及每个实例都有一个全局唯一的guid。 + * @meta standard + * @see baidu.lang.inherits,baidu.lang.Event + */ + baidu.lang.Class = function(guid) { + this.guid = guid || baidu.lang.guid(); + window[baidu.guid]._instances[this.guid] = this; + }; + window[baidu.guid]._instances = window[baidu.guid]._instances || {}; + + /** + * 释放对象所持有的资源,主要是自定义事件。 + * @name dispose + * @grammar obj.dispose() + */ + baidu.lang.Class.prototype.dispose = function(){ + delete window[baidu.guid]._instances[this.guid]; + + for(var property in this){ + if (!baidu.lang.isFunction(this[property])) { + delete this[property]; + } + } + this.disposed = true; + }; + + /** + * 重载了默认的toString方法,使得返回信息更加准确一些。 + * @return {string} 对象的String表示形式 + */ + baidu.lang.Class.prototype.toString = function(){ + return "[object " + (this._className || "Object" ) + "]"; + }; + + /** + * @ignore + * @class 自定义的事件对象。 + * @name baidu.lang.Event + * @grammar baidu.lang.Event(type[, target]) + * @param {string} type 事件类型名称。为了方便区分事件和一个普通的方法,事件类型名称必须以"on"(小写)开头。 + * @param {Object} [target]触发事件的对象 + * @meta standard + * @remark 引入该模块,会自动为Class引入3个事件扩展方法:addEventListener、removeEventListener和dispatchEvent。 + * @meta standard + * @see baidu.lang.Class + */ + baidu.lang.Event = function (type, target) { + this.type = type; + this.returnValue = true; + this.target = target || null; + this.currentTarget = null; + }; + + /** + * 注册对象的事件监听器。引入baidu.lang.Event后,Class的子类实例才会获得该方法。 + * @grammar obj.addEventListener(type, handler[, key]) + * @param {string} type 自定义事件的名称 + * @param {Function} handler 自定义事件被触发时应该调用的回调函数 + * @param {string} [key] 为事件监听函数指定的名称,可在移除时使用。如果不提供,方法会默认为它生成一个全局唯一的key。 + * @remark 事件类型区分大小写。如果自定义事件名称不是以小写"on"开头,该方法会给它加上"on"再进行判断,即"click"和"onclick"会被认为是同一种事件。 + */ + baidu.lang.Class.prototype.addEventListener = function (type, handler, key) { + if (!baidu.lang.isFunction(handler)) { + return; + } + + !this.__listeners && (this.__listeners = {}); + + var t = this.__listeners, id; + if (typeof key == "string" && key) { + if (/[^\w\-]/.test(key)) { + throw("nonstandard key:" + key); + } else { + handler.hashCode = key; + id = key; + } + } + type.indexOf("on") != 0 && (type = "on" + type); + + typeof t[type] != "object" && (t[type] = {}); + id = id || baidu.lang.guid(); + handler.hashCode = id; + t[type][id] = handler; + }; + + /** + * 移除对象的事件监听器。引入baidu.lang.Event后,Class的子类实例才会获得该方法。 + * @grammar obj.removeEventListener(type, handler) + * @param {string} type 事件类型 + * @param {Function|string} handler 要移除的事件监听函数或者监听函数的key + * @remark 如果第二个参数handler没有被绑定到对应的自定义事件中,什么也不做。 + */ + baidu.lang.Class.prototype.removeEventListener = function (type, handler) { + if (typeof handler != "undefined") { + if ( (baidu.lang.isFunction(handler) && ! (handler = handler.hashCode)) + || (! baidu.lang.isString(handler)) + ){ + return; + } + } + + !this.__listeners && (this.__listeners = {}); + + type.indexOf("on") != 0 && (type = "on" + type); + + var t = this.__listeners; + if (!t[type]) { + return; + } + if (typeof handler != "undefined") { + t[type][handler] && delete t[type][handler]; + } else { + for(var guid in t[type]){ + delete t[type][guid]; + } + } + }; + + /** + * 派发自定义事件,使得绑定到自定义事件上面的函数都会被执行。引入baidu.lang.Event后,Class的子类实例才会获得该方法。 + * @grammar obj.dispatchEvent(event, options) + * @param {baidu.lang.Event|String} event Event对象,或事件名称(1.1.1起支持) + * @param {Object} options 扩展参数,所含属性键值会扩展到Event对象上(1.2起支持) + * @remark 处理会调用通过addEventListenr绑定的自定义事件回调函数之外,还会调用直接绑定到对象上面的自定义事件。例如:
                  + myobj.onMyEvent = function(){}
                  + myobj.addEventListener("onMyEvent", function(){}); + */ + baidu.lang.Class.prototype.dispatchEvent = function (event, options) { + if (baidu.lang.isString(event)) { + event = new baidu.lang.Event(event); + } + !this.__listeners && (this.__listeners = {}); + + // 20100603 添加本方法的第二个参数,将 options extend到event中去传递 + options = options || {}; + for (var i in options) { + event[i] = options[i]; + } + + var i, t = this.__listeners, p = event.type; + event.target = event.target || this; + event.currentTarget = this; + + p.indexOf("on") != 0 && (p = "on" + p); + + baidu.lang.isFunction(this[p]) && this[p].apply(this, arguments); + + if (typeof t[p] == "object") { + for (i in t[p]) { + t[p][i].apply(this, arguments); + } + } + return event.returnValue; + }; + + + baidu.lang.inherits = function (subClass, superClass, className) { + var key, proto, + selfProps = subClass.prototype, + clazz = new Function(); + + clazz.prototype = superClass.prototype; + proto = subClass.prototype = new clazz(); + for (key in selfProps) { + proto[key] = selfProps[key]; + } + subClass.prototype.constructor = subClass; + subClass.superClass = superClass.prototype; + + // 类名标识,兼容Class的toString,基本没用 + if ("string" == typeof className) { + proto._className = className; + } + }; + // 声明快捷方法 + baidu.inherits = baidu.lang.inherits; + })(); + + + /** + + * 图片的路径 + + * @private + * @type {String} + + */ + var _IMAGE_PATH = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m'; + + /** + + * 图片的后缀名 + + * @private + * @type {String} + + */ + var _IMAGE_EXTENSION = 'png'; + + /** + *@exports TextIconOverlay as BMapLib.TextIconOverlay + */ + var TextIconOverlay = + /** + * TextIconOverlay + * @class 此类表示地图上的一个覆盖物,该覆盖物由文字和图标组成,从Overlay继承。文字通常是数字(0-9)或字母(A-Z ),而文字与图标之间有一定的映射关系。 + *该覆盖物适用于以下类似的场景:需要在地图上添加一系列覆盖物,这些覆盖物之间用不同的图标和文字来区分,文字可能表示了该覆盖物的某一属性值,根据该文字和一定的映射关系,自动匹配相应颜色和大小的图标。 + * + *@constructor + *@param {Point} position 表示一个经纬度坐标位置。 + *@param {String} text 表示该覆盖物显示的文字信息。 + *@param {Json Object} options 可选参数,可选项包括:
                  + *"styles":{Array} 一组图标风格。单个图表风格包括以下几个属性:
                  + * url {String} 图片的url地址。(必选)
                  + * size {Size} 图片的大小。(必选)
                  + * anchor {Size} 图标定位在地图上的位置相对于图标左上角的偏移值,默认偏移值为图标的中心位置。(可选)
                  + * offset {Size} 图片相对于可视区域的偏移值,此功能的作用等同于CSS中的background-position属性。(可选)
                  + * textSize {Number} 文字的大小。(可选,默认10)
                  + * textColor {String} 文字的颜色。(可选,默认black)
                  + */ + BMapLib.TextIconOverlay = function(position, text, options){ + this._position = position; + this._text = text; + this._options = options || {}; + this._styles = this._options['styles'] || []; + (!this._styles.length) && this._setupDefaultStyles(); + }; + + T.lang.inherits(TextIconOverlay, BMap.Overlay, "TextIconOverlay"); + + TextIconOverlay.prototype._setupDefaultStyles = function(){ + var sizes = [53, 56, 66, 78, 90]; + for(var i = 0, size; size = sizes[i]; i++){ + this._styles.push({ + url:_IMAGE_PATH + i + '.' + _IMAGE_EXTENSION, + size: new BMap.Size(size, size) + }); + }//for循环的简洁写法 + }; + + /** + *继承Overlay的intialize方法,自定义覆盖物时必须。 + *@param {Map} map BMap.Map的实例化对象。 + *@return {HTMLElement} 返回覆盖物对应的HTML元素。 + */ + TextIconOverlay.prototype.initialize = function(map){ + this._map = map; + + this._domElement = document.createElement('div'); + this._updateCss(); + this._updateText(); + this._updatePosition(); + + this._bind(); + + this._map.getPanes().markerMouseTarget.appendChild(this._domElement); + return this._domElement; + }; + + /** + *继承Overlay的draw方法,自定义覆盖物时必须。 + *@return 无返回值。 + */ + TextIconOverlay.prototype.draw = function(){ + this._map && this._updatePosition(); + }; + + /** + *获取该覆盖物上的文字。 + *@return {String} 该覆盖物上的文字。 + */ + TextIconOverlay.prototype.getText = function(){ + return this._text; + }; + + /** + *设置该覆盖物上的文字。 + *@param {String} text 要设置的文字,通常是字母A-Z或数字0-9。 + *@return 无返回值。 + */ + TextIconOverlay.prototype.setText = function(text){ + if(text && (!this._text || (this._text.toString() != text.toString()))){ + this._text = text; + this._updateText(); + this._updateCss(); + this._updatePosition(); + } + }; + + /** + *获取该覆盖物的位置。 + *@return {Point} 该覆盖物的经纬度坐标。 + */ + TextIconOverlay.prototype.getPosition = function () { + return this._position; + }; + + /** + *设置该覆盖物的位置。 + *@param {Point} position 要设置的经纬度坐标。 + *@return 无返回值。 + */ + TextIconOverlay.prototype.setPosition = function (position) { + if(position && (!this._position || !this._position.equals(position))){ + this._position = position; + this._updatePosition(); + } + }; + + /** + *由文字信息获取风格数组的对应索引值。 + *内部默认的对应函数为文字转换为数字除以10的结果,比如文字8返回索引0,文字25返回索引2. + *如果需要自定义映射关系,请覆盖该函数。 + *@param {String} text 文字。 + *@param {Array} styles 一组图标风格。 + *@return {Number} 对应的索引值。 + */ + TextIconOverlay.prototype.getStyleByText = function(text, styles){ + var count = parseInt(text); + var index = parseInt(count / 10); + index = Math.max(0, index); + index = Math.min(index, styles.length - 1); + return styles[index]; + } + + /** + *更新相应的CSS。 + *@return 无返回值。 + */ + TextIconOverlay.prototype._updateCss = function(){ + var style = this.getStyleByText(this._text, this._styles); + this._domElement.style.cssText = this._buildCssText(style); + }; + + /** + *更新覆盖物的显示文字。 + *@return 无返回值。 + */ + TextIconOverlay.prototype._updateText = function(){ + if (this._domElement) { + this._domElement.innerHTML = this._text; + } + }; + + /** + *调整覆盖物在地图上的位置更新覆盖物的显示文字。 + *@return 无返回值。 + */ + TextIconOverlay.prototype._updatePosition = function(){ + if (this._domElement && this._position) { + var style = this._domElement.style; + var pixelPosition= this._map.pointToOverlayPixel(this._position); + pixelPosition.x -= Math.ceil(parseInt(style.width) / 2); + pixelPosition.y -= Math.ceil(parseInt(style.height) / 2); + style.left = pixelPosition.x + "px"; + style.top = pixelPosition.y + "px"; + } + }; + + /** + * 为该覆盖物的HTML元素构建CSS + * @param {IconStyle} 一个图标的风格。 + * @return {String} 构建完成的CSSTEXT。 + */ + TextIconOverlay.prototype._buildCssText = function(style) { + //根据style来确定一些默认值 + var url = style['url']; + var size = style['size']; + var anchor = style['anchor']; + var offset = style['offset']; + var textColor = style['textColor'] || 'black'; + var textSize = style['textSize'] || 10; + + var csstext = []; + if (T.browser["ie"] < 7) { + csstext.push('filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(' + + 'sizingMethod=scale,src="' + url + '");'); + } else { + csstext.push('background-image:url(' + url + ');'); + var backgroundPosition = '0 0'; + (offset instanceof BMap.Size) && (backgroundPosition = offset.width + 'px' + ' ' + offset.height + 'px'); + csstext.push('background-position:' + backgroundPosition + ';'); + } + + if (size instanceof BMap.Size){ + if (anchor instanceof BMap.Size) { + if (anchor.height > 0 && anchor.height < size.height) { + csstext.push('height:' + (size.height - anchor.height) + 'px; padding-top:' + anchor.height + 'px;'); + } + if(anchor.width > 0 && anchor.width < size.width){ + csstext.push('width:' + (size.width - anchor.width) + 'px; padding-left:' + anchor.width + 'px;'); + } + } else { + csstext.push('height:' + size.height + 'px; line-height:' + size.height + 'px;'); + csstext.push('width:' + size.width + 'px; text-align:center;'); + } + } + + csstext.push('cursor:pointer; color:' + textColor + '; position:absolute; font-size:' + + textSize + 'px; font-family:Arial,sans-serif; font-weight:bold'); + return csstext.join(''); + }; + + + /** + + * 当鼠标点击该覆盖物时会触发该事件 + + * @name TextIconOverlay#click + + * @event + + * @param {Event Object} e 回调函数会返回event参数,包括以下返回值: + + *
                  "type : {String} 事件类型 + + *
                  "target:{BMapLib.TextIconOverlay} 事件目标 + + * + + */ + + /** + + * 当鼠标进入该覆盖物区域时会触发该事件 + + * @name TextIconOverlay#mouseover + + * @event + * @param {Event Object} e 回调函数会返回event参数,包括以下返回值: + + *
                  "type : {String} 事件类型 + + *
                  "target:{BMapLib.TextIconOverlay} 事件目标 + + *
                  "point : {BMap.Point} 最新添加上的节点BMap.Point对象 + + *
                  "pixel:{BMap.pixel} 最新添加上的节点BMap.Pixel对象 + + * + + * @example 参考示例:
                  + + * myTextIconOverlay.addEventListener("mouseover", function(e) { alert(e.point); }); + + */ + + /** + + * 当鼠标离开该覆盖物区域时会触发该事件 + + * @name TextIconOverlay#mouseout + + * @event + + * @param {Event Object} e 回调函数会返回event参数,包括以下返回值: + + *
                  "type : {String} 事件类型 + + *
                  "target:{BMapLib.TextIconOverlay} 事件目标 + + *
                  "point : {BMap.Point} 最新添加上的节点BMap.Point对象 + + *
                  "pixel:{BMap.pixel} 最新添加上的节点BMap.Pixel对象 + + * + + * @example 参考示例:
                  + + * myTextIconOverlay.addEventListener("mouseout", function(e) { alert(e.point); }); + + */ + + + /** + * 为该覆盖物绑定一系列事件 + * 当前支持click mouseover mouseout + * @return 无返回值。 + */ + TextIconOverlay.prototype._bind = function(){ + if (!this._domElement){ + return; + } + + var me = this; + var map = this._map; + + var BaseEvent = T.lang.Event; + function eventExtend(e, be){ + var elem = e.srcElement || e.target; + var x = e.clientX || e.pageX; + var y = e.clientY || e.pageY; + if (e && be && x && y && elem){ + var offset = T.dom.getPosition(map.getContainer()); + be.pixel = new BMap.Pixel(x - offset.left, y - offset.top); + be.point = map.pixelToPoint(be.pixel); + } + return be; + }//给事件参数增加pixel和point两个值 + + T.event.on(this._domElement,"mouseover", function(e){ + me.dispatchEvent(eventExtend(e, new BaseEvent("onmouseover"))); + }); + T.event.on(this._domElement,"mouseout", function(e){ + me.dispatchEvent(eventExtend(e, new BaseEvent("onmouseout"))); + }); + T.event.on(this._domElement,"click", function(e){ + me.dispatchEvent(eventExtend(e, new BaseEvent("onclick"))); + }); + }; + +})(); diff --git a/assets/pages/scripts/tollFile/auditofToll/auditoftoll.css b/assets/pages/scripts/tollFile/auditofToll/auditoftoll.css new file mode 100755 index 0000000..f944c68 --- /dev/null +++ b/assets/pages/scripts/tollFile/auditofToll/auditoftoll.css @@ -0,0 +1,33 @@ +.ITD-complex-table thead tr:nth-of-type(2) th,.ITD-complex-table thead tr:nth-of-type(2) th,.ITD-complex-table thead tr:nth-of-type(3) th,.ITD-complex-table thead tr:nth-of-type(6) th{ + border-top: 1px solid #e7ecf1!important; +} +/*tab 切换*/ +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; + margin-bottom: 18px; + +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} + +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD; + color: #1E95CD; +} \ No newline at end of file diff --git a/assets/pages/scripts/tollFile/auditofToll/auditoftoll.html b/assets/pages/scripts/tollFile/auditofToll/auditoftoll.html new file mode 100755 index 0000000..611d8a3 --- /dev/null +++ b/assets/pages/scripts/tollFile/auditofToll/auditoftoll.html @@ -0,0 +1,233 @@ + +
                  +
                  +
                  +
                  +
                  + +
                  +
                  + +
                  +
                  + +
                  +
                  + +
                  + +
                  + 日期 +
                  + +
                  +
                  + +
                  +
                  +
                  查询
                  +
                  +
                  +
                  +
                  +
                  +
                  按日
                  +
                  按月
                  + +
                  +
                  +
                  +
                  +
                  + + +
                  +
                  +
                    +
                  • +
                      +
                    • 停车次数 (次)
                    • +
                    • + 0 +
                    • +
                      +
                    +
                  • +
                  • +
                    + 进场次数 + 0 +
                    +
                    + 出场次数 + 0 +
                    +
                    + 欠费次数 + 0 +
                    +
                    + - -- - + -- +
                    +
                    + - -- - + -- +
                    +
                  • +
                  +
                  +
                  +
                    +
                  • +
                      +
                    • 收费次数 (次)
                    • +
                    • + 0 +
                    • +
                      +
                    +
                  • +
                  • +
                    + 微信 + 0 +
                    +
                    + 支付宝 + 0 +
                    +
                    + 现金 + +
                    +
                    + 余额 + 0 +
                    +
                    + - -- - + -- +
                    +
                  • +
                  +
                  +
                  +
                    +
                  • +
                      +
                    • 实收金额 (元)
                    • +
                    • + 0.00 +
                    • +
                      +
                    +
                  • +
                  • +
                    + 微信 + 0.00 +
                    +
                    + 支付宝 + 0.00 +
                    +
                    + 现金 + 0.00 +
                    +
                    + 余额 + 0.00 +
                    +
                    + 补缴 + 0.00 +
                    +
                  • +
                  +
                  +
                  +
                    +
                  • +
                      +
                    • 收费率(实收/应收) (元)
                    • +
                    • + 0% +
                    • +
                      +
                    +
                  • +
                  • +
                    + 应收 + 0.00 +
                    +
                    + 实收 + 0.00 +
                    +
                    + 欠费 + 0.00 +
                    +
                    + 优惠 + 0.00 +
                    +
                    + - -- - + -- +
                    +
                  • +
                  +
                  +
                  + + +
                  +
                  +
                  +
                    +
                  • 详细记录
                  • +
                  • + +
                  • +
                  +
                  +
                  +
                  +
                  + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/tollFile/auditofToll/auditoftoll.js b/assets/pages/scripts/tollFile/auditofToll/auditoftoll.js new file mode 100755 index 0000000..c610037 --- /dev/null +++ b/assets/pages/scripts/tollFile/auditofToll/auditoftoll.js @@ -0,0 +1,1026 @@ + +var fun = { + init: function () { + commSelect.area_Pl_BA_LinkedSelect("#select_block","#select_park","#select_area"); + fun.dateInit(); + //收费员初始化 + fun.tollperInit(); + fun.monthdateInit(); + fun.createTableData(); +// fun.createparkTableData(); + fun.initSummaryFeeData(); + + }, + //收费员下拉框 + tollperInit:function () { + var data = fun.getChargerMsg(); + var htmls = ''; + var html = ''; + var chargerCodes = []; + for (var i = 0; i < data.length; i++) { + chargerCodes.push(data[i].chargerCode); + html += ""; + } + var chargerCodesStr = JSON.stringify(chargerCodes); + htmls = '' + html; + + $("#auditoftoll-parktoller").empty(); + $("#auditoftoll-parktoller").append(htmls); + $('#auditoftoll-parktoller').selectpicker('render'); + }, + //获取接口收费员信息 + getChargerMsg: function () { + var plNo = ""; + var chargers = ""; + var req = { + baseRequest: {pageNum: 1, pageSize: 0}, + plNo: plNo, + parkAreaCode: "", + groupCode: "", + onduty: "", + status: "", + nameOrNo: "", + orgId:fn.getOrgId(), + sysCode: sysComm.sysCode + }; + var opt = { + async: false, + data: JSON.stringify(req), + method: "POST", + url: dataUrl.util.queryCashierListInfo(), + success: function (res) { + if (res.code == '8888') { + chargers = JSON.stringify(res.data.rows); + } + } + } + sysAjax(opt); + return JSON.parse(chargers); + }, + //时间初始化 + dateInit: function () { + $('#auditoftoll-daterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#auditoftoll-daterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#auditoftoll-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + //结束日期 + $("#auditoftoll-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + monthdateInit: function () { + /** 月 时间初始化 **/ + $('#auditoftoll-monthdaterange-btnsta').val(moment().subtract('months', 1).format('YYYY-MM')); + //开始日期 + $("#auditoftoll-monthdaterange-btnsta").datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + + /*获取查询参数*/ + queryParamForBillManage: function () { + var chargerCodes = JSON.parse($("#auditoftoll-parktoller").val()); + if (chargerCodes.length < 0 || chargerCodes == null || chargerCodes == undefined || chargerCodes.length < 1 || chargerCodes.length > 1) { + chargerCodes = []; + } + var plNos = JSON.parse($("#select_park").val()); + if (plNos == null || plNos == undefined || plNos.length < 1) { + plNos.push("-1X"); + } + var berthRangeNos = JSON.parse($("#select_area").val()); + if (berthRangeNos == null || berthRangeNos == undefined || berthRangeNos.length < 1 || berthRangeNos.length > 1) { + berthRangeNos=[]; + } + /**统计分类 1、日 2、 月**/ + var timeType = 1; + /*开始时间*/ + var beginTime; + /*结束时间*/ + var endTime; + timeType = $("#queryType").val(); + if (1 == parseInt(timeType)) { + //日 + beginTime = $("#auditoftoll-daterange-btnsta").val(); + endTime = $("#auditoftoll-daterange-btnend").val(); + endTime = endTime + " 23:59:59"; + beginTime = beginTime + " 00:00:00"; + } else { + timeType = 2; + beginTime = $("#auditoftoll-monthdaterange-btnsta").val() + "-01 00:00:00"; + endTime = $("#auditoftoll-monthdaterange-btnsta").val(); + + var dates = endTime.split("-"); + if (dates[1] == '02') { + endTime = endTime + "-28 23:59:59"; + } else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07' + || dates[1] == '08' || dates[1] == '10' || dates[1] == '12') { + endTime = endTime + "-31 23:59:59"; + } else { + endTime = endTime + "-30 23:59:59"; + } + + } + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + var req = { + plNos: plNos, + berthRangeNos:berthRangeNos, + sourceCodes: chargerCodes, + beginTime: beginTime, + endTime: endTime, + sysCode :sysComm.sysCode + }; + //console.log(req); + return req; + }, + //card 4个 + initSummaryFeeData:function(){ + $("#all_totalNum").text("0"); + $("#park_inNum").text("0"); + $("#park_outNum").text("0"); + $("#park_qfNum").text("0"); + + $("#all_sfNum").text("0"); + $("#wx_sfNum").text("0"); + $("#alipay_sfNum").text("0"); + $("#xj_sfNum").text("0"); + $("#yue_sfNum").text("0"); + + $("#all__distotalFee").text("0.00"); + $("#park_wxFee").text("0.00"); + $("#park_alipayFee").text("0.00"); + $("#park_xjFee").text("0.00"); + $("#park_yueFee").text("0.00"); + $("#park_bjFee").text("0.00"); + + $("#all_payFee").text("0%"); + $("#park_yspayFee").text("0.00"); + $("#park_sspayFee").text("0.00"); + $("#park_qfpayFee").text("0.00"); + $("#park_yhpayFee").text("0.00"); + + var req=fun.queryParamForBillManage(); + + var opt = { + method: 'post', + url: dataUrl.util.queryChargerIncomeStatisticTotal(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data=res.data; + if(data !=null){ + $("#all_totalNum").text(commonObj.numberFormatter(data.parkOutOunt)); + $("#park_inNum").text(commonObj.numberFormatter(data.parkInOunt)); + $("#park_outNum").text(commonObj.numberFormatter(data.parkOutOunt)); + $("#park_qfNum").text(commonObj.numberFormatter(data.arrearageCount)); + + $("#all_sfNum").text(commonObj.numberFormatter(data.wxCount+data.aliCount+data.cashCount+data.balanceCount)); + $("#wx_sfNum").text(commonObj.numberFormatter(data.wxCount)); + $("#alipay_sfNum").text(commonObj.numberFormatter(data.aliCount)); + $("#xj_sfNum").text(commonObj.numberFormatter(data.cashCount)); + $("#yue_sfNum").text(commonObj.numberFormatter(data.balanceCount)); + + $("#all__distotalFee").text(commonObj.moneyFormatter(data.subTotalFee)); + $("#park_wxFee").text(commonObj.moneyFormatter(data.wxFee)); + $("#park_alipayFee").text(commonObj.moneyFormatter(data.aliFee)); + $("#park_xjFee").text(commonObj.moneyFormatter(data.cashFee)); + $("#park_yueFee").text(commonObj.moneyFormatter(data.balanceFee)); + $("#park_bjFee").text(commonObj.moneyFormatter(data.backFee)); + + $("#all_payFee").text(fun.ratioFormatter(data.subTotalFee,data.totalFee)); + $("#park_yspayFee").text(commonObj.moneyFormatter(data.totalFee)); + $("#park_sspayFee").text(commonObj.moneyFormatter(data.subTotalFee)); + $("#park_qfpayFee").text(commonObj.moneyFormatter(data.arrearageFee)); + $("#park_yhpayFee").text(commonObj.moneyFormatter(data.dicountFee)); + + } + } + } + }; + sysAjax(opt); + + }, + + createTableData: function () { + $('#auditoftolltable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + [ + { + field: 'chargerCode', + title: '编号', + align: 'left', + rowspan: 2, + valign: "middle", + }, + { + field: 'chargerName', + title: '姓名', + align: 'left', + rowspan: 2, + valign: "middle", + }, + { + field: 'plName', + title: '车场名称', + align: 'left', + rowspan: 2, + valign: "middle", + }, + { + field: 'berthRangeName', + title: '泊位区间', + align: 'left', + rowspan: 2, + valign: "middle", + }, + { + field: 'totalFee', + title: '停车次数', + valign: "middle", + align: 'center', + colspan: 4, + rowspan: 1, + width: '10%', + }, + { + field: 'totalFee', + title: '收费次数', + valign: "middle", + align: 'center', + colspan: 4, + rowspan: 1, + width: '10%', + }, + + { + field: 'totalFee', + title:'应收金额', + valign: "middle", + align: "left", + rowspan: 2, + formatter: commonObj.moneyFormatter + }, + { + field: '', + title: '欠费金额', + valign: "middle", + align: 'center', + colspan: 2, + rowspan: 1, + //width: '10%', + //formatter: commonObj.moneyFormatter + }, + { + field: '', + title:'实收金额', + valign: "middle", + align: "center", + colspan: 8, + rowspan: 1, + //formatter: commonObj.moneyFormatter + }, + { field: 'dicountFee', + title: '优惠金额', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, +// { +// field: 'dicountFee', +// title: '收费率', +// valign: "middle", +// align: 'left', +// rowspan: 2, +// width: '10%', +// formatter: fun.rateFormatter +// }, + { + field: 'dicountFee', + title: '欠费率', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + formatter: fun.arreargeRateFormatter + }, + { + field: 'dicountFee', + title: '线上支付率', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + formatter: fun.onLinePayRateFormatter + }, + + + ], + [ + + { + field: 'parkInOunt', + title: '进场次数', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'parkOutOunt', + title: '出场次数', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'arrearageCountOn', + title: '18点之前欠费次数', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'arrearageCountOff', + title: '18点之后欠费次数', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'wxCount', + title: '微信', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'aliCount', + title: '支付宝', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'cashCount', + title: '现金', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'balanceCount', + title: '余额', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + + { + field: 'arrearageFeeOn', + title: '18点之前欠费金额', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'arrearageFeeOff', + title: '18点之后欠费金额', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'balanceFee', + title: '余额', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'appBackFee', + title: 'APP补缴', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'pdaBackFee', + title: 'PDA补缴', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'backFee', + title: '总补缴', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'subTotalFee', + title: '小计', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + + ], + + + ] + }); + + }, + createparkTableData: function () { + $('#auditoftolltable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns: true, + // fixedNumber: 1, + // leftFixedColumns: true, + // leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: parkTableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + [ + { + field: 'plName', + title: '车场名称', + align: 'left', + rowspan: 2, + valign: "middle", + }, + { + field: 'totalFee', + title: '停车次数', + valign: "middle", + align: 'center', + colspan: 4, + rowspan: 1, + width: '10%', + }, + { + field: 'totalFee', + title: '收费次数', + valign: "middle", + align: 'center', + colspan: 4, + rowspan: 1, + width: '10%', + }, + + { + field: 'totalFee', + title:'应收金额', + valign: "middle", + align: "left", + rowspan: 2, + formatter: commonObj.moneyFormatter + }, + { + field: '', + title: '欠费金额', + valign: "middle", + align: 'center', + colspan: 2, + rowspan: 1, + //width: '10%', + //formatter: commonObj.moneyFormatter + }, + { + field: '', + title:'实收金额', + valign: "middle", + align: "center", + colspan: 8, + rowspan: 1, + //formatter: commonObj.moneyFormatter + }, + { field: 'dicountFee', + title: '优惠金额', + align: 'left', + rowspan: 2, + width: '10%', + valign: "middle", + formatter: commonObj.moneyFormatter + }, +// { +// field: 'dicountFee', +// title: '收费率', +// valign: "middle", +// align: 'left', +// rowspan: 2, +// width: '10%', +// formatter: fun.rateFormatter +// }, + { + field: 'dicountFee', + title: '欠费率', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + formatter: fun.arreargeRateFormatter + }, + { + field: 'dicountFee', + title: '线上支付率', + valign: "middle", + align: 'left', + rowspan: 2, + width: '10%', + formatter: fun.onLinePayRateFormatter + }, + + + ], + [ + + { + field: 'parkInOunt', + title: '进场次数', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'parkOutOunt', + title: '出场次数', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'arrearageCountOn', + title: '18点之前欠费次数', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'arrearageCountOff', + title: '18点之后欠费次数', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'wxCount', + title: '微信', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'aliCount', + title: '支付宝', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'cashCount', + title: '现金', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'balanceCount', + title: '余额', + width: '10%', + align: "left", + formatter: commonObj.numberFormatter + }, + + { + field: 'arrearageFeeOn', + title: '18点之前欠费金额', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'arrearageFeeOff', + title: '18点之后欠费金额', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'wxFee', + title: '微信', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'aliFee', + title: '支付宝', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'cashFee', + title: '现金', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'balanceFee', + title: '余额', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'appBackFee', + title: 'APP补缴', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'pdaBackFee', + title: 'PDA补缴', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'backFee', + title: '总补缴', + width: '10%', + align: "left", + formatter: commonObj.moneyFormatter + }, + { + field: 'subTotalFee', + title: '小计', + width: '10%', + align: "left", + formatter:commonObj.moneyFormatter + }, + + ], + + + ] + }); + + }, + rateFormatter:function(value,row,index){ + if(row.totalFee == null || row.totalFee < 1){ + return '0.00%'; + } + return ((row.subTotalFee/(row.totalFee<1?1:row.totalFee))*100).toFixed(2)+'%'; + }, + ratioFormatter:function(value1,value2){ + return ((value1/(value2<1?1:value2))*100).toFixed(2)+'%'; + }, + //新增欠费率和线上支付率 + arreargeRateFormatter:function(value,row,index){ + var totalCount = row.parkOutOunt - row.arrearageCountOff; +// var totalCount = row.wxCount+row.aliCount+row.cashCount+row.balanceCount - row.arrearageCountOff; + if(totalCount == undefined ||totalCount == null || totalCount < 1){ + return '0.00%'; + } + //欠费率 = 18点前欠费订单数/总订单数(不包括补缴订单数量、18点后批量出场订单数)。 + + + var arreargeCount = row.arrearageCountOn; + return (((arreargeCount<1?0:arreargeCount)/(totalCount<1?1:totalCount))*100).toFixed(2)+'%'; + }, + onLinePayRateFormatter:function(value,row,index){ + var totalCount = row.parkOutOunt - row.arrearageCountOff; +// var totalCount = row.wxCount+row.aliCount+row.cashCount+row.balanceCount - row.arrearageCountOff; + if(totalCount == undefined || totalCount == null || totalCount < 1){ + return '0.00%'; + } + //线上支付率 = 微信、支付宝、余额支付订单数(不包括补缴订单)/总订单数(不包括补缴订单数、18点后批量出场订单数)。 + + var onLineCount = (row.wxCount + row.aliCount + row.balanceCount); + return (((onLineCount<1?0:onLineCount)/(totalCount<1?1:totalCount))*100).toFixed(2)+'%'; + } + +}; +fun.init(); + +//查询 +documentBindFunc.on('click', '#auditoftoll-queryBtn', function () { + fun.createTableData(); + fun.initSummaryFeeData(); +}); +//切换 搜索部分 是否生效 +documentBindFunc.on('click', "#auditoftoll-toptab div.ITD-graynav-topbar", function () { + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + //console.log(index); + //切换完后,调用查询表格 + // fun.createTableData(); + +}); +//日月切换 点击事件 +//日 点击 +documentBindFunc.on('click', '#auditoftolldayType', function () { + $('.auditoftoll-choosedateday').removeClass('display-none'); + $('.auditoftoll-choosedatemonth').addClass('display-none'); + $('#queryType').attr('data-value', '1'); + $("#queryType").val(1); + fun.createTableData(); + fun.initSummaryFeeData(); +}); +//月 点击 +documentBindFunc.on('click', '#auditoftollmonthType', function () { + $('.auditoftoll-choosedatemonth').removeClass('display-none'); + $('.auditoftoll-choosedateday').addClass('display-none'); + $('#queryType').attr('data-value', '2'); + $("#queryType").val(2); + fun.createTableData(); + fun.initSummaryFeeData(); +}); + +//切换 全部 有差异 无差异 +$('#tab-btn-wrap li').on('click', function () { + //因后面逻辑需要,一定要线切换 tabAction 样式, 然后在调用 对应的函数 + $(this).addClass('tabAction').siblings().removeClass('tabAction'); + var tabIndex = $('#tab-btn-wrap li.tabAction').index(); + if (tabIndex == 0) { + fun.createTableData(); + }else { + fun.createparkTableData(); + } + // inexpfun.inexpcreateTableData(); +}); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.queryParamForBillManage(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + var opt = { + method: 'post', + url: dataUrl.util.queryChargerIncomeStatisticList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function parkTableLoadRequest(params) { + var req = fun.queryParamForBillManage(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + var opt = { + method: 'post', + url: dataUrl.util.queryChargerIncomeStatisticListForPark(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#auditoftoll_repBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#auditoftoll_repBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#auditoftoll_repBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#auditoftoll_repBtn").val("导出"); + } + else { + curCount--; + $("#auditoftoll_repBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#auditoftoll_repBtn',function (){ + //获取table所有行数据 + var parkLot = $("#auditoftolltable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#auditoftolltable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + var req = fun.queryParamForBillManage(); + var beginTime = DateUtils.long2String(req.beginTime, 7); + var endTime = DateUtils.long2String(req.endTime, 7); + var orgId = fn.getOrgId(); + var url = dataUrl.util.exportChargerIncomeStatisticList(); + var forms = exportIncomeDetailFormforauditoftoll(url, beginTime, endTime, req.sourceCodes, req.sysCode,orgId, req.plNos, req.berthRangeNos + ); + forms.submit(); +}); + + + + +function exportIncomeDetailFormforauditoftoll(url, beginTime, endTime, sourceCodes, sysCode,orgId,plNos,berthRangeNos +) { + + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + //input.type = "hidden"; + input.name = "beginTime"; + input.value = beginTime; + form.appendChild(input); + + var input2 = document.createElement("input"); + input2.name = "endTime"; + input2.value = endTime; + form.appendChild(input2); + + var input3 = document.createElement("input"); + input3.name = "sourcCodes"; + input3.value = sourceCodes; + form.appendChild(input3); + + var input4 = document.createElement("input"); + input4.name = "sysCode"; + input4.value = sysCode; + form.appendChild(input4); + + + var input16 = document.createElement("input"); + input16.name = "orgId"; + input16.value = orgId; + form.appendChild(input16); + + var input17 = document.createElement("input"); + input17.name = "plNos"; + input17.value = plNos; + form.appendChild(input17); + + var input18 = document.createElement("input"); + input18.name = "berthRangeNos"; + input18.value = berthRangeNos; + form.appendChild(input18); + + return form; + + + +}; \ No newline at end of file diff --git a/assets/pages/scripts/tollFile/cashierAudit/cashieraudit.css b/assets/pages/scripts/tollFile/cashierAudit/cashieraudit.css new file mode 100755 index 0000000..ddb44f8 --- /dev/null +++ b/assets/pages/scripts/tollFile/cashierAudit/cashieraudit.css @@ -0,0 +1,93 @@ +/*topbar--------------*/ +.ITD-padding-24 .queryBtnGroup div:first-child { + margin-right: 15px; +} +/*echarts 地磁周转*/ +.casaudit-qbtcc-box { + width: 100%; + height: 260px; + position: relative; +} +.casaudit-qbtcc-chart{ + position: absolute; + left: 0; + top:0; + right: 0; + bottom: 0; +} +.casaudit-qbtcc-chart-title { + top:50%; + left:50%; + transform: translate(-50%,-50%); + text-align: center; +} +.casaudit-qbtcc-chart-title div:nth-of-type(1){ + font-size: 22px; + color: rgba(0,0,0,.8); +} +.casaudit-qbtcc-chart-title div:nth-of-type(2){ + font-size: 12px; + color: rgba(0,0,0,.45); +} +.cashieraudit-line-echarts{ + height: 260px; +} +/* new topbar */ +.casaudit-parking-l { + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} + +.casaudit-ITD-model-contbody{ + padding: 0 !important; +} +.casauditfoot-opentable{ + max-height: 300px; + overflow-y: auto; +} +/*table 切换*/ +.tab-btn-wrap{ + height: 32px; + margin-bottom: 20px; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD !important; + color: #1E95CD; +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; +} +.pop_echarts{ + padding: 0 20px; + font-size: 14px; + text-align: center; + border-radius: 20px !important; +} +.fixed-table-container tbody td .th-inner, .fixed-table-container thead th .th-inner{ + padding: 6px 10px 6px 12px !important; +} +.bootstrap-table .table:not(.table-condensed), .bootstrap-table .table:not(.table-condensed)>tbody>tr>td, .bootstrap-table .table:not(.table-condensed)>tbody>tr>th, .bootstrap-table .table:not(.table-condensed)>tfoot>tr>td, .bootstrap-table .table:not(.table-condensed)>tfoot>tr>th, .bootstrap-table .table:not(.table-condensed)>thead>tr>td{ + padding: 0 0 0 12px !important; + +} \ No newline at end of file diff --git a/assets/pages/scripts/tollFile/cashierAudit/cashieraudit.html b/assets/pages/scripts/tollFile/cashierAudit/cashieraudit.html new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/tollFile/cashierAudit/cashieraudit.html diff --git a/assets/pages/scripts/tollFile/cashierAudit/cashieraudit.js b/assets/pages/scripts/tollFile/cashierAudit/cashieraudit.js new file mode 100755 index 0000000..c1d62b4 --- /dev/null +++ b/assets/pages/scripts/tollFile/cashierAudit/cashieraudit.js @@ -0,0 +1,1018 @@ +//导出功能 +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; +var casauditfun= { + init:function () { + //办事处初始化 + //停车场初始化 + casauditfun.initParkBlock(); + //收费员初始化 + $('#casaudit-person').selectpicker('render'); + //块下拉框变化,停车场下拉框变化 + casauditfun.queryBlockChange(); + //停车场下拉框变化,收费员下拉框变化 + casauditfun.queryParkChange(); + /** 时间初始化 **/ + $('#casaudit-daterange-btnsta').val(moment().subtract('days',0).format('YYYY-MM-DD')); + $('#casaudit-daterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#casaudit-daterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#casaudit-daterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + + //饼图 统计 + queryPdaAndEqpTypeNums(); + //柱形图 echarts + queryInputNumsByTimes(); + //折线图 echarts + queryEqpAndPdaTimesForLine(); + // table + casauditfun.casauditcreateTableData(); + + }, + //导出函数 + exportEqpInOutParkAllStatisticExcel:function(){ + //校验日期 + var req = casauditfun.getQueryParam(); + var datesta = $("#casaudit-daterange-btnsta").val(); + var dateend = $("#casaudit-daterange-btnend").val(); + var beginTime = datesta+" 00:00:00"; + var endTime=dateend+" 23:59:59"; + var plBlockIds = JSON.parse($("#casaudit-plAreaBlockIds").val()); + var plnos = $("#casaudit-parkIds").val(); + var plNos = new Array(); + if(plnos==null||plnos==''){ + plNos.push("-1X"); + } + else{ + plNos = JSON.parse(plnos); + } + var chargerCodes = JSON.parse($("#casaudit-plAreaBlockIds").val()); + var url = dataUrl.util.exportEqpAndPdaReportTimeList() + '?chargerCodes=' + req.chargerCodes + '&entryType=' + req.entryType + '&inOutState=' + req.inOutState + '&plNos=' + req.plNos + '&plBlockIds=' + req.plBlockIds + '&beginTime=' + beginTime + '&endTime=' + endTime +'&sysCode='+sysComm.sysCode; + window.downloadFile(url); + }, + + //停车区域-块 + initParkBlock: function () { + var data = fn.getParkBlock(); + var html = ''; + var htmls = ''; + var blockIds = [-1]; + for (var i = 0; i < data.length; i++) { + blockIds.push(data[i].code); + html += ""; + } + var blockIdsStr = JSON.stringify(blockIds); + htmls = '' + html; + + $("#casaudit-plAreaBlockIds").empty(); + + $("#casaudit-plAreaBlockIds").append(htmls); + $('#casaudit-plAreaBlockIds').selectpicker('render'); + //加载下拉框 + casauditfun.initParkSelect(); + + }, + //根据块信息查询停车场信息 + initParkSelect:function(){ + //停车场下拉框 + var data = casauditfun.getParkingLotMsg(); + var htmls = ''; + var html = ''; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].plNo); + html += ""; + } + var plnosStr = JSON.stringify(plNos); + htmls = '' + html; + + $("#casaudit-parkIds").empty(); + $("#casaudit-parkIds").append(htmls); + $('#casaudit-parkIds').selectpicker('refresh'); + + /*$("#parkIds1").empty(); + $("#parkIds1").append(htmls); + $('#parkIds1').selectpicker('refresh');*/ + //收费员初始化 + casauditfun.initChargerSelect(); + + }, + //根据停车场编号查询收费员信息 + initChargerSelect:function(){ + //停车场下拉框 + var data = casauditfun.getChargerMsg(); + var htmls = ''; + var html = ''; + var chargerCodes = []; + for (var i = 0; i < data.length; i++) { + chargerCodes.push(data[i].chargerCode); + html += ""; + } + var chargerCodesStr = JSON.stringify(chargerCodes); + htmls = '' + html; + + $("#casaudit-person").empty(); + $("#casaudit-person").append(htmls); + $('#casaudit-person').selectpicker('refresh'); + + }, + getParkingLotMsg:function(){ + var plAreaBlockIds; + plAreaBlockIds = JSON.parse($("#casaudit-plAreaBlockIds").val()); + var parkLot = ""; + var req = { + sysCode:sysComm.sysCode, + areaBlockIds: plAreaBlockIds + }; + var opt = { + async: false, + data:JSON.stringify(req), + method: "POST", + //contentType:"application/x-www-form-urlencoded; charset=UTF-8", + url: dataUrl.util.getParkListByBlockIds(), + success: function (res) { + if (res.code == '8888') { + parkLot = JSON.stringify(res.data); + } + } + } + sysAjax(opt); + return JSON.parse(parkLot); + }, + getChargerMsg:function(){ +// var plNos; +// plNos = JSON.parse($("#casaudit-parkIds").val()); +// var plNo = ""; +// if (plNos.length > 1) { +// plNo = ""; +// } else { +// plNo = plNos[0]; +// } + var chargers = ""; + var req = { + baseRequest:{pageNum: 1, pageSize: 0}, + plNo: null, + parkAreaCode: "", + groupCode: "", + onduty: "", + status: "", + nameOrNo: "", + orgId:fn.getOrgId(), + sysCode: sysComm.sysCode + }; + var opt = { + async: false, + data:JSON.stringify(req), + method: "POST", + url: dataUrl.util.queryCashierListInfo(), + success: function (res) { + if (res.code == '8888') { + chargers = JSON.stringify(res.data.rows); + } + } + } + sysAjax(opt); + return JSON.parse(chargers); + }, + //块改变查询停车场 + queryBlockChange:function(){ + $("#casaudit-plAreaBlockIds").change(function(){ + casauditfun.initParkSelect(); + }); + }, + //停车场改变查询收费员 + queryParkChange:function(){ + $("#casaudit-parkIds").change(function(){ +// casauditfun.initChargerSelect(); + }); + }, + /*获取查询参数*/ + getQueryParam: function() { + var plBlockIds = JSON.parse($("#casaudit-plAreaBlockIds").val()); + var plNos = []; + var plnos = $("#casaudit-parkIds").val(); + if(plnos==null||plnos==''){ + plNos.push("-1X"); + } + else{ + plNos = JSON.parse(plnos); + } + var chargerCodes = []; + var chargercodes = $("#casaudit-person").val(); + if(chargercodes==null||chargercodes==''){ + chargerCodes.push("-1X"); + } + else{ + chargerCodes = JSON.parse(chargercodes); + } + if(chargerCodes.length > 1){ + chargerCodes = []; + } + var datesta = $("#casaudit-daterange-btnsta").val(); + var dateend = $("#casaudit-daterange-btnend").val(); + var beginTime = datesta+" 00:00:00"; + var endTime=dateend+" 23:59:59"; + //进出场状态 进场-1 出场-0 全部--1 + var inOutState = $("#cashieraudit-toptab .ITD-graynav-topbaractive").attr('value'); + if(inOutState == null || inOutState==''){ + inOutState = -1; + } + //折线图 0-按小时统计 1-按天统计 + var timeType = 1;//默认按天 + if(datesta == dateend){//按小时 + timeType = 0; + } + //详情列表 0-未录入 1-录入 -1-全部 + var entryType = -1; + entryType = $("#tab-btn-wrap .tabAction").attr('value'); + var req = { + sysCode: sysComm.sysCode, + plBlockIds: plBlockIds, + plNos: plNos, + chargerCodes:chargerCodes, + beginTime: new Date(beginTime.replace(new RegExp(/-/gm) ,"/")), + endTime: new Date(endTime.replace(new RegExp(/-/gm) ,"/")), + inOutState:inOutState, + timeType:timeType, + entryType:entryType, + inType:1, + outType:1 + }; + + return req; + }, + lineecharts:function (data) { + var eqpTimes=[]; + var pdaTimes=[]; + var staticTime=[]; + var timeType = casauditfun.getQueryParam().timeType; + + if(data != null && data.length > 0){ + $.each(data, function(index,item) { + eqpTimes.push(item.eqpTimes); + pdaTimes.push(item.pdaTimes); + if(timeType == 0){ + staticTime.push((item.staticTime).substr(10,12)+':00'); + }else{ + staticTime.push((item.staticTime).substr(5,10)); + } + + }); + } + var incomeecharts = echarts.init(document.getElementById('cashieraudit-line-echarts')); + var incomeoption = { + color:['#1e95cd','#5fe98f'], + tooltip: { + trigger: 'axis' + }, + legend: { + right: '2%', + top: '0', + textStyle: { + color: '#888990', + }, + itemWidth: 18, + itemHeight: 10, + data: ['设备上报次数', '设备录入次数'] + }, + grid: { + top: '13%', + left: '1%', + right: '2%', + bottom: '2%', + containLabel: true + }, + + xAxis: { + type: 'category', + boundaryGap: true, + data:staticTime, + + axisLabel: { + // interval:2, + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + // splitNumber:10, + // minInterval:2, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + + }, + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + axisLabel: { //调整y轴的lable + textStyle: { + color: 'rgba(0,0,0,0.5)', + } + }, + axisTick: { + show: false + }, + + axisLine: { + lineStyle: { + color: 'rgba(0,0,0,0.1)', + width: 1,//这里是为了突出显示加上的 + } + }, + splitLine:{ + lineStyle:{ + // type:'dashed', + color:'rgba(0,0,0,0.1)', + } + } + }, + series: [ + { + name: '设备上报次数', + type: 'line', + // symbol:'none', + // smooth:true, + data:eqpTimes, + // data:[4,1,6,2,9,4,1,6,2,9,8,1], + itemStyle : { + normal : { + lineStyle:{ + color:'#f0f0f2', + } + } + }, + areaStyle: { + normal: { + color: '#1e95cd', + opacity:.2 + } + }, + lineStyle: { + normal: { + color:'#1e95cd', + width:2, + } + } + }, + { + name: '设备录入次数', + type: 'line', + // symbol:'none', + // smooth:true, + data:pdaTimes, + // data:[43,13,26,24,93,4,1,6,2,9,8,1], + itemStyle : { + normal : { + lineStyle:{ + color:'#f0f0f2', + } + } + }, + areaStyle: { + normal: { + color: '#5fe98f', + opacity:.2 + } + }, + lineStyle: { + normal: { + color:'#5fe98f', + width:2, + } + } + }, + + ] + }; + + incomeecharts.setOption(incomeoption, true); + }, + //饼图 统计 + casauditPDAandGeodata:function (data) { + var eqpTimes = (data.eqpTimes == null ? 0 : data.eqpTimes); + var pdaTimes = (data.pdaTimes == null ? 0 : data.pdaTimes); + var pdaRate = (pdaTimes*100/eqpTimes).toFixed(0); + if(isNaN(pdaRate)){ + pdaRate = 0; + } + $("#pdaRate").html(pdaRate+'%'); + var parlAllchart = echarts.init(document.getElementById('casaudit-parkAll-chart')); + // 指定图表的配置项和数据 + var topleftoption = { + color:['rgba(254,200,77,1)','#5fe98f',], + tooltip: { + trigger: 'item', + formatter: "{a}
                  {b}: {c} ({d}%)" + }, + // legend: { + // orient: 'vertical', + // right:'1%', + // top:'3%', + // selectedMode:false, + // textStyle: { + // color: 'rgba(0,0,0,0.5)', + // fontSize:'12px', + // fontFamily:'微软雅黑' + // }, + // itemWidth:16, + // itemHeight:10, + // data:['一致','不一致'] + // }, + + series: [ + { + name:'设备上报与设备录入信息', + type:'pie', + radius: ['60%', '70%'], + avoidLabelOverlap: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[ + {value:eqpTimes-pdaTimes, name:'设备未录入次数'}, + {value:pdaTimes, name:'设备录入次数'}, + ] + + } + ] + }; + + parlAllchart.setOption(topleftoption,true); + parlAllchart.resize(); + }, + //柱形图 echarts + casauditRecordNum:function (data) { + var lineecharts = echarts.init(document.getElementById('casaudit-topright-echarts')); + var lineoption = { + color:['#1e95cd'], + tooltip : { + trigger: 'axis', + axisPointer : { // 坐标轴指示器,坐标轴触发有效 + type : 'shadow' // 默认为直线,可选为:'line' | 'shadow' + } + }, + legend: { + itemHeight:10, + right: '10', + top:'0', + data: ['5分钟','10分钟','20分钟','30分钟','30分钟以上'] + //data: ['大华','华赛','烽火'] + }, + grid: { + top: '13%', + left: '1%', + right: '2%', + bottom: '2%', + containLabel: true + }, + xAxis : [ + { + type : 'category', + data: ['5分钟','10分钟','20分钟','30分钟','30分钟以上'], + axisLabel: { + // interval:2, + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + axisTick: { + show: false + }, + } + ], + yAxis: { + type: 'value', + axisLabel: { + show: true, + textStyle: { + color: 'rgba(0,0,0,0.5)', + fontSize:'12px', + fontFamily:'微软雅黑' + } + }, + axisTick: { + show: false, + }, + splitLine:{ + lineStyle:{ + color:'rgba(0,0,0,0.1)', + } + }, + + axisLine: { + show: true, + lineStyle: { + color: 'rgba(0,0,0,0.1)', + // width: 1,//这里是为了突出显示加上的 + } + }, + }, + series : [ + { + name:'录入次数', + type:'bar', + barWidth: '20%', + itemStyle : { + normal : { + lineStyle:{ + color:'#f0f0f2', + } + } + }, + areaStyle: { + normal: { + color: '#1e95cd', + opacity: .2 + } + }, + lineStyle: { + normal: { + color: '#1e95cd', + width: 2, + } + }, + data:[data.fiveMinNums, data.tenMinNums, data.twentyMinNums, data.thirtyMinNums, data.overThirtyMinNums] + } + ], + }; + lineecharts.setOption(lineoption,true); + lineecharts.resize(); + }, + //默认生成表格数据 + casauditcreateTableData: function() { + $('#casauditrecordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: casaudittableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + rowStyle:casauditfun.markTheTable, + columns: [ + { + field: 'plName', + title: '车场名称', + width: '10%', + visible: true, + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'parkAreaName', + title: '泊位区间', + width: '10%', + visible: true, + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'eqpNo', + title: '设备编码', + width: '10%', + visible: true, + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'eqpReportTime', + title: '设备上报时间', + width: '10%', + visible: true, + align: 'left', + formatter:commonObj.timeFormatter, + }, + { + field: 'pdaReportTime', + title: '设备录入时间', + width: '10%', + align: 'left', + formatter:commonObj.timeFormatter, + + }, + + { + field: 'berthNo', + title: '泊位编号', + width: '5%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'chargerName', + title: '收费员', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'timeDuration', + title: '间隔时间', + width: '10%', + align: 'left', + formatter:casauditfun.formatSeconds, + }, + + ] + }); + }, + markTheTable:function (value,row, index) { + //这里有5个取值代表5中颜色['active', 'success', 'info', 'warning', 'danger']; + var strclass = ""; + if (value.timeDuration == null || value.timeDuration > 15*60 || value.pdaReportTime == null) { + strclass = 'danger'; + } + else { + strclass = ''; + } + return { classes: strclass } + }, + formatSeconds:function(value) { + if(value == null){ + return "-"; + } + var theTime = parseInt(value);// 秒 + var theTime1 = 0;// 分 + var theTime2 = 0;// 小时 + var theTime3 = 0;//天 + if (theTime < 60) { + return theTime + '秒'; + } + if (theTime > 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); + + + } + + if (theTime1 > 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + } + + if (theTime2 > 24) { + theTime3 = parseInt(theTime2 / 24); + theTime2 = parseInt(theTime2 % 24); + } + + var result = ''; + if (theTime1 == 0 && theTime2 == 0 && theTime3 == 0) { + result = parseInt(theTime) + "秒" + } + if (theTime > 0) { + result = "" + parseInt(theTime) + "秒" + result; + } + if (theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if (theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + + if (theTime3 > 0) { + result = "" + parseInt(theTime3) + "天" + result; + } + return result; + }, + isOnlineFormatter:function(value){ + if(value==null){ + return ""; + } + else if(value == "0"){ + return "在线"; + } + else if(value == "1"){ + return "离线"; + } + else{ + return "故障"; + } + }, + +}; + +casauditfun.init(); + +//切换 搜索部分 是否生效 +documentBindFunc.on('click', "#cashieraudit-toptab div.ITD-graynav-topbar", function () { + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + //切换完后,查询echarts 表格数据 + $("#casaudit-qerBtn").click(); + +}); + +//切换 录入 未录入 +documentBindFunc.on('click','#tab-btn-wrap li',function () { + var _index = $(this).index(); + if(_index==0){ + // cllEcharts(chartData); + }else if(_index==1){ + // zylEcharts(chartData); + } + $(this).addClass('tabAction').siblings().removeClass('tabAction'); + casauditfun.casauditcreateTableData() +}); + +//查询按钮 +$(document).on('click', '#casaudit-qerBtn', function() { +// var datesta = $("#casaudit-daterange-btnsta").val(); +// var dateend = $("#casaudit-daterange-btnend").val(); +// var beginTime = datesta+" 00:00:00"; +// var endTime=dateend+" 23:59:59"; +// // beginTime = new Date(beginTime.replace(new RegExp(/-/gm) ,"/")); + //饼图 统计 + queryPdaAndEqpTypeNums(); + //柱形图 echarts + queryInputNumsByTimes(); + //折线图 echarts + queryEqpAndPdaTimesForLine(); + // table + casauditfun.casauditcreateTableData(); +}); + +//饼图ajax +function queryPdaAndEqpTypeNums(){ + var req = casauditfun.getQueryParam(); + var opt = { + method: 'post', + url: dataUrl.util.queryPdaAndEqpTypeNums(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log("图1:",res); + if(res.code == '8888') { + var data = res.data; + casauditfun.casauditPDAandGeodata(data); + } + else{ + + return; + } + } + }; + sysAjax(opt); +} +//柱状图图ajax +function queryInputNumsByTimes(){ + var req = casauditfun.getQueryParam(); + var opt = { + method: 'post', + url: dataUrl.util.queryInputNumsByTimes(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log("图2:",res); + if(res.code == '8888') { + var data = res.data; + casauditfun.casauditRecordNum(data); + } + else{ + + return; + } + } + }; + sysAjax(opt); +} +//折线图ajax +function queryEqpAndPdaTimesForLine(){ + var req = casauditfun.getQueryParam(); + var opt = { + method: 'post', + url: dataUrl.util.queryEqpAndPdaTimesForLine(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log("图3:",res); + if(res.code == '8888') { + var data = res.data; + casauditfun.lineecharts(data); + } + else{ + + return; + } + } + }; + sysAjax(opt); +} +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function casaudittableLoadRequest(params) { + var req = casauditfun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryEqpAndPdaReportTimeList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log("图4:",res); + if(res.code == '8888') { + params.success(res.data); + } + else{ + + } + } + }; + sysAjax(opt); +} +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#exportPark").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#exportPark").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#exportPark").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#exportPark").val("导出"); + } + else { + curCount--; + $("#exportPark").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#exportPark',function (){ + //获取table所有行数据 + var parkLot = $("#casauditrecordtable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#casauditrecordtable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + casauditfun.exportEqpInOutParkAllStatisticExcel(); +}); \ No newline at end of file diff --git a/assets/pages/scripts/tollFile/chargeFile/chargesign.css b/assets/pages/scripts/tollFile/chargeFile/chargesign.css new file mode 100755 index 0000000..b1a1e57 --- /dev/null +++ b/assets/pages/scripts/tollFile/chargeFile/chargesign.css @@ -0,0 +1,176 @@ +/*card */ +.card_row{ + width: 49%; + height: 101px; + float: left; +} +.cardall_bg{ + background: url("toll_qdcard_all.png") no-repeat; + height: 42px; + width: 44px; + margin-top: 7px; + margin-left: 6px; + float: left; +} +.cardall_bgtit{ + margin-top: 24px; + margin-left: 12px; + line-height: 16px; + width:48px; + height:16px; + font-size:16px; + font-weight:400; + float: left; +} +.cardall_per{ + margin-top: 25px; + margin-right: 8px; + width:10px; + height:11px; + font-size:10px; + font-weight:400; + color:rgba(0,0,0,1); +} +.cardall_num{ + width: 100px; + padding-right: 4px; + margin-top: 12px; + height:30px; + line-height: 30px; + font-size:28px; + font-weight:400; + color:rgba(0,0,0,1); +} +.card_rowr{ + width: 50%; + height: 51px; +} +.card_rowr:first-of-type{ + background: url("toll_qdcard_true.png") no-repeat; + background-position: 0px 4px; + border-right: 1px solid rgba(0,0,0,0.2);; +} +.card_rowr:last-of-type{ + background: url("toll_qdcard_no.png") no-repeat; + background-position: 14px 4px; +} +/*map*/ +.map-wrap{ + height: 500px; + width: 680px; +} +.allmap{ + height: 500px; + width: 680px; +} +/*#dituContent{}*/ +#allmap label{max-width:none;} +.BMap_cpyCtrl +{ + display:none; +} +.anchorBL{ + display:none; +} +.display-none{ + display: none; +} +/*pdaname*/ +.showpdaName{ + height: 24px; + text-align: center; + line-height: 24px; + background-color: #1E95CD; + border: none; + padding: 1px 15px; + white-space: nowrap; + font-style: normal; + font-variant: normal; + font-weight: normal; + font-stretch: normal; + font-size: 12px; + font-family:"微软雅黑"; + z-index: 80; + border-radius: 50px!important; + color: #fff; +} +.showpdaoutName{ + height: 18px; + text-align: center; + line-height: 18px; + background-color: #f3173b; + border: none; + padding: 1px 4px; + white-space: nowrap; + font-style: normal; + font-variant: normal; + font-weight: normal; + font-stretch: normal; + font-size: 12px; + font-family:"微软雅黑"; + z-index: 80; + /*border-radius: 50px!important;*/ + color: #fff; +} +.sign_commonstyle{ + color: #fff; + padding: 0 4px; + height:19px; + width: 60px; + max-width: 150px; + line-height: 19px; + text-align: center; + background:rgba(80,192,245,1); +} +.sign_commonstyleno{ + color: #fff; + padding: 0 4px; + height:19px; + width: 60px; + max-width: 150px; + line-height: 19px; + text-align: center; + background:#FDC94D; +} +.checkerMsg{ + background:rgba(80,192,245,1); + height:19px; + width: 60px; + color: #fff; + line-height: 19px; + text-align: center; +} +/*tab 切换 正常 异常*/ +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; + margin-bottom: 18px; +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + /* border-radius: 0 4px 4px 0 !important; */ +} +.tab-btn-wrap li:nth-of-type(3) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD; + color: #1E95CD; +} \ No newline at end of file diff --git a/assets/pages/scripts/tollFile/chargeFile/chargesign.html b/assets/pages/scripts/tollFile/chargeFile/chargesign.html new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/tollFile/chargeFile/chargesign.html diff --git a/assets/pages/scripts/tollFile/chargeFile/chargesign.js b/assets/pages/scripts/tollFile/chargeFile/chargesign.js new file mode 100755 index 0000000..49458af --- /dev/null +++ b/assets/pages/scripts/tollFile/chargeFile/chargesign.js @@ -0,0 +1,899 @@ +//数据 +//设置签到签退超出距离 +var DISTANCE = $("#charge-bj").val(); +var chargeBj={"100":"100米","200":"200米","300":"300米","500":"500米"}; +var chargeGps={"50":">=50%","60":">=60%","70":">=70%","80":">=80%","90":">=90%","100":"100%"}; +//电子围栏半径 +var km; +var fun = { + init: function () { + //初始化停车场下拉框 + commSelect.area_Pl_LinkedSelect("#parkArea", "#parkIds", null, "", 3); + + //查询围栏半径 + fun.getDict('PARK_ENCLOSURE_RADIUS'); + //时间初始化 + fun.dateInit(); + fun.timeInit(); + //收费员初始化 + fun.tollperInit(); + //半径 + fun.chargebgInit(); + //gps + fun.chargeGpsInit(); + //表格初始化 + fun.createTableData(); + //签到人数初始化 + fun.getSignInfoForNumber(); + + }, + //半径初始化 + chargebgInit:function () { + //初始化卡类型下拉框 + var chargeBjSelect=""; + $.each(chargeBj, function(index,row) { + //默认选中300 + if(index == '300'){ + chargeBjSelect+=''; + }else{ + chargeBjSelect+=''; + } + }); + $("#charge-bj").empty(); + $("#charge-bj").append(chargeBjSelect); + $("#charge-bj").selectpicker('refresh'); + }, + //半径初始化 + chargeGpsInit:function () { + //初始化卡类型下拉框 + var chargegpsSelect=""; + $.each(chargeGps, function(index,row) { + //默认选中300 + if(index == '80'){ + chargegpsSelect+=''; + }else{ + chargegpsSelect+=''; + } + }); + $("#charge-gps").empty(); + $("#charge-gps").append(chargegpsSelect); + $("#charge-gps").selectpicker('refresh'); + }, + //时间初始化 + dateInit: function () { + $('#tollcheck-daydaterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $('#tollcheck-daydaterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#tollcheck-daydaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + $("#tollcheck-daydaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //time 24小时初始化 + timeInit:function () { + //签到时间初始化 + laydate.render({ + elem: '#qdtollcheck-time-btnsta',//指定元素 + type: 'time', + theme: '#1E95CD',//主体颜色 + value: '', + min: '00:00:00', + max: '23:59:59', + format: 'HH:mm:ss', + btns: ['clear', 'confirm'], + position: 'fixed', + + }); + laydate.render({ + elem: '#qdtollcheck-time-btnend',//指定元素 + type: 'time', + theme: '#1E95CD',//主体颜色 + value: '', + min: '00:00:00', + max: '23:59:59', + format: 'HH:mm:ss', + btns: ['clear', 'confirm'], + position: 'fixed', + }); + //签退时间初始化 + laydate.render({ + elem: '#qttollcheck-time-btnsta',//指定元素 + type: 'time', + theme: '#1E95CD',//主体颜色 + value: '', + min: '00:00:00', + max: '23:59:59', + format: 'HH:mm:ss', + btns: ['clear', 'confirm'], + position: 'fixed', + + }); + laydate.render({ + elem: '#qttollcheck-time-btnend',//指定元素 + type: 'time', + theme: '#1E95CD',//主体颜色 + value: '', + min: '00:00:00', + max: '23:59:59', + format: 'HH:mm:ss', + btns: ['clear', 'confirm'], + position: 'fixed', + }); + + }, + //获取接口收费员信息 + getChargerMsg: function () { + var plNo = ""; + var chargers = ""; + var req = { + baseRequest: {pageNum: 1, pageSize: 0}, + plNo: plNo, + parkAreaCode: "", + groupCode: "", + onduty: "", + status: "", + nameOrNo: "", + orgId:fn.getOrgId(), + sysCode: sysComm.sysCode + }; + var opt = { + async: false, + data: JSON.stringify(req), + method: "POST", + url: dataUrl.util.queryCashierListInfo(), + success: function (res) { + if (res.code == '8888') { + chargers = JSON.stringify(res.data.rows); + } + } + } + sysAjax(opt); + return JSON.parse(chargers); + }, + //收费员下拉框 + tollperInit:function () { + var data = fun.getChargerMsg(); + var htmls = ''; + var html = ''; + var chargerCodes = []; + for (var i = 0; i < data.length; i++) { + chargerCodes.push(data[i].chargerCode); + html += ""; + } + var chargerCodesStr = JSON.stringify(chargerCodes); + htmls = '' + html; + + $("#tollcheck-tollper").empty(); + $("#tollcheck-tollper").append(htmls); + $('#tollcheck-tollper').selectpicker('render'); + }, + getDict: function (dictKind) { + var data = new Array(); + if (undefined == dictKind) { + return null; + } + + var req = { + sysCode: sysComm.sysCode, + sysCodeKind: dictKind + } + + var opt = { + data: JSON.stringify(req), + method: "POST", + async: false, + url: dataUrl.util.getSysCodeValueByKind(), + async: false, + success: function (res) { + console.log(res) + if (res.code == '8888') { + //return res.data; + km = res.data[0].codeValue; + + } + } + } + sysAjax(opt); + }, + getSignInfoForNumber:function(){ + $("#card_numAll").text("0"); + $("#card_numTrue").text("0"); + $("#card_numNo").text("0"); + + var req=fun.getQueryParam(); + req.inBeginTime = null; + req.inEndTime = null; + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 0 + }; + var opt = { + method: 'post', + url: dataUrl.util.queryChargerSignInfoNumber(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data=res.data; + if(data !=null){ + $("#card_numAll").text(commonObj.numberFormatter(data.allTollCollector)); + $("#card_numTrue").text(commonObj.numberFormatter(data.signInTollCollector)); + $("#card_numNo").text(commonObj.numberFormatter(data.allTollCollector - data.signInTollCollector)); + } + + } + } + }; + sysAjax(opt); + + }, + getSignTailInfo:function(id){ + var result = []; + if(id == undefined || id == null || id == ''){ + console.log("id为空!"); + return; + } + var req = {}; + req.beginTime=fun.getQueryParam().beginTime; + req.endTime=fun.getQueryParam().endTime; + req.signRecordId = id; + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize: 500 + }; + req.sysCode = sysComm.sysCode; + var opt = { + async: false, + method: 'post', + url: dataUrl.util.querySignTailInfoBySignId(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data=res.data.rows; + if(data != null){ + result = data; + } + + } + } + }; + sysAjax(opt); + return result; + }, + //默认数据 table 全部 + createTableData: function () { + $('#tollchecktable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 +// fixedColumns: true, +// fixedNumber: 1, +// leftFixedColumns: true, +// leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + // rowStyle:fun.markTheTable, + onClickRow:fun.clickTheRow, + columns: [ + { + field: 'chargerName', + title: '收费员信息', + width: '10%', + visible: true, + align: "left", + formatter: function (value, row, index) { + return '
                  ' + commonClass.cutString(value, 8) + '
                  ' + + '
                  PDA:' + commonObj.replacenull(row.deviceCode) + '
                  '; + } + }, + { + field: 'plName', + title: '车场信息', + width: '10%', + align: "left", + formatter: function (value, row, index) { + + return '
                  '+commonObj.replacenull(row.plName)+'
                  '+ + '
                  '+commonObj.replacenull(row.parkAreaNames)+'
                  '; + + } + }, + + { + field: 'signInTime', + title: '签到(退)时间', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
                  '+commonObj.timeFormatter(row.signInTime)+'
                  '+ + '
                  '+commonObj.timeFormatter(row.signOutTime)+'
                  '; + } + }, + { + field: 'signOutType', + title: '签到(退)类型', + width: '20%', + align: "left", + formatter: function (value, row, index) { + var inresult = ""; + var outresult = ""; + var thtml=''; + if(row.signInDistance == null || row.signInDistance <= DISTANCE){ + inresult = "正常签到"; + thtml += '
                  '+commonObj.replacenull(inresult)+'
                  '; + }else{ + inresult = "超距离签到"; + thtml +='
                  '+commonObj.replacenull(inresult)+'
                  '; + } + if(row.signOutType==null){ + outresult=''; + thtml +='
                  '+commonObj.replacenull(outresult)+'
                  '; + }else { + if(1 == (row.signOutType)){ + if( row.signOutDistance <= DISTANCE){ + outresult = "正常签退"; + thtml +='
                  '+commonObj.replacenull(outresult)+'
                  '; + }else{ + outresult = "超距离签退"; + thtml +='
                  '+commonObj.replacenull(outresult)+'
                  '; + } + }else if(0 == (row.signOutType)){ + outresult = "云平台操作强制签退"; + thtml +='
                  '+commonObj.replacenull(outresult)+'
                  '; + }else if(2 == (row.signOutType)){ + outresult = "重新登录签退"; + thtml +='
                  '+commonObj.replacenull(outresult)+'
                  '; + }else if(3 == (row.signOutType)){ + outresult = "超时未上报心跳,系统强制签退"; + thtml +='
                  '+commonObj.replacenull(outresult)+'
                  '; + }else{ + outresult = "未知"; + thtml +='
                  '+commonObj.replacenull(outresult)+'
                  '; + } + } + return thtml; + + + } + }, + { + field: 'signInDistance', + title: '签到(退)距离', + width: '10%', + align: "left", + formatter: function (value, row, index) { + var result = ""; + if(row.signOutDistance == null){ + result = "-"; + }else{ + result = commonObj.numberFormatter(row.signOutDistance) +'米'; + } + return '
                  ' + + '签到 ' +commonObj.numberFormatter(value)+'米
                  '+ + '
                  ' + + '签退 ' +(result)+'
                  ' + + } + }, + { + field: 'gpsRate', + title: 'GPS点位', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
                  点位正常率:'+fun.gpsRateFormatter(value)+'
                  '+ + '
                  查询轨迹
                  '; + } + }, + + ] + }); + + }, + gpsRateFormatter:function(value, row, index){ + if(value == null || value==''){ + return "0%"; + } + return ((value*100).toFixed(2))+"%"; + }, + + //点击行 + clickTheRow:function (value,row, index) { + var plNo = value.plNo; + var id = value.id; + console.log(id); + //获取pda轨迹经纬度 + var tailList = fun.getSignTailInfo(id); + //处理pda轨迹经纬度 + var pdaData=[]; + $.each(tailList, function(index,item) { + if(item.signDistance != null && item.signDistance > fun.getQueryParam().distance){ + var _item = { + "pointX":item.lonId,"pointY":item.latId,"distance":index.signDistance, + "pdatime":commonObj.timeFormatter(index.recordTime), + "chargerName":commonObj.replacenull(item.chargerName),"type":"签到" + }; + pdaData.push(_item); + } + + }); + //获取停车场经纬度 + var parkLonId =0; + var parkLatId =0; + var parks = fn.getParkLot(); + $.each(parks, function(index,item) { + if(item.code == plNo){ + parkLonId = item.lonId; + parkLatId = item.latId; + } + }); + var parkData=[ {"pointX":parkLonId,"pointY":parkLatId}]; + +// if(value.signOutLonid != null && value.signOutLatid != null){ +// var outData = { +// "pointX":value.signOutLonid,"pointY":value.signOutLatid,"distance":value.signOutDistance,"pdatime":commonObj.timeFormatter(value.signOutTime),"chargerName":commonObj.replacenull(value.chargerName),"type":"签退" +// }; +// pdaData.push(outData); +// } + + $('#tollcheck_mapmodel').modal('show'); + setTimeout(function () { + fun.drawMarker(parkData,pdaData) + },300); + + }, + /*获取查询参数*/ + getQueryParam: function () { + //时间 + var signInBeginTime= $("#tollcheck-daydaterange-btnsta").val(); + var signInEndTime=$("#tollcheck-daydaterange-btnend").val(); + var inBeginTime = $("#qdtollcheck-time-btnsta").val(); + var inEndTime = $("#qdtollcheck-time-btnend").val(); + signInBeginTime += " 00:00:00"; + signInEndTime += " 23:59:59"; +// if(inBeginTime == undefined || inBeginTime == null || inBeginTime == ""){ +// signInBeginTime += " 00:00:00"; +// }else{ +// signInBeginTime += (" " + inBeginTime); +// } +// if(inEndTime == undefined || inEndTime == null || inEndTime == ""){ +// signInEndTime += " 23:59:59"; +// }else{ +// signInEndTime += (" " + inEndTime); +// } + var outBeginTime = $("#qttollcheck-time-btnsta").val(); + var outEndTime = $("#qttollcheck-time-btnend").val(); + if(outBeginTime == undefined || outBeginTime == null || outBeginTime == ""){ + signOutBeginTime = null; + }else{ + signOutBeginTime = ($("#tollcheck-daydaterange-btnsta").val() + " " + outBeginTime); + signOutBeginTime = new Date(signOutBeginTime.replace(new RegExp(/-/gm) ,"/")); + } + if(outEndTime == undefined || outEndTime == null || outEndTime == ""){ + signOutEndTime = null; + }else{ + signOutEndTime = ($("#tollcheck-daydaterange-btnend").val() + " " + outEndTime); + signOutEndTime = new Date(signOutEndTime.replace(new RegExp(/-/gm) ,"/")); + } + + signInBeginTime = new Date(signInBeginTime.replace(new RegExp(/-/gm) ,"/")); + signInEndTime = new Date(signInEndTime.replace(new RegExp(/-/gm) ,"/")); + //收费员 + var tollper = JSON.parse($("#tollcheck-tollper").val()); + if (tollper.length < 1) { + tollper.push("-1X"); + } + //停车场 + var plNos = JSON.parse($("#parkIds").val()); + if (plNos.length < 1) { + plNos.push("-1X"); + } + //gpsRate + var gpsRate = $("#charge-gps").val(); + if (gpsRate != null && gpsRate != "") { + gpsRate = gpsRate/100; + } + DISTANCE = $("#charge-bj").val(); + var req = { + sysCode: sysComm.sysCode, + chargerCodes: tollper, + plNos:plNos, + gpsRate:gpsRate, + beginTime:signInBeginTime, + endTime:signInEndTime, + signInBeginTime:signInBeginTime, + signInEndTime:signInEndTime, + signOutBeginTime:signOutBeginTime, + signOutEndTime:signOutEndTime, + distance : DISTANCE, + distanceCol : DISTANCE, + inBeginTime:inBeginTime, + inEndTime:inEndTime, + outBeginTime:outBeginTime, + outEndTime:outEndTime + }; + + + var index = fun.getDiffIndex(); + // distanceFlag /**全部-null 正常-0 异常-1*/ + //全部 + if(index == 0){ + req.distanceFlag = null; + } + //正常 + if(index == 1){ + req.distanceFlag = 0; + } + //异常 + if(index == 2){ + req.distanceFlag = 1 + } + + return req; + + }, + //获取正常异常下标 + getDiffIndex:function(){ + return $('#tab-btn-wrap li.tabAction').index(); + }, + // 地图初始化 + drawMarker:function(parkData,pdaData) { + // 添加百度地图 + var lonPark = parkData[0].pointX; + var latPark = parkData[0].pointY; + console.log(lonPark,latPark) + var map; //Map实例 + //清除以前的点位 + // map.clearOverlays(); + map = new BMap.Map('allmap', {enableMapClick: false}); + map.clearOverlays(); + //第1步:设置地图中心点,当前城市 + var cenpoint = new BMap.Point(lonPark,latPark); + //第2步:初始化地图,设置中心点坐标和地图级别。 + map.centerAndZoom(cenpoint, 18); + map.setCurrentCity(sysComm.cityName); // 设置地图显示的城市 此项是必须设置的 + //坐标强制居中 + // map.panBy(340, 250); + //第3步:启用滚轮放大缩小 + map.enableScrollWheelZoom(true); + //第4步:向地图中添加缩放控件 + //第5步:检测浏览器兼容 + function checkhHtml5() { + if (typeof(Worker) === "undefined") { + if (navigator.userAgent.indexOf("MSIE 9.0") <= 0) { + alert("定制个性地图示例:IE9以下不兼容,推荐使用百度浏览器、chrome、firefox、safari、IE10"); + } + + } + } + checkhHtml5(); + //第7步:绘制点 + var parkmarker = []; + var parknewpoiX = null;//坐标 + var parknewpoiY = null; + for (var i = 0; i < parkData.length; i++) { + parknewpoiX = parkData[i].pointX; + parknewpoiY = parkData[i].pointY; + + var newPoint = new BMap.Point(parknewpoiX, parknewpoiY); + //pda标题 + var pLabels = new BMap.Label('
                  正常区域
                  ', { + offset: new BMap.Size(-28, -12), //label的偏移量,为了让label的中心显示在点上 + position: newPoint}); + pLabels.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + padding: "4px", + whiteSpace: "normal", + backgroundColor: "#28A4DE", + border: "0px", + zIndex: "1000", + width:"58px", + height:"24px", + } + ); + map.addOverlay(pLabels); + + // + //电子围栏函数 + addCircle(km, parknewpoiX,parknewpoiY); + pdadrawFun(pdaData); + }; + // 停车场画圆 半径:km + function addCircle(km,parknewpoiX,parknewpoiY) { + var mPoint = new BMap.Point(parknewpoiX,parknewpoiY); + var circle = new BMap.Circle(mPoint,fun.getQueryParam().distance,{fillColor:"#1E95CD",stroke: "#1E95CD",strokeWeight: '2' ,fillOpacity: 0.2, strokeOpacity: 0.1}); + map.addOverlay(circle); + }; + // pda + function pdadrawFun(pdaData){ + console.log(pdaData); + var pdamarker = []; + var newpoiX = null;//坐标 + var newpoiY = null; + var distance = null;//签到距离 + var pdatime = null;//签到时间 + var chargerName = null;//收费员名称 + for(var j=0;j异常
                  ', { + offset: new BMap.Size(4, -10), //label的偏移量,为了让label的中心显示在点上 + position: pdapoint}); + myLabels.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + padding: "5px", + whiteSpace: "normal", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px", + zIndex: "1000" + } + ); + map.addOverlay(myLabels); + //添加pdaicon + var myIconpda = new BMap.Icon("../../assets/pages/scripts/tollFile/chargeFile/cricleico.png", + new BMap.Size(23, 26)/*, { + offset: new BMap.Size(0, 0), + textColor: '#fff' + }*/); + + pdamarker[j]= new BMap.Marker(pdapoint, {icon: myIconpda}); + map.addOverlay(pdamarker[j]); + // } + + + } + + } + + }, + //导出函数 + exportList:function(){ + //校验日期 + var req = fun.getQueryParam(); + + var signInBeginTime = DateUtils.long2String(req.signInBeginTime, 7); + var signInEndTime = DateUtils.long2String(req.signInEndTime, 7); + var signOutBeginTime = null; + if(req.signOutBeginTime != null){ + signOutBeginTime = DateUtils.long2String(req.signOutBeginTime, 7); + } + var signOutEndTime = null; + if(req.signOutEndTime != null){ + signOutEndTime = DateUtils.long2String(req.signOutEndTime, 7); + } + var url = dataUrl.util.exportChargerSignGpsRateListNew() + '?chargerCodes=' + req.chargerCodes + + '&plNos=' + req.plNos +'&gpsRate=' + req.gpsRate + + '&distance=' + req.distance +'&distanceCol=' + req.distanceCol + + '&signInBeginTime=' + signInBeginTime + '&signInEndTime=' + signInEndTime + + '&beginTime=' + signInBeginTime + '&endTime=' + signInEndTime + + '&sysCode='+sysComm.sysCode; + if(signOutBeginTime != null){ + url +=('&signOutBeginTime=' + signOutBeginTime); + } + if(signOutEndTime != null){ + url +=('&signOutEndTime=' + signOutEndTime); + } + + if(req.outBeginTime != null && req.outBeginTime != ''){ + url +=('&outBeginTime=' + req.outBeginTime); + } + if(req.outEndTime != null && req.outEndTime != ''){ + url +=('&outEndTime=' + req.outEndTime); + } + if(req.inBeginTime != null && req.inBeginTime != ''){ + url +=('&inBeginTime=' + req.inBeginTime); + } + if(req.inEndTime != null && req.inEndTime != ''){ + url +=('&inEndTime=' + req.inEndTime); + } + window.downloadFile(url); + }, +}; + +fun.init(); + +//查询按钮 +$('#tollcheck-Btn').on('click',function () { + fun.createTableData(); + //签到人数初始化 + fun.getSignInfoForNumber(); +}); + +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); +}); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + + var opt = { + method: 'post', + url: dataUrl.util.querySignRecordAndRateByChargerCodeNew(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + params.success(res.data); + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + } + } + }; + sysAjax(opt); +}; + +//切换 全部 正常 异常 +$('#tab-btn-wrap li').on('click',function () { + //因后面逻辑需要,一定要线切换 tabAction 样式, 然后在调用 对应的函数 + $(this).addClass('tabAction').siblings().removeClass('tabAction'); + fun.createTableData(); +}); + +//导出 +//导出功能 +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#caryardReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#caryardReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#caryardReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#caryardReport").val("导出"); + } + else { + curCount--; + $("#caryardReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#caryardReport',function (){ + //获取table所有行数据 + var parkLot = $("#tollchecktable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#tollchecktable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + fun.exportList(); +}); \ No newline at end of file diff --git a/assets/pages/scripts/tollFile/chargeFile/cricleico.png b/assets/pages/scripts/tollFile/chargeFile/cricleico.png new file mode 100755 index 0000000..634655c Binary files /dev/null and b/assets/pages/scripts/tollFile/chargeFile/cricleico.png differ diff --git a/assets/pages/scripts/tollFile/chargeFile/toll_qdcard_all.png b/assets/pages/scripts/tollFile/chargeFile/toll_qdcard_all.png new file mode 100755 index 0000000..a9ac227 Binary files /dev/null and b/assets/pages/scripts/tollFile/chargeFile/toll_qdcard_all.png differ diff --git a/assets/pages/scripts/tollFile/chargeFile/toll_qdcard_no.png b/assets/pages/scripts/tollFile/chargeFile/toll_qdcard_no.png new file mode 100755 index 0000000..ccf06d1 Binary files /dev/null and b/assets/pages/scripts/tollFile/chargeFile/toll_qdcard_no.png differ diff --git a/assets/pages/scripts/tollFile/chargeFile/toll_qdcard_true.png b/assets/pages/scripts/tollFile/chargeFile/toll_qdcard_true.png new file mode 100755 index 0000000..6f25f51 Binary files /dev/null and b/assets/pages/scripts/tollFile/chargeFile/toll_qdcard_true.png differ diff --git a/assets/pages/scripts/tollFile/chargeGroup/chargegroup.css b/assets/pages/scripts/tollFile/chargeGroup/chargegroup.css new file mode 100755 index 0000000..c6f901a --- /dev/null +++ b/assets/pages/scripts/tollFile/chargeGroup/chargegroup.css @@ -0,0 +1,83 @@ + +/*单选复选美化*/ +.ITD-form-group input[type=checkbox], +.ITD-form-group input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.ITD-form-group input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.ITD-form-group input[type=checkbox]:hover + label{ + background: url('../../../img/input-checkexActive.png') no-repeat 0 center; + +} +.ITD-form-group input[type=checkbox]:checked + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=checkbox]:checked:hover + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +.ITD-form-group input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +.ITD-form-group input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.ITD-form-group input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} + +/*弹窗 add */ +.chargegroup-daytitImg { + width: 26px; + height: 24px; + top: 5px; + left: 60px; + background: url(img/chargegroup_smallIcon.png) no-repeat; + background-position: -140px -30px; +} +.chargegroup-nighttitImg { + width: 26px; + height: 24px; + top: 5px; + left: 60px; + background: url(img/chargegroup_smallIcon.png) no-repeat; + background-position: -105px -30px; +} +.chargegroup-width80{ + width: 80px; +} +.chargegroup-pad5{ + padding-left: 5px; + padding-right: 5px; +} +.chargegroup-poptime{ + padding: 0 10px +} diff --git a/assets/pages/scripts/tollFile/chargeGroup/chargegroup.html b/assets/pages/scripts/tollFile/chargeGroup/chargegroup.html new file mode 100755 index 0000000..f647f14 --- /dev/null +++ b/assets/pages/scripts/tollFile/chargeGroup/chargegroup.html @@ -0,0 +1,239 @@ + +
                  +
                  +
                  +
                  +
                  + +
                  +
                  + 名称/编号 + +
                  +
                  +
                  +
                  查询
                  +
                  + +
                  + +
                  + +
                  +
                  +
                  + + +
                  +
                  +
                  +
                    +
                  • 收费组列表
                  • +
                  • + +
                  • +
                  +
                  +
                  +
                  +
                  + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/tollFile/chargeGroup/chargegroup.js b/assets/pages/scripts/tollFile/chargeGroup/chargegroup.js new file mode 100755 index 0000000..b761fde --- /dev/null +++ b/assets/pages/scripts/tollFile/chargeGroup/chargegroup.js @@ -0,0 +1,443 @@ + +var fun ={ + init:function(){ + //初始化办事处下拉框 + fun.getAreaBlocks("#parkAreaCode",true); + //默认收费组表格 初始化加载 + fun.createTableData(); + //查询 + documentBindFunc.on('click','#chargegroup-queryBtn',function(){ + fun.createTableData(); + }); + //删除弹窗显示 + documentBindFunc.on('click','.delMsg',function (element) { + $('#cashiergroupdelete_rule').addClass('display-none').text(""); + var groupCode = $(this).attr('data-index'); + $("#chargegroupupdateId-del").val(groupCode); + $('#chargegroup_deletemodel').modal('show') + }); + //确定删除操作 + documentBindFunc.on('click','#chargegroup-deletesubmit',function (element) { + var groupCode = $("#chargegroupupdateId-del").val(); + var groupCodeList = []; + groupCodeList.push(groupCode); + var req = { + groupCodeList:groupCodeList + }; + req.sysCode = sysComm.sysCode; + $('#chargegroup-deletesubmit').attr('disabled',true); + var opt = { + method: 'post', + url: dataUrl.util.deleteEmployeeGroup(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#chargegroup-deletesubmit').attr('disabled',false); + if (res.code == '8888') { + $('#chargegroup_deletemodel').modal('hide'); + //刷新table + $('#chargegroup-table').bootstrapTable('refresh', { + silent: true + }); + }else{ + $('#cashiergroupdelete_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + //新增弹窗 操作 + documentBindFunc.on('click','#chargegroup-addBtn',function (element) { + + //管理方式初始化 + $('#chargegroupadd_chargerType10').prop('checked',true); + $('#chargegroupadd_chargerType20').prop('checked',false); + $('#chargegroupadd_rule').addClass('display-none').text(""); + //初始化办事处 + fun.getAreaBlocks('#chargegroupadd_areaCode',false); + //收费组初始化 + $('#chargegroupadd_groupCode').val(''); + //负责人初始化 + $('#chargegroupadd_chargerName').val(''); + //联系电话 + $('#chargegroupadd_phoneNo').val(''); + //备注 + $('#chargegroupMsg').val(''); + laydate.render({ + elem: '#startTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '06:00:00', + min: '00:00:00', + max: '24:00:00', + format: 'HH:mm:ss', + btns: ['confirm'], + position: 'abolute', + /* done: function (value, date, endDate) { + console.log(value); //得到日期生成的值,如:2017-08-18 + console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + + $('#endTime-right').val(value) + }*/ + // range: true + + }); + laydate.render({ + elem: '#endTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '18:00:00', + format: 'HH:mm:ss', + btns: [ 'confirm'], + position: 'abolute', + + + }); + laydate.render({ + elem: '#startTimenight',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '18:00:00', + min: '00:00:00', + max: '24:00:00', + format: 'HH:mm:ss', + btns: [ 'confirm'], + position: 'abolute', + + + }); + laydate.render({ + elem: '#endTimenight',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '06:00:00', + format: 'HH:mm:ss', + btns: ['confirm'], + position: 'abolute', + + }); + $('#chargegroup_addmodel').modal('show'); + + }); + //确定新增操作 + documentBindFunc.on('click','#chargegroupaddwrite-submit',function (element) { + var req = {}; + var areacCodes = JSON.parse($('#chargegroupadd_areaCode').val()); + if(areacCodes.length==0){ + $('#chargegroupadd_rule').removeClass('display-none').text('办事处必填'); + return false; + } + req.plAreaBlockId = areacCodes[0]; + var maintainOpt = $('#chargegroupadd_chargerName').val(); + if(maintainOpt==''|| maintainOpt==null || maintainOpt== undefined){ + $('#chargegroupadd_rule').removeClass('display-none').text('负责人必填'); + return false; + } + req.maintainOpt = maintainOpt; + //管理方式 + req.areaManageType = $('input:radio[name="chargegroupadd_chargerType"]:checked').val(); + req.duringDayTime = $('#startTime').val()+'-'+$('#endTime').val(); + req.duringNightTime = $('#startTimenight').val()+'-'+$('#endTimenight').val(); + var groupName = $('#chargegroupadd_groupCode').val(); + if(groupName=='' || groupName==null || groupName== undefined){ + $('#chargegroupadd_rule').removeClass('display-none').text('收费组必填'); + return false; + } + req.groupName = groupName; + req.phoneNo = $('#chargegroupadd_phoneNo').val(); + req.remark = $('#chargegroupMsg').val(); + req.sysCode = sysComm.sysCode; + $('#chargegroupaddwrite-submit').attr('disabled',true); + var opt = { + method: 'post', + url: dataUrl.util.insertEmployeeGroup(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#chargegroupaddwrite-submit').attr('disabled',false); + if (res.code == '8888') { + $('#chargegroup_addmodel').modal('hide'); + //刷新table + $('#chargegroup-table').bootstrapTable('refresh', { + silent: true + }); + }else{ + $('#chargegroupadd_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + + //修改弹窗 操作 + documentBindFunc.on('click','.relMsg',function (element) { + $('#chargegroup_ruleedit').addClass('display-none').text(""); + var id = $(this).attr('data-index'); + $("#updateId").val(id); + var modifyRow = $('#chargegroup-table').bootstrapTable('getRowByUniqueId', id); + //初始化办事处 + fun.getAreaBlocks('#chargegroup_areaCodeedit',false); + $('#chargegroup_areaCodeedit').val("[\""+modifyRow.plAreaBlockId+"\"]"); + $("#chargegroup_areaCodeedit").selectpicker('refresh'); + //收费组初始化 + $('#chargegroup_groupCodeedit').val(modifyRow.groupName); + //负责人初始化 + $('#chargegroup_chargerNameedit').val(modifyRow.maintainOpt); + //联系电话 + $('#chargegroup_phoneNoedit').val(modifyRow.phoneNo); + //管理方式 + $('#chargegroup_chargerType'+modifyRow.areaManageType+'edit').prop('checked',true); + + //备注 + $('#chargegroupMsgedit').val(modifyRow.remark); + laydate.render({ + elem: '#startTimeedit',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + // value: '06:00', + min: '00:00:00', + max: '24:00:00', + format: 'HH:mm:ss', + btns: ['confirm'], + position: 'abolute', + /* done: function (value, date, endDate) { + console.log(value); //得到日期生成的值,如:2017-08-18 + console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + + $('#endTime-right').val(value) + }*/ + // range: true + + }); + laydate.render({ + elem: '#endTimeedit',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + // value: '18:00', + format: 'HH:mm:ss', + btns: [ 'confirm'], + position: 'abolute', + + + }); + laydate.render({ + elem: '#startTimenightedit',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + // value: '18:00', + min: '00:00:00', + max: '24:00:00', + format: 'HH:mm:ss', + btns: [ 'confirm'], + position: 'abolute', + + + }); + laydate.render({ + elem: '#endTimenightedit',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + // value: '06:00', + format: 'HH:mm:ss', + btns: ['confirm'], + position: 'abolute', + + }); + //白班 + if(modifyRow.duringDayTime!=''){ + var duringDays = modifyRow.duringDayTime.split("-"); + $('#startTimeedit').val(duringDays[0]); + $('#endTimeedit').val(duringDays[1]); + } + //夜班 + if(modifyRow.duringNightTime!=''){ + var duringDays = modifyRow.duringNightTime.split("-"); + $('#startTimenightedit').val(duringDays[0]); + $('#endTimenightedit').val(duringDays[1]); + } + $('#chargegroup_changemodel').modal('show'); + + }); + //确定修改 操作 + documentBindFunc.on('click','#chargegroupwrite-submitedit',function (element) { + var req = {}; + var areacCodes = JSON.parse($('#chargegroup_areaCodeedit').val()); + if(areacCodes.length==0){ + $('#chargegroup_ruleedit').removeClass('display-none').text('办事处必填'); + return false; + } + req.plAreaBlockId = areacCodes[0]; + var maintainOpt = $('#chargegroup_chargerNameedit').val(); + if(maintainOpt=='' || maintainOpt==null || maintainOpt== undefined){ + + $('#chargegroup_ruleedit').removeClass('display-none').text('负责人必填'); + return false; + } + req.maintainOpt = maintainOpt; + //管理方式 + req.areaManageType = $('input:radio[name="chargegroupedit_chargerType"]:checked').val(); + req.duringDayTime = $('#startTimeedit').val()+'-'+$('#endTimeedit').val(); + req.duringNightTime = $('#startTimenightedit').val()+'-'+$('#endTimenightedit').val(); + var groupName = $('#chargegroup_groupCodeedit').val(); + if(groupName==''|| groupName ==null || groupName == undefined){ + $('#chargegroup_ruleedit').removeClass('display-none').text('收费组必填'); + return false; + } + req.groupName = groupName; + req.phoneNo = $('#chargegroupedit_phoneNo').val(); + req.remark = $('#chargegroupMsgedit').val(); + req.id = $('#updateId').val(); + req.sysCode = sysComm.sysCode; + $('#chargegroupwrite-submitedit').attr('disabled',true); + var opt = { + method: 'post', + url: dataUrl.util.updateEmployeeGroup(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#chargegroupwrite-submitedit').attr('disabled',false); + if (res.code == '8888') { + $('#chargegroup_changemodel').modal('hide'); + //刷新table + $('#chargegroup-table').bootstrapTable('refresh', { + silent: true + }); + }else{ + $('#chargegroupedit_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + + }, + //获取办事处 + getAreaBlocks:function(domStr,isNeedAll){ + var plData = fn.getParkBlock(); + var html = ""; + var areaIds = []; + $.each(plData, function (index, item) { + areaIds.push(item.code); + html += ""; + }); + if (isNeedAll) { + var areaIdsStr = JSON.stringify(areaIds); + html = "" + html; + } + $(domStr).append(html); + $(domStr).selectpicker('render'); + $(domStr).selectpicker('refresh'); + }, + //生成表格数据 + createTableData: function () { + $('#chargegroup-table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers:true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'id', title: '', width: '10%', align: 'left',visible:false}, + {field: 'areaCode', title: '办事处', width: '10%', align: 'left',visible:false}, + {field: 'groupCode', title: '收费组编号', width: '10%', align: 'left'}, + {field: 'groupName', title: '收费组名称', width: '10%', align: 'left'}, + {field: 'maintainOpt', title: '负责人', width: '10%', align: 'left'}, + {field: 'phoneNo', title: '负责人电话', width: '10%', align: 'left',visible:false}, + {field: 'areaManageType', title: '管理方式',titleTooltip:'针对同一个区间的管理(允许同时登陆的收费员数量)', width: '10%',align: 'left',formatter:function(value){ + if(value==10){ + return '单人'; + }else if(value==20){ + return '多人'; + }else{ + return value; + } + }}, + {field: 'duringDayTime', title: '白班时段', width: '15%', align: 'left'}, + {field: 'duringNightTime', title: '夜班时段', width: '15%', align: 'left'}, + + { + field: '', + title: '操作', + width: '10%', + align: 'left', + formatter: fun.opFormater + } + ] + + }); + + }, + /*获取查询参数*/ + getQueryParam: function () { + var parkAreaCode = JSON.parse($("#parkAreaCode").val()); + var groupCode = $('#groupCodeid').val(); + var req = { + plAreaBlockIds: parkAreaCode, + groupCodeOrName:groupCode, + sysCode: sysComm.sysCode + }; + return req; + }, + //操作 + opFormater: function (value, row, index) { + var operStr = '修改' + + '删除'; + return operStr; + }, + //时间 + inDatatimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return "" + DateUtils.long2String(value, 1) + "
                  "; + } + } + +}; + +//初始化 函数 +fun.init(); + +/** + * 默认收费组列表 + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryEmployeeChargeGroupList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} \ No newline at end of file diff --git a/assets/pages/scripts/tollFile/chargeGroup/img/chargegroup_smallIcon.png b/assets/pages/scripts/tollFile/chargeGroup/img/chargegroup_smallIcon.png new file mode 100755 index 0000000..78379b6 Binary files /dev/null and b/assets/pages/scripts/tollFile/chargeGroup/img/chargegroup_smallIcon.png differ diff --git a/assets/pages/scripts/tollFile/tollChecker/tollchecker.css b/assets/pages/scripts/tollFile/tollChecker/tollchecker.css new file mode 100755 index 0000000..3dd293b --- /dev/null +++ b/assets/pages/scripts/tollFile/tollChecker/tollchecker.css @@ -0,0 +1,92 @@ +/*tab 切换 正常 异常*/ +.tab-btn-wrap li { + float: left; + padding: 0 15px; + height: 32px; + line-height: 32px; + cursor: pointer; + background: rgba(255,255,255,1); + text-align: center; + margin-bottom: 18px; +} +.tab-btn-wrap li:nth-of-type(1) { + border-left: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-right: 1px solid #D9D9D9; + border-radius: 4px 0 0 4px !important; +} +.tab-btn-wrap li:nth-of-type(2) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + /* border-radius: 0 4px 4px 0 !important; */ +} +.tab-btn-wrap li:nth-of-type(3) { + border-right: 1px solid #D9D9D9; + border-top: 1px solid #D9D9D9; + border-bottom: 1px solid #D9D9D9; + border-radius: 0 4px 4px 0 !important; +} +.tab-btn-wrap li.tabAction { + border: 1px solid #1E95CD; + color: #1E95CD; +} +/*map*/ +.map-wrap{ + height: 500px; + width: 680px; +} +.allmap{ + height: 500px; + width: 680px; +} +/*#dituContent{}*/ +#allmap label{max-width:none;} +.BMap_cpyCtrl +{ + display:none; +} +.anchorBL{ + display:none; +} +.display-none{ + display: none; +} +/*pdaname*/ +.showpdaName{ + height: 24px; + text-align: center; + line-height: 24px; + background-color: #1E95CD; + border: none; + padding: 1px 15px; + white-space: nowrap; + font-style: normal; + font-variant: normal; + font-weight: normal; + font-stretch: normal; + font-size: 12px; + font-family:"微软雅黑"; + z-index: 80; + border-radius: 50px!important; + color: #fff; +} +.showpdaoutName{ + height: 24px; + text-align: center; + line-height: 24px; + background-color: #f3173b; + border: none; + padding: 1px 15px; + white-space: nowrap; + font-style: normal; + font-variant: normal; + font-weight: normal; + font-stretch: normal; + font-size: 12px; + font-family:"微软雅黑"; + z-index: 80; + border-radius: 50px!important; + color: #fff; +} \ No newline at end of file diff --git a/assets/pages/scripts/tollFile/tollChecker/tollchecker.html b/assets/pages/scripts/tollFile/tollChecker/tollchecker.html new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/tollFile/tollChecker/tollchecker.html diff --git a/assets/pages/scripts/tollFile/tollChecker/tollchecker.js b/assets/pages/scripts/tollFile/tollChecker/tollchecker.js new file mode 100755 index 0000000..b4d48cb --- /dev/null +++ b/assets/pages/scripts/tollFile/tollChecker/tollchecker.js @@ -0,0 +1,673 @@ +//数据 +//设置签到签退超出距离 +var DISTANCE = 300; +//电子围栏半径 +var km; +var fun = { + init: function () { + //查询围栏半径 + fun.getDict('PARK_ENCLOSURE_RADIUS'); + //时间初始化 + fun.dateInit(); + //收费员初始化 + fun.tollperInit(); + //表格初始化 + fun.createTableData(); + + }, + //时间初始化 + dateInit: function () { + $('#tollcheck-daydaterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $('#tollcheck-daydaterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#tollcheck-daydaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + $("#tollcheck-daydaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + //startDate:startVal, + format: 'yyyy-mm-dd', + weekStart: 1, + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //获取接口收费员信息 + getChargerMsg: function () { + var plNo = ""; + var chargers = ""; + var req = { + baseRequest: {pageNum: 1, pageSize: 0}, + plNo: plNo, + parkAreaCode: "", + groupCode: "", + onduty: "", + status: "", + nameOrNo: "", + orgId:fn.getOrgId(), + sysCode: sysComm.sysCode + }; + var opt = { + async: false, + data: JSON.stringify(req), + method: "POST", + url: dataUrl.util.queryCashierListInfo(), + success: function (res) { + if (res.code == '8888') { + chargers = JSON.stringify(res.data.rows); + } + } + } + sysAjax(opt); + return JSON.parse(chargers); + }, + //收费员下拉框 + tollperInit:function () { + var data = fun.getChargerMsg(); + var htmls = ''; + var html = ''; + var chargerCodes = []; + for (var i = 0; i < data.length; i++) { + chargerCodes.push(data[i].chargerCode); + html += ""; + } + var chargerCodesStr = JSON.stringify(chargerCodes); + htmls = '' + html; + + $("#tollcheck-tollper").empty(); + $("#tollcheck-tollper").append(htmls); + $('#tollcheck-tollper').selectpicker('render'); + }, + getDict: function (dictKind) { + var data = new Array(); + if (undefined == dictKind) { + return null; + } + + var req = { + sysCode: sysComm.sysCode, + sysCodeKind: dictKind + } + + var opt = { + data: JSON.stringify(req), + method: "POST", + async: false, + url: dataUrl.util.getSysCodeValueByKind(), + async: false, + success: function (res) { + console.log(res) + if (res.code == '8888') { + //return res.data; + km = res.data[0].codeValue; + + } + } + } + sysAjax(opt); + }, + //默认数据 table 全部 + createTableData: function () { + $('#tollchecktable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 +// fixedColumns: true, +// fixedNumber: 1, +// leftFixedColumns: true, +// leftFixedNumber: 3, + //rightFixedColumns: true, + //rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + rowStyle:fun.markTheTable, + onClickRow:fun.clickTheRow, + columns: [ + { + field: 'chargerName', + title: '收费员名称', + width: '10%', + visible: true, + align: "left", + formatter: function (value, row, index) { + return '
                  '+ commonObj.replacenull(value)+'
                  ' + } + }, + { + field: 'plName', + title: '车场名称', + width: '10%', + align: "left", + formatter: function (value, row, index) { + + return '
                  '+commonObj.replacenull(value)+'
                  '; + } + }, + { + field: 'deviceCode', + title: 'PDA编号', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
                  '+commonObj.replacenull(value)+'
                  '; + } + }, + { + field: 'parkAreaNames', + title: '泊位区间', + width: '10%', + align: "left", + formatter: function (value, row, index) { + return '
                  '+commonObj.replacenull(value)+'
                  '; + } + }, + { + field: 'signInTime', + title: '签到时间', + width: '15%', + align: "left", + formatter: function (value, row, index) { + return '
                  '+commonObj.timeFormatter(value)+'
                  ' + } + }, + { + field: 'signOutTime', + title: '签退时间', + width: '15%', + align: "left", + formatter: function (value, row, index) { + var result = ""; + if(value == null){ + result = ""; + }else{ + result = value; + } + return '
                  '+commonObj.timeFormatter(result)+'
                  ' + } + }, + { + field: 'signInDistance', + title: '签到类型', + width: '10%', + align: "left", + formatter: function (value, row, index) { + var result = ""; + if(value == null || value <= DISTANCE){ + result = "正常签到"; + }else{ + result = "超距离签到"; + } + return '
                  '+commonObj.replacenull(result)+'
                  ' + } + }, + { + field: 'signOutType', + title: '签退类型', + width: '10%', + align: "left", + formatter: function (value, row, index) { + var result = ""; + if(value == null){ + result = ""; + } + else{ + if(1 == (value)){ + if( row.signOutDistance <= DISTANCE){ + result = "正常签退"; + }else{ + result = "超距离签退"; + } + }else if(0 == (value)){ + result = "云平台操作强制签退"; + }else if(2 == (value)){ + result = "重新登录签退"; + }else if(3 == (value)){ + result = "超时未上报心跳,系统强制签退"; + }else{ + result = "未知"; + } + } + + return '
                  '+commonObj.replacenull(result)+'
                  ' + } + }, + { + field: 'signInDistance', + title: '签到距离/签退距离', + width: '10%', + align: "left", + formatter: function (value, row, index) { + var result = ""; + if(row.signOutDistance == null){ + result = "-"; + }else{ + result = commonObj.numberFormatter(row.signOutDistance) +'米'; + } + return '
                  ' + +commonObj.numberFormatter(value)+'米/' + +(result)+'
                  ' + } + }, + + ] + }); + + }, + //标记 + markTheTable:function (value,row, index) { + //这里有5个取值代表5中颜色['active', 'success', 'info', 'warning', 'danger']; + var strclass = ""; + if ((value.signInDistance > DISTANCE || value.signInDistance == null) || (value.signOutDistance > DISTANCE)) { + strclass = 'danger'; + } + else { + strclass = ''; + } + return { classes: strclass } + }, + //点击行 + clickTheRow:function (value,row, index) { + var plNo = value.plNo; + var parkLonId =0; + var parkLatId =0; + var parks = fn.getParkLot(); + $.each(parks, function(index,item) { + if(item.code == plNo){ + parkLonId = item.lonId; + parkLatId = item.latId; + } + }); + var parkData=[ {"pointX":parkLonId,"pointY":parkLatId}]; + var pdaData=[ + { + "pointX":value.signInLonid,"pointY":value.signInLatid,"distance":value.signInDistance,"pdatime":commonObj.timeFormatter(value.signInTime),"chargerName":commonObj.replacenull(value.chargerName),"type":"签到" + }, + ]; + if(value.signOutLonid != null && value.signOutLatid != null){ + var outData = { + "pointX":value.signOutLonid,"pointY":value.signOutLatid,"distance":value.signOutDistance,"pdatime":commonObj.timeFormatter(value.signOutTime),"chargerName":commonObj.replacenull(value.chargerName),"type":"签退" + }; + pdaData.push(outData); + } + + $('#tollcheck_mapmodel').modal('show'); + setTimeout(function () { + fun.drawMarker(parkData,pdaData) + },300); + // fun.drawMarker(parkData,pdaData) + + }, + /*获取查询参数*/ + getQueryParam: function () { + //时间 + var beginTime= $("#tollcheck-daydaterange-btnsta").val()+" 00:00:00"; + var endTime=$("#tollcheck-daydaterange-btnend").val()+" 23:59:59"; + beginTime = new Date(beginTime.replace(new RegExp(/-/gm) ,"/")); + endTime = new Date(endTime.replace(new RegExp(/-/gm) ,"/")); + //收费员 + var tollper = JSON.parse($("#tollcheck-tollper").val()); + if (tollper.length < 1) { + tollper.push("-1X"); + } + + var req = { + sysCode: sysComm.sysCode, + chargerCodes: tollper, + beginTime:beginTime, + endTime:endTime, + distance : DISTANCE + }; + + // req.payFinishTimeStart = req.beginTime; + // req.payFinishTimeEnd = req.endTime; + // req.payTypes = [1,2,4,5]; + + var index = fun.getDiffIndex(); + // distanceFlag /**全部-null 正常-0 异常-1*/ + //全部 + if(index == 0){ + req.distanceFlag = null; + } + + //正常 + if(index == 1){ + req.distanceFlag = 0; + } + //异常 + if(index == 2){ + req.distanceFlag = 1 + } + + return req; + + }, + //获取正常异常下标 + getDiffIndex:function(){ + return $('#tab-btn-wrap li.tabAction').index(); + }, + // 地图初始化 + drawMarker:function(parkData,pdaData) { + // 添加百度地图 + var lonPark = parkData[0].pointX; + var latPark = parkData[0].pointY; + console.log(lonPark,latPark) + var map; //Map实例 + //清除以前的点位 + // map.clearOverlays(); + map = new BMap.Map('allmap', {enableMapClick: false}); + map.clearOverlays(); + //第1步:设置地图中心点,当前城市 + var cenpoint = new BMap.Point(lonPark,latPark); + //第2步:初始化地图,设置中心点坐标和地图级别。 + map.centerAndZoom(cenpoint, 16); + map.setCurrentCity(sysComm.cityName); // 设置地图显示的城市 此项是必须设置的 + //坐标强制居中 + // map.panBy(340, 250); + //第3步:启用滚轮放大缩小 + map.enableScrollWheelZoom(true); + //第4步:向地图中添加缩放控件 + //第5步:检测浏览器兼容 + function checkhHtml5() { + if (typeof(Worker) === "undefined") { + if (navigator.userAgent.indexOf("MSIE 9.0") <= 0) { + alert("定制个性地图示例:IE9以下不兼容,推荐使用百度浏览器、chrome、firefox、safari、IE10"); + } + + } + } + checkhHtml5(); + //第7步:绘制点 + var parkmarker = []; + var parknewpoiX = null;//坐标 + var parknewpoiY = null; + for (var i = 0; i < parkData.length; i++) { + parknewpoiX = parkData[i].pointX; + parknewpoiY = parkData[i].pointY; + + var newPoint = new BMap.Point(parknewpoiX, parknewpoiY); + + var myIcon = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/parkIcon1.png", + new BMap.Size(30, 39), { + offset: new BMap.Size(10, 39), + textColor: '#fff' + }); + parkmarker[i] = new BMap.Marker(newPoint, {icon: myIcon}); + + map.addOverlay(parkmarker[i]); + // + //电子围栏函数 + addCircle(km, parknewpoiX,parknewpoiY); + pdadrawFun(); + }; + // 停车场画圆 半径:km + function addCircle(km,parknewpoiX,parknewpoiY) { + var mPoint = new BMap.Point(parknewpoiX,parknewpoiY); + var circle = new BMap.Circle(mPoint,km,{fillColor:"#1E95CD",stroke: "#1E95CD",strokeWeight: '2' ,fillOpacity: 0.2, strokeOpacity: 0.1}); + map.addOverlay(circle); + }; + // pda + function pdadrawFun(){ + var pdamarker = []; + var newpoiX = null;//坐标 + var newpoiY = null; + var distance = null;//签到距离 + var pdatime = null;//签到时间 + var chargerName = null;//收费员名称 + for(var j=0;j'+type+'时间:'+pdatime+'
              ', { + offset: new BMap.Size(8, -36), //label的偏移量,为了让label的中心显示在点上 + position: pdapoint}); + myLabels.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + padding: "5px", + whiteSpace: "normal", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px", + zIndex: "1000" + } + ); + map.addOverlay(myLabels); + //添加pdaicon + var myIconpda = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/pdaIco.png", + new BMap.Size(24, 36)/*, { + offset: new BMap.Size(0, 18), + textColor: '#fff' + }*/); + + pdamarker[j]= new BMap.Marker(pdapoint, {icon: myIconpda}); + map.addOverlay(pdamarker[j]); + }else { + //pda标题 + myLabels = new BMap.Label('
              '+type+'时间:'+pdatime+'
              ', { + offset: new BMap.Size(8, 0), //label的偏移量,为了让label的中心显示在点上 + position: pdapoint}); + myLabels.setStyle({ + color: "#F0F0F0", + fontSize: "12px", + padding: "5px", + whiteSpace: "normal", + backgroundColor: "rgba(0, 0, 0, 0)", + border: "0px", + zIndex: "1000" + } + ); + map.addOverlay(myLabels); + //添加pdaicon + var myIconpda = new BMap.Icon("../../assets/pages/scripts/operMonFile/img/pdaIco.png", + new BMap.Size(24, 36)/*, { + offset: new BMap.Size(0, 0), + textColor: '#fff' + }*/); + + pdamarker[j]= new BMap.Marker(pdapoint, {icon: myIconpda}); + map.addOverlay(pdamarker[j]); + } + + + } + + } + + }, + //导出函数 + exportList:function(){ + //校验日期 + var req = fun.getQueryParam(); + var datesta = $("#tollcheck-daydaterange-btnsta").val(); + var dateend = $("#tollcheck-daydaterange-btnend").val(); + var beginTime = datesta+" 00:00:00"; + var endTime=dateend+" 23:59:59"; + + var chargerCodes = req.chargeCodes; + var url = dataUrl.util.exportChargerSignList() + '?chargerCodes=' + req.chargerCodes + '&distance=' + DISTANCE +'&distanceFalg=' + req.distanceFlag + '&beginTime=' + beginTime + '&endTime=' + endTime +'&sysCode='+sysComm.sysCode; + window.downloadFile(url); + }, +}; + +fun.init(); + +//切换 全部 正常 异常 +$('#tab-btn-wrap li').on('click',function () { + //因后面逻辑需要,一定要线切换 tabAction 样式, 然后在调用 对应的函数 + $(this).addClass('tabAction').siblings().removeClass('tabAction'); + fun.createTableData(); +}); +//查询按钮 +$('#tollcheck-Btn').on('click',function () { + fun.createTableData(); +}); + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + + var opt = { + method: 'post', + url: dataUrl.util.querySignRecordByChargerCode(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res); + if (res.code == '8888') { + params.success(res.data); + $("[data-toggle='tooltip']").tooltip({ + delay: {show: 500, hide: 100}, + }); + } + } + }; + sysAjax(opt); +}; + + +//导出 +//导出功能 +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#caryardReport").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#caryardReport").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#caryardReport").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#caryardReport").val("导出"); + } + else { + curCount--; + $("#caryardReport").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#caryardReport',function (){ + //获取table所有行数据 + var parkLot = $("#tollchecktable").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#tollchecktable").bootstrapTable('getOptions').totalRows; + //提示 无数据不导出 + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //超1万条 缩短查询范围 + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + + //执行倒计时函数 + sendMessage(); + + fun.exportList(); +}); \ No newline at end of file diff --git a/assets/pages/scripts/tollFile/tollCollector/inspectionper-nodata.png b/assets/pages/scripts/tollFile/tollCollector/inspectionper-nodata.png new file mode 100755 index 0000000..a57e60d Binary files /dev/null and b/assets/pages/scripts/tollFile/tollCollector/inspectionper-nodata.png differ diff --git a/assets/pages/scripts/tollFile/tollCollector/nosign-icon.png b/assets/pages/scripts/tollFile/tollCollector/nosign-icon.png new file mode 100755 index 0000000..2678ce5 Binary files /dev/null and b/assets/pages/scripts/tollFile/tollCollector/nosign-icon.png differ diff --git a/assets/pages/scripts/tollFile/tollCollector/sign-icon.png b/assets/pages/scripts/tollFile/tollCollector/sign-icon.png new file mode 100755 index 0000000..04e2cf6 Binary files /dev/null and b/assets/pages/scripts/tollFile/tollCollector/sign-icon.png differ diff --git a/assets/pages/scripts/tollFile/tollCollector/signed_icon.png b/assets/pages/scripts/tollFile/tollCollector/signed_icon.png new file mode 100755 index 0000000..543ec0d Binary files /dev/null and b/assets/pages/scripts/tollFile/tollCollector/signed_icon.png differ diff --git a/assets/pages/scripts/tollFile/tollCollector/tollcollector.css b/assets/pages/scripts/tollFile/tollCollector/tollcollector.css new file mode 100755 index 0000000..9260902 --- /dev/null +++ b/assets/pages/scripts/tollFile/tollCollector/tollcollector.css @@ -0,0 +1,490 @@ +/*公用----------------------------------------------------*/ + + + + + +/*主体----------------------------------------------------*/ + +.box-con>li{ + width: calc((100% - 54px)/3); + width: -webkit-calc((100% - 54px)/3); + width: -moz-calc((100% - 54px)/3); + min-width: 398px; + float: left; + height: 215px; + margin-bottom: 18px; +} +.box-con>li{ + margin-right:18px ; +} +.sign-tollcollectormanage{ + background: url("sign-icon.png") no-repeat right 15px ; +} +.nosign-tollcollectormanage{ + background: url("nosign-icon.png") no-repeat right 15px ; +} +.signed-tollcollectormanage{ + background: url("signed_icon.png") no-repeat right 15px ; +} + + +.box-con-pic-wrap{ + padding: 31px 30px 0 28px; +} +.box-con-pic{ + width: 80px; + height: 80px; + background: url("tollcollectormanage-head.png") no-repeat; +} +.box-con-name{ + margin: 16px 0 7px; + text-align: center; +} +.watch-type-day{ + width: 38px; + height: 20px; + line-height: 20px; + font-size: 12px; + color: #fff; + text-align: center; + background: rgba(254,200,77,1); + margin: 0 auto; +} +.watch-type-night{ + width: 38px; + height: 20px; + line-height: 20px; + font-size: 12px; + color: #fff; + text-align: center; + background: #1E95CD; + margin: 0 auto; +} +.box-con-inf-wrap{ + width: calc(100% - 165px); + width: -webkit-calc(100% - 165px); + width: -moz-calc(100% - 165px); + padding-top: 54px; + font-size: 12px; + color: rgba(0,0,0,.60); +} +.box-con-inf-wrap li{ + margin-bottom: 8px; +} +.box-con-opration{ + height: 36px; + background: #e8f4fa; + bottom: -36px; + left: 0; + width: 100%; + transition:bottom 1s; + -moz-transition:bottom 1s; /* Firefox 4 */ + -webkit-transition:bottom 1s; /* Safari and Chrome */ + -o-transition:bottom 1s; /* Opera */ +} +.box-con>li:hover .box-con-opration{ + bottom: 0; +} +.box-con-opration li{ + cursor: pointer; + margin-top: 6px; + padding: 4px 8px; + float: left; + color: #1e95cd; + font-size: 12px; + background: rgba(255,255,255,.5); + border-radius: 2px!important; + margin-left: 6px; +} + + + + + + + +/*弹窗----------------------------------------------------*/ +/*详情弹窗 sta*/ +.ITD-alertcon-tab-wrap{ + max-height: 488px; + overflow-y: auto; +} +.ITD-alert-tab-wrap{ + padding-top: 7px; +} +.ITD-alert-tab-wrap li{ + cursor: pointer; + float: left; + height: 60px; + line-height: 60px; + padding: 0 10px; + margin-right: 70px; +} +.ITD-alert-tab-active{ + border-bottom: 3px solid #5fe98f; +} + + +.toll-basic-ino-name{ + height: 57px; + line-height: 57px; +} +.toll-basic-borderbototm{ + border-bottom: 1px solid #f0f0f0; +} +.toll-basic-ifo-park-height{ + height: 34px; + line-height: 34px; +} + +.toll-basic-ifo-park span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../../img/person-icon.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.toll-basic-ifo-park-wrap li{ + padding-left: 23px; +} +.toll-basic-ifo-park-wrap li div:nth-of-type(1){ + width: 50%; +} +.toll-basic-ifo-park-wrap li div span:nth-of-type(2){ + width: 60px; + display: inline-block; + text-align:justify; + text-align-last:justify; +} +.toll-basic-ifo-type{ + display: inline-block; + width: 16px; + height: 16px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../../img/person-icon.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.toll-basic-ifo-device{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../../img/sex-icon.png); + background-repeat: no-repeat; + /*background-position: -54px 0;*/ +} +.toll-basic-ifo-total{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 16px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image:url(../../../img/business-icon.png); + background-repeat: no-repeat; + /*background-position: -18px 0;*/ +} +.toll-basic-ifo-entrance{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../../img/type-icon.png); + background-repeat: no-repeat; + /*background-position: -16px 0;*/ +} +.toll-basic-ifo-business{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../../img/telphone-icon.png); + background-repeat: no-repeat; + /*background-position: -32px 0;*/ +} +.toll-basic-ifo-address{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../../img/status-icon.png); + background-repeat: no-repeat; + /*background-position: -48px 0;*/ +} +.toll-basic-ifo-time{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 18px; + vertical-align: middle; + /*margin-top: -3px;*/ + background-image: url(../../../img/time-icon.png); + background-repeat: no-repeat; + /*background-position: -48px 0;*/ +} +.toll-basic-ifo-address-wrap{ + max-width: 310px; +} +.toll-basic-ifo-fees,.toll-basic-ifo-feesbot{ + height: 37px; + line-height: 37px; +} +.toll-basic-ifo-fees span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -54px -18px ; +} +.toll-basic-ifo-feesbot span{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../../img/information-icon.png); + background-repeat: no-repeat; + +} +.toll-basic-ifo-fees-wrap li{ + padding-left: 23px; + height:67px ; +} +.toll-basic-ifo-fees-wrap li div{ + float: left; +} +.toll-basic-ifo-fees-smallicon{ + width: 51px; + height: 51px; + background-image:url("../../../img/toll-persongroup-icon.png") ; + background-repeat: no-repeat; + background-position: 0 0; + margin-top: 8px; + margin-right: 30px; +} +.toll-basic-ifo-fees-bigicon{ + width: 51px; + height: 51px; + background-image:url("../../../img/toll-cloud-icon.png") ; + background-repeat: no-repeat; + /*background-position: -51px 0;*/ + margin-top: 8px; + margin-right: 30px; +} +.toll-basic-ifo-fees-type{ + width: 70px; + line-height: 67px; +} +.toll-basic-ifo-fees-rule{ + width: 150px; + margin-right: 65px; + line-height: 24px; + padding-top: 10px; +} +.toll-basic-ifo-fees-max{ + line-height: 67px; +} +.toll-basic-ifo-fees-max{ + width: 220px; +} +.toll-basic-ifo-fees-typeArea{ + width: 510px; + line-height: 30px; +} +.toll-basic-no-float{ + float: none !important; +} +.toll-basic-areamsg{ + width: 430px; +} +/*新增 修改 弹窗 sta ------*/ +.ITD-form-padleft5-read div.checker,.ITD-form-padleft5-read div.radio { + margin-top: -9px; + margin-left: 0 !important; +} +div.checker,div.radio{ + margin-left: 0 !important; +} +#resetmodel .modal-footer{ + border-top: 0; + text-align: center !important; +} +#write_rule,#writeoper_rule{ + color: #ff0000; +} +.form-group-ul{ + height: 120px; + width: 95%; + overflow-y:auto; +} +.berthAreaList{ + padding-left: 25px; +} +.berthAreaList li{ + float: left; + padding-left: 20px; + width: 110px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + margin: 0px 25px 5px 0; + cursor: pointer; + background: url("../../../img/input-checkexActive.png") no-repeat 0 center; +} +.berthAreaList li.checkexActive{ + background: url("../../../img/input-checkbox.png") no-repeat 0 center; +} + +.radio-list .radio{ + /*margin-right: 0 !important;*/ + /*margin-left: 0px !important;*/ + /*margin-top: -4px !important;*/ +} +.resetMsg-cont{ + height: 80px; + line-height: 80px; + text-align: center; + font-size: 14px; + /*color: rgba;*/ +} + +.ITD-daterange-bg{ + width: 180px !important; +} + +/*单选复选美化*/ +.ITD-form-group input[type=checkbox], +.ITD-form-group input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +.ITD-form-group input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../../../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +.ITD-form-group input[type=checkbox]:hover + label{ + background: url('../../../img/input-checkexActive.png') no-repeat 0 center; + +} +.ITD-form-group input[type=checkbox]:checked + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=checkbox]:checked:hover + label{ + background: url('../../../img/input-checkbox.png') no-repeat 0 center; + +} + +.ITD-form-group input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../../../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +.ITD-form-group input[type=radio]:hover + label{ + background: url('../../../img/input-radio.png') no-repeat 0 center; +} +.ITD-form-group input[type=radio]:checked + label{ + background : url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.ITD-form-group input[type=radio]:checked:hover + label{ + background: url('../../../img/input-radio-active.png') no-repeat 0 center; + +} +.inspectionper-nodata{ + width: 56px; + height: 75px; + background: url("inspectionper-nodata.png") no-repeat center 0; + margin: 0 auto; +} +.callBackallNum { + height: 34px; + line-height: 34px; + width: 120px; + top: 18px; + left: 70px; + color: #888990; +} +/*分页*/ +.callBackPager { + text-align: right; +} +.callBackallNum { + height: 34px; + line-height: 34px; + width: 120px; + /*top: 18px;*/ + left: 70px; + color: #888990; +} +.pagination { + margin-top: 16px !important; +} +.pagination-detail{ + color: rgba(0,0,0,0.65); +} +.callBackPager .pagination a { + min-width:32px; + height:32px; + background:rgba(255,255,255,1); + border-color: #D9D9D9; + border-radius: 6px !important; + margin-right: 8px; + color:rgba(0,0,0,0.65); + padding:6px !important; +} +.pagination>li>a, .pagination>li>span{ + padding: 6px !important; + text-align: center; + min-width:32px; + height:32px; +} +.callBackPager .pagination .active a{ + background:rgba(30,149,205,1) !important; + border-color: rgba(30,149,205,1); + color: #fff; +} +.toll_messum{ + max-width: 100px; + height: 17px; + line-height: 17px; +} +/*.page-content{*/ + /*min-width: 1320px !important;*/ +/*}*/ diff --git a/assets/pages/scripts/tollFile/tollCollector/tollcollector.html b/assets/pages/scripts/tollFile/tollCollector/tollcollector.html new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/assets/pages/scripts/tollFile/tollCollector/tollcollector.html diff --git a/assets/pages/scripts/tollFile/tollCollector/tollcollector.js b/assets/pages/scripts/tollFile/tollCollector/tollcollector.js new file mode 100755 index 0000000..8be1d8a --- /dev/null +++ b/assets/pages/scripts/tollFile/tollCollector/tollcollector.js @@ -0,0 +1,2601 @@ +var fun = { + init: function () { + //初始化签到状态 + $('#status').selectpicker('refresh'); + + //fun.initGroups(); + //基本信息 + fun.createTableData(); + //新增确定事件 + fun.addChargerSubmit(); + //休假确定事件 + fun.vacationSubmit(); + //修改确定事件 + fun.editChargerSubmit(); + + //重置密码提交事件 + fun.resetPwd(); + //删除提交事件 + fun.deleteChargerSubmit(); + }, + createTableData: function (curr) { + var totalCount = 0, showCount = 9, limit = 9; + var dataList = "";//返回的数据 + var req = fun.getQueryParam(); + //设置请求参数 + // var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: (curr == null || curr == "" || curr == undefined) ? 1 : curr, + pageSize: 9 + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCashierListInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + console.log(data) + if (data.rows == undefined || data.rows == null || data.rows.length == 0) { + $("#toll_collector_content").html("
              "); + $('.indexTab').css('display','none'); + return; + } + $('.indexTab').css('display','block'); + totalCount = data.total; + //console.log(totalCount) + //返回总条数 + $('#callBackallNumForShare').text(totalCount); + limit = data.rows.length; + //console.log(limit); + // showCount = data.rows.length; + dataList = data.rows; + parkData = dataList; + fun.createtollCollectorContent(dataList); + $('#callBackPager').extendPagination({ + totalCount: totalCount, + showCount: showCount, + limit: limit, + callback: function (curr, limit, totalCount,dataList) { + fun.SecondCallbackShareAjax(curr); + } + }); + + + } + } + }; + sysAjax(opt); + + }, + SecondCallbackShareAjax: function (curr) { + var totalCount = 0, showCount = 9, limit = 9; + var dataList = "";//返回的数据 + var req = fun.getQueryParam(); + //设置请求参数 + // var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: (curr == null || curr == "" || curr == undefined) ? 1 : curr, + pageSize: 9 + }; + req.sysCode = sysComm.sysCode; + var inComeAjax = { + method: 'post', + url: dataUrl.util.queryCashierListInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if ("8888" == res.code) { + var data = res.data; + totalCount = data.total; + limit = data.rows.length; + // showCount = data.rows.length; + dataList = data.rows; + // parkData = dataList; + fun.createtollCollectorContent(dataList); + + } + } + }; + sysAjax(inComeAjax); + }, + createtollCollectorContent: function (data) { + $("#toll_collector_content").empty(); + var html = ''; + $.each(data, function (index, item) { + //签到状态(-1:未签到 0:已签到 1:已签退) + if (item.status == -1) { + html += '
            52. '; + } else if (item.status == 0) { + html += '
            53. '; + } else if (item.status == 1) { + html += '
            54. '; + } else { + html += '
            55. '; + } + html += '
                ' + + '
              • ' + + '
              • ' + item.chargerName + '
              • ' + + //(item.onduty == null ? ('
              • -
              • ') : (item.onduty == 0 ? '
              • 白班
              • ' : '
              • 夜班
              • ') ) + + '
              ' + + '
                ' + + '
              • 编号 : ' + item.chargerCode + '
              • ' ; + if(item.phoneNo==null || item.phoneNo==undefined || item.phoneNo==''){ + html +='
              • 联系方式 : -
              • ' ; + }else { + html +='
              • 联系方式 : ' + item.phoneNo + '
              • ' ; + } + + html +='
              • 签到时间 : ' + DateUtils.long2String(item.signModifyTime, 11) + '
              • ' + + '
              • 入职时间 : ' + DateUtils.long2String(item.entryTime, 1) + '
              • '; + if(item.account==null || item.account==undefined || item.account==''){ + html += '
              • 账户余额 : 0.00
              • '; + + }else { + html +='
              • 账户余额 : ' + (item.account / 100).toFixed(2) + '
              • '; + } + + html +='
              ' + + '
              ' + + '
                ' + + '
              • 查看
              • ' + + '
              • 编辑
              • ' + + //'
              • 休假
              • ' + + '
              • 重置密码
              • '; + + if (item.status == 0) { + html += '
              • 强制签退
              • '; + } + + + html += '
              • 删除
              • '; + if(item.authStatus == 1){ + html += '
              • 关闭权限
              • '; + } + else{ + html += '
              • 开通权限
              • '; + } + + /* if (item.accountStatus == 0) { + html += '
              • 开通账户
              • ' ; + }else if(item.accountStatus == 1){ + html += '
              • 关闭账户
              • ' + + '
              • 充值
              • ' ; + } +*/ + html += '
              ' + + '
            56. '; + }) + $("#toll_collector_content").append(html); + + }, + /*获取查询参数*/ + getQueryParam: function () { + var status = $('#status').val(); //签到状态 + var nameOrNo = $('#chargerName').val(); //收费员编号 + var req = { + status: status, + nameOrNo: nameOrNo, + orgId:fn.getOrgId(), + sysCode: sysComm.sysCode + }; + return req; + }, + //操作 + freeReasonFormater: function (value, row, index) { + var operStr = '详情' + + '修改' + + '重置密码'; + if (row.status == 0) { + //已经签到的才可以强制签退 + operStr += '强制签退'; + } + + return operStr; + }, + //时间 + inDatatimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return "
              " + DateUtils.long2String(value, 1) + "
              "; + } + }, + querySignRecordByChargerCode: function (params) { + var req = {}; + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + req.chargerCode = params.data.chargerCode; + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit, + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.querySignRecordByChargerCode(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); + }, + + //根据主键查询详细信息 + getCashierDetailInfo: function (row) { + // + var data = JSON.parse(row); + $('#baseBerthNum').html(data.chargerCode); + $('#basePlType').html(data.chargerName); + $('#baseDeviceType').html(data.chargerSex == 0 ? '女' : '男'); + $('#baseInOutNum').html(data.cardId); + $('#baseBusiCircle').html(data.phoneNo); + $('#baseAddress').html(data.entryStatus == 0 ? '离职' : '在职'); + $('#baseenterTime').html(DateUtils.long2String(data.entryTime, 1)); + }, + + //获取休假代理收费员 + getProxyCharger: function (plNo, chargerName) { + $('#tollcoll-dtpersonID').empty(); + var plNos = []; + plNos.push(plNo); + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + } + var opt = { + method: 'post', + url: dataUrl.util.queryEmployerByPlNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log('查询代班人:' + JSON.stringify(res)); + var html = ''; + $.each(res.data, function (index, item) { + if (item.chargerName != chargerName) { + html += ' '; + } + }) + $('#tollcoll-dtpersonID').append(html); + $('#tollcoll-dtpersonID').selectpicker('refresh'); + + } + }; + sysAjax(opt); + + + }, + //详情 table 签到记录 + getCashiertableData: function (chargerCode) { + $('#cashierMsg-table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers: true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParams: function (params) { + params.chargerCode = chargerCode; + return params; + }, + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: fun.querySignRecordByChargerCode,//自定义ajax加载数据 + uniqueId: 'id', + columns: [ + // {title:'',width: '4%',checkbox: true,align: 'center'}, + {field: 'id', title: '', width: '10%', align: 'left', visible: false}, + {field: 'plName', title: '车场名称', width: '5%', align: 'left'}, + {field: 'deviceCode', title: 'PDA编号', width: '5%', align: 'left'}, + {field: 'parkAreaNames', title: '签到泊位区间', width: '10%', align: 'left',}, + { + field: 'signInTime', title: '签到时间', width: '5%', align: 'left', + formatter: function (value, row, index) { + if(value == null){ + return "-"; + } + return DateUtils.long2String(value, 10) + } + }, + { + field: 'signOutTime', title: '签退时间', width: '10%', align: 'left', + formatter: function (value, row, index) { + if(value == null){ + return "-"; + } + return DateUtils.long2String(value, 10) + } + }, + { + field: 'signOutType', + title: '签退类型', + width: '5%', + align: 'left', + formatter: function (value, row, index) { + if (undefined != value && null != value) { + if (value == '0') { + return '云平台强制签退' + } else if (value == '1') { + return '正常签退'; + } else if (value == '2') { + return '重新登录签退' + } else if (value == '3') { + return '超时强制签退' + } + } + } + }, + ] + + }); + }, + //新增确定操作 + addChargerSubmit: function () { + documentBindFunc.on('click', '#cashieraddwrite-submit', function () { + try { + addCharger(); + } catch (err) { + $('#cashieradd_rule').removeClass('display-none').text(err); + } + + }); + function addCharger() { + + var chargerName = $('#cashieradd_chargerName').val(); //收费员姓名 + var phoneNo = $('#cashieradd_phoneNo').val(); // 联系电话 + var chargerSex = $('input:radio[name="cashieradd_chargerSex"]:checked').val(); //性别 + var cardId = $('#cashieradd_cardId').val(); //身份证号 + var addr = $('#cashieradd_addr').val(); //地址 + var entryTime = new Date($('#cashieradd_entryTime').val() + ' 00:00:00'); //入职转天 + var entryStatus = $('#cashieradd_entryStatus').val(); //在职状态 + var orgId = fn.getOrgId(); + + if(cardId != null && cardId !='' && cardId != undefined){ + if(!/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(cardId)){ + throw("身份证格式不正确"); + } + } + if (chargerName == "") { + throw("姓名不能为空"); + } + if (phoneNo == "") { + throw("联系电话不能为空"); + } + if (phoneNo.length != 11) { + throw("联系电话格式不正确"); + } + $('#cashieraddwrite-submit').attr("disabled", true); + var req = { + + chargerName: chargerName, + phoneNo: phoneNo, + chargerSex: chargerSex, + addr: addr, + cardId: cardId, + entryTime: entryTime, + entryStatus: entryStatus, + chargerType:0, + orgId:orgId, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.insertEmployee(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#cashieraddwrite-submit').removeAttr("disabled"); + //console.log(res.code); + if (res.code == '8888') { + $('#cashieradd_rule').removeClass('display-none').text("保存成功"); + //初始化table + //基本信息 + fun.createTableData(); + $('#cashier_infmodel').modal('hide'); + } else { + $('#cashieradd_rule').removeClass('display-none').text(res.msg); + } + + } + }; + sysAjax(opt); + } + }, + //休假确定操作 + vacationSubmit: function () { + documentBindFunc.on('click', '#vacation-submit', function () { + var thingMsg = $.trim($('#vacation-thingMsg').val()); + $('#toll-plno').text(plNo); + var restEmployeeId = $('#toll-vacationcode').text(); + var restEmployeeName = $('#toll-vacationName').text(); + var proxyEmployeeId = $('#tollcoll-dtpersonID').val(); + var proxyEmployeeName = $("#tollcoll-dtpersonID").find("option:selected").text(); + var restStartTime = $('#vacation-daterange-btnsta').val(); + var restEndTime = $('#vacation-daterange-btnend').val(); + + if (undefined == proxyEmployeeId || proxyEmployeeId == null) { + $('#vacation_rule').removeClass('display-none').text('请选择休假人'); + return; + } + + if (thingMsg == '' || thingMsg == undefined || thingMsg == null) { + $('#vacation_rule').removeClass('display-none').text('请填写休假理由'); + return; + } + + var req = { + sysCode: sysComm.sysCode, + restEmployeeId: restEmployeeId, + restEmployeeName: restEmployeeName, + restStartTime: restStartTime, + restEndTime: restEndTime, + proxyEmployeeId: proxyEmployeeId, + proxyEmployeeName: proxyEmployeeName + } + var opt = { + method: 'post', + url: dataUrl.util.saveEmployeeRest(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log('保存代班记录:' + JSON.stringify(res)) + $('#toll_vacationmodel').modal('hide'); + } + }; + + sysAjax(opt); + + + }); + }, + //修改确定操作 + editChargerSubmit: function () { + documentBindFunc.on('click', '#cashiereditwrite-submit', function () { + try { + editCharger(); + } catch (err) { + $('#cashieredit_rule').removeClass('display-none').text(err); + } + + }); + function editCharger() { + // + var chargerName = $('#cashieredit_chargerName').val(); + var phoneNo = $('#cashieredit_phoneNo').val(); + var chargerSex = $('input:radio[name="cashieredit_chargerSex"]:checked').val(); + var cardId = $('#cashieredit_cardId').val(); + var addr = $('#cashieredit_addr').val(); + var entryTime = new Date($('#cashieredit_entryTime').val() + ' 00:00:00'); + var entryStatus = $('#cashieredit_entryStatus').val(); + var orgId =fn.getOrgId(); + if(cardId != null && cardId !='' && cardId != undefined){ + if(!/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(cardId)){ + throw("身份证格式不正确"); + } + } + + if (chargerName == "") { + throw("姓名不能为空"); + } + if (phoneNo == "") { + throw("联系电话不能为空"); + } + if (phoneNo.length != 11) { + throw("联系电话格式不正确"); + } + var id = $('#updateId').val(); + var chargerCode = $('#updateChargerCode').val(); + var req = { + id: id, + chargerCode: chargerCode, + chargerName: chargerName, + phoneNo: phoneNo, + chargerSex: chargerSex, + addr: addr, + cardId: cardId, + entryTime: entryTime, + entryStatus: entryStatus, + chargerType:0, + orgId:orgId, + sysCode: sysComm.sysCode + } + $('#cashiereditwrite-submit').attr("disabled", true); + var opt = { + method: 'post', + url: dataUrl.util.updateEmployee(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#cashiereditwrite-submit').removeAttr("disabled"); + //console.log(res.code); + if (res.code == '8888') { + $('#cashieredit_rule').removeClass('display-none').text("修改成功"); + //初始化table + $('#cashier-table').bootstrapTable('refresh', { + silent: true + }); + fun.createTableData(); + $('#cashier_changemodel').modal('hide'); + } else { + $('#cashieredit_rule').removeClass('display-none').text(res.msg); + } + + } + }; + sysAjax(opt); + } + }, + //重置密码提交按钮 + resetPwd: function () { + documentBindFunc.on('click', '#reset-submit', function () { + var id = $('#updateId').val(); + var req = { + id: id, + sysCode: sysComm.sysCode + } + $('#reset-submit').attr("disabled", true); + var opt = { + method: 'post', + url: dataUrl.util.resetpwd(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#reset-submit').attr("disabled", false); + //console.log(res.code); + if (res.code == '8888') { + $('#cashierreset_pwd_rule').removeClass('display-none').text("重置成功"); + //初始化table + $('#cashier-table').bootstrapTable('refresh', { + silent: true + }); + $('#cashier_resetmodel').modal('hide'); + } else { + $('#cashierreset_pwd_rule').removeClass('display-none').text(res.msg); + } + + } + }; + sysAjax(opt); + }); + }, + //删除提交按钮 + deleteChargerSubmit: function () { + documentBindFunc.on('click', '#cashier-delete-submit', function () { + var ids = $('#updateIds_del').val(); + var chargerCodes = $('#updateChargerCodes_del').val(); + var req = { + ids: ids.split(','), + chargerCodes: chargerCodes.split(','), + sysCode: sysComm.sysCode + } + $('#cashier-delete-submit').attr("disabled", true); + var opt = { + method: 'post', + url: dataUrl.util.deleteChargers(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#cashier-delete-submit').attr("disabled", false); + //console.log(res.code); + if (res.code == '8888') { + $('#cashierdelete_rule').removeClass('display-none').text("删除成功"); + fun.createTableData(); + $('#cashier_deletemodel').modal('hide'); + } else { + $('#cashierdelete_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + } + +}; +fun.init(); +// $('#cashier_detailmodel').modal('show'); +//查询 +documentBindFunc.on('click', '#chashier-queryBtn', function () { + fun.createTableData(); +}); +//详情弹窗 +documentBindFunc.on('click', '.lookMsg', function () { + + var id = $(this).data('code'); + var chargerCode = $(this).data('chargercode'); + var dataRowstr = $(this).attr('data-rowstr'); + + $('#cashier_detailmodel').modal('show'); + fun.getCashierDetailInfo(dataRowstr); + fun.getCashiertableData(chargerCode); +}); + +//新增弹窗 +documentBindFunc.on('click', '#cashier-addBtn', function () { + $('#cashieradd_rule').addClass('display-none').text(''); + //管理泊位区间 + //$("#cashieradd-berthAreaList").empty(); + //var html = ' '; + //$("#cashieradd-berthAreaList").append(html); + //性别 + $('#cashieradd_chargerSex1').prop('checked', true); + $('#cashieradd_chargerSex0').prop('checked', false); + //姓名 + $("#cashieradd_chargerName").val(''); + //联系电话 + $("#cashieradd_phoneNo").val(''); + //身份证 + $("#cashieradd_cardId").val(''); + //全选 初始化 actContentAll + $('#actContentAll').removeClass('checkexActive'); + + //在职状态 + $("#cashieradd_entryStatus").selectpicker('render'); + //收费组 + // $("#cashieradd_groupCode").selectpicker('render'); + //值班类型 + // $("#cashieradd_onduty").selectpicker('render'); + //地址 + $("#cashieradd_addr").val(''); + + + //新增入职时间 + $("#cashieradd_entryTime").val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#cashieradd_entryTime").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + pickerPosition:'top-right', + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + }); + $('#cashier_infmodel').modal('show'); + //fun.addInitParkAreaBlocks(); +}); + +//修改弹窗 +documentBindFunc.on('click', '.reviseMsg', function (element) { + + var id = $(this).attr('data-code'); + $("#updateId").val(id); + var modifyRow = $(this).data('rowstr'); + debugger + //var modifyRow = JSON.parse(rowStr); + + $('#updateChargerCode').val(modifyRow.chargerCode); + $('#cashieredit_rule').addClass('display-none').text(''); + $('#cashieredit_chargerName').val(modifyRow.chargerName); + $('#cashieredit_chargerSex' + modifyRow.chargerSex).prop("checked", true); + $('#cashieredit_cardId').val(modifyRow.cardId); + $('#cashieredit_phoneNo').val(modifyRow.phoneNo); + $('#cashieredit_entryStatus').val(modifyRow.entryStatus); + //在职状态 + $("#cashieredit_entryStatus").selectpicker('refresh'); + $("#cashieredit_entryTime").val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#cashieredit_entryTime").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + $('#cashieredit_entryTime').val(DateUtils.long2String(modifyRow.entryTime, 1)); + $('#cashieredit_addr').val(modifyRow.addr); + + + $('#cashier_changemodel').modal('show') +}); + +//重置密码 +documentBindFunc.on('click', '.reMsg', function (element) { + $('#cashierreset_pwd_rule').addClass('display-none').text(''); + var id = $(this).attr('data-code'); + $("#updateId").val(id); + $('#cashier_resetmodel').modal('show') +}); +//休假弹窗 +documentBindFunc.on('click', '.toll-basic-vacation', function (element) { + $('#toll-vacationName').text(''); + $('#toll-vacationcode').text(''); + $('#vacation_rule').addClass('display-none').text(''); + var code = $(this).attr('data-chargercode'); + var name = $(this).attr('data-name'); + var plNo = $(this).attr('data-plno'); + $('#toll-vacationName').text(name); + $('#toll-vacationcode').text(code); + $('#toll-plno').text(plNo); + fun.getProxyCharger(plNo, name); + + $('#tollcoll-dtpersonID').selectpicker('refresh'); + $('#vacation-thingMsg').val(''); + //时间初始化 + $('#vacation-daterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $('#vacation-daterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#vacation-daterange-btnsta").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("click", function () { + $("#vacation-daterange-btnsta").datetimepicker("setEndDate", $("#vacation-daterange-btnend").val()) + }); + + //结束日期 + $("#vacation-daterange-btnend").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("click", function () { + $("#vacation-daterange-btnend").datetimepicker("setStartDate", $("#vacation-daterange-btnsta").val()) + }); + + + // $("#updateId").val(id); + $('#toll_vacationmodel').modal('show') +}); +//删除操作 +documentBindFunc.on('click', '.cashier-del', function (element) { + $('#cashierdelete_rule').addClass('display-none').text(''); + var ids = $(this).attr('data-code'); + $('#updateIds_del').val(ids); + var chargerCodes = getChargerCodeSelections(); + $('#updateChargerCodes_del').val(chargerCodes); + //判断 未选择一条记录 + if (ids == null || ids.length == 0) { + $('#cashier_alertmodel').modal('show') + setTimeout(function () { + $('#cashier_alertmodel').modal('hide') + }, 1500); + return false; + } else { + $('#cashier_deletemodel').modal('show') + } +}); +//开通权限 +documentBindFunc.on('click', '.cashierAuthSwitch', function (element) { + $('#cashierauthstatus').addClass('display-none').text(''); + var id = $(this).attr('data-code'); + var authStatus = $(this).attr('authstatus'); + if(id == undefined || id == null || authStatus == null || authStatus == undefined){ + console.log('id或者权限状态为空!'); + return; + } + if(authStatus == 0){ + $("#authStatusTitle").text("确定关闭权限吗?"); + }else{ + $("#authStatusTitle").text("确定开通权限吗?"); + } + $('#updateId').val(id); + $('#updateAuthStatus').val(authStatus); + $('#cashier_authstatus').modal('show'); + +}); +//权限开关 +documentBindFunc.on('click', '#cashier-auth-submit', function (element) { + + var id = $('#updateId').val(); + var authStatus = $('#updateAuthStatus').val(); + + var req = { + id: id, + authStatus: authStatus, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.updateEmployerAuthState(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res.code); + if (res.code == '8888' && res.data) { + $('#cashierauthstatus').removeClass('display-none').text("修改权限成功!"); + $('#cashier_authstatus').modal('hide'); + fun.createTableData(); + }else{ + $('#cashierauthstatus').removeClass('display-none').text("修改权限失败!"); + console.log(res); + } + } + }; + sysAjax(opt); +}); + +//充值操作 +documentBindFunc.on('click', '.cashier-recharge', function (element) { + var chargercode = $(this).attr('data-chargercode'); + $('#recharge_error').addClass('display-none').text(''); + $('#tolltorNum').text(chargercode); + $('#tolltor_amount').val(''); + var req = { + custId: chargercode, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.queryEmployeeAccount(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res.code); + if (res.code == '8888') { + $('#tolltorsum').text((res.data.acctBalance / 100).toFixed(2)); + $('#cashier_rechargemodel').modal('show'); + }else{ + return ; + } + } + }; + sysAjax(opt); +}); +//充值确定操作 ajax +documentBindFunc.on('click', '#tolltorrecharge_submit', function (element) { + var amount = $.trim($('#tolltor_amount').val()); + var monNum=$('#tolltorsum').text(); + var total=parseFloat(amount)+parseFloat(monNum); + if (amount == '' || amount == undefined || amount == null) { + $('#recharge_error').removeClass('display-none').text('请输入充值金额'); + return; + }else if(parseFloat(total)<0){ + $('#recharge_error').removeClass('display-none').text('负向充值金额不能大于当前余额'); + return; + } + else{ + var chargercode = $('#tolltorNum').text(); + var rechargeFee = $('#tolltor_amount').val(); + var rechargeFee = rechargeFee * 100; + var req = { + custId: chargercode, + rechargeFee:rechargeFee, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.accountEmployeeRechargeByXJ(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res.code); + if (res.code == '8888') { + //初始化table + fun.createTableData(); + $('#cashier_rechargemodel').modal('hide'); + }else{ + $('#openAccountMsg').html(res.msg); + $('#cashier_openaccountmodel').modal('show') + setTimeout(function () { + $('#cashier_openaccountmodel').modal('hide') + }, 1500); + } + } + }; + sysAjax(opt); + } + +}); + +//强制签退操作 +documentBindFunc.on('click', '.forceSignOutMsg', function (element) { + var chargercode = $(this).attr('data-chargercode'); + var chargerCodes = []; + chargerCodes.push(chargercode); + var req = { + chargerCodes: chargerCodes, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.forceSignOut(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res.code); + if (res.code == '8888') { + $('#forceSignOutMsg').html("强制签退成功"); + //初始化table + fun.createTableData(); + $('#cashier_offmodel').modal('show'); + setTimeout(function () { + $('#cashier_offmodel').modal('hide') + }, 1500); + } else { + $('#forceSignOutMsg').html(res.msg); + $('#cashier_offmodel').modal('show') + setTimeout(function () { + $('#cashier_offmodel').modal('hide') + }, 1500); + } + + } + }; + sysAjax(opt); + +}); + +//开通账户操作 +documentBindFunc.on('click', '.accountStatusOpen', function (element) { + var chargercode = $(this).attr('data-chargercode'); + var id = $(this).attr('data-code'); + var req = { + id:id, + chargerCode: chargercode, + accountStatus:1, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.updateEmployeeAccountStatus(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res.code); + if (res.code == '8888') { + $('#openAccountMsg').html("开通账户成功"); + //初始化table + fun.createTableData(); + $('#cashier_openaccountmodel').modal('show'); + setTimeout(function () { + $('#cashier_openaccountmodel').modal('hide') + }, 1500); + } else { + $('#openAccountMsg').html(res.msg); + $('#cashier_openaccountmodel').modal('show') + setTimeout(function () { + $('#cashier_openaccountmodel').modal('hide') + }, 1500); + } + + } + }; + sysAjax(opt); + +}); + +//关闭账户操作 +documentBindFunc.on('click', '.accountStatusClose', function (element) { + var chargercode = $(this).attr('data-chargercode'); + var id = $(this).attr('data-code'); + var req = { + id:id, + chargerCode: chargercode, + accountStatus:0, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.updateEmployeeAccountStatus(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res.code); + if (res.code == '8888') { + $('#openAccountMsg').html("关闭账户成功"); + //初始化table + fun.createTableData(); + $('#cashier_openaccountmodel').modal('show'); + setTimeout(function () { + $('#cashier_openaccountmodel').modal('hide') + }, 1500); + } else { + $('#openAccountMsg').html(res.msg); + $('#cashier_openaccountmodel').modal('show') + setTimeout(function () { + $('#cashier_openaccountmodel').modal('hide') + }, 1500); + } + + } + }; + sysAjax(opt); + +}); + + + + +//获取选中的id列表 +function getIdSelections() { + return $.map($("#cashier-table").bootstrapTable('getSelections'), function (row) { + return row.id + }); +}; +function getChargerCodeSelections() { + return $.map($("#cashier-table").bootstrapTable('getSelections'), function (row) { + return row.chargerCode + }); +}; + + +//新增全选或全不选 +documentBindFunc.on("click", "#actContentAll", function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $("#cashieradd-berthAreaList li").addClass('checkexActive'); + } else { + flag = false; + $("#cashieradd-berthAreaList li").removeClass('checkexActive'); + } + +}); +//新增收费员信息 管理泊位区间 +$('#cashieradd-berthAreaList').delegate('li', 'click', function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $('#cashieradd-berthAreaList li').each(function () { + if ($(this).hasClass('checkexActive')) { + } else { + flag = false; + $('#actContentAll').parent().removeClass('checked') + } + }); + if (flag) { + console.log(flag) + $('#actContentAll').parent().addClass('checked') + } + } else { + flag = false; + $('#actContentAll').parent().removeClass('checked') + } +}); +//修改全选或全不选 +documentBindFunc.on("click", "#edit_actContentAll", function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $("#cashieredit-berthAreaList li").addClass('checkexActive'); + } else { + flag = false; + $("#cashieredit-berthAreaList li").removeClass('checkexActive'); + } + +}); +//修改收费员信息 管理泊位区间 +$(document).delegate('#cashieredit-berthAreaList li', 'click', function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $('#cashieredit-berthAreaList li').each(function () { + if ($(this).hasClass('checkexActive')) { + } else { + flag = false; + } + }); + + if (flag) { + $('#edit_actContentAll').addClass('checkexActive'); + $('#edit_actContentAll').attr("checked", true); + } else { + flag = false; + $('#edit_actContentAll').removeClass('checkexActive'); + $('#edit_actContentAll').removeAttr("checked"); + } + } +}); + + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCashierListInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); +}); + +//用户只能输入正负数与小数 +function upperCase(obj){ + if(isNaN(obj.value) && !/^-$/.test(obj.value)){ + obj.value=""; + }var fun = { + init: function () { + //初始化签到状态 + $('#status').selectpicker('refresh'); + + //fun.initGroups(); + //基本信息 + fun.createTableData(); + //新增确定事件 + fun.addChargerSubmit(); + //休假确定事件 + fun.vacationSubmit(); + //修改确定事件 + fun.editChargerSubmit(); + + //重置密码提交事件 + fun.resetPwd(); + //删除提交事件 + fun.deleteChargerSubmit(); + }, + createTableData: function (curr) { + var totalCount = 0, showCount = 9, limit = 9; + var dataList = "";//返回的数据 + var req = fun.getQueryParam(); + //设置请求参数 + // var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: (curr == null || curr == "" || curr == undefined) ? 1 : curr, + pageSize: 9 + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCashierListInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + console.log(data) + if (data.rows == undefined || data.rows == null || data.rows.length == 0) { + $("#toll_collector_content").html("
              "); + $('.indexTab').css('display','none'); + return; + } + $('.indexTab').css('display','block'); + totalCount = data.total; + //console.log(totalCount) + //返回总条数 + $('#callBackallNumForShare').text(totalCount); + limit = data.rows.length; + //console.log(limit); + // showCount = data.rows.length; + dataList = data.rows; + parkData = dataList; + fun.createtollCollectorContent(dataList); + $('#callBackPager').extendPagination({ + totalCount: totalCount, + showCount: showCount, + limit: limit, + callback: function (curr, limit, totalCount,dataList) { + fun.SecondCallbackShareAjax(curr); + } + }); + + + } + } + }; + sysAjax(opt); + + }, + SecondCallbackShareAjax: function (curr) { + var totalCount = 0, showCount = 9, limit = 9; + var dataList = "";//返回的数据 + var req = fun.getQueryParam(); + //设置请求参数 + // var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: (curr == null || curr == "" || curr == undefined) ? 1 : curr, + pageSize: 9 + }; + req.sysCode = sysComm.sysCode; + var inComeAjax = { + method: 'post', + url: dataUrl.util.queryCashierListInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if ("8888" == res.code) { + var data = res.data; + totalCount = data.total; + limit = data.rows.length; + // showCount = data.rows.length; + dataList = data.rows; + // parkData = dataList; + fun.createtollCollectorContent(dataList); + + } + } + }; + sysAjax(inComeAjax); + }, + createtollCollectorContent: function (data) { + $("#toll_collector_content").empty(); + var html = ''; + $.each(data, function (index, item) { + //签到状态(-1:未签到 0:已签到 1:已签退) + if (item.status == -1) { + html += '
            57. '; + } else if (item.status == 0) { + html += '
            58. '; + } else if (item.status == 1) { + html += '
            59. '; + } else { + html += '
            60. '; + } + html += '
                ' + + '
              • ' + + '
              • ' + item.chargerName + '
              • ' + + //(item.onduty == null ? ('
              • -
              • ') : (item.onduty == 0 ? '
              • 白班
              • ' : '
              • 夜班
              • ') ) + + '
              ' + + '
                ' + + '
              • 编号 : ' + item.chargerCode + '
              • ' ; + if(item.phoneNo==null || item.phoneNo==undefined || item.phoneNo==''){ + html +='
              • 联系方式 : -
              • ' ; + }else { + html +='
              • 联系方式 : ' + item.phoneNo + '
              • ' ; + } + + html +='
              • 签到时间 : ' + DateUtils.long2String(item.signModifyTime, 11) + '
              • ' + + '
              • 入职时间 : ' + DateUtils.long2String(item.entryTime, 1) + '
              • '; + if(item.account==null || item.account==undefined || item.account==''){ + html += '
              • 账户余额 : 0.00
              • '; + + }else { + html +='
              • 账户余额 : ' + (item.account / 100).toFixed(2) + '
              • '; + } + + html +='
              ' + + '
              ' + + '
                ' + + '
              • 查看
              • ' + + '
              • 编辑
              • ' + + //'
              • 休假
              • ' + + '
              • 重置密码
              • '; + + if (item.status == 0) { + html += '
              • 强制签退
              • '; + } + + + html += '
              • 删除
              • '; + /* if (item.accountStatus == 0) { + html += '
              • 开通账户
              • ' ; + }else if(item.accountStatus == 1){ + html += '
              • 关闭账户
              • ' + + '
              • 充值
              • ' ; + } + */ + html += '
              ' + + '
            61. '; + }) + $("#toll_collector_content").append(html); + + }, + /*获取查询参数*/ + getQueryParam: function () { + var status = $('#status').val(); //签到状态 + var nameOrNo = $('#chargerName').val(); //收费员编号 + var req = { + status: status, + nameOrNo: nameOrNo, + orgId:fn.getOrgId(), + sysCode: sysComm.sysCode + }; + return req; + }, + //操作 + freeReasonFormater: function (value, row, index) { + var operStr = '详情' + + '修改' + + '重置密码'; + if (row.status == 0) { + //已经签到的才可以强制签退 + operStr += '强制签退'; + } + + return operStr; + }, + //时间 + inDatatimeFormatter: function (value, row, index) { + if (value == null) { + return ""; + } else { + return "
              " + DateUtils.long2String(value, 1) + "
              "; + } + }, + querySignRecordByChargerCode: function (params) { + var req = {}; + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + req.chargerCode = params.data.chargerCode; + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit, + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.querySignRecordByChargerCode(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); + }, + + //根据主键查询详细信息 + getCashierDetailInfo: function (row) { + // + var data = JSON.parse(row); + $('#baseBerthNum').html(data.chargerCode); + $('#basePlType').html(data.chargerName); + $('#baseDeviceType').html(data.chargerSex == 0 ? '女' : '男'); + $('#baseInOutNum').html(data.cardId); + $('#baseBusiCircle').html(data.phoneNo); + $('#baseAddress').html(data.entryStatus == 0 ? '离职' : '在职'); + $('#baseenterTime').html(DateUtils.long2String(data.entryTime, 1)); + }, + + //获取休假代理收费员 + getProxyCharger: function (plNo, chargerName) { + $('#tollcoll-dtpersonID').empty(); + var plNos = []; + plNos.push(plNo); + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + } + var opt = { + method: 'post', + url: dataUrl.util.queryEmployerByPlNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log('查询代班人:' + JSON.stringify(res)); + var html = ''; + $.each(res.data, function (index, item) { + if (item.chargerName != chargerName) { + html += ' '; + } + }) + $('#tollcoll-dtpersonID').append(html); + $('#tollcoll-dtpersonID').selectpicker('refresh'); + + } + }; + sysAjax(opt); + + + }, + //详情 table 签到记录 + getCashiertableData: function (chargerCode) { + $('#cashierMsg-table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + rownumbers: true, + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParams: function (params) { + params.chargerCode = chargerCode; + return params; + }, + queryParamsType: 'limit', + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: fun.querySignRecordByChargerCode,//自定义ajax加载数据 + uniqueId: 'id', + columns: [ + // {title:'',width: '4%',checkbox: true,align: 'center'}, + {field: 'id', title: '', width: '10%', align: 'left', visible: false}, + {field: 'plName', title: '车场名称', width: '5%', align: 'left'}, + {field: 'deviceCode', title: 'PDA编号', width: '5%', align: 'left'}, + {field: 'parkAreaNames', title: '签到泊位区间', width: '10%', align: 'left',}, + { + field: 'signInTime', title: '签到时间', width: '5%', align: 'left', + formatter: function (value, row, index) { + if(value == null){ + return "-"; + } + return DateUtils.long2String(value, 10) + } + }, + { + field: 'signOutTime', title: '签退时间', width: '10%', align: 'left', + formatter: function (value, row, index) { + if(value == null){ + return "-"; + } + return DateUtils.long2String(value, 10) + } + }, + { + field: 'signOutType', + title: '签退类型', + width: '5%', + align: 'left', + formatter: function (value, row, index) { + if (undefined != value && null != value) { + if (value == '0') { + return '云平台强制签退' + } else if (value == '1') { + return '正常签退'; + } else if (value == '2') { + return '重新登录签退' + } else if (value == '3') { + return '超时强制签退' + } + } + } + }, + ] + + }); + }, + //新增确定操作 + addChargerSubmit: function () { + documentBindFunc.on('click', '#cashieraddwrite-submit', function () { + try { + addCharger(); + } catch (err) { + $('#cashieradd_rule').removeClass('display-none').text(err); + } + + }); + function addCharger() { + + var chargerName = $('#cashieradd_chargerName').val(); //收费员姓名 + var phoneNo = $('#cashieradd_phoneNo').val(); // 联系电话 + var chargerSex = $('input:radio[name="cashieradd_chargerSex"]:checked').val(); //性别 + var cardId = $('#cashieradd_cardId').val(); //身份证号 + var addr = $('#cashieradd_addr').val(); //地址 + var entryTime = new Date($('#cashieradd_entryTime').val() + ' 00:00:00'); //入职转天 + var entryStatus = $('#cashieradd_entryStatus').val(); //在职状态 + var orgId = fn.getOrgId(); + + if(cardId != null && cardId !='' && cardId != undefined){ + if(!/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(cardId)){ + throw("身份证格式不正确"); + } + } + if (chargerName == "") { + throw("姓名不能为空"); + } + if (phoneNo == "") { + throw("联系电话不能为空"); + } + if (phoneNo.length != 11) { + throw("联系电话格式不正确"); + } + $('#cashieraddwrite-submit').attr("disabled", true); + var req = { + + chargerName: chargerName, + phoneNo: phoneNo, + chargerSex: chargerSex, + addr: addr, + cardId: cardId, + entryTime: entryTime, + entryStatus: entryStatus, + chargerType:0, + orgId:orgId, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.insertEmployee(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#cashieraddwrite-submit').removeAttr("disabled"); + //console.log(res.code); + if (res.code == '8888') { + $('#cashieradd_rule').removeClass('display-none').text("保存成功"); + //初始化table + //基本信息 + fun.createTableData(); + $('#cashier_infmodel').modal('hide'); + } else { + $('#cashieradd_rule').removeClass('display-none').text(res.msg); + } + + } + }; + sysAjax(opt); + } + }, + //休假确定操作 + vacationSubmit: function () { + documentBindFunc.on('click', '#vacation-submit', function () { + var thingMsg = $.trim($('#vacation-thingMsg').val()); + $('#toll-plno').text(plNo); + var restEmployeeId = $('#toll-vacationcode').text(); + var restEmployeeName = $('#toll-vacationName').text(); + var proxyEmployeeId = $('#tollcoll-dtpersonID').val(); + var proxyEmployeeName = $("#tollcoll-dtpersonID").find("option:selected").text(); + var restStartTime = $('#vacation-daterange-btnsta').val(); + var restEndTime = $('#vacation-daterange-btnend').val(); + + if (undefined == proxyEmployeeId || proxyEmployeeId == null) { + $('#vacation_rule').removeClass('display-none').text('请选择休假人'); + return; + } + + if (thingMsg == '' || thingMsg == undefined || thingMsg == null) { + $('#vacation_rule').removeClass('display-none').text('请填写休假理由'); + return; + } + + var req = { + sysCode: sysComm.sysCode, + restEmployeeId: restEmployeeId, + restEmployeeName: restEmployeeName, + restStartTime: restStartTime, + restEndTime: restEndTime, + proxyEmployeeId: proxyEmployeeId, + proxyEmployeeName: proxyEmployeeName + } + var opt = { + method: 'post', + url: dataUrl.util.saveEmployeeRest(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log('保存代班记录:' + JSON.stringify(res)) + $('#toll_vacationmodel').modal('hide'); + } + }; + + sysAjax(opt); + + + }); + }, + //修改确定操作 + editChargerSubmit: function () { + documentBindFunc.on('click', '#cashiereditwrite-submit', function () { + try { + editCharger(); + } catch (err) { + $('#cashieredit_rule').removeClass('display-none').text(err); + } + + }); + function editCharger() { + // + var chargerName = $('#cashieredit_chargerName').val(); + var phoneNo = $('#cashieredit_phoneNo').val(); + var chargerSex = $('input:radio[name="cashieredit_chargerSex"]:checked').val(); + var cardId = $('#cashieredit_cardId').val(); + var addr = $('#cashieredit_addr').val(); + var entryTime = new Date($('#cashieredit_entryTime').val() + ' 00:00:00'); + var entryStatus = $('#cashieredit_entryStatus').val(); + var orgId =fn.getOrgId(); + if(cardId != null && cardId !='' && cardId != undefined){ + if(!/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(cardId)){ + throw("身份证格式不正确"); + } + } + + if (chargerName == "") { + throw("姓名不能为空"); + } + if (phoneNo == "") { + throw("联系电话不能为空"); + } + if (phoneNo.length != 11) { + throw("联系电话格式不正确"); + } + var id = $('#updateId').val(); + var chargerCode = $('#updateChargerCode').val(); + var req = { + id: id, + chargerCode: chargerCode, + chargerName: chargerName, + phoneNo: phoneNo, + chargerSex: chargerSex, + addr: addr, + cardId: cardId, + entryTime: entryTime, + entryStatus: entryStatus, + chargerType:0, + orgId:orgId, + sysCode: sysComm.sysCode + } + $('#cashiereditwrite-submit').attr("disabled", true); + var opt = { + method: 'post', + url: dataUrl.util.updateEmployee(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#cashiereditwrite-submit').removeAttr("disabled"); + //console.log(res.code); + if (res.code == '8888') { + $('#cashieredit_rule').removeClass('display-none').text("修改成功"); + //初始化table + $('#cashier-table').bootstrapTable('refresh', { + silent: true + }); + fun.createTableData(); + $('#cashier_changemodel').modal('hide'); + } else { + $('#cashieredit_rule').removeClass('display-none').text(res.msg); + } + + } + }; + sysAjax(opt); + } + }, + //重置密码提交按钮 + resetPwd: function () { + documentBindFunc.on('click', '#reset-submit', function () { + var id = $('#updateId').val(); + var req = { + id: id, + sysCode: sysComm.sysCode + } + $('#reset-submit').attr("disabled", true); + var opt = { + method: 'post', + url: dataUrl.util.resetpwd(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#reset-submit').attr("disabled", false); + //console.log(res.code); + if (res.code == '8888') { + $('#cashierreset_pwd_rule').removeClass('display-none').text("重置成功"); + //初始化table + $('#cashier-table').bootstrapTable('refresh', { + silent: true + }); + $('#cashier_resetmodel').modal('hide'); + } else { + $('#cashierreset_pwd_rule').removeClass('display-none').text(res.msg); + } + + } + }; + sysAjax(opt); + }); + }, + //删除提交按钮 + deleteChargerSubmit: function () { + documentBindFunc.on('click', '#cashier-delete-submit', function () { + var ids = $('#updateIds_del').val(); + var chargerCodes = $('#updateChargerCodes_del').val(); + var req = { + ids: ids.split(','), + chargerCodes: chargerCodes.split(','), + sysCode: sysComm.sysCode + } + $('#cashier-delete-submit').attr("disabled", true); + var opt = { + method: 'post', + url: dataUrl.util.deleteChargers(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#cashier-delete-submit').attr("disabled", false); + //console.log(res.code); + if (res.code == '8888') { + $('#cashierdelete_rule').removeClass('display-none').text("删除成功"); + fun.createTableData(); + $('#cashier_deletemodel').modal('hide'); + } else { + $('#cashierdelete_rule').removeClass('display-none').text(res.msg); + } + } + }; + sysAjax(opt); + }); + } + + }; + fun.init(); +// $('#cashier_detailmodel').modal('show'); +//查询 + documentBindFunc.on('click', '#chashier-queryBtn', function () { + fun.createTableData(); + }); +//详情弹窗 + documentBindFunc.on('click', '.lookMsg', function () { + + var id = $(this).data('code'); + var chargerCode = $(this).data('chargercode'); + var dataRowstr = $(this).attr('data-rowstr'); + + $('#cashier_detailmodel').modal('show'); + fun.getCashierDetailInfo(dataRowstr); + fun.getCashiertableData(chargerCode); + }); + +//新增弹窗 + documentBindFunc.on('click', '#cashier-addBtn', function () { + $('#cashieradd_rule').addClass('display-none').text(''); + //管理泊位区间 + //$("#cashieradd-berthAreaList").empty(); + //var html = ' '; + //$("#cashieradd-berthAreaList").append(html); + //性别 + $('#cashieradd_chargerSex1').prop('checked', true); + $('#cashieradd_chargerSex0').prop('checked', false); + //姓名 + $("#cashieradd_chargerName").val(''); + //联系电话 + $("#cashieradd_phoneNo").val(''); + //身份证 + $("#cashieradd_cardId").val(''); + //全选 初始化 actContentAll + $('#actContentAll').removeClass('checkexActive'); + + //在职状态 + $("#cashieradd_entryStatus").selectpicker('render'); + //收费组 + // $("#cashieradd_groupCode").selectpicker('render'); + //值班类型 + // $("#cashieradd_onduty").selectpicker('render'); + //地址 + $("#cashieradd_addr").val(''); + + + //新增入职时间 + $("#cashieradd_entryTime").val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#cashieradd_entryTime").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + pickerPosition:'top-right', + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + }); + $('#cashier_infmodel').modal('show'); + //fun.addInitParkAreaBlocks(); + }); + +//修改弹窗 + documentBindFunc.on('click', '.reviseMsg', function (element) { + + var id = $(this).attr('data-code'); + $("#updateId").val(id); + var modifyRow = $(this).data('rowstr'); + debugger + //var modifyRow = JSON.parse(rowStr); + + $('#updateChargerCode').val(modifyRow.chargerCode); + $('#cashieredit_rule').addClass('display-none').text(''); + $('#cashieredit_chargerName').val(modifyRow.chargerName); + $('#cashieredit_chargerSex' + modifyRow.chargerSex).prop("checked", true); + $('#cashieredit_cardId').val(modifyRow.cardId); + $('#cashieredit_phoneNo').val(modifyRow.phoneNo); + $('#cashieredit_entryStatus').val(modifyRow.entryStatus); + //在职状态 + $("#cashieredit_entryStatus").selectpicker('refresh'); + $("#cashieredit_entryTime").val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#cashieredit_entryTime").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }); + $('#cashieredit_entryTime').val(DateUtils.long2String(modifyRow.entryTime, 1)); + $('#cashieredit_addr').val(modifyRow.addr); + + + $('#cashier_changemodel').modal('show') + }); + +//重置密码 + documentBindFunc.on('click', '.reMsg', function (element) { + $('#cashierreset_pwd_rule').addClass('display-none').text(''); + var id = $(this).attr('data-code'); + $("#updateId").val(id); + $('#cashier_resetmodel').modal('show') + }); +//休假弹窗 + documentBindFunc.on('click', '.toll-basic-vacation', function (element) { + $('#toll-vacationName').text(''); + $('#toll-vacationcode').text(''); + $('#vacation_rule').addClass('display-none').text(''); + var code = $(this).attr('data-chargercode'); + var name = $(this).attr('data-name'); + var plNo = $(this).attr('data-plno'); + $('#toll-vacationName').text(name); + $('#toll-vacationcode').text(code); + $('#toll-plno').text(plNo); + fun.getProxyCharger(plNo, name); + + $('#tollcoll-dtpersonID').selectpicker('refresh'); + $('#vacation-thingMsg').val(''); + //时间初始化 + $('#vacation-daterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $('#vacation-daterange-btnend').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + //开始日期 + $("#vacation-daterange-btnsta").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("click", function () { + $("#vacation-daterange-btnsta").datetimepicker("setEndDate", $("#vacation-daterange-btnend").val()) + }); + + //结束日期 + $("#vacation-daterange-btnend").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("click", function () { + $("#vacation-daterange-btnend").datetimepicker("setStartDate", $("#vacation-daterange-btnsta").val()) + }); + + + // $("#updateId").val(id); + $('#toll_vacationmodel').modal('show') + }); +//删除操作 + documentBindFunc.on('click', '.cashier-del', function (element) { + $('#cashierdelete_rule').addClass('display-none').text(''); + var ids = $(this).attr('data-code'); + $('#updateIds_del').val(ids); + var chargerCodes = getChargerCodeSelections(); + $('#updateChargerCodes_del').val(chargerCodes); + //判断 未选择一条记录 + if (ids == null || ids.length == 0) { + $('#cashier_alertmodel').modal('show') + setTimeout(function () { + $('#cashier_alertmodel').modal('hide') + }, 1500); + return false; + } else { + $('#cashier_deletemodel').modal('show') + } + }); + +//充值操作 + documentBindFunc.on('click', '.cashier-recharge', function (element) { + var chargercode = $(this).attr('data-chargercode'); + $('#recharge_error').addClass('display-none').text(''); + $('#tolltorNum').text(chargercode); + $('#tolltor_amount').val(''); + var req = { + custId: chargercode, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.queryEmployeeAccount(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res.code); + if (res.code == '8888') { + $('#tolltorsum').text((res.data.acctBalance / 100).toFixed(2)); + $('#cashier_rechargemodel').modal('show'); + }else{ + return ; + } + } + }; + sysAjax(opt); + }); +//充值确定操作 ajax + documentBindFunc.on('click', '#tolltorrecharge_submit', function (element) { + var amount = $.trim($('#tolltor_amount').val()); + var monNum=$('#tolltorsum').text(); + var total=parseFloat(amount)+parseFloat(monNum); + if (amount == '' || amount == undefined || amount == null) { + $('#recharge_error').removeClass('display-none').text('请输入充值金额'); + return; + }else if(parseFloat(total)<0){ + $('#recharge_error').removeClass('display-none').text('负向充值金额不能大于当前余额'); + return; + } + else{ + var chargercode = $('#tolltorNum').text(); + var rechargeFee = $('#tolltor_amount').val(); + var rechargeFee = rechargeFee * 100; + var req = { + custId: chargercode, + rechargeFee:rechargeFee, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.accountEmployeeRechargeByXJ(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res.code); + if (res.code == '8888') { + //初始化table + fun.createTableData(); + $('#cashier_rechargemodel').modal('hide'); + }else{ + $('#openAccountMsg').html(res.msg); + $('#cashier_openaccountmodel').modal('show') + setTimeout(function () { + $('#cashier_openaccountmodel').modal('hide') + }, 1500); + } + } + }; + sysAjax(opt); + } + + }); + +//强制签退操作 + documentBindFunc.on('click', '.forceSignOutMsg', function (element) { + var chargercode = $(this).attr('data-chargercode'); + var chargerCodes = []; + chargerCodes.push(chargercode); + var req = { + chargerCodes: chargerCodes, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.forceSignOut(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res.code); + if (res.code == '8888') { + $('#forceSignOutMsg').html("强制签退成功"); + //初始化table + fun.createTableData(); + $('#cashier_offmodel').modal('show'); + setTimeout(function () { + $('#cashier_offmodel').modal('hide') + }, 1500); + } else { + $('#forceSignOutMsg').html(res.msg); + $('#cashier_offmodel').modal('show') + setTimeout(function () { + $('#cashier_offmodel').modal('hide') + }, 1500); + } + + } + }; + sysAjax(opt); + + }); + +//开通账户操作 + documentBindFunc.on('click', '.accountStatusOpen', function (element) { + var chargercode = $(this).attr('data-chargercode'); + var id = $(this).attr('data-code'); + var req = { + id:id, + chargerCode: chargercode, + accountStatus:1, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.updateEmployeeAccountStatus(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res.code); + if (res.code == '8888') { + $('#openAccountMsg').html("开通账户成功"); + //初始化table + fun.createTableData(); + $('#cashier_openaccountmodel').modal('show'); + setTimeout(function () { + $('#cashier_openaccountmodel').modal('hide') + }, 1500); + } else { + $('#openAccountMsg').html(res.msg); + $('#cashier_openaccountmodel').modal('show') + setTimeout(function () { + $('#cashier_openaccountmodel').modal('hide') + }, 1500); + } + + } + }; + sysAjax(opt); + + }); + +//关闭账户操作 + documentBindFunc.on('click', '.accountStatusClose', function (element) { + var chargercode = $(this).attr('data-chargercode'); + var id = $(this).attr('data-code'); + var req = { + id:id, + chargerCode: chargercode, + accountStatus:0, + sysCode: sysComm.sysCode + } + var opt = { + method: 'post', + url: dataUrl.util.updateEmployeeAccountStatus(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + //console.log(res.code); + if (res.code == '8888') { + $('#openAccountMsg').html("关闭账户成功"); + //初始化table + fun.createTableData(); + $('#cashier_openaccountmodel').modal('show'); + setTimeout(function () { + $('#cashier_openaccountmodel').modal('hide') + }, 1500); + } else { + $('#openAccountMsg').html(res.msg); + $('#cashier_openaccountmodel').modal('show') + setTimeout(function () { + $('#cashier_openaccountmodel').modal('hide') + }, 1500); + } + + } + }; + sysAjax(opt); + + }); + + + + +//获取选中的id列表 + function getIdSelections() { + return $.map($("#cashier-table").bootstrapTable('getSelections'), function (row) { + return row.id + }); + }; + function getChargerCodeSelections() { + return $.map($("#cashier-table").bootstrapTable('getSelections'), function (row) { + return row.chargerCode + }); + }; + + +//新增全选或全不选 + documentBindFunc.on("click", "#actContentAll", function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $("#cashieradd-berthAreaList li").addClass('checkexActive'); + } else { + flag = false; + $("#cashieradd-berthAreaList li").removeClass('checkexActive'); + } + + }); +//新增收费员信息 管理泊位区间 + $('#cashieradd-berthAreaList').delegate('li', 'click', function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $('#cashieradd-berthAreaList li').each(function () { + if ($(this).hasClass('checkexActive')) { + } else { + flag = false; + $('#actContentAll').parent().removeClass('checked') + } + }); + if (flag) { + console.log(flag) + $('#actContentAll').parent().addClass('checked') + } + } else { + flag = false; + $('#actContentAll').parent().removeClass('checked') + } + }); +//修改全选或全不选 + documentBindFunc.on("click", "#edit_actContentAll", function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $("#cashieredit-berthAreaList li").addClass('checkexActive'); + } else { + flag = false; + $("#cashieredit-berthAreaList li").removeClass('checkexActive'); + } + + }); +//修改收费员信息 管理泊位区间 + $(document).delegate('#cashieredit-berthAreaList li', 'click', function () { + var flag = true; + $(this).toggleClass('checkexActive'); + if ($(this).hasClass('checkexActive')) { + $('#cashieredit-berthAreaList li').each(function () { + if ($(this).hasClass('checkexActive')) { + } else { + flag = false; + } + }); + + if (flag) { + $('#edit_actContentAll').addClass('checkexActive'); + $('#edit_actContentAll').attr("checked", true); + } else { + flag = false; + $('#edit_actContentAll').removeClass('checkexActive'); + $('#edit_actContentAll').removeAttr("checked"); + } + } + }); + + + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryCashierListInfo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); + } +//隐藏显示 查询条件 搜索框 hide-common-style + documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); + }); + +//用户只能输入正负数与小数 + function upperCase(obj){ + if(isNaN(obj.value) && !/^-$/.test(obj.value)){ + obj.value=""; + } + if(!/^[+-]?\d*\.{0,1}\d{0,1}$/.test(obj.value)){ + obj.value=obj.value.replace(/\.\d{2,}$/,obj.value.substr(obj.value.indexOf('.'),3)); + } + + } + + + + /** + * 分页处理 + * @param {Object} $ + */ + (function ($) { + $.fn.extendPagination = function (options) { + var defaults = { + //pageId:'', + totalCount: '', + showPage: '5', + limit: '5', + callback: function () { + return false; + } + }; + $.extend(defaults, options || {}); + if (defaults.totalCount == '') { + //alert('鎬绘暟涓嶈兘涓虹┖!'); + $(this).empty(); + return false; + } else if (Number(defaults.totalCount) <= 0) { + //alert('鎬绘暟瑕佸ぇ浜�0!'); + $(this).empty(); + return false; + } + if (defaults.showPage == '') { + defaults.showPage = '10'; + } else if (Number(defaults.showPage) <= 0)defaults.showPage = '10'; + if (defaults.limit == '') { + defaults.limit = '5'; + } else if (Number(defaults.limit) <= 0)defaults.limit = '5'; + var totalCount = Number(defaults.totalCount), showPage = Number(defaults.showPage), + limit = Number(defaults.limit), totalPage = Math.ceil(totalCount / limit); + if (totalPage > 0) { + var html = []; + html.push('
                '); + html.push(' '); + html.push(''); + if (totalPage <= showPage) { + for (var i = 1; i <= totalPage; i++) { + if (i == 1) html.push('
              • ' + i + '
              • '); + else html.push('
              • ' + i + '
              • '); + } + } else { + for (var j = 1; j <= showPage; j++) { + if (j == 1) html.push('
              • ' + j + '
              • '); + else html.push('
              • ' + j + '
              • '); + } + } + html.push(''); + html.push('
              '); + $(this).html(html.join('')); + if (totalPage > showPage) $(this).find('ul.pagination li.next').prev().removeClass('hidden'); + + var pageObj = $(this).find('ul.pagination'), preObj = pageObj.find('li.previous'), + currentObj = pageObj.find('li').not('.previous,.disabled,.next'), + nextObj = pageObj.find('li.next'); + + function loopPageElement(minPage, maxPage) { + var tempObj = preObj.next(); + for (var i = minPage; i <= maxPage; i++) { + if (minPage == 1 && (preObj.next().attr('class').indexOf('hidden')) < 0) + preObj.next().addClass('hidden'); + else if (minPage > 1 && (preObj.next().attr('class').indexOf('hidden')) > 0) + preObj.next().removeClass('hidden'); + if (maxPage == totalPage && (nextObj.prev().attr('class').indexOf('hidden')) < 0) + nextObj.prev().addClass('hidden'); + else if (maxPage < totalPage && (nextObj.prev().attr('class').indexOf('hidden')) > 0) + nextObj.prev().removeClass('hidden'); + var obj = tempObj.next().find('a'); + if (!isNaN(obj.html()))obj.html(i); + tempObj = tempObj.next(); + } + } + + function callBack(curr) { + defaults.callback(curr, defaults.limit, totalCount); + } + + currentObj.click(function (event) { + event.preventDefault(); + var currPage = Number($(this).find('a').html()), activeObj = pageObj.find('li[class="active"]'), + activePage = Number(activeObj.find('a').html()); + if (currPage == activePage) return false; + if (totalPage > showPage && currPage > 1) { + var maxPage = currPage, minPage = 1; + if (($(this).prev().attr('class')) + && ($(this).prev().attr('class').indexOf('disabled')) >= 0) { + minPage = currPage - 1; + maxPage = minPage + showPage - 1; + loopPageElement(minPage, maxPage); + } else if (($(this).next().attr('class')) + && ($(this).next().attr('class').indexOf('disabled')) >= 0) { + if (totalPage - currPage >= 1) maxPage = currPage + 1; + else maxPage = totalPage; + if (maxPage - showPage > 0) minPage = (maxPage - showPage) + 1; + loopPageElement(minPage, maxPage) + } + } + activeObj.removeClass('active'); + $.each(currentObj, function (index, thiz) { + if ($(thiz).find('a').html() == currPage) { + $(thiz).addClass('active'); + callBack(currPage); + } + }); + }); + preObj.click(function (event) { + event.preventDefault(); + var activeObj = pageObj.find('li[class="active"]'), activePage = Number(activeObj.find('a').html()); + if (activePage <= 1) return false; + if (totalPage > showPage) { + var maxPage = activePage, minPage = 1; + if ((activeObj.prev().prev().attr('class')) + && (activeObj.prev().prev().attr('class').indexOf('disabled')) >= 0) { + minPage = activePage - 1; + if (minPage > 1) minPage = minPage - 1; + maxPage = minPage + showPage - 1; + loopPageElement(minPage, maxPage); + } + } + $.each(currentObj, function (index, thiz) { + if ($(thiz).find('a').html() == (activePage - 1)) { + activeObj.removeClass('active'); + $(thiz).addClass('active'); + callBack(activePage - 1); + } + }); + }); + nextObj.click(function (event) { + event.preventDefault(); + var activeObj = pageObj.find('li[class="active"]'), activePage = Number(activeObj.find('a').html()); + if (activePage >= totalPage) return false; + if (totalPage > showPage) { + var maxPage = activePage, minPage = 1; + if ((activeObj.next().next().attr('class')) + && (activeObj.next().next().attr('class').indexOf('disabled')) >= 0) { + maxPage = activePage + 2; + if (maxPage > totalPage) maxPage = totalPage; + minPage = maxPage - showPage + 1; + loopPageElement(minPage, maxPage); + } + } + $.each(currentObj, function (index, thiz) { + if ($(thiz).find('a').html() == (activePage + 1)) { + activeObj.removeClass('active'); + $(thiz).addClass('active'); + callBack(activePage + 1); + } + }); + }); + } + }; + })(jQuery); + + if(!/^[+-]?\d*\.{0,1}\d{0,1}$/.test(obj.value)){ + obj.value=obj.value.replace(/\.\d{2,}$/,obj.value.substr(obj.value.indexOf('.'),3)); + } + +} + + + +/** + * 分页处理 + * @param {Object} $ + */ +(function ($) { + $.fn.extendPagination = function (options) { + var defaults = { + //pageId:'', + totalCount: '', + showPage: '5', + limit: '5', + callback: function () { + return false; + } + }; + $.extend(defaults, options || {}); + if (defaults.totalCount == '') { + //alert('鎬绘暟涓嶈兘涓虹┖!'); + $(this).empty(); + return false; + } else if (Number(defaults.totalCount) <= 0) { + //alert('鎬绘暟瑕佸ぇ浜�0!'); + $(this).empty(); + return false; + } + if (defaults.showPage == '') { + defaults.showPage = '10'; + } else if (Number(defaults.showPage) <= 0)defaults.showPage = '10'; + if (defaults.limit == '') { + defaults.limit = '5'; + } else if (Number(defaults.limit) <= 0)defaults.limit = '5'; + var totalCount = Number(defaults.totalCount), showPage = Number(defaults.showPage), + limit = Number(defaults.limit), totalPage = Math.ceil(totalCount / limit); + if (totalPage > 0) { + var html = []; + html.push('
                '); + html.push(' '); + html.push(''); + if (totalPage <= showPage) { + for (var i = 1; i <= totalPage; i++) { + if (i == 1) html.push('
              • ' + i + '
              • '); + else html.push('
              • ' + i + '
              • '); + } + } else { + for (var j = 1; j <= showPage; j++) { + if (j == 1) html.push('
              • ' + j + '
              • '); + else html.push('
              • ' + j + '
              • '); + } + } + html.push(''); + html.push('
              '); + $(this).html(html.join('')); + if (totalPage > showPage) $(this).find('ul.pagination li.next').prev().removeClass('hidden'); + + var pageObj = $(this).find('ul.pagination'), preObj = pageObj.find('li.previous'), + currentObj = pageObj.find('li').not('.previous,.disabled,.next'), + nextObj = pageObj.find('li.next'); + + function loopPageElement(minPage, maxPage) { + var tempObj = preObj.next(); + for (var i = minPage; i <= maxPage; i++) { + if (minPage == 1 && (preObj.next().attr('class').indexOf('hidden')) < 0) + preObj.next().addClass('hidden'); + else if (minPage > 1 && (preObj.next().attr('class').indexOf('hidden')) > 0) + preObj.next().removeClass('hidden'); + if (maxPage == totalPage && (nextObj.prev().attr('class').indexOf('hidden')) < 0) + nextObj.prev().addClass('hidden'); + else if (maxPage < totalPage && (nextObj.prev().attr('class').indexOf('hidden')) > 0) + nextObj.prev().removeClass('hidden'); + var obj = tempObj.next().find('a'); + if (!isNaN(obj.html()))obj.html(i); + tempObj = tempObj.next(); + } + } + + function callBack(curr) { + defaults.callback(curr, defaults.limit, totalCount); + } + + currentObj.click(function (event) { + event.preventDefault(); + var currPage = Number($(this).find('a').html()), activeObj = pageObj.find('li[class="active"]'), + activePage = Number(activeObj.find('a').html()); + if (currPage == activePage) return false; + if (totalPage > showPage && currPage > 1) { + var maxPage = currPage, minPage = 1; + if (($(this).prev().attr('class')) + && ($(this).prev().attr('class').indexOf('disabled')) >= 0) { + minPage = currPage - 1; + maxPage = minPage + showPage - 1; + loopPageElement(minPage, maxPage); + } else if (($(this).next().attr('class')) + && ($(this).next().attr('class').indexOf('disabled')) >= 0) { + if (totalPage - currPage >= 1) maxPage = currPage + 1; + else maxPage = totalPage; + if (maxPage - showPage > 0) minPage = (maxPage - showPage) + 1; + loopPageElement(minPage, maxPage) + } + } + activeObj.removeClass('active'); + $.each(currentObj, function (index, thiz) { + if ($(thiz).find('a').html() == currPage) { + $(thiz).addClass('active'); + callBack(currPage); + } + }); + }); + preObj.click(function (event) { + event.preventDefault(); + var activeObj = pageObj.find('li[class="active"]'), activePage = Number(activeObj.find('a').html()); + if (activePage <= 1) return false; + if (totalPage > showPage) { + var maxPage = activePage, minPage = 1; + if ((activeObj.prev().prev().attr('class')) + && (activeObj.prev().prev().attr('class').indexOf('disabled')) >= 0) { + minPage = activePage - 1; + if (minPage > 1) minPage = minPage - 1; + maxPage = minPage + showPage - 1; + loopPageElement(minPage, maxPage); + } + } + $.each(currentObj, function (index, thiz) { + if ($(thiz).find('a').html() == (activePage - 1)) { + activeObj.removeClass('active'); + $(thiz).addClass('active'); + callBack(activePage - 1); + } + }); + }); + nextObj.click(function (event) { + event.preventDefault(); + var activeObj = pageObj.find('li[class="active"]'), activePage = Number(activeObj.find('a').html()); + if (activePage >= totalPage) return false; + if (totalPage > showPage) { + var maxPage = activePage, minPage = 1; + if ((activeObj.next().next().attr('class')) + && (activeObj.next().next().attr('class').indexOf('disabled')) >= 0) { + maxPage = activePage + 2; + if (maxPage > totalPage) maxPage = totalPage; + minPage = maxPage - showPage + 1; + loopPageElement(minPage, maxPage); + } + } + $.each(currentObj, function (index, thiz) { + if ($(thiz).find('a').html() == (activePage + 1)) { + activeObj.removeClass('active'); + $(thiz).addClass('active'); + callBack(activePage + 1); + } + }); + }); + } + }; +})(jQuery); diff --git a/assets/pages/scripts/tollFile/tollCollector/tollcollectormanage-head.png b/assets/pages/scripts/tollFile/tollCollector/tollcollectormanage-head.png new file mode 100755 index 0000000..e95baea Binary files /dev/null and b/assets/pages/scripts/tollFile/tollCollector/tollcollectormanage-head.png differ diff --git a/assets/pages/scripts/tollFile/tollfileTmp.js b/assets/pages/scripts/tollFile/tollfileTmp.js new file mode 100755 index 0000000..d1522f8 --- /dev/null +++ b/assets/pages/scripts/tollFile/tollfileTmp.js @@ -0,0 +1,70 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
              '+urlarr[i].name+'
              ' + }else{ + _html += '
            62. '+urlarr[i].name+'
            63. ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/tollcollector', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/tollFile/tollCollector/tollcollector.css'); + res.load('../../assets/pages/scripts/tollFile/tollCollector/tollcollector.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-tollcollector').addClass('ITD-topbar-clickactive'); +}); +R.route('/chargegroup', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/tollFile/chargeGroup/chargegroup.css'); + res.load('../../assets/pages/scripts/tollFile/chargeGroup/chargegroup.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-chargegroup').addClass('ITD-topbar-clickactive'); + +}); +R.route('/cashieraudit', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/tollFile/cashierAudit/cashieraudit.css'); + res.load('../../assets/pages/scripts/tollFile/cashierAudit/cashieraudit.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-cashieraudit').addClass('ITD-topbar-clickactive'); +}); +R.route('/tollchecker', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/tollFile/tollChecker/tollchecker.css'); + res.load('../../assets/pages/scripts/tollFile/tollChecker/tollchecker.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-tollchecker').addClass('ITD-topbar-clickactive'); +}); +R.route('/auditoftoll', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/tollFile/auditofToll/auditoftoll.css'); + res.load('../../assets/pages/scripts/tollFile/auditofToll/auditoftoll.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-auditoftoll').addClass('ITD-topbar-clickactive'); +}); +R.route('/chargesign', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/tollFile/chargeFile/chargesign.css'); + res.load('../../assets/pages/scripts/tollFile/chargeFile/chargesign.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-chargesign').addClass('ITD-topbar-clickactive'); +}); diff --git a/assets/pages/scripts/vipmanageFile/cardRule/cardrule.js b/assets/pages/scripts/vipmanageFile/cardRule/cardrule.js new file mode 100644 index 0000000..11dcab2 --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/cardRule/cardrule.js @@ -0,0 +1,2117 @@ +var cacheParkData; +var uploadFileflg=true; //批量上传重复校验标志 +var flg = true; //保存修改防止重复提交 + +//切换 搜索部分 是否生效 +documentBindFunc.on('click', "#cardrule-toptab div", function () { + var index = $(this).index(); + $(this).addClass('ITD-graynav-topbaractive').siblings('div').removeClass('ITD-graynav-topbaractive'); + //table初始化 + cardruleFun.createTableData(); + //console.log(index); + +}) +//隐藏显示 查询条件 搜索框 hide-common-style +documentBindFunc.on('click', ".ITD-search-morebtn", function () { + $(".hide-common-style").toggleClass("display-none"); + +}); + +var cardruleFun={ + init:function () { + //初始化 办事处 停车场 + commSelect.area_Pl_LinkedSelect('#parkArea','#parkselectNames'); + //卡类型初始化 + cardruleFun.initSelect(); + //初始化车型 + cardruleFun.initCarType(); + //时间初始化 + cardruleFun.timeInit(); + // cardruleFun.poptimeInit(); + //停车场 + cardruleFun.initPark(); + //table初始化 + cardruleFun.createTableData(); + //汇总查询 + cardruleFun.queryVipCardOrderDetailTotal(); + //下拉框初始化 + cardruleFun.plNoAndVipCardChange(); + //input change初始化 + // cardruleFun.inputChangeupload(); + //保存会员卡信息 + cardruleFun.saveVipCardCustInfoAndPerson(); + + }, + queryVipCardOrderDetailTotal:function(){ + $("#cardActAmountTotal").text("0"); //总金额 + $("#carNumTotalTotal").text("0"); //总授权车辆数 + $("#recentExpcarNumTotalTotal").text("0"); //近期失效总数 + //年卡 + $("#cardActAmountTotalYears").text("0"); //总金额 + $("#carNumTotalTotalYears").text("0"); //总授权车辆数 + $("#recentExpcarNumTotalYears").text("0"); //近期失效总数 + //季卡 + $("#cardActAmountTotalSeason").text("0"); //总金额 + $("#carNumTotalTotalSeason").text("0"); //总授权车辆数 + $("#recentExpcarNumTotalSeason").text("0"); //近期失效总数 + //月卡 + $("#cardActAmountTotalMonth").text("0"); //总金额 + $("#carNumTotalTotalMonth").text("0"); //总授权车辆数 + $("#recentExpcarNumTotalMonth").text("0"); //近期失效总数 + //其他 + $("#cardActAmountTotalOthers").text("0"); //总金额 + $("#carNumTotalTotalOthers").text("0");; //总授权车辆数 + $("#recentExpcarNumTotalOthers").text("0"); //近期失效总数 + var req = {};//cardruleFun.getQueryParam(); + var plNos = $("#parkselectNames").val(); + req.sysCode = sysComm.sysCode; + if(plNos != undefined && plNos != null){ + req.plNos=JSON.parse(plNos); + } + var opt = { + method: 'post', + url: dataUrl.util.queryVipCardOrderDetailTotal(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + var cardActAmountTotal =0; //总金额 + var carNumTotalTotal =0; //总授权车辆数 + var recentExpcarNumTotalTotal =0; //近期失效总数 + //年卡 + var cardActAmountTotalYears =0; //总金额 + var carNumTotalTotalYears =0; //总授权车辆数 + var recentExpcarNumTotalYears =0; //近期失效总数 + //季卡 + var cardActAmountTotalSeason =0; //总金额 + var carNumTotalTotalSeason =0; //总授权车辆数 + var recentExpcarNumTotalSeason =0; //近期失效总数 + //月卡 + var cardActAmountTotalMonth =0; //总金额 + var carNumTotalTotalMonth =0; //总授权车辆数 + var recentExpcarNumTotalMonth =0; //近期失效总数 + //其他 + var cardActAmountTotalOthers =0; //总金额 + var carNumTotalTotalOthers =0; //总授权车辆数 + var recentExpcarNumTotalOthers =0; //近期失效总数 + console.log(res); + if(res.code == '8888') { + var data = res.data; + if(data != null){ + $.each(data,function(index,row){ + cardActAmountTotal+= row.cardActAmount; + carNumTotalTotal += row.carNumTotal; + recentExpcarNumTotalTotal += row.recentExpcarNumTotal; + if(row.cardType == 1 || row.cardType == 6){//年卡 + cardActAmountTotalYears +=row.cardActAmount; + carNumTotalTotalYears += row.carNumTotal; + recentExpcarNumTotalYears += row.recentExpcarNumTotal; + }else if(row.cardType == 3){//季卡 + cardActAmountTotalSeason +=row.cardActAmount; + carNumTotalTotalSeason += row.carNumTotal; + recentExpcarNumTotalSeason += row.recentExpcarNumTotal; + }else if(row.cardType == 4 || row.cardType == 7 ){//月卡 + cardActAmountTotalMonth +=row.cardActAmount; + carNumTotalTotalMonth += row.carNumTotal; + recentExpcarNumTotalMonth += row.recentExpcarNumTotal; + }else{ + cardActAmountTotalOthers +=row.cardActAmount; + carNumTotalTotalOthers += row.carNumTotal; + recentExpcarNumTotalOthers += row.recentExpcarNumTotal; + } + }); + $("#cardActAmountTotal").text(cardruleFun.moneyFormatter(cardActAmountTotal)); //总金额 + $("#carNumTotalTotal").text(carNumTotalTotal); //总授权车辆数 + $("#recentExpcarNumTotalTotal").text(recentExpcarNumTotalTotal); //近期失效总数 + //年卡 + $("#cardActAmountTotalYears").text(cardruleFun.moneyFormatter(cardActAmountTotalYears)); //总金额 + $("#carNumTotalTotalYears").text(carNumTotalTotalYears); //总授权车辆数 + $("#recentExpcarNumTotalYears").text(recentExpcarNumTotalYears); //近期失效总数 + //季卡 + $("#cardActAmountTotalSeason").text(cardruleFun.moneyFormatter(cardActAmountTotalSeason)); //总金额 + $("#carNumTotalTotalSeason").text(carNumTotalTotalSeason); //总授权车辆数 + $("#recentExpcarNumTotalSeason").text(recentExpcarNumTotalSeason); //近期失效总数 + //月卡 + $("#cardActAmountTotalMonth").text(cardruleFun.moneyFormatter(cardActAmountTotalMonth)); //总金额 + $("#carNumTotalTotalMonth").text(carNumTotalTotalMonth); //总授权车辆数 + $("#recentExpcarNumTotalMonth").text(recentExpcarNumTotalMonth); //近期失效总数 + //其他 + $("#cardActAmountTotalOthers").text(cardruleFun.moneyFormatter(cardActAmountTotalOthers)); //总金额 + $("#carNumTotalTotalOthers").text(carNumTotalTotalOthers); //总授权车辆数 + $("#recentExpcarNumTotalOthers").text(recentExpcarNumTotalOthers); //近期失效总数 + } + + + + } + } + }; + sysAjax(opt); + }, + initCarType:function(){ + fn.getCarType(function (data){ + var html=""; + if(data != null){ + $.each(data,function(index,row){ + if("大型车" == row.codeValueName){ + html += ""; + }else{ + html += ""; + } + + }); + $('#carType').html(html); + $('#carType').selectpicker('refresh'); + } + + }); + }, + initPark:function(){ + var data = fn.getParkLot(); + var plNos=new Array(); + //console.log(data); + for(var index in data){ + plNos.push(data[index].code); + } + return plNos; + }, + //时间初始化 + timeInit:function () { + //开始日期 + + $("#cardrule-daydaterange-btnsta").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + + + //结束日期 + $("#cardrule-daydaterange-btnend").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + $(".card-daterange-btnsta").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }); + }, + //弹窗时间初始化 + poptimeInit:function () { + $("#card-daterangesta-renew").datetimepicker({ + // endDate: moment(redate).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("changeDate", function (ev) { + var d = new Date(ev.date); + var nums=$('#car-num-inp-renew').val(); + if(nums=='' ||nums==undefined || nums==null ||nums==NaN){ + return nums=0; + } + if($('#renewCardtypeedit').text()=='年卡'){ + $('#enddate-renew').text(moment(d).add('month', (12*nums)).format('YYYY-MM-DD')); + return; + }else if($('#renewCardtypeedit').text()=='半年卡'){ + $('#enddate-renew').text(moment(d).add('month', (6*nums)).format('YYYY-MM-DD')); + return; + }else if($('#renewCardtypeedit').text()=='季卡'){ + $('#enddate-renew').text(moment(d).add('month', (3*nums)).format('YYYY-MM-DD')); + return; + }else if($('#renewCardtypeedit').text()=='月卡'){ + $('#enddate-renew').text(moment(d).add('month', (1*nums)).format('YYYY-MM-DD')); + return; + }else if($('#renewCardtypeedit').text()=='日卡'){ + $('#enddate-renew').text(moment(d).add('day', (1*nums)).format('YYYY-MM-DD')); + } + }); + }, + //卡类型初始化 + initSelect: function() { + fn.getVipCardType(function(data){ + var html=""; + if(data != null){ + $.each(data,function(index,row){ + html += ""; + }); + $('#cardTypeSelect').html(html); + $('#cardTypeSelect').selectpicker('refresh'); + } + }); + + }, + //默认加载表格 + createTableData: function() { + $('#cardrule-table').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'personCustName', + title: '会员卡信息', + width: '20%', + visible: true, + align: 'left', + formatter: function (value, row, index) { + //`card_type` int(2) NOT NULL COMMENT '卡类型 1-年卡;2-半年卡;3-季卡;4-月卡;5-日卡;6-错峰年卡(周末免费);7-错峰月卡(周末免费)', + // console.log(row.plNo) + if(row.carNumber==null||row.carNumber==undefined||row.carNumber==''){ + row.carNumber = '-' + } + if(row.plName==null||row.plName==undefined||row.plName==''){ + row.plName = '-' + } + if(row.cardType =="1" || row.cardType =="6"){ + //下面是模拟年卡cardrule-td-year 月卡cardrule-td-month 季卡cardrule-td-season 失效cardrule-td-lose + return '
              ' + + '
              年卡
              ' + + '
              '+row.carNumber+'
              ' + + '
              '+row.plName+'
              ' + + '
              办卡日期 : '+commonObj.timeOneFormatter(row.createDate)+'
              ' + + '
              ' + }else if(row.cardType =="4" || row.cardType =="7"){ + return '
              ' + + '
              月卡
              ' + + '
              '+row.carNumber+'
              ' + + '
              '+row.plName+'
              ' + + '
              办卡日期 : '+commonObj.timeOneFormatter(row.createDate)+'
              ' + + '
              '; + }else if(row.cardType =="3"){ + return '
              ' + + '
              季卡
              ' + + '
              '+row.carNumber+'
              ' + + '
              '+row.plName+'
              ' + + '
              办卡日期 : '+commonObj.timeOneFormatter(row.createDate)+'
              ' + + '
              '; + }else if(row.cardType =="2"){ + return '
              ' + + '
              半年卡
              ' + + '
              '+row.carNumber+'
              ' + + '
              '+row.plName+'
              ' + + '
              办卡日期 : '+commonObj.timeOneFormatter(row.createDate)+'
              ' + + '
              '; + }else{ + return '
              ' + + '
              日卡
              ' + + '
              '+row.carNumber+'
              ' + + '
              '+row.plName+'
              ' + + '
              办卡日期 : '+commonObj.timeOneFormatter(row.createDate)+'
              ' + + '
              '; + } + + } + }, + { + field: 'carNumber', + title: '状态', + width: '10%', + align: 'left', + formatter: function(value, row, index) { + return cardruleFun.cardStaFormatter(value, row, index); + } + }, +// + { + field: 'cardType', + title: '剩余时间', + width: '10%', + align: 'left', + formatter: function(value, row, index) { + // console.log(new Date(row.effDate)+'/'+new Date(row.expDate)) + if(row.dueDate==null||row.dueDate==undefined||row.dueDate==''){ + row.dueDate = '-' + } + if(new Date(row.effDate)>new Date(row.expDate)){ + // console.log(1); + return '
              ' + + '
              剩余'+row.dueDate+'
              ' + + '
              开始 : '+commonObj.timeOneFormatter(row.effDate)+'
              ' + + '
              结束 : '+commonObj.timeOneFormatter(row.effDate)+'
              ' + + '
              ' + }else { + return '
              ' + + '
              剩余'+row.dueDate+'
              ' + + '
              开始 : '+commonObj.timeOneFormatter(row.effDate)+'
              ' + + '
              结束 : '+commonObj.timeOneFormatter(row.expDate)+'
              ' + + '
              ' + } + + + } + }, + { + field: 'num', + title: '车主信息', + width: '10%', + align: 'left', + formatter: function(value, row, index) { + var personCustName =""; + var userPhone = ""; + if(row.personCustName == null || row.personCustName =="" || row.personCustName == undefined){ + personCustName = '-' + }else{ + personCustName = row.personCustName + } + console.log(row.userPhone ) + if(row.userPhone == null || row.userPhone =="" || row.userPhone == undefined){ + userPhone = '-' + }else{ + userPhone = row.userPhone + } + + // if(row.personCustName == null || row.personCustName =="" || row.personCustName == undefined){ + // personCustName = '-' + // } + return '
              ' + + '
              '+personCustName+'
              ' + + '
              电话 : '+userPhone+'
              ' + + '
              车型 : '+cardruleFun.carTypeFormatter(row.carType)+'
              ' + + '
              ' + } + }, + { + field: 'price', + title: '费用信息', + width: '10%', + align: 'left', + formatter: function(value, row, index) { + return '
              ' + + '
              实收 :'+commonObj.moneyFormatter(row.actFee)+'元
              ' + + //'
              应收 : '+cardruleFun.moneyFormatter(row.price)+'*'+row.num+'
              ' + + '
              应收 : '+commonObj.moneyFormatter(row.actFee+row.discountAmount)+'
              ' + + '
              优惠 : '+commonObj.moneyFormatter(row.discountAmount)+'元
              ' + + '
              ' + } + }, + { + field: 'oper', + title: '操作', + width: '15%', + align: 'left', + formatter: function(value, row, index) { + + var date = new Date(); + if(date.getTime() > row.expDate) { + return "续费 " + }else{ + return "续费更换车牌失效"; + } + + } + }, + ] + }); + + }, + + /*获取查询参数*/ + getQueryParam: function() { + /*会员卡类型下拉框*/ + var cardType = $("#cardTypeSelect").val(); + /*卡状态:1:生效 2:失效 3:使用中*/ + // var cardState = $("#cardSta").val(); + /*车辆类型下拉框*/ + var carType = $("#carType").val(); + if(cardType == "ALL" || cardType==undefined || cardType=="") { + cardType = null; + } + if(carType == "ALL" || carType==undefined ||carType == "") { + carType = null; + } + //var plNos = JSON.parse($("#parkIds").val()); + /*开始时间*/ + var beginTime = null; + /*结束时间*/ + var endTime = null; + + /*解析时间*/ + var beginTime = $('#cardrule-daydaterange-btnsta').val(); + var endTime = $('#cardrule-daydaterange-btnend').val(); + if(beginTime !="" && beginTime != null && beginTime != undefined){ + beginTime = new Date(beginTime + " 00:00:00"); + } + if(endTime !="" && endTime != null && endTime != undefined){ + endTime = new Date(endTime+" 23:59:59"); + } + //卡状态:1:全部 2:生效中 3:近期失效 4:已失效 + var cardStateTag = $("#cardrule-toptab").find("div[class='ITD-graynav-topbar ITD-graynav-topbaractive']").attr("value"); + + /*车牌号*/ + var carNum = $('#carNumber').val(); + carNum = carNum == null || carNum.length == 0 ? null : carNum.trim(); + + + var req = { + + cardType: cardType, + carType: carType, + beginTime: beginTime, + endTime: endTime, + carNumber:carNum, + cardStateTag:cardStateTag + }; + console.log(req); + return req; + }, + // + payTypeFormater: function(value, row, index) { + //1:支付宝 2:微信 3:银联 4:微信公众号 6:现金 7:IC卡 + var payTypeStr; + switch(value) { + case 1: + payTypeStr = '支付宝' + break; + case 2: + payTypeStr = '微信' + break; + case 3: + payTypeStr = '银联' + break; + case 4: + payTypeStr = '微信公众号' + break; + case 6: + payTypeStr = '现金' + break; + case 7: + payTypeStr = 'IC卡' + break; + default: + payTypeStr = '其他' + } + return payTypeStr; + }, + datetimeFormatter: function(value) { + if(value == null) { + return ""; + } else { + return DateUtils.long2String(value, 1); + } + }, + inDatatimeFormatter: function(value) { + if(value == null) { + return ""; + } else { + return DateUtils.long2String(value, 1); + } + }, + outDatatimeFormatter: function(value, row, index) { + if(value == null) { + return ""; + } else { + return DateUtils.long2String(value, 1); + } + }, + //金额处理 + moneyFormatter: function(value) { + // console.log(typeof value) + if(value == 0 || value == undefined || value == null|| value == NaN) { + return 0; + } else { + return(value / 100).toFixed(2); + } + }, + //车型 + carTypeFormatter: function(value, row, index) { + // 1-大型车;2-小型车 + if(value == null) { + return ""; + } else if(1 == value) { + return "大型车"; + } else if(2 == value) { + return "小型车"; + } + }, + //卡类型 + cardTypeFormatter: function(value, row, index) { + // 1-年卡;2-半年卡;3-季卡;4-月卡;5-日卡 + if(value == null) { + return ""; + } else if(1 == value) { + return "年卡"; + } else if(2 == value) { + return "半年卡"; + } else if(3 == value) { + return "季卡"; + } else if(4 == value) { + return "月卡"; + } else if(5 == value) { + return "日卡"; + } else if(6 == value) { + return "错峰年卡(周末免费)"; + } else if(7 == value) { + return "错峰月卡(周末免费)"; + } + + }, + //卡是否生效 + cardStaFormatter: function(value, row, index) { + var date = new Date(); + if(row.effDate == null) { + return '
              无效
              ' + } else { + if(row.effDate <= date.getTime() && date.getTime() <= row.expDate) { + return '
              生效
              '; + } else if(date.getTime() < row.effDate){ + return '
              未生效
              ' + }else{ + return '
              失效
              ' + } + } + + }, + //停车场会员卡名称 + queryVipcardInfoByPlno:function(plNo){ + $("#carTypeAdd").text(""); + $("#effExDateAdd").text(""); + $("#priceAdd").text(""); + $("#disCountValueAdd").text(""); + $("#cardTypeAdd").text(""); + var req = { + sysCode: sysComm.sysCode, + plNos: JSON.parse(plNo) + }; + var opt = { + method: 'post', + url: dataUrl.util.queryVIpCardInfoByPlNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + $('#cardrulepop-cardName').html(""); + $('#cardrulepop-cardName').selectpicker('refresh'); + if (res.code=='8888') { + var data = res.data; + var html =""; + if(data != null && data.length >0){ + $('#error-ifo-add').removeClass('display-none').text(''); + + $.each(data,function(index,row){ + if(index == 0){ + $("#cardTypeAdd").removeAttr("value"); + $("#cardTypeAdd").attr("value",row.cardType); + $("#carTypeAdd").text(cardruleFun.carTypeFormatter(row.carType)); + $("#effExDateAdd").text(cardruleFun.inDatatimeFormatter(row.effDate)+" - "+cardruleFun.inDatatimeFormatter(row.expDate)); + $("#priceAdd").text(cardruleFun.moneyFormatter(row.price)); + $("#disCountValueAdd").text((row.discValue == null || row.discValue =="" || row.discValue == undefined) ? "无折扣" : row.discValue +"折"); + $("#cardTypeAdd").text(cardruleFun.cardTypeFormatter(row.cardType)); + } + html += ""; + }); + $('#cardrulepop-cardName').html(html); + $('#cardrulepop-cardName').selectpicker('refresh'); + }else{ + $("#carTypeAdd").removeAttr("value"); + $('#cardrulepop-cardName').html(""); + $('#error-ifo-add').removeClass('display-none').text('该停车场没有创建会员卡,请在【卡规则设置】页面创建会员卡'); + return; + } + } + + } + }; + sysAjax(opt); + + + }, + + //下拉框change + plNoAndVipCardChange:function(){ + //停车场change时间 + $(document).on('change','#cardrulepop-selectPark',function(){ + cardruleFun.queryVipcardInfoByPlno($("#cardrulepop-selectPark").val()); + }); + //会员卡change事件 + $(document).on('change','#cardrulepop-cardName',function(){ + var cardInfo=$("#cardrulepop-cardName").find("option:selected"); + + $("#carTypeAdd").text(cardruleFun.carTypeFormatter(cardInfo.attr("carType"))); + $("#effExDateAdd").text(cardInfo.attr("effDate")+" - "+cardInfo.attr("expDate")); + $("#priceAdd").text(cardruleFun.moneyFormatter(cardInfo.attr("price"))); + $("#disCountValueAdd").text((cardInfo.attr("discValue") == null || cardInfo.attr("discValue") =="" || cardInfo.attr("discValue") == undefined) ? "无折扣" : cardInfo.attr("discValue") +"折"); + $("#cardTypeAdd").text(cardruleFun.cardTypeFormatter(cardInfo.attr("cardType"))); + $("#cardTypeAdd").attr("value",""); + $("#cardTypeAdd").attr("value",cardInfo.attr("cardType")); + $('#card-list-main').html("");//清除内容 重新添加 + $("#addcarCount").text('0'); + $("#addlessCount").text('0'); + $("#addtureCount").text('0'); + + + + + + }); + }, + + //保存会员卡信息 + saveVipCardCustInfoAndPerson:function(){ + $(document).on('click','#alert_sure',function(){ + $("#alert_sure").attr("disabled","disabled"); + var checkFlg = false; + //1.判断是否添加会员卡 + var ulDocument = $("#card-list-main").find('ul'); + var cardNames=$("#cardrulepop-cardName").find("option:selected").val(); + if(cardNames== '' || cardNames == undefined || cardNames == null){ + $("#alert_sure").removeAttr("disabled"); + $('#error-ifo-add').removeClass('display-none').text('请选择有会员卡的停车场'); + return; + }else if(ulDocument.length ==0){ + $("#alert_sure").removeAttr("disabled"); + $('#error-ifo-add').removeClass('display-none').text('请添加会员卡'); + return; + } + //2.先判断是否每条都做校验 + $.each(ulDocument,function(index,row){ + var verificationName = $(this).find('li').find('.verification-btn').text(); + if("校验" == verificationName){ + $("#alert_sure").removeAttr("disabled"); + checkFlg = true; + $('#error-ifo-add').removeClass('display-none').text('未校验,请先校验'); + return; + } + }); + if(checkFlg){ + return ; + } + //cardNo + var cardNo = $("#cardrulepop-cardName").find("option:selected").val(); //卡编码 + var carType = $("#cardrulepop-cardName").find("option:selected").attr("carType"); //车辆类型 1:大型车 2:小型车 + var cardType = $("#cardrulepop-cardName").find("option:selected").attr("cardType"); //卡类型 1-年卡;2-半年卡;3-季卡;4-月卡;5-日卡; + var price = $("#cardrulepop-cardName").find("option:selected").attr("price"); //卡单价 + var disVal=$("#cardrulepop-cardName").find("option:selected").attr("discValue");//折扣 + + var optType = 1; //1:购卡,2:续费 + + var plNo =$("#cardrulepop-selectPark").find("option:selected").val(); //停车场编号 + var plNoArray=JSON.parse(plNo); + var plNo = ""; + if(plNoArray.length >0){ + plNo = plNoArray[0]; + } + + var detailList = []; + //3.获取数据 + $.each(ulDocument,function(index,row){ + var lis = $(this).find('li'); + var personcustId = lis.find('input[class="car-username-inp"]').attr("personcustid"); //个人客户id + var personCustName = lis.find('input[class="car-username-inp"]').val(); //个人客户名称 + var phone = lis.find('input[class="car-pho-inp"]').val(); //手机号 + var carNum = $.trim(lis.find('input[class="car-license-inp"]').val()); //车牌号 + var effDate = lis.find(".card-daterange-btnsta").val(); //开始时间 + console.log(effDate); + + var expDate = lis.find('.enddate-inp').text(); //结束时间 + var actFee = lis.find('.car-money-inp').val(); //实收 + var num = lis.find('input[class="car-num-inp"]').val(); //数量 + var vipCardCustInfoDetail={}; + vipCardCustInfoDetail.peronCustId = personcustId; + + vipCardCustInfoDetail.personCustName = personCustName; + vipCardCustInfoDetail.userPhone = phone; + vipCardCustInfoDetail.carNumber = carNum; + vipCardCustInfoDetail.num = num; + vipCardCustInfoDetail.effDate= effDate+" 00:00:00"; + vipCardCustInfoDetail.expDate = expDate+" 00:00:00"; + vipCardCustInfoDetail.actFee =actFee; + detailList.push(vipCardCustInfoDetail); + + }); + + var carData = []; + $.each(detailList,function(index,rows){ + var datas= rows.carNumber; + + carData.push(datas); + }); + console.log(carData); + var nary=carData.sort(); + for(var i=0;i所有卡名称"); + $('#cardrulepop-cardName').selectpicker('refresh'); + //弹窗内容初始化初始化 + $('#addcarCount').text('0'); + $('#addlessCount').text('0'); + $('#addtureCount').text('0'); + $('.fileinput-filename').text('');//上传文件 清空 初始化 + $('#file_btn').val(''); + //时间 input 初始化 + $('.card-daterangesta-btnsta').removeClass("card-daterange-bg"); + $('.card-daterangesta-btnsta').addClass("ITD-daterange-bg"); + //停车场初始化 + commSelect.plName_select('#cardrulepop-selectPark'); + var plNo=$('#cardrulepop-selectPark').val(); + $('#error-ifo-add').addClass('display-none').text(''); + //通过停车场会员卡 + cardruleFun.queryVipcardInfoByPlno(plNo); + //卡名称初始化 + $('#cardrulepop-cardName').selectpicker('refresh'); + //车型+有效期+单价+折扣+卡类型初始化 + $('.fileinput-filename').empty();//上传清空 + $('#card-list-main').empty();//卡列表初始化 + $('#cardrule_alertmodel').modal('show'); + +}); + +//time function +var format = function(d) { + var datetext = '' + var month = (d.getMonth()+1); + var day= d.getDate(); + if(month<10){ + month = '0'+month; + } + if(day<10){ + day = '0'+day; + } + datetext = d.getFullYear()+'/'+month+'/'+day + return datetext; + +}; +//新增弹窗 生效时间 +$('.card-daterange-btnsta').val(moment().subtract('days', 0).format('YYYY-MM-DD')); +//添加 新增弹窗 +documentBindFunc.on('click','#card-add-btn',function () { + // // + $('#error-ifo-add').addClass('display-none').text(''); + var _html = $('#card-list-clone .card-list-wrap').clone(); + $('#card-list-main').append(_html); + $(".card-daterange-btnsta").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("changeDate", function (ev) { + // $(this).find('.verification-btn').text('校验').css('color','#1E95CD'); + var d = new Date(ev.date); + var nums=$(this).parent().parent('ul').find('.car-num-inp').val(); + /* if(nums=='' ||nums==undefined || nums==null ||nums==NaN){ + return nums=0; + }*/ + var cardTypeAddValue = $('#cardTypeAdd').attr("value"); + if(cardTypeAddValue=='1' || cardTypeAddValue == '6' ){ + $(this).parent().parent().find('.enddate-inp').text(moment(d).add('month', (12*nums)).format('YYYY-MM-DD')); + return; + }else if(cardTypeAddValue == '2'){ + $(this).parent().parent().find('.enddate-inp').text(moment(d).add('month', (6*nums)).format('YYYY-MM-DD')); + return; + }else if(cardTypeAddValue == '3'){ + $(this).parent().parent().find('.enddate-inp').text(moment(d).add('month', (3*nums)).format('YYYY-MM-DD')); + return; + }else if(cardTypeAddValue == '4' || cardTypeAddValue == '7'){ + $(this).parent().parent().find('.enddate-inp').text(moment(d).add('month', (1*nums)).format('YYYY-MM-DD')); + return; + }else if(cardTypeAddValue =='5'){ + $(this).parent().parent().find('.enddate-inp').text(moment(d).add('day', (1*nums)).format('YYYY-MM-DD')); + return; + } + }); + $('.card-daterange-btnsta').on("change", function () { + $(this).parent().parent().find('.verification-btn').text('校验'); + $(this).parent().parent().find('.verification-btn').css('color','#1E95CD'); + $(this).parent().parent().find('input').attr("readOnly",false); + $(this).parent().parent().find('.card-daterangesta-btnsta').removeClass("card-daterange-bg"); + $(this).parent().parent().find('.card-daterangesta-btnsta').addClass("ITD-daterange-bg"); + $(this).parent().parent().find('.car-username-inp,.car-pho-inp,.car-license-inp,.car-num-inp,.card-daterangesta-btnsta').css("border","1px solid #1E95CD"); + }) +}); +//新增弹窗 计算实收 $('#card-list-main').delegate('.car-num-inp','change', +documentBindFunc.on('blur','#card-list-main .car-num-inp',function () { + var _num = $(this).val();//购买数量 + var getdisVal = $("#cardrulepop-cardName").find("option:selected").attr("discValue"); + if(getdisVal == null || getdisVal == "" || getdisVal == undefined){ + getdisVal=10; + } + var disVal=(getdisVal)/10;//折扣 + var timeVal=$(this).parent().parent('ul').find(".card-daterange-btnsta").val()+" 00:00:00";//生效时间 + var d = new Date(timeVal); + $(this).parent().parent().find('.car-money-inp').text(_num*($("#priceAdd").text())*disVal);//实收金额 + //失效时间 + var cardTypeAddValue = $('#cardTypeAdd').attr("value"); + if(cardTypeAddValue=='1' || cardTypeAddValue == '6' ){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('month', (12*_num))).format('YYYY-MM-DD')); + return; + }else if(cardTypeAddValue == '2'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('month', (6*_num))).format('YYYY-MM-DD')); + return; + }else if(cardTypeAddValue == '3'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('month', (3*_num))).format('YYYY-MM-DD')); + return; + }else if(cardTypeAddValue == '4' || cardTypeAddValue == '7'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('month', (1*_num))).format('YYYY-MM-DD')); + return; + }else if(cardTypeAddValue =='5'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('day', (1*_num))).format('YYYY-MM-DD')); + return; + } + +}); + +//新增弹窗 校验 +$('#card-list-main').delegate('.verification-btn','click',function () { + var _ul=$(this).parent().parent('ul'); + var name = $.trim(_ul.find('.car-username-inp').val()); //卡主姓名 + var carNum = $.trim(_ul.find('.car-license-inp').val()); //车牌号 + var pho = $.trim(_ul.find('.car-pho-inp').val());//手机号 + var numinp = $.trim(_ul.find('.car-num-inp').val());//数量 + var cardNames=$("#cardrulepop-cardName").find("option:selected").val(); + var effDate = $.trim(_ul.find('.card-daterange-btnsta').val());//开始时间 + _ul.find('.card-daterange-btnsta').attr('disabled',false) + var moneyinp = $.trim(_ul.find('.car-money-inp').text());//实收 + + var cardType = $("#cardTypeAdd").attr('value'); //卡类型 + + var priinp = $('#priceAdd').text();//单价 + var plNo =$("#cardrulepop-selectPark").find("option:selected").val(); //停车场编号 + var plNoArray=JSON.parse(plNo); + var plNo = ""; + if(plNoArray.length >0){ + plNo = plNoArray[0]; + } + if(plNo== '' || plNo == undefined || plNo == null){ + $('#error-ifo-add').removeClass('display-none').text('请选择停车场'); + return; + }else if(priinp== '' || priinp == undefined || priinp == null){ + $('#error-ifo-add').removeClass('display-none').text('请选择有会员卡的停车场'); + return; + } else if(cardNames== '' || cardNames == undefined || cardNames == null){ + $('#error-ifo-add').removeClass('display-none').text('请选择有会员卡的停车场'); + return; + } else if(name == '' || name == undefined || name == null) { + $('#error-ifo-add').removeClass('display-none').text('请输入姓名'); + return; + }else if(pho == '' || pho == undefined || pho == null) { + $('#error-ifo-add').removeClass('display-none').text('请输入手机号'); + return; + } else if(!/^1[3|4|5|7|8]{1}\d{9}$/.test(pho)||pho.length!=11) { + $('#error-ifo-add').removeClass('display-none').text('请输入正确手机号'); + return; + }else if(effDate == '' || effDate == undefined || effDate == null){ + $('#error-ifo-add').removeClass('display-none').text('请选择生效时间'); + return; + } + else if(carNum == '' || carNum == undefined || carNum == null){ + $('#error-ifo-add').removeClass('display-none').text('请输入车牌号'); + return; + } else if((!/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4,6}[A-Z0-9挂学警港澳]{1}$/.test(carNum))){ + $('#error-ifo-add').removeClass('display-none').text('请输入正确车牌号'); + return; + }else if(numinp == '' || numinp == undefined || numinp == null){ + $('#error-ifo-add').removeClass('display-none').text('请输入数量'); + return; + }else if(numinp == '0' || numinp == 0){ + $('#error-ifo-add').removeClass('display-none').text('数量必须大于0'); + return; + }else { + // //; + // + var getdisVal = $("#cardrulepop-cardName").find("option:selected").attr("discValue"); + if(getdisVal == null || getdisVal == "" || getdisVal == undefined){ + getdisVal=10; + } + var disVal=(getdisVal)/10;//折扣 + var timeVal=$(this).parent().parent('ul').find(".card-daterange-btnsta").val()+" 00:00:00";//生效时间 + var d = new Date(timeVal); + $(this).parent().parent().find('.car-money-inp').text(numinp*($("#priceAdd").text())*disVal);//实收金额 + //失效时间 + + var cardTypeAddValue = $('#cardTypeAdd').attr("value"); + if(cardTypeAddValue=='1' || cardTypeAddValue == '6' ){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('month', (12*numinp))).format('YYYY-MM-DD')); + }else if(cardTypeAddValue == '2'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('month', (6*numinp))).format('YYYY-MM-DD')); + }else if(cardTypeAddValue == '3'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('month', (3*numinp))).format('YYYY-MM-DD')); + }else if(cardTypeAddValue == '4' || cardTypeAddValue == '7'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('month', (1*numinp))).format('YYYY-MM-DD')); + }else if(cardTypeAddValue =='5'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('day', (1*numinp))).format('YYYY-MM-DD')); + } + var expDate = $.trim(_ul.find('.enddate-inp').text());//结束时间 + console.log(expDate) + var todayDate= moment().subtract('days', 0).format('YYYY-MM-DD'); + //失效时间 校验 + if(expDate =="" || expDate == null || expDate == undefined){ + $('#error-ifo-add').removeClass('display-none').text('失效时间不能为空,请重新选择失效时间'); + return; + } + + if(expDatenew Date(parkInfo.expDate)){ + $("#card-daterangesta-renew").text(cardruleFun.datetimeFormatter(parkInfo.effDate)); + }else { + $("#card-daterangesta-renew").text(cardruleFun.datetimeFormatter(parkInfo.expDate)); + } + + var renewDate= $("#card-daterangesta-renew").text()+' 00:00:00'; + var redate=new Date(renewDate); + var renewCardtypeedit = $('#renewCardtypeedit').attr("value"); + if(renewCardtypeedit == '1' || renewCardtypeedit == '6'){ + $('#enddate-renew').text((moment(redate).add('month', 12)).format('YYYY-MM-DD')); + return; + }else if(renewCardtypeedit == '2'){ + $('#enddate-renew').text((moment(redate).add('month', 6)).format('YYYY-MM-DD')); + return; + }else if(renewCardtypeedit == '3' ){ + $('#enddate-renew').text((moment(redate).add('month',3)).format('YYYY-MM-DD')); + return; + }else if(renewCardtypeedit == '4' || renewCardtypeedit =='7'){ + $('#enddate-renew').text((moment(redate).add('month', 1)).format('YYYY-MM-DD')); + return; + }else if(renewCardtypeedit == '5'){ + $('#enddate-renew').text((moment(redate).add('day', 1)).format('YYYY-MM-DD')); + + } + + +}); + +//续费保存 +documentBindFunc.on('click','#renewMon-sure',function () { + $("#renewMon-sure").attr("disabled","disabled"); + var checkName = $("#verification-btnedit").text(); + if("校验" == checkName){ + $("#renewMon-sure").removeAttr("disabled"); + $('#error-ifo-edit').removeClass('display-none').text('请先点击【校验】按钮校验'); + return; + } + var id = $("#renewMon_alertmodelPreKeyId").val(); + var parkInfo = $("#cardrule-table").bootstrapTable('getRowByUniqueId',id); + var num = $("#car-num-inp-renew").val(); //续费数量 + + var discValue = $("#renewDisedit").attr("data-value"); + var detailList =[]; + var vipCardList ={num:num,id:id,peronCustId:parkInfo.peronCustId}; + detailList.push(vipCardList); + + // + var req = { + cardNo:parkInfo.cardNo, + carType:parkInfo.carType, + cardType:parkInfo.cardType, + price:parkInfo.price, + plNo:parkInfo.plNo, + discValue:discValue, + sysCode: sysComm.sysCode, + detailList:detailList + }; + if(flg){ + flg = false; + $("#renewMon-sure").attr("disabled","disabled"); + var opt = { + method: 'post', + url: dataUrl.util.updateVipCardCustInfoById(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if(res.code=='8888'){ + $("#renewMon-sure").removeAttr("disabled"); + flg =true; + $('#error-ifo-edit').addClass('display-none').text(""); + $('#renewMon_alertmodel').modal('hide'); + $("#cardrule-table").bootstrapTable('refresh'); + //汇总查询 + cardruleFun.queryVipCardOrderDetailTotal(); + }else{ + $("#renewMon-sure").removeAttr("disabled"); + flg =true; + $('#error-ifo-edit').removeClass('display-none').text("续费失败"); + return; + } + + } + }; + sysAjax(opt); + } + +}); + + +//续费弹窗 计算实收 +$('#card-list-renew').delegate('#car-num-inp-renew','change',function () { + var _num = $(this).val();//购买数量 + var getdisVal=$("#renewDisVal").val();//折扣 + if(getdisVal == null || getdisVal == "" || getdisVal == undefined ||getdisVal==0){ + getdisVal=10; + } + var disVal=getdisVal/10; + var timeVal=$("#card-daterangesta-renew").text()+" 00:00:00";//生效时间 + var d = new Date(timeVal); + $('#car-money-inp-edit').text(_num*($("#renewPriceedit").text())*disVal);//实收金额 + //失效时间 + var renewCardtypeedit = $('#renewCardtypeedit').attr("value"); + if(renewCardtypeedit =='1' || renewCardtypeedit == '6' ){ + $('#enddate-renew').text((moment(d).add('month', (12*_num))).format('YYYY-MM-DD')); + return; + }else if(renewCardtypeedit == '2'){ + $('#enddate-renew').text((moment(d).add('month', (6*_num))).format('YYYY-MM-DD')); + return; + }else if(renewCardtypeedit == '3'){ + $('#enddate-renew').text((moment(d).add('month', (3*_num))).format('YYYY-MM-DD')); + return; + }else if(renewCardtypeedit == '4' || renewCardtypeedit =='7'){ + $('#enddate-renew').text((moment(d).add('month', (1*_num))).format('YYYY-MM-DD')); + return; + }else{ + $('#enddate-renew').text((moment(d).add('day', (1*_num))).format('YYYY-MM-DD')); + return; + } + +}); +//续费弹窗 校验 +documentBindFunc.on('click','#verification-btnedit',function (){ + var numinp = $.trim($('#car-num-inp-renew').val());//数量 + var endtimeinp = $.trim($('#enddate-renew').text());//结束时间 + var starttimeinp=$.trim($('#card-daterangesta-renew').text());//开始时间 + var carNum =$.trim($("#car-license-renew").text()); //车牌 + var phone =$.trim($("#car-pho-renew").text()); //手机号 + var id = $("#renewMon_alertmodelPreKeyId").val(); + var parkInfo = $("#cardrule-table").bootstrapTable('getRowByUniqueId',id); + if(numinp == '' || numinp == undefined || numinp == null){ + $('#error-ifo-edit').removeClass('display-none').text('请输入数量'); + return; + }else if(endtimeinp == '' || endtimeinp == undefined || endtimeinp == null){ + $('#error-ifo-edit').removeClass('display-none').text('续费结束时间不能为空,请先选择续费开始时间或数量'); + return; + }else if(numinp <1){ + $('#error-ifo-edit').removeClass('display-none').text('续费数量大于等于1'); + return; + }else{ + var flg = queryVipCardMaxBuyNumIsLimit(parkInfo.plNo,parkInfo.cardType,starttimeinp+" 00:00:00",endtimeinp+" 23:59:59"); + if(flg) { + $('#error-ifo-edit').removeClass('display-none').text('该会员卡对应时间已经超出停车场会员卡最大数量限制,不能续费'); + return false; + } + //校验车牌号个人客户信息以及是否重复办理 + var req = { + sysCode: sysComm.sysCode, + userPhone: phone, + carNumber:carNum, + plNo:parkInfo.plNo, + effDate:starttimeinp+" 00:00:00", + expDate:endtimeinp+" 23:59:59", + checkFlg:2 + }; + var opt = { + method: 'post', + url: dataUrl.util.checkPhoneAndCarNumber(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if(res.code=='8888'){ + $('#error-ifo-edit').addClass('display-none').text(''); + //success + $('#verification-btnedit').text('校验成功'); + $('#verification-btnedit').css('color','#5fe98f'); + $('#car-num-inp-renew').attr("readOnly",true); + // $('#card-daterangesta-renew').addClass("card-daterange-bg"); + // $('#card-daterangesta-renew').removeClass("ITD-daterange-bg"); + $('#car-num-inp-renew').css("border","0"); + + + + }else{ + $('#error-ifo-edit').removeClass('display-none').text(res.msg); + return; + } + + } + }; + sysAjax(opt); + + + } + + +}); +//续费弹窗弹窗 修改 +documentBindFunc.on('click','#revise-btnredit',function () { + $('#verification-btnedit').text('校验'); + $('#verification-btnedit').css('color','#1E95CD'); + $('#car-num-inp-renew').attr("readOnly",false); + $('#car-num-inp-renew').css("border","1px solid #1E95CD"); + // $('#card-daterangesta-renew').removeClass("card-daterange-bg"); + // $('#card-daterangesta-renew').addClass("ITD-daterange-bg"); +}); +//会员卡弹窗 更换车牌 +documentBindFunc.on('click','.renewlicesen',function (){ + $('#error-ifo-licesen').addClass('display-none').text(''); + $("#renewlicesen-sure").removeAttr("disabled"); + $("#renewlicesen-sure").removeAttr("disabled"); + var ids = $(this).attr('value'); + $("#renewlicesenCarNumId").val(""); + $("#renewlicesenCarNumId").val(ids); + $("#renewlicesenPark").text(); + $("#renewlicesenCard").text(); + $("#renewlicesenType").text(); + $("#renewlicesenTime").text(); + $("#renewlicesenPrice").text(); + $("#renewlicesenDisval").text(); + $("#renewlDisVal").val(''); + $("#renewlicesenCardtype").text(); + $("#renewlicesenpersonCustId").val(); + $("#renewlicesen-Edit").attr("data-value",""); + $('#renewlicesen-Edit').css("border","1px solid #c2cad8"); + $("#renewlicesen-Edit").attr("readonly",false); + var parkInfo = $("#cardrule-table").bootstrapTable('getRowByUniqueId',ids);//获取折扣值 + var req = { + cardNo:parkInfo.cardNo, + plNo:parkInfo.plNo, + sysCode: sysComm.sysCode + }; + var opt = { + method: 'post', + url: dataUrl.util.queryCardParkSaleByPlNoAndCardNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + async:false, + dataType: 'json', + success: function (res) { + if(res.code=='8888'){ + var data = res.data; + if(data != null && data !="" && data !=undefined){ + if(data.discValue == null ||data.discValue=='' || data.discValue ==undefined){ + $("#renewlicesenDisval").text('无折扣'); + $("#renewlDisVal").val(0); + $("#renewlicesenDisval").attr('data-value','0'); + + }else{ + $("#renewlDisVal").val(data.discValue); + $("#renewlicesenDisval").text(data.discValue+'折'); + $("#renewlicesenDisval").attr('data-value',data.discValue); + } + + } + + } + + } + }; + sysAjax(opt); + + $('#renewlicesen_alertmodel').modal('show'); + $("#renewlicesenPark").text(parkInfo.plName); + $("#renewlicesenCard").text(parkInfo.cardName); + $("#renewlicesenpersonCustId").val(parkInfo.peronCustId); + $("#renewlicesenType").text(cardruleFun.carTypeFormatter(parkInfo.carType)); + $("#renewlicesenTime").text(cardruleFun.datetimeFormatter(parkInfo.cardEffDate)+" - "+cardruleFun.datetimeFormatter(parkInfo.cardExpDate)); + $("#renewlicesenPrice").text(cardruleFun.moneyFormatter(parkInfo.price)); + // $("#renewlicesenDisval").text(parkInfo.discValue); + $("#renewlicesenCardtype").text(cardruleFun.cardTypeFormatter(parkInfo.cardType)); + //table sta + if(parkInfo.personCustName==null || parkInfo.personCustName =='' || parkInfo.personCustName==undefined){ + $("#car-username-renewlicesen").text(parkInfo.userPhone); + }else { + $("#car-username-renewlicesen").text(parkInfo.personCustName); + } + + $("#car-pho-renewlicesen").text(parkInfo.userPhone); + $("#renewlicesen-Edit").val(parkInfo.carNumber); + + $("#renewlicesen-Edit").attr("data-value",parkInfo.carNumber); + + $("#renewlicesen-car-num").text(parkInfo.num); + $("#renewlicesen-starttime").text(cardruleFun.datetimeFormatter(parkInfo.effDate)); + $("#enddate-renewlicesen").text(cardruleFun.datetimeFormatter(parkInfo.expDate)); + + var priVal=$("#renewlicesenPrice").text();//单价 + var getdisVal=$("#renewlDisVal").val();//折扣 + var cardnum=$("#renewlicesen-car-num").text();//数量 + if(getdisVal == null || getdisVal == "" || getdisVal == undefined ||getdisVal==0){ + getdisVal=10; + } + var disVal=getdisVal/10; + console.log(disVal+','+cardnum+','+priVal) + + $("#money-renewliceen").text(priVal*disVal*cardnum); + $("#renewlicesen-verbtn").text('校验'); + $("#renewlicesen-verbtn").attr("style",""); + + + $("#error-ifo-licesen").addClass('display-none').text(''); +}); + +//更换车牌提交 +documentBindFunc.on('click','#renewlicesen-sure',function (){ + if("校验" == $("#renewlicesen-verbtn").text()){ + $("#renewlicesen-sure").removeAttr("disabled"); + $('#error-ifo-licesen').removeClass('display-none').text('请点击【校验】按钮'); + return; + } + $("#renewlicesen-sure").attr("disabled","disabled"); + var id = $("#renewlicesenCarNumId").val(); + var carNum = $("#renewlicesen-Edit").val();//车牌号 + var peronCustId = $("#renewlicesenpersonCustId").val(); + var preCarNum = $("#renewlicesen-Edit").attr("data-value");//更改前的车牌号 + if(carNum == preCarNum){ + $("#renewlicesen-sure").removeAttr("disabled"); + $('#error-ifo-licesen').removeClass('display-none').text('请更改车牌号'); + return; + } + var parkInfo = $("#cardrule-table").bootstrapTable('getRowByUniqueId',id); + var detailList =[]; + var vipCardList ={carNumber:carNum,id:id,peronCustId:peronCustId}; + detailList.push(vipCardList); + // + var req = { + cardNo:parkInfo.cardNo, + carType:parkInfo.carType, + cardType:parkInfo.cardType, + price:parkInfo.price, + plNo:parkInfo.plNo, + sysCode: sysComm.sysCode, + detailList:detailList + }; + if(flg){ + flg = false; + $("#renewlicesen-sure").attr("disabled","disabled"); + var opt = { + method: 'post', + url: dataUrl.util.changeVipCardCustInfoCarNumberById(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if(res.code=='8888'){ + flg = true; + $("#renewlicesen-sure").removeAttr("disabled"); + $('#error-ifo-licesen').addClass('display-none').text(""); + $('#renewlicesen_alertmodel').modal('hide'); + $("#cardrule-table").bootstrapTable('refresh'); + //汇总查询 + cardruleFun.queryVipCardOrderDetailTotal(); + }else{ + flg = true; + $("#renewlicesen-sure").removeAttr("disabled"); + $('#error-ifo-licesen').removeClass('display-none').text(res.msg); + return; + } + + } + }; + sysAjax(opt); + } + +}); + +//会员卡弹窗 更换车牌 校验 +documentBindFunc.on('click','#renewlicesen-verbtn',function (){ + var licesenedit = $.trim($('#renewlicesen-Edit').val());//数量 + var carNum = $("#renewlicesen-Edit").val();//车牌号 + var preCarNum = $("#renewlicesen-Edit").attr("data-value");//更改前的车牌号 + if(carNum == preCarNum){ + $("#renewlicesen-sure").removeAttr("disabled"); + $('#error-ifo-licesen').removeClass('display-none').text('请更改车牌号'); + return; + } + if(licesenedit == '' || licesenedit == undefined || licesenedit == null){ + $('#error-ifo-licesen').removeClass('display-none').text('请输入车牌号'); + return; + } else if((!/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4,6}[A-Z0-9挂学警港澳]{1}$/.test(licesenedit))){ + $('#error-ifo-licesen').removeClass('display-none').text('请输入正确车牌号'); + return; + }else{ + $('#error-ifo-licesen').addClass('display-none').text(''); + //success + $('#renewlicesen-verbtn').text('校验成功'); + $('#renewlicesen-verbtn').css('color','#5fe98f'); + $('#renewlicesen-Edit').attr("readOnly",true); + $('#renewlicesen-Edit').css("border","0"); + + var id = $("#renewlicesenCarNumId").val(); + var carNum = $("#renewlicesen-Edit").val();//车牌号 + var peronCustId = $("#renewlicesenpersonCustId").val(); + var preCarNum = $("#renewlicesen-Edit").attr("data-value");//更改前的车牌号 + var phone= $("#car-pho-renewlicesen").text(); + var starttimeinp = $("#renewlicesen-starttime").text(); + var endtimeinp = $("#enddate-renewlicesen").text(); + if(carNum == preCarNum){ + $("#renewlicesen-sure").removeAttr("disabled"); + $('#error-ifo-licesen').removeClass('display-none').text('请更改车牌号'); + return; + } + var parkInfo = $("#cardrule-table").bootstrapTable('getRowByUniqueId',id); + //校验车牌号个人客户信息以及是否重复办理 + var req = { + sysCode: sysComm.sysCode, + userPhone: phone, + carNumber:carNum, + plNo:parkInfo.plNo, + effDate:starttimeinp+" 00:00:00", + expDate:endtimeinp+" 23:59:59", + checkFlg:3 + }; + var opt = { + method: 'post', + url: dataUrl.util.checkPhoneAndCarNumber(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if(res.code=='8888'){ + $('#error-ifo-edit').addClass('display-none').text(''); + //success + $('#verification-btnedit').text('校验成功'); + $('#verification-btnedit').css('color','#5fe98f'); + $('#car-num-inp-renew').attr("readOnly",true); + // $('#card-daterangesta-renew').addClass("card-daterange-bg"); + // $('#card-daterangesta-renew').removeClass("ITD-daterange-bg"); + $('#car-num-inp-renew').css("border","0"); + + + }else{ + $('#error-ifo-edit').removeClass('display-none').text(res.msg); + return; + } + + } + }; + sysAjax(opt); + + } +}); +//会员卡弹窗 更换车牌 修改 +documentBindFunc.on('click','#renewlicesen-btn',function () { + $('#renewlicesen-verbtn').text('校验'); + $('#renewlicesen-verbtn').css('color','#1E95CD'); + $('#renewlicesen-Edit').attr("readOnly",false); + $('#renewlicesen-Edit').css("border","1px solid #1E95CD"); +}); +//会员卡弹窗 删除 +documentBindFunc.on('click','.carddel',function (){ + var id = $(this).attr("value"); + var parkInfo = $("#cardrule-table").bootstrapTable('getRowByUniqueId',id); + + $("#cardrule_deletemodelId").val(""); + $("#cardrule_deletemodelId").val(parkInfo.custCardNo); + $('#cardrule_deletemodel').modal('show'); +}); + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#reportBtn").val("导出"); + } + else { + curCount--; + $("#reportBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#reportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#cardrule-table").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#cardrule-table").bootstrapTable('getOptions').totalRows; + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //执行倒计时函数 + sendMessage(); + var url = dataUrl.util.exportVipCardForOpration(); + /*var tableData = $("#cardrule-table").bootstrapTable('getData'); + if(tableData == null || tableData.length ==0){ + return false; + }*/ + var form = getForm(url); + form.submit(); + +}); + +//获取form表单 +function getForm(url){ + var plNos = $("#parkselectNames").val(); + var param =cardruleFun.getQueryParam(); + //卡状态:1:全部 2:生效中 3:近期失效 4:已失效 + var cardStateTag = $("#cardrule-toptab").find("div[class='ITD-graynav-topbar ITD-graynav-topbaractive']").attr("value"); + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "carType"; + input.value = param.carType; + form.appendChild(input); + var input1 = document.createElement("input"); + input1.name = "carNumber"; + input1.value = param.carNumber; + form.appendChild(input1); + var input2 = document.createElement("input"); + input2.name = "plNos"; + input2.value = JSON.parse(plNos); + form.appendChild(input2); + var input3 = document.createElement("input"); + input3.name = "cardType"; + input3.value = param.cardType; + form.appendChild(input3); + if(param.beginTime != null && param.beginTime != "" ){ + var input4 = document.createElement("input"); + input4.name = "beginTime"; + input4.value = param.beginTime; + form.appendChild(input4); + } + if(param.endTime != '' && param.endTime == null ){ + var input5 = document.createElement("input"); + input5.name = "endTime"; + input5.value = param.endTime; + form.appendChild(input5); + } + + + + var input6 = document.createElement("input"); + input6.name = "cardStateTag"; + input6.value = cardStateTag; + form.appendChild(input6); + + return form; +} + + + +//会员卡删除弹窗 提交 +documentBindFunc.on('click','#areamanage-parkdelete-submit',function (){ + var custCardNo = $("#cardrule_deletemodelId").val(); + if(custCardNo == null || custCardNo == "" || custCardNo == undefined){ + + } + var vipCardDetail={custCardNo:custCardNo}; + var detailList =[]; + detailList.push(vipCardDetail); + var req = { + sysCode:sysComm.sysCode, + detailList:detailList + }; + + var opt = { + method: 'post', + url: dataUrl.util.deleteVipCardCustInfoByCustCardNo(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888' && res.data) { + $('#cardrule_deletemodel').modal('hide'); + $("#cardrule-table").bootstrapTable('refresh'); + //汇总查询 + cardruleFun.queryVipCardOrderDetailTotal(); + } + } + }; + sysAjax(opt); + + // +}); + +//time function +function formatSeconds(value) { + var theTime = parseInt(value); // 秒 + var theTime1 = 0; // 分 + var theTime2 = 0; // 小时 + // alert(theTime); + if(theTime > 60) { + theTime1 = parseInt(theTime / 60); + theTime = parseInt(theTime % 60); + // alert(theTime1+"-"+theTime); + if(theTime1 > 60) { + theTime2 = parseInt(theTime1 / 60); + theTime1 = parseInt(theTime1 % 60); + } + } else { + return theTime + "秒"; + } + var result = ''; + if(theTime1 > 0) { + result = "" + parseInt(theTime1) + "分钟" + result; + } + if(theTime2 > 0) { + result = "" + parseInt(theTime2) + "小时" + result; + } + return result; +}; + +//模版下载 +documentBindFunc.on('click', '#excleTemplate', function() { + window.location.href = parkcloudbaseUrl + "vipcard/会员卡购买批量导入模版.xlsx"; + +}); + +//upload function + + +//上传filestr................................................. +$('#uplate_sure').on('click', function() { + var url =dataUrl.util.batchImportVipCardCustInfo(); + ajaxSubmit("form1",url,function(res){ + if(res.code == '8888') { + var data = res.data; + if(data != null && data.length >50 ){ + $('#error-ifo-add').removeClass('display-none').text("一次最多上传100条数据"); + return; + }else if(data == null || data == "" || data == undefined){ + $('#error-ifo-add').removeClass('display-none').text("请在excle添加数据后上传"); + return; + } + $.each(data,function(index,row){ + if(row.length <5){ + $('#error-ifo-add').removeClass('display-none').text("上传的excle不正确"); + return; + } + var htmlData ='
                ' + + '
              • ' + + ' ' + + '
              • ' + + '
              • ' + + ' ' + + '
              • ' + + '
              • ' + + ' ' + + '
              • ' + + '
              • ' + + ' ' + + '
              • ' + + '
              • ' + + ' ' + + '
              • ' + + '
              • ' + + ' ' + + '
              • ' + + '
              • ' + + ' ' + + '
              • ' + + '
              • ' + + ' 校验' + + '
              • ' + + '
              • ' + + ' 修改' + + ' 删除' + + '
              • ' + + '' + + '
              '; + $("#card-list-main").append(htmlData); + $(".card-daterange-btnsta").datetimepicker({ + // endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }).on("changeDate", function (ev) { + + var d = new Date(ev.date); + var nums=$(this).parent().parent('ul').find('.car-num-inp').val(); + /* if(nums=='' ||nums==undefined || nums==null ||nums==NaN){ + return nums=0; + }*/ + var cardTypeAddValue = $('#cardTypeAdd').attr('value'); + if(cardTypeAddValue == '1' || cardTypeAddValue =='6'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('month', (12*nums))).format('YYYY-MM-DD')); + return; + }else if(cardTypeAddValue=='2'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('month', (6*nums))).format('YYYY-MM-DD')); + return; + }else if(cardTypeAddValue=='3'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('month', (3*nums))).format('YYYY-MM-DD')); + return; + }else if(cardTypeAddValue=='4' || cardTypeAddValue=='7'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('month', (1*nums))).format('YYYY-MM-DD')); + return; + }else if(cardTypeAddValue == '5'){ + $(this).parent().parent().find('.enddate-inp').text((moment(d).add('day', (1*nums))).format('YYYY-MM-DD')); + return; + } + }); + }); + } + }); + function ajaxSubmit(formId,url,callback){ + $("#"+formId).ajaxSubmit({ + url: url, //后台方法的路径 + type: 'post', //当要提交自定义参数时,这个参数要设置成post + dataType: 'json', //服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。 + beforeSend: function (xhr) { + xhr.setRequestHeader("x-auth-token", fn.getToken()); + }, + success: function(data) { // data 保存提交后返回的数据,一般为 json 数据 + callback(data); + } + }); + }; + + + + +}); + + +//上传fileend................................................. + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = cardruleFun.getQueryParam(); + var plNos = $("#parkselectNames").val(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + if(plNos != undefined && plNos != null){ + req.plNos=JSON.parse(plNos); + } + + var opt = { + method: 'post', + url: dataUrl.util.queryVipCardCustInfoForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} +//input change +function inputChangeupload() { + // documentBindFunc.on("change", "#file_btn", function() + // console.log($(this)) + var filePath = $('#file_btn').val(); + var arr = filePath.split('\\'); + var fileName = arr[arr.length - 1]; + console.log(fileName) + $(".fileinput-filename").html(fileName); + $('#uplate_sure').removeAttr("disabled"); //移除disabled属性 + // }); +} + diff --git a/assets/pages/scripts/vipmanageFile/cardRule/css/cardrule.css b/assets/pages/scripts/vipmanageFile/cardRule/css/cardrule.css new file mode 100644 index 0000000..155a8d9 --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/cardRule/css/cardrule.css @@ -0,0 +1,419 @@ +/*搜索栏----*/ +.vipmanage-parking-l { + float: left; + width: 60px; + height: 34px; + line-height: 34px; +} +.cardrule-parkinput78 { + width: 60%; + height: 34px; + line-height: 34px; +} +.bootstrap-select.btn-group .dropdown-menu.inner{ + max-height: 200px!important; +} +.car-number{ + border: 1px solid #ccc; + height: 18px; + line-height: 18px; + padding: 0px 8px; + text-align: center; + display: block; + float: left; + margin:-1px 5px 0; +} +.add-plus,.deduct-minus{ + width: 16px; + height: 16px; + line-height: 16px; + color: #fff; + padding-left: 4px; +} +.row-stye-rule{ + width: 111px; + padding-left: 25px; + margin-bottom: 15px; +} +.vip-wid564{ + width: 664px; + margin-left: 9px; + padding: 15px; + background-color: #f5f7f8; +} +.totla-mon{ + margin-top: 15px; + font-size: 16px; + padding-left: 25px; +} +.totla-mon span{ + margin-left: 10px; + margin-right: 10px; + font-size: 20px; + color: #fe516d; +} +.colstyles-div{ + font-size: 13px; + +} +.colstyles-div span{ + margin-left: 5px; +} +.parkNametit{ + padding-left: 25px; + margin-top: -12px; + height: 35px; + line-height: 35px; +} + +.colfix{ + color: #f00; + padding-left: 25px; + margin-top: -20px; +} +.parkMono{ + height: 160px; + display: none; +} +.form-parkMono{ + height: 100px; + overflow-y: scroll; + background: #fff; + padding-left: 20px; + padding-top: 5px; +} + + + +.tishiMsg{ + height: 30px; + line-height: 30px; +} +.form-body-con-padding{ + padding: 15px 15px; +} +.btn.default:not(.btn-outline){ + /*background-color: ;*/ + border: 1px solid #c2cad8; +} + + +.progressWidth{ + width: 200px; + height: 15px; + border: 1px solid #efefef; + border-radius: 10px!important; + position: relative; + overflow: hidden; + margin-right: 10px; +} +.progressLoad{ + position: absolute; + left: 0; + top:0; + height: 15px; + background-color: #32c5d2; +} +#write_rule,#change_rule{ + color: #ff0000; +} +#progressWrap { + padding-top: 15px; + padding-left: 38px; + padding-bottom: 15px; +} + + + + + + + + + + +/*新样式-----------------------------------------------------*/ +.cardrule-type-wrap li{ + flex: 1; + height: 164px; +} +.cardrule-type-wrap li:nth-of-type(1){ + background-color: #1E95CD; + background-image: url("../img/cardrule-person-ico.png"); + background-repeat: no-repeat; + /*background-size: 100% 100%;*/ +} +.cardrule-num-totla div:nth-of-type(1){ + color:rgba(255,255,255,.8); + border: 1px solid rgba(255,255,255,.8); + padding: 2px 10px; + top: 8px; + right: 11px; +} +.cardrule-num-totla div:nth-of-type(2){ + width: 100%; + top: 50px; + text-align: center; + color:#fff; +} +.cardrule-num-totla div:nth-of-type(3){ + width: 100%; + top: 95px; + text-align: center; + color: #fff; +} +.cardrule-num-totla div:nth-of-type(4){ + color:rgba(255,255,255,.8); + left: 11px; + bottom: 15px; +} +.cardrule-num-totla div:nth-of-type(5){ + color:rgba(255,255,255,.8); + right: 11px; + bottom: 15px; +} +.cardrule-type-wrap li:nth-of-type(2){ + margin: 0 6px; +} +.card-type-top,.card-type-bottom{ + height: 79px; + background-color: #fafafa; +} +.card-type-top{ + margin-bottom: 6px; +} +.card-type-list{ + padding-top: 10px; +} +.card-type-name{ + width: 150px; + height: 77px; + line-height: 77px; +} + + +.cardrule-td-first{ + background: #fafafa url("../../../../img/cardrule-td-first.png") no-repeat 90% 30px; + margin-left: -24px; + padding-top: 10px; + padding-left: 24px; +} +.cardrule-td-year{ + top:9px; + right: 9px; + border:1px solid #fe944d; + padding: 0 8px; + color: #fe944d; +} +.cardrule-td-month{ + top:9px; + right: 9px; + border:1px solid #fed64d; + padding: 0 8px; + color: #fed64d; +} +.cardrule-td-season{ + top:9px; + right: 9px; + border:1px solid #5fe98f; + padding: 0 8px; + color: #5fe98f; +} +.cardrule-td-lose{ + top:9px; + right: 9px; + border:1px solid #fd714b; + padding: 0 8px; + color: #fd714b; +} +.cardrule-td-halfyear{ + top:9px; + right: 9px; + border:1px solid #1E95CD; + padding: 0 8px; + color: #1E95CD; +} + +.reviseMon,.renewMon{ + margin-right: 2px; +} +.renewlicesen{ + margin-right: 4px; +} +.ITD-handle-btn{ + width: 143px; + height: 25px; + padding-top: 3px; + text-align: center; + font-size: 12px; + color: rgba(0,0,0,.6); + border-radius: 4px!important; + border:1px solid #b1b1b1; + cursor: pointer; +} +.cardrule-poptop-cont{ + height: 34px; + line-height: 34px; + width: 100%; +} +.padding-left0{ + padding-left: 0 !important; +} +.card-about-con{ + height: 32px; + line-height: 32px; + padding-left: 24px; + border: 1px dotted #f0f0f0; + margin-bottom: 20px; +} +.card-about-con li { + margin-right: 50px; +} +.card-list-header{ + height: 36px; + line-height: 36px; + background-color: #fafafa; + padding-left: 24px; +} +.card-list-header li:nth-of-type(1),.card-list-wrap li:nth-of-type(1){ + width: 90px; +} +.card-list-header li:nth-of-type(2),.card-list-wrap li:nth-of-type(2){ + width: 100px; +} +.card-list-header li:nth-of-type(3),.card-list-wrap li:nth-of-type(3){ + width: 100px; +} +.card-list-header li:nth-of-type(4),.card-list-wrap li:nth-of-type(4){ + width: 70px; +} +.card-list-header li:nth-of-type(5),.card-list-wrap li:nth-of-type(5){ + width: 150px; +} +.card-list-header li:nth-of-type(6),.card-list-wrap li:nth-of-type(6){ + width: 120px; +} +.card-list-header li:nth-of-type(7),.card-list-wrap li:nth-of-type(7){ + width: 80px; +} +.card-list-header li:nth-of-type(8),.card-list-wrap li:nth-of-type(8){ + width: 80px; +} +.card-list-header li:nth-of-type(9),.card-list-wrap li:nth-of-type(9){ + width: 120px; +} +.rulepos-abs{ + position: absolute; + top: 3px; +} +.card-list-wrap{ + padding-left: 24px; + height: 36px; + border-bottom: 1px solid #e7ecf1; +} +.card-list-wrap li{ + line-height: 36px; + height: 36px; +} +.card-list-wrap li input{ + height: 30px; + line-height: 30px; + width: 70px; +} +.card-add-wrap li:nth-of-type(1){ + padding-left: 24px; + color: #fd714b; + width: 350px; + margin-right: 50px; +} +.card-list-main{ + min-height: 50px; + max-height: 200px; + overflow-y: auto; +} +.card-list-wrap li:nth-of-type(4) input{ + width: 60px; +} +#card-list-main .card-list-wrap{ + display: block; +} +.card-add-wrap{ + height: 60px; + padding-top: 20px; +} +.card-add-wrap li:nth-of-type(2){ + cursor: pointer; + color: #fff; + width: 94px; + height: 28px; + text-align: center; + line-height: 28px; + background-color: #fcca4c; + border-radius: 4px!important; +} + +/*批量上传 -------*/ +.card-batch-wrap{ + height: 54px; + background-color: #fafafa; + border-bottom: 1px solid #e8e8e8; +} +.card-batch-left{ + width: 161px; + height: 34px; + margin-top: 10px; + padding-left: 20px; + border-right: 1px solid #e8e8e8; + background:url("../img/pop_word_ico.png") no-repeat 20px center; +} +.batch-left-toptit{ + height: 20px; + line-height: 20px; + font-size: 14px; + margin-left: 30px; + background: url("../img/pop_unload.png") no-repeat 90px ; +} +.batch-left-jdt{ + width: 100px; + height: 3px; + background-color: #e8e8e8; + border-radius: 5px!important; + vertical-align: middle; + overflow: hidden; + margin-top: 5px; + margin-left: 30px; +} +.left-jdt-scale{ + width: 60%; + height: 3px; + border-radius: 5px!important; + background-color: #50c1f4; +} +.card-batch-right{ + padding-top: 10px; + width: 140px; + height: 34px; + padding-left: 24px; +} +.card-batch-upload{ + height: 34px; + width: 80px; + margin: 10px 50px 0 10px; +} +.cardrule-error-ifo{ + text-align: center; + color:#f00; + height: 30px; + line-height: 30px; +} +#carTypeedit,#renewTimeedit,#renewPriceedit,#renewDisedit,#renewCardtypeedit,#renewlicesenType,#renewlicesenTime,#renewlicesenPrice,#renewlicesenDisval,#renewlicesenCardtype{ + margin-left: 3px; +} +.card-daterange-bg { + width: 55%; + text-align: left; + /*background: url(../../img/dataicon.png) no-repeat 94% 9px;*/ + background: #fff; + padding-right: 25px; + border-radius: 4px !important; +} \ No newline at end of file diff --git a/assets/pages/scripts/vipmanageFile/cardRule/img/cardrule-person-ico.png b/assets/pages/scripts/vipmanageFile/cardRule/img/cardrule-person-ico.png new file mode 100644 index 0000000..47360e5 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardRule/img/cardrule-person-ico.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardRule/img/pop_unload.png b/assets/pages/scripts/vipmanageFile/cardRule/img/pop_unload.png new file mode 100644 index 0000000..d06267e Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardRule/img/pop_unload.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardRule/img/pop_upload.png b/assets/pages/scripts/vipmanageFile/cardRule/img/pop_upload.png new file mode 100644 index 0000000..a9b1f8c Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardRule/img/pop_upload.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardRule/img/pop_word_ico.png b/assets/pages/scripts/vipmanageFile/cardRule/img/pop_word_ico.png new file mode 100644 index 0000000..5a91dc3 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardRule/img/pop_word_ico.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardRule/page/cardrule.html b/assets/pages/scripts/vipmanageFile/cardRule/page/cardrule.html new file mode 100644 index 0000000..b814004 --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/cardRule/page/cardrule.html @@ -0,0 +1,514 @@ + + +
              +
              +
              +
              +
              + +
              +
              + +
              +
              + 车牌号 + + +
              +
              +
              +
              更多
              +
              +
              +
              查询
              +
              +
              +
              + + + +
              +
              +
              全部
              +
              生效中
              +
              近期失效
              +
              已失效
              + +
              +
              + +
              +
              +
              + +
              +
              +
              +
                +
              • 会员卡列表
              • +
              • + +
              • +
              • + 办理会员卡 +
              • +
              +
              +
              +
              +
              + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.css b/assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.css new file mode 100644 index 0000000..c118ab8 --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.css @@ -0,0 +1,302 @@ + +/*新样式*/ +.vipcardrule-parking-l{ + width: 70px; +} +.vipcardrule-content{ + padding: 0 0 40px 0; +} +.vipcardrule-height196{ + height: 196px; +} +.vipcardrule-card{ + width: 348px; + margin-right: 24px; +} +#vipcardrule-card-type{ + position: relative; + width: 100%; + height: 100%; +} +.vipcardrule-type-red{ + background: url("img/vipcardrule-red.png") no-repeat; +} +.vipcardrule-type-yellow{ + background: url("img/vipcardrule-yellow.png") no-repeat; +} +.vipcardrule-type-green{ + background: url("img/vipcardrule-green.png") no-repeat; +} +.vipcardrule-type-blue{ + background: url("img/vipcardrule-blue.png") no-repeat; +} +#vipcardrule-card-type li:nth-of-type(1){ + left: 20px; + top:18px; + font-size: 14px; + color: #fff; + background-color: rgba(255,255,255,.2); + border-radius:4px!important ; + padding: 2px 10px 1px; +} +#vipcardrule-card-type li:nth-of-type(2){ + right: 20px; + top:18px; + font-size: 14px; + color: #fff; +} +#vipcardrule-card-type li:nth-of-type(3){ + left: 20px; + top:82px; + font-size: 28px; + color: #fff; +} +#vipcardrule-card-type li:nth-of-type(4){ + left: 20px; + top:120px; + font-size: 14px; + color: #fff; +} +#vipcardrule-card-type li:nth-of-type(5){ + left: 20px; + bottom:12px; + font-size: 13px; + color: #fff; + letter-spacing: 6px; +} +.vipcardrule-per-50{ + width: 50%; + padding: 20px 20px 20px 32px; +} +.vipcardrule-container li{ + font-size: 13px; + margin-bottom: 11px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +/*弹窗新样式*/ +/*新增 弹窗 -------------------*/ +.vipcardrule-width80{ + width: 80px; +} +.vipcardrule-pad5{ + padding-left: 5px; + padding-right: 5px; +} +.vipcardrule-daterange-bg { + width: 180px; + text-align: left; + background: url(img/dataicon.png) no-repeat 150px 9px; + background-color: #fff; +} +.vipcardrule-findPark{ + position: absolute; + top: 0; + right: 0; + height: 34px; + width: 34px; + background: url(img/find_icon.png) no-repeat; + background-size: 17px 17px; + background-position: 6px 8px; + cursor: pointer; +} +.vipcardrule-group{ + width: 315px; + height: 360px; + margin-left: 12px; + background-color: #f5f7f8; + margin-bottom: 24px; +} +.vipcardrule-form-group-ul{ + height: 220px; + margin-left: 13px; + width: 300px; + padding-top: 15px; +} +.vipcardrule-line1{ + width: 280px; + height: 1px; + background-color: #c2cad8; + margin-left: 17px; +} +.vipcardrule-form-grup-checked{ + padding-top: 10px; + height: 130px; + width: 310px; + overflow-y:auto; +} +.treeview-checkable_org { + height: 205px; + margin-left: 30px; + width: 250px; + overflow-y: auto; + overflow-x: auto; + float: left; +} +/*选中停车场*/ +.vipcardrule-parkCheck,.vipcardrule-editParkCheck{ + height: 28px; + width: 142px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + line-height: 28px; + padding: 0 24px 0 12px; + display: inline-block; + border-radius: 4px !important; + background-color: #fff; + position: relative; + border: 1px solid #d8e2e5; + margin-left: 8px; +} +.vipcardrule-closex,.vipcardrule-editclosex{ + position: absolute; + top:8px; + right: 9px; + height: 9px; + width: 9px; + background: url(img/parkclose_icon.png) no-repeat; + background-size: 9px 9px; + cursor: pointer; +} +.vipcardrule-sale-tit{ + width: 80px; + float: left; + text-align: right; + line-height: 34px; + margin-left: 74px; + margin-right: 10px; + font-weight: bold; +} +.vipcardrule-goodprice,.vipcardrule-saleNum{ + width: 180px; + height: 34px; + line-height: 34px; + color: #ff0202; + padding-left: 10px; + padding-right: 30px; +} +.vipcardrule-borcol{ + border:1px solid #d8e2e5 !important +} +.vipcardrule-pospri,.vipcardrule-possale{ + position: absolute; + top:0; + right: 70px; + height: 34px; + line-height: 34px; + color: #666; +} +/*树*/ +#user_org_tree li span.button.ico_docu,#userEdit_org_tree li span.button.ico_docu{ + background-position: -17px -105px; +} +#user_org_tree li span.button.ico_open,#userEdit_org_tree li span.button.ico_open{ + background-position: 1px -105px; +} + +#user_org_tree li span.button.ico_close,#userEdit_org_tree li span.button.ico_close{ + background-position: 1px -105px; +} + +/*.danger-color{*/ +/*background-color:rgba(42,187,155,.5)!important;*/ +/*}*/ +/*单选复选美化*/ +input[type=checkbox], +input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +input[type=checkbox]:hover + label{ + background: url('img/input-checkexActive.png') no-repeat 0 center; + +} +input[type=checkbox]:checked + label{ + background: url('img/input-checkbox.png') no-repeat 0 center; + +} + +input[type=checkbox]:checked:hover + label{ + background: url('img/input-checkbox.png') no-repeat 0 center; + +} + +input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +input[type=radio]:hover + label{ + background: url('img/input-radio.png') no-repeat 0 center; +} +input[type=radio]:checked + label{ + background : url('img/input-radio-active.png') no-repeat 0 center; + +} +input[type=radio]:checked:hover + label{ + background: url('img/input-radio-active.png') no-repeat 0 center; + +} +/*max height*/ +.vipcardITD-model-contbody{ + padding: 0 !important; +} +.cardrule_maxheight{ + height: 420px; + overflow-y: auto; +} +.table>tbody>tr.success>td, .table>tbody>tr.success>th, .table>tbody>tr>td.success, .table>tbody>tr>th.success, .table>tfoot>tr.success>td, .table>tfoot>tr.success>th, .table>tfoot>tr>td.success, .table>tfoot>tr>th.success, .table>thead>tr.success>td, .table>thead>tr.success>th, .table>thead>tr>td.success, .table>thead>tr>th.success{ + background-color: rgba(30,149,205,0.2) !important; +} +.cardsetJB{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.cardsetZF{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: -36px -18px; +} +.card_ts{ + font-size: 12px; + height: 14px; + line-height: 14px; + width: 150px; + top: 38px; + left: 6px; + color: red; +} \ No newline at end of file diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.html b/assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.html new file mode 100644 index 0000000..24dda83 --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.html @@ -0,0 +1,465 @@ +
              +
              +
              +
              +
              + +
              +
              + +
              +
              + +
              +
              +
              +
              查询
              +
              + +
              +
              +
              +
              +
              + +
              +
              +
              +
              + 会员卡规则列表 +
              +
              + +
              +
              +
              +
              +
              +
              +
                +
              • X卡
              • +
              • 有效时间段:    XX:XX-XX:XX
              • +
              • XX
              • +
              • XXXXXX
              • +
              • V000000000000000000
              • +
              +
              +
              +
                +
              • + 车型 : 小型车 +
              • +
              • + 有效特征日 : 不限 +
              • +
              • + 折扣 : 9 +
              • +
              • + 可售卖停车场 : 小型车小型车小型车小型车小型车小型车小型车小型车小型车小型车小型车 +
              • +
              • + 生效时间 : 小型车 +
              • +
              • + 失效时间 : 小型车 +
              • +
              +
                +
              • + 上架状态 : +
              • +
              • + 办卡渠道 : +
              • +
              • + 卡种类 : +
              • +
              • + 创建时间 : +
              • +
              • + 创建人 : +
              • +
              • + 审核状态 : +
              • + +
              +
              + +
              + +
              +
              + +
              +
              +
              + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.js b/assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.js new file mode 100644 index 0000000..fe6b52a --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.js @@ -0,0 +1,1205 @@ +function cardruleSettingInit() { + /** + * 分页START + */ + var cardType = {"1":"年卡","2":"半年卡","3":"季卡","4":"月卡","5":"日卡","6":"错峰年卡(周末免费)","7":"错峰月卡(周末免费)"}; + var carType ={"2":"小型车","1":"大型车"}; + var specialDayType ={"-1":"不限","1":"工作日","2":"非工作日","3":"每天"}; + var auditorStatus={"1":"待审核","2":"通过","3":"驳回"}; + var cardStatus={"1":"上架","2":"下架"}; + var saleChannel={"1":"APP","2":"公众号","3":"平台"}; + // var saleChannel={"3":"平台"};//暂时先将非平台渠道注释 + var addSpecialDayType = {"-1":"不限","1":"工作日","2":"非工作日","3":"每天"}; + var UseType={"1":"单体卡","2":"共享卡"}; + + var arrid = []; + var editarrid = []; + + documentBindFunc.on('click','#queryBtn',function(){ + fun.createVipCardRuleTable(); + }); + + /**点击某一行赋值 **/ + documentBindFunc.on("#vipCardRuleTable click-row.bs.table",function(e,row,ele){ + $(".success").removeClass("success"); + $(ele).addClass("success"); + var index = $("#vipCardRuleTable").find("tr.success").data("index"); + var row = $("#vipCardRuleTable").bootstrapTable('getData')[index]; + // $(".danger-color").removeClass("danger-color"); + // $(ele).addClass("danger-color"); + // var index = $("#vipCardRuleTable").find("tr.danger-color").data("index"); + // console.log(row); + fun.queryVipCardRuleForOne(row); + }); + + + + var fun={ + init: function () { + //1、初始化会员卡规则表格 + fun.createVipCardRuleTable(); + }, + + + /*获取查询参数*/ + getQueryParam: function () { + + /*状态:1:生效 中2:已失效 3:未生效*/ + + var cardType = $("#cardType").val(); + if (cardType == "" || cardType == undefined) { + cardType = null; + } + var carType = $("#carType").val(); + if (carType == "" || carType == undefined) { + carType = null; + } + var cardStatus = $("#saleType").val(); + if (cardStatus == "" || cardStatus == undefined) { + cardStatus = null; + } + var req = { + carType: carType, + cardType: cardType, + cardStatus: cardStatus, + }; + console.log(req); + return req; + }, + + queryVipCardRuleForOne:function (row) { + + var colorType; + if(row.cardType == null) { + colorType="vipcardrule-type-green"; + } else if(1 == row.cardType) { + colorType="vipcardrule-type-yellow"; + } else if(2 == row.cardType) { + colorType="vipcardrule-type-blue"; + } else if(3 == row.cardType) { + colorType="vipcardrule-type-red"; + } else if(4 == row.cardType) { + colorType="vipcardrule-type-green"; + } else if(5 == row.cardType) { + colorType="vipcardrule-type-green"; + }else if(6 == row.cardType) { + colorType="vipcardrule-type-yellow"; + }else if(7 == row.cardType) { + colorType="vipcardrule-type-green"; + } + $("#vipcardrule-card-type").removeClass(); + $("#vipcardrule-card-type").addClass(colorType); + $("#cardType_sel").text(cardTypeFormatter(row.cardType)); + $("#effTimeForMinute_sel").text(expireTimeFormatter(null,row)); + $("#price_sel").text(moneyFormatter(row.price)); + $("#cardName_sel").text(row.cardName); + $("#cardNo_sel").text(row.cardNo); + $("#carType_sel").text(carTypeFormatter(row.carType)); + $("#dayOrNight_sel").text(specialDayTypeFormatter(row.specialDayType)); + $("#discValue_sel").text(discValueListFormatter(row.vipCardParkList)); + + $("#parkNames_sel").text(parkNamesFormatter(row.vipCardParkList)); + $("#effTime_sel").text(DatatimeFormatter(row.effDate)); + $("#expTime_sel").text(DatatimeFormatter(row.expDate)); + $("#cardState_sel").text(cardStateFormatter(row.cardStatus)); + $("#saleChannel_sel").text(saleChannelFormatter(row.saleChannel)); + $("#useType_sel").text(useTypeFormatter(row.useType)); + $("#createTime_sel").text(DatatimeFormatter(row.createDate)); + $("#createName_sel").text(row.createName); + $("#auditorStatus_sel").text(auditorStatusFormatter(row.auditorStatus)); + }, + + queryVipCardRuleForClean:function(){ + $("#vipcardrule-card-type").removeClass(); + $("#vipcardrule-card-type").addClass("vipcardrule-type-green"); + $("#cardType_sel").text("X卡"); + $("#effTimeForMinute_sel").text("XX:XX-XX:XX"); + $("#price_sel").text("XX"); + $("#cardName_sel").text("XXXXXX"); + $("#cardNo_sel").text("V0000000000000000000000"); + }, + + /**创建表格*/ + createVipCardRuleTable: function() { + $('#vipCardRuleTable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 1, + // rightFixedColumns: true, + // rightFixedNumber: 1, + // selectItemName: 'personCustName', + paginationPreText: '<', + paginationNextText: '>', + ajax: selectVipCardRuleTableAjax, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'id', + title: '主键', + width: '10%', + visible: false, + align: 'left' + }, + { + field: 'cardNo', + title: '会员卡编码', + width: '10%', + visible: false, + align: 'left' + }, + { + field: 'cardName', + title: '卡名称', + width: '20%', + align: 'left', + formatter: commonObj.replacenull + }, + + { + field: 'cardType', + title: '卡类型', + width: '20%', + align: 'left', + formatter: cardTypeFormatter + + }, + { + field: 'price', + title: '卡价格', + width: '15%', + align: 'left', + formatter:commonObj.moneyFormatter + }, + { + field: 'vipCardParkList', + title: '折扣', + width: '15%', + align: 'left', + visible: true, + formatter: function (value, row, index) { + if(value.length>0 && value != undefined && value != null) { + if(value[0].discValue==null ||value[0].discValue==''){ + value[0].discValue = '无折扣' + } + return value[0].discValue; + } else { + return "无折扣"; + } + } + + }, + { + field: 'expireTime', + title: '有效时间段', + width: '15%', + align: 'left', + visible: true, + formatter: function (value, row, index) { + + if(row.validStartTime!=null && row.validStartTime!=undefined){ + if(row.validEndTime!=null && row.validEndTime!=undefined){ + return DateUtils.long2String(row.validStartTime,3).substr(0,5)+" - "+DateUtils.long2String(row.validEndTime,3).substr(0,5); + } + } + + } + }, + { + field: 'cardStatus', + title: '上下架状态', + width: '15%', + align: 'left', + formatter:cardStateFormatter + }, + { + field: 'oper', + title: '操作', + width: '20%', + align:"left", + formatter: function(value, row, index) { + var html = ''; + html += "修改" + html += "删除 " + return html; + } + }, + ] + }); + + }, + + + }; + + + fun.init(); + + // //折扣验证 + $('#saleNums,#saleNum').keyup(function () { + var obj = this; + clearNoNumZheKou(obj); + }); + + +//折扣验证 + function clearNoNumZheKou(obj){ + obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符 + obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的 + //obj.value = obj.value.charAt(1).replace(/\/g,"."); + obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); + obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数 + + if(obj.value.indexOf(".")< 0 && obj.value !="" && Number(obj.value)!=0){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 + obj.value= parseFloat(obj.value); + } + if(Number(obj.value)>=10 || Number(obj.value)==0){ + obj.value = obj.value.charAt(0) + }; + } + + (function ($) { + + var cardTypeSelect = ''; + //初始化卡类型下拉框 + $.each(cardType, function(index,row) { + cardTypeSelect+=''; + }); + $("#cardType").empty(); + $("#cardType").append(cardTypeSelect); + $('#cardType').selectpicker('refresh'); + //车量类型 + var carTypeSlect=""; + $.each(carType, function(index,row) { + carTypeSlect+=''; + }); + $("#carType").empty(); + $("#carType").append(carTypeSlect); + $('#carType').selectpicker('refresh'); + //上下架状态 + var saleTypeSelect =''; + $.each(cardStatus, function(index,row) { + saleTypeSelect+=''; + }); + $("#saleType").empty(); + $("#saleType").append(saleTypeSelect); + $('#saleType').selectpicker('refresh'); + })(jQuery); + +//时间处理 + function DatatimeFormatter (value){ + if(value==null){ + return ""; + }else{ + return DateUtils.long2String(value,7).substr(0,10); + } + }; + function cardTypeFormatter(value) { + // 1-年卡;2-半年卡;3-季卡;4-月卡;5-日卡 + if(value == null) { + return "-"; + } else if(1 == value) { + return "年卡"; + } else if(2 == value) { + return "半年卡"; + } else if(3 == value) { + return "季卡"; + } else if(4 == value) { + return "月卡"; + } else if(5 == value) { + return "日卡"; + }else if(6 == value) { + return "年卡(错峰)"; + }else if(7 == value) { + return "月卡(错峰)"; + } + }; + function expireTimeFormatter(value,row) { + if(row.validStartTime!=null && row.validStartTime!=undefined){ + if(row.validEndTime!=null && row.validEndTime!=undefined){ + return DateUtils.long2String(row.validStartTime,3).substr(0,5)+" - "+DateUtils.long2String(row.validEndTime,3).substr(0,5); + } + } + }; + //金额处理 + function moneyFormatter(value){ + if(value == 0 || value == undefined || value == null) { + return 0.00; + } else { + return(value / 100).toFixed(2); + } + }; + function carTypeFormatter(value) { + // 1-大型车;2-小型车 + if(value == null) { + return "不限"; + } else if(1 == value) { + return "大型车"; + } else if(2 == value) { + return "小型车"; + } + }; + function specialDayTypeFormatter(value) { + // 特征日标识:-1:不限; 1:工作日; 2:非工作日 + if(value == null || value==-1) { + return "不限"; + } else if(1 == value) { + return "工作日"; + } else if(2 == value) { + return "非工作日"; + } + }; + + function discValueListFormatter(value) { + + if(value.length>0 && value != undefined && value != null) { + if(value[0].discValue == null || value[0].discValue == "" || value[0].discValue==undefined){ + return "无折扣"; + }else{ + return value[0].discValue+" 折"; + } + + } else { + return "无折扣"; + } + }; + function parkNamesFormatter(value) { + if(value.length>0 && value != undefined && value != null) { + var parkName=""; + for(var i=0;i0){ + fun.queryVipCardRuleForOne(res.data.rows[0]); + $("#detail_sel").css("display","block"); + }else{ + fun.queryVipCardRuleForClean(); + $("#detail_sel").css("display","none"); + } + + } + } + }; + sysAjax(vipCardList); + }; + + + /** + * 处理错误信息 + * @param {Object} res + */ + function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + alert('树失败') + return true; + }else{ + return false; + } + } + + +//编辑修改弹窗 + documentBindFunc.on('click','.vipcardrule-edit',function () { + + $('#goodprices').attr('value',''); + $("#saleNums").attr('value',''); + $('#goodprices').val(''); + $("#saleNums").val(''); + + var selected = $('#editCardStatus').find("input"); + $.each(selected,function(index,rows) { + $(this).parent().removeAttr("class"); + $(this).removeAttr("checked"); + }); + var cardNo = $(this).attr('data-id'); + $("#cardNoHidden").val(cardNo); + // var cardNo =$("#editParkId").val(); + $('#writeEdit_rule').addClass('display-none').text('');//提示信息初始化 + editarrid = [];//初始化数组 + $('#vipcardrule-edit_findPark').val('');//搜索框初始化停车场停车场 + //$('#edit-checked').append('''+treeNode.name+''')//泊位区间初始化 + //editarrid.push() //把传过来的泊位区间的id 赋给editarrid + //条件查询 + var req= { + baseRequest:{ + pageNum:1, + pageSize:1 + }, + cardNo:cardNo, + sysCode:sysComm.sysCode + }; + //1.分页查询会员卡规则数据 + var vipCardList= { + method: "post", + url: dataUrl.util.queryVIPCardRuleForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res); + if("8888" == res.code){ + + $("#editParkId").empty(); + commSelect.plName_select('#editParkId'); + $("#editParkId").selectpicker('refresh') + var data = res.data.dataList; + if(data != null){ + $.each(data, function(index,row) { + $("#priKeyEdit").val(row.id); + $("#cardTypeEdit").text(cardType[row.cardType]); + $("#cardruleEditName").text(row.cardName); + $("#editUseType").attr("data-id",""); + $("#editUseType").attr("data-id",row.carType); + $("#carEditType").text(carType[row.carType]); + $("#useedDate").text(specialDayType[row.specialDayType]); + $("#validEndTimeEdit").text(DatatimeFormatterHHMMSS(row.validStartTime)+'-'+DatatimeFormatterHHMMSS(row.validEndTime)); + $("#editBeginTime").text(DatatimeFormatter(row.effDate)); + $("#editEndTime").text(DatatimeFormatter(row.expDate)); + $("#editSalseChannel").text(saleChannel[row.saleChannel]); + $("#editAuditorStatus").text(auditorStatus[row.auditorStatus]); + var validNum=row.validNum; + $("#cardMax_inpedit").val(validNum); + /*if(validNum != null && validNum !='' && validNum == undefined && validNum !='0'){ + + }*/ + //$("#editCardStatus").text(cardStatus[row.cardStatus]); + var selected = $('#editCardStatus').find("input"); + $.each(selected,function(index,rows) { + if($(this).attr('value') ==row.cardStatus){ + $(this).parent().attr("class","checked"); + $(this).prop("checked","checked"); + } + }); + + $("#editUseType").text(UseType[row.useType]); + $('#goodprices').attr('value',row.price/100); + + $('#goodprices').val(row.price/100); + var vipCardParkList = row.vipCardParkList; + if(vipCardParkList.length >0){ + var html=""; + $.each(row.vipCardParkList, function(index,rows) { + if(index ==0){ + $("#saleNums").attr('value',rows.discValue); + $("#saleNums").val(rows.discValue); + } + editarrid.push(rows.plNo); + $('#editParkId').val("[\""+rows.plNo+"\"]"); + $("#editParkId").selectpicker('refresh'); + // + + + var plData = sessionStorage.getItem('sys_parkLot'); + if(plData != null && plData != '' && plData != undefined){ + $.each(JSON.parse(plData), function (index, item) { + + if(item.code == rows.plNo){ + $("#cardts_numedit").text("此停车场泊位总数:"+item.plBerthNum); + } + }); + }else{ + $("#cardts_numedit").text("此停车场泊位总数:0"); + } + + // areaEditTree.updateNodesForNotChecked(rows.plNo,true); + // html+=''+rows.plName+''; + }); + // $("#edit-checked").empty(); + // $("#edit-checked").append(html); + } + }); + } + + + } + } + }; + sysAjax(vipCardList); + //show放到初始化之后 + $('#vipcardrule_editmodel').modal('show'); + }); +//新增卡规则 + documentBindFunc.on('click','#vipcardrule-title',function () { + + $("#vipcardrule-write-submit").removeAttr("disabled"); + //ajax 成功后 下拉框初始化 树初始化 弹窗里面的内容都初始化 之后再 $('#addmodel').modal('show'); + $('#write_rule').addClass('display-none').text();//提示信息初始化 + //areaTree.initTree(); //初始化区域tree + //初始化停车场 + commSelect.plName_select('#addParkId'); + + + //获取停车场泊位数量 + var plNos =JSON.parse($("#addParkId").val()); + var plData = sessionStorage.getItem('sys_parkLot'); + if(plData != null && plData != '' && plData != undefined){ + $.each(JSON.parse(plData), function (index, item) { + + if(item.code == plNos){ + $("#cardts_numadd").text("此停车场泊位总数:"+item.plBerthNum); + } + }); + }else{ + $("#cardts_numadd").text("此停车场泊位总数:0"); + } + + + console.log(plNos) + + $('#add-findPark').val('');//搜索框初始化 + $('#vipcardrule-parkCheck').empty();//树下面内容初始化 + $('#cardruleNames_inp').val('');//卡名称初始化 + laydate.render({ + elem: '#startTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '07:00', + min: '00:00:00', + max: '23:00:00', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'abolute', + /* done: function (value, date, endDate) { + console.log(value); //得到日期生成的值,如:2017-08-18 + console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + + $('#endTime-right').val(value) + }*/ + // range: true + + }); + laydate.render({ + elem: '#endTime',//指定元素 + type: 'time', + theme: '#2abb9a',//主体颜色 + value: '19:00', + format: 'HH:mm', + btns: ['clear', 'confirm'], + position: 'abolute', + /*done: function (value, date, endDate) { + console.log(value); //得到日期生成的值,如:2017-08-18 + console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} + console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 + $('#startTime-right').val(value) + }*/ + // range: true + + }); + // effective_time();//有效时段初始化 + // $('#endTime').val('08:00');//有效时段初始化 + arrid = []; //存储数组初始化 + $('#vipcardrule-goodprice').val('');//单价初始化 + $('#saleNum').val('');//折扣初始化 + $('#saleyes').prop('checked',true);//是否上架初始化 + $('#saleno').prop('checked',false);//是否上架初始化 + // $('#card1').prop('checked',true);//卡种类初始化 + $('#card2').prop('checked',true);//卡种类初始化 + $('#timeinStartDate').datetimepicker('remove'); + $('#timeinEndDate').datetimepicker('remove'); + + $("#timeinStartDate").val( moment().subtract('days', 0).format('YYYY-MM-DD')); + $("#timeinEndDate").val( moment().add('days', 1).format('YYYY-MM-DD')); + $("#timeinStartDate").datetimepicker({ + startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + minView: "month",//设置只显示到月份 + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-right" + }).on("changeDate", function (ev) { + var startval = moment($("#timeinStartDate").val()).add('days', 0).format('YYYY-MM-DD'); + var val = moment($("#timeinStartDate").val()).add('days', 1).format('YYYY-MM-DD'); + $("#timeinEndDate").datetimepicker("setStartDate", val); + // $("#timeinEndDate").datetimepicker("setEndDate", val); + $("#timeinEndDate").val(val) + $('#timeinEndDate').datetimepicker('update'); + $("#timeinEndDate").datetimepicker({ + format: 'yyyy-mm-dd', + minView: "month",//设置只显示到月份 + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-right" + }); + }); + $("#timeinEndDate").datetimepicker({ + startDate: moment().add('days', 2).format('YYYY-MM-DD'), + //endDate: moment().subtract('days', 0).format('YYYY-MM-DD HH:ss'), + format: 'yyyy-mm-dd', + minView: "month",//设置只显示到月份 + autoclose: true, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-right" + });//生效,失效时间初始化 + /****************init data***********************/ + //初始化卡类型下拉框 + var cardTypeSelect=""; + $.each(cardType, function(index,row) { + cardTypeSelect+=''; + }); + $("#addCardtype").empty(); + $("#addCardtype").append(cardTypeSelect); + $("#addCardtype").selectpicker('refresh'); + //2.初始化车辆类型下拉框 + var carTypeSlect=""; + /**$.each(carType, function(index,row) { + ; + carTypeSlect+=''; + });*/ + carTypeSlect+=''; + carTypeSlect+=''; + $("#addCarType").empty(); + $("#addCarType").append(carTypeSlect); + $("#addCarType").selectpicker('refresh'); + //3.特征日 + var pecialDayType=""; + $.each(addSpecialDayType, function(index,row) { + //默认选中赠送积分 + if(index == "-1"){ + pecialDayType+=''; + }else{ + pecialDayType+=''; + } + + }); + $("#addSpecialDayType").empty(); + $("#addSpecialDayType").append(pecialDayType); + $("#addSpecialDayType").selectpicker('refresh'); + //4.办卡渠道 + var cardChannel=""; + $.each(saleChannel, function(index,row) { + cardChannel+=''; + }); + $("#addCardChannel").empty(); + $("#addCardChannel").append(cardChannel); + $("#addCardChannel").selectpicker('refresh'); + + $('#vipcardrule_addmodel').modal('show'); + }); +//删除卡规则 + documentBindFunc.on('click','.vipcardrule-del',function () { + var id = $(this).attr('data-id'); + $("#deleteId").val(id); + var cardNo = $(this).attr('value'); + $("#cardNo").val(cardNo); + $('#vipcardrule-deletemodel').modal('show'); + }); +//delete确定按钮 + documentBindFunc.on('click','#vipcardrule-delete-submit',function(){ + var req= { + id:$("#deleteId").val(), + cardNo:$("#cardNo").val(), + cardStatus:2, + dataState:0, + sysCode:sysComm.sysCode + }; + var vipCardList= { + method: "post", + url: dataUrl.util.deleteVipCard(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if("8888" == res.code){ + $('#vipcardrule-deletemodel').modal('hide'); + fun.createVipCardRuleTable(); + }else{ + $('#vipcardrule-deletemodel').modal('hide'); + $('.ITD-alertmodel-contentmsg').text(res.msg); + $('#vipcardrule_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#vipcardrule_alertmodel').modal('hide') + },2000); + } + } + }; + sysAjax(vipCardList); + }); + + documentBindFunc.on('change','#addParkId',function(){ + //获取停车场泊位数量 + var plNos =JSON.parse($("#addParkId").val()); + ; + var plData = sessionStorage.getItem('sys_parkLot'); + if(plData != null && plData != '' && plData != undefined){ + $.each(JSON.parse(plData), function (index, item) { + + if(item.code == plNos){ + $("#cardts_numadd").text("此停车场泊位总数:"+item.plBerthNum); + } + }); + }else{ + $("#cardts_numadd").text("此停车场泊位总数:0"); + } + }); + //修改change + documentBindFunc.on('change','#editParkId',function(){ + ; + //获取停车场泊位数量 + var plNos =JSON.parse($("#editParkId").val()); + ; + var plData = sessionStorage.getItem('sys_parkLot'); + if(plData != null && plData != '' && plData != undefined){ + $.each(JSON.parse(plData), function (index, item) { + + if(item.code == plNos){ + $("#cardts_numedit").text("此停车场泊位总数:"+item.plBerthNum); + } + }); + }else{ + $("#cardts_numedit").text("此停车场泊位总数:0"); + } + }); + + +//新增规则 提交按钮 + documentBindFunc.on('click','#vipcardrule-write-submit',function () { + //cardruleNames_inp + // ; + $("#vipcardrule-write-submit").attr("disabled","disabled"); + $('#write_rule').addClass('display-none') + var addCardtype =$("#addCardtype").val(); //卡类型 + var inpVal = $.trim($('#cardruleNames_inp').val()); //卡规则名称 + var addCarType =$("#addCarType").val(); //车辆类型 + var addSpecialDayType =$("#addSpecialDayType").val(); //特征日 + var startTime = new Date('2017/10/1 '+$('#startTime').val()); //有效时间段 + var endTime = new Date('2017/10/1 '+$('#endTime').val()); //有效时间段 + var timeinStartDate = $("#timeinStartDate").val(); //开始时间 + var timeinEndDate = $("#timeinEndDate").val(); //结束时间 + var addCardChannel =$("#addCardChannel").val(); //办卡渠道 + var audit= $('input:radio[name="audit"]:checked').val(); //审核状态 + var rales = $('input:radio[name="rales"]:checked').val(); //是否上架 + var cards= $('input:radio[name="cards"]:checked').val(); //卡种类 + // var text = $('#vipcardrule-parkCheck').text(); //停车场名称 + var priceText = $.trim($('#vipcardrule-goodprice').val()); //单价 + var offText = $.trim($('#saleNum').val()); //折扣 + var validNum = $("#cardMax_inp").val() ; //对应停车场最大会员卡数量限制 + console.log(validNum) + var parkIds=[]; + var parkIdsForCheck = []; + var plNos =JSON.parse($("#addParkId").val()); + console.log(plNos) + var plNoArrray = {"plNo":plNos[0]}; + parkIds.push(plNoArrray); + + // parkIdsForCheck.push(plNo); + /* $.each(parkCheck, function(index,row) { + var plNo = $(this).attr("data-id"); + if(plNo != null && plNo !="" && plNo != undefined){ + var plNoArrray = {"plNo":plNo}; + parkIds.push(plNoArrray); + parkIdsForCheck.push(plNo); + } + + });*/ + var saleNumValue = $('#saleNum').val(); + console.log(saleNumValue) + if(saleNumValue != null && saleNumValue !=undefined && saleNumValue !="" && saleNumValue <1){ + // alert() + $("#vipcardrule-write-submit").removeAttr("disabled"); + $('#write_rule').removeClass('display-none').text('错误提示:折扣范围为1-9.9'); + return false; + } + if(validNum=='0'){ + $("#vipcardrule-write-submit").removeAttr("disabled"); + $('#write_rule').removeClass('display-none').text('错误提示:最大购买数不能为0'); + return false; + } + + /***/ + if(inpVal){ + + + //泊位区间 + + //卡单价 + if(priceText){ + $('#write_rule').addClass('display-none').text(''); + /**卡折扣 + if(offText){ + $('#write_rule').addClass('display-none').text(''); + }else{ + $('#write_rule').removeClass('display-none').text('请输入折扣'); + return false; + }*/ + }else{ + $("#vipcardrule-write-submit").removeAttr("disabled"); + $('#write_rule').removeClass('display-none').text('错误提示:请输入单价'); + return false; + } + + + + }else{ + $("#vipcardrule-write-submit").removeAttr("disabled"); + $('#write_rule').removeClass('display-none').text('错误提示:请输入卡规则名称'); + return false; + + } + //单体卡只能选择一个停车场 + /* if("1"==cards ){ + $("#vipcardrule-write-submit").removeAttr("disabled"); + $('#write_rule').removeClass('display-none').text('错误提示:单体卡只能选择一个停车场'); + return false; + }*/ + /** + * 校验会员卡是否重复创建 + */ + var reqCheck= { + cardType:addCardtype, + carType:addCarType, + effDate:timeinStartDate, + expDate:timeinEndDate, + saleChannel:addCardChannel, + specialDayType:addSpecialDayType, + useType:cards, + plNos: plNos, + sysCode:sysComm.sysCode + }; + + var flg= checkVipCardPark(reqCheck); + + if(flg){ + + /**开始保存会员卡规则信息*/ + var req= { + cardType:addCardtype, + cardName:inpVal, + carType:addCarType, + specialDayType:addSpecialDayType, + validStartTime:startTime, + validEndTime:endTime, + effDate:timeinStartDate, + expDate:timeinEndDate, + saleChannel:addCardChannel, + auditorStatus:audit, + cardStatus:rales, + useType:cards, + price:priceText, + discValue:offText, + vipCardParkSaleRelDTOList:parkIds, + validNum:validNum, + sysCode:sysComm.sysCode + }; + var vipCardList= { + method: "post", + url: dataUrl.util.insertVipCard(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if("8888" == res.code){ + $("#vipcardrule-write-submit").removeAttr("disabled"); + $('#vipcardrule_addmodel').modal('hide'); + fun.createVipCardRuleTable(); + }else{ + $("#vipcardrule-write-submit").removeAttr("disabled"); + $('#write_rule').removeClass('display-none').text(res.msg); + return false; + } + } + }; + sysAjax(vipCardList); + } + }); +//修改规则 提交按钮 + documentBindFunc.on('click','#writeEdit-submit',function () { + /* var text = $('#edit-checked').text(); + // console.log(text.length) + if(text.length==0){ + $('#writeEdit_rule').removeClass('display-none').text('错误提示:请至少选择一个泊位区间'); + return false; + }else{ + $('#writeEdit_rule').addClass('display-none').text(''); + }*/ + var id=$("#priKeyEdit").val(); //id + var cardNo = $("#cardNoHidden").val(); //卡编号 + var editCardStatus =$("#editCardStatus").find("input[type='radio']:checked").val(); + + var priceText = $.trim($('#goodprices').val()); //单价 + var offText = $.trim($('#saleNums').val()); //折扣 + var parkIds=[]; + var parkCheck = $('#edit-checked').find("span"); + if(offText != null && offText !="" && offText !=undefined && offText<1){ + $("#writeEdit-submit").removeAttr("disabled"); + $('#writeEdit_rule').removeClass('display-none').text('错误提示:折扣范围为1-9.9'); + return false; + }else{ + $('#writeEdit_rule').addClass('display-none').text(''); + } + if(priceText==''){ + $("#writeEdit-submit").removeAttr("disabled"); + $('#writeEdit_rule').removeClass('display-none').text('错误提示:单价不能为空'); + return false; + }else{ + $('#writeEdit_rule').addClass('display-none').text(''); + } + // + /*$.each(parkCheck, function(index,row) { + var plNo = $(this).attr("data-id"); + if(plNo != null && plNo !="" && plNo != undefined){ + var plNoArrray = {"plNo":plNo}; + parkIds.push(plNoArrray); + } + });*/ + var plNo=JSON.parse($('#editParkId').val()); + var plNoArrray = {"plNo":plNo[0]}; + parkIds.push(plNoArrray); + var editCards = $("#editUseType").attr("data-id"); + var validNum = $("#cardMax_inpedit").val(); + if(validNum=='0'){ + $("#writeEdit-submit").removeAttr("disabled"); + $('#writeEdit_rule').removeClass('display-none').text('错误提示:最大购买数不能为0'); + return false; + } + + if(validNum == null || validNum =='' || validNum == undefined ){ + validNum = null; + } + + //单体卡只能选择一个停车场 + if("1"==editCards && parkIds.length >1){ + $("#writeEdit-submit").removeAttr("disabled"); + $('#writeEdit_rule').removeClass('display-none').text('错误提示:单体卡只能选择一个停车场'); + return false; + } + var submitFlg = true; + if(submitFlg){ + submitFlg= false; + var req= { + id:id, + cardNo:cardNo, + price:priceText, + discValue:offText, + cardStatus:editCardStatus, + vipCardParkSaleRelDTOList:parkIds, + validNum:validNum, + sysCode:sysComm.sysCode + }; + var vipCardList= { + method: "post", + url: dataUrl.util.updateVipCard(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if("8888" == res.code){ + submitFlg = true; + $('#vipcardrule_editmodel').modal('hide'); + fun.createVipCardRuleTable(); + }else{ + submitFlg = true; + $('#write_rule').removeClass('display-none').text(res.msg); + return false; + } + } + }; + sysAjax(vipCardList); + } + }); + +//编辑树下面内容删除 + $(document).delegate('.vipcardrule-editclosex','click',function () { + var valid = $(this).parent().attr('data-id'); + editarrid.remove(valid); + // console.log(editarrid) + $(this).parent().remove(); + //取消树的选中 + areaEditTree.updateNodesForNotChecked(valid,false); + }); +//数组删除方式 + Array.prototype.indexOf = function(val) { + for (var i = 0; i < this.length; i++) { + if (this[i] == val) return i; + } + return -1; + }; + Array.prototype.remove = function(val) { + var index = this.indexOf(val); + if (index > -1) { + this.splice(index, 1); + } + }; + /** + * 校验会员卡是否重复创建 + */ + function checkVipCardPark(reqCheck){ + ; + var flg=false; + var vipCardCheckList= { + method: "post", + url: dataUrl.util.checkVipCardPark(), + data: JSON.stringify(reqCheck), + contentType: 'application/json; charset=utf-8', + dataType:'json', + async: false, + success: function(res){ + if("8888" == res.code){ + var data=res.data; + if(data != null && data.length >0){ + var beginTime=""; + var endTime=""; + $.each(data,function(index,row){ + beginTime = row.effDate; + endTime = row.expDate; + }); + + $("#vipcardrule-write-submit").removeAttr("disabled"); + $('#write_rule').removeClass('display-none').text("该停车场卡规则在["+ + DatatimeFormatter(beginTime)+"-"+DatatimeFormatter(endTime)+"]已经创建,请勿重复创建"); + }else{ + flg=true; + } + + }else{ + $('#write_rule').removeClass('display-none').text("服务加载失败,请稍后重试") + return false; + } + } + }; + sysAjax(vipCardCheckList); + return flg; + } + + + + /** + * + * 过滤出level==1 并且 不包含搜索字符串的数据,根节点level 为0 + */ + function nodeFilter(node, search) { + return (node.level == 1 && node.name.indexOf(search)<0); + } + + + + + + + + + + + + + + + + + + +}; +cardruleSettingInit(); diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/Lineright-icon.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/Lineright-icon.png new file mode 100644 index 0000000..010e2ae Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/Lineright-icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/bgBlue-icon.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/bgBlue-icon.png new file mode 100644 index 0000000..1a17067 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/bgBlue-icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/bgGray-icon.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/bgGray-icon.png new file mode 100644 index 0000000..bbbe22e Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/bgGray-icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/carBig-icon.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/carBig-icon.png new file mode 100644 index 0000000..dff430d Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/carBig-icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/carSmall-icon.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/carSmall-icon.png new file mode 100644 index 0000000..177889c Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/carSmall-icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-blue.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-blue.png new file mode 100644 index 0000000..c8354ee Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-blue.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-green.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-green.png new file mode 100644 index 0000000..eba108e Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-green.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-yellow.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-yellow.png new file mode 100644 index 0000000..fe4acfa Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-circle-yellow.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-more.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-more.png new file mode 100644 index 0000000..467bee7 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-more.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-time.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-time.png new file mode 100644 index 0000000..ff39533 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule-time.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule_smallIcon.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule_smallIcon.png new file mode 100644 index 0000000..78379b6 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/chargingrule_smallIcon.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/dataicon.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/dataicon.png new file mode 100644 index 0000000..b04bfc8 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/dataicon.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/day-iconbg.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/day-iconbg.png new file mode 100644 index 0000000..ffd131d Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/day-iconbg.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/delList-icon.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/delList-icon.png new file mode 100644 index 0000000..a7060a3 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/delList-icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/delete_Rule.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/delete_Rule.png new file mode 100644 index 0000000..aa416f0 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/delete_Rule.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/discountrule_bgIco.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/discountrule_bgIco.png new file mode 100644 index 0000000..3527e1e Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/discountrule_bgIco.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/discountrule_topBgico.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/discountrule_topBgico.png new file mode 100644 index 0000000..912196a Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/discountrule_topBgico.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/find_icon.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/find_icon.png new file mode 100644 index 0000000..e3b88d2 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/find_icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-checkbox.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-checkbox.png new file mode 100644 index 0000000..27709ab Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-checkbox.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-checkexActive.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-checkexActive.png new file mode 100644 index 0000000..2e44210 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-checkexActive.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-radio-active.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-radio-active.png new file mode 100644 index 0000000..2649720 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-radio-active.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-radio.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-radio.png new file mode 100644 index 0000000..35e0b1b Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/input-radio.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/night-iconbg.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/night-iconbg.png new file mode 100644 index 0000000..f13bc21 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/night-iconbg.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/parkclose_icon.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/parkclose_icon.png new file mode 100644 index 0000000..61e4a24 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/parkclose_icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/popParknullIco.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/popParknullIco.png new file mode 100644 index 0000000..6efd454 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/popParknullIco.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-blue.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-blue.png new file mode 100644 index 0000000..49ed84b Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-blue.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-green.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-green.png new file mode 100644 index 0000000..13a160e Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-green.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-orange.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-orange.png new file mode 100644 index 0000000..01d41f5 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/truelist-orange.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-1.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-1.png new file mode 100644 index 0000000..2f952ee Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-1.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-2.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-2.png new file mode 100644 index 0000000..bb1fdfc Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-2.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-3.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-3.png new file mode 100644 index 0000000..bb1fdfc Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-3.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-blue.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-blue.png new file mode 100644 index 0000000..d32b586 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-blue.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-1.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-1.png new file mode 100644 index 0000000..00cf034 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-1.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-2.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-2.png new file mode 100644 index 0000000..bc77cca Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-2.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-3.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-3.png new file mode 100644 index 0000000..bc77cca Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-edit-3.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-green.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-green.png new file mode 100644 index 0000000..d2af31e Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-green.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-red.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-red.png new file mode 100644 index 0000000..2139cce Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-red.png differ diff --git a/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-yellow.png b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-yellow.png new file mode 100644 index 0000000..c34267c Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/cardruleSetting/img/vipcardrule-yellow.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/Lineright-icon.png b/assets/pages/scripts/vipmanageFile/img/Lineright-icon.png new file mode 100644 index 0000000..010e2ae Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/Lineright-icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/bgBlue-icon.png b/assets/pages/scripts/vipmanageFile/img/bgBlue-icon.png new file mode 100644 index 0000000..1a17067 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/bgBlue-icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/bgGray-icon.png b/assets/pages/scripts/vipmanageFile/img/bgGray-icon.png new file mode 100644 index 0000000..bbbe22e Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/bgGray-icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/carBig-icon.png b/assets/pages/scripts/vipmanageFile/img/carBig-icon.png new file mode 100644 index 0000000..dff430d Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/carBig-icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/carSmall-icon.png b/assets/pages/scripts/vipmanageFile/img/carSmall-icon.png new file mode 100644 index 0000000..177889c Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/carSmall-icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/chargingrule-circle-blue.png b/assets/pages/scripts/vipmanageFile/img/chargingrule-circle-blue.png new file mode 100644 index 0000000..c8354ee Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/chargingrule-circle-blue.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/chargingrule-circle-green.png b/assets/pages/scripts/vipmanageFile/img/chargingrule-circle-green.png new file mode 100644 index 0000000..eba108e Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/chargingrule-circle-green.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/chargingrule-circle-yellow.png b/assets/pages/scripts/vipmanageFile/img/chargingrule-circle-yellow.png new file mode 100644 index 0000000..fe4acfa Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/chargingrule-circle-yellow.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/chargingrule-more.png b/assets/pages/scripts/vipmanageFile/img/chargingrule-more.png new file mode 100644 index 0000000..467bee7 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/chargingrule-more.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/chargingrule-time.png b/assets/pages/scripts/vipmanageFile/img/chargingrule-time.png new file mode 100644 index 0000000..ff39533 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/chargingrule-time.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/chargingrule_smallIcon.png b/assets/pages/scripts/vipmanageFile/img/chargingrule_smallIcon.png new file mode 100644 index 0000000..78379b6 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/chargingrule_smallIcon.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/dataicon.png b/assets/pages/scripts/vipmanageFile/img/dataicon.png new file mode 100644 index 0000000..b04bfc8 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/dataicon.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/day-iconbg.png b/assets/pages/scripts/vipmanageFile/img/day-iconbg.png new file mode 100644 index 0000000..ffd131d Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/day-iconbg.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/delList-icon.png b/assets/pages/scripts/vipmanageFile/img/delList-icon.png new file mode 100644 index 0000000..a7060a3 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/delList-icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/delete_Rule.png b/assets/pages/scripts/vipmanageFile/img/delete_Rule.png new file mode 100644 index 0000000..aa416f0 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/delete_Rule.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/discountrule_bgIco.png b/assets/pages/scripts/vipmanageFile/img/discountrule_bgIco.png new file mode 100644 index 0000000..3527e1e Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/discountrule_bgIco.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/discountrule_topBgico.png b/assets/pages/scripts/vipmanageFile/img/discountrule_topBgico.png new file mode 100644 index 0000000..912196a Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/discountrule_topBgico.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/find_icon.png b/assets/pages/scripts/vipmanageFile/img/find_icon.png new file mode 100644 index 0000000..e3b88d2 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/find_icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/input-checkbox.png b/assets/pages/scripts/vipmanageFile/img/input-checkbox.png new file mode 100644 index 0000000..27709ab Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/input-checkbox.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/input-checkexActive.png b/assets/pages/scripts/vipmanageFile/img/input-checkexActive.png new file mode 100644 index 0000000..2e44210 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/input-checkexActive.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/input-radio-active.png b/assets/pages/scripts/vipmanageFile/img/input-radio-active.png new file mode 100644 index 0000000..2649720 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/input-radio-active.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/input-radio.png b/assets/pages/scripts/vipmanageFile/img/input-radio.png new file mode 100644 index 0000000..35e0b1b Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/input-radio.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/night-iconbg.png b/assets/pages/scripts/vipmanageFile/img/night-iconbg.png new file mode 100644 index 0000000..f13bc21 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/night-iconbg.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/parkclose_icon.png b/assets/pages/scripts/vipmanageFile/img/parkclose_icon.png new file mode 100644 index 0000000..61e4a24 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/parkclose_icon.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/popParknullIco.png b/assets/pages/scripts/vipmanageFile/img/popParknullIco.png new file mode 100644 index 0000000..6efd454 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/popParknullIco.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/truelist-blue.png b/assets/pages/scripts/vipmanageFile/img/truelist-blue.png new file mode 100644 index 0000000..49ed84b Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/truelist-blue.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/truelist-green.png b/assets/pages/scripts/vipmanageFile/img/truelist-green.png new file mode 100644 index 0000000..13a160e Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/truelist-green.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/truelist-orange.png b/assets/pages/scripts/vipmanageFile/img/truelist-orange.png new file mode 100644 index 0000000..01d41f5 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/truelist-orange.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/vipcardrule-1.png b/assets/pages/scripts/vipmanageFile/img/vipcardrule-1.png new file mode 100644 index 0000000..2f952ee Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/vipcardrule-1.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/vipcardrule-2.png b/assets/pages/scripts/vipmanageFile/img/vipcardrule-2.png new file mode 100644 index 0000000..bb1fdfc Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/vipcardrule-2.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/vipcardrule-3.png b/assets/pages/scripts/vipmanageFile/img/vipcardrule-3.png new file mode 100644 index 0000000..bb1fdfc Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/vipcardrule-3.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/vipcardrule-blue.png b/assets/pages/scripts/vipmanageFile/img/vipcardrule-blue.png new file mode 100644 index 0000000..d32b586 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/vipcardrule-blue.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-1.png b/assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-1.png new file mode 100644 index 0000000..00cf034 Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-1.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-2.png b/assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-2.png new file mode 100644 index 0000000..bc77cca Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-2.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-3.png b/assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-3.png new file mode 100644 index 0000000..bc77cca Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/vipcardrule-edit-3.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/vipcardrule-green.png b/assets/pages/scripts/vipmanageFile/img/vipcardrule-green.png new file mode 100644 index 0000000..d2af31e Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/vipcardrule-green.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/vipcardrule-red.png b/assets/pages/scripts/vipmanageFile/img/vipcardrule-red.png new file mode 100644 index 0000000..2139cce Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/vipcardrule-red.png differ diff --git a/assets/pages/scripts/vipmanageFile/img/vipcardrule-yellow.png b/assets/pages/scripts/vipmanageFile/img/vipcardrule-yellow.png new file mode 100644 index 0000000..c34267c Binary files /dev/null and b/assets/pages/scripts/vipmanageFile/img/vipcardrule-yellow.png differ diff --git a/assets/pages/scripts/vipmanageFile/vipStatistics/css/vipstatistics.css b/assets/pages/scripts/vipmanageFile/vipStatistics/css/vipstatistics.css new file mode 100644 index 0000000..f4788c2 --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/vipStatistics/css/vipstatistics.css @@ -0,0 +1,100 @@ +/*卡片 sta*/ +.vipsta-totalUl li{ + height: 38px; + line-height: 38px; + width: 100%; + border-bottom:1px solid #e7ecf1; +} +.vipsta-totalUl li span{ + height: 38px; + line-height: 38px; + padding-left: 32px; + width: 25%; + float: left; +} +.vipsta-totalUl li:first-of-type,.vipsta-totalUl li:first-of-type span{ + height: 48px; + line-height: 48px; +} + +.vipsta-bgcolorf6f5f5{ + background-color: #f6f5f5; +} +/*table sta*/ +.vipsta-td-first{ + background: #fafafa url("../../../../img/cardrule-td-first.png") no-repeat 90% 30px; + margin-left: -24px; + padding-top: 10px; + padding-left: 24px; +} +.vipsta-td-year{ + top:9px; + right: 9px; + border:1px solid #fe944d; + padding: 0 8px; + color: #fe944d; +} +.vipsta-td-month{ + top:9px; + right: 9px; + border:1px solid #fed64d; + padding: 0 8px; + color: #fed64d; +} +.vipsta-td-season{ + top:9px; + right: 9px; + border:1px solid #5fe98f; + padding: 0 8px; + color: #5fe98f; +} +.vipsta-td-lose{ + top:9px; + right: 9px; + border:1px solid #fd714b; + padding: 0 8px; + color: #fd714b; +} +.vipsta-td-halfyear{ + top:9px; + right: 9px; + border:1px solid #1E95CD; + padding: 0 8px; + color: #1E95CD; +} +.vipsta-card-year{ + top:9px; + border:1px solid #fe944d; + color: #fe944d; + height: 20px; + line-height: 20px; + width: 48px; + text-align: center; +} +.vipsta-card-month{ + top:9px; + border:1px solid #fed64d; + color: #fed64d; + height: 20px; + line-height: 20px; + width: 48px; + text-align: center; +} +.vipsta-card-season{ + top:9px; + border:1px solid #5fe98f; + color: #5fe98f; + height: 20px; + line-height: 20px; + width: 48px; + text-align: center; +} +.vipsta-card-other{ + top:9px; + border:1px solid #1E95CD; + color: #1E95CD; + height: 20px; + line-height: 20px; + width: 48px; + text-align: center; +} \ No newline at end of file diff --git a/assets/pages/scripts/vipmanageFile/vipStatistics/page/vipstatistics.html b/assets/pages/scripts/vipmanageFile/vipStatistics/page/vipstatistics.html new file mode 100644 index 0000000..33b177e --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/vipStatistics/page/vipstatistics.html @@ -0,0 +1,152 @@ + +
              +
              +
              +
              +
              + +
              +
              + +
              +
              + 日期 +
              + +
              + - +
              + +
              +
              +
              +
              +
              查询
              +
              +
              +
              +
              +
              +
              + + +
              +
              +
              +
                +
              • + 渠道汇总 + 新增(张) + 续费(次) + 实收 +
              • +
              • + 总计 + 0 + 0 + 0.00 +
              • +
              • + APP + 0 + 0 + 0.00 +
              • +
              • + 微信公众号 + 0 + 0 + 0.00 +
              • +
              • + 平台 + 0 + 0 + 0.00 +
              • +
              +
              +
              +
              +
              +
                +
              • + 卡类型 + 新增(张) + 续费(次) + 实收 +
              • +
              • + +
                年卡
                +
                + 0 + 0 + 0.00 +
              • +
              • + +
                月卡
                +
                + 0 + 0 + 0.0 +
              • +
              • + +
                季卡
                +
                + 0 + 0 + 0.0 +
              • +
              • + +
                其他
                +
                + 0 + 0 + 0.00 +
              • +
              +
              +
              +
              + + +
              +
              +
              +
                +
              • 会员卡明细
              • +
              • + +
              • +
              +
              +
              +
              +
              + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/vipmanageFile/vipStatistics/vipstatistics.js b/assets/pages/scripts/vipmanageFile/vipStatistics/vipstatistics.js new file mode 100644 index 0000000..d13e5af --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/vipStatistics/vipstatistics.js @@ -0,0 +1,633 @@ +var terminal_source={"1":"APP","3":"微信公众号","4":"平台","0":"汇总"}; +var cardType = {"1":"年卡","2":"半年卡","3":"季卡","4":"月卡","5":"日卡","6":"错峰年卡(周末免费)","7":"错峰月卡(周末免费)"}; + +var fun={ + init:function () { + commSelect.area_Pl_LinkedSelect("#vipsta-transSelecarea", "#vipsta-transSelectPark"); + fun.dateInit(); + fun.createTableData(); + fun.queryVipCardOrderDetailTotal(); + + }, + dateInit:function () { + //初始化 + /**日 时间初始化*/ + $('#vipsta-daydaterange-btnsta').val(moment().subtract('days', 7).format('YYYY-MM-DD')); + $('#vipsta-daydaterange-btnend').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + //开始日期 + $("#vipsta-daydaterange-btnsta").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + //结束日期 + $("#vipsta-daydaterange-btnend").datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + $(document).on('click','#vipsta-billQueryBnt',function(){ + fun.queryVipCardOrderDetailTotal(); + fun.createTableData(); + + }); + + }, + //默认加载表格 + createTableData: function() { + $('#vipsta-table').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + // showColumns: true, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'personCustName', + title: '会员卡信息', + width: '25%', + visible: true, + align: 'left', + formatter: function (value, row, index) { + //`card_type` int(2) NOT NULL COMMENT '卡类型 1-年卡;2-半年卡;3-季卡;4-月卡;5-日卡;6-错峰年卡(周末免费);7-错峰月卡(周末免费)', + // console.log(row.plNo) + if(row.cardType =="1" || row.cardType =="6"){ + //下面是模拟年卡cardrule-td-year 月卡cardrule-td-month 季卡cardrule-td-season 失效cardrule-td-lose + return '
              ' + + '
              年卡
              ' + + '
              '+(row.carNumber == null? "-" : row.carNumber)+'
              ' + + '
              '+(row.plName == null ? "-" :row.plName) +'
              ' + + '
              办卡时间 : '+commonObj.timeOneFormatter(row.createDate)+'
              ' + + '
              ' + }else if(row.cardType =="4" || row.cardType =="7"){ + return '
              ' + + '
              月卡
              ' + + '
              '+(row.carNumber == null? "-" : row.carNumber)+'
              ' + + '
              '+(row.plName == null ? "-" :row.plName) +'
              ' + + '
              办卡时间 : '+commonObj.timeOneFormatter(row.createDate)+'
              ' + + '
              '; + }else if(row.cardType =="3"){ + return '
              ' + + '
              季卡
              ' + + '
              '+(row.carNumber == null? "-" : row.carNumber)+'
              ' + + '
              '+(row.plName == null ? "-" :row.plName) +'
              ' + + '
              办卡时间 : '+commonObj.timeOneFormatter(row.createDate)+'
              ' + + '
              '; + }else if(row.cardType =="2"){ + return '
              ' + + '
              半年卡
              ' + + '
              '+(row.carNumber == null? "-" : row.carNumber)+'
              ' + + '
              '+(row.plName == null ? "-" :row.plName) +'
              ' + + '
              办卡时间 : '+commonObj.timeOneFormatter(row.createDate)+'
              ' + + '
              '; + }else{ + return '
              ' + + '
              日卡
              ' + + '
              '+(row.carNumber == null? "-" : row.carNumber)+'
              ' + + '
              '+(row.plName == null ? "-" :row.plName) +'
              ' + + '
              办卡时间 : '+commonObj.timeOneFormatter(row.createDate)+'
              ' + + '
              '; + } + + } + }, + { + field: 'carNumber', + title: '交易类型', + width: '15%', + align: 'left', + formatter: function(value, row, index) { +// return fun.cardStaFormatter(value, row, index); + return fun.cardTypeFormatter(value, row, index); + } + }, + + { + field: 'price', + title: '剩余时间', + width: '20%', + align: 'left', + + formatter: function(value, row, index) { + var a=parseInt((row.expDate - row.effDate) / parseInt(1000*3600*24)); + if(a<=0){ + return 0; + } + + return '
              ' + + '
              '+a+' 天
              ' + + '
              生效时间 : '+commonObj.timeOneFormatter(row.effDate)+'
              ' + + '
              失效时间 : '+commonObj.timeOneFormatter(row.expDate)+'
              ' + + '
              ' + } + + }, + { + field: 'price', + title: '卡信息', + width: '20%', + align: 'left', + + formatter: function(value, row, index) { + return '
              ' + + '
              卡单价 :'+commonObj.moneyFormatter(row.price)+' 元
              ' + + '
              购买数量 : '+(row.buyNum == null ? '-':row.buyNum)+'
              ' + + '
              车型 : '+fun.carTypeFormatter(row.carType)+'
              ' + + '
              ' + } + + }, + + { + field: 'price', + title: '费用信息', + width: '20%', + align: 'left', + formatter: function(value, row, index) { + return '
              ' + + '
              实收 :'+commonObj.moneyFormatter(row.cardActAmount)+'元
              ' + + //'
              应收 : '+cardruleFun.moneyFormatter(row.price)+'*'+row.num+'
              ' + + '
              应收 : '+commonObj.moneyFormatter((parseInt(row.cardActAmount)+parseInt(row.orderDicountFee)))+'
              ' + + '
              优惠 : '+commonObj.moneyFormatter(row.orderDicountFee)+'元
              ' + + '
              ' + } + }, + + + + ] + }); + + }, + outDatatimeFormatter: function(value, row, index) { + if(value == null) { + return ""; + } else { + return DateUtils.long2String(value, 1); + } + }, + //车型 + carTypeFormatter: function(value, row, index) { + // 1-大型车;2-小型车 + if(value == null) { + return "-"; + } else if(1 == value) { + return "大型车"; + } else if(2 == value) { + return "小型车"; + } + }, + //汇总查询 + queryVipCardOrderDetailTotal:function(){ + var plNos = $("#vipsta-transSelectPark").val(); + var req = fun.getQueryParam(); + //设置请求参数 + req.sysCode = sysComm.sysCode; + if(plNos != undefined && plNos != null){ + req.plNos=JSON.parse(plNos); + } + var opt = { + method: 'post', + url: dataUrl.util.vipcardManagerController(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + var cardActAmountAPP = 0; + var appAddNumAPP=0; //新增数量 + var appCotinNumAPP=0; //续费数量 + var cardActAmountWX = 0; + var appAddNumWX=0; //新增数量 + var appCotinNumWX=0; //续费数量 + var cardActAmountPT = 0; + var appAddNumPT=0; //新增数量 + var appCotinNumPT=0; //续费数量 + + + var data = res.data; + $.each(data,function(index,res) { + if(res.terminalSource == '1') { + if (res.cardActAmount != null && res.cardActAmount != '' && res.cardActAmount != undefined) { + cardActAmountAPP += parseInt(res.cardActAmount); + } + if (res.orderType == '301') { + appAddNumAPP++; + } else if (res.orderType == '302'){ + appCotinNumAPP++; + } + } else if (res.terminalSource == '3') { + if (res.cardActAmount != null && res.cardActAmount != '' && res.cardActAmount != undefined) { + cardActAmountWX += parseInt(res.cardActAmount); + } + if (res.orderType == '301') { + appAddNumWX++; + } else if (res.orderType == '302'){ + appCotinNumWX++; + } + } else { + if (res.cardActAmount != null && res.cardActAmount != '' && res.cardActAmount != undefined) { + cardActAmountPT += parseInt(res.cardActAmount); + } + if (res.orderType == '301') { + appAddNumPT++; + } else if (res.orderType == '302'){ + appCotinNumPT++; + } + } + + // + });//each + + var html ='
                \n' + + '
              • \n' + + ' 渠道汇总\n' + + ' 新增(张)\n' + + ' 续费(次)\n' + + ' 实收(元)\n' + + '
              • \n' + + '
              • \n' + + ' 总计\n' + + ' '+(parseInt(appAddNumAPP)+parseInt(appAddNumWX)+parseInt(appAddNumPT))+'\n' + + ' '+(parseInt(appCotinNumAPP)+parseInt(appCotinNumWX)+parseInt(appCotinNumPT))+'\n' + + ' '+moneyFormatter(parseInt(cardActAmountAPP)+parseInt(cardActAmountWX)+parseInt(cardActAmountPT))+'' + + '
              • \n' + + '
              • \n' + + ' APP\n' + + ' '+parseInt(appAddNumAPP)+'\n' + + ' '+parseInt(appCotinNumAPP)+'\n' + + ' '+moneyFormatter(cardActAmountAPP)+'\n' + + '
              • \n' + + '
              • \n' + + ' 微信公众号\n' + + ' '+parseInt(appAddNumWX)+'\n' + + ' '+parseInt(appCotinNumWX)+'\n' + + ' '+moneyFormatter(cardActAmountWX)+'\n' + + '
              • \n' + + '
              • \n' + + ' 平台\n' + + ' '+parseInt(appAddNumPT)+'\n' + + ' '+parseInt(appCotinNumPT)+'\n' + + ' '+moneyFormatter(cardActAmountPT)+'' + + '
              • ' + + '
              '; + $('#vipcardDetailCountByterminalResource').empty(); + $('#vipcardDetailCountByterminalResource').append(html); + + //------------- + var yearCardAmount = 0; + var yearCardAddNum = 0; + var yearCardCotinNum = 0; + //月卡 + var monthCardAmount=0; + var monthCardAddNum = 0; + var monthCardCotinNum = 0; + //季卡 + var quarterCardAmount=0; + var quarterCardAddNum = 0; + var quarterCardCotinNum = 0; + //其他 + var otherCardAmount=0; + var otherCardAddNum = 0; + var otherCardCotinNum = 0; + + $.each(data,function(index,res) { + if(res.cardType == '1' || res.cardType =='6') { + if (res.cardActAmount != null && res.cardActAmount != '' && res.cardActAmount != undefined) { + yearCardAmount += parseInt(res.cardActAmount); + } + if (res.orderType == '301') { + yearCardAddNum++; + } else if (res.orderType == '302'){ + yearCardCotinNum++; + } + } else if (res.cardType =='4' || res.cardType =='7') { + if (res.cardActAmount != null && res.cardActAmount != '' && res.cardActAmount != undefined) { + monthCardAmount += parseInt(res.cardActAmount); + } + if (res.orderType == '301') { + monthCardAddNum++; + } else if (res.orderType == '302'){ + monthCardCotinNum++; + } + } else if (res.cardType =='3'){ + if (res.cardActAmount != null && res.cardActAmount != '' && res.cardActAmount != undefined) { + quarterCardAmount += parseInt(res.cardActAmount); + } + if (res.orderType == '301') { + quarterCardAddNum++; + } else if (res.orderType == '302'){ + quarterCardCotinNum++; + } + }else{ + if (res.cardActAmount != null && res.cardActAmount != '' && res.cardActAmount != undefined) { + otherCardAmount += parseInt(res.cardActAmount); + } + if (res.orderType == '301') { + otherCardAddNum++; + } else if (res.orderType == '302'){ + otherCardCotinNum++; + } + } + + // + });//each + + var htmlStr='
                \n' + + '
              • \n' + + ' 卡类型\n' + + ' 新增(张)\n' + + ' 续费(次)\n' + + ' 实收(元)\n' + + '
              • \n' + + '
              • \n' + + ' \n' + + '
                年卡
                \n' + + '
                \n' + + ' '+(parseInt(yearCardAddNum))+'\n' + + ' '+parseInt(yearCardCotinNum)+'\n' + + ' '+moneyFormatter(parseInt(yearCardAmount))+'\n' + + '
              • \n' + + '
              • \n' + + ' \n' + + '
                月卡
                \n' + + '
                \n' + + ' '+parseInt(monthCardAddNum)+'\n' + + ' '+parseInt(monthCardCotinNum)+'\n' + + ' '+moneyFormatter(parseInt(monthCardAmount))+'\n' + + '
              • \n' + + '
              • \n' + + ' \n' + + '
                季卡
                \n' + + '
                \n' + + ' '+parseInt(quarterCardAddNum)+'\n' + + ' '+parseInt(quarterCardCotinNum)+'\n' + + ' '+moneyFormatter(parseInt(quarterCardAmount))+'\n' + + '
              • \n' + + '
              • \n' + + ' \n' + + '
                其他
                \n' + + '
                \n' + + ' '+parseInt(otherCardAddNum)+'\n' + + ' '+parseInt(otherCardCotinNum)+'\n' + + ' '+moneyFormatter(parseInt(otherCardAmount))+'\n' + + '
              • \n' + + '
              '; + + $('#vipcardDetailCountBycardType').empty(); + + $('#vipcardDetailCountBycardType').html(htmlStr); + } + }//success + }; + sysAjax(opt); + + }, + /*获取查询参数*/ + getQueryParam: function() { + /*开始时间*/ + var beginTime = null; + /*结束时间*/ + var endTime = null; + + /*解析时间*/ + var beginTime = $('#vipsta-daydaterange-btnsta').val(); + var endTime = $('#vipsta-daydaterange-btnend').val(); + if(beginTime !="" && beginTime != null && beginTime != undefined){ + beginTime = beginTime + " 00:00:00"; + } + if(endTime !="" && endTime != null && endTime != undefined){ + endTime = endTime+" 23:59:59"; + } + + var req = { + + beginTime: beginTime, + endTime: endTime, + }; + console.log(req); + return req; + }, + //卡是否生效 + cardStaFormatter: function(value, row, index) { + var returnStr=""; + var date = new Date(); + if(row.effDate == null) { + returnStr = '
              无效
              ' + } else { + if(row.effDate <= date.getTime() && date.getTime() <= row.expDate) { + returnStr = '
              生效
              '; + } else if(date.getTime() < row.effDate){ + returnStr = '
              未生效
              ' + }else{ + returnStr = '
              失效
              ' + } + } + if(row.effDate <= date.getTime() && date.getTime() <= row.expDate && row.orderType == 302) { + returnStr = '
              续费
              '; + } + return returnStr; + + }, + //交易类型 + cardTypeFormatter: function(value, row, index) { + var returnStr=""; + if(row.orderType == null || row.orderType == undefined || row.orderType == '') { + returnStr = '-' + } + else if(row.orderType == 302) { + returnStr = '
              续费
              '; + } + else if(row.orderType == 301) { + returnStr = '
              新增
              '; + } + else if(row.orderType == 303) { + returnStr = '
              变更车牌
              '; + } + else{ + returnStr = '
              未知
              '; + } + return returnStr; + + }, + inDatatimeFormatter: function(value) { + if(value == null) { + return ""; + } else { + return DateUtils.long2String(value, 1); + } + }, + + + +}; +fun.init(); + +/** + * 自定义table AJAX请求 + * @param {Object} params + */ +function tableLoadRequest(params) { + var req = fun.getQueryParam(); + var plNos = $("#vipsta-transSelectPark").val(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + if(plNos != undefined && plNos != null){ + req.plNos=JSON.parse(plNos); + } + + var opt = { + method: 'post', + url: dataUrl.util.queryVipCardOrderDetailForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#reportBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#reportBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#reportBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#reportBtn").val("导出"); + } + else { + curCount--; + $("#reportBtn").val(curCount + "秒后可再次导出"); + } +} +//导出excle +documentBindFunc.on('click','#reportBtn',function (){ + //获取table所有行数据 + var parkLot = $("#vipsta-table").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#vipsta-table").bootstrapTable('getOptions').totalRows; + if(parkLot.length<1){ + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + if(numTotal>10000){ + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + },3000); + return false; + } + //执行倒计时函数 + sendMessage(); + var url = dataUrl.util.exportVipOrderDetail(); + var form = getForm(url); + form.submit(); + + +}); + +//获取form表单 +function getForm(url){ + //; + var plNos = $("#vipsta-transSelectPark").val(); + /*开始时间*/ + var beginTime = null; + /*结束时间*/ + var endTime = null; + + /*解析时间*/ + var beginTime = $('#vipsta-daydaterange-btnsta').val(); + var endTime = $('#vipsta-daydaterange-btnend').val(); + if(beginTime !="" && beginTime != null && beginTime != undefined){ + beginTime = beginTime + " 00:00:00"; + } + if(endTime !="" && endTime != null && endTime != undefined){ + endTime = endTime+" 23:59:59"; + } + var form = document.createElement("form"); + form.style.display = 'none'; + form.action = url; + form.method = "post"; + document.body.appendChild(form); + + var input = document.createElement("input"); + input.name = "beginTime"; + input.value = beginTime; + form.appendChild(input); + var input1 = document.createElement("input"); + input1.name = "endTime"; + input1.value = endTime; + form.appendChild(input1); + var input2 = document.createElement("input"); + input2.name = "plNos"; + input2.value = JSON.parse(plNos); + form.appendChild(input2); + + return form; +} + + +//金额处理 +function moneyFormatter(value){ + if(value == 0 || value == undefined || value == null) { + return 0.00; + } else { + return(value / 100).toFixed(2); + } +}; diff --git a/assets/pages/scripts/vipmanageFile/vipmanageTmp.js b/assets/pages/scripts/vipmanageFile/vipmanageTmp.js new file mode 100644 index 0000000..b02e294 --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/vipmanageTmp.js @@ -0,0 +1,60 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
              '+urlarr[i].name+'
              ' + }else{ + _html += '
            64. '+urlarr[i].name+'
            65. ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/cardrule', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/vipmanageFile/cardRule/css/cardrule.css'); + res.load('../../assets/pages/scripts/vipmanageFile/cardRule/page/cardrule.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-cardrule').addClass('ITD-topbar-clickactive'); +}); +R.route('/cardrulesetting', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.css'); + res.load('../../assets/pages/scripts/vipmanageFile/cardruleSetting/cardrulesetting.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-cardrulesetting').addClass('ITD-topbar-clickactive'); + +}); +R.route('/vipstatistics', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/vipmanageFile/vipStatistics/css/vipstatistics.css'); + res.load('../../assets/pages/scripts/vipmanageFile/vipStatistics/page/vipstatistics.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-vipstatistics').addClass('ITD-topbar-clickactive'); + +}); +R.route('/whitelist', function() { + $("#pageCssLink").attr("href",'../../assets/pages/scripts/vipmanageFile/whiteList/whitelist.css'); + res.load('../../assets/pages/scripts/vipmanageFile/whiteList/whitelist.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-whitelist').addClass('ITD-topbar-clickactive'); + +}); \ No newline at end of file diff --git a/assets/pages/scripts/vipmanageFile/whiteList/whitelist.css b/assets/pages/scripts/vipmanageFile/whiteList/whitelist.css new file mode 100644 index 0000000..01cb08e --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/whiteList/whitelist.css @@ -0,0 +1,192 @@ + +/*//新样式*/ +.whitelist-parking-l{ + width: 70px; +} + + + +/*弹窗新样式*/ +/*---------------详情弹窗------------------*/ +.whitelist-chooseDivread{ + width: 670px; + height: 34px; + line-height: 34px; +} +.whitelist-width70{ + float: left; + margin-left: 20px; + width: 550px; + height: 34px; + line-height: 34px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/*---------------新增弹窗------------------*/ +.whitelist-findPark { + position: absolute; + top: 0; + right: 0; + height: 34px; + width: 34px; + background: url(../img/find_icon.png) no-repeat; + background-size: 17px 17px; + background-position: 6px 8px; + cursor: pointer; +} +.whitelist-group{ + width: 315px; + height: 390px; + margin-left: 12px; + background-color: #f5f7f8; + margin-bottom: 24px; +} +.whitelist-form-group-ul { + height: 220px; + margin-left: 13px; + width: 300px; + padding-top: 15px; +} +.whitelist-line1 { + width: 280px; + height: 1px; + background-color: #c2cad8; + margin-left: 17px; +} +.whitelist-form-grup-checked{ + padding-top: 5px; + height: 165px; + width: 310px; + overflow-y: auto; +} + +.treeview-checkable_org { + height: 205px; + margin-left: 30px; + width: 250px; + overflow-y: auto; + overflow-x: auto; + float: left; +} +.whitelist-parkCheck, .whitelist-editParkCheck { + height: 28px; + width: 142px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + line-height: 28px; + padding: 0 24px 0 12px; + display: inline-block; + border-radius: 4px !important; + background-color: #fff; + position: relative; + border: 1px solid #d8e2e5; + margin-left: 8px; +} +.closex, .editclosex { + position: absolute; + top: 8px; + right: 9px; + height: 9px; + width: 9px; + background: url(../img/parkclose_icon.png) no-repeat; + background-size: 9px 9px; + cursor: pointer; +} +.whitelist-padtop8{ + padding-top: 8px !important; +} + + +/*单选复选美化*/ +input[type=checkbox], +input[type=radio ]{ + width : 28px; + height : 24px; + margin : 0; + padding : 0; + opacity : 0; + filter: "alpha(opacity=0)"; /* IE 8 */ +} + +input[type=checkbox]+ label{ + display : inline-block; + margin-left : -28px; + padding-left : 28px; + background : url('../img/input-checkexActive.png') no-repeat 0 center; + line-height : 24px; + opacity : 1; + +} +input[type=checkbox]:hover + label{ + background: url('../img/input-checkexActive.png') no-repeat 0 center; + +} +input[type=checkbox]:checked + label{ + background: url('../img/input-checkbox.png') no-repeat 0 center; + +} + +input[type=checkbox]:checked:hover + label{ + background: url('../img/input-checkbox.png') no-repeat 0 center; + +} + +input[type=radio] + label{ + /*margin-right: 14px;*/ + display : inline-block; + margin-left : -28px; + padding-left : 20px; + background : url('../img/input-radio.png') no-repeat 0 center ; + line-height : 24px; + +} +input[type=radio]:hover + label{ + background: url('../img/input-radio.png') no-repeat 0 center; +} +input[type=radio]:checked + label{ + background : url('../img/input-radio-active.png') no-repeat 0 center; + +} +input[type=radio]:checked:hover + label{ + background: url('../img/input-radio-active.png') no-repeat 0 center; + +} + +.cardsetJB{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../../img/index-card-title.png); + background-repeat: no-repeat; + background-position: 0 0; +} +.cardsetZF{ + display: inline-block; + width: 18px; + height: 18px; + margin-right: 5px; + vertical-align: middle; + margin-top: -3px; + background-image: url(../../../img/person-icon.png); + background-repeat: no-repeat; + background-position: 0 0; +} +textarea{ + line-height: 20px; + height: 70px; + width: 180px; + padding: 4px 6px; + outline: none; + resize: none; +} +.list-model-footer { + text-align: center !important; + border-top: none !important; + padding: 0 24px 10px !important; +} \ No newline at end of file diff --git a/assets/pages/scripts/vipmanageFile/whiteList/whitelist.html b/assets/pages/scripts/vipmanageFile/whiteList/whitelist.html new file mode 100644 index 0000000..41b5c21 --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/whiteList/whitelist.html @@ -0,0 +1,465 @@ +
              +
              +
              +
              +
              + +
              +
              + +
              +
              + 规则名称 + +
              +
              +
              +
              查询
              +
              +
              +
              +
              +
              + 车牌号 + +
              +
              +
              +
              +
              + + +
              +
              +
              +
                +
              • 白名单规则记录
              • +
              • + + +
              • +
              +
              +
              +
              +
              + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/pages/scripts/vipmanageFile/whiteList/whitelist.js b/assets/pages/scripts/vipmanageFile/whiteList/whitelist.js new file mode 100644 index 0000000..ef3b272 --- /dev/null +++ b/assets/pages/scripts/vipmanageFile/whiteList/whitelist.js @@ -0,0 +1,1929 @@ +function pageInitWhite() { + var plNos = []; + var matchTypes = []; + var operateId; + var arrid = []; + var editarrid = []; + (function () { + var fun = { + + init: function () { + //初始化下拉框 + fun.initPark(); + /*生效时间初始化*/ + // $('#idcardTimeedit input').val(moment().subtract('days', 0).format('YYYY-MM-DD')+ ' - ' + moment().subtract('days', 30).format('YYYY-MM-DD')); + + fn.getMatchType(fun.initMatchType); + fn.getChargeType(fun.initChargeType); + + fun.searchParkAdd(); + fun.searchParkEdit(); + }, + //新增搜索停车场 + searchParkAdd: function () { + documentBindFunc.on('click', '#whitelist-findPark', function () { + var val = $.trim($('#whitelistadd-findPark').val()); + $('#whitelist-write_rule').addClass('display-none').text(''); + areaTree.getNodesByParamFuzzy(val); + //plSearch(); + + }); + }, + //修改搜索停车场 + searchParkEdit: function () { + documentBindFunc.on('click', '#whitelistedit-findPark', function () { + var val = $.trim($('#whitelisteditEdit-findPark').val()); + $('#whitelist-edit_rule').addClass('display-none').text(''); + areaEditTree.getNodesByParamFuzzy(val); + //plSearch(); + + }); + }, + + + //初始化停车场下拉框 + initPark: function () { + var data = fn.getParkLot(); + $("#parkIds").empty(); + var html = ''; + var parkcom = ''; + plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + html += ""; + parkcom += ""; + } + var plnosStr = JSON.stringify(plNos); + html = '' + html; + $("#parkIds").append(html); + $('#parkIds').selectpicker('render'); + $('#parkIds').trigger('change'); + fun.createTableData(); + + + }, + //初始化匹配规则 + initMatchType: function (datas) { + $('#matchType').empty(); + var html = ''; + + $.each(datas, function (index, data) { + html += ""; + }) + + html = '' + html; + $('#matchType').append(html); + $('#matchType').selectpicker('refresh'); + }, + //初始化收费类型 + initChargeType: function (datas) { + + $('#payOrg').empty(); + $('#payOrgedit').empty(); + var html = ''; + + $.each(datas, function (index, data) { + html += ""; + }) + + //html = '' + html; + $('#payOrg').append(html); + $('#payOrg').selectpicker('refresh'); + $('#payOrgedit').append(html); + $('#payOrgedit').selectpicker('refresh'); + }, + //生成表格数据 + createTableData: function () { + $('#recordtableWhite').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + showColumns: false, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'whiteRNo', + title: '规则编码', + width: '5%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'whiteRName', + title: '规则名称', + width: '10%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'matchType', + title: '匹配类型', + width: '5%', + align: 'left', + formatter: fun.matchTypeFormatter + }, + { + field: 'chargeType', + title: '收费类型', + width: '8%', + align: 'left', + formatter: fun.chargeTypeFormatter + }, + { + field: 'carNum', + title: '车牌', + width: '10%', + align: 'left', + formatter: commonObj.replacenull + }, + { + field: 'whiteRState', + title: '状态', + width: '8%', + align: 'left', + formatter: fun.whiteRStateFormatter + }, + { + field: 'createDate', + title: '创建时间', + width: '10%', + align: 'left', + formatter: commonObj.timeOneFormatter + }, + + + // { + // field: 'id', + // title: '主键', + // align: 'center' + // }, + { + field: 'oper', + title: '操作', + width: '15%', + align: 'left', + formatter: function (value, row, index) { + var html = ''; + html += "详情 修改删除"; + return html; + } + }, + ] + }); + + }, + matchTypeFormatter: function (value) { + var result = ""; + if (value == undefined || value == null||value==='') { + return "-"; + } + switch (value) { + case 1: + result = '前置匹配'; + break; + case 2: + result = '后置匹配'; + break; + case 3: + result = '完全匹配'; + break; + default: + result = '未知'; + } + return result; + }, + sexFormatter: function (value) { + var result = ""; + if (value == undefined || value == null||value==='') { + return "-"; + } + switch (value) { + case 1: + result = '男'; + break; + case 2: + result = '女'; + break; + default: + result = '未知'; + } + return result; + + }, + chargeTypeFormatter: function (value) { + var result = ""; + if (value == undefined || value == null||value==='') { + return "-"; + } + switch (value) { + case 1: + result = '免费'; + break; + case 2: + result = '每天只收一次'; + break; + case 3: + result = '运营新能源车折扣'; + break; + case 4: + result = '商户货车半小时免费'; + break; + default: + result = '未知'; + } + return result; + }, + whiteRStateFormatter: function (value) { + var result = ""; + if (value == undefined || value == null||value==='') { + return "-"; + } + switch (value) { + case 1: + result = '生效'; + break; + case 0: + result = '失效'; + break; + default: + result = '未知'; + } + return result; + }, + /*获取查询参数*/ + getQueryParam: function () { + //白名单规则名称 + var whiteRName = $("#whiteRName").val(); + /*匹配类型*/ + var matchType = $("#matchType").val(); + //停车场 + var plnos = JSON.parse($("#parkIds").val()); + /*车牌号*/ + var carNum = $('#carNum').val(); + carNum = carNum == null || carNum.length == 0 ? null : carNum.trim(); + + var req = { + plNos: plnos, + whiteRName: whiteRName, + matchType: matchType, + carNum: carNum + }; + console.log(req); + return req; + }, + + datetimeFormatter: function (value, row, index) { + if (value == undefined || value == null||value==='') { + return "-"; + } else { + return DateUtils.long2String(value, 1); + } + }, + datesFormatter: function (value, row, index) { + if (value == undefined || value == null||value==='') { + return "-"; + } else { + return DateUtils.long2String(value, 1); + } + }, + strFormatter: function (value) { + if (value == undefined || value == null||value==='') { + return ""; + } + return value + ""; + }, + + }; + + //初始执行 + fun.init(); + documentBindFunc.on('click', '#queryBtn', function () { + //fun.createTableData(); + $('#recordtableWhite').bootstrapTable('refresh'); + }); + // 添加弹窗 + documentBindFunc.on('click', '#whitelist-addBtn', function () { + $(".list_maxPaydiv").addClass('display-none'); + //初始化 + $("#whitelistadd-findPark").val(''); + $("#whitelistadd").val(""); + $('#rulename_inp').val('');//规则名称 + $("#payOrg").html($("#payOrg").html()); + $("#payOrg").selectpicker("refresh");//收费类型初始化 + $('#carlice-inp').val('');//车牌号初始化 + $('#carowners').val('');//车主初始化 + if($('#payOrg').find('option:selected').val()==2){ + $(".list_maxPaydiv").removeClass('display-none'); + $('#list_maxPay').val(''); + $(".type-group-div").addClass('display-none'); + $('#match-type2')[0].checked = true; + $('#match-type0').parent().removeClass('checked'); + $('#match-type1').parent().removeClass('checked'); + $('#match-type2').parent().addClass('checked'); + } + if($('#payOrg').find('option:selected').val()==1){ + $(".list_maxPaydiv").addClass('display-none'); + $('#list_maxPay').val(''); + $(".type-group-div").removeClass('display-none'); + $('#match-type0')[0].checked = true; + $('#match-type1').parent().addClass('checked');//匹配类型初始化 + $('#match-type1').parent().removeClass('checked');//匹配类型初始化 + $('#match-type2').parent().removeClass('checked');//匹配类型初始化 + } + else{ + + $(".list_maxPaydiv").addClass('display-none'); + $('#list_maxPay').val(''); + $(".type-group-div").addClass('display-none'); + $('#match-type2')[0].checked = true; + $('#match-type0').parent().removeClass('checked'); + $('#match-type1').parent().removeClass('checked'); + $('#match-type2').parent().addClass('checked'); + } + + // $('#match-type0').parent().addClass('checked');//匹配类型初始化 + // $('#match-type0')[0].checked = true; + // $('#match-type1').parent().removeClass('checked');//匹配类型初始化 + // $('#match-type2').parent().removeClass('checked');//匹配类型初始化 + + $('#manSex0').parent().addClass('checked');//性别初始化 + $('#manSex0')[0].checked = true;//性别初始化 + $('#manSex1').parent().removeClass('checked');//性别初始化 + $('#list_maxPay').val(''); // 最大金额初始化 + //$('#saletrue0').parent().addClass('checked');//是否生效初始化 + //$('#saletrue0')[0].checked=true;//是否生效初始化 + //$('#saletrue1').parent().removeClass('checked');//是否生效初始化 + + // 每天只收一次 type:2 除免费外 type:1,必选完全匹配 + documentBindFunc.on('change','#payOrg',function () { + console.log($('#payOrg').find('option:selected').val()); + if($('#payOrg').find('option:selected').val()==2){ + $(".list_maxPaydiv").removeClass('display-none'); + $('#list_maxPay').val(''); + $(".type-group-div").addClass('display-none'); + $('#match-type2')[0].checked = true; + $('#match-type0').parent().removeClass('checked'); + $('#match-type1').parent().removeClass('checked'); + $('#match-type2').parent().addClass('checked'); + } + else if($('#payOrg').find('option:selected').val()==1){ + $(".list_maxPaydiv").addClass('display-none'); + $('#list_maxPay').val(''); + $(".type-group-div").removeClass('display-none'); + $('#match-type0')[0].checked = true; + $('#match-type1').parent().removeClass('checked');//匹配类型初始化 + $('#match-type2').parent().removeClass('checked');//匹配类型初始化 + } + else{ + + $(".list_maxPaydiv").addClass('display-none'); + $('#list_maxPay').val(''); + $(".type-group-div").addClass('display-none'); + $('#match-type2')[0].checked = true; + $('#match-type0').parent().removeClass('checked'); + $('#match-type1').parent().removeClass('checked'); + $('#match-type2').parent().addClass('checked'); + } + + }); + + /*生效时间初始化*/ + $('#idcardTime input').val(moment().subtract('days', 0).format('YYYY-MM-DD') + ' - ' + moment().subtract('days', -30).format('YYYY-MM-DD')); + $('#idcardTime').daterangepicker({ + startDate: moment().subtract('days', 0), + endDate: moment().subtract('days', -30), + opens: 'right', //日期选择框的弹出位置 + locale: { + applyLabel: '确定', + cancelLabel: '取消', + customRangeLabel: '自定义', + daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'], + monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', + '七月', '八月', '九月', '十月', '十一月', '十二月'], + }, + }, + function (start, end) { + $('#idcardTime input').val(start.format('YYYY-MM-DD') + ' - ' + end.format('YYYY-MM-DD')); + } + ); + // $('#idcard').val('');//车主身份证初始化 + $('#car-ipo').val('');//车主电话初始化 + $('#caraddress').val('');//车主地址初始化 + $('#car-des').val('');//车主描述初始化 + arrid = []; + $('#whitelist-parkCheck').empty(); + areaTree.initTree(); //初始化区域tree + $('#choosePark').find('span').removeClass('checked');//停车场ajax初始化 + $('#whitelist-write_rule').addClass('display-none').text(''); + $('#whitelist_addmodel').modal('show'); + }); + // 修改弹窗 + documentBindFunc.on('click', '.reviseMon', function () { + //初始化 + $(".list_maxPaydivEdit").addClass('display-none'); + $("#whitelisteditEdit-findPark").val(""); + $('#rulename_inpedit').val('');//规则名称 + $('#carlice-inpedit').val('');//车牌号初始化 + $('#carownersedit').val('');//车主初始化 + $('#match-typeedit0').parent().removeClass('checked');//匹配类型初始化 + $('#match-typeedit1').parent().removeClass('checked');//匹配类型初始化 + $('#match-typeedit2').parent().removeClass('checked');//匹配类型初始化 + $('#manSexedit0').parent().removeClass('checked');//性别初始化 + $('#manSexedit1').parent().removeClass('checked');//性别初始化 + //$('#saletrueedit0').parent().removeClass('checked');//是否生效初始化 + //$('#saletrueedit1').parent().removeClass('checked');//是否生效初始化 + $('#idcardTimeedit input').val('');//车主身份证初始化 + $('#car-ipoedit').val('');//车主电话初始化 + $('#caraddressedit').val('');//车主地址初始化 + $('#car-desedit').val('');//车主描述初始化 + $("#whitelist-edit-checked").empty(); + editarrid = []; + $('#whitelist-edit-checked').empty(); + $('#whitelist-edit_rule').addClass('display-none').text(''); + areaEditTree.initTree(); //初始化区域tree + var id = $(this).attr('value'); + operateId = id; + editDialog(id); + + }); + //删除弹窗 + documentBindFunc.on('click', '.delList', function () { + operateId = $(this).attr('value'); + $('#whitelist_deletemodel').modal('show'); + + }); + //确定删除 + documentBindFunc.on('click', '#whitelist-delete-submit', function () { + deleteCommit(operateId); + + }); + //详情弹窗 + documentBindFunc.on('click', '.readMsg', function () { + var id = $(this).attr('value'); + $('.wlist_detail').addClass('display-none'); + whiteListDetail(id); + + }); + + //添加弹窗的提交按钮 + documentBindFunc.on('click', '#whitelist-write-submit', function () { + addCommit(); + }); + //修改弹窗的提交按钮 + documentBindFunc.on('click', '#whitelist-edit-submit', function () { + + editCommit(operateId); + }); + /* //添加匹配类型下拉框改变 + documentBindFunc.on('change', '#payOrg', function () { + var chargeType = $('#payOrg').val(); + if ("2" == chargeType) { + $('#match-type0').parent().removeClass('checked');//匹配类型初始化 + $('#match-type1').parent().removeClass('checked');//匹配类型初始化 + $('#match-type2').parent().addClass('checked');//匹配类型初始化 + $('#match-type2')[0].checked = true; + } + + });*/ + + //修改匹配类型下拉框改变 + // 每天只收一次 type:2 除免费外 type:1,必选完全匹配 + documentBindFunc.on('change','#payOrgedit',function () { + console.log($('#payOrgedit').find('option:selected').val()); + if($('#payOrgedit').find('option:selected').val()==2){ + $(".list_maxPaydivEdit").removeClass('display-none'); + $('#list_maxPayedit').val(''); + $(".type-group-divedit").addClass('display-none'); + $('#match-typeedit2')[0].checked = true; + $('#match-typeedit0').parent().removeClass('checked'); + $('#match-typeedit1').parent().removeClass('checked'); + $('#match-typeedit2').parent().addClass('checked'); + } + else if($('#payOrgedit').find('option:selected').val()==1){ + $(".list_maxPaydivEdit").addClass('display-none'); + $('#list_maxPayeditedit').val(''); + $(".type-group-divedit").removeClass('display-none'); + $('#match-typeedit0')[0].checked = true; + $('#match-typeedit0').parent().addClass('checked');//匹配类型初始化 + $('#match-typeedit1').parent().removeClass('checked');//匹配类型初始化 + $('#match-typeedit2').parent().removeClass('checked');//匹配类型初始化 + } + else{ + + $(".list_maxPaydivEdit").addClass('display-none'); + $('#list_maxPayedit').val(''); + $(".type-group-divedit").addClass('display-none'); + $('#match-typeedit2')[0].checked = true; + $('#match-typeedit0').parent().removeClass('checked'); + $('#match-typeedit1').parent().removeClass('checked'); + $('#match-typeedit2').parent().addClass('checked'); + } + + }); + + /*documentBindFunc.on('change', '#payOrgedit', function () { + var chargeType = $('#payOrgedit').val(); + if ("2" == chargeType) { + $('#match-typeedit0').parent().removeClass('checked');//匹配类型初始化 + $('#match-typeedit1').parent().removeClass('checked');//匹配类型初始化 + $('#match-typeedit2').parent().addClass('checked');//匹配类型初始化 + $('#match-typeedit2')[0].checked = true; + $(".list_maxPaydivEdit").removeClass('display-none'); + $('#list_maxPayedit').val(''); + } else{ + $(".list_maxPaydivEdit").addClass('display-none'); + $('#list_maxPayedit').val(''); + } + + });*/ + + function deleteCommit(id) { + var req = { + sysCode: sysComm.sysCode, + id: id + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.deleteWhiteRuleById(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + if (res.data) { + //关闭删除页面 + $('#whitelist_deletemodel').modal('hide'); + swal({title: "提示", text: "删除成功!", type: "success", timer: 3000, allowOutsideClick: true}); + //初始化table + fun.createTableData(); + } else { + console.log(res.msg); + return false; + } + + } else { + console.log(res.msg); + return; + } + } + }); + + } + + function whiteListDetail(id) { + if (id == undefined || id == null || id == '') { + return; + } + var divs = $('#whitelistRow-cont .ITD-form-padleft5-read'); + //先清空 + divs.text(''); + $('.whitelist-width70').eq(0).text(''); + var req = { + sysCode: sysComm.sysCode, + id: id + }; + var opt = { + method: 'post', + url: dataUrl.util.queryWhiteRuleById(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + + divs.eq(0).text(fun.strFormatter(data.whiteRName));//规则名称 + divs.eq(6).text(fun.chargeTypeFormatter(data.chargeType));//收费类型 + divs.eq(1).text(fun.strFormatter(data.carNum));//车牌号 + divs.eq(7).text(fun.matchTypeFormatter(data.matchType));//匹配类型 + divs.eq(2).text(fun.whiteRStateFormatter(data.whiteRState));//是否生效 + divs.eq(8).text(fun.strFormatter(data.carOwner));//车主 + divs.eq(3).text(fun.sexFormatter(data.sex));//性别 + divs.eq(9).text(fun.datesFormatter(data.effDate) + ' - ' + fun.datesFormatter(data.expDate));//车主身份证号 + divs.eq(4).text(fun.strFormatter(data.phone));//车主联系电话 + if(data.chargeType==2){ + $('.wlist_detail').removeClass('display-none'); + } + $('.wlist_maxpaydetail').text(commonObj.moneydetailFormatter(data.maxChargeFee));//最大金额 wlist_detail + divs.eq(5).text(fun.strFormatter(data.remark));//描述 + var plNames = ""; + $.each(data.whiteParkLotDTOs, function (index, item) { + plNames += (item.plName); + plNames += "、"; + }); + $('.whitelist-width70').eq(0).text(plNames.substr(0, plNames.length - 1));//适用停车场 + $('.whitelist-width70').eq(0).attr('title', plNames.substr(0, plNames.length - 1)); + + $('#whitelist_Readmodel').modal('show'); + } + } + }; + sysAjax(opt); + + } + + //添加提交事件 + function addCommit() { + $('#whitelist-write_rule').addClass('display-none'); + var parkArr = arrid;//存储停车场id + var rulename = $.trim($('#rulename_inp').val());//规则名称 + var chargeType = $('#payOrg').val(); + var maxtypepay = $.trim($('#list_maxPay').val());//最大金额 + var carlice = $.trim($('#carlice-inp').val());//车牌号 + var carowners = $.trim($('#carowners').val());//车主 + var matchType = $("input[name='sameStyl-ad']:checked").val();//匹配类型 + var sex = $("input[name='sex-ad']:checked").val();//性别 + var whiteRState = 1;//$("input[name='saletrue-ad']:checked").val()//是否生效 + var carpho = $.trim($('#car-ipo').val());//联系电话 + var address = $.trim($('#caraddress').val());//车主地址 + var remark = $.trim($('#car-des').val());//描述 + /*时间*/ + var dateEntranceRange = $('#idcardTime input').val(); + if (null != dateEntranceRange && dateEntranceRange.trim().length > 0) { + var times = dateEntranceRange.split(' - '); + seffDate = times[0] + ' 00:00:00'; + effDate = new Date(Date.parse(seffDate.replace(/-/g, "/"))) + dexpDate = times[1] + ' 23:59:59'; + expDate = new Date(Date.parse(dexpDate.replace(/-/g, "/"))) + } + + //判断规则名称 + if (null == rulename || $.trim(rulename).length == 0) { + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:请输入卡规则名称'); + return false; + } + + //收费类型:1:免费 2:每天只收一次 3:特殊车收费 + if (matchType != "3" && chargeType == "2") { + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:收费类型"每天只收一次"只能完全匹配'); + return false; + } + if (chargeType == "2") { + if(maxtypepay == '0'){ + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:最大金额不能为0'); + return false; + } + } + + //校验车牌号输入是否合法 + var carNums = carNumCheck(carlice, chargeType, matchType); + if (carNums == null) { + //如果为空,说明输入格式不正确 + return; + } + if (parkArr.length == 0) { + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:请至少选择一个停车场') + return false; + } + + $('#whitelist-write_rule').addClass('display-none').text(''); + if(maxtypepay!=null&&maxtypepay!=''&&maxtypepay!=undefined){ + maxtypepay=maxtypepay*100; + } + var req = { + whiteRName: rulename, + chargeType: chargeType, + carNums: carNums, + carOwner: carowners, + matchType: matchType, + sex: sex, + whiteRState: whiteRState, + //cardId:idcard, + effDate: effDate, + expDate: expDate, + phone: carpho, + address: address, + remark: remark, + maxChargeFee: maxtypepay, + plNos: parkArr, + sysCode: sysComm.sysCode, + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.addWhiteRuleById(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + if (res.data) { + //关闭添加页面 + $("#whitelist_addmodel").css('display', 'none'); + $('#whitelist_addmodel').modal('hide'); + swal({title: "提示", text: "保存成功", type: "success", timer: 3000, allowOutsideClick: true}); + //初始化table + fun.createTableData(); + + } else { + console.log(res.msg); + return false; + } + + } else { + console.log(res.msg); + return; + } + } + }); + + + }; + + //校验唯一性 通过停车场编码+收费类型+车牌号+匹配类型 + function checkWhiteUnique(chargeType, carlice, matchType, parkArr) { + var plNoDate = ""; + var req = { + chargeType: chargeType, + carNum: carlice, + matchType: matchType, + plNos: parkArr, + sysCode: sysComm.sysCode, + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.checkWhiteUnique(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + plNoDate = res.data; + + } else { + console.log(res.msg); + return; + } + } + }); + return plNoDate; + } + + //编辑弹窗 + function editDialog(id) { + if (id == undefined || id == null || id == '') { + return; + } + + var req = { + sysCode: sysComm.sysCode, + id: id + }; + var opt = { + method: 'post', + url: dataUrl.util.queryWhiteRuleById(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code == '8888') { + var data = res.data; + console.log(data) + $("#payOrgeditCheck").val(""); //收费类型 + $("#carlice-inpeditCheck").val(""); //停车场车牌 + $("#sameStyl-edCheck").val(""); //匹配类型 + $('#list_maxPayedit').val("");//最大金额 + $('#rulename_inpedit').val(fun.strFormatter(data.whiteRName));//规则名称 + $('#ruleno_inpedit').val(fun.strFormatter(data.whiteRNo));//规则编码 + $('#carlice-inpedit').val(fun.strFormatter(data.carNum));//车牌号初始化 + $('#carownersedit').val(fun.strFormatter(data.carOwner));//车主初始化 + $('#payOrgedit').selectpicker('val', data.chargeType); + $("#payOrgeditCheck").val(data.chargeType); //收费类型 + if($("#payOrgeditCheck").val()==2){ + $(".list_maxPaydivEdit").removeClass('display-none'); + $('#list_maxPayedit').val(commonObj.moneydetailFormatter(data.maxChargeFee)); + $(".type-group-divedit").addClass('display-none'); + $('#match-typeedit2')[0].checked = true; + $('#match-typeedit0').parent().removeClass('checked'); + $('#match-typeedit1').parent().removeClass('checked'); + $('#match-typeedit2').parent().addClass('checked'); + }else if($("#payOrgeditCheck").val()==1){ + $(".list_maxPaydivEdit").addClass('display-none'); + $('#list_maxPayeditedit').val(commonObj.moneydetailFormatter(data.maxChargeFee)); + $(".type-group-divedit").removeClass('display-none'); + $('#match-typeedit0')[0].checked = true; + $('#match-typeedit0').parent().addClass('checked');//匹配类型初始化 + $('#match-typeedit1').parent().removeClass('checked');//匹配类型初始化 + $('#match-typeedit2').parent().removeClass('checked');//匹配类型初始化 + }else{ + $(".list_maxPaydivEdit").addClass('display-none'); + $('#list_maxPayedit').val(commonObj.moneydetailFormatter(data.maxChargeFee)); + $(".type-group-divedit").addClass('display-none'); + $('#match-typeedit2')[0].checked = true; + $('#match-typeedit0').parent().removeClass('checked'); + $('#match-typeedit1').parent().removeClass('checked'); + $('#match-typeedit2').parent().addClass('checked'); + } + $("#carlice-inpeditCheck").val(fun.strFormatter(data.carNum)); //停车场车牌 + $("#sameStyl-edCheck").val(data.chargeType); //匹配类型 + console.log(data.matchType) + // 每天只收一次 type:2 显示最大金额 除免费外 type:1,必选完全匹配 + switch (data.matchType) { + case 1: + $('#match-typeedit0').parent().addClass('checked');//匹配类型-前置 + $('#match-typeedit0')[0].checked = true; + break; + case 2: + $('#match-typeedit1').parent().addClass('checked');//匹配类型-完全 + $('#match-typeedit1')[0].checked = true;//匹配类型-前置 + break; + case 3: + $('#match-typeedit2').parent().addClass('checked');//匹配类型-完全 + $('#match-typeedit2')[0].checked = true;//匹配类型-完全 + break; + default: + break; + } + switch (data.sex) { + case 1: + $('#manSexedit0').parent().addClass('checked');//性别-男 + $('#manSexedit0')[0].checked = true;//性别-男 + break; + case 2: + $('#manSexedit1').parent().addClass('checked');//性别女 + $('#manSexedit1')[0].checked = true;//性别女 + break; + default: + break; + } + /**switch (data.whiteRState){ + case 1: + $('#saletrueedit0').parent().addClass('checked');//生效 + $('#saletrueedit0')[0].checked=true;//生效 + break; + case 0: + $('#saletrueedit1').parent().addClass('checked');//失效 + $('#saletrueedit1')[0].checked=true;//失效 + break; + default: + break; + }*/ + $('#idcardTimeedit input').val(fun.datesFormatter(data.effDate) + ' - ' + fun.datesFormatter(data.expDate));//修改初始化 + /*$('#idcardTimeedit input').daterangepicker({ + startDate: fun.datesFormatter(data.effDate), + endDate:fun.datesFormatter(data.expDate), + opens: 'right', //日期选择框的弹出位置 + locale: { + applyLabel: '确定', + cancelLabel: '取消', + customRangeLabel: '自定义', + daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'], + monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', + '七月', '八月', '九月', '十月', '十一月', '十二月'], + }, + }, + function (start, end) { + $('#idcardTimeedit input').val(start.format('YYYY-MM-DD') + ' - ' + end.format('YYYY-MM-DD')); + } + );*/ + $('#car-ipoedit').val(fun.strFormatter(data.phone));//车主电话初始化 + $('#caraddressedit').val(fun.strFormatter(data.address));//车主地址初始化 + $('#car-desedit').val(fun.strFormatter(data.remark));//车主描述初始化 + //$('#chooseParkedit').find('span').removeClass('checked');//选择停车场 + var temp = $('#chooseParkedit span label'); + var plNoNodes = []; + $.each(data.whiteParkLotDTOs, function (index, item) { + plNoNodes.push(item.plNo); + editarrid.push(item.plNo); + if (plNos.indexOf(item.plNo) == -1) { + $('#whitelist-edit-checked').append('' + item.plName + ''); + } else { + $('#whitelist-edit-checked').append('' + item.plName + ''); + } + }); + areaEditTree.updateNodesForCheckedEdit(plNoNodes); + $('#whitelist_editmodel').modal('show'); + } + } + }; + sysAjax(opt); + + }; + + //展示错误车牌号 + function errorCarNumStr(carNum) { + var errorCarNumStr = carNum; + if(carNum == null){ + errorCarNumStr = ''; + } + if(carNum.length > 11){ + errorCarNumStr = carNum.substring(0,10)+"..."; + + } + return errorCarNumStr; + + } + + //校验车牌号 + function carNumCheck(carNumStr, chargeType, matchType) { + + var carNums = []; + //判断车牌号是否为空 + if (null == carNumStr || $.trim(carNumStr).length == 0) { + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:车牌号不能为空'); + return null; + } + + var tempCarNums = $.trim(carNumStr).split(','); + + for (var i=0;i 8) { + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:前置或后置匹配,车位数需大于2位数,小于8位数,车牌号[' + errorCarNumStr(carNum) + ']异常'); + return null; + } + + } + + if(carNums.indexOf(carNum)>-1){ + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:车牌号[' + errorCarNumStr(carNum) + ']重复'); + return null; + } + + + carNums.push(carNum); + + } + + if (carNums.length == 0) { + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:请输入正确且有效的车牌号'); + return null; + } + + if(carNums.length>30){ + $('#whitelist-write_rule').removeClass('display-none').text('错误提示:最多输入30个车牌'); + return null; + } + + return carNums; + } + + //添加提交事件(编辑) + function editCommit(operateId) { + var parkArr = editarrid;//存储停车场id + var rulename = $.trim($('#rulename_inpedit').val());//规则名称 + var ruleno = $.trim($('#ruleno_inpedit').val()); + var carlice = $.trim($('#carlice-inpedit').val());//车牌号 + // var idcardtimeedit = $.trim($('#idcardTimeedit input').val());//时间 + /*时间*/ + var dateEntranceRange = $('#idcardTimeedit input').val(); + if (null != dateEntranceRange && dateEntranceRange.trim().length > 0) { + var times = dateEntranceRange.split(' - '); + seffDate = times[0] + ' 00:00:00'; + effDate = new Date(Date.parse(seffDate.replace(/-/g, "/"))) + dexpDate = times[1] + ' 23:59:59'; + expDate = new Date(Date.parse(dexpDate.replace(/-/g, "/"))) + } + var carpho = $.trim($('#car-ipoedit').val());//联系电话 + + var chargeType = $('#payOrgedit').val(); + var carowners = $.trim($('#carownersedit').val());//车主 + + var matchType = $("input[name='sameStyl-ed']:checked").val();//匹配类型 + var sex = $("input[name='sex-ed']:checked").val();//性别 + var whiteRState = 1;//$("input[name='saletrue-ed']:checked").val()//是否生效 + var address = $.trim($('#caraddressedit').val());//车主地址 + var remark = $.trim($('#car-desedit').val());//描述 + + //把别的值也获取到,比如类型,姓名等等,到时候放到ajax + if (rulename) {//规则名称 + var returnParkName = ""; + var chargeTypeCheck = $("#payOrgeditCheck").val(); //收费类型 + var maxtypepayedit = $.trim($("#list_maxPayedit").val()); //最大金额 + var carNumCheck = $("#carlice-inpeditCheck").val(); //停车场车牌 + var matchTypeCheck = $("#sameStyl-edCheck").val(); //匹配类型 + if (chargeTypeCheck != chargeType && carNumCheck != carlice && matchType != matchTypeCheck) { + var plNos = checkWhiteUnique(chargeType, carlice, matchType, parkArr); + if (plNos != null && plNos != "" && plNos != undefined) { + $.each(plNos, function (index, row) { + var parkName = ""; + parkName = $("#whitelist-edit-checked").find("span[data-id='" + row + "']").text(); + if (parkName != null && parkName != "" && parkName != undefined) { + returnParkName = parkName + } + + return false; + }); + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:该车牌在停车场[' + returnParkName + ']已经有相同的规则'); + return false; + } + + } + if (carlice) {//车牌号 + if ("2" == chargeType) { + if(maxtypepayedit=='0'){ + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:最大金额不能为0'); + return false; + } + var flg = (!/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4,5}[A-Z0-9挂学警港澳]{1}$/.test(carlice) || carlice.length < 7); + if (flg) { + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请输入完整车牌号'); + return false; + } + if ("3" != matchType) { + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:"每天只收一次"只能完全匹配'); + return false; + } + } + + // if(idcard&&!/^[1-9]{1}[0-9]{14}$|^[1-9]{1}[0-9]{16}([0-9]|[xX])$/.test(idcard)){//身份证 + // $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请输入正确身份证') + // } + // else{ + if (carpho && !/^1[3|4|5|7|8]{1}\d{9}$/.test(carpho) && carpho.length != 11) {//联系方式 + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请输入正确联系方式') + } else { + /*$('#chooseParkedit input').each(function () {//是否有停车场 + if($(this).parent().hasClass('checked')){ + parkArr.push($(this).attr('data-id')) + } + });*/ + if (parkArr.length == 0) { + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请至少选择一个停车场') + } else { + if(maxtypepayedit!=null && maxtypepayedit!='' && maxtypepayedit!=undefined){ + maxtypepayedit=maxtypepayedit*100; + } + $('#whitelist-edit_rule').addClass('display-none').text(''); + //提交 + //alert("berthNo:"+berthNo+"parkType:"+parkType+"checkedAreaId"+JSON.stringify(checkedAreaId)); + var req = { + id: operateId, + whiteRName: rulename, + whiteRNo: ruleno, + chargeType: chargeType, + carNum: carlice, + carOwner: carowners, + matchType: matchType, + sex: sex, + whiteRState: whiteRState, + effDate: effDate, + expDate: expDate, + phone: carpho, + address: address, + remark: remark, + maxChargeFee: maxtypepayedit, + plNos: parkArr, + sysCode: sysComm.sysCode, + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.updateWhiteRuleById(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (res.code == '8888') { + if (res.data) { + //关闭修改页面 + $("#whitelist_editmodel").css('display', 'none'); + $('#whitelist_editmodel').modal('hide'); + swal({ + title: "提示", + text: "保存成功", + type: "success", + timer: 3000, + allowOutsideClick: true + }); + //初始化table + fun.createTableData(); + + } else { + console.log(res.msg); + return false; + } + + } else { + console.log(res.msg); + return; + } + } + }); + } + + } + // } + + } else { + if ("2" == chargeType) { + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请输入完整车牌号'); + } else { + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请输入车牌号匹配值'); + } + + } + } else { + $('#whitelist-edit_rule').removeClass('display-none').text('错误提示:请输入卡规则名称') + } + }; + + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + var opt = { + method: 'post', + url: dataUrl.util.queryWhitelistRuleForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); + } + }) + (); +//新增 + var areaTree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#user_org_tree"), areaTree.setting, areaTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.expandAll(false); + areaTree.selectedNodes(0); + }, + setting: { + view: { + selectedMulti: true //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "checkbox", + // chkStyle: "radio", + radioType: "all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + callback: { + onCheck: zTreeOnCheck + }, + edit: { + enable: false + } + }, + getNodesByParamFuzzyAll: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodes(); + for (var i = 0; i < nodes.length; i++) { + treeObj.setting.view.fontCss["color"] = '#575757'; + treeObj.updateNode(nodes[i]); + var children = nodes[i].children; + if (children != null && children != "" && children != undefined) { + for (var j = 0; j < children.length; j++) { + treeObj.setting.view.fontCss["color"] = '#575757'; + treeObj.updateNode(children[j]); + } + } + + } + }, + //根据名称模糊搜索树 + getNodesByParamFuzzy: function (name) { + areaTree.getNodesByParamFuzzyAll(); + if (name != "" && name != null) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodesByParamFuzzy("name", name, null); + if (nodes.length <= 0) { + $('#whitelist-write_rule').removeClass('display-none').text("没有搜索到停车场"); + } + for (var i = 0; i < nodes.length; i++) { + treeObj.setting.view.fontCss["color"] = '#CD0000'; + treeObj.updateNode(nodes[i]); + //获取父节点 + var parentNote = areaTree.getNodeById(nodes[i].pId); + treeObj.updateNode(parentNote); + } + } else { + $('#whitelist-write_rule').removeClass('display-none').text("没有搜索到停车场"); + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodes(); + if (nodes.length > 0) { + for (var i = 0; i < nodes.length; i++) { + treeObj.expandNode(nodes[i], false, true, true); + } + } + } + + }, + //展开某个节点 + selectedNodes: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getNodesByParam("id", id, null); + if (nodes.length > 0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = areaTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if (node == null) { + continue; + } + node.checked = true; + areaTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var treeNode = areaTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = areaTree.getNodeById(ids[i]); + } + return nodes; + }, + //根据id取消选/选中节点 + updateNodesForNotChecked: function (id, checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + node.checked = checked; + treeObj.updateNode(node); + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForArea: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index = 0; + for (var i = 0; i < nodes.length; i++) { + if (null != nodes[i].areaType && "70" == nodes[i].areaType) { + ids[index++] = { + areaId: nodes[i].id, + areaType: nodes[i].areaType, + plNo: nodes[i].pId, + orgAreaType: 1 + }; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names = ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names + "," + nodes[i].name; + } + return names; + }, + +//获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData: function () { + var sysCode = sessionStorage.getItem("sysCode"); + var zNodes = []; + sysAjax({ + method: 'POST', + url: dataUrl.util.vipCardSelectParkTree(), + //data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (isError(res)) { + return false; + } + //console.log("res.data="+res.data); + $.each(res.data, function (index, rows) { + var data = ""; + if (rows.level == "1") {//服务点 + data = { + id: rows.id, + pId: rows.parentId, + name: rows.treeName, + level: rows.level, + chkDisabled: false + }; + } else { + data = {id: rows.id, pId: rows.parentId, name: rows.treeName, level: rows.level}; + } + + zNodes[index] = data; + }); + + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } + }; +//编辑 + var areaEditTree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#userEdit_org_tree"), areaEditTree.setting, areaEditTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + treeObj.expandAll(false); + areaEditTree.selectedNodes(0); + }, + setting: { + view: { + selectedMulti: true //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "checkbox", + // chkStyle: "radio", + radioType: "all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + callback: { + onCheck: zTreeOnCheck + }, + edit: { + enable: false + } + }, + getNodesByParamFuzzyAll: function () { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getNodes(); + for (var i = 0; i < nodes.length; i++) { + treeObj.setting.view.fontCss["color"] = '#575757'; + treeObj.updateNode(nodes[i]); + var children = nodes[i].children; + if (children != null && children != "" && children != undefined) { + for (var j = 0; j < children.length; j++) { + treeObj.setting.view.fontCss["color"] = '#575757'; + treeObj.updateNode(children[j]); + } + } + + } + }, + //根据名称模糊搜索树 + getNodesByParamFuzzy: function (name) { + areaEditTree.getNodesByParamFuzzyAll(); + if (name != null && name != "") { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getNodesByParamFuzzy("name", name, null); + if (nodes.length <= 0) { + $('#whitelist-edit_rule').removeClass('display-none').text("没有搜索到停车场"); + } + for (var i = 0; i < nodes.length; i++) { + treeObj.setting.view.fontCss["color"] = '#CD0000'; + treeObj.updateNode(nodes[i]); + //获取父节点 + var parentNote = areaEditTree.getNodeById(nodes[i].pId); + treeObj.updateNode(parentNote); + } + } else { + $('#whitelist-edit_rule').removeClass('display-none').text("没有搜索到停车场"); + //折叠所有节点 + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getNodes(); + if (nodes.length > 0) { + for (var i = 0; i < nodes.length; i++) { + treeObj.expandNode(nodes[i], false, true, true); + } + } + } + + }, + //展开某个节点 + selectedNodes: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getNodesByParam("id", id, null); + if (nodes.length > 0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id取消选/选中节点 + updateNodesForNotChecked: function (id, checked) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + node.checked = checked; + treeObj.updateNode(node); + }, + //根据id集合更新节点变为选中 + updateNodesForCheckedEdit: function (ids) { + var nodes = areaEditTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if (node == null) { + continue; + } + node.checked = true; + areaEditTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var treeNode = areaEditTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = areaEditTree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForArea: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index = 0; + for (var i = 0; i < nodes.length; i++) { + if (null != nodes[i].areaType && "70" == nodes[i].areaType) { + ids[index++] = { + areaId: nodes[i].id, + areaType: nodes[i].areaType, + plNo: nodes[i].pId, + orgAreaType: 1 + }; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names = ""; + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names + "," + nodes[i].name; + } + return names; + }, + +//获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("userEdit_org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData: function () { + var sysCode = sessionStorage.getItem("sysCode"); + var zNodes = []; + sysAjax({ + method: 'POST', + url: dataUrl.util.vipCardSelectParkTree(), + //data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (isError(res)) { + return false; + } + // console.log("res.data="+res.data); + $.each(res.data, function (index, rows) { + var data = ""; + if (rows.level == "1") {//服务点 + data = { + id: rows.id, + pId: rows.parentId, + name: rows.treeName, + level: rows.level, + chkDisabled: false + }; + } else { + data = {id: rows.id, pId: rows.parentId, name: rows.treeName, level: rows.level}; + } + + zNodes[index] = data; + }); + + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } + }; + + /** + * 处理错误信息 + * @param {Object} res + */ + function isError(res) { + if (res == null || res == undefined) { + return true; + } + if (res.code != '8888') { + alert('树失败') + return true; + } else { + return false; + } + } + + Array.prototype.remove = function (val) { + var index = this.indexOf(val); + if (index > -1) { + this.splice(index, 1); + } + }; + + /** + * 左侧单选按钮点击选中右侧.
              + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ + function zTreeOnCheck(event, treeId, treeNode) { + if ($("#whitelist_editmodel").css("display") == 'none') { + console.log('添加页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + if (treeNode.level == 1) {//停车场 + if (treeNode.checked === true) { + arrid.push(treeNode.id); + console.log(arrid) + $('#whitelist-parkCheck').append('' + treeNode.name + '') + } else { + arrid.remove(treeNode.id); + $('.whitelist-parkCheck' + treeNode.id).remove(); + } + } else {//服务点 + if (treeNode.checked === true) { + $.each(treeNode.children, function (index, item) { + arrid.push(item.id); + $('#whitelist-parkCheck').append('' + item.name + ''); + }); + } else { + $.each(treeNode.children, function (index, item) { + arrid.remove(item.id); + $('.whitelist-parkCheck' + item.id).remove(); + }); + } + } + + } else { + console.log('编辑页面的' + treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + if (treeNode.level == 1) {//停车场 + if (treeNode.checked === true) { + //还需要判断下 editarrid 是否存在这个treeNode.id 如果存在 就不添加了。 + if ($.inArray(treeNode.id, editarrid) == -1) { + editarrid.push(treeNode.id); + console.log(editarrid) + $('#whitelist-edit-checked').append('' + treeNode.name + ''); + } else { + return; + } + + } else { + editarrid.remove(treeNode.id); + $('.whitelist-editParkCheck' + treeNode.id).remove(); + } + } else {//服务点 + if (treeNode.checked === true) { + $.each(treeNode.children, function (index, item) { + //还需要判断下 editarrid 是否存在这个treeNode.id 如果存在 就不添加了。 + if ($.inArray(item.id, editarrid) == -1) { + editarrid.push(item.id); + console.log(editarrid) + $('#whitelist-edit-checked').append('' + item.name + ''); + } else { + return; + } + }); + } else { + $.each(treeNode.children, function (index, item) { + editarrid.remove(item.id); + $('.whitelist-editParkCheck' + item.id).remove(); + }); + } + } + } + }; + +//新增树下面内容删除 + $(document).delegate('.closex', 'click', function () { + var valid = $(this).parent().attr('data-id'); + arrid.remove(valid); + $(this).parent().remove(); + //取消树的选中 + areaTree.updateNodesForNotChecked(valid, false); + }); +//编辑树下面内容删除 + $(document).delegate('.editclosex', 'click', function () { + var valid = $(this).parent().attr('data-id'); + editarrid.remove(valid); + console.log(editarrid) + $(this).parent().remove(); + //取消树的选中 + areaEditTree.updateNodesForNotChecked(valid, false); + }); +}; +pageInitWhite(); + +function getQueryWhiteParams() { + //白名单规则名称 + var whiteRName = $("#whiteRName").val(); + /*匹配类型*/ + var matchType = $("#matchType").val(); + //停车场 + var plnos = JSON.parse($("#parkIds").val()); + /*车牌号*/ + var carNum = $('#carNum').val(); + carNum = carNum == null || carNum.length == 0 ? '' : carNum.trim(); + + var req = { + plNos: plnos, + whiteRName: whiteRName, + matchType: matchType, + carNum: carNum + }; + return req; +} + +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} + +window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; +window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1; + +//导出 +var InterValObj; //timer变量,控制时间 +var count = 8; //间隔函数,1秒执行 +var curCount;//当前剩余秒数 + +function sendMessage() { + curCount = count; + //设置button效果,开始计时 + $("#reportWhitBtn").attr("disabled", "true"); + $(".ITD-export-btn").css("width", "138px"); + $("#reportWhitBtn").val(curCount + "秒后可再次导出"); + InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次 +} + +//timer处理函数 +function SetRemainTime() { + if (curCount == 0) { + window.clearInterval(InterValObj);//停止计时器 + $("#reportWhitBtn").removeAttr("disabled");//启用按钮 + $(".ITD-export-btn").css("width", "72px"); + $("#reportWhitBtn").val("导出"); + } else { + curCount--; + $("#reportWhitBtn").val(curCount + "秒后可再次导出"); + } +} + +//导出excle +documentBindFunc.on('click', '#reportWhitBtn', function () { + //获取table所有行数据 + var parkLot = $("#recordtableWhite").bootstrapTable('getData'); + //获取table总条数 + var numTotal = $("#recordtableWhite").bootstrapTable('getOptions').totalRows; + if (parkLot.length < 1) { + $('.ITD-alertmodel-contentmsg').text('无数据可导出!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + }, 3000); + return false; + } + if (numTotal > 10000) { + $('.ITD-alertmodel-contentmsg').text('数据量过大,请缩小查询范围!'); + $('#ITD-tipsmodel').modal('show'); + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#ITD-tipsmodel').modal('hide'); + }, 3000); + return false; + } + //执行倒计时函数 + sendMessage(); + var req = getQueryWhiteParams(); + var url = dataUrl.util.exportWhitelistRule() + '?plNos=' + req.plNos + '&whiteRName=' + req.whiteRName + '&matchType=' + req.matchType + '&carNum=' + req.carNum + '&sysCode=' + sysComm.sysCode; + window.downloadFile(url); +}); + +window.downloadFile = function (sUrl) { + + //iOS devices do not support downloading. We have to inform user about this. + if (/(iP)/g.test(navigator.userAgent)) { + alert('Your device does not support files downloading. Please try again in desktop browser.'); + return false; + } + + //If in Chrome or Safari - download via virtual link click + if (window.downloadFile.isChrome || window.downloadFile.isSafari) { + //Creating new link node. + var link = document.createElement('a'); + link.href = sUrl; + + if (link.download !== undefined) { + //Set HTML5 download attribute. This will prevent file from opening if supported. + var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length); + link.download = fileName; + } + + //Dispatching click event. + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; + } + } + + // Force file download (whether supported by server). + if (sUrl.indexOf('?') === -1) { + sUrl += '?download'; + } + + window.open(sUrl, '_self'); + return true; +} +//用户只能输入正数与小数 +function checkInputText(obj){ + +//先把非数字的都替换掉,除了数字和. + obj.value = obj.value.replace(/[^\d.]/g,""); + +//保证只有出现一个.而没有多个. + + obj.value = obj.value.replace(/\.{2,}/g,"."); + +//必须保证第一个为数字而不是. + + obj.value = obj.value.replace(/^\./g,""); + +//保证.只出现一次,而不能出现两次以上 + + obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); + +//只能输入两个小数 + + obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); + + +} \ No newline at end of file diff --git a/assets/pages/scripts/yardoperation/carflowport/carflowport.css b/assets/pages/scripts/yardoperation/carflowport/carflowport.css new file mode 100644 index 0000000..96dd0aa --- /dev/null +++ b/assets/pages/scripts/yardoperation/carflowport/carflowport.css @@ -0,0 +1,3 @@ +.incomefixwid{ + max-width: 120px; +} \ No newline at end of file diff --git a/assets/pages/scripts/yardoperation/carflowport/carflowport.html b/assets/pages/scripts/yardoperation/carflowport/carflowport.html new file mode 100644 index 0000000..2155230 --- /dev/null +++ b/assets/pages/scripts/yardoperation/carflowport/carflowport.html @@ -0,0 +1,202 @@ + +
              +
              + + +
              +
              +
              + 日期 +
              + +
              +
              + + +
              +
              查询
              +
              +
              +
              + +
              +
              + +
              +
              +
              +
              车流量统计
              +
              +
              +
              +
              +
                +
              • + 停车场总数  个 +
              • +
              • + 停车场路侧  个 +
              • +
              • + 停车场封闭  个 +
              • +
              • + 泊位数  个 +
              • +
              • + 泊位路侧  个 +
              • +
              • + 泊位封闭  个 +
              • +
                +
              +
              +
              +
              +
              +
              +
                +
              • +
                  +
                • 进场车辆 (辆)
                • +
                • + +
                • +
                  +
                +
              • +
              • +
                + 路侧 + +
                +
                + 封闭 + +
                +
              • +
              +
              +
              +
                +
              • +
                  +
                • 出场车辆 (辆)
                • +
                • + +
                • +
                  +
                +
              • +
              • +
                + 路侧 + +
                +
                + 封闭 + +
                +
              • +
              +
              +
              +
                +
              • +
                  +
                • 周转次数 
                • +
                • + +
                • +
                  +
                +
              • +
              • +
                + 路侧 + +
                +
                + 封闭 + +
                +
              • +
              +
              +
              +
                +
              • +
                  +
                • 占用率 (%)
                • +
                • + +
                • +
                  +
                +
              • +
              • +
                + 路侧 + +
                +
                + 封闭 + +
                +
              • +
              +
              + + + + + + + + + + + + + + + + + + + + + +
              +
              + + + +
              + +
              +
              + + \ No newline at end of file diff --git a/assets/pages/scripts/yardoperation/carflowport/carflowport.js b/assets/pages/scripts/yardoperation/carflowport/carflowport.js new file mode 100644 index 0000000..6a6226d --- /dev/null +++ b/assets/pages/scripts/yardoperation/carflowport/carflowport.js @@ -0,0 +1,619 @@ +/** + * Created by mac on 18/5/17. + */ + + + +$('#devicereport-toptab li').on('click',function () { + var _index = $(this).index(); + switch (_index){ + case 0: + $('.parkincome-choosedatemonth').addClass('display-none'); + $('.parkincome-choosedateweek').addClass('display-none'); + $('.parkincome-choosedateday').removeClass('display-none'); + $('#devicereport-toptab li').eq(0).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + + $("#timeType").val(1); + break; + case 1: + $('.parkincome-choosedateday').addClass('display-none'); + $('.parkincome-choosedatemonth').addClass('display-none'); + $('.parkincome-choosedateweek').removeClass('display-none'); + $('#devicereport-toptab li').eq(1).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + + $("#timeType").val(3); + break; + case 2: + $('.parkincome-choosedateday').addClass('display-none'); + $('.parkincome-choosedateweek').addClass('display-none'); + $('.parkincome-choosedatemonth').removeClass('display-none'); + $('#devicereport-toptab li').eq(2).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + fun.monthDate(); + $("#timeType").val(2); + + } + fun.ltsrcreateTableData(); + fun.carFlowQueryData(); +}); +var fun= { + init: function () { + fun.dayDate(); + fun.weekDate(); + fun.monthDate(); + fun.ltsrcreateTableData(); + fun.carFlowQueryData(); + }, + dayDate:function() { + $('#incomepark-daydaterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#incomepark-daydaterange-btnsta').datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + weekDate:function() { + $('#incomepark-weekdaterange-btnsta').attr('data-text',moment().subtract('days', 7).format('YYYY-MM-DD')+'-'+moment().subtract('days', 1).format('YYYY-MM-DD')) + $('#incomepark-weekdaterange-btnsta').html(moment().subtract('days', 7).format('YYYY-MM-DD')+' 至 '+moment().subtract('days', 1).format('YYYY-MM-DD')); + + }, + + monthDate:function() { + $('#incomepark-monthdaterange-btnsta').val(moment().subtract('months', 1).format('YYYY-MM')); + $('#incomepark-monthdaterange-btnsta').datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + srzbChartsFun:function (dataValue) { + console.log(dataValue); + var srzbechartsPie = echarts.init(document.getElementById('parkinglengthport-echart')); + srzboption = { + color:['#1E95CD','#5fe98f','#fdc94d','#50c0f5'], + title: { + // subtext: "" + totalFee, + // text: '总计', + textStyle: { + color: '#c2c2c2', + fontSize: '14', + align: 'middle', + verticalAlign: 'middle', + }, + subtextStyle: { + color: '#000', + fontSize: '24', + align: 'middle', + verticalAlign: 'middle', + }, + left: 'center', + top: '60', + + }, + tooltip: { + trigger: 'item', + formatter: "{a}
              {b}: {c} ({d}%)" + }, + legend: { + selectedMode:false, + orient: 'horizontal', + bottom: '0', + icon:'circle', + data:['支付宝','微信','余额','现金'] + }, + + series: [ + { + name:'支付方式占比', + type:'pie', + radius: ['50%', '70%'], + center: ['50%', '50%'], + hoverAnimation: false, + avoidLabelOverlap: false, + legendHoverLink: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '14', + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:[1,2,3,4] + } + ] + } + srzbechartsPie.setOption(srzboption, true); + window.srzbechartsPie=srzbechartsPie; + //自适应 + window.onresize = function(){ + srzbechartsPie.resize(); + }; + }, + ltsrcreateTableData: function () { + $('#devicereport-table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + sortable: true, //是否启用排序 + sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: incomeparktableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'number', + title: '序号', + width: '15%', + align: "left", + formatter:function(value,row,index){ + //return index+1; //序号正序排序从1开始 + var pageSize=$('#devicereport-table').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条 + var pageNumber=$('#devicereport-table').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页 + var operStr=''; + var topNo=pageSize * (pageNumber - 1) + index + 1; + /*if(topNo==1){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else if(topNo==2){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else if(topNo==3){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else { + + }*/ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + + } + + }, + { + field: 'plName', + title: '车场名称', + width: '25%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'plType', + title: '车场类型', + width: '25%', + align: "left", + formatter: plTypeFormatter + }, + + { + field: 'totalBerths', + title: '泊位数量', + width: '20%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'inParkCount', + title: '进场', + width: '20%', + align: "left", + formatter:commonObj.replacenull + + }, + { + field: 'outParkCount', + title: '出场', + width: '20%', + align: "left", + formatter:commonObj.replacenull + + }, + { + field: 'turnoverRatio', + title: '周转次数', + width: '20%', + align: "left", + formatter: turnOverFormatter + }, + { + field: 'freeRatio', + title: '占用率', + width: '20%', + align: "left", + formatter: freeRatioFormatter + + }, + + ] + }); + }, + /*获取查询参数*/ + incomeparkgetQueryParam: function () { + + var data = fn.getParkLot(); + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + + } + if (plNos.length < 1) { + plNos.push("-1X"); + } + /*开始时间*/ + var beginTime; + /*结束时间*/ + var endTime; + + var timeType=$("#timeType").val(); + + if(timeType==1){ + var reportDate=$("#incomepark-daydaterange-btnsta").val(); + $("#carFlowTitle").text("日"); + $("#carFlowTitleTime").text(reportDate); + beginTime=reportDate+" 00:00:00"; + endTime=reportDate+" 23:59:59"; + }else if(timeType==3){ + var reportDate=$("#incomepark-weekdaterange-btnsta").attr('data-text'); + $("#carFlowTitle").text("周"); + var reportDateStr=$("#incomepark-weekdaterange-btnsta").html(); + $("#carFlowTitleTime").text(reportDateStr); + // console.log(reportDate); + beginTime=reportDate.substring(0,11)+" 00:00:00"; + endTime=reportDate.substring(11,21)+" 23:59:59"; + //console.log(endTime); + }else if(timeType==2){ + var reportDate=$("#incomepark-monthdaterange-btnsta").val(); + $("#carFlowTitle").text("月"); + $("#carFlowTitleTime").text(reportDate); + beginTime = reportDate + "-01 00:00:00"; + var dates = reportDate.split("-"); + if (dates[1] == '02') { + endTime = reportDate + "-28 23:59:59"; + } else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07' + || dates[1] == '08' || dates[1] == '10' || dates[1] == '12') { + endTime = reportDate + "-31 23:59:59"; + } else { + endTime = reportDate + "-30 23:59:59"; + } + } + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date((beginTime).replace(/-/g, "/")); + endTime = endTime == null || endTime.length == 0 ? null : new Date((endTime).replace(/-/g, "/")); + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + beginTime: beginTime, + endTime:endTime, + timeType:timeType + + }; + return req; + + }, + carFlowQueryData:function () { + var data = fn.getParkLot(); + $("#orgNameTitle").text(data[0].orgName==null?"":data[0].orgName); + + $("#allParkCount").text(0); + $("#openParkCount").text(0); + $("#closeParkCount").text(0); + $("#berthsNum").text(0); + $("#openBerthNum").text(0); + $("#closeBerthNum").text(0); + $("#allInCarCount").text(0); + $("#closeInCarCount").text(0); + $("#openInCarCount").text(0); + $("#allOutCarCount").text(0); + $("#closeOutCarCount").text(0); + $("#openOutCarCount").text(0); + $("#allTurnRatioCount").text(0); + $("#closeTurnRatioCount").text(0); + $("#openTurnRatioCount").text(0); + + + + + var req=fun.incomeparkgetQueryParam(); + //条件查询 + req.baseRequest = { + pageNum: 1, + pageSize:0 + }; + req.sysCode = sysComm.sysCode; + + var opt = { + method: 'post', + url: dataUrl.util.queryCarFlowByDayForListForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + var data=res.data; + var openInCarCount = 0; + var closeInCarCount = 0; + var allInCarCount = 0; + var openOutCarCount = 0; + var closeOutCarCount = 0; + var allOutCarCount = 0; + var openTurnRatioCount = 0; + var closeTurnRatioCount = 0; + var allTurnRatioCount = 0; + var openUseRatio = 0; + var closeUseRatio = 0; + var allUseRatio = 0; + var openCount=0; + var closeCount=0; + var count=0; + var outParkCount=0; + + var berthsNum = 0; + var openBerthNum=0; + var closeBerthNum=0; + if(data!=null && data.rows!=null && data.rows.length>0){ + var data=data.rows; + for (var i = 0; i < data.length; i++) { + if (parseInt(data[i].plType) == 1) { + openInCarCount +=parseInt(data[i].inParkCount); + openOutCarCount +=parseInt(data[i].outParkCount); + openTurnRatioCount +=parseInt(data[i].turnoverRatio); + openUseRatio +=((1-data[i].freeRatio)*100); + openCount+=1; + openBerthNum +=parseInt(data[i].totalBerths); + } else { + closeInCarCount +=parseInt(data[i].inParkCount); + closeOutCarCount +=parseInt(data[i].outParkCount); + closeTurnRatioCount +=parseInt(data[i].turnoverRatio); + closeUseRatio +=((1-data[i].freeRatio)*100); + closeCount+=1; + closeBerthNum +=parseInt(data[i].totalBerths); + } + allInCarCount += parseInt(data[i].inParkCount); + allOutCarCount += parseInt(data[i].outParkCount); + allTurnRatioCount += parseInt(data[i].turnoverRatio); + allUseRatio += ((1-data[i].freeRatio)*100); + count+=1; + berthsNum += parseInt(data[i].totalBerths); + + } + } + + + $("#allParkCount").text(count); + $("#openParkCount").text(openCount); + $("#closeParkCount").text(closeCount); + $("#berthsNum").text(berthsNum); + $("#openBerthNum").text(openBerthNum); + $("#closeBerthNum").text(closeBerthNum); + + $("#allInCarCount").text(allInCarCount); + $("#closeInCarCount").text(closeInCarCount); + $("#openInCarCount").text(openInCarCount); + $("#allOutCarCount").text(allOutCarCount); + $("#closeOutCarCount").text(closeOutCarCount); + $("#openOutCarCount").text(openOutCarCount); + //周转次数=进场次数/泊位数 + // $("#allTurnRatioCount").text((allInCarCount/berthsNum).toFixed(2)); + // $("#closeTurnRatioCount").text((closeInCarCount/closeBerthNum).toFixed(2)); + // $("#openTurnRatioCount").text((openInCarCount/openBerthNum).toFixed(2)); + $("#allTurnRatioCount").text((allInCarCount/(berthsNum<1?1:berthsNum)).toFixed(2)); + $("#closeTurnRatioCount").text((closeInCarCount/(closeBerthNum<1?1:closeBerthNum)).toFixed(2)); + $("#openTurnRatioCount").text((openInCarCount/(openBerthNum<1?1:openBerthNum)).toFixed(2)); + // console.log(allUseRatio); + // console.log(count); + // console.log(closeUseRatio); + // console.log(closeCount); + // console.log(openUseRatio); + // console.log(openCount); + + if(count==0){ + $("#allUseRatio").text(allUseRatio.toFixed(2)); + }else{ + $("#allUseRatio").text((allUseRatio/count).toFixed(2)); + } + if(closeCount==0){ + $("#closeUseRatio").text(closeUseRatio.toFixed(2)); + }else{ + $("#closeUseRatio").text((closeUseRatio/closeCount).toFixed(2)); + } + if(openCount==0){ + $("#openUseRatio").text(openUseRatio.toFixed(2)); + }else{ + $("#openUseRatio").text((openUseRatio/openCount).toFixed(2)); + } + + + + + + + } + } + }; + sysAjax(opt); + + }, + +}; +fun.init(); +/** + * 默认table 函数 + * 自定义table AJAX请求 + * @param {Object} params + */ +function incomeparktableLoadRequest(params) { + var req = fun.incomeparkgetQueryParam(); + + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + req.sysCode = sysComm.sysCode; + + var opt = { + method: 'post', + url: dataUrl.util.queryCarFlowByDayForListForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + console.log(res); + if (res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); +} + + + +function plTypeFormatter(value){ + if(1==parseInt(value)){ + return "路侧" + }else if(2==parseInt(value)){ + return "封闭" + }else{ + return "未知" + } +} +function turnOverFormatter(value){ + if(value==null || value==undefined || value=="0"){ + return "0"; + }else{ + return value.toFixed(2); + } +} +function freeRatioFormatter(value){ + var useRatio=(1-value)*100; + if(parseInt(useRatio)<=0){ + return "0%" + }else if(parseInt(useRatio)>0 && parseInt(useRatio)<100){ + return useRatio.toFixed(2)+"%"; + }else{ + return "100%" + } +} + + +//点击搜索 +documentBindFunc.on('click', '#incomepark-billQueryBnt', function () { + fun.ltsrcreateTableData(); + fun.carFlowQueryData(); +}); + + + +//车流量打印 +$(document).on('click','#carFlowPrint',function(){ + //; + + var data = fn.getParkLot(); + var orgName=""; + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + orgName=data[i].orgName; + } + if (plNos.length < 1) { + plNos.push("-1X"); + } + /*开始时间*/ + var beginTime; + /*结束时间*/ + var endTime; + + var timeType=$("#timeType").val(); + + if(timeType==1){ + var reportDate=$("#incomepark-daydaterange-btnsta").val(); + $("#carFlowTitle").text("日"); + $("#carFlowTitleTime").text(reportDate); + beginTime=reportDate+" 00:00:00"; + endTime=reportDate+" 23:59:59"; + }else if(timeType==3){ + var reportDate=$("#incomepark-weekdaterange-btnsta").attr('data-text'); + $("#carFlowTitle").text("周"); + $("#carFlowTitleTime").text(reportDate); + beginTime=reportDate.substring(0,10)+" 00:00:00"; + endTime=reportDate.substring(11,reportDate.length)+" 23:59:59"; + }else if(timeType==2){ + var reportDate=$("#incomepark-monthdaterange-btnsta").val(); + $("#carFlowTitle").text("月"); + $("#carFlowTitleTime").text(reportDate); + beginTime = reportDate + "-01 00:00:00"; + var dates = reportDate.split("-"); + if (dates[1] == '02') { + endTime = reportDate + "-28 23:59:59"; + } else if (dates[1] == '01' || dates[1] == '03' || dates[1] == '05' || dates[1] == '07' + || dates[1] == '08' || dates[1] == '10' || dates[1] == '12') { + endTime = reportDate + "-31 23:59:59"; + } else { + endTime = reportDate + "-30 23:59:59"; + } + } + + + + var orgId=fn.getOrgId(); + //var orgName="中兴智能"; + var userName=fn.getUserName(); + var url = dataUrl.util.carFlowPrint(); + var openUrl = "";//弹出窗口的url + var iWidth=800; //弹出窗口的宽度; + var iHeight=800; //弹出窗口的高度; + var iTop = (window.screen.availHeight-80-iHeight)/2; //获得窗口的垂直位置; + var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置; + var win= window.open('',"","height="+iHeight+", width="+iWidth+", top="+iTop+", left="+iLeft+",location=no,resizable=no"); + + var html="
              "; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + html+="
              "; + html += " \ No newline at end of file diff --git a/assets/pages/scripts/yardoperation/parkinglengthport/parkinglengthport.js b/assets/pages/scripts/yardoperation/parkinglengthport/parkinglengthport.js new file mode 100644 index 0000000..7bf9c26 --- /dev/null +++ b/assets/pages/scripts/yardoperation/parkinglengthport/parkinglengthport.js @@ -0,0 +1,654 @@ +/** + * Created by mac on 18/5/17. + */ + + +var reportDateTag=1; +$('#devicereport-toptab li').on('click',function () { + var _index = $(this).index(); + switch (_index){ + case 0: + $('.parkincome-choosedatemonth').addClass('display-none'); + $('.parkincome-choosedateweek').addClass('display-none'); + $('.parkincome-choosedateday').removeClass('display-none'); + $('#devicereport-toptab li').eq(0).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + + reportDateTag=1; + tabFunction(reportDateTag); + break; + case 1: + $('.parkincome-choosedateday').addClass('display-none'); + $('.parkincome-choosedatemonth').addClass('display-none'); + $('.parkincome-choosedateweek').removeClass('display-none'); + $('#devicereport-toptab li').eq(1).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + + reportDateTag=2; + tabFunction(reportDateTag); + break; + case 2: + $('.parkincome-choosedateday').addClass('display-none'); + $('.parkincome-choosedateweek').addClass('display-none'); + $('.parkincome-choosedatemonth').removeClass('display-none'); + $('#devicereport-toptab li').eq(2).addClass('ITD-graynav-topbaractive').siblings().removeClass('ITD-graynav-topbaractive'); + + reportDateTag=3; + tabFunction(reportDateTag); + + } +}); +//切换tcb事件 +function tabFunction(reportDateTag){ + fun.durationParkTotal(); + fun.durationParkForDist(); + fun.createTableData(); +} +var fun= { + init: function () { + fun.dayDate(); + fun.weekDate(); + fun.monthDate(); + fun.durationParkTotal(); + fun.durationParkForDist(); + fun.createTableData(); + $("#index_username").text(fn.getUserAccount()); + }, + dayDate:function() { + $('#durationpark-daydaterange-btnsta').val(moment().subtract('days', 1).format('YYYY-MM-DD')); + $('#durationpark-daydaterange-btnsta').datetimepicker({ + endDate: moment().subtract('days', 1).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + //maxDate:moment().subtract('months', 3), + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + weekDate:function() { + $('#durationpark-weekdaterange-btnsta').attr('data-text',moment().subtract('days', 7).format('YYYY-MM-DD')+'-'+moment().subtract('days', 1).format('YYYY-MM-DD')) + $('#durationpark-weekdaterange-btnsta').html(moment().subtract('days', 7).format('YYYY-MM-DD')+' 至 '+moment().subtract('days', 1).format('YYYY-MM-DD')); + + }, + + monthDate:function() { + $('#durationpark-monthdaterange-btnsta').val(moment().subtract('months', 1).format('YYYY-MM')); + $('#durationpark-monthdaterange-btnsta').datetimepicker({ + endDate: moment().subtract('months', 1).format('YYYY-MM'), + format: 'yyyy-mm', + autoclose: true, + startView: 3, + //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-right" + }) + }, + //数据初始化 + initDatas:function(){ + $("[id^='out']").text(0); + $("[id^='in']").text(0); + $("[id^='park']").text(0); + $("[id^='berth']").text(0); + $("[id^='total']").text(0); + $("[id^='avg']").text(0); + }, + //汇总查询 + durationParkTotal:function(reportTabTag){ + //初始化 + fun.initDatas(); + var req = fun.getQueryParam(); + + var reportDate=""; + var reportTabTag=reportDateTag; + if(reportTabTag==1){ + reportDate=$("#durationpark-daydaterange-btnsta").val(); + }else if(reportTabTag==2){ + var reportDateStr=$("#durationpark-weekdaterange-btnsta").attr('data-text'); + reportDate=reportDateStr.substring(11,21); + }else if(reportTabTag==3){ + reportDate=$("#durationpark-monthdaterange-btnsta").val(); + } + + var reportTabTagName = ""; + if("1" ==reportTabTag){ + reportTabTagName="日"; + }else if("2" ==reportTabTag){ + reportTabTagName="周"; + }else{ + reportTabTagName="月"; + } + + var opt = { + method: 'post', + url: dataUrl.util.queryParkDurationForTotal(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if("8888" == res.code){ + var data = res.data; + console.log(data) + var orgName=''; + if(data!=null && data.length>0 && data[0].orgName != null){ + orgName = data[0].orgName; + } + $("#orgName").val(orgName); + $("#orgNameTitle").text(orgName+" 停车时长统计"+reportTabTagName+"报"); + if(reportTabTagName=='周'){ + $("#reportDateTitle").text($("#durationpark-weekdaterange-btnsta").html()) + }else{ + $("#reportDateTitle").text(reportDate); + } + + //开始渲染汇总数据 + + var totalDuration=0; + var totalParkingTimes=0; + var parkNum=0; + var berthNum=0; + //明细 + $.each(data,function(index,row){ + + if(row.plType==1){ + totalDuration+=row.totalDuration; + totalParkingTimes+=row.totalParkingTimes; + parkNum+=row.parkNum; + berthNum+=row.berthNum; + $("#outParkDuration").text(fun.durationTimeFormatter(row.totalDuration)); + $("#outParkingTimes").text(fun.numberFormatter(row.totalParkingTimes)); + $("#outParkNum").text(fun.numberFormatter(row.parkNum)); + $("#outBerthNum").text(fun.numberFormatter(row.berthNum)); + $("#outAvgTimesDuration").text(fun.durationTimeFormatter(row.totalDuration/row.totalParkingTimes)); + $("#outAvgBerthParkDuration").text(fun.durationTimeFormatter(row.totalDuration/row.berthNum)); + } + else if(row.plType==2){ + totalDuration+=row.totalDuration; + totalParkingTimes+=row.totalParkingTimes; + parkNum+=row.parkNum; + berthNum+=row.berthNum; + $("#inParkDuration").text(fun.durationTimeFormatter(row.totalDuration)); + $("#inParkingTimes").text(fun.numberFormatter(row.totalParkingTimes)); + $("#inParkNum").text(fun.numberFormatter(row.parkNum)); + $("#inBerthNum").text(fun.numberFormatter(row.berthNum)); + $("#inAvgTimesDuration").text(fun.durationTimeFormatter(row.totalDuration/row.totalParkingTimes)); + $("#inAvgBerthParkDuration").text(fun.durationTimeFormatter(row.totalDuration/row.berthNum)); + } + $("#totalDuration").text(fun.durationTimeFormatter(totalDuration)); + $("#totalParkingTimes").text(fun.numberFormatter(totalParkingTimes)); + $("#parkNum").text(fun.numberFormatter(parkNum)); + $("#berthNum").text(fun.numberFormatter(berthNum)); + $("#avgTimesDuration").text(fun.durationTimeFormatter(totalDuration/totalParkingTimes)); + $("#avgBerthParkDuration").text(fun.durationTimeFormatter(totalDuration/berthNum)); + + }); + } + } + }; + sysAjax(opt); + + }, + //停车时长分布查询 + durationParkForDist:function(){ + //初始化 + var req = fun.getQueryParam(); + + var opt = { + method: 'post', + url: dataUrl.util.queryParkDurationDistribute(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if("8888" == res.code){ + var data = res.data; + // if(data != null && data.length > 0){ + fun.drawDurationParkList(data); + /* }else if(data== null || data.length ==0){ + $("#min15").text('0'); + $("#min30").text('0'); + $("#hour1").text('0'); + $("#hour6").text('0'); + $("#hour12").text('0'); + $("#hour24").text('0'); + $("#day1").text('0'); + }*/ + + } + } + }; + sysAjax(opt); + + }, + drawDurationParkList:function(data){ + var min15=0; + var min30=0; + var hour1=0; + var hour6=0; + var hour12=0; + var hour24=0; + var day1=0; + //明细 + console.log(data) + + $.each(data,function(index,row){ + if(row.plType==1){ + min15+=row.min15; + min30+=row.min30; + hour1+=row.hour1; + hour6+=row.hour6; + hour12+=row.hour12; + hour24+=row.hour24; + day1+=row.day1; + $("#outmin15").text(fun.numberFormatter(row.min15)); + $("#outmin30").text(fun.numberFormatter(row.min30)); + $("#outhour1").text(fun.numberFormatter(row.hour1)); + $("#outhour6").text(fun.numberFormatter(row.hour6)); + $("#outhour12").text(fun.numberFormatter(row.hour12)); + $("#outhour24").text(fun.numberFormatter(row.hour24)); + $("#outday1").text(fun.numberFormatter(row.day1)); + } + else if(row.plType==2){ + min15+=row.min15; + min30+=row.min30; + hour1+=row.hour1; + hour6+=row.hour6; + hour12+=row.hour12; + hour24+=row.hour24; + day1+=row.day1; + + $("#inmin15").text(fun.numberFormatter(row.min15)); + $("#inmin30").text(fun.numberFormatter(row.min30)); + $("#inhour1").text(fun.numberFormatter(row.hour1)); + $("#inhour6").text(fun.numberFormatter(row.hour6)); + $("#inhour12").text(fun.numberFormatter(row.hour12)); + $("#inhour24").text(fun.numberFormatter(row.hour24)); + $("#inday1").text(fun.numberFormatter(row.day1)); + } + $("#min15").text(fun.numberFormatter(min15)); + $("#min30").text(fun.numberFormatter(min30)); + $("#hour1").text(fun.numberFormatter(hour1)); + $("#hour6").text(fun.numberFormatter(hour6)); + $("#hour12").text(fun.numberFormatter(hour12)); + $("#hour24").text(fun.numberFormatter(hour24)); + $("#day1").text(fun.numberFormatter(day1)); + }); + var dataValue = []; + + dataValue.push({ + value:min15, + name:'0-15m' + + }); + dataValue.push({ + value:min30, + name:'15-30m' + + }); + dataValue.push({ + value:hour1, + name:'30m-1h' + + }); + dataValue.push({ + value:hour6, + name:'1-6h' + + }); + dataValue.push({ + value:hour12, + name:'6-12h' + + }); + dataValue.push({ + value:hour24, + name:'12-24h' + + }); + dataValue.push({ + value:day1, + name:'1天以上' + + }); + +console.log(dataValue); + + fun.drawDurationParkChart(dataValue); + }, + //图表数据渲染 + drawDurationParkChart:function (dataValue) { + var srzbechartsPie = echarts.init(document.getElementById('durationport-echart')); + srzboption = { + color:['#1E95CD','#5fe98f','#fdc94d','#50c0f5','#ffc0f5','#50c0ff','#50fff5'], + title: { + // subtext: "" + totalFee, + // text: '总计', + textStyle: { + color: '#c2c2c2', + fontSize: '14', + align: 'middle', + verticalAlign: 'middle', + }, + subtextStyle: { + color: '#000', + fontSize: '24', + align: 'middle', + verticalAlign: 'middle', + }, + left: 'center', + top: '60', + + }, + tooltip: { + trigger: 'item', + formatter: "{a}
              {b}: {c}次 ({d}%)" + }, + legend: { + show:false, + selectedMode:false, + orient: 'horizontal', + bottom: '0', + icon:'circle', + data:['0-15m','15-30m','30m-1h','1-6h','6-12h','12-24h','1天以上'] + }, + + series: [ + { + name:'停车时长占比', + type:'pie', + radius: ['60%', '70%'], + center: ['50%', '50%'], + hoverAnimation: false, + avoidLabelOverlap: false, + legendHoverLink: false, + label: { + normal: { + show: false, + position: 'center' + }, + emphasis: { + show: false, + textStyle: { + fontSize: '14', + } + } + }, + labelLine: { + normal: { + show: false + } + }, + data:dataValue + } + ] + } + srzbechartsPie.setOption(srzboption, true); + window.srzbechartsPie=srzbechartsPie; + //自适应 + window.onresize = function(){ + srzbechartsPie.resize(); + }; + }, + createTableData: function () { + $('#devicereport-table').bootstrapTable('destroy').bootstrapTable({ + striped: true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + sortable: true, //是否启用排序 + sortOrder: "asc", + method: 'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest,//自定义ajax加载数据 + // uniqueId:'id', + columns: [ + { + field: 'number', + title: '序号', + width: '15%', + align: "left", + formatter:function(value,row,index){ + //return index+1; //序号正序排序从1开始 + var pageSize=$('#devicereport-table').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条 + var pageNumber=$('#devicereport-table').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页 + var operStr=''; + var topNo=pageSize * (pageNumber - 1) + index + 1; + /*if(topNo==1){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else if(topNo==2){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else if(topNo==3){ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + }else {*/ + operStr =''+topNo+''; + return operStr; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号 + // } + + } + + }, + { + field: 'plName', + title: '车场名称', + width: '25%', + align: "left", + formatter:commonObj.replacenull + }, + { + field: 'plType', + title: '车场类型', + width: '25%', + align: "left", + formatter: fun.plTypeFormatter + }, + { + field: 'totalDuration', + title: '总停车时长', + width: '25%', + align: "left", + formatter: fun.durationTimeFormatter + }, + + { + field: 'berthNum', + title: '泊位数量', + width: '20%', + align: "left", + formatter: commonObj.numberFormatter + }, + { + field: 'avgBerthDuration', + title: '泊位平均时长', + width: '20%', + align: "left", + formatter: fun.durationTimeFormatter + + }, + { + field: 'totalParkingTimes', + title: '总停车次数', + width: '20%', + align: "left", + formatter: commonObj.numberFormatter + + }, + { + field: 'avgTimesDuration', + title: '次均停车时长', + width: '20%', + align: "left", + formatter: fun.durationTimeFormatter + + }, + + ] + }); + }, + //停车场类型 + plTypeFormatter: function (value) { + if (value == undefined || value == null) { + return ''; + } else if(value==1){ + return "路侧"; + }else if(value==2){ + return "封闭"; + } + }, +// //停车时长处理 +// durationTimeFormatter: function (value) { +// if(isNaN(value) || value == null || value == 0){ +// return "0秒"; +// } +// var DateTimes = ""; +// var days = parseInt(value / ( 60 * 60 * 24)); +// var hours = parseInt((value % ( 60 * 60 * 24)) / (60 * 60)); +// var minutes = parseInt((value % ( 60 * 60)) /60); +// var seconds = parseInt(value % 60); +// if(days>0){ +// DateTimes= days + "天" + hours + "小时" + minutes + "分钟"+ seconds + "秒"; +// }else if(hours>0){ +// DateTimes=hours + "小时" + minutes + "分钟"+ seconds + "秒"; +// }else if(minutes>0){ +// DateTimes=minutes + "分钟"+ seconds + "秒"; +// }else{ +// DateTimes=seconds + "秒"; +// } +// return DateTimes; +// }, + //停车时长处理(带单位传true) + durationTimeFormatter: function (value,flag) { + var unit = ""; + if(flag){ + unit = "小时"; + } + if(isNaN(value) || value == null || value == 0){ + return "0"+unit; + } + var str = ""; + var hours = (value/ (60 * 60)).toFixed(1); + + return hours+unit; + }, + //数量处理 + numberFormatter: function (value) { + if (value == 0 || value == undefined || value == null) { + return 0; + } else { + return value; + } + }, + /*获取查询参数*/ + getQueryParam: function () { + + var data = fn.getParkLot(); + var plNos = []; + for (var i = 0; i < data.length; i++) { + plNos.push(data[i].code); + + } + if (plNos.length < 1) { + plNos.push("-1X"); + } + + if(reportDateTag==1){ + var reportDate=$("#durationpark-daydaterange-btnsta").val(); + }else if(reportDateTag==2){ + var reportDate=$("#durationpark-weekdaterange-btnsta").attr('data-text'); + reportDate=reportDate.substring(11,21); + }else if(reportDateTag==3){ + var reportDate=$("#durationpark-monthdaterange-btnsta").val(); + } + var req = { + sysCode: sysComm.sysCode, + plNos: plNos, + reportDate: reportDate, + reportTabTag:reportDateTag + + }; + return req; + + }, + +}; +fun.init(); +//查询按钮 +documentBindFunc.on('click','#durationpark-billQueryBnt',function(){ + fun.durationParkTotal(); + fun.durationParkForDist(); + fun.createTableData(); +}); + +//打印 +documentBindFunc.on('click','#durationParkPrint',function(){ + var req = fun.getQueryParam(); + var userName = fn.getUserName(); + var orgId = fn.getOrgId(); + var orgName = $("#orgName").val(); + //begin调用打印 + var url = dataUrl.util.queryParkDurationPrint(); + var openUrl = "";//弹出窗口的url + var iWidth=800; //弹出窗口的宽度; + var iHeight=800; //弹出窗口的高度; + var iTop = (window.screen.availHeight-80-iHeight)/2; //获得窗口的垂直位置; + var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置; + var win= window.open('',"停车时长报表","height="+iHeight+", width="+iWidth+", top="+iTop+", left="+iLeft+",location=no,resizable=no"); + + var html="
              "; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + html+=""; + + html+="
              "; + html += " + + diff --git a/assets/syspages/js/logmanagement/pages/pdalogmanage.html b/assets/syspages/js/logmanagement/pages/pdalogmanage.html new file mode 100644 index 0000000..076fe4d --- /dev/null +++ b/assets/syspages/js/logmanagement/pages/pdalogmanage.html @@ -0,0 +1,48 @@ + +
              +
              +
              +
              +
              + + +
              +
              + 开始时间 +
              + +
              +
              +
              + 结束时间 +
              + +
              +
              +
              +
              +
              查询
              +
              +
              +
              +
              +
              +
              + +
              +
              +
              +
              + 详细记录 + +
              +
              +
              +
              +
              +
              +
              + + + + diff --git a/assets/syspages/js/logmanagement/pdalogmanage.js b/assets/syspages/js/logmanagement/pdalogmanage.js new file mode 100644 index 0000000..0de44c5 --- /dev/null +++ b/assets/syspages/js/logmanagement/pdalogmanage.js @@ -0,0 +1,177 @@ + +/** + * Created by chenbiao on 2019/11/16. + */ +// + +(function() { + var fun = { + + init: function() { + //初始化time + fun.timeinit(); + fun.createTableData(); + }, + timeinit:function () { + $('#beginTime').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + $('#endTime').val(moment().subtract('days', 0).format('YYYY-MM-DD')); + /*进场时间筛选框*/ + $("#beginTime").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + // //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }).on("click", function () { + $("#beginTime").datetimepicker("setEndDate", $("#endTime").val()) + }); + $("#endTime").datetimepicker({ + endDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + // startView: 3, + // //maxDate:moment().subtract('months', 3), + minView: 3, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "bottom-left" + }).on("click", function () { + $("#endTime").datetimepicker("setStartDate", $("#beginTime").val()) + }); + }, + //生成表格数据 + createTableData: function() { + $('#pdarecordtable').bootstrapTable('destroy').bootstrapTable({ + striped: true, //表格显示条纹 + pagination: true, //启动分页 + pageNumber: 1, //当前第几页 + showColumns: false, + pageSize: 10, //每页显示的记录数 + pageList: [10, 15, 20], //记录数可选列表 + sidePagination: 'server', //表示服务端分页 + queryParamsType: 'limit', + method: 'POST', //请求方法 + // fixedColumns:true, + // fixedNumber:1, + // leftFixedColumns: true, + // leftFixedNumber: 2, + paginationPreText: '<', + paginationNextText: '>', + ajax: tableLoadRequest, //自定义ajax加载数据 + uniqueId: 'id', + columns: [ + { + field: 'userPhone', + title: '收费员名称', + width: '5%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'userId', + title: '收费员账号', + width: '5%', + align: 'left', + formatter:commonObj.replacenull + }, + { + field: 'uddi', + title: '接口名称', + width: '10%', + align: 'left', + formatter:commonObj.replacenull + }, +// { +// field: 'loginIp', +// title: '登录IP', +// width: '8%', +// align: 'left', +// formatter:commonObj.replacenull +// }, +// { +// field: 'resultDesc', +// title: '结果描述', +// width: '10%', +// align: 'left', +// formatter:commonObj.replacenull +// }, + { + field: 'createDate', + title: '操作时间', + width: '10%', + align: 'left', + formatter:commonObj.timeFormatter + } + ] + }); + + }, + + /*获取查询参数*/ + getQueryParam: function() { + /*登录账号*/ + var userIdOrName = $("#pdaloginCode").val(); + /*开始时间*/ + var beginTime = $('#beginTime').val(); + /*结束时间*/ + var endTime = $('#endTime').val(); + beginTime = beginTime == null || beginTime.length == 0 ? null : new Date(beginTime); + endTime = endTime == null || endTime.length == 0 ? null : new Date(endTime+" 23:59:59"); + + var req = { + userIdOrName: userIdOrName, + apiType:2,//api类型 1 app接口 2 pda接口 3微信公共号 + beginDate:beginTime, + endDate:endTime, + sysCode:sysComm.sysCode + + }; + console.log(req); + return req; + }, + + }; + + //初始执行 + fun.init(); + documentBindFunc.on('click', '#pdaqueryBtn', function() { + fun.createTableData(); + }); + + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params) { + var req = fun.getQueryParam(); + //设置请求参数 + var pageNum = (params.data.offset / params.data.limit) + 1; + + //条件查询 + req.baseRequest = { + pageNum: pageNum, + pageSize: params.data.limit + }; + + var opt = { + method: 'post', + url: dataUrl.util.queryApiCallLogForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function(res) { + console.log(res); + if(res.code == '8888') { + params.success(res.data); + } + } + }; + sysAjax(opt); + } +}) +(); \ No newline at end of file diff --git a/assets/syspages/js/menuallot/css/menuManage.css b/assets/syspages/js/menuallot/css/menuManage.css new file mode 100644 index 0000000..e4e027b --- /dev/null +++ b/assets/syspages/js/menuallot/css/menuManage.css @@ -0,0 +1,163 @@ +/*页面公用*/ +/*组织添加修改样式*/ +.role_alert_con{ + display: none; +} +.role_alert_con{ + width: 712px; + /* height: 512px; */ + left: 50%; + top: 50%; + margin-left: -356px; + /* margin-top: -256px; */ + transform: translateY(-50%); + background: #fff; +} +.role_alert_con_t{ + line-height: 60px; + height: 60px; + padding: 0 15px 0 24px; + border-bottom: 1px solid #EFEFEF; +} +.role_alert_error{ + height: 20px; + line-height: 20px; + /* background-color: #fddbdb; */ + color: red; + font-size: 12px; + text-align: center; +} +.diy_select{ + width: 180px; + display: inline-block; + vertical-align: middle; +} +.diy_select_txt{ + width: 144px; +} +.role_alert_btn{ + text-align: center; + margin-top: 16px; + margin-bottom: 24px; + height: 60px; +} +.role_alert_btn span { + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; + } + +/*右侧对应样式*/ +.row{ + padding: 20px 20px 0; +} +.col-mid-3{ + width:20%; + margin-right: 20px; +} +.col-mid-8{ + width:72%; +} +.col-mid-3,.col-mid-8{ + /*border: 1px solid #e7ecf1 !important;*/ + background-color: #fff; +} +.menumanage-container-l{ + width: 326px; + height: 800px; + /*overflow-y: auto;*/ +} +.marginright_l_t{ + padding-right: 16px; + height: 56px; + line-height: 56px; + color:#5ba1eb; + padding-left: 36px; + background: url('../../../img/arrow_down_red.png') no-repeat 10px center; +} +.menumanage-container-r{ + height: 800px; + width: calc(100% - 350px); + width: -webkit-calc(100% - 350px); + width: -moz-calc(100% - 350px); + width: -ms-calc(100% - 350px); + width: -o-calc(100% - 350px); +} +.user_operate_list{ + margin: 12px 0 12px 12px; + height: 32px; + line-height: 32px; +} +.user_operate_list li:nth-of-type(1) span{ + padding-left: 4px; + font-weight: 600; + color: #e7505a; + font-size: 16px; +} + +#treeview1{ + height: calc(100% - 56px); + overflow-x: scroll; + overflow-y: scroll; +} +.mainright_l .list-group .list-group-item { + /*text-overflow: ellipsis;*/ + /*overflow: hidden;*/ + background-color: #f1f5f8; + border:0; + white-space: nowrap; +} +.bootstrap-table { + height: calc(100% - 56px); + height: -webkit-calc(100% - 56px); + height: -moz-calc(100% - 56px); + height: -o-calc(100% - 56px); + height: -ms-calc(100% - 56px); +} +.parent_business{ + width: 244px; + display: inline-block; + vertical-align: top; +} +.role_alert_feed .diy_select{ + height: 28px; + line-height: 28px; + display: inline-block; + vertical-align: middle; + width: 244px; +} + +.role_alert_feed .diy_select_txt { + width:214px; +} +.ztree { + padding: 10px 0; + max-height: 780px; +} +.operate_btn_color:first-of-type { + padding: 4px 6px; + background: #3fc9d5; + margin-right: 3px; +} +.operate_btn_color:last-of-type { + padding: 4px 6px; + background: #659be0; + margin-right: 3px; +} +td{ + white-space:nowrap !important; +} +.framework-group-ul { + width: 290px; + height: 700px; + padding-left: 24px; + overflow-y: auto; +} + diff --git a/assets/syspages/js/menuallot/css/orgresrelation.css b/assets/syspages/js/menuallot/css/orgresrelation.css new file mode 100644 index 0000000..73e0a32 --- /dev/null +++ b/assets/syspages/js/menuallot/css/orgresrelation.css @@ -0,0 +1,397 @@ +/*页面公用*/ +/*组织添加修改样式*/ +.role_alert_con{ + display: none; +} +.role_alert_con{ + width:380px; + /*height: 512px;*/ + left:50%; + top:50%; + margin-left: -190px; + /*margin-top: -256px;*/ + transform: translateY(-50%); + background: #fff; +} +.role_alert_con_t{ + border-top:2px solid #32c5d2; + height: 40px; + line-height: 40px; + padding:0 16px; + font-weight: 500; + color:#424242; +} +.role_alert_con_t img{ + cursor: pointer; + margin-top: 14px; +} +.role_alert_error{ + height: 36px; + line-height: 36px; + color:#d4333f; + font-size: 12px; +} +.role_alert_feed{ + padding-left:16px; + margin-bottom: 8px; +} +.role_alert_feed_l{ + display: inline-block; + width:82px; + text-align: right; + margin-right: 12px; +} +.role_alert_feed_l em{ + color: #d4333f; + margin-right: 8px; + vertical-align: middle; +} +.role_alert_feed input{ + width:244px; + height: 26px; + border: 1px solid #e1e4e6; + padding-left: 8px; + color:#676869; +} +.role_alert_feed textarea{ + width: 244px; + height: 66px; + border: 1px solid #e1e4e6; + vertical-align: top; + color:#676869; + padding-left: 8px; +} +.role_alert_btn{ + padding-right: 26px; + text-align: right; + margin-top: 16px; + padding-bottom: 24px; +} +.role_alert_btn span{ + cursor: pointer; + display: inline-block; + width: 78px; + height: 30px; + border-radius: 2px; + line-height: 30px; + text-align: center; +} +.role_alert_btn span:nth-of-type(2){ + background: #fff; + border:1px solid #e1e4e6; +} +.role_alert_btn span:nth-of-type(1){ + background: #32c5d2; + border:1px solid #32c5d2; + color: #fff; +} +/*右侧对应样式*/ + +.col-mid-3{ + width:35%; + margin-right: 2%; +} +.col-mid-8{ + width:50%; +} +.col-mid-3,.col-mid-8{ + border: 1px solid #e7ecf1 !important; +} +.org_tree{ + height: calc(100% - 70px); + height: -webkit-calc(100% - 70px); + height: -moz-calc(100% - 70px); + height: -o-calc(100% - 70px); + height: -ms-calc(100% - 70px); +} + +.row .mainright_l{ + height: calc(100% - 70px); + height: -webkit-calc(100% - 70px); + height: -moz-calc(100% - 70px); + height: -o-calc(100% - 70px); + height: -ms-calc(100% - 70px); + position: absolute; +} +.marginright_l_t{ + padding-right: 16px; + height: 56px; + line-height: 56px; + color:#5ba1eb; + padding-left: 36px; + background: url('../../../img/arrow_down_red.png') no-repeat 10px center; +} + +.page-content{ + position: relative; +} +.mainright_r{ + height: calc(100% - 70px); + height: -webkit-calc(100% - 70px); + height: -moz-calc(100% - 70px); + height: -o-calc(100% - 70px); + height: -ms-calc(100% - 70px); + position: absolute; + left: 40%; + /*top:5%;*/ + /*padding: 20px;*/ +} +.btn-group, .btn-group-vertical{ + position: absolute !important; + right: 20px; +} + +/*.org_ok{ + display: block ; + float: right !important; + border: 1px solid #e7505a; + padding: 5px 10px; + cursor: pointer; + border-radius: 20px !important; + background: #e7505a; + color: #fff; +}*/ +.user_operate_list{ + margin-bottom: 20px; + height: 45px; + padding-bottom: 6px; + border-bottom: 1px solid #e7ecf1; +} +.user_operate_list li{ + height: 45px; + line-height: 45px; + border:1px solid #e7ecf1; + border-bottom: none; + cursor: pointer; +} +.user_operate_list li:last-of-type{ + border-left: none; +} +.user_operate_list li span{ + padding:0 5px; + font-weight: 500; + font-size: 16px; +} +.liactive{ + color: #fff; + background: #e7505a; +} +.add_user { + background: #fff url(../../../img/add_icon.png) no-repeat 8px center; +} +.user_operate_s { + padding: 7px 8px; + cursor: pointer; + margin-left: 16px; + border-radius: 20px; + background: #e7505a; + color: #fff; + display: none; +} +.orgName{ + width: 160px !important; +} +.addOrgname{ + height: 26px; + line-height: 26px; + width: 80px; + float: right; + margin-right: 28px; + border: 1px solid #e7505a; + text-align: center; + background: #e7505a; + color: #fff; + cursor: pointer; + border-radius: 12px; +} +#treeview1{ + height: calc(100% - 56px); + overflow-x: scroll; + overflow-y: scroll; +} +.mainright_l .list-group .list-group-item { + /*text-overflow: ellipsis;*/ + /*overflow: hidden;*/ + background-color: #f1f5f8; + border:0; + white-space: nowrap; +} +/*.bootstrap-table { + height: calc(100% - 56px); + height: -webkit-calc(100% - 56px); + height: -moz-calc(100% - 56px); + height: -o-calc(100% - 56px); + height: -ms-calc(100% - 56px); +}*/ +.parent_business{ + width: 254px; + display: inline-block; + vertical-align: top; +} +.role_alert_feed .diy_select{ + height: 28px; + line-height: 28px; + display: inline-block; + vertical-align: middle; + width: 252px; +} + +.role_alert_feed .diy_select_txt { + width:223px; +} +.ztree{ + overflow-x: auto; + padding: 10px 0; + height: 100%; + max-height: 780px; +} +#orgTable tr td .operate_btn_color:first-child{ + padding: 4px 6px; + background: #3fc9d5; + margin-right: 3px; + color: #fff; +} +#orgTable tr td .operate_btn_color:last-child{ + padding: 4px 6px; + background: #659be0; + margin-right: 3px; + color: #fff; +} +.fixed-table-container{ + border-bottom: none !important; + border-radius: 0 !important; +} +/*员工table*/ +.person-cont{ + width:100%; + display: none; +} +.personTable{ + width:100%; +} +.personTable tr td .operate_btn_color:first-child{ + padding: 4px 6px; + background: #3fc9d5; + margin-right: 3px; + color: #fff; +} +.personTable tr td .operate_btn_color:last-child{ + padding: 4px 6px; + background: #659be0; + margin-right: 3px; + color: #fff; +} +.oper-levels{ + width: 244px; + height: 26px; + border: 1px solid #e1e4e6; + padding-left: 8px; + margin-left: -3px; + color: #676869; +} +/*添加组织二级弹窗*/ +.addOrg_alert_con{ + width: 600px; + height: auto; + left: 50%; + top: 50%; + margin-left: -300px; + /* margin-top: -256px; */ + transform: translateY(-50%); + background: #fff; + position: relative; +} +.addOrg_alert_con .role_alert_con_t { + border-top: 2px solid #32c5d2; + height: 40px; + line-height: 40px; + padding: 0 16px; + font-weight: 500; + color: #424242; +} +.addOrg_alert_con .role_alert_con_t img { + cursor: pointer; + margin-top: 14px; +} +.park_r_search_con{ + height: 100px; + width: 100%; + padding:0 12px; +} +.park_r_search_con >li { + float: left; + margin-right: 60px; + height:50px; + line-height: 50px; +} + +.park_r_search_con .user_input{ + width: 160px; + height: 30px; + line-height: 30px; + border: 1px solid #c2cad8; + padding-left: 8px; + margin-left: 5px; +} +.park_r_search_con .selectpark_search_btn { + margin-left: 5px; + margin-top: 10px; + width: 50px; + height: 30px; + line-height: 30px; + border-radius: 20px !important; + cursor: pointer; + color: #fff; + font-size: 14px; + text-align: center; + background: #32c5d2; +} +.addOrg_alert_con .parktable-wrap{ + height: calc(100% - 185px); + height: -webkit-calc(100% - 185px); + height: -moz-calc(100% - 185px); + height: -mos-calc(100% - 185px); + height: -o-calc(100% - 185px); + width: 560px; + margin-left: 20px; +} + +.addOrg_alert_con .parkpop-foot{ + height: 40px; + width: 100%; + margin-top: 5px; +} +.savePark{ + cursor: pointer; + width: 78px; + height: 30px; + border-radius: 2px; + line-height: 26px; + text-align: center; + margin-right:10px; + float: right; + background: #32c5d2; + border: 1px solid #32c5d2; + color: #fff; +} +.cancelPark{ + cursor: pointer; + width: 78px; + height: 30px; + border-radius: 2px; + line-height: 26px; + text-align: center; + margin-right: 20px; + float: right; + background: #fff; + border: 1px solid #e1e4e6; +} +.fixed-table-loading { + border-bottom: 1px solid #ddd; +} +.pull-left { + display: none; +} +td{ + white-space:nowrap !important; +} diff --git a/assets/syspages/js/menuallot/menuManage.js b/assets/syspages/js/menuallot/menuManage.js new file mode 100644 index 0000000..ef71553 --- /dev/null +++ b/assets/syspages/js/menuallot/menuManage.js @@ -0,0 +1,576 @@ +/** + * Created by mac on 17/5/10. + */ +(function () { + + var fun = { + //初始化表格数据 + initTable:function(){ + $('#menuTable').bootstrapTable('destroy').bootstrapTable({ + striped:true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber:1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10,15,20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method:'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax:tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'id', title: 'ID', visible: false, align: 'left'}, + {field: 'parentResId', title: 'ID', visible: false, align: 'left',cellStyle:commonObj.formatTableUnit}, + {field: 'resCode', title: '菜单编码', visible: false, align: 'left'}, + {field: 'resName', title: '菜单名称', width: '15%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'resType', title: '菜单类型', width: '8%', align: 'left',formatter:function(value){ + if(value==1){ + return '菜单' + }else if(value==2){ + return '按钮' + }else{ + return '公共服务' + } + },cellStyle:commonObj.formatTableUnit}, + {field: 'resUrl', title: '菜单地址', width: '20%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'ifDisplay', title: '是否显示', width: '10%', align: 'left',formatter:function(value){ + if(value==1){ + return '显示' + }else if(value==0){ + return '不显示' + }else{ + return '未知' + } + },cellStyle:commonObj.formatTableUnit}, + {field: 'sysCodeName', title: '系统名称', width: '15%', align: 'left',formatter:function (value,row,index) { + var userSysName = sessionStorage.getItem("sysName"); + return userSysName; + },cellStyle:commonObj.formatTableUnit}, + {field: 'sortNum', title: '排序', width: '8%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'oper', title: '操作', width: '25%', align: 'left',formatter:fun.operFormatter,cellStyle:commonObj.formatTableUnit} + ], + formatLoadingMessage:function(){ + return "数据正在加载中..."; + }, + formatNoMatches: function () { + return '暂无信息,可使用 “添加菜单” 按钮为系统添加菜单信息'; + } + }); + }, + + //操作显示 + operFormatter:function(value,row,index){ + var operStr ='修改'+ + '删除'; + return operStr; + }, + //添加菜单 + addMenu:function(){ + var selectedNodes = Tree.getSelectedNodes(); + if(selectedNodes.length==0){ + $('.ITD-alertmodel-contentmsg').text('请先在左侧选中要添加子菜单的父菜单!'); + $('#menumanage_alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#menumanage_alertmodel').modal('hide') + },3000); + // swal({title:"提示",text:'请先在左侧选中要添加子菜单的父菜单!',type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + $('#role_alert_error').text(''); + $('input').val(''); + $('textarea').val(''); + $('select').val(''); + $("#resCode").val(''); + $('#resType').html('菜单1'); + $('#ifDisplay').html('显示1'); + + //父节点名称 + var selectedNode = selectedNodes[0]; + var children = selectedNode.children; + var num =1; + if(children){ + num = children.length+1; + } + fun.initMenuSortNum(num,num); + $('#parentResName').html(selectedNode.name); + $('#parentResId').val(selectedNode.id); + $('#alert_over').append($('#role_alert_con_menu')); + $('#role_alert_title').html('添加菜单'); + var sysName = sessionStorage.getItem("sysName"); + $("#sysCodeNameView").val(sysName); + $('#alert_over,#role_alert_con_menu').show(); + }, + //修改菜单 + modifyMenu:function(element){ + $('#role_alert_error').text(''); + //设置值 + var Menuid = $(element).attr('data-value'); + //根据唯一值获取行数据 + var modifyRow = $('#menuTable').bootstrapTable('getRowByUniqueId', Menuid); + $('#menuId').val(Menuid); + $("#resCode").val(modifyRow.resCode); + $('#resName').val(modifyRow.resName); + $('#resUrl').val(modifyRow.resUrl); + $('#resDesc').val(modifyRow.resDesc); + $('#resIcon').val(modifyRow.resIcon); + //父节点名称 + $('#parentResId').val(modifyRow.parentResId); + var node = Tree.getNodeById(modifyRow.parentResId); + var children = node.children; + var num =1; + if(children){ + num = children.length; + } + var thisNode = Tree.getNodeById(Menuid); + fun.initMenuSortNum(num,thisNode.getIndex()+1); + + $('#parentResName').html(node==null?'':node.name); + if(modifyRow.resType == 1){ + $('#resType').html('菜单1'); + }else if(modifyRow.resType == 2){ + $('#resType').html('按钮2'); + } + + if(modifyRow.ifDisplay == 1){ + $('#ifDisplay').html('显示1'); + }else if(modifyRow.ifDisplay == 0){ + $('#ifDisplay').html('不显示0'); + } + + + $('#alert_over').append($('#role_alert_con_menu')); + $('#role_alert_title').html('修改菜单'); + var sysName = sessionStorage.getItem("sysName"); + $("#sysCodeNameView").val(sysName); + $('#alert_over,#role_alert_con_menu').show(); + }, + //初始化菜单排序 + initMenuSortNum:function(num,defaultNum){ + //进行初始化 + $("#oldSortNum").val(''); + $("#sortNum").empty(); + $("#sortNumData").empty(); + //开始赋值 + $("#oldSortNum").val(defaultNum); + $("#sortNum").html(defaultNum+''+defaultNum+''); + var selectHtml = ''; + for(var i=1 ;i<=num;i++){ + selectHtml+='
            66. '+i+''+i+'
            67. '; + } + $("#sortNumData").append(selectHtml); + }, + //删除菜单 + deleteMenu:function(element){ + var Menuid = $(element).attr('data-value'); + var Menuname = $(element).attr('Menuname'); + var node = Tree.getNodeById(Menuid); + if(node.isParent){ + var message ="菜单["+Menuname+"]下面有子菜单,不允许删除!" + swal({title:"提示",text:message,type:"warning",timer:5000,allowOutsideClick:true}); + return false; + } + + var content = $('确定要删除菜单('+Menuname+')吗?'); + var isUsed = ''; + swal({ + title: '提示', + text: '确定要删除菜单['+Menuname+']?', + type: 'warning', + showCancelButton: true, + allowOutsideClick:false, + confirmButtonText: '确定', + cancelButtonText: '取消', + }).then(function(isConfirm) { + if (isConfirm === true) { + //判断该角色是否已经被占用 + isUsedForMenuByMenuId(); + if(isUsed=='true'){ + deleteMenuForce(Menuname); + }else{//没有被占用 + //删除角色 + realDeleteMenu(); + //刷新table + $('#menuTable').bootstrapTable('refresh', {silent: true}); + } + } else if (isConfirm === false) { + swal.close() + } + }); + + //强制删除菜单 + function deleteMenuForce(menuName){ + swal({ + title: '提示', + text: '菜单['+menuName+']已经被使用,是否强制删除?', + type: 'warning', + showCancelButton: true, + allowOutsideClick:false, + confirmButtonText: '强制删除', + cancelButtonText: '取消', + }).then(function(isConfirm) { + if (isConfirm === true) { + //删除角色 + realDeleteMenu(); + //刷新table + $('#menuTable').bootstrapTable('refresh', {silent: true}); + + } else if (isConfirm === false) { + swal.close() + + } + }); + } + //正式删除菜单 + function realDeleteMenu(){ + var sysCode = sessionStorage.getItem("sysCode"); + sysAjax({ + method: 'POST', + url: dataUrl.util.deleteRes(), + data: "sysCode="+sysCode+"&resIds="+Menuid, + contentType: 'application/x-www-form-urlencoded', + dataType:'json', + async:false, + success: function (res) { + if(isError(res)){ + return false; + } + + //删除树节点 + Tree.removeNode(Menuid) + } + }); + } + //判断该菜单是否已经被占用 + function isUsedForMenuByMenuId(){ + var sysCode = sessionStorage.getItem("sysCode"); + sysAjax({ + method: 'post', + url: dataUrl.util.isUsedForMenuByMenuId(), + data: "sysCode="+sysCode+"&resId="+Menuid, + contentType: 'application/x-www-form-urlencoded', + dataType:'json', + async:false, + success: function (res) { + if(isError(res)){ + return false; + } + isUsed = res.data+''; + } + }); + } + + }, + //show + show_alert:function () { + $('#alert_over').append($('#role_alert_error')); + $('#alert_over,#role_alert_error').show(); + }, + //clsoe + close_alert:function () { + $('#alert_over,#role_alert_error').hide(); + }, + //cancel + alert_cancel:function () { + $('#alert_over,#role_alert_error').hide(); + }, + //alert_ok + alert_ok:function () { + var sysCode = sessionStorage.getItem("sysCode"); + //验证参数 + fun.validateMenu(); + var errmsg = $('#role_alert_error').text(); + if(errmsg !=''){ + return false; + } + //拼接请求参数 + var url = dataUrl.util.saveOrUpdateRes(); + var req= { + "id": $('#menuId').val(), + "ifDisplay": $('#ifDisplay').find('span').text(), + "parentResId": $('#parentResId').val(), + "resDesc": $('#resDesc').val(), + "resType": $('#resType').find('span').text(), + "resCode": $('#resCode').val(), + "resName": $('#resName').val(), + "resIcon":$('#resIcon').val(), + "resUrl": $('#resUrl').val(), + "sortNum": $('#sortNum').find('span').text(), + "sysCode":sysCode, + "oldSortNum":$('#oldSortNum').val() + }; + sysAjax({ + method:'POST', + url: url, + data: JSON.stringify(req), + success: function(res){ + if(isError(res)){ + return false; + } + $('#alert_over,#role_alert_con_menu').hide(); + $('#menuId').val(''); + $('#parentResId').val(''); + $('#parentResName').val('') + + //刷新左边的tree + Tree.initTree(); + + // if($('#menuId').val() == ''){//添加节点 + // var node = { + // name:$('#resName').val(), + // id:res.data, + // pid:$('#parentResId').val() + // }; + // Tree.addNodes($('#parentResId').val(),node); + // }else{//修改节点名称 + // var node = Tree.getNodeById($('#menuId').val()) + // node.name = $('#resName').val(); + // Tree.updateNodes(node); + // } + // $('#menuId').val(''); + // $('#parentResId').val(''); + // $('#parentResName').val('') + //刷新table + $('#menuTable').bootstrapTable('refresh', {silent: true}); + } + }); + }, + //验证参数 + validateMenu:function(){ + var errorIfo = $('#role_alert_error'); + errorIfo.text(''); + var resName = $('#resName').val(); + var resUrl = $('#resUrl').val(); + var resDesc = $('#resDesc').val(); + var regular = /^([^\`\+\~\!\#\$\%\^\&\*\(\)\|\}\{\=\"\'\!\¥\……\(\)\——]*[\+\~\!\#\$\%\^\&\*\(\)\|\}\{\=\"\'\`\!\?\:\<\>\•\“\”\;\‘\‘\〈\ 〉\¥\……\(\)\——\{\}\【\】\\\/\;\:\?\《\》\。\,\、\[\]\,]+.*)$/; + //名字 + if(StrUtil.isEmpty(resName)){ + errorIfo.text('请填写菜单名称'); + $('#resName').focus() + return false; + }else if(resName.indexOf(' ')>=0||regular.test(resName)){ + errorIfo.text('菜单名不能包含空格或者标点符号'); + $('#resName').focus() + return false; + } + // if(StrUtil.isEmpty(resUrl)){ + // errorIfo.text('请填写菜单地址'); + // return false; + // } + //描述 + if(StrUtil.isEmpty(resDesc)){ + errorIfo.text('请输入菜单描述'); + $('#resDesc').focus(); + return false; + }; + + } + }; + + var Tree = { + //初始化树 + initTree:function(){ + $.fn.zTree.init($("#tree"), Tree.setting, Tree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("tree"); + treeObj.expandAll(true); + }, + setting:{ + callback: { + onClick: function(event, treeId, treeNode){ + //重新初始化table + fun.initTable(); + } + }, + view: { + selectedMulti: false + }, + check: { + enable: false, + chkStyle: "checkbox" + }, + data: { + simpleData: { + enable: true, + idKey: "id", + pIdKey: "pId", + rootPId: -1 + } + }, + edit: { + enable: false + + } + }, + //添加节点 + addNodes:function(parentId,newNodes){ + var treeObj = $.fn.zTree.getZTreeObj("tree"); + var parentId = Tree.getNodeById(parentId); + newNodes = treeObj.addNodes(parentId, newNodes); + }, + //更新节点 + updateNodes:function(treeNode, checkTypeFlag){ + var treeObj = $.fn.zTree.getZTreeObj("tree"); + treeObj.updateNode(treeNode); + }, + //删除节点 + removeNode:function(id){ + var treeObj = $.fn.zTree.getZTreeObj("tree"); + var treeNode = Tree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById:function(id){ + var treeObj = $.fn.zTree.getZTreeObj("tree"); + var node = treeObj.getNodeByParam("id",id, null); + return node; + }, + //获取选中的节点集合 + getSelectedNodes:function(){ + var treeObj = $.fn.zTree.getZTreeObj("tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData:function() { + var sysCode = sessionStorage.getItem("sysCode"); + var zNodes = []; + sysAjax({ + method:'POST', + url: dataUrl.util.getResTreeBySysCode(), + data: "sysCode="+sysCode, + contentType: 'application/x-www-form-urlencoded', + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + zNodes =res.data; + } + }); + //增加一个公告根节点 + zNodes[zNodes.length] = {name:'根节点',id:-1,checked:true}; + return zNodes; + } + } + + //初始执行 + init(); + + function init(){ + //初始化树 + Tree.initTree(); + //close弹窗 + $('.close_alert').on('click',function () { + fun.close_alert(); + }); + //cancel弹窗 + $('#alert_cancel').on('click',function () { + fun.close_alert(); + }); + //alert_ok弹窗 + $('#alert_ok').on('click',function () { + fun.alert_ok(); + }); + //初始化table + fun.initTable(); + //删除角色 + $(document).on('click','[delete]',function(){ + fun.deleteMenu(this); + }); + //修改角色 + $(document).on('click','[modify]',function(){ + fun.modifyMenu(this); + }); + //添加角色 + $(document).on('click','.addMenu',function(){ + fun.addMenu(); + }); + //下拉框 + var TTDiy_select = new diy_select({ //参数可选 + TTContainer: 'diy_select', //控件的class + TTDiy_select_input: 'diy_select_input', //用于提交表单的class + TTDiy_select_txt: 'diy_select_txt', //diy_select用于显示当前选中内容的容器class + TTDiy_select_btn: 'diy_select_btn', //diy_select的打开按钮 + TTDiv_select_list: 'diy_select_list', //要显示的下拉框内容列表class + TTFcous: 'focus' //得到焦点时的class + }); //如同时使用多个时请保持各class一致. + } + /** + * 处理错误信息 + * @param {Object} res + */ + function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + var errorPop = new Pop({ + header:'错误提示', + content:$(''+res.msg+''), + buttons:[{ + type:'popOk', + text:'确定', + callback:function(){ + errorPop.close(); + } + + }] + }); + return true; + }else{ + return false; + } + } + + + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params){ + //获取选中的树节点 + var nodes = Tree.getSelectedNodes(); + var id = ''; + var parentResId = ''; + if(nodes.length>0){ + var nodeId = nodes[0].id; + if(nodes[0].isParent){//如果是父节点则按照父节点查询 + parentResId = nodeId; + }else{ + id = nodeId; + } + }else{//没有选中,默认查询第一级节点 + parentResId = 0; + } + var sysCode = sessionStorage.getItem("sysCode"); + //设置请求参数 + var pageNum = (params.data.offset/params.data.limit)+1; + var req= { + baseRequest:{ + pageNum:pageNum, + pageSize:params.data.limit + }, + sysCode:sysCode, + id:id, + parentResId:parentResId + }; + var easyUIOps = { + method: params.type, + url: dataUrl.util.getSysResBySysCode(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if(isError(res)){ + return false; + } + params.success(res.data); + } + }; + sysAjax(easyUIOps); + } + +})(); diff --git a/assets/syspages/js/menuallot/orgresrelation.js b/assets/syspages/js/menuallot/orgresrelation.js new file mode 100644 index 0000000..9b00e7d --- /dev/null +++ b/assets/syspages/js/menuallot/orgresrelation.js @@ -0,0 +1,452 @@ + +/** + * 组织区域关系js.
              + * @author wangfs + */ +var fun = { + /*1.保存组织与菜单关系**/ + org_ok:function(){ + $(document).on('click','#org_ok',function(){ + //获取左侧选中的组织 + var checkedOrgId = orgTree.getCheckedNodesId(true); + if(checkedOrgId == null || checkedOrgId == '' || checkedOrgId ==undefined){ + swal({title:"提示",text:'请选择左侧要分配权限的[组织]!',type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + //获取右侧区域选中的“块”id 集合 + var checkedResIds = areaTree.getCheckedNodesIdForBlock(true); + var req= { + sysCode:sysComm.sysCode, + orgId:checkedOrgId[0], + resIds:checkedResIds + }; + //保存组织区域关系 + sysAjax({ + method: "post", + url: dataUrl.util.batchInsertOrgRes(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if(res.code == '8888'){ + if(res.data){ + swal({title:"提示",text:'保存成功!',type:"success",timer:3000,allowOutsideClick:true}); + }else{ + swal({title:"提示",text:'保存失败!',type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + }else{ + swal({title:"提示",text:res.errMsg,type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + + } + }); + + }); + } + +}; + +// 组织构建树 +var orgTree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#org_tree"), orgTree.setting, orgTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + treeObj.expandAll(true); + + }, + setting: { + callback: { + onCheck:zTreeOnCheck + }, + view: { + selectedMulti: false //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "radio", + radioType:"all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + edit: { + enable: false + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = orgTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node==null){ + continue; + } + node.checked = true; + orgTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var treeNode = orgTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = orgTree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names= ""; + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names+","+nodes[i].name; + } + return names; + }, + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData:function() { + var sysCode=sessionStorage.getItem("sysCode"); + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode, + orgLevel:2 + }; + sysAjax({ + method:'POST', + url: dataUrl.util.queryOrgByOrgLevelTree(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + $.each(res.data, function(index,rows) { + var data={id:rows.id,pId:rows.parentOrgId,name:rows.orgName}; + zNodes[index] =data; + }); + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } +} + +// 区域构建树 +var areaTree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#area_tree"), areaTree.setting, areaTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + treeObj.expandAll(false); + areaTree.selectedNodes(-1); + areaTree.removeNode(-2); + }, + setting: { + callback: { + onCheck:zTreeOnCheckMenu + }, + view: { + selectedMulti: false //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "checkbox" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + edit: { + enable: false + } + }, + //展开某个节点 + selectedNodes:function(id){ + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getNodesByParam("id", id, null); + if(nodes.length>0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = areaTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node==null){ + continue; + } + node.checked = true; + areaTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var treeNode = areaTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = areaTree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForBlock: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index =0; + for (var i = 0; i < nodes.length; i++) { + if(null != nodes[i].id && "-1"!=nodes[i].id ){ + ids[index++] =nodes[i].id; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names= ""; + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names+","+nodes[i].name; + } + return names; + }, + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData:function() { + var sysCode=sessionStorage.getItem("sysCode"); + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode, + dataStatus:1 + }; + sysAjax({ + method:'POST', + url: dataUrl.util.queryAllResTree(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + $.each(res.data, function(index,rows) { + var data={id:rows.id,pId:rows.parentResId,name:rows.resName,resType:rows.resType}; + zNodes[index] =data; + }); + + } + }); + //增加一个公告根节点 + zNodes[zNodes.length] = {name:'根节点',id:-1}; + return zNodes; + } +} +$(function(){ + orgTree.initTree(); //初始化组织tree + areaTree.initTree(); //初始化区域tree + fun.org_ok(); //保存 +}); +/** + * 处理错误信息 + * @param {Object} res + */ +function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + var errorPop = new Pop({ + header:'错误提示', + content:$(''+res.msg+''), + buttons:[{ + type:'popOk', + text:'确定', + callback:function(){ + errorPop.close(); + } + }] + }); + return true; + }else{ + return false; + } +} +/** + * 左侧单选按钮点击选中右侧.
              + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ +function zTreeOnCheck (event, treeId, treeNode) { + // alert(treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + var sysCode=sessionStorage.getItem("sysCode"); + var zNodes = []; + var req= { + sysCode:sysCode, + orgId:treeNode.id, + }; + sysAjax({ + method:'POST', + url: dataUrl.util.queryResIdsByOrgId(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + areaTree.checkAllNodes(false); + areaTree.updateNodesForChecked(res.data); + + } + }); + +} + +/** + * 菜单判断自动选中公共服务节点 + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ +function zTreeOnCheckMenu (event, treeId, treeNode) { + //1.如果为叶子节点则选中同级,resType=3(公共服务) + if(!treeNode.isParent){ + var pId = treeNode.pId; + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var node = treeObj.getNodeByParam("id", pId, null); + if(node != null){ + //获取所有公共服务节点 + $.each(node.children, function(index,rows) { + if(rows != null){ + if(rows.resType ==3){ + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var node = treeObj.getNodeByParam("id", rows.id, null); + if(node != null || node != undefined){ + node.checked = true; + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + treeObj.updateNode(node); + } + } + } + }); + } + } +} + + + + + + \ No newline at end of file diff --git a/assets/syspages/js/menuallot/pages/menuManage.html b/assets/syspages/js/menuallot/pages/menuManage.html new file mode 100644 index 0000000..0662203 --- /dev/null +++ b/assets/syspages/js/menuallot/pages/menuManage.html @@ -0,0 +1,141 @@ + +
              + + +
              + +
              + +
              +
              + 添加菜单 + × +
              +
              + +
              +
              +
              + 上级菜单 + + 跟节点,无上级 +
              +
              + 菜单名称* + +
              +
              + 菜单图标 + +
              +
              + 菜单类型* +
              +
              + +
              菜单1
              +
              +
              +
              +
                +
              • 菜单1
              • +
              • 按钮2
              • +
              • 公共服务3
              • +
              +
              +
              +
              +
              + 是否显示 +
              +
              + +
              显示1
              +
              +
              +
              +
                +
              • 显示1
              • +
              • 不显示0
              • +
              +
              +
              +
              +
              +
              +
              + 菜单编码 + +
              +
              + 系统名称 + +
              +
              + 菜单排序* +
              +
              + +
              +
              +
              +
              +
                +
                +
                +
                +
                + 菜单地址 + +
                +
                + 菜单描述* + +
                +
                +
                +
                + 取消 + 保存 +
                +
                +
                + + + + + \ No newline at end of file diff --git a/assets/syspages/js/menuallot/pages/orgresrelation.html b/assets/syspages/js/menuallot/pages/orgresrelation.html new file mode 100644 index 0000000..7d98897 --- /dev/null +++ b/assets/syspages/js/menuallot/pages/orgresrelation.html @@ -0,0 +1,34 @@ + + + +
                +
                +
                +
                + 组织树 +
                +
                +
                  +
                  +
                  +
                  +
                  +
                  +
                  + 菜单树 +
                  +
                  + +
                  +
                  +
                  +
                  +
                    +
                    +
                    +
                    + +
                    + \ No newline at end of file diff --git a/assets/syspages/js/menuallot/sysmenuTmp.js b/assets/syspages/js/menuallot/sysmenuTmp.js new file mode 100644 index 0000000..10a3d7b --- /dev/null +++ b/assets/syspages/js/menuallot/sysmenuTmp.js @@ -0,0 +1,49 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
                    '+urlarr[i].name+'
                    ' + }else{ + _html += '
                  • '+urlarr[i].name+'
                  • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/menuManage', function() { + $("#pageCssLink").attr("href",'../../assets/syspages/js/menuallot/css/menuManage.css'); + res.load('../../assets/syspages/js/menuallot/pages/menuManage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-menuManage').addClass('ITD-topbar-clickactive'); + +}); +R.route('/orgresrelation', function() { + + $("#pageCssLink").attr("href",'../../assets/syspages/js/menuallot/css/orgresrelation.css'); + res.load('../../assets/syspages/js/menuallot/pages/orgresrelation.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-orgresrelation').addClass('ITD-topbar-clickactive'); + +}); + diff --git a/assets/syspages/js/rbac/css/frameworkManage.css b/assets/syspages/js/rbac/css/frameworkManage.css new file mode 100644 index 0000000..93a5075 --- /dev/null +++ b/assets/syspages/js/rbac/css/frameworkManage.css @@ -0,0 +1,372 @@ +/*页面公用*/ +/*组织添加修改样式*/ +.role_alert_con{ + display: none; +} +.role_alert_con{ + width:712px; + /*height: 512px;*/ + left:50%; + top:50%; + margin-left: -356px; + /*margin-top: -256px;*/ + transform: translateY(-50%); + background: #fff; +} +.role_alert_con_t{ + line-height: 60px; + height: 60px; + padding: 0 15px 0 24px; + border-bottom: 1px solid #EFEFEF; + +} + +.role_alert_error{ + height: 20px; + line-height: 20px; + /*background-color: #fddbdb;*/ + color: red; + font-size: 12px; + text-align: center; +} +.role_alert_feed{ + /*padding-left:16px;*/ + /*margin-bottom: 8px;*/ + height: 35px; + line-height: 35px; +} +.role_alert_feed_l{ + display: inline-block; + width:82px; + text-align: right; + margin-right: 12px; +} +em{ + color: #d4333f; + margin-right: 8px; + vertical-align: middle; +} +.role_alert_feed input{ + width:244px; + height: 26px; + border: 1px solid #e1e4e6; + padding-left: 8px; + color:#676869; +} +.role_alert_feed textarea{ + width: 244px; + height: 66px; + border: 1px solid #e1e4e6; + vertical-align: top; + color:#676869; + padding-left: 8px; +} +.role_alert_btn{ + text-align: center; + margin-top: 16px; + margin-bottom: 24px; + height: 60px; +} +.role_alert_btn span{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} + +/*右侧对应样式*/ +.framework-container-l{ + width: 326px; + height: 800px; + overflow-y: auto; +} +.framework-container-r{ + height: 800px; + width: calc(100% - 350px); + width: -webkit-calc(100% - 350px); + width: -moz-calc(100% - 350px); + width: -ms-calc(100% - 350px); + width: -o-calc(100% - 350px); +} +.framework-group-ul{ + width: 326px; + height: 700px; + padding-left: 24px; + overflow-y: auto; +} +.fixheight350{ + overflow-y: auto; + max-height: 350px; +} + +.marginright_l_t{ + padding-right: 16px; + height: 56px; + line-height: 56px; + color:#5ba1eb; + padding-left: 36px; + background: url('../../../img/arrow_down_red.png') no-repeat 10px center; +} + + +.user_operate_list li{ + height: 45px; + line-height: 45px; + border:1px solid #e7ecf1; + border-bottom: none; + cursor: pointer; +} +.user_operate_list li:last-of-type{ + border-left: none; +} +.user_operate_list li span{ + padding:0 5px; + font-weight: 500; + font-size: 16px; +} +.liactive{ + color: #fff; + background: #e7505a; +} +.add_user { + background: #fff url(../../../img/add_icon.png) no-repeat 8px center; +} +.user_operate_s { + padding: 7px 8px; + cursor: pointer; + margin-left: 16px; + border-radius: 20px; + background: #e7505a; + color: #fff; + display: none; +} +.orgName{ + width: 160px !important; +} +.addOrgname{ + height: 26px; + line-height: 26px; + width: 80px; + float: right; + margin-right: 28px; + border: 1px solid #e7505a; + text-align: center; + background: #e7505a; + color: #fff; + cursor: pointer; + border-radius: 12px; +} +#treeview1{ + height: calc(100% - 56px); + overflow-x: scroll; + overflow-y: scroll; +} +.mainright_l .list-group .list-group-item { + /*text-overflow: ellipsis;*/ + /*overflow: hidden;*/ + background-color: #f1f5f8; + border:0; + white-space: nowrap; +} +/*.bootstrap-table { + height: calc(100% - 56px); + height: -webkit-calc(100% - 56px); + height: -moz-calc(100% - 56px); + height: -o-calc(100% - 56px); + height: -ms-calc(100% - 56px); +}*/ +.parent_business{ + width: 254px; + display: inline-block; + vertical-align: top; +} +.role_alert_feed .diy_select{ + height: 28px; + line-height: 28px; + display: inline-block; + vertical-align: middle; + width: 252px; +} + +.role_alert_feed .diy_select_txt { + width:223px; +} +.ztree{ + /*overflow-x: auto;*/ + padding: 10px 0; + max-height: 780px; +} +#orgTable tr td .operate_btn_color:first-child{ + padding: 4px 6px; + background: #3fc9d5; + margin-right: 3px; + color: #fff; +} +#orgTable tr td .operate_btn_color:last-child{ + padding: 4px 6px; + background: #659be0; + margin-right: 3px; + color: #fff; +} +.fixed-table-container{ + border-bottom: none !important; + border-radius: 0 !important; +} +/*员工table*/ +/*.person-cont{ + width:100%; + display: none; +}*/ +/*.personTable{ + width:100%; +}*/ +.personTable tr td .operate_btn_color:first-child{ + padding: 4px 6px; + background: #3fc9d5; + margin-right: 3px; + color: #fff; +} +.personTable tr td .operate_btn_color:last-child{ + padding: 4px 6px; + background: #659be0; + margin-right: 3px; + color: #fff; +} +.oper-levels{ + width: 180px; + height: 35px; + line-height: 35px; + border: 1px solid #d8e2e5; + /*padding-left: 8px;*/ + /*margin-left: -3px;*/ + /*border-radius: 0 !important;*/ + color: #676869; +} +.oper-levels option{ + height: 35px; + line-height: 35px; +} +/*添加组织二级弹窗*/ +.addOrg_alert_con{ + width: 600px; + height: auto; + left: 50%; + top: 50%; + margin-left: -300px; + /* margin-top: -256px; */ + transform: translateY(-50%); + background: #fff; + position: relative; +} +.addOrg_alert_con .role_alert_con_t { + border-top: 2px solid #32c5d2; + height: 40px; + line-height: 40px; + padding: 0 16px; + font-weight: 500; + color: #424242; +} +.addOrg_alert_con .role_alert_con_t img { + cursor: pointer; + margin-top: 14px; +} +.park_r_search_con{ + height: 100px; + width: 100%; + padding:0 12px; +} +.park_r_search_con >li { + float: left; + margin-right: 60px; + height:50px; + line-height: 50px; +} + +.park_r_search_con .user_input{ + width: 160px; + height: 30px; + line-height: 30px; + border: 1px solid #c2cad8; + padding-left: 8px; + margin-left: 5px; +} +.park_r_search_con .selectpark_search_btn { + margin-left: 5px; + margin-top: 10px; + width: 50px; + height: 30px; + line-height: 30px; + border-radius: 20px !important; + cursor: pointer; + color: #fff; + font-size: 14px; + text-align: center; + background: #32c5d2; +} +.addOrg_alert_con .parktable-wrap{ + height: calc(100% - 185px); + height: -webkit-calc(100% - 185px); + height: -moz-calc(100% - 185px); + height: -mos-calc(100% - 185px); + height: -o-calc(100% - 185px); + width: 560px; + margin-left: 20px; +} + +.addOrg_alert_con .parkpop-foot{ + height: 40px; + width: 100%; + margin-top: 5px; +} +.savePark{ + cursor: pointer; + width: 78px; + height: 30px; + border-radius: 2px; + line-height: 26px; + text-align: center; + margin-right:10px; + float: right; + background: #32c5d2; + border: 1px solid #32c5d2; + color: #fff; +} +.cancelPark{ + cursor: pointer; + width: 78px; + height: 30px; + border-radius: 2px; + line-height: 26px; + text-align: center; + margin-right: 20px; + float: right; + background: #fff; + border: 1px solid #e1e4e6; +} +.fixed-table-loading { + border-bottom: 1px solid #ddd; +} +.pull-left { + display: none; +} +td{ + white-space:nowrap !important; +} +.popFooter span { + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} \ No newline at end of file diff --git a/assets/syspages/js/rbac/css/jobFuncManage.css b/assets/syspages/js/rbac/css/jobFuncManage.css new file mode 100644 index 0000000..96e3c1c --- /dev/null +++ b/assets/syspages/js/rbac/css/jobFuncManage.css @@ -0,0 +1,324 @@ +/*搜索*/ +.jobfunc-parkinput78{ + width: 78%; + height: 34px; + line-height: 34px; +} +.data_title_l { + display: inline-block; + margin-left: 10px; +} +.select_search_btn{ + margin-left: 15px; + padding-left: 20px; + padding-right: 20px; + border-radius: 20px !important; +} +.main_right_con{ + margin:0 0 0 16px; + height: 100%; +} +.user_operate_list { + margin: 12px 0; + height: 32px; + line-height: 32px; +} +.user_operate_list li:nth-of-type(1) span { + padding-left: 4px; + font-weight: 600; + color: #e7505a; + font-size: 16px; +} +.user_operate_s { + padding: 7px 8px; + cursor: pointer; + margin-left: 16px; + border-radius: 20px !important; + background: #e7505a; + color: #fff; +} +#jobFuncTable tr td .operate_btn_color:first-child { + padding: 4px 6px; + background: #3fc9d5; + margin-right: 3px; + color: #fff; +} +#jobFuncTable tr td .operate_btn_color:nth-child(2) { + padding: 4px 6px; + background: #f1c40f; + margin-right: 3px; + color: #fff; +} +#jobFuncTable tr td .operate_btn_color:last-child { + padding: 4px 6px; + background: #659be0; + margin-right: 3px; + color: #fff; +} +#jobFuncTable tbody tr:nth-child(2n){ + background: #f5f8fd !important; +} +/*弹窗*/ +.role_alert_con{ + display: none; +} +.role_alert_con{ + width:380px; + /*height: 512px;*/ + left:50%; + top:50%; + margin-left: -190px; + /*margin-top: -256px;*/ + transform: translateY(-50%); + background: #fff; +} +.role_alert_con_t{ + line-height: 60px; + height: 60px; + padding: 0 15px 0 24px; + border-bottom: 1px solid #EFEFEF; + +} +.role_alert_error{ + height: 20px; + line-height: 20px; + /*background-color: #fddbdb;*/ + color: red; + font-size: 12px; + text-align: center; +} +.role_alert_btn { + text-align: center; + margin-top: 16px; + margin-bottom: 24px; + height: 60px; +} +.role_alert_btn span{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} +.table_wrap1{ + height: calc(100% - 56px); + height: -webkit-calc(100% - 56px); + height: -moz-calc(100% - 56px); + height: -o-calc(100% - 56px); + height: -ms-calc(100% - 56px); +} + +.departmentAlert{ + display: none; + width: 100%; + height: 100%; + position: fixed; + z-index: 100001; +} + +.treeview-checkable_jobFunc{ + /* background: #fff; + width: 340px; + height: 390px; + overflow-y: auto; + overflow-x: auto;*/ + background: #fff; + width: 365px; + height: 375px; + overflow: auto; + padding-left: 24px; +} + +.ztree li span.button.chk.checkbox_false_full { + background-position: -5px -5px; +} +.marr10{ + margin-right: 10px; +} +/*分配角色内容*/ +.allRoler{ + width: 100%; + height: 375px; + padding-top: 20px; +} +.roler-conten{ + width: 38%; + height: 100%; + float: left; + cursor: pointer; + border: 1px solid #d8e2e5; + margin-left: 2%; + overflow: auto; +} +.roler-mes-active{ + background: #e1e4e6; +} +.roler-conten-opt li{ + margin-bottom: 20px; + height: 35px; + line-height: 35px; + background: #1E95CD; + text-align: center; + border-radius: 20px !important; + color: #fff; +} +.roler-conten-opt{ + width: 16%; + float: left; + cursor: pointer; + margin-left: 2%; + padding-top: 40px; +} + +.allRoler .addroler-content{ + width: 38%; + height: 100%; + float: right; + cursor: pointer; + border: 1px solid #d8e2e5; + margin-right: 2%; + overflow: auto; + /*padding-left: 10px;*/ +} +.marl25{ + margin-left: 25%; +} +.allRoler .roler-conten li,.allRoler .addroler-content li{ + width: 100%; + height: 30px; + line-height: 30px; + font-size: 14px; + white-space :nowrap; + text-indent: 8px; +} +.departmentrolerAlert{ + display: none; + width: 100%; + height: 100%; + position: fixed; + z-index: 100001; +} +.departmentAlert_t,.departmentrolerAlert_t{ + line-height: 60px; + height: 60px; + padding: 0 15px 0 24px; + border-bottom: 1px solid #EFEFEF; +} + +.departmentAlert_b,.departmentrolerAlert_b{ + text-align: center; + margin-top: 16px; + margin-bottom: 24px; + height: 60px; +} + +.departmentrolerAlert_btn,.departmentAlert_btn{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} +.departmentrolercancel_btn,.departmentAlertcancel_btn{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} +.roler-checkable-con{ + width:712px; + height: 500px; + left:50%; + top:50%; + margin-left: -356px; + margin-top:-250px; + background: #fff; + position: relative; +} +.treeview-checkable-con{ + background: #fff; + width: 380px; + height: 500px; + position: relative; + left: 50%; + top: 50%; + margin-left: -190px; + margin-top: -250px; +} +#treeview-checkable{ + background: #fff; + width:350px; + height: 400px; + overflow-y: scroll; + overflow-x: scroll; +} +#treeview-checkable .list-group{ + margin-bottom: 0; +} +/*职能搜索区域*/ +.role_r_search_con { + height: 60px; + padding: 13px 12px; + background: #f5f8fd; + margin-top: 20px; +} +.role_r_search_con li{ + float: left; + margin-right: 15px; +} +.role_r_search_con .select_search_btn { + margin-left: 10px; + padding-left: 20px; + padding-right: 20px; + border-radius: 20px !important; + cursor: pointer; + color: #fff; + font-size: 14px; + text-align: center; + background: #32c5d2; +} +.user_input { + width: 160px; + height: 34px; + line-height: 34px; + border: 1px solid #c2cad8; + padding-left: 8px; +} +.f14 { + font-size: 14px; +} +.user_r_search_con .select_search_btn { + margin-left: 10px; + padding-left: 20px; + padding-right: 20px; + border-radius: 20px !important; + cursor: pointer; + color: #fff; + font-size: 14px; + text-align: center; + background: #32c5d2; +} +.user_r_con { + height: 100%; + /* width: 100%; */ + margin: 20px 0 12px 16px; +} +td{ + white-space:nowrap !important; +} diff --git a/assets/syspages/js/rbac/css/orgarearelation.css b/assets/syspages/js/rbac/css/orgarearelation.css new file mode 100644 index 0000000..bb86c93 --- /dev/null +++ b/assets/syspages/js/rbac/css/orgarearelation.css @@ -0,0 +1,397 @@ +/*页面公用*/ +/*组织添加修改样式*/ +.role_alert_con{ + display: none; +} +.role_alert_con{ + width:380px; + /*height: 512px;*/ + left:50%; + top:50%; + margin-left: -190px; + /*margin-top: -256px;*/ + transform: translateY(-50%); + background: #fff; +} +.role_alert_con_t{ + border-top:2px solid #32c5d2; + height: 40px; + line-height: 40px; + padding:0 16px; + font-weight: 500; + color:#424242; +} +.role_alert_con_t img{ + cursor: pointer; + margin-top: 14px; +} +.role_alert_error{ + height: 36px; + line-height: 36px; + color:#d4333f; + font-size: 12px; +} +.role_alert_feed{ + padding-left:16px; + margin-bottom: 8px; +} +.role_alert_feed_l{ + display: inline-block; + width:82px; + text-align: right; + margin-right: 12px; +} +.role_alert_feed_l em{ + color: #d4333f; + margin-right: 8px; + vertical-align: middle; +} +.role_alert_feed input{ + width:244px; + height: 26px; + border: 1px solid #e1e4e6; + padding-left: 8px; + color:#676869; +} +.role_alert_feed textarea{ + width: 244px; + height: 66px; + border: 1px solid #e1e4e6; + vertical-align: top; + color:#676869; + padding-left: 8px; +} +.role_alert_btn{ + padding-right: 26px; + text-align: right; + margin-top: 16px; + padding-bottom: 24px; +} +.role_alert_btn span{ + cursor: pointer; + display: inline-block; + width: 78px; + height: 30px; + border-radius: 2px; + line-height: 30px; + text-align: center; +} +.role_alert_btn span:nth-of-type(2){ + background: #fff; + border:1px solid #e1e4e6; +} +.role_alert_btn span:nth-of-type(1){ + background: #32c5d2; + border:1px solid #32c5d2; + color: #fff; +} +/*右侧对应样式*/ + +.col-mid-3{ + width:35%; + margin-right: 2%; +} +.col-mid-8{ + width:50%; +} +.col-mid-3,.col-mid-8{ + border: 1px solid #e7ecf1 !important; +} +.org_tree{ + height: calc(100% - 70px); + height: -webkit-calc(100% - 70px); + height: -moz-calc(100% - 70px); + height: -o-calc(100% - 70px); + height: -ms-calc(100% - 70px); +} + +.row .mainright_l{ + height: calc(100% - 70px); + height: -webkit-calc(100% - 70px); + height: -moz-calc(100% - 70px); + height: -o-calc(100% - 70px); + height: -ms-calc(100% - 70px); + position: absolute; +} +.marginright_l_t{ + padding-right: 16px; + height: 56px; + line-height: 56px; + color:#5ba1eb; + padding-left: 36px; + background: url('../img/arrow_down_red.png') no-repeat 10px center; +} + +.page-content{ + position: relative; +} +.mainright_r{ + height: calc(100% - 70px); + height: -webkit-calc(100% - 70px); + height: -moz-calc(100% - 70px); + height: -o-calc(100% - 70px); + height: -ms-calc(100% - 70px); + position: absolute; + left: 40%; + /*top:5%;*/ + /*padding: 20px;*/ +} +.btn-group, .btn-group-vertical{ + position: absolute !important; + right: 20px; +} + +/*.org_ok{ + display: block ; + float: right !important; + border: 1px solid #e7505a; + padding: 5px 10px; + cursor: pointer; + border-radius: 20px !important; + background: #e7505a; + color: #fff; +}*/ +.user_operate_list{ + margin-bottom: 20px; + height: 45px; + padding-bottom: 6px; + border-bottom: 1px solid #e7ecf1; +} +.user_operate_list li{ + height: 45px; + line-height: 45px; + border:1px solid #e7ecf1; + border-bottom: none; + cursor: pointer; +} +.user_operate_list li:last-of-type{ + border-left: none; +} +.user_operate_list li span{ + padding:0 5px; + font-weight: 500; + font-size: 16px; +} +.liactive{ + color: #fff; + background: #e7505a; +} +.add_user { + background: #fff url(../img/add_icon.png) no-repeat 8px center; +} +.user_operate_s { + padding: 7px 8px; + cursor: pointer; + margin-left: 16px; + border-radius: 20px; + background: #e7505a; + color: #fff; + display: none; +} +.orgName{ + width: 160px !important; +} +.addOrgname{ + height: 26px; + line-height: 26px; + width: 80px; + float: right; + margin-right: 28px; + border: 1px solid #e7505a; + text-align: center; + background: #e7505a; + color: #fff; + cursor: pointer; + border-radius: 12px; +} +#treeview1{ + height: calc(100% - 56px); + overflow-x: scroll; + overflow-y: scroll; +} +.mainright_l .list-group .list-group-item { + /*text-overflow: ellipsis;*/ + /*overflow: hidden;*/ + background-color: #f1f5f8; + border:0; + white-space: nowrap; +} +/*.bootstrap-table { + height: calc(100% - 56px); + height: -webkit-calc(100% - 56px); + height: -moz-calc(100% - 56px); + height: -o-calc(100% - 56px); + height: -ms-calc(100% - 56px); +}*/ +.parent_business{ + width: 254px; + display: inline-block; + vertical-align: top; +} +.role_alert_feed .diy_select{ + height: 28px; + line-height: 28px; + display: inline-block; + vertical-align: middle; + width: 252px; +} + +.role_alert_feed .diy_select_txt { + width:223px; +} +.ztree{ + /*overflow-x: auto;*/ + padding: 10px 0; + height: 100%; + max-height: 780px; +} +#orgTable tr td .operate_btn_color:first-child{ + padding: 4px 6px; + background: #3fc9d5; + margin-right: 3px; + color: #fff; +} +#orgTable tr td .operate_btn_color:last-child{ + padding: 4px 6px; + background: #659be0; + margin-right: 3px; + color: #fff; +} +.fixed-table-container{ + border-bottom: none !important; + border-radius: 0 !important; +} +/*员工table*/ +.person-cont{ + width:100%; + display: none; +} +.personTable{ + width:100%; +} +.personTable tr td .operate_btn_color:first-child{ + padding: 4px 6px; + background: #3fc9d5; + margin-right: 3px; + color: #fff; +} +.personTable tr td .operate_btn_color:last-child{ + padding: 4px 6px; + background: #659be0; + margin-right: 3px; + color: #fff; +} +.oper-levels{ + width: 244px; + height: 26px; + border: 1px solid #e1e4e6; + padding-left: 8px; + margin-left: -3px; + color: #676869; +} +/*添加组织二级弹窗*/ +.addOrg_alert_con{ + width: 600px; + height: auto; + left: 50%; + top: 50%; + margin-left: -300px; + /* margin-top: -256px; */ + transform: translateY(-50%); + background: #fff; + position: relative; +} +.addOrg_alert_con .role_alert_con_t { + border-top: 2px solid #32c5d2; + height: 40px; + line-height: 40px; + padding: 0 16px; + font-weight: 500; + color: #424242; +} +.addOrg_alert_con .role_alert_con_t img { + cursor: pointer; + margin-top: 14px; +} +.park_r_search_con{ + height: 100px; + width: 100%; + padding:0 12px; +} +.park_r_search_con >li { + float: left; + margin-right: 60px; + height:50px; + line-height: 50px; +} + +.park_r_search_con .user_input{ + width: 160px; + height: 30px; + line-height: 30px; + border: 1px solid #c2cad8; + padding-left: 8px; + margin-left: 5px; +} +.park_r_search_con .selectpark_search_btn { + margin-left: 5px; + margin-top: 10px; + width: 50px; + height: 30px; + line-height: 30px; + border-radius: 20px !important; + cursor: pointer; + color: #fff; + font-size: 14px; + text-align: center; + background: #32c5d2; +} +.addOrg_alert_con .parktable-wrap{ + height: calc(100% - 185px); + height: -webkit-calc(100% - 185px); + height: -moz-calc(100% - 185px); + height: -mos-calc(100% - 185px); + height: -o-calc(100% - 185px); + width: 560px; + margin-left: 20px; +} + +.addOrg_alert_con .parkpop-foot{ + height: 40px; + width: 100%; + margin-top: 5px; +} +.savePark{ + cursor: pointer; + width: 78px; + height: 30px; + border-radius: 2px; + line-height: 26px; + text-align: center; + margin-right:10px; + float: right; + background: #32c5d2; + border: 1px solid #32c5d2; + color: #fff; +} +.cancelPark{ + cursor: pointer; + width: 78px; + height: 30px; + border-radius: 2px; + line-height: 26px; + text-align: center; + margin-right: 20px; + float: right; + background: #fff; + border: 1px solid #e1e4e6; +} +.fixed-table-loading { + border-bottom: 1px solid #ddd; +} +.pull-left { + display: none; +} +td{ + white-space:nowrap !important; +} diff --git a/assets/syspages/js/rbac/css/roleManage.css b/assets/syspages/js/rbac/css/roleManage.css new file mode 100644 index 0000000..fee5a75 --- /dev/null +++ b/assets/syspages/js/rbac/css/roleManage.css @@ -0,0 +1,336 @@ +/*页面公用*/ +.data_title_l { + display: inline-block; + margin-left: 10px; +} +.select_search_btn{ + margin-left: 15px; + padding-left: 20px; + padding-right: 20px; + border-radius: 20px !important; +} +/*main_right对应样式*/ +.rolemanage-parkinput78{ + width: 78%; + height: 34px; + line-height: 34px; +} +.main_right_con{ + margin:0 0 0 16px; + height: 100%; +} +.user_operate_list{ + margin: 12px 0; + height: 32px; + line-height: 32px; +} +.user_operate_list li .icon-user{ + color: #e7505a; +} +.user_operate_list li:nth-of-type(1) span{ + padding-left: 4px; + font-weight: 600; + color: #e7505a; + font-size: 16px; +} +.user_operate_s{ + padding: 7px 8px; + cursor: pointer; + margin-left: 16px; + border-radius: 20px !important; + background: #e7505a; + color: #fff; +} +#roletable tr td .operate_btn_color:first-child{ + padding: 4px 6px; + background: #3fc9d5; + margin-right: 3px; + color: #fff; +} +#roletable tr td .operate_btn_color:last-child { + padding: 4px 6px; + background: #659be0; + margin-right: 3px; + color: #fff; +} +/*.add_user{ + background: #fff url("../img/add_icon.png") no-repeat 8px center; +}*/ +/*.del_user{*/ + /*background: #fff url("../img/del_icon.png") no-repeat 8px center;*/ +/*}*/ +/*table样式*/ +.table_wrap{ + background: #ff0000; + height: calc(100% - 80px); + height: -webkit-calc(100% - 80px); + height: -moz-calc(100% - 80px); + height: -o-calc(100% - 80px); + height: -ms-calc(100% - 80px); + min-height: 524px; +} + +/*分页部分样式*/ +.user_page_l{ + height: 24px; + line-height: 24px; +} +.user_page_l span{ + padding: 0 5px; + display: inline-block; + border:1px solid #e1e4e6; + cursor: pointer; +} +.pageActice{ + color:#fff; + background: #202326; +} +/*角色添加修改样式*/ +.role_alert_con{ + display: none; +} +.role_alert_con{ + width:380px; + /*height: 512px;*/ + left:50%; + top:50%; + margin-left: -190px; + /*margin-top: -256px;*/ + transform: translateY(-50%); + background: #fff; +} +.role_alert_con_t{ + line-height: 60px; + height: 60px; + padding: 0 15px 0 24px; + border-bottom: 1px solid #EFEFEF; + +} +.role_alert_error{ + height: 20px; + line-height: 20px; + /*background-color: #fddbdb;*/ + color: red; + font-size: 12px; + text-align: center; +} +.role_alert_btn { + text-align: center; + margin-top: 16px; + margin-bottom: 24px; + height: 60px; +} +.role_alert_btn span{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} +.table_wrap1{ + height:calc(100% - 70px) ; + height:-webkit-calc(100% - 70px) ; + height:-moz-calc(100% - 70px) ; + height:-mos-calc(100% - 70px) ; + height:-o-calc(100% - 70px) ; +} +.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) { + width: 254px; +} +.fixed-table-container{ + height: calc(100% - 36px); + height: -webkit-calc(100% - 36px); + height: -mos-calc(100% - 36px); + height: -moz-calc(100% - 36px); + height: -o-calc(100% - 36px); +} +.multiselect-container input{ + opacity: 0; +} + +.multiselect-container{ + width:244px; +} +.multiselect { + width: 244px; + margin-left: -3px; +} +.role_r_search_con { + height: 60px; + padding: 13px 12px; + background: #f5f8fd; + margin-top: 20px; +} +.role_r_search_con li{ + float: left; + margin-right: 15px; +} + +.user_input { + width: 160px; + height: 34px; + line-height: 34px; + border: 1px solid #c2cad8; + padding-left: 8px; +} +.f14 { + font-size: 14px; +} + +.user_r_con { + height: 100%; + /* width: 100%; */ + margin: 20px 0 12px 16px; +} +ul, li { + list-style: none; +} +td{ + white-space:nowrap !important; +} + +.role-pop-panel-wid50{ + height: 34px; + line-height: 34px; + width: 50%; + text-align: center; + display: inline-block; + float: left; +} + +/*分配角色内容*/ +.allRoler{ + width: 100%; + height: 375px; + padding-top: 20px; +} +.roler-conten{ + width: 38%; + height: 100%; + float: left; + cursor: pointer; + border: 1px solid #d8e2e5; + margin-left: 2%; + overflow: auto; +} +.roler-mes-active{ + background: #e1e4e6; +} +.roler-conten-opt li{ + margin-bottom: 20px; + height: 35px; + line-height: 35px; + background: #1E95CD; + text-align: center; + border-radius: 20px !important; + color: #fff; +} +.roler-conten-opt{ + width: 16%; + float: left; + cursor: pointer; + margin-left: 2%; + padding-top: 40px; +} + +.allRoler .addroler-content{ + width: 38%; + height: 100%; + float: right; + cursor: pointer; + border: 1px solid #d8e2e5; + margin-right: 2%; + overflow: auto; + /*padding-left: 10px;*/ +} +.marl25{ + margin-left: 25%; +} +.allRoler .roler-conten li,.allRoler .addroler-content li{ + width: 100%; + height: 30px; + line-height: 30px; + font-size: 14px; + white-space :nowrap; + text-indent: 8px; +} +.departmentrolerAlert{ + display: none; + width: 100%; + height: 100%; + position: fixed; + z-index: 100001; +} +.departmentAlert_t,.departmentrolerAlert_t{ + line-height: 60px; + height: 60px; + padding: 0 15px 0 24px; + border-bottom: 1px solid #EFEFEF; +} + +.departmentAlert_b,.departmentrolerAlert_b{ + text-align: center; + margin-top: 16px; + margin-bottom: 24px; + height: 60px; +} + +.departmentrolerAlert_btn,.departmentAlert_btn{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} +.departmentrolercancel_btn,.departmentAlertcancel_btn{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} +.roler-checkable-con{ + width:712px; + height: 500px; + left:50%; + top:50%; + margin-left: -356px; + margin-top:-250px; + background: #fff; + position: relative; +} +.treeview-checkable-con{ + background: #fff; + width: 380px; + height: 500px; + position: relative; + left: 50%; + top: 50%; + margin-left: -190px; + margin-top: -250px; +} +#treeview-checkable{ + background: #fff; + width:350px; + height: 400px; + overflow-y: scroll; + overflow-x: scroll; +} +#treeview-checkable .list-group{ + margin-bottom: 0; +} \ No newline at end of file diff --git a/assets/syspages/js/rbac/css/userManage.css b/assets/syspages/js/rbac/css/userManage.css new file mode 100644 index 0000000..e2b7970 --- /dev/null +++ b/assets/syspages/js/rbac/css/userManage.css @@ -0,0 +1,398 @@ +/*页面公用*/ +.data_title_l { + display: inline-block; + margin-left: 10px; +} +.select_search_btn{ + margin-left: 15px; + padding-left: 20px; + padding-right: 20px; + border-radius: 20px !important; +} +/*右侧搜索样式*/ +.usermanage-parkinput78 { + width: 78%; + height: 34px; + line-height: 34px; +} + +/*右侧table样式*/ +.user_r_table_c{ + min-height: 400px; + height: calc(100% - 88px); + height: -webkit-calc(100% - 88px); + height: -moz-calc(100% - 88px); + height: -o-calc(100% - 88px); + height: -ms-calc(100% - 88px); + overflow-y: scroll; +} +.operate_btn_color:first-of-type{ + padding: 4px 6px; + background: #3fc9d5; + margin-right: 3px; +} +.operate_btn_color:nth-of-type(2){ + padding: 4px 6px; + background: #f1c40f; + margin-right: 3px; +} +.operate_btn_color:nth-of-type(3){ + padding: 4px 6px; + background: #659be0; + margin-right: 3px; +} +/*右侧分页样式*/ +.user_r_page_c{ + height: 24px; + background: #32c5d2; +} + +.user_operate_list { + margin: 12px 0 12px 12px; + height: 32px; + line-height: 32px; +} +.user_operate_list li .icon-user{ + color: #e7505a; +} +.user_operate_list li:nth-of-type(1) span { + padding-left: 4px; + font-weight: 600; + color: #e7505a; + font-size: 16px; +} +.user_operate_s { + padding: 7px 8px; + cursor: pointer; + margin-left: 16px; + border-radius: 20px !important; + background: #e7505a; + color: #fff; +} + + +.table-striped .datepicker table tr td, +.table-striped .datepicker table tr th { + background-color: transparent; } +.table_wrap1{ + height:calc(100% - 112px) ; + height:-webkit-calc(100% - 112px) ; + height:-moz-calc(100% - 112px) ; + height:-mos-calc(100% - 112px) ; + height:-o-calc(100% - 112px) ; +} +/*弹窗样式*/ +.role_alert_con{ + display: none; +} +.role_alert_con{ + width:712px; + /*height: 512px;*/ + left:50%; + top:50%; + margin-left: -356px; + /*margin-top: -256px;*/ + transform: translateY(-50%); + background: #fff; +} +.role_alert_con_t{ + line-height: 60px; + height: 60px; + padding: 0 15px 0 24px; + border-bottom: 1px solid #EFEFEF; + +} +.role_alert_error{ + height: 20px; + line-height: 20px; + /*background-color: #fddbdb;*/ + color: red; + font-size: 12px; + text-align: center; +} +.role_alert_feed{ + /*padding-left:16px;*/ + /*margin-bottom: 8px;*/ + height: 35px; + line-height: 35px; +} +.role_alert_feed_l{ + display: inline-block; + width:82px; + text-align: right; + margin-right: 12px; +} +em{ + color: #d4333f; + margin-right: 8px; + vertical-align: middle; +} +.role_alert_feed input{ + width:244px; + height: 26px; + border: 1px solid #e1e4e6; + padding-left: 8px; + color:#676869; +} +.role_alert_feed textarea{ + width: 244px; + height: 66px; + border: 1px solid #e1e4e6; + vertical-align: top; + color:#676869; + padding-left: 8px; +} +.role_alert_btn{ + text-align: center; + margin-top: 16px; + margin-bottom: 24px; + height: 60px; +} +.role_alert_btn span{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} +#choice_input_con{ + width:161px; +} +#choice_btn{ + cursor: pointer; + display: inline-block; + background: #32c5d2; + height: 28px; + line-height: 28px; + color: #fff; + width: 80px; + text-align: center; + border-radius: 2px; +} +.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) { + width: 254px; +} +.departmentAlert,.departmentrolerAlert{ + display: none; + width: 100%; + height: 100%; + position: fixed; + z-index: 100001; + } +.roler-checkable-con{ + width:712px; + height: 500px; + left:50%; + top:50%; + margin-left: -356px; + margin-top:-250px; + background: #fff; + position: relative; +} +.treeview-checkable-con{ + background: #fff; + width:380px; + height: 500px; + position: relative; + left:50%; + top:50%; + margin-left: -190px; + margin-top:-250px; +} +#treeview-checkable{ + background: #fff; + width:350px; + height: 400px; + overflow-y: scroll; + overflow-x: scroll; +} +#treeview-checkable .list-group{ + margin-bottom: 0; +} +.departmentAlert_t,.departmentrolerAlert_t{ + line-height: 60px; + height: 60px; + padding: 0 15px 0 24px; + border-bottom: 1px solid #EFEFEF; +} +/*.departmentAlert_t span,.departmentrolerAlert_t span{ + padding-left: 16px; +}*/ +/*.departmentAlert_t img,.departmentrolerAlert_t img{ + margin-right:16px; + margin-top: 16px; +}*/ + +.departmentAlert_b,.departmentrolerAlert_b{ + text-align: center; + margin-top: 16px; + margin-bottom: 24px; + height: 60px; +} + +.departmentAlert_btn,.departmentrolerAlert_btn{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} +.departmentrolercancel_btn,.departmentAlertcancel_btn{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} +/*角色*/ +.allRoler{ + width: 100%; + height: 375px; + padding-top: 20px; +} +.roler-conten{ + width: 38%; + height: 100%; + float: left; + cursor: pointer; + border: 1px solid #d8e2e5; + margin-left: 2%; + overflow: auto; + /*padding-left: 10px;*/ +} +.roler-mes-active{ + background: #e1e4e6; +} +.roler-conten-opt li{ + margin-bottom: 20px; + height: 35px; + line-height: 35px; + background: #1E95CD; + text-align: center; + border-radius: 20px !important; + color: #fff; +} +.roler-conten-opt{ + width: 16%; + float: left; + cursor: pointer; + margin-left: 2%; + padding-top: 40px; +} +.allRoler .addroler-content{ + width: 38%; + height: 100%; + float: right; + cursor: pointer; + border: 1px solid #d8e2e5; + margin-right: 2%; + overflow: auto; + /*padding-left: 10px;*/ +} +.marl25{ + margin-left: 25%; +} +.allRoler .roler-conten li,.allRoler .addroler-content li{ + width: 100%; + height: 30px; + line-height: 30px; + font-size: 14px; + white-space :nowrap; + text-indent: 8px; +} +.reset_pwd_div{ + line-height: 28px; + height: 28px; + margin-bottom: 8px; +} +.reset_pwd_div:nth-child(1) { + color:#32c5d2; + margin-top: 18px; +} +.reset_pwd_div:nth-child(3) { + margin-bottom: 28px; +} +.reset_pwd_r{ + width:252px; + padding-left: 8px; + height: 26px; + line-height: 26px; + border:1px solid #e1e4e6; +} +.reset_pwd_l{ + width:83px; + display: inline-block; +} +.diy_select_sex{ + width: 180px; + display: inline-block; + vertical-align: middle; +} +.select-text_sex{ + width: 180px; +} +.diy_select_txt_sex{ + width: 145px; +} +.treeview-checkable_org{ + background: #fff; + width: 365px; + height: 375px; + overflow: auto; + padding-left: 24px; +} +.fixed-table-container{ + height: calc(100% - 42px); + height: -webkit-calc(100% - 42px); + height: -mos-calc(100% - 42px); + height: -moz-calc(100% - 42px); + height: -o-calc(100% - 42px); +} +#example-getting-con .multiselect-container input{ + opacity: 0; +} + .multiselect-container{ + width:250px; +} + +#example-getting-con .multiselect { + width: 244px; + margin-left: -3px; +} +td{ + white-space:nowrap !important; +} +.popOk{ + margin-left: 15px; +} +.vipcardrule-daterange-bg { + width: 180px; + text-align: left; + background: url(../../../../pages/img/dataicon.png) no-repeat 150px 9px; + background-color: #fff; +} +/* +td a:first-of-type{ + color: #32c5d2; +} +td a:nth-of-type(2){ + color: red; +} +td a:last-of-type{ + color:black; +}*/ diff --git a/assets/syspages/js/rbac/css/userManage.cssbak b/assets/syspages/js/rbac/css/userManage.cssbak new file mode 100644 index 0000000..b63c053 --- /dev/null +++ b/assets/syspages/js/rbac/css/userManage.cssbak @@ -0,0 +1,392 @@ +/*页面公用*/ +.data_title_l { + display: inline-block; + margin-left: 10px; +} +.select_search_btn{ + margin-left: 15px; + padding-left: 20px; + padding-right: 20px; + border-radius: 20px !important; +} +/*右侧搜索样式*/ +.usermanage-parkinput78 { + width: 78%; + height: 34px; + line-height: 34px; +} + +/*右侧table样式*/ +.user_r_table_c{ + min-height: 400px; + height: calc(100% - 88px); + height: -webkit-calc(100% - 88px); + height: -moz-calc(100% - 88px); + height: -o-calc(100% - 88px); + height: -ms-calc(100% - 88px); + overflow-y: scroll; +} +.operate_btn_color:first-of-type{ + padding: 4px 6px; + background: #3fc9d5; + margin-right: 3px; +} +.operate_btn_color:nth-of-type(2){ + padding: 4px 6px; + background: #f1c40f; + margin-right: 3px; +} +.operate_btn_color:nth-of-type(3){ + padding: 4px 6px; + background: #659be0; + margin-right: 3px; +} +/*右侧分页样式*/ +.user_r_page_c{ + height: 24px; + background: #32c5d2; +} + +.user_operate_list { + margin: 12px 0 12px 12px; + height: 32px; + line-height: 32px; +} +.user_operate_list li .icon-user{ + color: #e7505a; +} +.user_operate_list li:nth-of-type(1) span { + padding-left: 4px; + font-weight: 600; + color: #e7505a; + font-size: 16px; +} +.user_operate_s { + padding: 7px 8px; + cursor: pointer; + margin-left: 16px; + border-radius: 20px !important; + background: #e7505a; + color: #fff; +} + + +.table-striped .datepicker table tr td, +.table-striped .datepicker table tr th { + background-color: transparent; } +.table_wrap1{ + height:calc(100% - 112px) ; + height:-webkit-calc(100% - 112px) ; + height:-moz-calc(100% - 112px) ; + height:-mos-calc(100% - 112px) ; + height:-o-calc(100% - 112px) ; +} +/*弹窗样式*/ +.role_alert_con{ + display: none; +} +.role_alert_con{ + width:712px; + /*height: 512px;*/ + left:50%; + top:50%; + margin-left: -356px; + /*margin-top: -256px;*/ + transform: translateY(-50%); + background: #fff; +} +.role_alert_con_t{ + line-height: 60px; + height: 60px; + padding: 0 15px 0 24px; + border-bottom: 1px solid #EFEFEF; + +} +.role_alert_error{ + height: 20px; + line-height: 20px; + /*background-color: #fddbdb;*/ + color: red; + font-size: 12px; + text-align: center; +} +.role_alert_feed{ + /*padding-left:16px;*/ + /*margin-bottom: 8px;*/ + height: 35px; + line-height: 35px; +} +.role_alert_feed_l{ + display: inline-block; + width:82px; + text-align: right; + margin-right: 12px; +} +em{ + color: #d4333f; + margin-right: 8px; + vertical-align: middle; +} +.role_alert_feed input{ + width:244px; + height: 26px; + border: 1px solid #e1e4e6; + padding-left: 8px; + color:#676869; +} +.role_alert_feed textarea{ + width: 244px; + height: 66px; + border: 1px solid #e1e4e6; + vertical-align: top; + color:#676869; + padding-left: 8px; +} +.role_alert_btn{ + text-align: center; + margin-top: 16px; + margin-bottom: 24px; + height: 60px; +} +.role_alert_btn span{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} +#choice_input_con{ + width:161px; +} +#choice_btn{ + cursor: pointer; + display: inline-block; + background: #32c5d2; + height: 28px; + line-height: 28px; + color: #fff; + width: 80px; + text-align: center; + border-radius: 2px; +} +.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) { + width: 254px; +} +.departmentAlert,.departmentrolerAlert{ + display: none; + width: 100%; + height: 100%; + position: fixed; + z-index: 100001; + } +.roler-checkable-con{ + width:712px; + height: 500px; + left:50%; + top:50%; + margin-left: -356px; + margin-top:-250px; + background: #fff; + position: relative; +} +.treeview-checkable-con{ + background: #fff; + width:380px; + height: 500px; + position: relative; + left:50%; + top:50%; + margin-left: -190px; + margin-top:-250px; +} +#treeview-checkable{ + background: #fff; + width:350px; + height: 400px; + overflow-y: scroll; + overflow-x: scroll; +} +#treeview-checkable .list-group{ + margin-bottom: 0; +} +.departmentAlert_t,.departmentrolerAlert_t{ + line-height: 60px; + height: 60px; + padding: 0 15px 0 24px; + border-bottom: 1px solid #EFEFEF; +} +/*.departmentAlert_t span,.departmentrolerAlert_t span{ + padding-left: 16px; +}*/ +/*.departmentAlert_t img,.departmentrolerAlert_t img{ + margin-right:16px; + margin-top: 16px; +}*/ + +.departmentAlert_b,.departmentrolerAlert_b{ + text-align: center; + margin-top: 16px; + margin-bottom: 24px; + height: 60px; +} + +.departmentAlert_btn,.departmentrolerAlert_btn{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} +.departmentrolercancel_btn,.departmentAlertcancel_btn{ + border-radius: 4px!important; + cursor: pointer; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; + margin-left: 5px; +} +/*角色*/ +.allRoler{ + width: 100%; + height: 375px; + padding-top: 20px; +} +.roler-conten{ + width: 38%; + height: 100%; + float: left; + cursor: pointer; + border: 1px solid #d8e2e5; + margin-left: 2%; + overflow: auto; + /*padding-left: 10px;*/ +} +.roler-mes-active{ + background: #e1e4e6; +} +.roler-conten-opt li{ + margin-bottom: 20px; + height: 35px; + line-height: 35px; + background: #1E95CD; + text-align: center; + border-radius: 20px !important; + color: #fff; +} +.roler-conten-opt{ + width: 16%; + float: left; + cursor: pointer; + margin-left: 2%; + padding-top: 40px; +} +.allRoler .addroler-content{ + width: 38%; + height: 100%; + float: right; + cursor: pointer; + border: 1px solid #d8e2e5; + margin-right: 2%; + overflow: auto; + /*padding-left: 10px;*/ +} +.marl25{ + margin-left: 25%; +} +.allRoler .roler-conten li,.allRoler .addroler-content li{ + width: 100%; + height: 30px; + line-height: 30px; + font-size: 14px; + white-space :nowrap; + text-indent: 8px; +} +.reset_pwd_div{ + line-height: 28px; + height: 28px; + margin-bottom: 8px; +} +.reset_pwd_div:nth-child(1) { + color:#32c5d2; + margin-top: 18px; +} +.reset_pwd_div:nth-child(3) { + margin-bottom: 28px; +} +.reset_pwd_r{ + width:252px; + padding-left: 8px; + height: 26px; + line-height: 26px; + border:1px solid #e1e4e6; +} +.reset_pwd_l{ + width:83px; + display: inline-block; +} +.diy_select_sex{ + width: 180px; + display: inline-block; + vertical-align: middle; +} +.select-text_sex{ + width: 180px; +} +.diy_select_txt_sex{ + width: 145px; +} +.treeview-checkable_org{ + background: #fff; + width: 365px; + height: 375px; + overflow: auto; + padding-left: 24px; +} +.fixed-table-container{ + height: calc(100% - 42px); + height: -webkit-calc(100% - 42px); + height: -mos-calc(100% - 42px); + height: -moz-calc(100% - 42px); + height: -o-calc(100% - 42px); +} +#example-getting-con .multiselect-container input{ + opacity: 0; +} + .multiselect-container{ + width:250px; +} + +#example-getting-con .multiselect { + width: 244px; + margin-left: -3px; +} +td{ + white-space:nowrap !important; +} +.popOk{ + margin-left: 15px; +} +/* +td a:first-of-type{ + color: #32c5d2; +} +td a:nth-of-type(2){ + color: red; +} +td a:last-of-type{ + color:black; +}*/ diff --git a/assets/syspages/js/rbac/frameworkManage.js b/assets/syspages/js/rbac/frameworkManage.js new file mode 100644 index 0000000..6f85398 --- /dev/null +++ b/assets/syspages/js/rbac/frameworkManage.js @@ -0,0 +1,888 @@ +/** + * Created by mac on 17/5/10. + */ +//声明全局变量 +var sysCode=null; +var sysName=null; +var fun = { + + getSysCodeAndSysName:function(){ + sysCode=sessionStorage.getItem("sysCode"); + sysName=sessionStorage.getItem("sysName"); + //alert(sysCode+sysName); + if(sysCode == undefined || sysName ==undefined){ + swal({title:"提示",text:"获取权限失败",type:"warning",timer:3000,allowOutsideClick:true}); + } + $("#sysName").val(sysName); + //如果是企业云平台 显示添加组织按钮 + if(sysCode==sysComm.sysCode){ + $(".user_operate_s").css('display','block'); + } + + }, + + + initSelect:function(){ + var selectedNodes = Tree.getSelectedNodes(); + //父节点名称 + var selectedNode = selectedNodes[0]; + $('#parentOrgName').html(selectedNode.name); + $('#parentOrgId').val(selectedNode.id); + //给全局的组织ID赋值 + //orgId=selectedNode.id; + //alert(orgId); + + //初始化等级下拉框 + //获取选中当前节点的层数 + var getNodes=Tree.getLever(); + var level=getNodes+1; + /** + if(getNodes==0){ + //隐藏组织旁边的添加按钮 + document.getElementById("addOrgname").style.display="none"; + }else{ + //显示组织旁边的添加按钮 + document.getElementById("addOrgname").style.display="block"; + }*/ + + + + + $("#orgLevel").empty(); + //alert(level); + $('#orgLevel').append(''); + for(var i=level;i<=level;i++){ + $('#orgLevel').append(''); + } + + //初始化序号下拉框 + $('#orgLevel').val(level); + //获取选中当前节点的子节点 + var childNodes= selectedNode.children; + $("#sortNum").empty(); + var childNodesLength=1; + if(undefined != childNodes){ + childNodesLength=1+childNodes.length; + } + $('#oldSortNum').val(childNodesLength); + $('#sortNum').append(''); + for(var i=0;i<=childNodesLength;i++){ + $('#sortNum').append(''); + } + }, + + initTable:function(){ + $('#orgTable').bootstrapTable('destroy').bootstrapTable({ + striped:true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber:1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10,15,20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method:'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax:tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'id', title: 'ID', visible: false, align: 'left'}, + {field: 'parentOrgId', title: 'parentOrgId', visible: false, align: 'left',cellStyle:fun.formatTableUnit}, + {field: 'orgName', title: '组织名称', width: '25%', align: 'left',cellStyle:fun.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'parentOrgName', title: '上级组织名称', width: '25%', align: 'left',cellStyle:fun.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'sortNum', title: '排序', width: '5%', align: 'left',cellStyle:fun.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'orgDesc', title: '说明', width: '15%', align: 'left',cellStyle:fun.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'oper', title: '操作', width: '25%', align: 'left',formatter:fun.operFormatter,cellStyle:fun.formatTableUnit} + ], + formatTableUnit:function(value,row,index){ + return { + css: { + "white-space":"nowrap" + } + } + }, + formatLoadingMessage:function(){ + return "数据正在加载中..."; + }, + + }); + }, + + + initPersonTable:function(){ + $('#personTable').bootstrapTable('destroy').bootstrapTable({ + striped:true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber:1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10,15,20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method:'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax:personTableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'id', title: 'ID', visible: false, align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'remark', title: '用户描述', visible: false, align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'loginCode', title: '账号', width: '10%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'opName', title: '姓名', width: '8%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'sex', title: '性别', width: '5%', align: 'left',formatter:commonObj.sexFormatter,cellStyle:commonObj.formatTableUnit,}, + {field: 'age', title: '年龄', width: '5%', align: 'left',formatter:commonObj.replacenull,cellStyle:commonObj.formatTableUnit,}, + {field: 'telephone', title: '手机号', width: '10%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'sysCode', title: '系统名称', width: '2%', align: 'left',formatter:fun.sysCodeFormatter,cellStyle:commonObj.formatTableUnit,} + + ], + formatTableUnit:function(value,row,index){ + return { + css: { + "white-space":"nowrap" + } + } + }, + formatLoadingMessage:function(){ + return "数据正在加载中..."; + }, + + }); + }, + + + //操作显示 + operFormatter:function(value,row,index){ + var operStr ='修改'+ + '删除'; + return operStr; + }, + //添加组织 + addOrg:function(){ + $('.popMask').remove(); + $('#role_alert_error').text(''); + // $('input').val(''); + $('textarea').val(''); + $('select').val(''); + //判断是否有节点 + var nodes = Tree.getNodes(); + if(nodes.length==0){ + //无根节点,则添加为根节点 + $('#parentOrgId').val(0); + $('#parentOrg').hide(); + }else{ + $('#parentOrg').show(); + //父节点赋值 + var selectedNodes = Tree.getSelectedNodes(); + if(selectedNodes.length==0){ + var pop = new Pop({ + header:'信息提示', + content:$('请先在左侧选中父级组织!'), + buttons:[{ + type:'popOk', + text:'确定', + callback:function(){ + pop.close(); + } + }] + }); + return false; + } + + fun.initSelect(); + } + $('#alert_over').append($('#role_alert_con')); + $('#role_alert_title').html('添加组织'); + $('#alert_ok').attr('oper','save'); + $('#alert_over,#role_alert_con').show(); + }, + //checkbox 处理 + checkedFormatter:function (value,row,index) { + var checkStr=""; + return checkStr; + }, + + + //系统名 + sysCodeFormatter:function(value,row,index){ + return sysName; + }, + //关闭二级弹窗 + cancelPark:function () { + $('#addOrg_over,#addOrg_alert_con').hide(); + $('#role_alert_con,#alert_over').show(); + }, + + //修改组织 + modifyOrg:function(element){ + $('.popMask').remove(); + $('#role_alert_error').text(''); + fun.initSelect(); + //设置值 + var id = $(element).attr('data-value'); + //根据唯一值获取行数据 + var modifyRow = $('#orgTable').bootstrapTable('getRowByUniqueId', id); + $('#id').val(id); + $('#orgName').val(modifyRow.orgName); + $('#orgDesc').val(modifyRow.orgDesc); + $('#sortNum').val(modifyRow.sortNum); + $('#oldSortNum').val(modifyRow.sortNum); + //父节点名称 + $('#parentOrg').show(); + if(modifyRow.parentOrgId==null || modifyRow.parentOrgId==0){ + $('#parentOrg').hide(); + $('#parentOrgId').val(0); + }else{ + $('#parentOrgId').val(modifyRow.parentOrgId); + var node = Tree.getNodeById(modifyRow.parentOrgId); + $('#parentOrgName').html(node==null?'':node.name); + } + $('#alert_over').append($('#role_alert_con')); + $('#role_alert_title').html('修改组织'); + $('#alert_ok').attr('oper','update'); + $('#alert_over,#role_alert_con').show(); + }, + //删除角色 + deleteOrg:function(element){ + $('.popMask').remove(); + var orgName = $(element).attr('orgName'); + var id= $(element).attr('data-value'); + var node = Tree.getNodeById(id); + if(node.isParent){ + var pop = new Pop({ + header:'错误提示', + content:$('组织('+orgName+')下面有组织,不允许删除'), + buttons:[{ + type:'popOk', + text:'确定', + callback:function(){ + pop.close(); + } + }] + }); + return false; + } + + var isUsed = ''; + var content = $('确定要删除组织('+orgName+')吗?'); + var popAlert = new Pop({ + header:'信息提示', + content:content, + buttons:[{ + type:'popCancle', + text:'取消' + },{ + type:'popOk', + text:'确定', + callback:function(){ + //判断该组织是否已经被占用 + isUsedForOrgByOrgId(); + if(isUsed=='true'){ + popAlert.close(); + //*******************已被占用,是否强制删除**************** + var isUsedpopAlert = new Pop({ + header:'信息提示', + content:$('组织('+orgName+')已经被使用,是否强制删除?'), + buttons:[{ + type:'popCancle', + text:'取消' + },{ + type:'popOk', + text:'确定', + callback:function(){ + //删除组织 + realDeleteOrg(); + isUsedpopAlert.close(); + } + }] + }); + }else if(isUsed=='false'){ + //删除组织 + realDeleteOrg(); + popAlert.close(); + }else{ + console.error('无法判断该组织是否被占用,请检查入参'); + } + } + }] + }); + + //正式删除组织 + function realDeleteOrg(){ + //删除组织 + var req= { + sysCode:sysCode, + ids:[id] + }; + var easyUIOps = { + method: "post", + url: dataUrl.util.deleteOrg, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if(isError(res)){ + return false; + } + //删除树节点 + Tree.removeNode(id); + //刷新table + $('#orgTable').bootstrapTable('refresh', {silent: true}); + + //isUsedpopAlert.close(); + } + }; + sysAjax(easyUIOps); + //刷新table + $('#orgTable').bootstrapTable('refresh', {silent: true}); + + } + //判断该组织是否已经被占用 + function isUsedForOrgByOrgId(){ + var req= { + sysCode:sysCode, + id:id + }; + sysAjax({ + method: 'post', + url: dataUrl.util.isUsedForOrgByOrgId, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + async:false, + success: function (res) { + if(isError(res)){ + return false; + } + isUsed = res.data+''; + } + }); + } + + + }, + //show + show_alert:function () { + $('#alert_over').append($('#role_alert_con')); + $('#alert_over,#role_alert_con').show(); + }, + //clsoe + close_alert:function () { + $('#alert_over,#role_alert_con').hide(); + }, + //cancel + alert_cancel:function () { + $('#alert_over,#role_alert_con').hide(); + }, + //alert_ok + alert_ok:function () { + //验证参数 + fun.validateOrg(); + var errmsg = $('#role_alert_error').text(); + if(errmsg !=''){ + return false; + } + //拼接请求参数 + var url = ''; + if($('#alert_ok').attr("oper")=='save'){ + url = dataUrl.util.saveOrg; + }else if($('#alert_ok').attr("oper")=='update'){ + url = dataUrl.util.updateOrg; + } + //var jobfuncIds = $('#jobfuncIds').val(); + var empid=StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + //获取等级下拉框的值 + var orgLeveloptions = $("#orgLevel option:selected"); + //获取序号下拉框的值 + var sortNumoptions = $("#sortNum option:selected"); + + var req= { + "id": $('#id').val(), + "orgDesc": $('#orgDesc').val(), + "orgName": $('#orgName').val(), + "orgCode": $("#parkId").val(), + "shortName":$('#orgName').val(), + "empid":empid, + "orgLevel":orgLeveloptions.val(), + "sortNum":sortNumoptions.val(), + "parentOrgId":$('#parentOrgId').val(), + "oldSortNum":$('#oldSortNum').val(), + "sysCode":sysCode + }; + //console.log(req); + var easyUIOps = { + method:'POST', + url: url, + data: JSON.stringify(req), + success: function(res){ + if(isError(res)){ + return false; + } + $('#alert_over,#role_alert_con').hide(); + if($('#alert_ok').attr("oper")=='save'){//添加节点 + var node = { + name:$('#orgName').val(), + id:res.data, + pid:$('#parentOrgId').val() + }; + Tree.addNodes($('#parentOrgId').val(),node); + }else{//修改节点名称 + var node = Tree.getNodeById($('#id').val()) + node.name = $('#orgName').val(); + Tree.updateNodes(node); + } + $('#id').val(''); + $('#parentOrgId').val(''); + $('#parentOrgName').val(''); + $("#parkId").val(''); + //刷新table + $('#orgTable').bootstrapTable('refresh', {silent: true}); + } + }; + sysAjax(easyUIOps); + }, + //验证参数 + validateOrg:function(){ + var errorIfo = $('#role_alert_error'); + errorIfo.text(''); + var orgName = $('#orgName').val(); + var orgDesc = $('#orgDesc').val(); + var orgLevel = $('#org_level').val(); + + //部门名称 + if(StrUtil.isEmpty(orgName)){ + errorIfo.text('请添加组织名称'); + $('#orgName').focus() + return false; + }else{ + errorIfo.text(''); + } + //角色描述 + if(StrUtil.isEmpty(orgDesc)){ + errorIfo.text('请输入组织概述'); + $('#orgDesc').focus(); + return false; + }else{ + errorIfo.text(''); + }; + } +}; + +var treeId=10001; + var Tree = { + //初始化树 + initTree:function(){ + $.fn.zTree.init($("#tree"), Tree.setting, Tree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("tree"); + treeObj.expandAll(true); + var node = treeObj.getNodeByParam('id', treeId);//获取pId为0的点 + treeObj.selectNode(node);//选择点 + treeObj.setting.callback.onClick(null, treeObj.setting.treeId, node);//调用事件 + Tree.getNodesAndSelected(); + }, + setting:{ + callback: { + onClick: function(event, treeId, treeNode){ + //重新初始化table + fun.initTable(); + fun.initPersonTable(); + + } + }, + view: { + selectedMulti: false + }, + check: { + enable: false, + chkStyle: "radio" + }, + data: { + simpleData: { + enable: true, + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + edit: { + enable: false + + } + }, + //获取跟节点并选中 + getNodesAndSelected:function(){ + var treeObj = $.fn.zTree.getZTreeObj("tree"); + var nodes = treeObj.getNodes(); + if (nodes.length>0) { + for(var i=0;i 0) { + var level = sNodes[0].orgLevel; + return level; + } + }, + //获取树 + getTreeData:function() { + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode + }; + sysAjax({ + method:'POST', + url: dataUrl.util.getOrgTreeBySysCode(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + zNodes =res.data; + console.log(zNodes); + for(index in zNodes){ + if(0==zNodes[index].pId){ + treeId=zNodes[index].id; + } + } +// var zTree = $.fn.zTree.getZTreeObj("tree"); +// $.fn.zTree.getZTreeObj("tree");//获取ztree对象 + + } + }); + //增加一个公告根节点 +// zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } + } + /** + * 处理错误信息 + * @param {Object} res + */ + function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + var errorPop = new Pop({ + header:'错误提示', + content:$(''+res.msg+''), + buttons:[{ + type:'popOk', + text:'确定', + callback:function(){ + errorPop.close(); + } + }] + }); + return true; + }else{ + return false; + } + } + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params){ + //获取选中的树节点 + var nodes = Tree.getSelectedNodes(); + var id = ''; + var parentOrgId = ''; + if(nodes.length>0){ + var nodeId = nodes[0].id; + if(nodes[0].isParent){//如果是父节点则按照父节点查询 + parentOrgId = nodeId; + }else{ + //id = nodeId; + params.success({"total":0,"rows":[]}) + return false; + } + }else{//没有选中,默认查询第一级节点 + //var a=Tree.getNodes; + parentOrgId = 0; + } + //设置请求参数 + var pageNum = (params.data.offset/params.data.limit)+1; + var req= { + baseRequest:{ + pageNum:pageNum, + pageSize:params.data.limit + }, + sysCode:sysCode, + id:id, + parentOrgId:parentOrgId + }; + var easyUIOps = { + method: params.type, + url: dataUrl.util.getQueryOrgsPageList, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if(res.code == '8888'){ + params.success(res.data); + }else{ + + } + } + }; + sysAjax(easyUIOps); + } + +/** + * 停车场table AJAX请求 + * @param {Object} params + */ +function parkTableLoadRequest(params){ + var plProvinceId=null; + var plCityId=null; + var plName=null; + var province = $("#province option:selected"); + var city = $("#city option:selected"); + if(province.val()!=undefined){ + plProvinceId=province.val(); + } + if(city.val()!=undefined){ + plCityId=city.val(); + } + var parkName=$("#selectpark_page_role_ame").val(); + if(undefined != parkName){ + plName=parkName; + } + + //设置请求参数 + var pageNum = (params.data.offset/params.data.limit)+1; + var req= { + baseRequest:{ + pageNum:pageNum, + pageSize:params.data.limit + }, + sysCode:sysCode, + plName:plName, + plProvinceId:plProvinceId, + plCityId:plCityId + }; + var easyUIOps = { + method: params.type, + url: dataUrl.util.queryParkingLotByPark(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if(res.code == '8888'){ + params.success(res.data); + console.log(res.data); + }else{ + + } + } + }; + sysAjax(easyUIOps); +} +/** + * 用户table AJAX请求 + * @param {Object} params + */ +function personTableLoadRequest(params){ +//获取选中的树节点 + var nodes = Tree.getSelectedNodes(); + var id = ''; + var orgId = ''; + if(nodes.length>0){ + var nodeId = nodes[0].id; + //if(nodes[0].isParent){//如果是父节点则按照父节点查询 + orgId = nodeId; + //}else{ + //id = nodeId; + //params.success({"total":0,"rows":[]}) + //return false; + //} + }else{//没有选中,默认查询第一级节点 + orgId = 0; + } + //设置请求参数 + var pageNum = (params.data.offset/params.data.limit)+1; + var req= { + baseRequest:{ + pageNum:pageNum, + pageSize:params.data.limit + }, + sysCode:sysCode, + id:orgId + }; + var easyUIOps = { + method: params.type, + url: dataUrl.util.queryOpByorgIdForPage(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if(res.code == '8888'){ + params.success(res.data); + console.log(res.data); + }else{ + + } + } + }; + sysAjax(easyUIOps); +} +//全局变量 +var orgId=0; +var sysName=""; + +function init(){ + fun.getSysCodeAndSysName(); + //初始化树 + Tree.initTree(); + + //close弹窗 + $('.close_alert').on('click',function () { + fun.close_alert(); + }); + //cancel弹窗 + $('#alert_cancel').on('click',function () { + fun.close_alert(); + }); + //alert_ok弹窗 + $('#alert_ok').on('click',function () { + fun.alert_ok(); + }); + //初始化table + fun.initTable(); + //初始化员工table + fun.initPersonTable(); + + //删除角色 + documentBindFunc.on('click','[delete]',function(){ + fun.deleteOrg(this); + }); + //修改角色 + documentBindFunc.on('click','[modify]',function(){ + fun.modifyOrg(this); + }); + //添加组织 + documentBindFunc.on('click','#frameOrddevreload',function(){ + $('#orgName').val(''); + fun.addOrg(); + }); + + + //下拉框变化 + documentBindFunc.on('change','#province',function(){ + //获取省下拉框的值 + var orgLeveloptions = $("#province option:selected"); + }); + //关闭二级弹窗 + /*documentBindFunc.on('click','.user_close_alert,.cancelPark',function(){ + fun.cancelPark(); + });*/ + //tab切换 + /*$('#operateList').on('click',function () { + $('#user_operate_list #operPerson').removeClass('liactive'); + $('.person-cont').css('display','none'); + $('#user_operate_list #operateList').addClass('liactive'); + $('.org-cont').css('display','block'); + $('.user_operate_s').css('display','block'); + });*/ + + + $('#operPerson').on('click',function () { + //判断是否有节点 + var nodes = Tree.getNodes(); + if(nodes.length==0){ + //无根节点,则添加为根节点 + //需求 + /*$('#parentOrgId').val(0); + $('#parentOrg').hide();*/ + }else { + $('#parentOrg').show(); + //父节点赋值 + var selectedNodes = Tree.getSelectedNodes(); + if (selectedNodes.length == 0) { + var pop = new Pop({ + header: '信息提示', + content: $('请先在左侧选中组织!'), + buttons: [{ + type: 'popOk', + text: '确定', + callback: function () { + pop.close(); + } + }] + }); + return false; + } + + } + $('#user_operate_list #operateList').removeClass('liactive'); + $('.org-cont').css('display','none'); + $('.user_operate_s').css('display','none'); + $('#user_operate_list #operPerson').addClass('liactive'); + $('.person-cont').css('display','block'); + + fun.initPersonTable(); + + }); + var TTDiy_select = new diy_select({ //参数可选 + TTContainer: 'diy_select', //控件的class + TTDiy_select_input: 'diy_select_input', //用于提交表单的class + TTDiy_select_txt: 'diy_select_txt', //diy_select用于显示当前选中内容的容器class + TTDiy_select_btn: 'diy_select_btn', //diy_select的打开按钮 + TTDiv_select_list: 'diy_select_list', //要显示的下拉框内容列表class + TTFcous: 'focus' //得到焦点时的class + }); //如同时使用多个时请保持各class一致. + +} + +//初始执行 +init(); \ No newline at end of file diff --git a/assets/syspages/js/rbac/jobFuncManage.js b/assets/syspages/js/rbac/jobFuncManage.js new file mode 100644 index 0000000..0b0d27c --- /dev/null +++ b/assets/syspages/js/rbac/jobFuncManage.js @@ -0,0 +1,901 @@ +/** + * Created by atao on 2017/5/16. + */ + +$(function () { + var fun = { + //职能查询按钮 + queryFunJob:function(){ + //fun.initTable(); + $('#jobFuncTable').bootstrapTable('refresh', {silent: false}); + }, + /**初始化表格.*/ + initTable: function () { + $('#jobFuncTable').bootstrapTable({ + striped:true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber:1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10,15,20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method:'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + uniqueId: 'id', + ajax:jobFuncAjax, + columns: [ +// {field: 'id', title: 'ID', visible: false, align: 'left'}, + {field: 'state', title: '',width: '5%', align: 'left',formatter:fun.checkedFormat}, + {field: 'id', title: '职能ID',align: 'left',cellStyle:fun.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'jobfuncName', title: '职能名称', width: '15%', align: 'left',cellStyle:fun.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'sysCodeName', title: '系统名称', width: '10%', align: 'left',formatter:fun.getSysCodeName,cellStyle:fun.formatTableUnit}, + {field: 'createDate', title: '创建时间', width: '15%', align: 'left', formatter: commonObj.timeFormatter,cellStyle:fun.formatTableUnit}, + {field: 'createOpName', title: '创建人', width: '20%', align: 'left',cellStyle:fun.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'jobfuncDesc', title: '职能描述', width: '15%', align: 'left',cellStyle:fun.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'oper', title: '操作', width: '15%', align: 'left', formatter: fun.operFormat,cellStyle:fun.formatTableUnit} + + ], + onClickRow: function (row,$element) { + var id=row.id; + $('#jobFuncTable input:radio[data-value="'+id+'"]').attr("checked","checked"); + }, + formatTableUnit:function(value,row,index){ + return { + css: { + "white-space":"nowrap" + } + } + }, + formatNoMatches: function () { + return '暂无信息,可使用 “添加职能” 按钮为系统添加职能信息'; + } + }); + }, + operFormat:function(value, row, index) { + var operStr ='修改'+ + '删除'; + return operStr; + }, + checkedFormat:function(value,row,index) { + var checkStr=""; + return checkStr; + }, + //转换系统名称 + getSysCodeName:function(value,row,index){ + var sysName = sessionStorage.getItem("sysName"); + return sysName; + }, + //修改职能 + modifyjobfunc: function (jobfunId) { + var row = $('#jobFuncTable').bootstrapTable('getRowByUniqueId', jobfunId); + $('#role_alert_error').text(' '); + $('#jobfunId').val(jobfunId); + $('#jobfunName').val(row.jobfuncName); + $('#jobfuncDesc').val(row.jobfuncDesc); + $('#jobfunOper').val('update'); + var sysName = sessionStorage.getItem("sysName"); + $("#sysName").val(sysName); + $('#alert_over').append($('#role_alert_con')); + $('#role_alert_title').html('修改职能'); + fun.show_alert(); + + }, + //删除职能 + deleteJobfunc: function (jobfunID) { + var sysCode = sessionStorage.getItem("sysCode"); + var req = { + sysCode: sysCode, + ids: [jobfunID] + } + + var ajaxOpt = { + method: 'post', + url: dataUrl.util.deleteJobFun, + data: JSON.stringify(req), + success: function (res) { + console.log('delete:' + res) + if ('8888' === res.code) { + $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); + } + } + } + + sysAjax(ajaxOpt); + + }, + addJobfunc: function () { + var sysName = sessionStorage.getItem("sysName"); + $("#sysName").val(sysName); + $('.popMask').remove(); + $('#role_alert_error').text(' '); + $('#jobfunName').val(''); + $('#jobfuncDesc').val(''); + $('#jobfunOper').val('add'); + $('#alert_over').append($('#role_alert_con')); + $('#role_alert_title').html('添加职能'); + $('#alert_over,#role_alert_con').show(); + }, + //初始化Tree 选中的节点 + initTreeChecked: function (jobfuncid) { + $("#jobfunc_tree_id").val(jobfuncid); + var sysCode = sessionStorage.getItem("sysCode"); + var req = { + sysCode: sysCode, + jobFunId: jobfuncid + } + var ajaxOpts = { + url: dataUrl.util.queryResByJobFunId, + method: 'post', + data: JSON.stringify(req), + success: function (res) { + if ('8888' === res.code) { + Tree.updateNodesForChecked(res.data); + $('#alert_over').append($("#jobfunc_tree_view")); + $("#alert_over,#jobfunc_tree_view").show(); + } + } + } + sysAjax(ajaxOpts); + }, + //分配菜单 + operAuth: function () { + $('.popMask').remove(); + var jobFuncId = $('#jobFuncTable input:radio:checked').attr("data-value"); + var sysCode = sessionStorage.getItem("sysCode"); + var resIds = Tree.getCheckedNodesId(true); + var realResIds = []; + for (var i = 0; i < resIds.length; i++) { + if (0 === resIds[i] || -1 === resIds[i]) { + continue + } + + realResIds.push(resIds[i]); + } + var req = { + sysCode: sysCode, + jobfuncId: jobFuncId, + resIds: realResIds + } + var ajaxOpts = { + url: dataUrl.util.saveOrUpdateJobFunWithResIds, + method: 'post', + data: JSON.stringify(req), + success: function (res) { + if ('8888' === res.code) { + swal({title:"提示",text:"保存成功",type:"success",width:350,timer:3000,allowOutsideClick:true}); + //清空所有所选的节点 + Tree.checkAllNodes(false); + $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); + $("#alert_over,#jobfunc_tree_view").hide(); + }else{ + swal({title:"提示",text:"保存失败",type:"error",width:350,timer:3000,allowOutsideClick:true}); + return false; + } + } + } + sysAjax(ajaxOpts); + }, + //保存角色信息 + saveJobFunRole:function(){ + var sysCode = sessionStorage.getItem("sysCode"); + //1.获取职能id + var jobId = $('#jobFuncTable input:radio:checked').attr("data-value"); + var orgId=""; + //2.获取选择的角色ids + var sysRoleIdList = new Array(); + //查找右侧所有选择的角色id + var li =$('#addroler-content').find('li'); + $.each(li, function(index,row) { + var roleId=$(this).attr('data-value'); + orgId=$(this).attr('data-orgId'); + if(roleId != null){ + sysRoleIdList[index] = roleId; + } + }); + if(sysRoleIdList != null && sysRoleIdList.length >1){ + swal({title:"提示",text:"最多只能选择一个角色",type:"error",width:350,timer:3000,allowOutsideClick:true}); + return false; + } + + + sysRoleIdList + var req={ + "jobFunId": jobId, + "sysCode":sysCode, + "orgId":orgId, + "roleIds":sysRoleIdList, + "dataState":1 + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.batchSaveRoleJobFunByJobFunId(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.code == "8888"){ + var data=res.data; + if(data){ + $('#departmentrolerAlert,#alertroler_over').hide(); + $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); + swal({title:"提示",text:"保存成功",type:"success",width:350,timer:3000,allowOutsideClick:true}); + }else{ + swal({title:"提示",text:"保存失败,请重新添加",type:"error",width:350,timer:3000,allowOutsideClick:true}); + return false; + } + + }else{ + swal({title:"提示",text:res.msg,type:"error",width:350,timer:3000,allowOutsideClick:true}); + return false; + } + + } + }); + + }, + //角色弹窗 + departmentrolerAlert:function () { + //查询所有角色信息 + fun.departmentrolerAlert(); + }, + //分配角色 + departmentrolerAlert:function () { + //1.判断是否选中 + var isChecked= $('#jobFuncTable input:radio:checked').attr("checked"); + var jobId=""; + if(!isChecked){ + //sweetAlert("提示", "请选择一行用户记录", "warning"); + swal({title:"提示",text:"请选择一行用户记录",type:"warning",width:350,timer:3000,allowOutsideClick:true}); + return false; + }else{ + jobId = $('#jobFuncTable input:radio:checked').attr("data-value"); + } + //2.获取所有角色信息 + var sysCodeS = sessionStorage.getItem("sysCode"); + sysAjax({ + method: 'POST', + url: dataUrl.util.queryRoleBysysCode(), + data:{"sysCode":sysCodeS}, + contentType: 'application/x-www-form-urlencoded', + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.data != null){ + var data=res.data; + $('#roler-conten').empty(); //左侧 + var roles = ''; + $.each(data, function(index,row) { + roles +='
                  • '+row.roleName+'
                  • '; + }); + $('#roler-conten').html(roles); + $('#alertroler_over,#departmentrolerAlert').show(); + } + + } + }); + //通过职能ID查询当前职能对应的角色 + var req= { + funcJobId: jobId, + sysCode:sysCodeS + }; + sysAjax({ + method: 'post', + url: dataUrl.util.getRolesByJobFuncId(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.data !=null){ + var data = res.data; + $('#addroler-content').empty(); //右侧 + var roles = ''; + $.each(data, function(index,row) { + roles +='
                  • '+row.roleName+'
                  • '; + }); + $('#addroler-content').html(roles); + }else{ + swal({title:"错误提示",text:res.msg,type:"error",width:350,timer:3000,allowOutsideClick:true}); + return false; + } + } + }); + + }, + //show + show_alert: function () { + $('#alert_over').append($('#role_alert_con')); + $('#alert_over,#role_alert_con').show(); + }, + //clsoe + close_alert: function () { + $('#alert_over,#role_alert_con').hide(); + $('#jobfunc_tree_view').hide(); + Tree.checkAllNodes(false) + }, + //角色关闭 + roler_close_alert_org:function () { + // $('#example-getting-started').multiselect('select', ''); + $('#departmentrolerAlert,#alertroler_over').hide(); + }, + + //cancel + alert_cancel: function () { + $('#alert_over,#role_alert_con').hide(); + }, + alert_ok: function () { + //验证参数 + fun.validateRole(); + var errmsg = $('#role_alert_error').text(); + if (errmsg != '') { + return false; + } + fun.alert_cancel(); + + var oper = $('#jobfunOper').val(); + + var jobfunId = $("#jobfunId").val(); + var jobfuncName = $("#jobfunName").val(); + var jobfuncDesc = $("#jobfuncDesc").val(); + var sysCode = sessionStorage.getItem("sysCode"); + var req = {} + var url; + req.jobfuncName = jobfuncName; + req.jobfuncDesc = jobfuncDesc; + req.empid = StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + req.sysCode = sysCode; + if (oper === 'update') { + req.id = jobfunId; + url = dataUrl.util.updateJobFun + } else if (oper === 'add') { + url = dataUrl.util.saveJobFun; + } + var ajaxOpt = { + method: 'POST', + url: url, + data: JSON.stringify(req), + success: function (res) { + if (res.code === '8888') { + if (oper === 'add') { + $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); + popAlert.close(); + } else { + $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); + } + } + } + } + fun.close_alert(); + sysAjax(ajaxOpt) + + + }, + + validateRole: function () { + var roleVal = $('#jobfunName').val(); + var errorIfo = $('#role_alert_error'); + var roleDescription = $('#jobfuncDesc').val(); + var regular = /^([^\`\+\~\!\#\$\%\^\&\*\(\)\|\}\{\=\"\'\!\¥\……\(\)\——]*[\+\~\!\#\$\%\^\&\*\(\)\|\}\{\=\"\'\`\!\?\:\<\>\•\“\”\;\‘\‘\〈\ 〉\¥\……\(\)\——\{\}\【\】\\\/\;\:\?\《\》\。\,\、\[\]\,]+.*)$/; + + if (StrUtil.isEmpty(roleVal)) { + errorIfo.text('请填写职能名称'); + $('#jobfunName').focus() + return false; + } else if (roleVal.indexOf(' ') >= 0 || regular.test(roleVal)) { + errorIfo.text('职能名不能包含空格或者标点符号'); + $('#jobfuncDesc').focus() + return false; + } else { + errorIfo.text(''); + } + //角色描述 + if (StrUtil.isEmpty(roleDescription)) { + errorIfo.text('请输入职能描述'); + $('#jobfuncDesc').focus(); + return false; + } else { + errorIfo.text(''); + } + + }, + //根据职能ID 判断该职能是否还挂在某个角色下 + isHavsRole: function (jobfuncId) { + var sysCode = sessionStorage.getItem("sysCode"); + var row = $('#jobFuncTable').bootstrapTable('getRowByUniqueId', jobfuncId); + var req = { + sysCode: sysCode, + jobFunId: jobfuncId + } + var ajaxOps = { + method: 'post', + url: dataUrl.util.getRoleByJobFuncId, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code === '8888') { + var content; + if (jQuery.isEmptyObject(res.data)) { + swal({ + title: '提示', + text: '确定要删除?', + type: 'warning', + showCancelButton: true, + allowOutsideClick:false, + width:350, + confirmButtonText: '确定', + cancelButtonText: '关闭', + }).then(function(isConfirm) { + if (isConfirm === true) { + fun.deleteJobfunc(jobfuncId); + $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); + } else if (isConfirm === false) { + swal.close() + } + }); + } else { + swal({ + title: '提示', + text: '职能['+row.jobfuncName+']已经被占用 确定要强制删除吗?', + type: 'warning', + showCancelButton: true, + allowOutsideClick:false, + width:350, + confirmButtonText: '确定', + cancelButtonText: '关闭', + }).then(function(isConfirm) { + if (isConfirm === true) { + fun.deleteJobfunc(jobfuncId); + $('#jobFuncTable').bootstrapTable('refresh', {silent: true}); + } else if (isConfirm === false) { + swal.close() + } + }); + + } + + + } + } + } + sysAjax(ajaxOps); + } + } + + var Tree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#jobfunc_tree"), Tree.setting, Tree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); + treeObj.expandAll(true); + Tree.removeNode(-2); + }, + setting: { + callback: { + onCheck:zTreeOnCheck + }, + view: { + selectedMulti: false + }, + check: { + enable: true, + chkStyle: "checkbox" + }, + data: { + simpleData: { + enable: true, + idKey: "id", + pIdKey: "pId", + rootPId: -1 + } + }, + edit: { + enable: false + + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = Tree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node != null || node != undefined){ + node.checked = true; + Tree.updateNodes(node); + } + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); + var treeNode = Tree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = Tree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData: function () { + var sysCode = sessionStorage.getItem("sysCode"); + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode, + dataStatus:1 + }; + sysAjax({ + method: 'POST', + //url: dataUrl.util.getResTreeBySysCode(), + url: dataUrl.util.queryAllResTree(), + data: JSON.stringify(req), + dataType: 'json', + async: false, + success: function (res) { + if (isError(res)) { + return false; + } + $.each(res.data, function(index,rows) { + var data={id:rows.id,pId:rows.parentResId,name:rows.resName,resType:rows.resType}; + zNodes[index] =data; + }); + //zNodes = res.data; + } + }); + //增加一个公告根节点 + zNodes[zNodes.length] = {name: '全选', id: -1, checked: false}; + return zNodes; + } + } + + +//初始执行 + init(); + function init() { + //查询职能 + documentBindFunc.on('click','#select_job_btn',function(){ + fun.queryFunJob(); + }); + //close弹窗 + documentBindFunc.on('click','.close_alert', function () { + fun.close_alert(); + }); + + //cancel弹窗 + documentBindFunc.on('click','#alert_cancel', function () { + fun.close_alert(); + }); + //alert_ok弹窗 + documentBindFunc.on('click', '#alert_ok',function () { + fun.alert_ok(); + }); + //关闭菜单弹窗 + documentBindFunc.on('click','.departmentAlertcancel_btn',function () { + fun.close_alert(); + }); + //关闭角色弹窗 + documentBindFunc.on('click','.roler_close_alert_org',function () { + fun.roler_close_alert_org(); + }); + documentBindFunc.on('click','.departmentrolercancel_btn',function () { + fun.roler_close_alert_org(); + }); + //保存角色 + documentBindFunc.on('click','#departmentrolerAlert_btn',function () { + fun.saveJobFunRole(); + }); + //分配角色内容 + $('#roler-conten li').live('click',function () { + $(this).addClass('roler-mes-active').siblings('li').removeClass('roler-mes-active') + }); + $('#addroler-content li').live('click',function () { + $(this).addClass('roler-mes-active').siblings('li').removeClass('roler-mes-active') + }); + //添加按钮 + documentBindFunc.on('click','#add_opt',function () { + var _that = $(this); + $.each($('#roler-conten li'),function () { + + if($(this).hasClass('roler-mes-active')){ + var text = $(this).text(); + var id = $(this).attr('data-value'); + var orgId=$(this).attr('data-orgId'); + + //判断右侧是否已经存在了 + var getli = $("#addroler-content").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli, function(index,rows) { + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                  • '+text+'
                  • '; + $('#addroler-content').append(roles); + }else{ + $(this).remove(); + } + }else{ + $(this).remove(); + var roles ='
                  • '+text+'
                  • '; + $('#addroler-content').append(roles); + } + + + } + }) + }); + //添加所有 + documentBindFunc.on('click','#addall_opt',function () { + $.each($('#roler-conten li'),function () { + var text = $(this).text(); + var id = $(this).attr('data-value'); + var orgId=$(this).attr('data-orgId'); + //判断右侧是否已经存在了 + var getli = $("#addroler-content").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli, function(index,rows) { + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                  • '+text+'
                  • '; + $('#addroler-content').append(roles); + }else{ + $(this).remove(); + } + }else{ + $(this).remove(); + var roles ='
                  • '+text+'
                  • '; + $('#addroler-content').append(roles); + } + }); + }); + //删除所有 + documentBindFunc.on('click','#removeall_opt',function () { + $.each($('#addroler-content li'),function () { + var text = $(this).text(); + var id = $(this).attr('data-value'); + var orgId=$(this).attr('data-orgId'); + //判断左侧 + var getli = $("#roler-conten").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli,function(index,row){ + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                  • '+text+'
                  • '; + $('#roler-conten').append(roles); + }else{ + $(this).remove(); + + } + }else{ + $(this).remove(); + var roles ='
                  • '+text+'
                  • '; + $('#roler-conten').append(roles); + } + }) + }); + //删除 + documentBindFunc.on('click','#remove_opt',function () { + var _that = $(this); + $.each($('#addroler-content li'),function () { + if($(this).hasClass('roler-mes-active')){ + var text = $(this).text(); + var id = $(this).attr('data-value'); + var orgId=$(this).attr('data-orgId'); + //判断左侧 + var getli = $("#roler-conten").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli,function(index,row){ + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                  • '+text+'
                  • '; + $('#roler-conten').append(roles); + }else{ + $(this).remove(); + } + }else{ + $(this).remove(); + var roles ='
                  • '+text+'
                  • '; + $('#roler-conten').append(roles); + } + } + }) + }); + //初始化tree + Tree.initTree(); + //删除职能 + documentBindFunc.on('click', '.jobfunc_delete', function () { + fun.isHavsRole($(this).attr('data-id')); + }); + //修改职能 + documentBindFunc.on('click', '.jobfunc_modify', function () { + fun.modifyjobfunc($(this).attr('data-id')); + }); + //添加职能 + documentBindFunc.on('click', '.jobfunc_alert_addJobFunc', function () { + fun.addJobfunc(); + }); + //分配职能确认 + documentBindFunc.on('click', '#jobfunc_tree_btn', function () { + fun.operAuth(); + }); + //分配菜单弹窗 + documentBindFunc.on('click', '#jobfunc_auth', function () { + //1.判断是否选中 + var isChecked= $('#jobFuncTable input:radio:checked').attr("checked"); + var userId=""; + if(!isChecked){ + swal({title:"提示",text:"请选择一行用户记录",type:"warning",width:350,timer:3000,allowOutsideClick:true}); + return false; + }else{ + var jobId = $('#jobFuncTable input:radio:checked').attr("data-value"); + //表单中分配权限弹窗 + fun.initTreeChecked(jobId); + } + }); + //分配角色 + documentBindFunc.on('click','#add_roler',function () { + fun.departmentrolerAlert(); + }); + //初始化table + fun.initTable(); + } + + //错误处理 函数 + function isError(res) { + if (res == null || res == undefined) { + return true; + } + if (res.code != '8888') { + var errorPop = new Pop({ + header: '错误提示', + content: $('' + res.msg + ''), + buttons: [{ + type: 'popOk', + text: '确定' + }] + }); + return true; + } else { + return false; + } + } + + + function jobFuncAjax(params) { + var pageNum = (params.data.offset/params.data.limit)+1; + //设置请求参数 + var id= $('#select_page_job_id').val(); + var jobName=$('#select_page_job_name').val(); + var sysCode = sessionStorage.getItem("sysCode"); + if(sysCode == null || sysCode ==''){ + sysCode = sysComm.sysCode; + } + if(isNaN(id)){ + id= 0; + } + if(jobName == null || jobName ==''){ + jobName = ''; + } + var req = { + baseRequest: { + pageNum: pageNum, + pageSize:params.data.limit + }, + sysCode: sysCode, + jobfuncId: id, + jobfuncName: jobName + }; + var ajaxOps = { + method: 'post', + url: dataUrl.util.getQueryJobFunc(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType: 'json', + success: function (res) { + if (res.code === '8888') { + params.success(res.data); + } + } + }; + sysAjax(ajaxOps); + } +}); + +/** + * 判断自动选中公共服务节点 + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ +function zTreeOnCheck (event, treeId, treeNode) { + //1.如果为叶子节点则选中同级,resType=3(公共服务) + if(!treeNode.isParent){ + var pId = treeNode.pId; + var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); + var node = treeObj.getNodeByParam("id", pId, null); + if(node != null){ + //获取所有公共服务节点 + $.each(node.children, function(index,rows) { + if(rows != null){ + if(rows.resType ==3){ + var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); + var node = treeObj.getNodeByParam("id", rows.id, null); + if(node != null || node != undefined){ + node.checked = true; + var treeObj = $.fn.zTree.getZTreeObj("jobfunc_tree"); + treeObj.updateNode(node); + } + } + } + }); + } + } +} + diff --git a/assets/syspages/js/rbac/orgarearelation.js b/assets/syspages/js/rbac/orgarearelation.js new file mode 100644 index 0000000..dcab94f --- /dev/null +++ b/assets/syspages/js/rbac/orgarearelation.js @@ -0,0 +1,451 @@ + +/** + * 组织区域关系js.
                    + * @author wangfs + */ +var fun = { + /*1.保存组织与区域关系**/ + org_ok:function(){ + $(document).on('click','#org_ok',function(){ + //获取左侧选中的组织 + var checkedOrgId = orgTree.getCheckedNodesId(true); + if(checkedOrgId == null || checkedOrgId == '' || checkedOrgId ==undefined){ + $('.ITD-alertmodel-contentmsg').text('请选择左侧要分配权限的[组织]!'); + $('#alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#alertmodel').modal('hide') + },3000); + // swal({title:"提示",text:'请选择左侧要分配权限的[组织]!',type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + //获取右侧区域选中的“块”id 集合 + var checkedBlockIds = areaTree.getCheckedNodesIdForBlock(true); + //if(checkedBlockIds == null || checkedBlockIds == '' || checkedBlockIds ==undefined){ + // swal({title:"提示",text:'右侧[区域]至少选择一个块!',type:"warning",timer:3000,allowOutsideClick:true}); + //return false; + //} + var req= { + sysCode:sysComm.sysCode, + orgId:checkedOrgId[0], + areaBlockIds:checkedBlockIds + }; + //保存组织区域关系 + sysAjax({ + method: "post", + url: dataUrl.util.batchSaveOrgAreaRelation(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if(res.code == '8888'){ + if(res.data){ + $('.ITD-alertmodel-contentmsg').text('保存成功!'); + $('#alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#alertmodel').modal('hide') + },3000); + // swal({title:"提示",text:'保存成功!',type:"success",timer:3000,allowOutsideClick:true}); + + }else{ + $('.ITD-alertmodel-contentmsg').text('保存失败!'); + $('#alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#alertmodel').modal('hide') + },3000); + // swal({title:"提示",text:'保存失败!',type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + }else{ + $('.ITD-alertmodel-contentmsg').text(res.errMsg); + $('#alertmodel').modal('show') + setTimeout(function () { + $('.ITD-alertmodel-contentmsg').text(''); + $('#alertmodel').modal('hide') + },3000); + // swal({title:"提示",text:res.errMsg,type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + + } + }); + + }); + } + +}; + +// 组织构建树 +var orgTree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#org_tree"), orgTree.setting, orgTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + treeObj.expandAll(true); + + }, + setting: { + callback: { + onCheck:zTreeOnCheck + }, + view: { + selectedMulti: false //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "radio", + radioType:"all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + edit: { + enable: false + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = orgTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node==null){ + continue; + } + node.checked = true; + orgTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var treeNode = orgTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = orgTree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names= ""; + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names+","+nodes[i].name; + } + return names; + }, + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData:function() { + var sysCode=sessionStorage.getItem("sysCode"); + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode + }; + sysAjax({ + method:'POST', + url: dataUrl.util.getOrgTreeBySysCode(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + var data=""; + zNodes=res.data + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } +} + +// 区域构建树 +var areaTree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#area_tree"), areaTree.setting, areaTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + treeObj.expandAll(false); + areaTree.selectedNodes(0); + }, + setting: { + view: { + selectedMulti: false //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "checkbox" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + edit: { + enable: false + } + }, + //展开某个节点 + selectedNodes:function(id){ + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getNodesByParam("id", id, null); + if(nodes.length>0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = areaTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node==null){ + continue; + } + node.checked = true; + areaTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var treeNode = areaTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = areaTree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForBlock: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index =0; + for (var i = 0; i < nodes.length; i++) { + if(null != nodes[i].areaType && "60" == nodes[i].areaType ){ + ids[index++] ={areaId:nodes[i].id,areaType:nodes[i].areaType,orgAreaType:1} ; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names= ""; + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names+","+nodes[i].name; + } + return names; + }, + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData:function() { + var sysCode=sessionStorage.getItem("sysCode"); + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode + }; + sysAjax({ + method:'POST', + url: dataUrl.util.getAreatree(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + $.each(res.data, function(index,rows) { + var data=""; + if(rows.areaType == null || rows.areaType ==''){ + data={id:rows.plNo,pId:rows.parentId,name:rows.areaName,areaType:rows.areaType,chkDisabled:true}; + }else{ + data={id:rows.id,pId:rows.parentId,name:rows.areaName,areaType:rows.areaType}; + } + zNodes[index] =data; + }); + + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } +} +$(function(){ + orgTree.initTree(); //初始化组织tree + areaTree.initTree(); //初始化区域tree + fun.org_ok(); //保存 +}); +/** + * 处理错误信息 + * @param {Object} res + */ +function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + var errorPop = new Pop({ + header:'错误提示', + content:$(''+res.msg+''), + buttons:[{ + type:'popOk', + text:'确定', + callback:function(){ + errorPop.close(); + } + }] + }); + return true; + }else{ + return false; + } +} +/** + * 左侧单选按钮点击选中右侧.
                    + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ +function zTreeOnCheck (event, treeId, treeNode) { + //alert(treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + if(!treeNode.checked){//取消选中 将右侧选中节点取消选中 + areaTree.checkAllNodes(false); + return false; + } + var sysCode=sessionStorage.getItem("sysCode"); + var zNodes = []; + var req= { + sysCode:sysCode, + orgId:treeNode.id, + }; + sysAjax({ + method:'POST', + url: dataUrl.util.queryAreaIdsByorgId(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + areaTree.checkAllNodes(false); + areaTree.updateNodesForChecked(res.data); + + } + }); + +} + + + + + + \ No newline at end of file diff --git a/assets/syspages/js/rbac/orgarearelation_gov.js b/assets/syspages/js/rbac/orgarearelation_gov.js new file mode 100644 index 0000000..79e0db8 --- /dev/null +++ b/assets/syspages/js/rbac/orgarearelation_gov.js @@ -0,0 +1,420 @@ + +/** + * 政府云平台组织区域关系js.
                    + * @author wangfs + */ +var fun = { + /*1.保存组织与区域关系**/ + org_ok:function(){ + $(document).on('click','#org_ok',function(){ + //获取左侧选中的组织 + var checkedOrgId = orgTree.getCheckedNodesId(true); + if(checkedOrgId == null || checkedOrgId == '' || checkedOrgId ==undefined){ + swal({title:"提示",text:'请选择左侧要分配权限的[组织]!',type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + //获取右侧区域选中的“块”id 集合 + var checkedBlockIds = areaTree.getCheckedNodesIdForBlock(true); +// if(checkedBlockIds == null || checkedBlockIds == '' || checkedBlockIds ==undefined){ +// swal({title:"提示",text:'右侧[区域]至少选择一个!',type:"warning",timer:3000,allowOutsideClick:true}); +// return false; +// } + var req= { + sysCode:sysComm.sysCode, + orgId:checkedOrgId[0], + areaBlockIds:checkedBlockIds + }; + //保存组织区域关系 + sysAjax({ + method: "post", + url: dataUrl.util.batchSaveOrgAreaRelation(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + if(res.code == '8888'){ + if(res.data){ + swal({title:"提示",text:'保存成功!',type:"success",timer:3000,allowOutsideClick:true}); + }else{ + swal({title:"提示",text:'保存失败!',type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + }else{ + swal({title:"提示",text:res.errMsg,type:"warning",timer:3000,allowOutsideClick:true}); + return false; + } + + } + }); + + }); + } + +}; + +// 组织构建树 +var orgTree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#org_tree"), orgTree.setting, orgTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + treeObj.expandAll(true); + + }, + setting: { + callback: { + onCheck:zTreeOnCheck + }, + view: { + selectedMulti: false //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "radio", + radioType:"all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + edit: { + enable: false + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = orgTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node==null){ + continue; + } + node.checked = true; + orgTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var treeNode = orgTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = orgTree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names= ""; + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names+","+nodes[i].name; + } + return names; + }, + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData:function() { + var sysCode=sessionStorage.getItem("sysCode"); + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode + }; + sysAjax({ + method:'POST', + url: dataUrl.util.getOrgTreeBySysCode(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + var data=""; + zNodes=res.data + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } +} + +// 区域构建树 +var areaTree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#area_tree"), areaTree.setting, areaTree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + treeObj.expandAll(false); + areaTree.selectedNodes(0); + }, + setting: { + view: { + selectedMulti: false //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "checkbox" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + }, + edit: { + enable: false + } + }, + //展开某个节点 + selectedNodes:function(id){ + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getNodesByParam("id", id, null); + if(nodes.length>0) { + treeObj.expandNode(nodes[0], true, false, true); + } + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = areaTree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node==null){ + continue; + } + node.checked = true; + areaTree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var treeNode = areaTree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = areaTree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + ids[i] = nodes[i].id + } + return ids; + }, + //获取输入框被勾选 或 未勾选的块节点ID集合 + getCheckedNodesIdForBlock: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getCheckedNodes(checked); + index =0; + for (var i = 0; i < nodes.length; i++) { + if(null != nodes[i].areaType && nodes[i].areaType ==40){ + ids[index++] ={areaId:nodes[i].id,areaType:nodes[i].areaType,orgAreaType:2} ; + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names= ""; + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names+","+nodes[i].name; + } + return names; + }, + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("area_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData:function() { + var sysCode=sessionStorage.getItem("sysCode"); + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode + }; + sysAjax({ + method:'POST', + url: dataUrl.util.getAreatree(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + $.each(res.data, function(index,rows) { + if( rows.areaType != null && rows.areaType !='' && rows.areaType !=60 && rows.areaType !=50) { + var data={id:rows.id,pId:rows.parentId,name:rows.areaName,areaType:rows.areaType}; + zNodes[index] =data; + } + + }); + + } + }); + //增加一个公告根节点 + //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } +} +$(function(){ + orgTree.initTree(); //初始化组织tree + areaTree.initTree(); //初始化区域tree + fun.org_ok(); //保存 +}); +/** + * 处理错误信息 + * @param {Object} res + */ +function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + var errorPop = new Pop({ + header:'错误提示', + content:$(''+res.msg+''), + buttons:[{ + type:'popOk', + text:'确定', + callback:function(){ + errorPop.close(); + } + }] + }); + return true; + }else{ + return false; + } +} +/** + * 左侧单选按钮点击选中右侧.
                    + * @param {Object} event + * @param {Object} treeId + * @param {Object} treeNode + */ +function zTreeOnCheck (event, treeId, treeNode) { + // alert(treeNode.id + ", " + treeNode.name + "," + treeNode.checked); + var sysCode=sessionStorage.getItem("sysCode"); + var zNodes = []; + var req= { + sysCode:sysCode, + orgId:treeNode.id, + }; + sysAjax({ + method:'POST', + url: dataUrl.util.queryAreaIdsByorgId(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + areaTree.checkAllNodes(false); + areaTree.updateNodesForChecked(res.data); + + } + }); + +} + + + + + + \ No newline at end of file diff --git a/assets/syspages/js/rbac/pages/frameworkManage.html b/assets/syspages/js/rbac/pages/frameworkManage.html new file mode 100644 index 0000000..9dd3df3 --- /dev/null +++ b/assets/syspages/js/rbac/pages/frameworkManage.html @@ -0,0 +1,138 @@ + + + + +
                    +
                    +
                    + 组织树 +
                    +
                    +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + 组织架构列表 +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + 组织员工列表 +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      + + +
                      +
                      + +
                      +
                      +
                      + 添加组织 + + × +
                      +
                      +
                      +
                      +
                      + + + 上级组织 + 管理委员会 +
                      +
                      + 等级 + + +
                      +
                      + 系统名称 + +
                      +
                      +
                      +
                      + 组织名称* + + +
                      +
                      + 组织排序 + + + +
                      +
                      + 组织概述* + +
                      +
                      +
                      +
                      + 取消 + 保存 +
                      +
                      +
                      + + + + + diff --git a/assets/syspages/js/rbac/pages/jobFuncManage.html b/assets/syspages/js/rbac/pages/jobFuncManage.html new file mode 100644 index 0000000..8b7ba8f --- /dev/null +++ b/assets/syspages/js/rbac/pages/jobFuncManage.html @@ -0,0 +1,156 @@ + + +
                      +
                      +
                      +
                      +
                      + 职能ID + +
                      +
                      + 职能名称 + +
                      +
                      +
                      +
                      查询
                      +
                      +
                      +
                      +
                      +
                      +
                      + + +
                      +
                      +
                      +
                      + 职能管理 +
                      +
                      + +
                      + +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      + + +
                      +
                      +
                      + 分配菜单 + + × + +
                      +
                        + +
                        + 取消 + 保存 +
                        + +
                        + +
                        + + +
                        +
                        +
                        +
                        + 分配角色 + + × +
                        +
                        +
                          +
                        • 测试员1测试员测试员测试员测试员测试员测试员测试员
                        • +
                        • 测试员2
                        • +
                        • 测试员3
                        • +
                        • 信息维护
                        • +
                        • 测试员4
                        • +
                        • 审核员
                        • +
                        +
                          +
                        • 添加>
                        • +
                        • <删除
                        • +
                        • 添加全部>>
                        • +
                        • <<删除全部
                        • +
                        +
                          + + + + + + +
                        +
                        + +
                        + 取消 + 保存 +
                        + +
                        +
                        +
                        + +
                        +
                        +
                        + 添加职能 + × + +
                        +
                        + +
                        + 职能名称* + + + +
                        +
                        + 系统名称* + +
                        +
                        + 职能描述* + +
                        +
                        + 取消 + 保存 +
                        + +
                        +
                        + + + \ No newline at end of file diff --git a/assets/syspages/js/rbac/pages/orgarearelation.html b/assets/syspages/js/rbac/pages/orgarearelation.html new file mode 100644 index 0000000..404dbd6 --- /dev/null +++ b/assets/syspages/js/rbac/pages/orgarearelation.html @@ -0,0 +1,48 @@ + + + +
                        +
                        +
                        +
                        + 组织树 +
                        +
                        +
                          +
                          +
                          +
                          +
                          +
                          +
                          + 区域树 +
                          +
                          + +
                          +
                          +
                          +
                          +
                            +
                            +
                            +
                            +
                            + + + + \ No newline at end of file diff --git a/assets/syspages/js/rbac/pages/roleManage.html b/assets/syspages/js/rbac/pages/roleManage.html new file mode 100644 index 0000000..c644c47 --- /dev/null +++ b/assets/syspages/js/rbac/pages/roleManage.html @@ -0,0 +1,150 @@ + +
                            +
                            +
                            +
                            +
                            + 角色ID + +
                            +
                            + 角色名称 + +
                            +
                            +
                            +
                            查询
                            +
                            +
                            +
                            +
                            +
                            +
                            + + +
                            +
                            +
                            +
                            + 角色管理 +
                            +
                            + +
                            +
                            + +
                            +
                            +
                            +
                            +
                            +
                            + +
                            +
                            +
                            + + +
                            +
                            +
                            + 添加角色 + × +
                            +
                            + +
                            + 角色名* + +
                            +
                            + 系统名称* + +
                            +
                            + 角色描述* + +
                            +
                            + 取消 + 保存 +
                            + +
                            +
                            + + + + + +
                            +
                            +
                            +
                            + 分配职能 + + × +
                            +
                            +
                              +
                            • 测试员1测试员测试员测试员测试员测试员测试员测试员
                            • +
                            • 测试员2
                            • +
                            • 测试员3
                            • +
                            • 信息维护
                            • +
                            • 测试员4
                            • +
                            • 审核员
                            • +
                            +
                              +
                            • 添加>
                            • +
                            • <删除
                            • +
                            • 添加全部>>
                            • +
                            • <<删除全部
                            • +
                            +
                              + + + + + + +
                            +
                            + +
                            + 取消 + 保存 +
                            + +
                            +
                            +
                            + + \ No newline at end of file diff --git a/assets/syspages/js/rbac/pages/userManage.html b/assets/syspages/js/rbac/pages/userManage.html new file mode 100644 index 0000000..92eb141 --- /dev/null +++ b/assets/syspages/js/rbac/pages/userManage.html @@ -0,0 +1,230 @@ + + + +
                            +
                            +
                            +
                            +
                            + 账号 + +
                            +
                            + 姓名 + +
                            +
                            + 手机号 + +
                            +
                            +
                            +
                            查询
                            +
                            +
                            +
                            +
                            +
                            +
                            + +
                            +
                            +
                            +
                            + 用户管理 +
                            +
                            + +
                            +
                            + +
                            +
                            + +
                            +
                            + +
                            +
                            +
                            +
                            + +
                            +
                            +
                            + + +
                            +
                            +
                            + 添加用户 + + × +
                            +
                            报错信息
                            + +
                            +
                            +
                            + 账号* + +
                            +
                            + 年龄* + +
                            +
                            + 系统名称 + +
                            +
                            + 联系电话* + +
                            +
                            + 描述* + +
                            +
                            + 失效时间 + +
                            +
                            +
                            +
                            + 姓名* + +
                            +
                            + 性别 +
                            +
                            + +
                            请选择1 +
                            +
                            +
                            +
                              +
                            • 1
                            • +
                            • 2
                            • +
                            +
                            +
                            +
                            +
                            + 邮箱* + +
                            +
                            + 用户状态 +
                            +
                            + +
                            正常1
                            +
                            +
                            + +
                            +
                              +
                            • 正常1
                            • +
                            • 锁定2
                            • +
                            +
                            +
                            +
                            +
                            + 密码 + 默认密码为123qwe +
                            +
                            +
                            +
                            + 取消 + 保存 +
                            +
                            +
                            + + +
                            +
                            +
                            +
                            + 分配角色 + + × +
                            +
                            +
                              +
                            • 测试员1测试员测试员测试员测试员测试员测试员测试员
                            • +
                            • 测试员2
                            • +
                            • 测试员3
                            • +
                            • 信息维护
                            • +
                            • 测试员4
                            • +
                            • 审核员
                            • +
                            +
                              +
                            • 添加>
                            • +
                            • <删除
                            • +
                            • 添加全部>>
                            • +
                            • <<删除全部
                            • +
                            +
                              + + + + + + +
                            +
                            +
                            + 取消 + 保存 +
                            +
                            +
                            +
                            + + +
                            +
                            +
                            + 分配组织 + + × +
                            + +
                              +
                              + 取消 + 保存 +
                              +
                              + +
                              + + + + + + + \ No newline at end of file diff --git a/assets/syspages/js/rbac/pages/userManage.htmlbak b/assets/syspages/js/rbac/pages/userManage.htmlbak new file mode 100644 index 0000000..69b7c42 --- /dev/null +++ b/assets/syspages/js/rbac/pages/userManage.htmlbak @@ -0,0 +1,226 @@ + + + +
                              +
                              +
                              +
                              +
                              + 账号 + +
                              +
                              + 姓名 + +
                              +
                              + 手机号 + +
                              +
                              +
                              +
                              查询
                              +
                              +
                              +
                              +
                              +
                              +
                              + +
                              +
                              +
                              +
                              + 用户管理 +
                              +
                              + +
                              +
                              + +
                              +
                              + +
                              +
                              + +
                              +
                              +
                              +
                              + +
                              +
                              +
                              + + +
                              +
                              +
                              + 添加用户 + + × +
                              +
                              报错信息
                              + +
                              +
                              +
                              + 账号* + +
                              +
                              + 年龄* + +
                              +
                              + 系统名称 + +
                              +
                              + 联系电话* + +
                              +
                              + 描述* + +
                              +
                              +
                              +
                              + 姓名* + +
                              +
                              + 性别 +
                              +
                              + +
                              请选择1 +
                              +
                              +
                              +
                                +
                              • 1
                              • +
                              • 2
                              • +
                              +
                              +
                              +
                              +
                              + 邮箱* + +
                              +
                              + 用户状态 +
                              +
                              + +
                              正常1
                              +
                              +
                              + +
                              +
                                +
                              • 正常1
                              • +
                              • 锁定2
                              • +
                              +
                              +
                              +
                              +
                              + 密码 + 默认密码为123qwe +
                              +
                              +
                              +
                              + 取消 + 保存 +
                              +
                              +
                              + + +
                              +
                              +
                              +
                              + 分配角色 + + × +
                              +
                              +
                                +
                              • 测试员1测试员测试员测试员测试员测试员测试员测试员
                              • +
                              • 测试员2
                              • +
                              • 测试员3
                              • +
                              • 信息维护
                              • +
                              • 测试员4
                              • +
                              • 审核员
                              • +
                              +
                                +
                              • 添加>
                              • +
                              • <删除
                              • +
                              • 添加全部>>
                              • +
                              • <<删除全部
                              • +
                              +
                                + + + + + + +
                              +
                              +
                              + 取消 + 保存 +
                              +
                              +
                              +
                              + + +
                              +
                              +
                              + 分配组织 + + × +
                              + +
                                +
                                + 取消 + 保存 +
                                +
                                + +
                                + + + + + + + \ No newline at end of file diff --git a/assets/syspages/js/rbac/rbacTmp.js b/assets/syspages/js/rbac/rbacTmp.js new file mode 100644 index 0000000..91f74ad --- /dev/null +++ b/assets/syspages/js/rbac/rbacTmp.js @@ -0,0 +1,75 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
                                '+urlarr[i].name+'
                                ' + }else{ + _html += '
                              • '+urlarr[i].name+'
                              • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/frameworkManage', function() { + $("#pageCssLink").attr("href",'../../assets/syspages/js/rbac/css/frameworkManage.css'); + res.load('../../assets/syspages/js/rbac/pages/frameworkManage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-frameworkManage').addClass('ITD-topbar-clickactive'); + +}); +R.route('/jobFuncManage', function() { + $("#pageCssLink").attr("href",'../../assets/syspages/js/rbac/css/jobFuncManage.css'); + res.load('../../assets/syspages/js/rbac/pages/jobFuncManage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-jobFuncManage').addClass('ITD-topbar-clickactive'); + +}); +R.route('/orgarearelation', function() { + $("#pageCssLink").attr("href",'../../assets/syspages/js/rbac/css/orgarearelation.css'); + res.load('../../assets/syspages/js/rbac/pages/orgarearelation.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-orgarearelation').addClass('ITD-topbar-clickactive'); + +}); +R.route('/orgarearelation_gov', function() { + $("#pageCssLink").attr("href",'../../assets/syspages/js/rbac/css/orgarearelation_gov.css'); + res.load('../../assets/syspages/js/rbac/pages/orgarearelation_gov.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-orgarearelation_gov').addClass('ITD-topbar-clickactive'); + +}); +R.route('/roleManage', function() { + $("#pageCssLink").attr("href",'../../assets/syspages/js/rbac/css/roleManage.css'); + res.load('../../assets/syspages/js/rbac/pages/roleManage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-roleManage').addClass('ITD-topbar-clickactive'); + +}); +R.route('/userManage', function() { + $("#pageCssLink").attr("href",'../../assets/syspages/js/rbac/css/userManage.css'); + res.load('../../assets/syspages/js/rbac/pages/userManage.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-userManage').addClass('ITD-topbar-clickactive'); + +}); diff --git a/assets/syspages/js/rbac/roleManage.js b/assets/syspages/js/rbac/roleManage.js new file mode 100644 index 0000000..ac74eae --- /dev/null +++ b/assets/syspages/js/rbac/roleManage.js @@ -0,0 +1,770 @@ +/** + * Created by mac on 17/5/10. + */ +(function () { + + var fun = { + //查询用户角色-查询按钮 + queryRoles:function(){ + fun.initTable(); + }, + //角色关闭 + roler_close_alert_org:function () { + // $('#example-getting-started').multiselect('select', ''); + $('#departmentrolerAlert,#alertroler_over').hide(); + }, + //初始化表格数据 + initTable:function(){ + $('#roletable').bootstrapTable('destroy').bootstrapTable({ + striped:true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber:1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10,15,20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method:'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax:tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'state', title: '',width: '5%', align: 'left',formatter:fun.checkedFormat}, + {field: 'id', title: '角色ID',width: '5%', align: 'left',formatter:commonObj.replacenull}, + {field: 'roleName', title: '角色名称', width: '15%', align: 'left',formatter:commonObj.replacenull}, + {field: 'createEmpname', title: '创建人', width: '15%', align: 'left',formatter:commonObj.replacenull}, + {field: 'createDate', title: '创建时间', width: '15%', align: 'left',formatter:commonObj.timeFormatter}, + {field: 'roleDesc', title: '角色描述', width: '15%', align: 'left',formatter:commonObj.replacenull}, + {field: 'orgId', width: '15%', align: 'left',visible:false}, + {field: 'oper', title: '操作', width: '15%', align: 'left',formatter:fun.operFormatter} + ], + onClickRow: function (row,$element) { + var id=row.id; + _orgId = row.orgId; + $('#roletable input:radio[data-value="'+id+'"]').attr("checked","checked"); + }, + formatTableUnit:function(value,row,index){ + return { + css: { + "white-space":"nowrap" + } + } + }, + formatLoadingMessage:function(){ + return "数据正在加载中..."; + }, + formatNoMatches: function () { + return '暂无信息,可使用 “添加角色” 按钮为系统添加角色信息'; + } + }); + }, + //转换系统名称 + getSysCodeName:function(value,row,index){ + var sysCodeName =sessionStorage.getItem("sysName"); + return sysCodeName; + }, + checkedFormat:function(value,row,index) { + var checkStr=""; + return checkStr; + }, + //操作显示 + operFormatter:function(value,row,index){ + var operStr ='职能详情'+ + '修改'+ + '删除'; + return operStr; + }, + + + //添加角色 + addRole:function(){ + + $('#role_alert_error').text(''); + //$('#jobfuncIds').selectpicker('val', ''); + //$('input').val(''); + //selectAllInput.prop("checked", false); + $('#jobfuncIds').multiselect('select', ''); + var a=$('#jobfuncIds').val(); + $('#jobfuncIds').multiselect('deselect', a); + $('#roleDesc').val(''), + $('#roleName').val(''), + $('textarea').val(''); + $('select').val(''); + $('#alert_over').append($('#role_alert_con')); + $('#role_alert_title').html('添加角色'); + $('#alert_ok').html('确定'); + $('#alert_ok').attr('oper','save'); + var sysName = sessionStorage.getItem("sysName"); + $("#sysCodeNameView").val(sysName); + $('#alert_over,#role_alert_con').show(); + }, + //修改角色 + modifyRole:function(element){ + $('.popMask').remove(); + $('#role_alert_error').text(''); + //$('#jobfuncIds').selectpicker('val', ''); + //设置值 + var roleid = $(element).attr('data-value'); + //根据唯一值获取行数据 + var modifyRow = $('#roletable').bootstrapTable('getRowByUniqueId', roleid); + $('#roleid').val(roleid); + $('#roleName').val(modifyRow.roleName); + $('#roleDesc').val(modifyRow.roleDesc); + $('#alert_over').append($('#role_alert_con')); + $('#role_alert_title').html('修改角色'); + $('#alert_ok').html('确定'); + var sysName = sessionStorage.getItem("sysName"); + $("#sysCodeNameView").val(sysName); + $('#alert_ok').attr('oper','update'); + $('#alert_over,#role_alert_con').show(); + }, + jobreadMsg:function(element){ + //设置值 + var roleid = $(element).attr('data-value'); + //根据唯一值获取行数据 + //var modifyRow = $('#roletable').bootstrapTable('getRowByUniqueId', roleid); + + $("#rolejobMsgcont").empty(); + + var sysCode = sessionStorage.getItem("sysCode"); + var req={sysCode:sysCode,roleId:roleid}; + sysAjax({ + method: 'GET', + url: dataUrl.util.queryJobFuncsByRoleId(), + data: req, + async:false, + success: function (res) { + console.log(res); + if(isError(res)){ + return false; + } + var html=''; + for(var index in res.data){ + html+=''+res.data[index].NAME+''; + } + + $("#rolejobMsgcont").html(html); + } + }); + + + + /* $('#roleid').val(roleid); + $('#roleName').val(modifyRow.roleName); + $('#roleDesc').val(modifyRow.roleDesc); + $('#alert_over').append($('#role_alert_con')); + var sysName = sessionStorage.getItem("sysName"); + $("#sysCodeNameView").val(sysName); + $('#alert_ok').attr('oper','update');*/ + $('#jobreadMsg_modal').modal('show'); + + }, + //删除角色 + deleteRole:function(element){ + $('.popMask').remove(); + var roleid = $(element).attr('data-value'); + var rolename = $(element).attr('rolename'); + var content = $('确定要删除角色('+rolename+')吗?'); + var isUsed = ''; + swal({ + title: '提示', + text: '确定要删除?', + type: 'warning', + showCancelButton: true, + allowOutsideClick:false, + confirmButtonText: '确定', + cancelButtonText: '关闭', + }).then(function(isConfirm) { + if (isConfirm === true) { + //判断该角色是否已经被占用 + isUsedForRoleByRoleId(); + if(isUsed=='true'){ + deleteRoleForce(rolename); + }else{//没有被占用 + //删除角色 + realDeleteRole(); + //刷新table + refreshTable(); + } + } else if (isConfirm === false) { + swal.close() + } + }); + + //强制删除 + function deleteRoleForce(roleName){ + swal({ + title: '提示', + text: '角色['+roleName+']已经被使用,是否强制删除?', + type: 'warning', + showCancelButton: true, + allowOutsideClick:false, + confirmButtonText: '强制删除', + cancelButtonText: '关闭', + }).then(function(isConfirm) { + if (isConfirm === true) { + //删除角色 + realDeleteRole(); + //刷新table + refreshTable(); + + } else if (isConfirm === false) { + swal.close() + + } + }); + } + function refreshTable(){ + var opt = { + url: dataUrl.util.getQueryRoles(), + silent: true + }; + + $("#roletable").bootstrapTable('refresh', opt); + } + //正式删除角色 + function realDeleteRole(){ + var sysCode = sessionStorage.getItem("sysCode"); + sysAjax({ + method: 'POST', + url: dataUrl.util.deleteRole(), + data: "sysCode="+sysCode+"&roleIds="+roleid, + contentType: 'application/x-www-form-urlencoded', + dataType:'json', + async:false, + success: function (res) { + if(isError(res)){ + return false; + } + } + }); + } + + //判断该角色是否已经被占用 + function isUsedForRoleByRoleId(){ + var sysCode = sessionStorage.getItem("sysCode"); + sysAjax({ + method: 'post', + url: dataUrl.util.isUsedForRoleByRoleId(), + data: "sysCode="+sysCode+"&roleId="+roleid, + contentType: 'application/x-www-form-urlencoded', + dataType:'json', + async:false, + success: function (res) { + if(isError(res)){ + return false; + } + isUsed = res.data+''; + } + }); + } + + }, + //保存角色信息 + saveJobFunRole:function(){ + var sysCode = sessionStorage.getItem("sysCode"); + //1.获取角色id + var roleId = $('#roletable input:radio:checked').attr("data-value"); + var orgId=_orgId; + //2.获取选择的角色ids + var jobFunIds = new Array(); + //查找右侧所有选择的职能id + var li =$('#addroler-content').find('li'); + $.each(li, function(index,row) { + var jobFunId=$(this).attr('data-value'); + //orgId=$(this).attr('data-orgId'); + if(jobFunId != null){ + jobFunIds[index] = jobFunId; + } + }); + var req={ + "roleId": roleId, + "sysCode":sysCode, + "orgId":orgId, + "jobFunIds":jobFunIds, + "dataState":1 + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.batchSaveRoleJobFunByRoleId(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.code == "8888"){ + var data=res.data; + if(data){ + $('#departmentrolerAlert,#alertroler_over').hide(); + $('#roletable').bootstrapTable('refresh', {silent: true}); + swal({title:"提示",text:"保存成功",type:"success",width:350,timer:3000,allowOutsideClick:true}); + }else{ + swal({title:"提示",text:"保存失败,请重新添加",type:"error",width:350,timer:3000,allowOutsideClick:true}); + return false; + } + + }else{ + swal({title:"提示",text:res.msg,type:"error",width:350,timer:3000,allowOutsideClick:true}); + return false; + } + + } + }); + + }, + //职能弹窗 + departmentJobFunAlert:function () { + //查询所有职能信息 + fun.departmentJobFunAlert(); + }, + //分配职能 + departmentJobFunAlert:function () { + //1.判断是否选中 + var isChecked= $('#roletable input:radio:checked').attr("checked"); + var roleId=""; + if(!isChecked){ + //sweetAlert("提示", "请选择一行用户记录", "warning"); + swal({title:"提示",text:"请选择一行用户记录",type:"warning",width:350,timer:3000,allowOutsideClick:true}); + return false; + }else{ + roleId = $('#roletable input:radio:checked').attr("data-value"); + } + //2.获取所有职能信息 + //var sysCodeS = sessionStorage.getItem("sysCode"); + var req = { + baseRequest: { + pageNum: 1, + pageSize:0 + }, + sysCode: sysComm.sysCode, + jobfuncId: null, + jobfuncName: null + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.getQueryJobFunc(), + data:JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + async:false, + success: function (res) { + console.log(res); + if(res.code=='8888' && res.data != null && res.data.rows != null){ + var data=res.data.rows; + $('#roler-conten').empty(); //左侧 + var roles = ''; + $.each(data, function(index,row) { + roles +='
                              • '+row.jobfuncName+'
                              • '; + }); + $('#roler-conten').html(roles); + $('#alertroler_over,#departmentrolerAlert').show(); + } + + } + }); + //通过角色ID查询当前角色对应的职能 + var req= { + roleId: roleId, + sysCode:sysComm.sysCode + }; + sysAjax({ + method: 'GET', + url: dataUrl.util.queryJobFuncsByRoleId(), + data: req, + async:false, + success: function (res) { + console.log(res); + if(isError(res)){ + swal({title:"错误提示",text:res.msg,type:"error",width:350,timer:3000,allowOutsideClick:true}); + return false; + } + var data = res.data; + $('#addroler-content').empty(); //右侧 + var roles = ''; + $.each(data, function(index,row) { + roles +='
                              • '+row.NAME+'
                              • '; + }); + $('#addroler-content').html(roles); + + } + }); + + + }, + //show + show_alert:function () { + $('#alert_over').append($('#role_alert_con')); + $('#alert_over,#role_alert_con').show(); + }, + //clsoe + close_alert:function () { + $('#alert_over,#role_alert_con').hide(); + }, + //cancel + alert_cancel:function () { + $('#alert_over,#role_alert_con').hide(); + }, + //alert_ok + alert_ok:function () { + var sysCode = sessionStorage.getItem("sysCode"); + //验证参数 + fun.validateRole(); + var errmsg = $('#role_alert_error').text(); + if(errmsg !=''){ + return false; + } + //拼接请求参数 + var url = ''; + if($('#alert_ok').attr("oper")=='save'){ + url = dataUrl.util.saveRole(); + }else if($('#alert_ok').attr("oper")=='update'){ + url = dataUrl.util.updateRole(); + } + + var req= { + "id": $('#roleid').val(), + "roleDesc": $('#roleDesc').val(), + "roleName": $('#roleName').val(), + "sysCode":sysCode, + "operId":fn.getUserId(), + "operName":fn.getUserName() + }; + var easyUIOps = { + method:'POST', + url: url, + data: JSON.stringify(req), + success: function(res){ + if(isError(res)){ + return false; + } + $('#alert_over,#role_alert_con').hide(); + $('#roleId').val(''); + //刷新table + $('#roletable').bootstrapTable('refresh', {silent: true}); + } + }; + sysAjax(easyUIOps); + }, + //验证参数 + validateRole:function(){ + var roleVal = $('#roleName').val(); + var errorIfo = $('#role_alert_error'); + var roleDescription = $('#roleDesc').val(); + //角色名字 + if(StrUtil.isEmpty(roleVal)){ + errorIfo.text('请填写角色名称'); + $('#roleName').focus() + return false; + }else if(roleVal.indexOf(' ')>=0){ + errorIfo.text('角色名不能包含空格或者标点符号'); + $('#roleName').focus() + return false; + }else{ + errorIfo.text(''); + } + //角色描述 + if(StrUtil.isEmpty(roleDescription)){ + errorIfo.text('请输入角色描述'); + $('#roleDesc').focus(); + return false; + }else{ + errorIfo.text(''); + }; + } + }; + + //初始执行 + init(); + + function init(){ + //close弹窗 + $('.close_alert').on('click',function () { + fun.close_alert(); + }); + //cancel弹窗 + $('#alert_cancel').on('click',function () { + fun.close_alert(); + }); + //alert_ok弹窗 + $('#alert_ok').on('click',function () { + fun.alert_ok(); + }); + //分配角色 + documentBindFunc.on('click','#add_jobfun',function () { + fun.departmentJobFunAlert(); + }); + //删除角色 + $(document).on('click','[deleteRole]',function(){ + fun.deleteRole(this); + }); + //修改角色 + $(document).on('click','[modifyRole]',function(){ + fun.modifyRole(this); + }); + //职能详情 + $(document).on('click','[jobreadMsg]',function(){ + fun.jobreadMsg(this); + }); + //添加角色 + $(document).on('click','.addrole',function(){ + fun.addRole(); + }); + //查询角色 + $(document).on('click','#select_role_btn',function(){ + fun.queryRoles(); + }); + //分配角色内容 + $('#roler-conten li').live('click',function () { + $(this).addClass('roler-mes-active').siblings('li').removeClass('roler-mes-active') + }); + //关闭角色弹窗 + documentBindFunc.on('click','.roler_close_alert_org',function () { + fun.roler_close_alert_org(); + }); + documentBindFunc.on('click','.departmentrolercancel_btn',function () { + fun.roler_close_alert_org(); + }); + //分配角色内容 + $('#roler-conten li').live('click',function () { + $(this).addClass('roler-mes-active').siblings('li').removeClass('roler-mes-active') + }); + $('#addroler-content li').live('click',function () { + $(this).addClass('roler-mes-active').siblings('li').removeClass('roler-mes-active') + }); + //保存职能 + documentBindFunc.on('click','#departmentrolerAlert_btn',function () { + fun.saveJobFunRole(); + }); + //添加按钮 + documentBindFunc.on('click','#add_opt',function () { + var _that = $(this); + $.each($('#roler-conten li'),function () { + + if($(this).hasClass('roler-mes-active')){ + var text = $(this).text(); + var id = $(this).attr('data-value'); + var orgId=$(this).attr('data-orgId'); + + //判断右侧是否已经存在了 + var getli = $("#addroler-content").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli, function(index,rows) { + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#addroler-content').append(roles); + }else{ + $(this).remove(); + } + }else{ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#addroler-content').append(roles); + } + + + } + }) + }); + //添加所有 + documentBindFunc.on('click','#addall_opt',function () { + $.each($('#roler-conten li'),function () { + var text = $(this).text(); + var id = $(this).attr('data-value'); + var orgId=$(this).attr('data-orgId'); + //判断右侧是否已经存在了 + var getli = $("#addroler-content").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli, function(index,rows) { + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#addroler-content').append(roles); + }else{ + $(this).remove(); + } + }else{ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#addroler-content').append(roles); + } + }); + }); + //删除所有 + documentBindFunc.on('click','#removeall_opt',function () { + $.each($('#addroler-content li'),function () { + var text = $(this).text(); + var id = $(this).attr('data-value'); + var orgId=$(this).attr('data-orgId'); + //判断左侧 + var getli = $("#roler-conten").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli,function(index,row){ + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#roler-conten').append(roles); + }else{ + $(this).remove(); + + } + }else{ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#roler-conten').append(roles); + } + }) + }); + //删除 + documentBindFunc.on('click','#remove_opt',function () { + var _that = $(this); + $.each($('#addroler-content li'),function () { + if($(this).hasClass('roler-mes-active')){ + var text = $(this).text(); + var id = $(this).attr('data-value'); + var orgId=$(this).attr('data-orgId'); + //判断左侧 + var getli = $("#roler-conten").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli,function(index,row){ + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#roler-conten').append(roles); + }else{ + $(this).remove(); + } + }else{ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#roler-conten').append(roles); + } + } + }) + }); + //初始化table + fun.initTable(); + } + /** + * 处理错误信息 + * @param {Object} res + */ + function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + swal({title:"错误提示",text:res.msg,type:"error",timer:6000,allowOutsideClick:true}); + return true; + }else{ + return false; + } + } + + /** + * 判断角色名称是否已经存在.
                                + */ + + $('#roleName').blur(function() { + var roleName = $("#roleName").val(); + var sysCode=sessionStorage.getItem("sysCode"); + var errorIfo = $('#role_alert_error'); + if(roleName != null){ + var req= { + roleName: roleName, + sysCode:sysCode + }; + sysAjax({ + method: 'post', + url: dataUrl.util.queryRoleExistByRoleName(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function (res) { + if(res != null ){ + var data= res.data; + if(data){ + errorIfo.text('该角色名称已经存在!'); + $('#roleName').focus() + return false; + }else{ + errorIfo.text(''); + } + }else{ + swal({title:"错误提示",text:res.msg,type:"error",timer:3000,allowOutsideClick:true}); + return false; + } + } + }); + } + }); + + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params){ + var id= $('#select_page_role_id').val(); + if(isNaN(id)){ + id= 0; + } + var roleName=$('#select_page_role_ame').val(); + if(roleName == null || roleName ==''){ + roleName = ''; + } + var sysCode=sessionStorage.getItem("sysCode"); + if(sysCode == null || sysCode ==''){ + sysCode = sysComm.sysCode; + } + //设置请求参数 + var pageNum = (params.data.offset/params.data.limit)+1; + var req= { + baseRequest:{ + pageNum:pageNum, + pageSize:params.data.limit + }, + sysCode:sysCode, + roleName:roleName, + id:id, + roleCode:'' + }; + var easyUIOps = { + method: params.type, + url: dataUrl.util.getQueryRoles(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + //console.log(res); + if(isError(res)){ + return false; + } + params.success(res.data); + } + }; + sysAjax(easyUIOps); + } +})(); diff --git a/assets/syspages/js/rbac/userManage.js b/assets/syspages/js/rbac/userManage.js new file mode 100644 index 0000000..e701095 --- /dev/null +++ b/assets/syspages/js/rbac/userManage.js @@ -0,0 +1,1378 @@ +/** + * Created by chenbiao on 18/10/30. + */ + +//添加用户 +//定义全局变量 +var sysCode=null; +var sysName=null; +var loginCode=null; +var loginName=null; +var loginPhone=null; +(function () { + + var userfun = { + getSysCodeAndSysName:function(){ + sysCode=sessionStorage.getItem("sysCode"); + sysName=sessionStorage.getItem("sysName"); + //alert(sysCode+sysName); + if(sysCode == undefined || sysName ==undefined){ + swal({title:"提示",text:"获取权限失败",type:"warning",timer:3000,allowOutsideClick:true}); + } + }, + init:function(){ + //alert(sessionStorage.getItem("sysCode")+","+sessionStorage.getItem("sysName")); + //close弹窗 + userfun.dateInit(); + documentBindFunc.on('click','.user_close_alert',function () { + userfun.close_alert(); + }); + documentBindFunc.on('click','.user_close_alert_org',function () { + userfun.user_close_alert_org(); + }); + documentBindFunc.on('click','.roler_close_alert_org',function () { + userfun.roler_close_alert_org(); + }); + documentBindFunc.on('click','.departmentrolercancel_btn',function () { + userfun.roler_cancel(); + }); + documentBindFunc.on('click','.departmentAlertcancel_btn',function () { + userfun.user_close_alert_org(); + }); + + //cancel弹窗 + documentBindFunc.on('click','#user_alert_cancel',function () { + // fun.close_alert(); + $('#id').val(''); + $('#user_roleIds').selectpicker('val', ''); + userfun.alert_cancel(); + }); + //alert_ok弹窗 + documentBindFunc.on('click','#user_alert_ok',function () { + userfun.alert_ok(); + }); + + + //分配角色内容 + $('#roler-conten li').live('click',function () { + $(this).addClass('roler-mes-active').siblings('li').removeClass('roler-mes-active') + }); + $('#addroler-content li').live('click',function () { + + $(this).addClass('roler-mes-active').siblings('li').removeClass('roler-mes-active') + }); + //添加按钮 + documentBindFunc.on('click','#add_opt',function () { + var _that = $(this); + $.each($('#roler-conten li'),function () { + + if($(this).hasClass('roler-mes-active')){ + var text = $(this).text(); + var id = $(this).attr('data-value'); + //判断右侧是否已经存在了 + var getli = $("#addroler-content").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli, function(index,rows) { + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#addroler-content').append(roles); + }else{ + $(this).remove(); + } + }else{ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#addroler-content').append(roles); + } + + + } + }) + }); + //添加所有 + documentBindFunc.on('click','#addall_opt',function () { + $.each($('#roler-conten li'),function () { + var text = $(this).text(); + var id = $(this).attr('data-value'); + //判断右侧是否已经存在了 + var getli = $("#addroler-content").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli, function(index,rows) { + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#addroler-content').append(roles); + }else{ + $(this).remove(); + } + }else{ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#addroler-content').append(roles); + } + }); + }); + //删除所有 + documentBindFunc.on('click','#removeall_opt',function () { + $.each($('#addroler-content li'),function () { + var text = $(this).text(); + var id = $(this).attr('data-value'); + //判断左侧 + var getli = $("#roler-conten").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli,function(index,row){ + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#roler-conten').append(roles); + }else{ + $(this).remove(); + + } + }else{ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#roler-conten').append(roles); + } + }) + }); + //删除 + documentBindFunc.on('click','#remove_opt',function () { + var _that = $(this); + $.each($('#addroler-content li'),function () { + if($(this).hasClass('roler-mes-active')){ + var text = $(this).text(); + var id = $(this).attr('data-value'); + //判断左侧 + var getli = $("#roler-conten").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli,function(index,row){ + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#roler-conten').append(roles); + }else{ + $(this).remove(); + } + }else{ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#roler-conten').append(roles); + } + } + }) + }); + //初始化table + userfun.initTable(); + //如果data为空的时候处理 + $('.no-records-found td').append('暂无信息,可使用 “添加用户” 按钮为系统添加用户信息') + //条件查询 + documentBindFunc.on('click','#select_page_user',function(){ + loginCode = $('#select_page_user_number').val(); + loginName = $('#select_page_user_name').val(); + loginPhone = $('#select_page_user_phone').val(); + // beginTime=$('#prev_date').val(); + // endTime=$('#next_date').val(); + //orgId=$('#user_id_display_org').find('span').text(); + //roleId=$('#user_id_display_role').find('span').text(); + userfun.initTable(); + }); + //删除用户 + documentBindFunc.on('click','[deleteUser]',function(){ + userfun.deleteUser(this); + }); + //修改用户 + documentBindFunc.on('click','[modifyUser]',function(){ + //fun.initComboboxUser_role(); + userfun.modifyUser(this); + //隐藏密码 + document.getElementById("use_resetPwd").style.display="none"; + + }); + + //添加用户 + documentBindFunc.on('click','._user_operate_s',function(){ + //fun.initComboboxUser_role(); + userfun.addUser(); + }); + //重置密码 + documentBindFunc.on('click','[resetUser]',function(){ + userfun.resetPassword(this); + }); + //分配组织确认 + $('#departmentAlert_btn').on('click',function () { + + var ids=Tree.getCheckedNodesId(true); // 获取选中的id + if(ids== null || ids.length<1 ){ + swal({title:"提示",text:"请选择组织!",type:"error",timer:3000,allowOutsideClick:true}); + return false; + } + var userId = $('#userTable input:radio:checked').attr("data-value"); + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysOpId:userId, + sysCode:sysCode, + sysOrgIdList:ids + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.saveSysOpAndSysOrgRelation(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.data != null){ + var data=res.data; + if(data){ + //将选择的二级节点id到用户表组织id中 + var orgId = Tree.getCheckedNodesIdForOrgLevel(true,2); + if(orgId != "" || orgId != null){ + var reqUpdataOrg={ + opId:userId, + orgId:orgId, + sysCode:sysCode + } + sysAjax({ + method:'POST', + url: dataUrl.util.updateSysOpOrgIdByOpId(), + data: JSON.stringify(reqUpdataOrg), + dataType:'json', + async:false, + success: function(res){ + if(res.code='8888'){ + if(!res.data){ + swal({title:"提示",text:"更新用户组织ID失败!",type:"error",timer:3000,allowOutsideClick:true}); + return false; + } + }else{ + swal({title:"提示",text:"系统错误!",type:"error",timer:3000,allowOutsideClick:true}); + return false; + } + } + }); + } + + $('#userTable input:radio:checked').attr("checked",false); + $('#departmentAlert,#alert_over').hide(); + sweetAlert({ + title: "提示", + text: "保存成功!", + type: "success", + showCancelButton: false, + confirmButtonColor: "#32c5d2", + closeOnConfirm: false, + timer:3000 + }); + }else{ + sweetAlert("提示", "保存用户组织关系失败", "error"); + return false; + } + + }else{ + sweetAlert("提示", "系统异常", "error"); + return false; + } + + } + }); + + + }); + //分配部门 + documentBindFunc.on('click','#add_section',function () { + userfun.departmentAlert(); + }); + //分配角色 + documentBindFunc.on('click','#add_roler',function () { + userfun.departmentrolerAlert(); + }); + + //保存角色 + documentBindFunc.on('click','#departmentrolerAlert_btn',function () { + userfun.saveUserRole(); + }); + + }, + dateInit:function () { + $('#timeinEndDate').val(moment().subtract('years', -5).format('YYYY-MM-DD')); + //开始日期 + $("#timeinEndDate").datetimepicker({ + // startDate: moment().subtract('days', 0).format('YYYY-MM-DD'), + format: 'yyyy-mm-dd', + autoclose: true, + startView: 2, + minView: 2, + forceParse: false, + locale: "zh-CN", + language: 'zh-CN', + pickerPosition: "top-left" + }) + }, + //关闭二级弹窗 + cancelPark:function () { + $('#addOrg_over,#addOrg_alert_con').hide(); + $('#role_alert_con,#alert_over').show(); + }, + //保存用户角色信息 + saveUserRole:function(){ + //1.获取用户id + var userId = $('#userTable input:radio:checked').attr("data-value"); + //var sysCode = $('#sysCodeHidde').val(); + var sysRoleIdList = new Array(); + //查找右侧所有选择的角色id + var li =$('#addroler-content').find('li'); + $.each(li, function(index,row) { + var roleId=$(this).attr('data-value'); + if(roleId != null){ + sysRoleIdList[index] = roleId; + } + }); + if(sysRoleIdList != null && sysRoleIdList.length >1){ + swal({title:"提示",text:'用户只能选择一个角色',type:"warning",timer:6000,allowOutsideClick:true}); + return false; + } + var req={ + "sysOpId": userId, + "sysCode":sysCode, + "sysRoleIdList":sysRoleIdList + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.saveUserRoles(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.data != null){ + var data=res.data; + if(data){ + $('#example-getting-started').multiselect('select', ''); + $('#departmentrolerAlert,#alertroler_over').hide(); + //刷新表格 + var opt = { + url: dataUrl.util.getQueryUsersList(), + silent: true, + query:{ + baseRequest:{ + pageNum:1, + pageSize:10 + }, + sysCode:sysCode, + loginCode:loginCode, + opName:loginName, + telephone:loginPhone + } + }; + $("#userTable").bootstrapTable('refresh'); + swal({title:"提示",text:"保存成功",type:"success",timer:3000,allowOutsideClick:true}); + + }else{ + $("#userTable").bootstrapTable('refresh'); + swal({title:"提示",text:"保存失败,请重新添加",type:"error",timer:3000,allowOutsideClick:true}); + } + + } + + } + }); + }, + //初始化表格数据 + initTable:function(){ + $('#userTable').bootstrapTable('destroy').bootstrapTable({ + striped:true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber:1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10,15,20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method:'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax:tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'state', title: ' ',width: '2%', align: 'left',formatter:userfun.checkedFormatter}, + {field: 'id', title: 'ID', visible: false, align: 'left'}, + {field: 'remark', title: '用户描述', visible: false, align: 'left'}, + {field: 'loginCode', title: '账号', width: '10%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'opName', title: '姓名', width: '8%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'sex', title: '性别', width: '5%', align: 'left',formatter:commonObj.sexFormatter,cellStyle:commonObj.formatTableUnit}, + {field: 'age', title: '年龄', width: '5%', align: 'left',formatter:commonObj.replacenull,cellStyle:commonObj.formatTableUnit}, + {field: 'telephone', title: '手机号', width: '10%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'email', title: '邮箱', width: '5%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'dataState', title: '状态', width: '5%', align: 'left',formatter:userfun.dataStateFormatter,cellStyle:commonObj.formatTableUnit}, + // {field: 'createEmpid', title: '创建人', width: '10%', align: 'left',cellStyle:commonObj.formatTableUnit}, + {field: 'createDate', title: '创建时间', width: '15%', align: 'left',formatter:commonObj.timeFormatter,cellStyle:commonObj.formatTableUnit}, + {field: 'sysCode', title: '系统名称', width: '2%', align: 'left',formatter:userfun.sysCodeFormatter,cellStyle:commonObj.formatTableUnit}, + {field: 'oper', title: '操作', width: '23%', align: 'left',formatter:userfun.operFormatter,cellStyle:commonObj.formatTableUnit} + ], + onClickRow: function (row,$element) { + var id=row.id; + $('#userTable input:radio[data-value="'+id+'"]').attr("checked","checked"); + } + }); + }, + checkedFormatter:function (value,row,index) { + var checkStr=""; + /*var checkStr='
                                '+ + ''+ + '
                                ';*/ + return checkStr; + }, + //操作显示 + operFormatter:function(value,row,index){ + var operStr ='修改'+ + '重置密码'+ + '删除'; + return operStr; + }, + dataStateFormatter:function(value,row,index){ + if(1==value){ + return "开通"; + }else{ + return "锁定"; + } + }, + sysCodeFormatter:function(value,row,index){ + if(sysName==null ||sysName=='' ||sysName==undefined){ + return ""; + }else{ + return sysName; + } + }, + + //添加用户 + addUser:function(){ + $('#user_alert_ok').html('保存'); + // document.getElementById("user_dataState_display").style.display="none"; + $('#role_alert_error').text(''); + $('#sysName').val(sysName); + //$('input').val(''); + $('#loginCode').val(''); + $('#opName').val(''); + $('#sex_value').val(''); + $('#remark').val(''); + $('#telephone').val(''); + $('#userage').val(''); + $('#userEmail').val(''); + // userfun.dateInit(); + //Tree.checkAllNodes(false); + $('#alert_over').append($('#user_llw_alert_con')); + $('#role_alert_title').html('添加用户'); + $('#user_alert_ok').attr('oper','saveUser'); + $('#alert_over,#user_llw_alert_con').show(); + }, + //修改角色 + modifyUser:function(element){ + $('#user_alert_ok').html('保存'); + + // document.getElementById("user_dataState_display").style.display=""; + $('#role_alert_error').text(''); + $('select').val(''); + //设置值 + var id = $(element).attr('data-value'); + //根据唯一值获取行数据 + var modifyRow = $('#userTable').bootstrapTable('getRowByUniqueId', id); + + $('#id').val(id); + $('#sysName').val(sysName); + $('#loginCode').val(modifyRow.loginCode); + $('#opName').val(modifyRow.opName); + $('#user_sex').val(modifyRow.sex); + if(modifyRow.sex==1){ + $('#user_sex').text("男"); + }else{ + $('#user_sex').text("女"); + } + + if(modifyRow.dataState==1){ + $('#user_dataState').text("正常"); + + }else{ + $('#user_dataState').text("锁定"); + } + + $('#remark').val(modifyRow.remark);debugger + $('#timeinEndDate').val(commonObj.timeOneFormatter(modifyRow.acctEndDate)); + $('#telephone').val(modifyRow.telephone); + //filter-option pull-left + $('#userage').val(modifyRow.age); + $('#userEmail').val(modifyRow.email); + + $('#alert_over').append($('#user_llw_alert_con')); + $('#role_alert_title').html('修改用户'); + $('#user_alert_ok').attr('oper','updateUser'); + $('#alert_over,#user_llw_alert_con').show(); + + }, + //删除用户 + deleteUser:function(element){ + $('.popMask').remove(); + var loginCode = $(element).attr('loginCode'); + var id= $(element).attr('data-value'); + var content = $('确定要删除用户('+loginCode+')吗?'); + var popAlert = new Pop({ + header:'信息提示', + content:content, + buttons:[ + { + type:'popCancle', + text:'取消' + }, + { + type:'popOk', + text:'确定', + callback:function(){ + //删除用户 + var req= { + sysCode:sysCode, + id:id + }; + var easyUIOps = { + method: "post", + url: dataUrl.util.deleteUser, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(isError(res)){ + return false; + } + $('#id').val(''); + $('#userTable').bootstrapTable('refresh', {silent: true}); + } + }; + sysAjax(easyUIOps); + popAlert.close(); + $('#id').val(''); + //刷新table + + + } + }, + + ] + }); + + }, + + //show + show_alert:function () { + $('#alert_over').append($('#user_llw_alert_con')); + $('#alert_over,#user_llw_alert_con').show(); + }, + //clsoe + close_alert:function () { + $('#example-getting-started').multiselect('select', ''); + $('#alert_over,#user_llw_alert_con').hide(); + }, + user_close_alert_org:function () { + $('#example-getting-started').multiselect('select', ''); + $('#departmentAlert,#alert_over').hide(); + }, + roler_close_alert_org:function () { + $('#example-getting-started').multiselect('select', ''); + $('#departmentrolerAlert,#alertroler_over').hide(); + }, + roler_cancel:function () { + $('#example-getting-started').multiselect('select', ''); + $('#departmentrolerAlert,#alertroler_over').hide(); + }, + //cancel + alert_cancel:function () { + $('#example-getting-started').multiselect('select', ''); + $('#alert_over,#user_llw_alert_con').hide(); + }, + + //分配部门 + departmentAlert:function () { + $('#alert_over').find('#user_llw_alert_con').hide(); + $('#alert_over').append($('#departmentAlert')); + //1.判断是否选中 + var isChecked= $('#userTable input:radio:checked').attr("checked"); + var userId=""; + if(!isChecked){ + swal({title:"提示",text:"请选择一行用户记录",type:"warning",timer:300000,allowOutsideClick:true}); + return false; + }else{ + userId = $('#userTable input:radio:checked').attr("data-value"); + //var sysCodeS=$('#sysCodeHidde').val(); + //初始化tree + Tree.initTree(); + //获取用户已拥有的组织 + var ids = new Array(); + ids[0] =userId; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode, + ids:ids + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.queryOrgIdsByOpIds(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.data != null){ + var data=res.data; + Tree.updateNodesForChecked(data); + $('#departmentAlert').show(); + $('#alert_over').show(); + }else{ + sweetAlert("提示", "系统异常", "error"); + return false; + } + + } + }); + + } + + }, + //分配角色 + departmentrolerAlert:function () { + //1.判断是否选中 + //var isChecked= $('#userTable input:radio:checked').attr("checked"); + var isChecked= $("#userTable input[type='radio']:checked").val(); + var userId=""; + if(isChecked == undefined || isChecked == null || isChecked !='on'){ + //sweetAlert("提示", "请选择一行用户记录", "warning"); + swal({title:"提示",text:"请选择一行用户记录",type:"warning",timer:3000,allowOutsideClick:true}); + return false; + }else{ + userId = $('#userTable input:radio:checked').attr("data-value"); + //2.获取所有角色信息 + //var sysCodeS=$('#sysCodeHidde').val(); + sysAjax({ + method: 'POST', + url: dataUrl.util.queryRoleBysysCode(), + data:{"sysCode":sysCode}, + contentType: 'application/x-www-form-urlencoded', + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.data != null){ + var data=res.data; + $('#roler-conten').empty(); + var roles = ''; + $.each(data, function(index,row) { + roles +='
                              • '+row.roleName+'
                              • '; + }); + $('#roler-conten').html(roles); + $('#alertroler_over,#departmentrolerAlert').show(); + } + + } + }); + //3.通过用户id查询该用户的角色 + + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode, + id:userId + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.queryRolesByUserId(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.data != null){ + var data=res.data; + $('#addroler-content').empty(); + var roles = ''; + $.each(data, function(index,row) { + roles +='
                              • '+row.roleName+'
                              • '; + }); + $('#addroler-content').html(roles); + + } + + } + }); + } + + + }, + //alert_ok + alert_ok:function () { + //验证参数 + userfun.validateUser(); + var errmsg = $('#role_alert_error').text(); + if(errmsg !=''){ + return false; + } + //拼接请求参数 + var url = ''; + if($('#user_alert_ok').attr("oper")=='saveUser'){ + url = dataUrl.util.saveUser; + }else if($('#user_alert_ok').attr("oper")=='updateUser'){ + url = dataUrl.util.updateUser; + } + + + var createEmpid=StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var dataState=$('#user_dataState').find('span').text(); + var req= { + "id": $('#id').val(), + "loginCode": $('#loginCode').val(), + "opName": $('#opName').val(), + "telephone": $('#telephone').val(), + "sex":$('#user_sex').find('span').text(), + "remark":$('#remark').val(), + "acctEndDate":$('#timeinEndDate').val(), + "dataState":dataState, + "email":$('#userEmail').val(), + //不能为空的字段 + "opCode":"222", + "createEmpid":createEmpid, + "age":$('#userage').val(), + "sysCode":sysCode + }; + var easyUIOps = { + method:'POST', + url: url, + data: JSON.stringify(req), + success: function(){ + $('#alert_over,#user_llw_alert_con').hide(); + $('#id').val(''); + //alert("成功"); + //刷新table + if($('#user_alert_ok').attr("oper")=='saveUser'){ + userfun.initTable(); + }else{ + $('#userTable').bootstrapTable('refresh'); + } + } + }; + sysAjax(easyUIOps); + }, + //验证参数 + validateUser:function(){ + + var checkFlg =true; + var userVal = $('#loginCode').val(); + var errorIfo = $('#role_alert_error'); + //姓名 + var opName = $('#opName').val(); + //年龄 + var age= $('#userage').val(); + //联系电话 + var telephone = $('#telephone').val(); + //邮箱 + var userEmail=$('#userEmail').val(); + //性别 + var sex = $('#user_sex').find('span').text(); + //用户描述 + var userDescription = $('#remark').val(); + + var regular = /^([^\`\+\~\!\#\$\%\^\&\*\(\)\|\}\{\=\"\'\!\¥\……\(\)\——]*[\+\~\!\#\$\%\^\&\*\(\)\|\}\{\=\"\'\`\!\?\:\<\>\•\“\”\;\‘\‘\〈\ 〉\¥\……\(\)\——\{\}\【\】\\\/\;\:\?\《\》\。\,\、\[\]\,]+.*)$/; + + + //用户名字 + if(StrUtil.isEmpty(userVal)){ + errorIfo.text('请填写账号'); + return false; + }else if(userVal.indexOf(' ')>=0||regular.test(userVal)){ + errorIfo.text('账号不能包含空格或者标点符号'); + return false; + }else if(!(/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/).test(userVal)){ + errorIfo.text('账号必填且格式必须是邮箱形式'); + return false; + }else if(userVal.length>31){ + errorIfo.text('账号不能超过32位'); + return false; + }else{ + if($('#user_alert_ok').attr("oper")=='saveUser'){ + var req= { + "loginCode": ($('#loginCode').val()).trim(), + "sysCode":sysCode + }; + var easyUIOps = { + async:false, + method:'POST', + url: dataUrl.util.queryLoginCodeIsUsed, + data: JSON.stringify(req), + success: function(res){ + console.log(res) + if(!res.data){ + checkFlg=false; + + } + } + }; + sysAjax(easyUIOps); + errorIfo.text(''); + } + /* if(checkFlg){ + errorIfo.text('该账号已经存在,请勿重复添加!'); + return false; + }*/ + + }; + + //姓名 + if(StrUtil.isEmpty(opName)){ + errorIfo.text('请输入姓名'); + return false; + }else if(opName.length>31){ + errorIfo.text('姓名不能超过32位'); + return false; + }else{ + errorIfo.text(''); + }; + if(StrUtil.isEmpty(age)){ + errorIfo.text('请输入年龄'); + return false; + }else if(!(/^\+?[1-9][0-9]*$/).test(age)){ + errorIfo.text('年龄必须是正整数'); + return false; + }else if(age>120){ + errorIfo.text('年龄不能超过120岁'); + return false; + }else{ + errorIfo.text(''); + }; + //联系电话 + if(StrUtil.isEmpty(telephone)){ + errorIfo.text('请输入联系电话'); + return false; + }else if(!(/^1[34578]\d{9}$/.test(telephone))){ + errorIfo.text('请输入正确联系电话'); + return false; + }else{ + errorIfo.text(''); + }; + + if(StrUtil.isEmpty(userEmail)){ + errorIfo.text('请输入邮箱'); + return false; + }else if(!(/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/).test(userEmail)){ + errorIfo.text('请输入正确的邮箱'); + return false; + }else{ + errorIfo.text(''); + }; + + //用户描述 + if(StrUtil.isEmpty(userDescription)){ + errorIfo.text('请输入用户描述'); + return false; + }else if(userDescription.length>64){ + errorIfo.text('用户描述不能超过64位'); + return false; + }else{ + errorIfo.text(''); + }; + + + + }, + //重置密码 + resetPassword:function (element) { + $('.popMask').remove(); + var loginCode = $(element).attr('loginCode'); + var id= $(element).attr('data-value'); + var pwdAlert = new Pop({ + header:'信息提示', + content:$('确定要重置选中的用户密码吗?'), + buttons:[ + { + type:'popOk', + text:'保存', + callback:function(){ + pwdAlert.close(); + var resetAlert = new Pop({ + width:'400px', + header:'信息提示', + content:$('
                                新密码 :
                                重复新密码 :
                                '), + buttons:[ + { + type:'popOk', + text:'保存', + callback:function(){ + var newPwd = $('#reset_newpwd').val(); + var confirmPwd = $('#reset_confirmpwd').val(); + if(StrUtil.isEmpty(newPwd)||StrUtil.isEmpty(confirmPwd)){ + $('#reset_pwd_ifo').text('请输入密码'); + return false; + }else{ + $('#reset_pwd_ifo').text(''); + }; + //密码输入规则 + if (7 < newPwd.length < 17 && newPwd.indexOf(' ') < 0 && checkPass(newPwd)>=2) { + $('#reset_pwd_ifo').text(''); + } else { + $('#reset_pwd_ifo').text('密码由8-16个字符组成,必须包含数字及字母,不能包含空格'); + return false; + }; + //密码两次是否相同 + if (newPwd == confirmPwd) { + $('#reset_pwd_ifo').text(''); + } else { + $('#reset_pwd_ifo').text('两次输入密码不一致'); + return false; + }; + //然后可以请求ajax了 。成功了把下面两行代码复制进去 + //拼接请求参数 + var req= { + "id": id, + "loginPassword":newPwd, + "sysCode":sysCode + }; + var easyUIOps = { + method:'POST', + url: dataUrl.util.resetUserPwd, + data: JSON.stringify(req), + success: function(){ + $('#alert_over,#user_llw_alert_con').hide(); + $('#id').val(''); + //alert("成功"); + //刷新table + $('#userTable').bootstrapTable('refresh', {silent: true}); + //fun.initTable(); + pwdAlert.close(); + resetAlert.close(); + } + }; + sysAjax(easyUIOps); + + + } + }, + { + type:'popCancle', + text:'取消' + } + ] + }); + } + }, + { + type:'popCancle', + text:'取消' + } + ] + }); + }, + + + }; + + +//构建树 + var Tree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#user_org_tree"), Tree.setting, Tree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.expandAll(false); + //Tree.setChkDisabled(treeObj); + }, + setting: { + view: { + selectedMulti: false //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "radio", + radioType:"all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + + + }, + edit: { + enable: false + + } + }, + //禁止选择非末级节点 + setChkDisabled: function(treeObj){ + var node = treeObj.getNodes(); + var nodes = treeObj.transformToArray(node); + for (var i=0, l=nodes.length; i < l; i++) { + if(nodes[i].isParent){ + treeObj.setChkDisabled(nodes[i], true,true,false); + + } + + } + }, + //展开某一个选中节点 + expandNode:function(ids){ + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + + for (var i = 0; i < ids.length; i++) { + var node = Tree.getNodeById(ids[i]); + treeObj.expandNode(node, true, true, true); + } + + + + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = Tree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node==null){ + continue; + } + node.checked = true; + Tree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var treeNode = Tree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id获取某个节点 + getNodeByIdAndorgLevel: function (id,orgLevel) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + if(node != null && node.orgLevel != null && node.orgLevel != orgLevel){ + node= Tree.getNodeByIdAndorgLevel(node.pId,orgLevel); + } + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = Tree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + var index=0; + for (var i = 0; i < nodes.length; i++) { + if(!nodes[i].isParent){ + ids[index++] = nodes[i].id + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的组织级别节点ID集合 + getCheckedNodesIdForOrgLevel: function (checked,orgLevel) { + ; + var ids = ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + + for (var i = 0; i < nodes.length; i++) { + if(orgLevel ==nodes[i].orgLevel){ + ids= nodes[i].id + }else{ + if(nodes[i].orgLevel =="1"){ + ids="-1"; + }else{ + var nodesParent = Tree.getNodeByIdAndorgLevel(nodes[i].pId,orgLevel); + if(nodesParent != null){ + ids=nodesParent.id; + } + + } + + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names= ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names+","+nodes[i].name; + } + return names; + }, + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData:function() { + //var sysCodeHidde = $('#sysCodeHidde').val(); + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode + }; + sysAjax({ + method:'POST', + url: dataUrl.util.getOrgTreeBySysCode(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + zNodes =res.data; + } + }); + //增加一个公告根节点 +// zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } + } +//获取sysCode 和sysName + userfun.getSysCodeAndSysName(); + //初始执行 + userfun.init(); + + + /** + * 处理错误信息 + * @param {Object} res + */ + function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + var errorPop = new Pop({ + header:'错误提示', + content:$(''+res.msg+''), + buttons:[{ + type:'popOk', + text:'保存' + }] + }); + return true; + }else{ + return false; + } + } + + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params){ + //设置请求参数 + var pageNum = (params.data.offset/params.data.limit)+1; + //条件查询 + var req= { + baseRequest:{ + pageNum:pageNum, + pageSize:params.data.limit + }, + sysCode:sysCode, + loginCode:loginCode, + opName:loginName, + telephone:loginPhone + + }; + var easyUIOps = { + method: params.type, + url: dataUrl.util.getQueryUsersList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code == '8888'){ + params.success(res.data); + }else{ + + } + } + }; + sysAjax(easyUIOps); + } +})(); + +var TTDiy_select = new diy_select({ //参数可选 + TTContainer: 'diy_select', //控件的class + TTDiy_select_input: 'diy_select_input', //用于提交表单的class + TTDiy_select_txt: 'diy_select_txt', //diy_select用于显示当前选中内容的容器class + TTDiy_select_btn: 'diy_select_btn', //diy_select的打开按钮 + TTDiv_select_list: 'diy_select_list', //要显示的下拉框内容列表class + TTFcous: 'focus' //得到焦点时的class +}); //如同时使用多个时请保持各class一致. + +//日历 +;(function($){ + $.fn.fdatepicker.dates['zh-CN'] = { + days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], + daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"], + daysMin: ["日", "一", "二", "三", "四", "五", "六"], + months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], + monthsShort: ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"], + // today: '今天' + }; +}(jQuery)); +//设置前一个月显示默认时间 +function showpretime(){ + var mydate = new Date(); + var month = mydate.getMonth(); + var data = mydate.getDate(); + if(data<10){ + data='0'+data; + }; + if(month=='0'){ + month='12'; + } + if(month<10){ + month = '0'+month; + }; + + + var str = "" + mydate.getFullYear() + "-"; + str += month + "-"; + str += data ; + return str; +}; +function shownowtime(){ + var mydate = new Date(); + var month = mydate.getMonth()+1; + var data = mydate.getDate(); + if(data<10){ + data='0'+data; + }; + if(month<10){ + month = '0'+month; + }; + + var str = "" + mydate.getFullYear() + "-"; + str += month + "-"; + str += data ; + return str; +} +$('#prev_date').val(showpretime()); +$('#next_date').val(shownowtime()); +$('#prev_date').fdatepicker({ + format: 'yyyy-mm-dd', + defaultDate: '-1M', +}); +$('#next_date').fdatepicker({ + format: 'yyyy-mm-dd', + defaultDate: +7, + // endDate:'+1', + +}); +//检测必须有字母和数字 +function checkPass(pass) { + var ls=0; + if (pass.match(/[a-zA-Z]+/)) { + ls++; + } + if (pass.match(/([0-9])+/)) { + ls++; + } + if (pass.match(/[^a-zA-Z0-9]+/)) { + ls++; + } + return ls; +}; + +//刷新表格 +function refreshTabel(){ + var opt = { + url: dataUrl.util.getQueryUsersList(), + silent: true, + query:{ + baseRequest:{ + pageNum:1, + pageSize:10 + }, + sysCode:sysCode, + loginCode:loginCode, + opName:loginName, + telephone:loginPhone + } + }; + $("#userTable").bootstrapTable('refresh'); + +}; + + + + + + + + + diff --git a/assets/syspages/js/rbac/userManage.jsbak b/assets/syspages/js/rbac/userManage.jsbak new file mode 100644 index 0000000..9b5563d --- /dev/null +++ b/assets/syspages/js/rbac/userManage.jsbak @@ -0,0 +1,1359 @@ +/** + * Created by chenbiao on 18/10/30. + */ + +//添加用户 +//定义全局变量 +var sysCode=null; +var sysName=null; +var loginCode=null; +var loginName=null; +var loginPhone=null; +(function () { + + var userfun = { + getSysCodeAndSysName:function(){ + sysCode=sessionStorage.getItem("sysCode"); + sysName=sessionStorage.getItem("sysName"); + //alert(sysCode+sysName); + if(sysCode == undefined || sysName ==undefined){ + swal({title:"提示",text:"获取权限失败",type:"warning",timer:3000,allowOutsideClick:true}); + } + }, + init:function(){ + //alert(sessionStorage.getItem("sysCode")+","+sessionStorage.getItem("sysName")); + //close弹窗 + documentBindFunc.on('click','.user_close_alert',function () { + userfun.close_alert(); + }); + documentBindFunc.on('click','.user_close_alert_org',function () { + userfun.user_close_alert_org(); + }); + documentBindFunc.on('click','.roler_close_alert_org',function () { + userfun.roler_close_alert_org(); + }); + documentBindFunc.on('click','.departmentrolercancel_btn',function () { + userfun.roler_cancel(); + }); + documentBindFunc.on('click','.departmentAlertcancel_btn',function () { + userfun.user_close_alert_org(); + }); + + //cancel弹窗 + documentBindFunc.on('click','#user_alert_cancel',function () { + // fun.close_alert(); + $('#id').val(''); + $('#user_roleIds').selectpicker('val', ''); + userfun.alert_cancel(); + }); + //alert_ok弹窗 + documentBindFunc.on('click','#user_alert_ok',function () { + userfun.alert_ok(); + }); + + + //分配角色内容 + $('#roler-conten li').live('click',function () { + $(this).addClass('roler-mes-active').siblings('li').removeClass('roler-mes-active') + }); + $('#addroler-content li').live('click',function () { + + $(this).addClass('roler-mes-active').siblings('li').removeClass('roler-mes-active') + }); + //添加按钮 + documentBindFunc.on('click','#add_opt',function () { + var _that = $(this); + $.each($('#roler-conten li'),function () { + + if($(this).hasClass('roler-mes-active')){ + var text = $(this).text(); + var id = $(this).attr('data-value'); + //判断右侧是否已经存在了 + var getli = $("#addroler-content").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli, function(index,rows) { + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#addroler-content').append(roles); + }else{ + $(this).remove(); + } + }else{ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#addroler-content').append(roles); + } + + + } + }) + }); + //添加所有 + documentBindFunc.on('click','#addall_opt',function () { + $.each($('#roler-conten li'),function () { + var text = $(this).text(); + var id = $(this).attr('data-value'); + //判断右侧是否已经存在了 + var getli = $("#addroler-content").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli, function(index,rows) { + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#addroler-content').append(roles); + }else{ + $(this).remove(); + } + }else{ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#addroler-content').append(roles); + } + }); + }); + //删除所有 + documentBindFunc.on('click','#removeall_opt',function () { + $.each($('#addroler-content li'),function () { + var text = $(this).text(); + var id = $(this).attr('data-value'); + //判断左侧 + var getli = $("#roler-conten").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli,function(index,row){ + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#roler-conten').append(roles); + }else{ + $(this).remove(); + + } + }else{ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#roler-conten').append(roles); + } + }) + }); + //删除 + documentBindFunc.on('click','#remove_opt',function () { + var _that = $(this); + $.each($('#addroler-content li'),function () { + if($(this).hasClass('roler-mes-active')){ + var text = $(this).text(); + var id = $(this).attr('data-value'); + //判断左侧 + var getli = $("#roler-conten").find('li'); + if(getli != null && getli.length > 0){ + var existId= false; + $.each(getli,function(index,row){ + var getId = $(this).attr('data-value'); + if(getId == id){ + existId =true; + } + }); + if(!existId){ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#roler-conten').append(roles); + }else{ + $(this).remove(); + } + }else{ + $(this).remove(); + var roles ='
                              • '+text+'
                              • '; + $('#roler-conten').append(roles); + } + } + }) + }); + //初始化table + userfun.initTable(); + //如果data为空的时候处理 + $('.no-records-found td').append('暂无信息,可使用 “添加用户” 按钮为系统添加用户信息') + //条件查询 + documentBindFunc.on('click','#select_page_user',function(){ + loginCode = $('#select_page_user_number').val(); + loginName = $('#select_page_user_name').val(); + loginPhone = $('#select_page_user_phone').val(); + // beginTime=$('#prev_date').val(); + // endTime=$('#next_date').val(); + //orgId=$('#user_id_display_org').find('span').text(); + //roleId=$('#user_id_display_role').find('span').text(); + userfun.initTable(); + }); + //删除用户 + documentBindFunc.on('click','[deleteUser]',function(){ + userfun.deleteUser(this); + }); + //修改用户 + documentBindFunc.on('click','[modifyUser]',function(){ + //fun.initComboboxUser_role(); + userfun.modifyUser(this); + //隐藏密码 + document.getElementById("use_resetPwd").style.display="none"; + + }); + + //添加用户 + documentBindFunc.on('click','._user_operate_s',function(){ + //fun.initComboboxUser_role(); + userfun.addUser(); + }); + //重置密码 + documentBindFunc.on('click','[resetUser]',function(){ + userfun.resetPassword(this); + }); + //分配组织确认 + $('#departmentAlert_btn').on('click',function () { + + var ids=Tree.getCheckedNodesId(true); // 获取选中的id + if(ids== null || ids.length<1 ){ + swal({title:"提示",text:"请选择组织!",type:"error",timer:3000,allowOutsideClick:true}); + return false; + } + var userId = $('#userTable input:radio:checked').attr("data-value"); + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysOpId:userId, + sysCode:sysCode, + sysOrgIdList:ids + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.saveSysOpAndSysOrgRelation(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.data != null){ + var data=res.data; + if(data){ + //将选择的二级节点id到用户表组织id中 + var orgId = Tree.getCheckedNodesIdForOrgLevel(true,2); + if(orgId != "" || orgId != null){ + var reqUpdataOrg={ + opId:userId, + orgId:orgId, + sysCode:sysCode + } + sysAjax({ + method:'POST', + url: dataUrl.util.updateSysOpOrgIdByOpId(), + data: JSON.stringify(reqUpdataOrg), + dataType:'json', + async:false, + success: function(res){ + if(res.code='8888'){ + if(!res.data){ + swal({title:"提示",text:"更新用户组织ID失败!",type:"error",timer:3000,allowOutsideClick:true}); + return false; + } + }else{ + swal({title:"提示",text:"系统错误!",type:"error",timer:3000,allowOutsideClick:true}); + return false; + } + } + }); + } + + $('#userTable input:radio:checked').attr("checked",false); + $('#departmentAlert,#alert_over').hide(); + sweetAlert({ + title: "提示", + text: "保存成功!", + type: "success", + showCancelButton: false, + confirmButtonColor: "#32c5d2", + closeOnConfirm: false, + timer:3000 + }); + }else{ + sweetAlert("提示", "保存用户组织关系失败", "error"); + return false; + } + + }else{ + sweetAlert("提示", "系统异常", "error"); + return false; + } + + } + }); + + + }); + //分配部门 + documentBindFunc.on('click','#add_section',function () { + userfun.departmentAlert(); + }); + //分配角色 + documentBindFunc.on('click','#add_roler',function () { + userfun.departmentrolerAlert(); + }); + + //保存角色 + documentBindFunc.on('click','#departmentrolerAlert_btn',function () { + userfun.saveUserRole(); + }); + + }, + //关闭二级弹窗 + cancelPark:function () { + $('#addOrg_over,#addOrg_alert_con').hide(); + $('#role_alert_con,#alert_over').show(); + }, + //保存用户角色信息 + saveUserRole:function(){ + //1.获取用户id + var userId = $('#userTable input:radio:checked').attr("data-value"); + //var sysCode = $('#sysCodeHidde').val(); + var sysRoleIdList = new Array(); + //查找右侧所有选择的角色id + var li =$('#addroler-content').find('li'); + $.each(li, function(index,row) { + var roleId=$(this).attr('data-value'); + if(roleId != null){ + sysRoleIdList[index] = roleId; + } + }); + if(sysRoleIdList != null && sysRoleIdList.length >1){ + swal({title:"提示",text:'用户只能选择一个角色',type:"warning",timer:6000,allowOutsideClick:true}); + return false; + } + var req={ + "sysOpId": userId, + "sysCode":sysCode, + "sysRoleIdList":sysRoleIdList + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.saveUserRoles(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.data != null){ + var data=res.data; + if(data){ + $('#example-getting-started').multiselect('select', ''); + $('#departmentrolerAlert,#alertroler_over').hide(); + //刷新表格 + var opt = { + url: dataUrl.util.getQueryUsersList(), + silent: true, + query:{ + baseRequest:{ + pageNum:1, + pageSize:10 + }, + sysCode:sysCode, + loginCode:loginCode, + opName:loginName, + telephone:loginPhone + } + }; + $("#userTable").bootstrapTable('refresh'); + swal({title:"提示",text:"保存成功",type:"success",timer:3000,allowOutsideClick:true}); + + }else{ + $("#userTable").bootstrapTable('refresh'); + swal({title:"提示",text:"保存失败,请重新添加",type:"error",timer:3000,allowOutsideClick:true}); + } + + } + + } + }); + }, + //初始化表格数据 + initTable:function(){ + $('#userTable').bootstrapTable('destroy').bootstrapTable({ + striped:true,//表格显示条纹 + pagination: true, //启动分页 + pageNumber:1, //当前第几页 + pageSize: 10, //每页显示的记录数 + pageList: [10,15,20], //记录数可选列表 + sidePagination: 'server',//表示服务端分页 + queryParamsType: 'limit', + method:'POST',//请求方法 + paginationPreText: '<', + paginationNextText: '>', + ajax:tableLoadRequest,//自定义ajax加载数据 + uniqueId:'id', + columns: [ + {field: 'state', title: ' ',width: '2%', align: 'left',formatter:userfun.checkedFormatter}, + {field: 'id', title: 'ID', visible: false, align: 'left'}, + {field: 'remark', title: '用户描述', visible: false, align: 'left'}, + {field: 'loginCode', title: '账号', width: '10%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'opName', title: '姓名', width: '8%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'sex', title: '性别', width: '5%', align: 'left',formatter:commonObj.sexFormatter,cellStyle:commonObj.formatTableUnit}, + {field: 'age', title: '年龄', width: '5%', align: 'left',formatter:commonObj.replacenull,cellStyle:commonObj.formatTableUnit}, + {field: 'telephone', title: '手机号', width: '10%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'email', title: '邮箱', width: '5%', align: 'left',cellStyle:commonObj.formatTableUnit,formatter:commonObj.replacenull}, + {field: 'dataState', title: '状态', width: '5%', align: 'left',formatter:userfun.dataStateFormatter,cellStyle:commonObj.formatTableUnit}, + // {field: 'createEmpid', title: '创建人', width: '10%', align: 'left',cellStyle:commonObj.formatTableUnit}, + {field: 'createDate', title: '创建时间', width: '15%', align: 'left',formatter:commonObj.timeFormatter,cellStyle:commonObj.formatTableUnit}, + {field: 'sysCode', title: '系统名称', width: '2%', align: 'left',formatter:userfun.sysCodeFormatter,cellStyle:commonObj.formatTableUnit}, + {field: 'oper', title: '操作', width: '23%', align: 'left',formatter:userfun.operFormatter,cellStyle:commonObj.formatTableUnit} + ], + onClickRow: function (row,$element) { + var id=row.id; + $('#userTable input:radio[data-value="'+id+'"]').attr("checked","checked"); + } + }); + }, + checkedFormatter:function (value,row,index) { + var checkStr=""; + /*var checkStr='
                                '+ + ''+ + '
                                ';*/ + return checkStr; + }, + //操作显示 + operFormatter:function(value,row,index){ + var operStr ='修改'+ + '重置密码'+ + '删除'; + return operStr; + }, + dataStateFormatter:function(value,row,index){ + if(1==value){ + return "开通"; + }else{ + return "锁定"; + } + }, + sysCodeFormatter:function(value,row,index){ + if(sysName==null ||sysName=='' ||sysName==undefined){ + return ""; + }else{ + return sysName; + } + }, + + //添加用户 + addUser:function(){ + $('#user_alert_ok').html('保存'); + // document.getElementById("user_dataState_display").style.display="none"; + $('#role_alert_error').text(''); + $('#sysName').val(sysName); + //$('input').val(''); + $('#loginCode').val(''); + $('#opName').val(''); + $('#sex_value').val(''); + $('#remark').val(''); + $('#telephone').val(''); + $('#userage').val(''); + $('#userEmail').val(''); + + //Tree.checkAllNodes(false); + $('#alert_over').append($('#user_llw_alert_con')); + $('#role_alert_title').html('添加用户'); + $('#user_alert_ok').attr('oper','saveUser'); + $('#alert_over,#user_llw_alert_con').show(); + }, + //修改角色 + modifyUser:function(element){ + $('#user_alert_ok').html('保存'); + + // document.getElementById("user_dataState_display").style.display=""; + $('#role_alert_error').text(''); + $('select').val(''); + //设置值 + var id = $(element).attr('data-value'); + //根据唯一值获取行数据 + var modifyRow = $('#userTable').bootstrapTable('getRowByUniqueId', id); + $('#id').val(id); + $('#sysName').val(sysName); + $('#loginCode').val(modifyRow.loginCode); + $('#opName').val(modifyRow.opName); + $('#user_sex').val(modifyRow.sex); + if(modifyRow.sex==1){ + $('#user_sex').text("男"); + }else{ + $('#user_sex').text("女"); + } + + if(modifyRow.dataState==1){ + $('#user_dataState').text("正常"); + + }else{ + $('#user_dataState').text("锁定"); + } + + $('#remark').val(modifyRow.remark); + $('#telephone').val(modifyRow.telephone); + //filter-option pull-left + $('#userage').val(modifyRow.age); + $('#userEmail').val(modifyRow.email); + + $('#alert_over').append($('#user_llw_alert_con')); + $('#role_alert_title').html('修改用户'); + $('#user_alert_ok').attr('oper','updateUser'); + $('#alert_over,#user_llw_alert_con').show(); + + }, + //删除用户 + deleteUser:function(element){ + $('.popMask').remove(); + var loginCode = $(element).attr('loginCode'); + var id= $(element).attr('data-value'); + var content = $('确定要删除用户('+loginCode+')吗?'); + var popAlert = new Pop({ + header:'信息提示', + content:content, + buttons:[ + { + type:'popCancle', + text:'取消' + }, + { + type:'popOk', + text:'确定', + callback:function(){ + //删除用户 + var req= { + sysCode:sysCode, + id:id + }; + var easyUIOps = { + method: "post", + url: dataUrl.util.deleteUser, + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(isError(res)){ + return false; + } + $('#id').val(''); + $('#userTable').bootstrapTable('refresh', {silent: true}); + } + }; + sysAjax(easyUIOps); + popAlert.close(); + $('#id').val(''); + //刷新table + + + } + }, + + ] + }); + + }, + + //show + show_alert:function () { + $('#alert_over').append($('#user_llw_alert_con')); + $('#alert_over,#user_llw_alert_con').show(); + }, + //clsoe + close_alert:function () { + $('#example-getting-started').multiselect('select', ''); + $('#alert_over,#user_llw_alert_con').hide(); + }, + user_close_alert_org:function () { + $('#example-getting-started').multiselect('select', ''); + $('#departmentAlert,#alert_over').hide(); + }, + roler_close_alert_org:function () { + $('#example-getting-started').multiselect('select', ''); + $('#departmentrolerAlert,#alertroler_over').hide(); + }, + roler_cancel:function () { + $('#example-getting-started').multiselect('select', ''); + $('#departmentrolerAlert,#alertroler_over').hide(); + }, + //cancel + alert_cancel:function () { + $('#example-getting-started').multiselect('select', ''); + $('#alert_over,#user_llw_alert_con').hide(); + }, + + //分配部门 + departmentAlert:function () { + $('#alert_over').find('#user_llw_alert_con').hide(); + $('#alert_over').append($('#departmentAlert')); + //1.判断是否选中 + var isChecked= $('#userTable input:radio:checked').attr("checked"); + var userId=""; + if(!isChecked){ + swal({title:"提示",text:"请选择一行用户记录",type:"warning",timer:300000,allowOutsideClick:true}); + return false; + }else{ + userId = $('#userTable input:radio:checked').attr("data-value"); + //var sysCodeS=$('#sysCodeHidde').val(); + //初始化tree + Tree.initTree(); + //获取用户已拥有的组织 + var ids = new Array(); + ids[0] =userId; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode, + ids:ids + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.queryOrgIdsByOpIds(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.data != null){ + var data=res.data; + Tree.updateNodesForChecked(data); + $('#departmentAlert').show(); + $('#alert_over').show(); + }else{ + sweetAlert("提示", "系统异常", "error"); + return false; + } + + } + }); + + } + + }, + //分配角色 + departmentrolerAlert:function () { + //1.判断是否选中 + //var isChecked= $('#userTable input:radio:checked').attr("checked"); + var isChecked= $("#userTable input[type='radio']:checked").val(); + var userId=""; + if(isChecked == undefined || isChecked == null || isChecked !='on'){ + //sweetAlert("提示", "请选择一行用户记录", "warning"); + swal({title:"提示",text:"请选择一行用户记录",type:"warning",timer:3000,allowOutsideClick:true}); + return false; + }else{ + userId = $('#userTable input:radio:checked').attr("data-value"); + //2.获取所有角色信息 + //var sysCodeS=$('#sysCodeHidde').val(); + sysAjax({ + method: 'POST', + url: dataUrl.util.queryRoleBysysCode(), + data:{"sysCode":sysCode}, + contentType: 'application/x-www-form-urlencoded', + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.data != null){ + var data=res.data; + $('#roler-conten').empty(); + var roles = ''; + $.each(data, function(index,row) { + roles +='
                              • '+row.roleName+'
                              • '; + }); + $('#roler-conten').html(roles); + $('#alertroler_over,#departmentrolerAlert').show(); + } + + } + }); + //3.通过用户id查询该用户的角色 + + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode, + id:userId + }; + sysAjax({ + method: 'POST', + url: dataUrl.util.queryRolesByUserId(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function (res) { + if(res != null && res.data != null){ + var data=res.data; + $('#addroler-content').empty(); + var roles = ''; + $.each(data, function(index,row) { + roles +='
                              • '+row.roleName+'
                              • '; + }); + $('#addroler-content').html(roles); + + } + + } + }); + } + + + }, + //alert_ok + alert_ok:function () { + //验证参数 + userfun.validateUser(); + var errmsg = $('#role_alert_error').text(); + if(errmsg !=''){ + return false; + } + //拼接请求参数 + var url = ''; + if($('#user_alert_ok').attr("oper")=='saveUser'){ + url = dataUrl.util.saveUser; + }else if($('#user_alert_ok').attr("oper")=='updateUser'){ + url = dataUrl.util.updateUser; + } + + + var createEmpid=StrUtil.isEmpty(fn.getUserId()) ? '-1' : fn.getUserId(); + var dataState=$('#user_dataState').find('span').text(); + var req= { + "id": $('#id').val(), + "loginCode": $('#loginCode').val(), + "opName": $('#opName').val(), + "telephone": $('#telephone').val(), + "sex":$('#user_sex').find('span').text(), + "remark":$('#remark').val(), + "dataState":dataState, + "email":$('#userEmail').val(), + //不能为空的字段 + "opCode":"222", + "createEmpid":createEmpid, + "age":$('#userage').val(), + "sysCode":sysCode + }; + var easyUIOps = { + method:'POST', + url: url, + data: JSON.stringify(req), + success: function(){ + $('#alert_over,#user_llw_alert_con').hide(); + $('#id').val(''); + //alert("成功"); + //刷新table + if($('#user_alert_ok').attr("oper")=='saveUser'){ + userfun.initTable(); + }else{ + $('#userTable').bootstrapTable('refresh'); + } + } + }; + sysAjax(easyUIOps); + }, + //验证参数 + validateUser:function(){ + + var checkFlg =true; + var userVal = $('#loginCode').val(); + var errorIfo = $('#role_alert_error'); + //姓名 + var opName = $('#opName').val(); + //年龄 + var age= $('#userage').val(); + //联系电话 + var telephone = $('#telephone').val(); + //邮箱 + var userEmail=$('#userEmail').val(); + //性别 + var sex = $('#user_sex').find('span').text(); + //用户描述 + var userDescription = $('#remark').val(); + + var regular = /^([^\`\+\~\!\#\$\%\^\&\*\(\)\|\}\{\=\"\'\!\¥\……\(\)\——]*[\+\~\!\#\$\%\^\&\*\(\)\|\}\{\=\"\'\`\!\?\:\<\>\•\“\”\;\‘\‘\〈\ 〉\¥\……\(\)\——\{\}\【\】\\\/\;\:\?\《\》\。\,\、\[\]\,]+.*)$/; + + + //用户名字 + if(StrUtil.isEmpty(userVal)){ + errorIfo.text('请填写账号'); + return false; + }else if(userVal.indexOf(' ')>=0||regular.test(userVal)){ + errorIfo.text('账号不能包含空格或者标点符号'); + return false; + }else if(!(/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/).test(userVal)){ + errorIfo.text('账号必填且格式必须是邮箱形式'); + return false; + }else if(userVal.length>31){ + errorIfo.text('账号不能超过32位'); + return false; + }else{ + if($('#user_alert_ok').attr("oper")=='saveUser'){ + var req= { + "loginCode": ($('#loginCode').val()).trim(), + "sysCode":sysCode + }; + var easyUIOps = { + async:false, + method:'POST', + url: dataUrl.util.queryLoginCodeIsUsed, + data: JSON.stringify(req), + success: function(res){ + console.log(res) + if(!res.data){ + checkFlg=false; + + } + } + }; + sysAjax(easyUIOps); + errorIfo.text(''); + } + /* if(checkFlg){ + errorIfo.text('该账号已经存在,请勿重复添加!'); + return false; + }*/ + + }; + + //姓名 + if(StrUtil.isEmpty(opName)){ + errorIfo.text('请输入姓名'); + return false; + }else if(opName.length>31){ + errorIfo.text('姓名不能超过32位'); + return false; + }else{ + errorIfo.text(''); + }; + if(StrUtil.isEmpty(age)){ + errorIfo.text('请输入年龄'); + return false; + }else if(!(/^\+?[1-9][0-9]*$/).test(age)){ + errorIfo.text('年龄必须是正整数'); + return false; + }else if(age>120){ + errorIfo.text('年龄不能超过120岁'); + return false; + }else{ + errorIfo.text(''); + }; + //联系电话 + if(StrUtil.isEmpty(telephone)){ + errorIfo.text('请输入联系电话'); + return false; + }else if(!(/^1[34578]\d{9}$/.test(telephone))){ + errorIfo.text('请输入正确联系电话'); + return false; + }else{ + errorIfo.text(''); + }; + + if(StrUtil.isEmpty(userEmail)){ + errorIfo.text('请输入邮箱'); + return false; + }else if(!(/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/).test(userEmail)){ + errorIfo.text('请输入正确的邮箱'); + return false; + }else{ + errorIfo.text(''); + }; + + //用户描述 + if(StrUtil.isEmpty(userDescription)){ + errorIfo.text('请输入用户描述'); + return false; + }else if(userDescription.length>64){ + errorIfo.text('用户描述不能超过64位'); + return false; + }else{ + errorIfo.text(''); + }; + + + + }, + //重置密码 + resetPassword:function (element) { + $('.popMask').remove(); + var loginCode = $(element).attr('loginCode'); + var id= $(element).attr('data-value'); + var pwdAlert = new Pop({ + header:'信息提示', + content:$('确定要重置选中的用户密码吗?'), + buttons:[ + { + type:'popOk', + text:'保存', + callback:function(){ + pwdAlert.close(); + var resetAlert = new Pop({ + width:'400px', + header:'信息提示', + content:$('
                                新密码 :
                                重复新密码 :
                                '), + buttons:[ + { + type:'popOk', + text:'保存', + callback:function(){ + var newPwd = $('#reset_newpwd').val(); + var confirmPwd = $('#reset_confirmpwd').val(); + if(StrUtil.isEmpty(newPwd)||StrUtil.isEmpty(confirmPwd)){ + $('#reset_pwd_ifo').text('请输入密码'); + return false; + }else{ + $('#reset_pwd_ifo').text(''); + }; + //密码输入规则 + if (7 < newPwd.length < 17 && newPwd.indexOf(' ') < 0 && checkPass(newPwd)>=2) { + $('#reset_pwd_ifo').text(''); + } else { + $('#reset_pwd_ifo').text('密码由8-16个字符组成,必须包含数字及字母,不能包含空格'); + return false; + }; + //密码两次是否相同 + if (newPwd == confirmPwd) { + $('#reset_pwd_ifo').text(''); + } else { + $('#reset_pwd_ifo').text('两次输入密码不一致'); + return false; + }; + //然后可以请求ajax了 。成功了把下面两行代码复制进去 + //拼接请求参数 + var req= { + "id": id, + "loginPassword":newPwd, + "sysCode":sysCode + }; + var easyUIOps = { + method:'POST', + url: dataUrl.util.resetUserPwd, + data: JSON.stringify(req), + success: function(){ + $('#alert_over,#user_llw_alert_con').hide(); + $('#id').val(''); + //alert("成功"); + //刷新table + $('#userTable').bootstrapTable('refresh', {silent: true}); + //fun.initTable(); + pwdAlert.close(); + resetAlert.close(); + } + }; + sysAjax(easyUIOps); + + + } + }, + { + type:'popCancle', + text:'取消' + } + ] + }); + } + }, + { + type:'popCancle', + text:'取消' + } + ] + }); + }, + + + }; + + +//构建树 + var Tree = { + //初始化树 + initTree: function () { + $.fn.zTree.init($("#user_org_tree"), Tree.setting, Tree.getTreeData()); + //展开全部 + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.expandAll(false); + //Tree.setChkDisabled(treeObj); + }, + setting: { + view: { + selectedMulti: false //静止多选 + }, + check: { + enable: true, //显示多选框 + chkStyle: "radio", + radioType:"all" + }, + data: { + simpleData: { + enable: true, //使用简单模式加载 + idKey: "id", + pIdKey: "pId", + rootPId: 0 + } + + + }, + edit: { + enable: false + + } + }, + //禁止选择非末级节点 + setChkDisabled: function(treeObj){ + var node = treeObj.getNodes(); + var nodes = treeObj.transformToArray(node); + for (var i=0, l=nodes.length; i < l; i++) { + if(nodes[i].isParent){ + treeObj.setChkDisabled(nodes[i], true,true,false); + + } + + } + }, + //展开某一个选中节点 + expandNode:function(ids){ + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + + for (var i = 0; i < ids.length; i++) { + var node = Tree.getNodeById(ids[i]); + treeObj.expandNode(node, true, true, true); + } + + + + }, + //添加节点 + addNodes: function (newNodes) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + newNodes = treeObj.addNodes(null, newNodes); + }, + //勾选 或 取消勾选 全部节点 + checkAllNodes: function (checked) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.checkAllNodes(checked); + }, + //更新节点 + updateNodes: function (treeNode, checkTypeFlag) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + treeObj.updateNode(treeNode); + }, + //根据id集合更新节点变为选中 + updateNodesForChecked: function (ids) { + var nodes = Tree.getNodesByIds(ids); + for (var i = 0; i < ids.length; i++) { + var node = nodes[i]; + if(node==null){ + continue; + } + node.checked = true; + Tree.updateNodes(node); + } + }, + //删除节点 + removeNode: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var treeNode = Tree.getNodeById(id); + treeObj.removeNode(treeNode); + }, + //通过id获取某个节点 + getNodeById: function (id) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + return node; + }, + //通过id获取某个节点 + getNodeByIdAndorgLevel: function (id,orgLevel) { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var node = treeObj.getNodeByParam("id", id, null); + if(node != null && node.orgLevel != null && node.orgLevel != orgLevel){ + node= Tree.getNodeByIdAndorgLevel(node.pId,orgLevel); + } + return node; + }, + //通过id集合获取节点集合 + getNodesByIds: function (ids) { + var nodes = []; + for (var i = 0; i < ids.length; i++) { + nodes[i] = Tree.getNodeById(ids[i]); + } + return nodes; + }, + //获取输入框被勾选 或 未勾选的节点ID集合 + getCheckedNodesId: function (checked) { + var ids = []; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + var index=0; + for (var i = 0; i < nodes.length; i++) { + if(!nodes[i].isParent){ + ids[index++] = nodes[i].id + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的组织级别节点ID集合 + getCheckedNodesIdForOrgLevel: function (checked,orgLevel) { + ; + var ids = ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(checked); + + for (var i = 0; i < nodes.length; i++) { + if(orgLevel ==nodes[i].orgLevel){ + ids= nodes[i].id + }else{ + if(nodes[i].orgLevel =="1"){ + ids="-1"; + }else{ + var nodesParent = Tree.getNodeByIdAndorgLevel(nodes[i].pId,orgLevel); + if(nodesParent != null){ + ids=nodesParent.id; + } + + } + + } + + } + return ids; + }, + //获取输入框被勾选 或 未勾选的节点name集合 + getCheckedNodesName: function (checked) { + var names= ""; + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getCheckedNodes(true); + for (var i = 0; i < nodes.length; i++) { + names = names+","+nodes[i].name; + } + return names; + }, + //获取选中的节点集合 + getSelectedNodes: function () { + var treeObj = $.fn.zTree.getZTreeObj("user_org_tree"); + var nodes = treeObj.getSelectedNodes(); + return nodes; + }, + //获取树 + getTreeData:function() { + //var sysCodeHidde = $('#sysCodeHidde').val(); + var zNodes = []; + var req= { + baseRequest:{ + pageNum:1, + pageSize:0 + }, + sysCode:sysCode + }; + sysAjax({ + method:'POST', + url: dataUrl.util.getOrgTreeBySysCode(), + data: JSON.stringify(req), + dataType:'json', + async:false, + success: function(res){ + if(isError(res)){ + return false; + } + zNodes =res.data; + } + }); + //增加一个公告根节点 +// zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; + return zNodes; + } + } +//获取sysCode 和sysName + userfun.getSysCodeAndSysName(); + //初始执行 + userfun.init(); + + + /** + * 处理错误信息 + * @param {Object} res + */ + function isError(res){ + if(res == null || res == undefined){ + return true; + } + if(res.code!='8888'){ + var errorPop = new Pop({ + header:'错误提示', + content:$(''+res.msg+''), + buttons:[{ + type:'popOk', + text:'保存' + }] + }); + return true; + }else{ + return false; + } + } + + /** + * 自定义table AJAX请求 + * @param {Object} params + */ + function tableLoadRequest(params){ + //设置请求参数 + var pageNum = (params.data.offset/params.data.limit)+1; + //条件查询 + var req= { + baseRequest:{ + pageNum:pageNum, + pageSize:params.data.limit + }, + sysCode:sysCode, + loginCode:loginCode, + opName:loginName, + telephone:loginPhone + + }; + var easyUIOps = { + method: params.type, + url: dataUrl.util.getQueryUsersList(), + data: JSON.stringify(req), + contentType: 'application/json; charset=utf-8', + dataType:'json', + success: function(res){ + console.log(res) + if(res.code == '8888'){ + params.success(res.data); + }else{ + + } + } + }; + sysAjax(easyUIOps); + } +})(); + +var TTDiy_select = new diy_select({ //参数可选 + TTContainer: 'diy_select', //控件的class + TTDiy_select_input: 'diy_select_input', //用于提交表单的class + TTDiy_select_txt: 'diy_select_txt', //diy_select用于显示当前选中内容的容器class + TTDiy_select_btn: 'diy_select_btn', //diy_select的打开按钮 + TTDiv_select_list: 'diy_select_list', //要显示的下拉框内容列表class + TTFcous: 'focus' //得到焦点时的class +}); //如同时使用多个时请保持各class一致. + +//日历 +;(function($){ + $.fn.fdatepicker.dates['zh-CN'] = { + days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], + daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"], + daysMin: ["日", "一", "二", "三", "四", "五", "六"], + months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], + monthsShort: ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"], + // today: '今天' + }; +}(jQuery)); +//设置前一个月显示默认时间 +function showpretime(){ + var mydate = new Date(); + var month = mydate.getMonth(); + var data = mydate.getDate(); + if(data<10){ + data='0'+data; + }; + if(month=='0'){ + month='12'; + } + if(month<10){ + month = '0'+month; + }; + + + var str = "" + mydate.getFullYear() + "-"; + str += month + "-"; + str += data ; + return str; +}; +function shownowtime(){ + var mydate = new Date(); + var month = mydate.getMonth()+1; + var data = mydate.getDate(); + if(data<10){ + data='0'+data; + }; + if(month<10){ + month = '0'+month; + }; + + var str = "" + mydate.getFullYear() + "-"; + str += month + "-"; + str += data ; + return str; +} +$('#prev_date').val(showpretime()); +$('#next_date').val(shownowtime()); +$('#prev_date').fdatepicker({ + format: 'yyyy-mm-dd', + defaultDate: '-1M', +}); +$('#next_date').fdatepicker({ + format: 'yyyy-mm-dd', + defaultDate: +7, + // endDate:'+1', + +}); +//检测必须有字母和数字 +function checkPass(pass) { + var ls=0; + if (pass.match(/[a-zA-Z]+/)) { + ls++; + } + if (pass.match(/([0-9])+/)) { + ls++; + } + if (pass.match(/[^a-zA-Z0-9]+/)) { + ls++; + } + return ls; +}; + +//刷新表格 +function refreshTabel(){ + var opt = { + url: dataUrl.util.getQueryUsersList(), + silent: true, + query:{ + baseRequest:{ + pageNum:1, + pageSize:10 + }, + sysCode:sysCode, + loginCode:loginCode, + opName:loginName, + telephone:loginPhone + } + }; + $("#userTable").bootstrapTable('refresh'); + +}; + + + + + + + + + diff --git a/assets/syspages/js/syssetting/changePwd.js b/assets/syspages/js/syssetting/changePwd.js new file mode 100644 index 0000000..7a4083a --- /dev/null +++ b/assets/syspages/js/syssetting/changePwd.js @@ -0,0 +1,96 @@ +/** + * Created by mac on 17/5/12. + */ +// 修改密码//先验证是否输入 再验证规则 再验证原密码是否正确 +$('#change_btn').on('click', function () { + var originVal = $('#original_pwd').val(), + newVal = $('#new_pwd').val(), + newAgainVal = $('#new_again_pwd').val(); + //先验证是否输入 + if (StrUtil.isEmpty(originVal)) { + $('#original_pwd_ifo').text('请输入原密码'); + return false; + } else { + $('#original_pwd_ifo').text(''); + } + ; + if (StrUtil.isEmpty(newVal)) { + $('#new_pwd_ifo').text('请输入新密码'); + return false; + } else { + $('#new_pwd_ifo').text(''); + } + ; + if (StrUtil.isEmpty(newAgainVal)) { + $('#new_again_pwd_ifo').text('请输入新密码'); + return false; + } else { + $('#new_again_pwd_ifo').text(''); + } + ; + + //密码输入规则 + + if (7 < newVal.length < 17 && newVal.indexOf(' ') < 0 && checkPass(newVal) >= 2) { + $('#new_pwd_ifo').text(''); + } else { + $('#new_pwd_ifo').text('密码设置错误,请检查后在输入'); + return false; + } + ; + + //密码两次是否相同 + if (newVal == newAgainVal) { + $('#new_again_pwd_ifo').text(''); + } else { + $('#new_again_pwd_ifo').text('两次输入密码不一致'); + return false; + } + ; + + + var req = { + sysCode: sysComm.sysCode, + userId: fn.getUserId(), + oldPass: originVal, + newPass: newVal + } + + var ajaxOpt = { + method: 'Post', + url: dataUrl.util.modifyPass, + data: JSON.stringify(req), + success: function (res) { + if ('8888' === res.code) { + $('#change_pwd_con').hide(); + $('#alert_over').show(); + $('#disable_alert').show(); + // $(document).find("#mainleft li").unbind("click");//解除左边栏的点击事件 + } else { + $('#original_pwd_ifo').text(res.msg); + } + } + } + sysAjax(ajaxOpt); + + +}); +//检测必须有字母和数字 +function checkPass(pass) { + var ls=0; + if (pass.match(/[a-zA-Z]+/)) { + ls++; + } + if (pass.match(/([0-9])+/)) { + ls++; + } + if (pass.match(/[^a-zA-Z0-9]+/)) { + ls++; + } + return ls; +}; + +function reLogin() { + fn.loginOut(); +} + diff --git a/assets/syspages/js/syssetting/css/changePwd.css b/assets/syspages/js/syssetting/css/changePwd.css new file mode 100644 index 0000000..3933975 --- /dev/null +++ b/assets/syspages/js/syssetting/css/changePwd.css @@ -0,0 +1,114 @@ +.main_right_con{ + margin: 20px 0; + padding:0 40px 10px 20px; +} +.change_pwd_title{ + font-weight: 600; + margin:20px 0 60px; + padding-left: 4px; + color: #32c5d2; + font-size: 16px; +} +.change_pwd_con{ + width: 600px; + height: 400px; +} +.f12{ + font-size: 12px; + margin-left: 40px; +} +.input_l{ + width:90px; + text-align: right; + display: inline-block; + margin-right: 12px; + height: 34px; + line-height: 34px; +} +.input_pwd{ + width:238px; + height: 34px; + line-height: 34px; + border:1px solid #e1e4e6; + color:#676869; + padding-left: 8px; + border-radius: 2px; +} +.input_r{ + color:red; + margin-left: 8px; +} +.change_pwd_con li{ + height: 34px; + line-height: 34px; +} +.change_pwd_con li:nth-of-type(1){ + margin-bottom: 24px; +} +.change_pwd_con li:nth-of-type(3){ + margin: 6px 0; + padding-bottom: 8px; + padding-left: 26px; + position: relative; +} +.change_pwd_con li:nth-of-type(3):before{ + content: '!'; + position: absolute; + width: 10px; + height: 10px; + line-height: 10px; + font-size: 12px; + top:12px; + border:1px solid red; + opacity: .5; + text-align: center; + /*background: #676869;*/ + color: red; + left:50px; + border-radius: 100%; +} +.change_pwd_con li:nth-of-type(5){ + margin-top: 24px; +} +.change_btn{ + margin-top: 2px; + margin-left: 50px; + border-radius: 4px!important; + cursor: pointer; + background-color: #1E95CD; + width: 72px; + height: 32px; + line-height: 32px; + text-align: center; + font-size: 14px; + color: #fff; + display: inline-block; +} +.change_pwd_success_con{ + display: block; + width: 380px; + position:relative; + top: 50%; + left: 50%; + margin-left: -190px; + height: 230px; + margin-top: -115px; + background-color: #fff; + /*background: url('../img/change_pwd_success_con.png') no-repeat center 0;*/ +} +.success-msg{ + margin-top: 50px; +} + +.change_pwd_success_con a{ + color: #2abb9b; +} + +em { + color: #d4333f; + margin-right: 8px; + vertical-align: middle; +} +.glyphicon { + color: #32c5d2; +} \ No newline at end of file diff --git a/assets/syspages/js/syssetting/page/changePwd.html b/assets/syspages/js/syssetting/page/changePwd.html new file mode 100644 index 0000000..d74d1f9 --- /dev/null +++ b/assets/syspages/js/syssetting/page/changePwd.html @@ -0,0 +1,45 @@ +
                                +
                                +
                                +
                                +
                                +
                                  +
                                • + 原密码* + + +
                                • +
                                • + 新密码* + + +
                                • +
                                • + + 密码由8-16个字符组成,必须包含数字及字母,不能包含空格。 +
                                • +
                                • + 重复密码* + + +
                                • +
                                • + + 立即修改 +
                                • +
                                + +
                                +
                                +
                                +
                                +
                                +
                                +
                                  + +
                                  恭喜您,密码修改成功,请重新 登录系统
                                  +
                                +
                                + \ No newline at end of file diff --git a/assets/syspages/js/syssetting/syssettingTmp.js b/assets/syspages/js/syssetting/syssettingTmp.js new file mode 100644 index 0000000..635f6b6 --- /dev/null +++ b/assets/syspages/js/syssetting/syssettingTmp.js @@ -0,0 +1,42 @@ +var urlarr = JSON.parse(sessionStorage.getItem("threemenulist")); +console.log(urlarr) +var _html = ''; +for(var i=0;i
                                '+urlarr[i].name+'
                                ' + }else{ + _html += '
                              • '+urlarr[i].name+'
                              • ' + } +} +$('#button-btn').html(_html); +function Router(){ + this.routes = {}; + this.curUrl = ''; + + this.route = function(path, callback){ + this.routes[path] = callback || function(){}; + }; + + this.refresh = function(){ + this.curUrl = location.hash.slice(1) || '/'+urlarr[0].url; + console.log(this.curUrl) + this.routes[this.curUrl](); + }; + + this.init = function(){ + window.addEventListener('load', this.refresh.bind(this), false); + window.addEventListener('hashchange', this.refresh.bind(this), false); + } +} +var R = new Router(); +R.init(); +var res = $('#main-con'); +R.route('/changePwd', function() { + $("#pageCssLink").attr("href",'../../assets/syspages/js/syssetting/css/changePwd.css'); + res.load('../../assets/syspages/js/syssetting/page/changePwd.html'); + $('.ITD-topbar-wrap li').removeClass('ITD-topbar-clickactive'); + $('#button-changePwd').addClass('ITD-topbar-clickactive'); + +}); + + -- libgit2 0.21.4